Hi,
In our design we plan to use all three available AM1808 UARTs together with the EMAC Ethernet controller.
Due to the fact that on AM1808 the UART0 TXD / RXD lines are multiplexed with MII RXD[2] / MII RXD[3] pins we try to release the MII RXD/TXD lines and switch the eXperimenter AM1808 SOM LAN8710A PHY from the MII mode to the RMII mode run time.
As a base for our software reference design we use the uboot-03.20.00.12 version that comes with the DaVinci-PSP-SDK-03.20.00.12 SDK and it is compiled for the da850evm board.
The u-boot is programmed to the AM1808 together with the ubl_AM1808_SPI_MEM.bin Boot loader via Serial interface.
In order to implement the change we modified the original da850evm PINMUX and EMAC initialization sequence to the following procedure to switch the AM1808 LAN8710A PHY from the boot strapped MII mode to the run time RMII configuration:
- Configure the PINMUX for the MII mode.
- Configure the MII mode in the CFGCHIP3 register.
- Initialize the EMAC MDIO interface.
- Via MDIO interface operating in the MII mode write the LAN8710A PHY Special Mode Register 18 with value 0x4000 to enable the RMII mode.
- Via MDIO perform PHY soft reset by
setting the Soft Reset bit in the PHY Basic Control register. After reset PHY should come in RMII mode.
- Disable the EMAC MDIO interface.
- Configure the PINMUX for the RMII mode.
- Configure the RMII mode in the CFGHIP3 register.
- Initialize the EMAC driver with RMII mode enabled. (CONFIG_DRIVER_TI_EMAC_USE_RMII is defined)
- Try to communicate with the host PC via EMAC by sending the ping from the u-boot prompt.
As a result of the algorithm above we can access the PHY registers and see that the PHY correctly recognize the link status and can read other PHY registers. But when we try to communicate with the host by “ping” the communication fails.
Could you please, review our procedure may be we missed something?
Thank you beforehand,
Evgeny