using a DP83867 PHY with imx6sx custom board

Showing results for 
Search instead for 
Did you mean: 

using a DP83867 PHY with imx6sx custom board

Contributor III

Hi Community,

I have a custom board based on the imx6sx dev board. One difference is that we are using a Texas Instruments DP83867 Ethernet PHY instead of the one on the sabre sd dev board. Also, we're using the latest BSP for the imx6sx, 4.9.11_1.0.0.

So, I have changed the device tree and uboot code following the porting guide advice, and the phy comes up in u-boot. Also, the chip is enabled, and detects a link when an Ethernet cable is connected, so I'm pretty sure the DP83867 is working and happy. BUT I can't ping from u-boot and the eth0 interface doesn't come up in Linux, I get a SIOCSIFFLAGS: No such device error.

I set the MAC to random and in U-Boot I see the following: 

Warning: ethernet@02188000 (eth0) using random MAC address - 0a:ee:f4:99:54:0b
eth0: ethernet@02188000 [PRIME]
Warning: ethernet@021b4000 (eth1) using random MAC address - 12:5b:fd:40:3d:39
, eth1: ethernet@021b4000

and mii info gives:

PHY 0x00: OUI = 0x6037, Model = 0x04, Rev = 0x01, 100baseT, FDX
PHY 0x04: OUI = 0x6037, Model = 0x04, Rev = 0x01, 100baseT, FDX

In U-boot defconfig I added CONFIG_PHY_TI, and I selected the phy in the Linux menuconfig as well. Is there anything else that I need to do, though ? Do I have to change the code in /arch/arm/mach-imx/mach-imx6sx.c, too ? I noted that there are a couple of functions called by imx6sx_enet_phy_int that are specific for different PHYs, and also the clock is set, but we are using an external clock so do I need to worry about that ? Does anyone have any experience of using the DP83867 PHY with the imx ?



Labels (4)
0 Kudos
2 Replies

Contributor II

Was there any followup on this. We have similar problems with the DP83867 in U-Boot.

0 Kudos

NXP TechSupport
NXP TechSupport

Hi Mahtab

in linux one can check if enet clock is configured properly in IOMUXC_GPR_GPR1 register

(ENET_TX_CLK_DIR) and compare with mach-imx6sx.c function imx6sx_enet_clk_sel()

Best regards
Note: If this post answers your question, please click the Correct Answer button. Thank you!

0 Kudos