PERFORCE change 99455 for review
Warner Losh
imp at FreeBSD.org
Sat Jun 17 19:48:42 UTC 2006
http://perforce.freebsd.org/chv.cgi?CH=99455
Change 99455 by imp at imp_lighthouse on 2006/06/17 19:48:09
Detect what state the boot loader left the RMII bit before we frob
the device. This allows us to let the boot loader cope and to then
boot the same kernel on RMII and MII boards. Change #ifdef to if
to cope later.
Affected files ...
.. //depot/projects/arm/src/sys/arm/at91/if_ate.c#51 edit
Differences ...
==== //depot/projects/arm/src/sys/arm/at91/if_ate.c#51 (text+ko) ====
@@ -96,6 +96,7 @@
int txcur; /* current tx map pointer */
bus_addr_t rx_desc_phys;
eth_rx_desc_t *rx_descs;
+ int use_rmii;
struct ifmib_iso_8802_3 mibdata; /* stuff for network mgmt */
};
@@ -174,6 +175,8 @@
if (err)
goto out;
+ sc->use_rmii = (RD4(sc, ETH_CFG) & ETH_CFG_RMII) == ETH_CFG_RMII;
+
/* calling atestop before ifp is set is OK */
atestop(sc);
ATE_LOCK_INIT(sc);
@@ -182,6 +185,7 @@
ate_get_mac(sc, eaddr);
ate_set_mac(sc, eaddr);
+
sc->ifp = ifp = if_alloc(IFT_ETHER);
if (mii_phy_probe(dev, &sc->miibus, ate_ifmedia_upd, ate_ifmedia_sts)) {
device_printf(dev, "Cannot find my PHY.\n");
@@ -693,11 +697,11 @@
* to this chip. Select the right one based on a compile-time
* option.
*/
-#ifdef ATE_USE_RMII
- WR4(sc, ETH_CFG, RD4(sc, ETH_CFG) | ETH_CFG_RMII);
-#else
- WR4(sc, ETH_CFG, RD4(sc, ETH_CFG) & ~ETH_CFG_RMII);
-#endif
+ if (sc->use_rmii)
+ WR4(sc, ETH_CFG, RD4(sc, ETH_CFG) | ETH_CFG_RMII);
+ else
+ WR4(sc, ETH_CFG, RD4(sc, ETH_CFG) & ~ETH_CFG_RMII);
+
/*
* Turn on the multicast hash, and write 0's to it.
*/
More information about the p4-projects
mailing list