diff options
author | Dan Willemsen <dwillemsen@nvidia.com> | 2011-09-14 17:15:50 -0700 |
---|---|---|
committer | Dan Willemsen <dwillemsen@nvidia.com> | 2013-09-14 12:31:05 -0700 |
commit | dfde239d714b04104272137f9d4b8440270af157 (patch) | |
tree | a983022cd634eaf0afe5c44b221994d7bdb4c99a /arch/arm/kernel | |
parent | ef17b048306cde21c5bfe4cfc84b73bcc4b26298 (diff) |
arm: tegra: Add ATAG_SERIAL parsing
Bug 973078
Change-Id: I2860402c887db414717ce313101dc09e8b327f99
Signed-off-by: Chinmay Kamat <ckamat@nvidia.com>
Reviewed-on: http://git-master/r/108699
Reviewed-by: Automatic_Commit_Validation_User
Reviewed-by: Stephen Warren <swarren@nvidia.com>
GVS: Gerrit_Virtual_Submit
Tested-by: Nitin Kumbhar <nkumbhar@nvidia.com>
Reviewed-by: Dan Willemsen <dwillemsen@nvidia.com>
Rebase-Id: R82da49a69edcc8feb45a5d77695ec67564f661c6
Diffstat (limited to 'arch/arm/kernel')
-rw-r--r-- | arch/arm/kernel/devtree.c | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/arch/arm/kernel/devtree.c b/arch/arm/kernel/devtree.c index 5859c8bc727c..2878968cb34e 100644 --- a/arch/arm/kernel/devtree.c +++ b/arch/arm/kernel/devtree.c @@ -20,6 +20,7 @@ #include <linux/of_platform.h> #include <asm/cputype.h> +#include <asm/system_info.h> #include <asm/setup.h> #include <asm/page.h> #include <asm/smp_plat.h> @@ -183,6 +184,9 @@ struct machine_desc * __init setup_machine_fdt(unsigned int dt_phys) unsigned int score, mdesc_score = ~1; unsigned long dt_root; const char *model; + __be32 *serial_prop; + u64 serial = 0; + unsigned long len; #ifdef CONFIG_ARCH_MULTIPLATFORM DT_MACHINE_START(GENERIC_DT, "Generic DT based system") @@ -233,7 +237,16 @@ struct machine_desc * __init setup_machine_fdt(unsigned int dt_phys) model = of_get_flat_dt_prop(dt_root, "compatible", NULL); if (!model) model = "<unknown>"; - pr_info("Machine: %s, model: %s\n", mdesc_best->name, model); + + serial_prop = of_get_flat_dt_prop(dt_root, "serial-num", &len); + if (serial_prop) { + serial = of_read_number(serial_prop, len / 4); + } + system_serial_high = serial >> 32; + system_serial_low = serial; + + pr_info("Machine: %s, model: %s, serial: %llu\n", mdesc_best->name, + model, serial); /* Retrieve various information from the /chosen node */ of_scan_flat_dt(early_init_dt_scan_chosen, boot_command_line); |