diff options
| -rw-r--r-- | board/kup/common/kup.h | 2 | ||||
| -rw-r--r-- | board/kup/kup4k/kup4k.c | 1 | ||||
| -rw-r--r-- | board/kup/kup4x/kup4x.c | 2 | ||||
| -rw-r--r-- | board/m501sk/m501sk.c | 5 | ||||
| -rw-r--r-- | board/pcs440ep/pcs440ep.c | 31 | ||||
| -rw-r--r-- | board/tqc/tqm8xx/tqm8xx.c | 3 | ||||
| -rw-r--r-- | include/common.h | 2 | ||||
| -rw-r--r-- | lib_ppc/board.c | 6 | 
8 files changed, 21 insertions, 31 deletions
| diff --git a/board/kup/common/kup.h b/board/kup/common/kup.h index 70d7f01e6..b73628310 100644 --- a/board/kup/common/kup.h +++ b/board/kup/common/kup.h @@ -41,4 +41,6 @@  extern void poweron_key (void); +extern void load_sernum_ethaddr(void); +  #endif	/* __KUP_H */ diff --git a/board/kup/kup4k/kup4k.c b/board/kup/kup4k/kup4k.c index df3ffb4d7..98f5f5a30 100644 --- a/board/kup/kup4k/kup4k.c +++ b/board/kup/kup4k/kup4k.c @@ -250,6 +250,7 @@ int misc_init_r (void)  	immap->im_ioport.iop_papar &= ~0x80;  	immap->im_ioport.iop_padat |= 0x80;	/* turn it off */  #endif +	load_sernum_ethaddr();  	setenv("hw","4k");  	poweron_key();  	return (0); diff --git a/board/kup/kup4x/kup4x.c b/board/kup/kup4x/kup4x.c index c5b742dd7..65a222b5e 100644 --- a/board/kup/kup4x/kup4x.c +++ b/board/kup/kup4x/kup4x.c @@ -295,7 +295,6 @@ static long int dram_size (long int mamr_value, long int *base,  int misc_init_r (void)  {  	volatile immap_t *immap = (immap_t *) CONFIG_SYS_IMMR; -  #ifdef CONFIG_IDE_LED  	/* Configure PA8 as output port */  	immap->im_ioport.iop_padir |= 0x80; @@ -306,6 +305,7 @@ int misc_init_r (void)  #ifdef KUP4X_USB  	usb_init_kup4x ();  #endif +	load_sernum_ethaddr();  	setenv ("hw", "4x");  	poweron_key ();  	return (0); diff --git a/board/m501sk/m501sk.c b/board/m501sk/m501sk.c index 65a8b2989..dc5b786c0 100644 --- a/board/m501sk/m501sk.c +++ b/board/m501sk/m501sk.c @@ -105,11 +105,6 @@ uchar m501sk_gpio_clear(M501SK_PIO io)  	return status;  } -void load_sernum_ethaddr(void) -{ -	return; -} -  /*   * Miscelaneous platform dependent initialisations   */ diff --git a/board/pcs440ep/pcs440ep.c b/board/pcs440ep/pcs440ep.c index 5fd3291e4..27272142c 100644 --- a/board/pcs440ep/pcs440ep.c +++ b/board/pcs440ep/pcs440ep.c @@ -182,14 +182,21 @@ int board_early_init_f(void)  }  #define EEPROM_LEN	256 -void load_sernum_ethaddr (void) +static void load_ethaddr(void)  { +	int	ok_ethaddr, ok_eth1addr;  	int	ret;  	char	buf[EEPROM_LEN];  	char	mac[32];  	char	*use_eeprom;  	u16	checksumcrc16 = 0; +	/* If the env is sane, then nothing for us to do */ +	ok_ethaddr = eth_getenv_enetaddr("ethaddr", buf); +	ok_eth1addr = eth_getenv_enetaddr("eth1addr", buf); +	if (ok_ethaddr && ok_eth1addr) +		return; +  	/* read the MACs from EEprom */  	status_led_set (0, STATUS_LED_ON);  	status_led_set (1, STATUS_LED_ON); @@ -207,22 +214,10 @@ void load_sernum_ethaddr (void)  			printf("%s: EEPROM Checksum not OK\n", __FUNCTION__);  		} else {  			/* get the MACs */ -			sprintf (mac, "%02x:%02x:%02x:%02x:%02x:%02x", -				buf[3], -				buf[4], -				buf[5], -				buf[6], -				buf[7], -				buf[8]); -			setenv ("ethaddr", (char *) mac); -			sprintf (mac, "%02x:%02x:%02x:%02x:%02x:%02x", -				buf[9], -				buf[10], -				buf[11], -				buf[12], -				buf[13], -				buf[14]); -			setenv ("eth1addr", (char *) mac); +			if (!ok_ethaddr) +				eth_setenv_enetaddr("ethaddr", &buf[3]); +			if (!ok_eth1addr) +				eth_setenv_enetaddr("eth1addr", &buf[9]);  			return;  		}  	} @@ -446,6 +441,8 @@ int misc_init_r (void)  	uint pbcr;  	int size_val = 0; +	load_ethaddr(); +  	/* Re-do sizing to get full correct info */  	mtdcr(ebccfga, pb0cr);  	pbcr = mfdcr(ebccfgd); diff --git a/board/tqc/tqm8xx/tqm8xx.c b/board/tqc/tqm8xx/tqm8xx.c index e065d69dd..f92c598dd 100644 --- a/board/tqc/tqm8xx/tqm8xx.c +++ b/board/tqc/tqm8xx/tqm8xx.c @@ -449,11 +449,14 @@ int board_early_init_r (void)  #ifdef CONFIG_MISC_INIT_R +extern void load_sernum_ethaddr(void);  int misc_init_r (void)  {  	volatile immap_t *immap = (immap_t *) CONFIG_SYS_IMMR;  	volatile memctl8xx_t *memctl = &immap->im_memctl; +	load_sernum_ethaddr(); +  #ifdef	CONFIG_SYS_OR_TIMING_FLASH_AT_50MHZ  	int scy, trlx, flash_or_timing, clk_diff; diff --git a/include/common.h b/include/common.h index 22ab80bf2..952ddfffa 100644 --- a/include/common.h +++ b/include/common.h @@ -364,8 +364,6 @@ void  display_mem_map(void);  void  perform_soft_reset(void);  #endif -void	load_sernum_ethaddr (void); -  /* $(BOARD)/$(BOARD).c */  int board_early_init_f (void);  int board_late_init (void); diff --git a/lib_ppc/board.c b/lib_ppc/board.c index dc5be3bd0..10a4d37e2 100644 --- a/lib_ppc/board.c +++ b/lib_ppc/board.c @@ -943,12 +943,6 @@ void board_init_r (gd_t *id, ulong dest_addr)  	}  #endif -#if defined(CONFIG_TQM8xxL) || defined(CONFIG_TQM8260) || \ -    defined(CONFIG_TQM8272) || \ -    defined(CONFIG_CCM) || defined(CONFIG_KUP4K) || \ -    defined(CONFIG_KUP4X) || defined(CONFIG_PCS440EP) -	load_sernum_ethaddr (); -#endif  	/* IP Address */  	bd->bi_ip_addr = getenv_IPaddr ("ipaddr"); |