]> git.sur5r.net Git - u-boot/commit
Fix and optimize MII operations on FEC (MPC8xx) controllers
authorGuennadi Liakhovetski <lg@denx.de>
Thu, 29 Nov 2007 20:15:56 +0000 (21:15 +0100)
committerWolfgang Denk <wd@denx.de>
Wed, 9 Jan 2008 13:52:04 +0000 (14:52 +0100)
commitd197ffd8172c6fdef38733424640a9a47295d6e9
tree296c5701a1b39dc72696dd411a5be91190a66fff
parent6a5e1d75bf106fa157e9ce68bcaf4b13e8a1d214
Fix and optimize MII operations on FEC (MPC8xx) controllers

This patch fixes several issues at least on a MPC885 based system with two
FEC interfaces used in MII mode.

1. PHY discovery should first read PHY_PHYIDR2 register and only then
   PHY_PHYIDR1 like cpu/mpc8xx/fec.c::mii_discover_phy() does it,
   otherwise the values read are wrong. Also notice, that PHY discovery
   cannot work on MPC88x / MPC87x in setups with both FECs active at all
   in its present form, because for both interfaces the registers from FEC
   1 are used to communicate over MII.

2. Remove code duplication for resetting the FEC by isolating it into a
   separate function.

3. Initialize MII on FEC 1 when communicating over FEC 2 in fec_init().

4. Optimize mii_init() to only reset the FEC 1 controller once.

5. Fix a typo in mii_init() using index i instead of j thus potentially
   leading to unpredictable results.

Signed-off-by: Guennadi Liakhovetski <lg@denx.de>
cpu/mpc8xx/fec.c