314245565 发表于 2019-11-26 10:23:05

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

核心板: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 (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 (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_IO090x3008
                              //MX6UL_PAD_ENET2_RX_EN__GPIO2_IO10   0x3008
                              //MX6UL_PAD_ENET2_TX_DATA0__GPIO2_IO110x3008
                              //MX6UL_PAD_ENET2_TX_DATA1__GPIO2_IO120x3008
                              //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_CLK10x4001b031
                        >;
                };

                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_CLK20x4001b031

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 Reservedwww.forlinx.com
freescale login: root
root@freescale ~$ ifconfig
eth0      Link encap:EthernetHWaddr 3E:FD:B7:B5:59:F6
          inet addr:192.168.0.232Bcast:192.168.0.255Mask:255.255.255.0
          UP BROADCAST MULTICASTMTU:1500Metric: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:EthernetHWaddr 6E:D5:70:47:CC:17
          inet addr:192.168.1.232Bcast:192.168.1.255Mask:255.255.255.0
          UP BROADCAST MULTICASTMTU:1500Metric: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.1Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNINGMTU:65536Metric: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“中,未看到相关说明。





zhichao 发表于 2019-11-26 14:48:26

您可以参考6ul-c底板网络硬件设计,烧写6ul-c设备树试试

314245565 发表于 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 (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 (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 Reservedwww.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.
页: [1]
查看完整版本: okmx6ul-c2,nand256m,如何配置双网口?