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 <vap...@gentoo.org>
CC: Ben Warren <biggerbadder...@gmail.com>
---
 board/cmc_pu2/load_sernum_ethaddr.c |   18 +++---------------
 include/configs/cmc_pu2.h           |    1 +
 lib_arm/board.c                     |    4 ----
 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 354566c..5ef9f20 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 d9acb47..e5c74e1 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 8fe2f41..7199f52 100644
--- a/lib_arm/board.c
+++ b/lib_arm/board.c
@@ -382,10 +382,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 ();
 
        console_init_r ();      /* fully init console as a device */
-- 
1.6.1.3

_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to