diff options
Diffstat (limited to 'board/cm-bf537e/cm-bf537e.c')
| -rw-r--r-- | board/cm-bf537e/cm-bf537e.c | 34 | 
1 files changed, 22 insertions, 12 deletions
| diff --git a/board/cm-bf537e/cm-bf537e.c b/board/cm-bf537e/cm-bf537e.c index 1e350dc06..38dbc6e73 100644 --- a/board/cm-bf537e/cm-bf537e.c +++ b/board/cm-bf537e/cm-bf537e.c @@ -24,27 +24,37 @@ int checkboard(void)  	return 0;  } -#ifdef CONFIG_BFIN_MAC -static void board_init_enetaddr(uchar *mac_addr) +static void board_init_enetaddr(char *var)  { -	puts("Warning: Generating 'random' MAC address\n"); -	bfin_gen_rand_mac(mac_addr); -	eth_setenv_enetaddr("ethaddr", mac_addr); +#ifdef CONFIG_NET_MULTI +	uchar enetaddr[6]; + +	if (eth_getenv_enetaddr(var, enetaddr)) +		return; + +	printf("Warning: %s: generating 'random' MAC address\n", var); +	bfin_gen_rand_mac(enetaddr); +	eth_setenv_enetaddr(var, enetaddr); +#endif  } +#ifndef CONFIG_BFIN_MAC +# define bfin_EMAC_initialize(x) 1 +#endif +#ifndef CONFIG_SMC911X +# define smc911x_initialize(n, x) 1 +#endif  int board_eth_init(bd_t *bis)  { -	return bfin_EMAC_initialize(bis); +	/* return ok if at least 1 eth device works */ +	return bfin_EMAC_initialize(bis) & +	       smc911x_initialize(0, CONFIG_SMC911X_BASE);  } -#endif  int misc_init_r(void)  { -#ifdef CONFIG_BFIN_MAC -	uchar enetaddr[6]; -	if (!eth_getenv_enetaddr("ethaddr", enetaddr)) -		board_init_enetaddr(enetaddr); -#endif +	board_init_enetaddr("ethaddr"); +	board_init_enetaddr("eth1addr");  	gpio_cfi_flash_init(); |