summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Frysinger <vapier@gentoo.org>2009-02-11 19:55:01 -0500
committerWolfgang Denk <wd@denx.de>2009-03-20 22:39:12 +0100
commit92b50ffef978f05858a0ff4cbe88430bc51a28a2 (patch)
treedce17341b86d5d280a33d8c7ee71156d032515ad
parentd8d21e699d7fcfb6ab11635110266dd09b7edc62 (diff)
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>
-rw-r--r--board/cmc_pu2/load_sernum_ethaddr.c18
-rw-r--r--include/configs/cmc_pu2.h1
-rw-r--r--lib_arm/board.c4
3 files changed, 4 insertions, 19 deletions
diff --git a/board/cmc_pu2/load_sernum_ethaddr.c b/board/cmc_pu2/load_sernum_ethaddr.c
index 354566c05..5ef9f20c0 100644
--- a/board/cmc_pu2/load_sernum_ethaddr.c
+++ b/board/cmc_pu2/load_sernum_ethaddr.c
@@ -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);
}
}
diff --git a/include/configs/cmc_pu2.h b/include/configs/cmc_pu2.h
index d9acb470f..e5c74e136 100644
--- a/include/configs/cmc_pu2.h
+++ b/include/configs/cmc_pu2.h
@@ -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 */
diff --git a/lib_arm/board.c b/lib_arm/board.c
index 11a6eb619..3dfaec01b 100644
--- a/lib_arm/board.c
+++ b/lib_arm/board.c
@@ -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)