]> git.openfabrics.org - ~emulex/infiniband.git/commitdiff
ARM: LPC32xx: Set system serial based on cpu unique id
authorAlexandre Pereira da Silva <aletes.xgr@gmail.com>
Fri, 20 Jul 2012 12:01:51 +0000 (14:01 +0200)
committerRoland Stigge <stigge@antcom.de>
Fri, 20 Jul 2012 12:01:51 +0000 (14:01 +0200)
LPC32xx SoC has a 128 bits unique id that can be used as a system
serial number, if none has been provided by atags or dt.

Signed-off-by: Alexandre Pereira da Silva <aletes.xgr@gmail.com>
Signed-off-by: Roland Stigge <stigge@antcom.de>
arch/arm/mach-lpc32xx/common.c

index 5c96057b6d78e2a864863a87e38e91a03086a62d..a48dc2dec4859a43be83a93d482469e19d8ced5d 100644 (file)
@@ -26,6 +26,7 @@
 #include <linux/io.h>
 
 #include <asm/mach/map.h>
+#include <asm/system_info.h>
 
 #include <mach/hardware.h>
 #include <mach/platform.h>
@@ -224,7 +225,7 @@ void lpc23xx_restart(char mode, const char *cmd)
                ;
 }
 
-static int __init lpc32xx_display_uid(void)
+static int __init lpc32xx_check_uid(void)
 {
        u32 uid[4];
 
@@ -233,6 +234,11 @@ static int __init lpc32xx_display_uid(void)
        printk(KERN_INFO "LPC32XX unique ID: %08x%08x%08x%08x\n",
                uid[3], uid[2], uid[1], uid[0]);
 
+       if (!system_serial_low && !system_serial_high) {
+               system_serial_low = uid[0];
+               system_serial_high = uid[1];
+       }
+
        return 1;
 }
-arch_initcall(lpc32xx_display_uid);
+arch_initcall(lpc32xx_check_uid);