diff options
Diffstat (limited to 'post/ether.c')
-rw-r--r-- | post/ether.c | 27 |
1 files changed, 7 insertions, 20 deletions
diff --git a/post/ether.c b/post/ether.c index 47aa352..660620e 100644 --- a/post/ether.c +++ b/post/ether.c @@ -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 @@ -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; } |