[U-Boot-Users] IBM/AMCC 440EP ethernet question

I'm using a 440EP with MII mode selected, and a Broadcom AC101L phy. Autonegotiation was failing, so as an experiment, I tried replacing the start of autonegotiation in 440gx_enet.c, with setting the speed manually. I did a miiphy_write to PHY_BMCR (the control register) with 0x8100 (which should specify 10mbps, full duplex). The miiphy_write returns 0 which means it doesn't think it failed, but when I look at the value in the control register as spit out by miiphy_dump, it is still 0x3000 (which is 100mbps and half-duplex), which is the same value I always see there.
I don't think this is just a U-boot problem because I can duplicate what's happening using just a Abatron BDI2000. When I write a 0x81002400 into the EMAC_STACR register (which should set the control register of the phy to 0x8100), and then write a 0x00001400 into EMAC_STACR (which should request a read of the same register), and then look at the EMAC_STACR register in the debugger, it has the same 0x3000 as I see in U-Boot. It seems likely to me though that if anyone has gotten the 440EP to work with MII in U-Boot, then they might be able to shed some light on what is going wrong for me.
Any advice is appreciated, Miles

On Tue, 15 Feb 2005 21:09:52 -0800, Miles Gazic mgazic@earthlink.net wrote:
I'm using a 440EP with MII mode selected, and a Broadcom AC101L phy. Autonegotiation was failing, so as an experiment, I tried replacing the start of autonegotiation in 440gx_enet.c, with setting the speed manually.
I'm not sure if I can help much, but I've managed to get the Ethernet on the 440EP working. We have an RMII PHY and use the file 405gp_enet.c.
If you use that file, there are no major changes (for RMII) to be completed. There was a small bug in the code that occurs for 440 Processors. I have yet to finnish my port so there are no completed patches yet. The bug is simple and simple to fix (a missing else condition). Just look for "if( get_pvr() == PVR_440GP_RB)" if you are interested.
With the 405gp_enet.c code (I am not sure about the 440gx_enet.c code) the default operation of the ZMII is RMII so you might want to check that something similar has not been set in the 440gx_enet.c code.
Good Luck,
participants (2)
-
Bradley Remedios
-
Miles Gazic