[MCU]

TI am335x rmii双网口移植问题

[复制链接]
1183|4
手机看帖
扫描二维码
随时随地手机跟帖
xuesong10210|  楼主 | 2020-6-24 14:00 | 显示全部楼层 |阅读模式
本帖最后由 xuesong10210 于 2020-6-24 14:06 编辑

最近的linux上移植am335x的以太网,遇到一些问题,希望路过的大神指点一下。
我用的官方的SDK,linux内核版本是4.19.35。两个网口都采用的是rmii接口。现在出现的问题是eth0可以正常使用,但是eth1一直包找不到phy的错误。
eth0用的是rmii1,eth1用的是rmii2. 两个网口用的PHY都是lan7820。soc用的是2.x的版本!!!PHY ID和引脚对应关系也都确认了没有啥问题!
dts配置如下:
cpsw_default: cpsw_default {
                pinctrl-single,pins = <
                        /* Slave 1 */
                        AM33XX_IOPAD(0x90c, PIN_INPUT_PULLDOWN         | MUX_MODE1)          /* mii1_crs.rmii1_crs */
                        AM33XX_IOPAD(0x910, PIN_INPUT_PULLUP         | MUX_MODE1)        /* mii1_rxerr.rmii1_rxerr */
                        AM33XX_IOPAD(0x914, PIN_OUTPUT_PULLDOWN | MUX_MODE1)        /* mii1_txen.rmii1_txen */
                        AM33XX_IOPAD(0x924, PIN_OUTPUT_PULLDOWN | MUX_MODE1)        /* mii1_txd1.rmii1_txd1 */
                        AM33XX_IOPAD(0x928, PIN_OUTPUT_PULLDOWN | MUX_MODE1)        /* mii1_txd0.rmii1_txd0 */
                        AM33XX_IOPAD(0x93c, PIN_INPUT_PULLUP         | MUX_MODE1)        /* mii1_rxd1.rmii1_rxd1 */
                        AM33XX_IOPAD(0x940, PIN_INPUT_PULLUP         | MUX_MODE1)        /* mii1_rxd0.rmii1_rxd0 */
                        AM33XX_IOPAD(0x944, PIN_INPUT_PULLDOWN         | MUX_MODE0)        /* rmii1_ref_clk.rmii_ref_clk */

                        /* Slave 2 */
                        AM33XX_IOPAD(0x1320, 0x01)
                        AM33XX_IOPAD(0x864, PIN_OUTPUT_PULLDOWN | MUX_MODE3)    /*gpmc_a9.rmii2_crs*/   
                        AM33XX_IOPAD(0x874, PIN_INPUT_PULLUP         | MUX_MODE3)        /*gpmc_wpn.rmii2_rxerr */
                        AM33XX_IOPAD(0x840, PIN_OUTPUT_PULLDOWN | MUX_MODE3)        /*gpmc_a0.rmii2_txen*/
                        AM33XX_IOPAD(0x850, PIN_OUTPUT_PULLDOWN | MUX_MODE3)        /*gpmc_a4.rmii_txd1*/
                        AM33XX_IOPAD(0x854, PIN_OUTPUT_PULLDOWN | MUX_MODE3)        /*gpmc_a5.rmii_txd0*/
                        AM33XX_IOPAD(0x868, PIN_INPUT_PULLUP         | MUX_MODE3)        /*gpmc_a10.rmii_rxd1*/
                        AM33XX_IOPAD(0x86C, PIN_INPUT_PULLUP         | MUX_MODE3)        /*gpmc_a11.rmii_rxd0*/
                        AM33XX_IOPAD(0x908, PIN_INPUT_PULLDOWN         | MUX_MODE1)        /*mii_col.rmii2_refclk*/
                >;
        };

        cpsw_sleep: cpsw_sleep {
                pinctrl-single,pins = <
                        /* Slave 1 reset value */
                        AM33XX_IOPAD(0x90c, PIN_INPUT_PULLDOWN | MUX_MODE7)
                        AM33XX_IOPAD(0x910, PIN_INPUT_PULLDOWN | MUX_MODE7)
                        AM33XX_IOPAD(0x914, PIN_INPUT_PULLDOWN | MUX_MODE7)
                        AM33XX_IOPAD(0x924, PIN_INPUT_PULLDOWN | MUX_MODE7)
                        AM33XX_IOPAD(0x928, PIN_INPUT_PULLDOWN | MUX_MODE7)
                        AM33XX_IOPAD(0x93c, PIN_INPUT_PULLDOWN | MUX_MODE7)
                        AM33XX_IOPAD(0x940, PIN_INPUT_PULLDOWN | MUX_MODE7)
                        AM33XX_IOPAD(0x944, PIN_INPUT_PULLDOWN | MUX_MODE7)
                        
                        /* Slave 2 reset value */
                        AM33XX_IOPAD(0x864, PIN_INPUT_PULLDOWN | MUX_MODE7)
                        AM33XX_IOPAD(0x874, PIN_INPUT_PULLDOWN | MUX_MODE7)
                        AM33XX_IOPAD(0x840, PIN_INPUT_PULLDOWN | MUX_MODE7)
                        AM33XX_IOPAD(0x850, PIN_INPUT_PULLDOWN | MUX_MODE7)
                        AM33XX_IOPAD(0x854, PIN_INPUT_PULLDOWN | MUX_MODE7)
                        AM33XX_IOPAD(0x868, PIN_INPUT_PULLDOWN | MUX_MODE7)
                        AM33XX_IOPAD(0x86C, PIN_INPUT_PULLDOWN | MUX_MODE7)
                        AM33XX_IOPAD(0x908, PIN_INPUT_PULLDOWN | MUX_MODE7)               
                >;
        };
davinci_mdio_default: davinci_mdio_default {
                pinctrl-single,pins = <
                        /* mdio_data.mdio_data */
                        AM33XX_IOPAD(0x948, PIN_INPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE0)
                        /* mdio_clk.mdio_clk */
                        AM33XX_IOPAD(0x94c, PIN_OUTPUT_PULLUP | MUX_MODE0)
                >;
        };

        davinci_mdio_sleep: davinci_mdio_sleep {
                pinctrl-single,pins = <
                        /* MDIO reset value */
                        AM33XX_IOPAD(0x948, PIN_INPUT_PULLDOWN | MUX_MODE7)
                        AM33XX_IOPAD(0x94c, PIN_INPUT_PULLDOWN | MUX_MODE7)
                >;
        };

/* Ethernet */
&mac {
        pinctrl-names = "default", "sleep";
        pinctrl-0 = <&cpsw_default>;
        pinctrl-1 = <&cpsw_sleep>;
        status = "okay";
        dual_emac;
};

&davinci_mdio {
        pinctrl-names = "default", "sleep";
        pinctrl-0 = <&davinci_mdio_default>;
        pinctrl-1 = <&davinci_mdio_sleep>;
        status = "okay";
};

&cpsw_emac0 {
        phy_id = <&davinci_mdio>,<1>;
        dual_emac_res_vlan = <2>;
        phy-mode = "rmii";
        reset-gpio = <&gpio0 2 GPIO_ACTIVE_LOW>;
};

&cpsw_emac1 {
        phy_id = <&davinci_mdio>,<0>;
        dual_emac_res_vlan = <1>;
        phy-mode = "rmii";
        reset-gpio = <&gpio2 1 GPIO_ACTIVE_LOW>;
};

&phy_sel {
        rmii-clock-ext;
};





内核选项

内核选项

错误提示

错误提示

使用特权

评论回复

相关帖子

zhangmangui| | 2020-6-24 23:36 | 显示全部楼层
MAC地址有区别吗

使用特权

评论回复
xuesong10210|  楼主 | 2020-6-29 13:48 | 显示全部楼层

MAC地址是不同的!!!!!

使用特权

评论回复
xuesong10210|  楼主 | 2020-7-30 14:24 | 显示全部楼层
问题解决!硬件问题!lan8720上指定phy地址的引脚,核心板上做了上拉,地板上又做了下拉导致phy找不到!!!

使用特权

评论回复
zhangmangui| | 2020-8-2 11:19 | 显示全部楼层
xuesong10210 发表于 2020-7-30 14:24
问题解决!硬件问题!lan8720上指定phy地址的引脚,核心板上做了上拉,地板上又做了下拉导致phy找不到!! ...

感谢分享解决办法

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

8

主题

40

帖子

0

粉丝