Hi,
I've been working for some time on trying to make EMAC0 port working with an external PHY in RMII mode. My design is very similar to the DM8148 evm, but we had to replace the MII PHY that was on EMAC0, used on to the eval board, by a National (DP82848) which is only 10/100 and connect in RMII mode due to a lack of pin.
The MDIO port seems to work as I detect correctly the PHY at boot-up with a valid speed/link in both U-Boot and the Kernel. However, i'm unable to get an IP from my DHCP server nor ping my board by setting an IP manually. Using a scope on RxD0/1, TxD0/1, CRSDV, REFCLK and TxEN close to the micro show me activity on those lines. My Refclk is at 50MHz which i think is ok for RMII.
My pinmux is as followed :
MDIO (pin H28) = Fct 1
MDCLK (pin P24) = Fct 1
RefClk (pin J27) = Fct 1
TxEN (pin R23) = Fct 3
TxD0 (pin G28) = Fct 3
TxD1 (pin P23) = Fct 3
CRSDV (pin H27) = Fct 3
RxER (pin J26) = Fct 3
RxD0 (pin R23) = Fct 3
RxD1 (pin R25) = Fct 3
I also change the GMII_SEL register (addr = 0x48140650) to "0x5" for RMII mode.
The behavior is the same in the kernel and in U-Boot which mean the PHY is detected but I can't ping nor communicate using this connection even if pulses that looks ok are observed to both Tx and Rx pins of the micro. My assumption is that I missed something possibly related with the GigE or MII mode previously set on the evm but I can't find it... I'm pretty confident about my hardware and think that something is badly set in the code.
I tried different things in the CPSW structures of the "linux/devices.c" file of the kernel without any success (add rmii_en = 1 ; put gigabit_en = 0 ; phy_if = 4 ; ...)
Any idea...? Is someone could point me to the changes that should have been made to use a 10/100 RMII PHY instead of the one already connected on EMAC0 of the DM8148 evm...? I would like to have this work in both U-Boot and the Kernel...
Regards!
Sebastien