]> git.kernelconcepts.de Git - karo-tx-uboot.git/blobdiff - post/ether.c
* Patch by Pantelis Antoniou, 14 Sep 2004:
[karo-tx-uboot.git] / post / ether.c
index b041a43a996251fc9a0c92abcb6e67b015e4d406..660620e8f6282f7d04f4f6ac649ad61aa8d6a25d 100644 (file)
@@ -49,6 +49,7 @@
 
 #include <command.h>
 #include <net.h>
+#include <serial.h>
 
 #define MIN_PACKET_LENGTH      64
 #define MAX_PACKET_LENGTH      256
@@ -77,8 +78,6 @@ static struct {
 
 static char *ctlr_name[1] = { "SCC" };
 
-static int used_by_uart[1] = { -1 };
-
 /* Ethernet Transmit and Receive Buffers */
 #define DBUF_LENGTH  1520
 
@@ -358,10 +357,10 @@ CPM_CR_CH_SCC4 };
         */
 
        immr->im_cpm.cp_scc[scc_index].scc_gsmrl = (SCC_GSMRL_TCI |
-                                                                                               SCC_GSMRL_TPL_48 |
-                                                                                               SCC_GSMRL_TPP_10 |
-                                                                                               SCC_GSMRL_DIAG_LOOP |
-                                                                                               SCC_GSMRL_MODE_ENET);
+                                                   SCC_GSMRL_TPL_48 |
+                                                   SCC_GSMRL_TPP_10 |
+                                                   SCC_GSMRL_DIAG_LOOP |
+                                                   SCC_GSMRL_MODE_ENET);
 
        /*
         * Initialize the DSR -- see section 13.14.4 (pg. 513) v0.4
@@ -458,6 +457,7 @@ static void scc_halt (int scc_index)
 
        immr->im_cpm.cp_scc[scc_index].scc_gsmrl &=
                        ~(SCC_GSMRL_ENR | SCC_GSMRL_ENT);
+       immr->im_ioport.iop_pcso  &=  ~(PC_ENET_CLSN | PC_ENET_RENA);
 }
 
 static int scc_send (int index, volatile void *packet, int length)
@@ -513,7 +513,7 @@ static int scc_recv (int index, void *packet, int max_length)
                rxIdx++;
        }
 
-  Done:
+Done:
        return length;
 }
 
@@ -579,16 +579,10 @@ static int test_ctlr (int ctlr, int index)
 
        res = 0;
 
-  Done:
+Done:
 
        ctlr_proc[ctlr].halt (index);
 
-#if !defined(CONFIG_8xx_CONS_NONE)
-       if (used_by_uart[ctlr] == index) {
-               serial_init ();
-       }
-#endif
-
        /*
         * SCC2 Ethernet parameter RAM space overlaps
         * the SPI parameter RAM space. So we need to restore
@@ -614,16 +608,6 @@ int ether_post_test (int flags)
        int res = 0;
        int i;
 
-#if defined(CONFIG_8xx_CONS_SCC1)
-       used_by_uart[CTLR_SCC] = 0;
-#elif defined(CONFIG_8xx_CONS_SCC2)
-       used_by_uart[CTLR_SCC] = 1;
-#elif defined(CONFIG_8xx_CONS_SCC3)
-       used_by_uart[CTLR_SCC] = 2;
-#elif defined(CONFIG_8xx_CONS_SCC4)
-       used_by_uart[CTLR_SCC] = 3;
-#endif
-
        ctlr_proc[CTLR_SCC].init = scc_init;
        ctlr_proc[CTLR_SCC].halt = scc_halt;
        ctlr_proc[CTLR_SCC].send = scc_send;
@@ -635,6 +619,9 @@ int ether_post_test (int flags)
                }
        }
 
+#if !defined(CONFIG_8xx_CONS_NONE)
+       serial_reinit_all ();
+#endif
        return res;
 }