From patchwork Wed Feb 19 21:01:48 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mark G X-Patchwork-Id: 236607 List-Id: U-Boot discussion From: mark at novtech.com (Mark G) Date: Wed, 19 Feb 2020 16:01:48 -0500 (EST) Subject: [PING][PATCH] Optionally: Set the serial# environment variable on the i.MX7. Message-ID: Enabling this new option allows the kernel to obtain the unique ID of the CPU when not using ATAGS. Signed-off-by: Mark G 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