嵌入式爱好者

查看: 42428|回复: 2

[Linux] okmx6ul-c2,nand256m,如何配置双网口?

[复制链接]

3

主题

7

帖子

25

积分

A40i/T3/T507/T527通行证i.MX6UL通行证

扫一扫,手机访问本帖
发表于 2019-11-26 10:23:05 | 显示全部楼层 |阅读模式
核心板:okmx6ul-c2,内存nand256m。
内核:linux.3.14.38

配置双网口时,报错如下:
ifdown: inte**ce eth0 not configured
ifdown: inte**ce eth1 not configured
[   16.598548] fec 20b4000.ethernet eth0: Freescale FEC PHY driver [Generic PHY] (mii_bus:phy_addr=20b4000.ethernet:01, irq=-1)
[   16.648665] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
[   16.838556] fec 2188000.ethernet eth1: Freescale FEC PHY driver [Generic PHY] (mii_bus:phy_addr=20b4000.ethernet:02, irq=-1)
[   16.888678] IPv6: ADDRCONF(NETDEV_UP): eth1: link is not ready

操作过程如下:
1、修改设备树文件“vi ./arch/arm/boot/dts/imx6ul-14x14-evk-emmc-c2-7-1024x600.dts”
2、修改内容,屏蔽fec1中的mdio:
&fec1 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_enet1>;
        phy-mode = "rmii";
        phy-handle = <&ethphy0>;
        status = "okay";


/*       mdio {
                #address-cells = <1>;
                #size-cells = <0>;

                ethphy0: ethernet-phy@1 {
                        compatible = "ethernet-phy-ieee802.3-c22";
                        reg = <1>;
                };

                ethphy1: ethernet-phy@2 {
                        compatible = "ethernet-phy-ieee802.3-c22";
                        reg = <2>;
                };
        };
*/
};


3、在fec2写mdio:
&fec2 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_enet2>;
        phy-mode = "rmii";
        phy-handle = <&ethphy1>;
        status = "okay";


        mdio {
                #address-cells = <1>;
                #size-cells = <0>;

                ethphy0: ethernet-phy@2 {
                        compatible = "ethernet-phy-ieee802.3-c22";
                        reg = <2>;
                };

                ethphy1: ethernet-phy@1 {
                        compatible = "ethernet-phy-ieee802.3-c22";
                        reg = <1>;
                };
        };

};




4、修改引脚复用,屏蔽网口2GPIO
imx6ul-evk {
                pinctrl_hog_1: hoggrp-1 {
                        fsl,pins = <
                                MX6UL_PAD_LCD_RESET__WDOG1_WDOG_ANY    0x30b0
                                MX6UL_PAD_UART1_RTS_B__GPIO1_IO19       0x17059 /* SD1 CD */
                                MX6UL_PAD_GPIO1_IO05__USDHC1_VSELECT    0x17059 /* SD1 VSELECT */
                                MX6UL_PAD_GPIO1_IO09__GPIO1_IO09        0x17059 /* SD1 RESET */
                                MX6UL_PAD_UART1_CTS_B__GPIO1_IO18       0x3008
                                //MX6UL_PAD_UART2_TX_DATA__GPIO1_IO20   0x3008
                                //MX6UL_PAD_UART2_RX_DATA__GPIO1_IO21   0x3008
                                MX6UL_PAD_UART2_CTS_B__GPIO1_IO22       0x3008
                                MX6UL_PAD_UART2_RTS_B__GPIO1_IO23       0x3008
                                //MX6UL_PAD_UART3_TX_DATA__GPIO1_IO24   0x3008
                                //MX6UL_PAD_UART3_RX_DATA__GPIO1_IO25   0x3008
                                MX6UL_PAD_UART3_CTS_B__GPIO1_IO26       0x3008
                                MX6UL_PAD_UART3_RTS_B__GPIO1_IO27       0x3008
                                //MX6UL_PAD_UART4_TX_DATA__GPIO1_IO28   0x3008
                                //MX6UL_PAD_UART4_RX_DATA__GPIO1_IO29   0x3008
                                //MX6UL_PAD_UART5_TX_DATA__GPIO1_IO30   0x3008
                                //MX6UL_PAD_UART5_RX_DATA__GPIO1_IO31   0x3008
                                //MX6UL_PAD_ENET2_RX_DATA1__GPIO2_IO09  0x3008
                                //MX6UL_PAD_ENET2_RX_EN__GPIO2_IO10     0x3008
                                //MX6UL_PAD_ENET2_TX_DATA0__GPIO2_IO11  0x3008
                                //MX6UL_PAD_ENET2_TX_DATA1__GPIO2_IO12  0x3008
                                //MX6UL_PAD_ENET2_TX_EN__GPIO2_IO13     0x3008
                                //MX6UL_PAD_ENET2_TX_CLK__GPIO2_IO14    0x3008
                                //MX6UL_PAD_ENET2_RX_ER__GPIO2_IO15     0x3008
                                MX6UL_PAD_LCD_DATA16__GPIO3_IO21        0x3008
                                MX6UL_PAD_LCD_DATA17__GPIO3_IO22        0x3008




5、屏蔽网口1MDIO,使能网口2MDIO
pinctrl_enet1: enet1grp {
                        fsl,pins = <
                                //MX6UL_PAD_GPIO1_IO07__ENET1_MDC               0x1b0b0
                                //MX6UL_PAD_GPIO1_IO06__ENET1_MDIO      0x1b0b0
                                MX6UL_PAD_ENET1_RX_EN__ENET1_RX_EN      0x1b0b0
                                MX6UL_PAD_ENET1_RX_ER__ENET1_RX_ER      0x1b0b0
                                MX6UL_PAD_ENET1_RX_DATA0__ENET1_RDATA00 0x1b0b0
                                MX6UL_PAD_ENET1_RX_DATA1__ENET1_RDATA01 0x1b0b0
                                MX6UL_PAD_ENET1_TX_EN__ENET1_TX_EN      0x1b0b0
                                MX6UL_PAD_ENET1_TX_DATA0__ENET1_TDATA00 0x1b0b0
                                MX6UL_PAD_ENET1_TX_DATA1__ENET1_TDATA01 0x1b0b0
                                MX6UL_PAD_ENET1_TX_CLK__ENET1_REF_CLK1  0x4001b031
                        >;
                };

                pinctrl_enet2: enet2grp {
                        fsl,pins = <
                                MX6UL_PAD_GPIO1_IO07__ENET2_MDC         0x1b0b0
                                MX6UL_PAD_GPIO1_IO06__ENET2_MDIO        0x1b0b0
                                MX6UL_PAD_ENET2_RX_EN__ENET2_RX_EN      0x1b0b0
                                MX6UL_PAD_ENET2_RX_ER__ENET2_RX_ER      0x1b0b0
                                MX6UL_PAD_ENET2_RX_DATA0__ENET2_RDATA00 0x1b0b0
                                MX6UL_PAD_ENET2_RX_DATA1__ENET2_RDATA01 0x1b0b0
                                MX6UL_PAD_ENET2_TX_EN__ENET2_TX_EN      0x1b0b0
                                MX6UL_PAD_ENET2_TX_DATA0__ENET2_TDATA00 0x1b0b0
                                MX6UL_PAD_ENET2_TX_DATA1__ENET2_TDATA01 0x1b0b0
                                MX6UL_PAD_ENET2_TX_CLK__ENET2_REF_CLK2  0x4001b031

6、保存并编译设备树,生成三个dtb文件:
root@ubuntu:/home/weitao/Downloads/linux-3.14.38# make dtbs
  DTC     arch/arm/boot/dts/imx6ul-14x14-evk-emmc-c2-7-1024x600.dtb
  DTC     arch/arm/boot/dts/imx6ul-14x14-evk-gpmi-c2-256m-7-1024x600.dtb
  DTC     arch/arm/boot/dts/imx6ul-14x14-evk-gpmi-c2-1g-7-1024x600.dtb



7,将dtb文件,拷贝至目录”G:\飞凌linux\OKMX6UL-C2(eMMC&Nand版)用户资料-20190709\Linux\工具\OTG\mfgtools\Profiles\Linux\OS Firmware\files\linux\dtb“


8,拨码开关8OFF,其他ON,重启核心板,使用mfgtools脚本更新程序

9、运行后,在超级终端中,可看到两个网口,但ping不通
Copyright (C) 2006-2016 Forlinx Embedded Technology Co., Ltd All Rights Reserved  www.forlinx.com
freescale login: root
root@freescale ~$ ifconfig
eth0      Link encap:Ethernet  HWaddr 3E:FD:B7:B5:59:F6  
          inet addr:192.168.0.232  Bcast:192.168.0.255  Mask:255.255.255.0
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

eth1      Link encap:Ethernet  HWaddr 6E:D5:70:47:CC:17  
          inet addr:192.168.1.232  Bcast:192.168.1.255  Mask:255.255.255.0
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

root@freescale ~$



10,若只配置网口1,网口2disable,网口1可正常使用。

11、自制的底板,网口PHYAD与资料的反过来了,自制底板的网口1的PHYAD0=0, PHYAD1=1,网口2PHYAD0=1, PHYAD1=0,的网口部分见附件:

12、PHYAD物理接线的改变,在设备树中分别修改MDIO如下,均不起作用
ethphy0: ethernet-phy@1 {
                        compatible = "ethernet-phy-ieee802.3-c22";
                        reg = <1>;
                };

                ethphy1: ethernet-phy@2 {
                        compatible = "ethernet-phy-ieee802.3-c22";
                        reg = <2>;
                };
或者:
ethphy0: ethernet-phy@2 {
                        compatible = "ethernet-phy-ieee802.3-c22";
                        reg = <2>;
                };

                ethphy1: ethernet-phy@1 {
                        compatible = "ethernet-phy-ieee802.3-c22";
                        reg = <1>;
                };



求助:请问,okmx6ul-c2,nand256m,如何配置双网口?在资料”OKMX6UL-C2(eMMC&Nand版)用户资料-20190709“中,未看到相关说明。





1574734880(1).jpg
回复

使用道具 举报

0

主题

1173

帖子

2202

积分

发表于 2019-11-26 14:48:26 | 显示全部楼层
您可以参考6ul-c底板网络硬件设计,烧写6ul-c设备树试试

点评

谢谢提醒!烧写了6UL-C的设备树,网口能ping通了。虽然还是提示link is not ready 但是还是ping通了。 以下为debug打印信息 [ 33.613083] fec 20b4000.ethernet eth0: Freescale FEC PHY driver [Micrel KSZ8081  详情 回复 发表于 2019-11-26 15:21
点评回复 支持 反对

使用道具 举报

3

主题

7

帖子

25

积分

A40i/T3/T507/T527通行证i.MX6UL通行证

 楼主| 发表于 2019-11-26 15:21:42 | 显示全部楼层
zhichao 发表于 2019-11-26 14:48
您可以参考6ul-c底板网络硬件设计,烧写6ul-c设备树试试

谢谢提醒!烧写了6UL-C的设备树,网口能ping通了。虽然还是提示link is not ready 但是还是ping通了。
以下为debug打印信息
[   33.613083] fec 20b4000.ethernet eth0: Freescale FEC PHY driver [Micrel KSZ8081 or KSZ8091] (mii_bus:phy_addr=20b4000.ethernet:01, irq=-1)
[   33.662870] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
[   33.853091] fec 2188000.ethernet eth1: Freescale FEC PHY driver [Micrel KSZ8081 or KSZ8091] (mii_bus:phy_addr=20b4000.ethernet:02, irq=-1)
[   33.902876] IPv6: ADDRCONF(NETDEV_UP): eth1: link is not ready
RTNETLINK answers: File exists
done.
alsactl: load_state:1625: No soundcards found...

Copyright (C) 2006-2016 Forlinx Embedded Technology Co., Ltd All Rights Reserved  www.forlinx.com
freescale login: [   38.613111] libphy: 20b4000.ethernet:01 - Link is Up - 100/Full
[   38.619152] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
[   38.853205] libphy: 20b4000.ethernet:02 - Link is Up - 100/Full
[   38.859244] IPv6: ADDRCONF(NETDEV_CHANGE): eth1: link becomes ready
[   39.142375] nf_conntrack: automatic helper assignment is deprecated and it will be removed soon. Use the iptables CT target to attach helpers instead.
点评回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋| 飞凌嵌入式 ( 冀ICP备12004394号-1 )

GMT+8, 2024-11-22 15:31

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表