sniper: Pass serial number through ATAG
[karo-tx-uboot.git] / board / lge / sniper / sniper.c
index 44d422d..b211528 100644 (file)
@@ -70,7 +70,9 @@ int board_init(void)
 
 int misc_init_r(void)
 {
+       char serial_string[17] = { 0 };
        char reboot_mode[2] = { 0 };
+       u32 dieid[4] = { 0 };
 
        /* Reboot mode */
 
@@ -82,9 +84,38 @@ int misc_init_r(void)
                omap_reboot_mode_clear();
        }
 
+       /* Serial number */
+
+       get_dieid((u32 *)&dieid);
+
+       if (!getenv("serial#")) {
+               snprintf(serial_string, sizeof(serial_string),
+                       "%08x%08x", dieid[0], dieid[3]);
+
+               setenv("serial#", serial_string);
+       }
+
        return 0;
 }
 
+void get_board_serial(struct tag_serialnr *serialnr)
+{
+       char *serial_string;
+       unsigned long long serial;
+
+       serial_string = getenv("serial#");
+
+       if (serial_string) {
+               serial = simple_strtoull(serial_string, NULL, 16);
+
+               serialnr->high = (unsigned int) (serial >> 32);
+               serialnr->low = (unsigned int) (serial & 0xffffffff);
+       } else {
+               serialnr->high = 0;
+               serialnr->low = 0;
+       }
+}
+
 void set_muxconf_regs(void)
 {
        MUX_SNIPER();