cmc_pu2: get mac address from environment

The environment is the canonical storage location of the mac address, so
we're killing off the global data location and moving everything to
querying the env directly.

Also rename load_sernum_ethaddr() to misc_init_r() so we don't need to
handle this board specially in common ARM code.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
CC: Ben Warren <biggerbadderben@gmail.com>
This commit is contained in:
Mike Frysinger 2009-02-11 19:55:01 -05:00 committed by Wolfgang Denk
parent d8d21e699d
commit 92b50ffef9
3 changed files with 4 additions and 19 deletions

View file

@ -66,14 +66,13 @@ int i2c_read (unsigned char chip, unsigned int addr, int alen,
* Internal structure: see struct definition
*/
void load_sernum_ethaddr (void)
void misc_init_r(void)
{
struct manufacturer_data data;
char ethaddr[18];
char serial [9];
unsigned short chksum;
unsigned char *p;
unsigned short i, is, id;
unsigned short i;
#if !defined(CONFIG_HARD_I2C) && !defined(CONFIG_SOFT_I2C)
#error you must define some I2C support (CONFIG_HARD_I2C or CONFIG_SOFT_I2C)
@ -97,17 +96,6 @@ void load_sernum_ethaddr (void)
return;
}
/* copy MAC address */
is = 0;
id = 0;
for (i = 0; i < 6; i++) {
sprintf (&ethaddr[id], "%02x", data.macadr[is++]);
id += 2;
if (is < 6)
ethaddr[id++] = ':';
}
ethaddr[id] = '\0'; /* just to be sure */
/* copy serial number */
sprintf (serial, "%d", data.serial_number);
@ -117,6 +105,6 @@ void load_sernum_ethaddr (void)
}
if (getenv("ethaddr") == NULL) {
setenv ("ethaddr", ethaddr);
eth_setenv_enetaddr("ethaddr", data.macadr);
}
}

View file

@ -143,6 +143,7 @@
#endif
#define CONFIG_MISC_INIT_R
#define CONFIG_SYS_LONGHELP
#define AT91_SMART_MEDIA_ALE (1 << 22) /* our ALE is AD22 */

View file

@ -381,10 +381,6 @@ void start_armboot (void)
devices_init (); /* get the devices list going. */
#ifdef CONFIG_CMC_PU2
load_sernum_ethaddr ();
#endif /* CONFIG_CMC_PU2 */
jumptable_init ();
#if defined(CONFIG_API)