Signed-off-by: Jonathan Liu <[email protected]>
---
 board/sunxi/board.c            | 28 ++++++++++++++++++++++++++++
 include/configs/sunxi-common.h |  2 ++
 2 files changed, 30 insertions(+)

diff --git a/board/sunxi/board.c b/board/sunxi/board.c
index 6c362a3..0db46b0 100644
--- a/board/sunxi/board.c
+++ b/board/sunxi/board.c
@@ -22,9 +22,12 @@
 #include <axp221.h>
 #endif
 #include <asm/arch/clock.h>
+#include <asm/arch/cpu.h>
 #include <asm/arch/dram.h>
 #include <asm/arch/gpio.h>
 #include <asm/arch/mmc.h>
+#include <asm/io.h>
+#include <net.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
@@ -213,3 +216,28 @@ void spl_display_print(void)
        printf("Board: %s\n", CONFIG_SYS_BOARD_NAME);
 }
 #endif
+
+#ifdef CONFIG_MISC_INIT_R
+int misc_init_r(void)
+{
+       if (!getenv("ethaddr")) {
+               uint32_t reg_val = readl(SUNXI_SID_BASE);
+
+               if (reg_val) {
+                       uint8_t mac_addr[6];
+
+                       mac_addr[0] = 0x02; /* Non OUI / registered MAC address 
*/
+                       mac_addr[1] = (reg_val >>  0) & 0xff;
+                       reg_val = readl(SUNXI_SID_BASE + 0x0c);
+                       mac_addr[2] = (reg_val >> 24) & 0xff;
+                       mac_addr[3] = (reg_val >> 16) & 0xff;
+                       mac_addr[4] = (reg_val >>  8) & 0xff;
+                       mac_addr[5] = (reg_val >>  0) & 0xff;
+
+                       eth_setenv_enetaddr("ethaddr", mac_addr);
+               }
+       }
+
+       return 0;
+}
+#endif
diff --git a/include/configs/sunxi-common.h b/include/configs/sunxi-common.h
index e11c4ee..948a49d 100644
--- a/include/configs/sunxi-common.h
+++ b/include/configs/sunxi-common.h
@@ -419,6 +419,8 @@
 #define CONFIG_ENV_IS_NOWHERE
 #endif
 
+#define CONFIG_MISC_INIT_R
+
 #ifndef CONFIG_SPL_BUILD
 #include <config_distro_defaults.h>
 #endif
-- 
1.9.3

-- 
You received this message because you are subscribed to the Google Groups 
"linux-sunxi" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to