Hi, all.
We use BCM5461S as the EMAC phy in DM8167, and we want to get the 1000bps mode of EMAC to work both under u-boot and linux kernel.
The gigabit mode of EMAC in TI EVM board is OK, but the reason is that the phy used in TI EVM provides the TX_CLK to EMAC even under gigabit mode. In our board BCM5461S doesn't provides TX_CLK under gigabit mode, so the workaround code in u-boot doesn't work for our board.
The second workaround for EMAC gigabit mode in DM8167 errata recommends using the hardware to disable the 1-Gbps mode. It's not applicable to us, because we have enabled the 1-Gbps mode in our board by default, so we need a workaround implemented by software.
After some search in TI e2e forum, I found a helpful post about the workaround for the gigabit mode of DM8167 EMAC. It seems to me that it's a software workaround. In this post, Anshuman Saxena recommends that the auto-negotiation of the phy must be disabled, and the phy should be put in MII mode forcibly before enabling EMAC controller, and after the enabling of EMAC controller, the phy can be put in auto-negotiation mode again. I tried the workaround in u-boot, but it didn't work either.
In function davinci_emac_initialize, after the enabling of mdio and detecting of phy address, we added some mdio read/write to disable the auto-negotiation of the phy and to put the phy under 100Mbps + full duplex mode, and the function davinci_emac_initialize is invoked absolutely before the software reset of the EMAC controller which is done in davinci_eth_open. After re-programming the new u-boot.bin to the our NOR Flash, rebooting, and entering the u-boot shell, we used the ping command to test whether or not the workaround worked. During the execution of the ping command, the auto-negotiation of the phy is enabled and the 1-Gbps auto-negotiation succeeded, but the ping failed. We have checked the connection cable and the PC host connected to our board directly, they are OK, so the only possible reason is that the workaround provided in the above post didn't work.
For phy providing TX_CLK under gigabit mode or not, Can the workaround for DM8167 EMAC controller gigabit mode only been done by hardware ? Is there a way to implement the workaround in software ?
Thanks,
htbegin