Merge with /home/hs/U-Boot/u-boot-dev
[oweals/u-boot.git] / cpu / mcf52x2 / fec.c
index b8b82d07dc2d859e2c503aebf57167234832b0fb..702563d7dba80de3cadf2cae310948d3525d75d0 100644 (file)
 #include <malloc.h>
 #include <asm/fec.h>
 
+#ifdef  CONFIG_M5271
+#include <asm/m5271.h>
+#include <asm/immap_5271.h>
+#endif
+
 #ifdef CONFIG_M5272
 #include <asm/m5272.h>
 #include <asm/immap_5272.h>
@@ -41,7 +46,7 @@
 #ifdef CONFIG_M5272
 #define FEC_ADDR               (CFG_MBAR + 0x840)
 #endif
-#ifdef CONFIG_M5282
+#if defined(CONFIG_M5282) || defined(CONFIG_M5271)
 #define FEC_ADDR               (CFG_MBAR + 0x1000)
 #endif
 
@@ -242,6 +247,17 @@ int eth_init (bd_t * bd)
 #endif
 #undef ea
 
+#ifdef CONFIG_M5271
+       /* Clear multicast address hash table
+        */
+       fecp->fec_ghash_table_high = 0;
+       fecp->fec_ghash_table_low = 0;
+
+       /* Clear individual address hash table
+        */
+       fecp->fec_ihash_table_high = 0;
+       fecp->fec_ihash_table_low = 0;
+#else
        /* Clear multicast address hash table
         */
 #ifdef CONFIG_M5282
@@ -251,6 +267,7 @@ int eth_init (bd_t * bd)
        fecp->fec_hash_table_high = 0;
        fecp->fec_hash_table_low = 0;
 #endif
+
        /* Set maximum receive buffer size.
         */
        fecp->fec_r_buff_size = PKT_MAXBLR_SIZE;
@@ -305,10 +322,11 @@ int eth_init (bd_t * bd)
 
        /* Enable MII mode
         */
-#if 0                          /* Full duplex mode */
+
+#if 0  /* Full duplex mode */
        fecp->fec_r_cntrl = FEC_RCNTRL_MII_MODE;
        fecp->fec_x_cntrl = FEC_TCNTRL_FDEN;
-#else  /* Half duplex mode */
+#else  /* Half duplex mode */
         fecp->fec_r_cntrl = (PKT_MAXBUF_SIZE << 16); /* set max frame length */
        fecp->fec_r_cntrl |= FEC_RCNTRL_MII_MODE | FEC_RCNTRL_DRT;
        fecp->fec_x_cntrl = 0;