Enabline this new option allows the kernel to obtain the unique ID of the CPU when not using ATAGS.

Signed-off-by: Mark G <m...@novtech.com>
---
 arch/arm/include/asm/bootm.h  |  2 +-
 arch/arm/mach-imx/mx7/Kconfig |  7 +++++++
 arch/arm/mach-imx/mx7/soc.c   | 15 ++++++++++++++-
 3 files changed, 22 insertions(+), 2 deletions(-)

diff --git a/arch/arm/include/asm/bootm.h b/arch/arm/include/asm/bootm.h
index a2131ca07c..64ceb36ed8 100644
--- a/arch/arm/include/asm/bootm.h
+++ b/arch/arm/include/asm/bootm.h
@@ -39,7 +39,7 @@ extern void udc_disconnect(void);
 #endif

 struct tag_serialnr;
-#ifdef CONFIG_SERIAL_TAG
+#if defined(CONFIG_SERIAL_TAG) || defined(CONFIG_SET_SERIAL_ENV)
  #define BOOTM_ENABLE_SERIAL_TAG       1
 void get_board_serial(struct tag_serialnr *serialnr);
 #else
diff --git a/arch/arm/mach-imx/mx7/Kconfig b/arch/arm/mach-imx/mx7/Kconfig
index 286d36589d..4cf14d43c0 100644
--- a/arch/arm/mach-imx/mx7/Kconfig
+++ b/arch/arm/mach-imx/mx7/Kconfig
@@ -71,6 +71,13 @@ config TARGET_COLIBRI_IMX7

 endchoice

+config SET_SERIAL_ENV
+       bool "Set serial number variable from the OCOTP"
+       help
+         Selecting this option will populate the serial# environment
+         variable with a unique identifier from the i.MX7 CPU. The
+         Linux kernel will use this as the serial number of the machine.
+
 config SYS_SOC
        default "mx7"

diff --git a/arch/arm/mach-imx/mx7/soc.c b/arch/arm/mach-imx/mx7/soc.c
index 4aafeed188..208400a4a7 100644
--- a/arch/arm/mach-imx/mx7/soc.c
+++ b/arch/arm/mach-imx/mx7/soc.c
@@ -344,11 +344,24 @@ int arch_misc_init(void)
        sec_init();
 #endif

+#ifdef CONFIG_SET_SERIAL_ENV
+       {
+               struct tag_serialnr serialnr;
+               char serialbuf[sizeof(serialnr) * 2 + 8];
+
+               get_board_serial(&serialnr);
+               snprintf(serialbuf, sizeof(serialbuf),
+                        "%08lx%08lx",
+                        (ulong)serialnr.high, (ulong)serialnr.low);
+               env_set("serial#", serialbuf);
+       }
+#endif
+
        return 0;
 }
 #endif

-#ifdef CONFIG_SERIAL_TAG
+#if defined(CONFIG_SERIAL_TAG) || defined(CONFIG_SET_SERIAL_ENV)
 /*
  * OCOTP_TESTER
  * i.MX 7Solo Applications Processor Reference Manual, Rev. 0.1, 08/2016
--
2.17.1

Reply via email to