Hello guys,
I am building my own custom board based on MCIMX6ULL-EVK (MCIMX6ULL-EVK|i.MX6ULL Evaluation Kit|NXP)
As we knew that i.MX6ULL SoC used KSZ8081MNX/RNB (which come from Microchip Technology Inc) for physical layer.
In my custom board, I changed KSZ8081MNX/RNB to LAN8720A (which is from SMSC Inc)
one of the difference between KSZ8081MNX/RNB and LAN8720A is KSZ8081MNX/RNB has 3bits address(PHY[0:2]), but LAN8720A only has 1bit (PHY[0])
In my board,
+ENET1 connected to LAN8720A' PHYAD0 pin connected to GND ==> PHY address=0
And then, I edited reg in imx6ull-14x14-evk.dts file (from reg = <2> to reg = <0>)
+ENET2 connected to LAN8720A' PHYAD0 pin connected to VCC ==> PHY address=1
And then, I remained reg = <1> in imx6ull-14x14-evk.dts file
I briefed my hardware connection, PHY hardware-address, PHY software-address of both MCIMX6ULL-EVK from NXP and from me as following:
Result:
- MCIMX6ULL-EVK from NXP: working on both Ethernet (eth0 & eth1)
- But my board: ENET2 (addr=1) working on, but ENET1(addr=0) is not working
+ I configure them via "ifup" command, output looked as following:
with ENET2 (eth0): interface eth0 already configured
but with ENET1 (eth1): SIOCSIFFLAGS: No such device
Please give me good ideal for fixing it.
Thank very much. Good luck for you!
Hi nguen
one can test non-working phy in uboot, please
check as example #define CONFIG_PHY_SMSC, #define CONFIG_FEC_MXC_PHYADDR
in uboot board file uboot/include/configs/mx6slevk.h
uboot-imx.git - Freescale i.MX u-boot Tree
Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------
Igorpadykov, thanks for your response
I just have checked file uboot/include/configs/mx6ullevk.h
I found CONFIG_FEC_MXC_PHYADDR:
#ifdef CONFIG_CMD_NET
#define CONFIG_CMD_PING
#define CONFIG_CMD_DHCP
#define </p>CONFIG_CMD_MII
#define CONFIG_FEC_MXC
#define CONFIG_MII
#define CONFIG_FEC_ENET_DEV 1
#if (CONFIG_FEC_ENET_DEV == 0)
#define IMX_FEC_BASE ENET_BASE_ADDR
#define CONFIG_FEC_MXC_PHYADDR 0x2
#define CONFIG_FEC_XCV_TYPE RMII
#elif (CONFIG_FEC_ENET_DEV == 1)
#define IMX_FEC_BASE ENET2_BASE_ADDR
#define CONFIG_FEC_MXC_PHYADDR 0x1
#define CONFIG_FEC_XCV_TYPE RMII
#endif
#define CONFIG_ETHPRIME "FEC"
#define CONFIG_PHYLIB
#define CONFIG_PHY_MICREL
#endif
But, CONFIG_PHY_SMSC, I not found.