X-Git-Url: https://git.kernelconcepts.de/?p=karo-tx-uboot.git;a=blobdiff_plain;f=board%2Flge%2Fsniper%2Fsniper.c;h=b211528e2b550f4878d693743f2130c5d539edc3;hp=d5318c4f32823ec37e7b0d298257f9592ed03ae9;hb=36e4076eebf9a6ecae8f99d09a47b7c92a008c2d;hpb=97842e1ee9f04e8a5a54c3dcbbd048bd581ad09c diff --git a/board/lge/sniper/sniper.c b/board/lge/sniper/sniper.c index d5318c4f32..b211528e2b 100644 --- a/board/lge/sniper/sniper.c +++ b/board/lge/sniper/sniper.c @@ -9,6 +9,7 @@ #include #include #include +#include #include #include #include @@ -67,6 +68,54 @@ int board_init(void) return 0; } +int misc_init_r(void) +{ + char serial_string[17] = { 0 }; + char reboot_mode[2] = { 0 }; + u32 dieid[4] = { 0 }; + + /* Reboot mode */ + + reboot_mode[0] = omap_reboot_mode(); + if (reboot_mode[0] > 0 && isascii(reboot_mode[0])) { + if (!getenv("reboot-mode")) + setenv("reboot-mode", (char *)reboot_mode); + + 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();