* Patch by Sean Chang, 9 Aug 2004:
- Added I2C support for ML300.
- Added support for ML300 to read out its environment information
stored on the EEPROM.
- Added support to use board specific parameters as part of
U-Boot's environment information.
- Updated MLD files to support configuration for new features
above.
* Patches by Travis Sawyer, 5 Aug 2004:
- Remove incorrect bridge settings for eth group 6
- Add call to setup bridge in ppc_440x_eth_initialize
- Fix ppc_440x_eth_init to reset the phy only if its the
first time through, otherwise, just check the phy for the
autonegotiated speed/duplex. This allows the use of netconsole
- only print the speed/duplex the first time the phy is reset.
This commit is contained in:
@@ -167,8 +167,6 @@ static void ppc_440x_eth_halt (struct eth_device *dev)
|
||||
/* EMAC RESET */
|
||||
out32 (EMAC_M0 + hw_p->hw_addr, EMAC_M0_SRST);
|
||||
|
||||
hw_p->print_speed = 1; /* print speed message again next time */
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -241,11 +239,9 @@ int ppc_440x_eth_setup_bridge(int devnum, bd_t * bis)
|
||||
zmiifer |= ZMII_FER_SMII << ZMII_FER_V (0);
|
||||
zmiifer |= ZMII_FER_SMII << ZMII_FER_V (1);
|
||||
rmiifer |= RGMII_FER_RGMII << RGMII_FER_V(2);
|
||||
rmiifer |= RGMII_FER_RGMII << RGMII_FER_V(3);
|
||||
bis->bi_phymode[0] = BI_PHYMODE_ZMII;
|
||||
bis->bi_phymode[1] = BI_PHYMODE_ZMII;
|
||||
bis->bi_phymode[2] = BI_PHYMODE_RGMII;
|
||||
bis->bi_phymode[3] = BI_PHYMODE_RGMII;
|
||||
break;
|
||||
case 0:
|
||||
default:
|
||||
@@ -426,8 +422,12 @@ static int ppc_440x_eth_init (struct eth_device *dev, bd_t * bis)
|
||||
|
||||
bis->bi_phynum[devnum] = reg;
|
||||
|
||||
/* Reset the phy */
|
||||
miiphy_reset (reg);
|
||||
/*
|
||||
* Reset the phy, only if its the first time through
|
||||
* otherwise, just check the speeds & feeds
|
||||
*/
|
||||
if (hw_p->first_init == 0) {
|
||||
miiphy_reset (reg);
|
||||
|
||||
#if defined(CONFIG_440_GX)
|
||||
#if defined(CONFIG_CIS8201_PHY)
|
||||
@@ -456,9 +456,10 @@ static int ppc_440x_eth_init (struct eth_device *dev, bd_t * bis)
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
/* Start/Restart autonegotiation */
|
||||
phy_setup_aneg (reg);
|
||||
udelay (1000);
|
||||
/* Start/Restart autonegotiation */
|
||||
phy_setup_aneg (reg);
|
||||
udelay (1000);
|
||||
}
|
||||
|
||||
miiphy_read (reg, PHY_BMSR, ®_short);
|
||||
|
||||
@@ -1167,6 +1168,10 @@ int ppc_440x_eth_initialize (bd_t * bis)
|
||||
bis->bi_phymode[2] = 2;
|
||||
bis->bi_phymode[3] = 2;
|
||||
|
||||
#if defined (CONFIG_440_GX)
|
||||
ppc_440x_eth_setup_bridge(0, bis);
|
||||
#endif
|
||||
|
||||
for (eth_num = 0; eth_num < EMAC_NUM_DEV; eth_num++) {
|
||||
|
||||
/* See if we can actually bring up the interface, otherwise, skip it */
|
||||
|
||||
Reference in New Issue
Block a user