I.MX6UL network card device tree problem

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

I.MX6UL network card device tree problem

2,449 Views
jack_huang1
Contributor III

Dear:

I adopt the I.MX6UL scheme, the network card is YT8512, and the interface is fec1. It can work normally under UBOOT, please refer to attachment 1 for details.However, when loaded into the kernel, the network card could not be found, as shown in attachment LOG.

Device tree configuration is as follows:

&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";

                     device_type = "ethernet-phy";

                     reg = <1>;

              };

       };

      

};

 

&fec2 {

       pinctrl-names = "default";

       pinctrl-0 = <&pinctrl_enet2>;

       phy-mode = "rmii";

       status = "okay";

      

       fixed-link {

              speed = <1000>;

              full-duplex;

    };

};

 

fec1: ethernet@02188000 {

                            compatible = "fsl,imx6ul-fec", "fsl,imx6q-fec";

                            reg = <0x02188000 0x4000>;

                            interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>,

                                        <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>;

                            clocks = <&clks IMX6UL_CLK_ENET>,

                                   <&clks IMX6UL_CLK_ENET_AHB>,

                                   <&clks IMX6UL_CLK_ENET_PTP>,

                                   <&clks IMX6UL_CLK_ENET_REF>,

                                   <&clks IMX6UL_CLK_ENET_REF>;

                                  

                            clock-names = "ipg", "ahb", "ptp",

                                         "enet_clk_ref", "enet_out";

                            stop-mode = <&gpr 0x10 3>;

                            fsl,num-tx-queues=<1>;

                            fsl,num-rx-queues=<1>;

                            fsl,magic-packet;

                            fsl,wakeup_irq = <0>;

                            status = "disabled";

                        };

fec2: ethernet@020b4000 {

                            compatible = "fsl,imx6ul-fec", "fsl,imx6q-fec";

                            reg = <0x020b4000 0x4000>;

                            interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>,

                                        <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>;

                            clocks = <&clks IMX6UL_CLK_ENET>,

                                   <&clks IMX6UL_CLK_ENET_AHB>,

                                   <&clks IMX6UL_CLK_ENET_PTP>,

                                   <&clks IMX6UL_CLK_ENET2_REF_125M>, 

                                   <&clks IMX6UL_CLK_ENET2_REF_125M>;

                           

                            clock-names = "ipg", "ahb", "ptp",

                                         "enet_clk_ref", "enet_out";

                            stop-mode = <&gpr 0x10 4>;

                            fsl,num-tx-queues=<1>;

                            fsl,num-rx-queues=<1>;

                            fsl,magic-packet;

                            fsl,wakeup_irq = <0>;

                            status = "disabled";

                     };

 

/* MX6UL_PAD_SNVS_TAMPER3__GPIO5_IO03 is interrput IO */

              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

                            MX6UL_PAD_SNVS_TAMPER3__GPIO5_IO03         0x110a0

                     >;

              };

 

              pinctrl_enet2: enet2grp {

                     fsl,pins = <

                            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

                     >;

              };

 

0 Kudos
5 Replies

2,442 Views
Yuri
NXP Employee
NXP Employee

@jack_huang1 
Hello,

  Please check how MAC address is provided in Your system.
"By default, the Ethernet driver gets the MAC address from the Ethernet node property
"local-mac-address" in dts file. If dts does not have the property, the driver get the MAC
address from fuse. If the fuse does not burn the MAC address, the driver gets the MAC
address from the Ethernet registers set by the bootloader. If no legal MAC address exists,
MAC malfunctions. In this example, add the MAC address in the U-Boot command line
for kernel, such as "fec.macaddr=0x00,0x01,0x02,0x03,0x04,0x05" in bootargs."

Regards,
Yuri.

 

 

0 Kudos

2,429 Views
jack_huang1
Contributor III

Dear Yuri:

  •          My question is why is PHY found in FEC2? We're using fec1 on our board, so if I configure it in FEC1, it's not recognizable. FEC2 uses the FPGA and it doesn't have MDIO, so I configured it as FIXED-LINK.  In addition to the Mac problem mentioned above, if there is a problem with U Boot, U Boot can not be downloaded, but the situation is U Boot can be downloaded, which has nothing to do with the Mac.
  •         Please help to check whether it is configuration problem or other problems.

        Thank you.

         Best regards.

 

0 Kudos

2,364 Views
Yuri
NXP Employee
NXP Employee

Hello,

  in the device tree, MDIO  - reg = <1>;

Try port 0.

 

Regards,
Yuri

0 Kudos

2,404 Views
Yuri
NXP Employee
NXP Employee

@jack_huang1 
Hello,

  I requested the schematic via e-mail. Please provide it (as e-mail answer).

Regards,
Yuri.

0 Kudos

2,399 Views
jack_huang1
Contributor III

Dear Yuri:

          Please check the attach. Thank you!

0 Kudos