PERFORCE change 96670 for review

Warner Losh imp at FreeBSD.org
Thu May 4 20:41:10 UTC 2006


http://perforce.freebsd.org/chv.cgi?CH=96670

Change 96670 by imp at imp_hammer on 2006/05/04 20:40:52

	support RMII, minor optimizations to save 32 bytes

Affected files ...

.. //depot/projects/arm/src/sys/boot/arm/at91/libat91/emac.c#12 edit

Differences ...

==== //depot/projects/arm/src/sys/boot/arm/at91/libat91/emac.c#12 (text+ko) ====

@@ -406,7 +406,13 @@
 
 	pEmac->EMAC_CTL  = 0;
 
-	if(!(pEmac->EMAC_SR & AT91C_EMAC_LINK))
+	pEmac->EMAC_CFG  = (pEmac->EMAC_CFG & ~(AT91C_EMAC_CLK)) |
+		AT91C_EMAC_CLK_HCLK_32 | AT91C_EMAC_CAF
+#ifdef BOOT_TSC
+	  | AT91C_EMAC_RMII
+#endif
+	  ;
+	if (!(pEmac->EMAC_SR & AT91C_EMAC_LINK))
 		MII_GetLinkSpeed(pEmac);
 
 	// the sequence write EMAC_SA1L and write EMAC_SA1H must be respected
@@ -415,10 +421,7 @@
 
 	pEmac->EMAC_RBQP = (unsigned) p_rxBD;
 	pEmac->EMAC_RSR  |= (AT91C_EMAC_OVR | AT91C_EMAC_REC | AT91C_EMAC_BNA);
-	pEmac->EMAC_CFG  |= AT91C_EMAC_CAF;
-	pEmac->EMAC_CFG  = (pEmac->EMAC_CFG & ~(AT91C_EMAC_CLK)) |
-		AT91C_EMAC_CLK_HCLK_32;
-	pEmac->EMAC_CTL  |= (AT91C_EMAC_TE | AT91C_EMAC_RE);
+	pEmac->EMAC_CTL  = AT91C_EMAC_TE | AT91C_EMAC_RE;
 
 	pEmac->EMAC_TAR = (unsigned)transmitBuffer;
 }	
@@ -544,6 +547,7 @@
 		  AT91C_PA8_ETXEN | AT91C_PA16_EMDIO | AT91C_PA9_ETX0 |
 		  AT91C_PA10_ETX1 | AT91C_PA11_ECRS_ECRSDV | AT91C_PA15_EMDC |
 		  AT91C_PA7_ETXCK_EREFCK;
+#ifdef BOOT_MB920X	/* Really !RMII */
 		AT91C_BASE_PIOB->PIO_BSR =
 		  AT91C_PB12_ETX2 | AT91C_PB13_ETX3 | AT91C_PB14_ETXER |
 		  AT91C_PB15_ERX2 | AT91C_PB16_ERX3 | AT91C_PB17_ERXDV |
@@ -552,6 +556,7 @@
 		  AT91C_PB12_ETX2 | AT91C_PB13_ETX3 | AT91C_PB14_ETXER |
 		  AT91C_PB15_ERX2 | AT91C_PB16_ERX3 | AT91C_PB17_ERXDV |
 		  AT91C_PB18_ECOL | AT91C_PB19_ERXCK;
+#endif
 		MAC_init = 1;
 	}
 


More information about the p4-projects mailing list