[PING][PATCH] Optionally: Set the serial# environment variable on the i.MX7.
Mark G
mark at novtech.com
Wed Feb 19 22:01:48 CET 2020
Enabling this new option allows the kernel to obtain the unique ID of the
CPU when not using ATAGS.
Signed-off-by: Mark G <mark at novtech.com>
---
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
More information about the U-Boot
mailing list