All of lore.kernel.org
 help / color / mirror / Atom feed
From: Patrick Delaunay <patrick.delaunay@st.com>
To: u-boot@lists.denx.de
Subject: [PATCH 03/16] arm: stm32mp: reset to default environment when serial# change
Date: Tue, 31 Mar 2020 18:04:20 +0200	[thread overview]
Message-ID: <20200331180330.3.I8f6df6d28ce5b4b601ced711af3699d95e1576fb@changeid> (raw)
In-Reply-To: <20200331180330.1.Ied6708bad5048382a57618f95d67c549aae49f42@changeid>

Serial number is first checked and, in case of mismatch, all
environment variables are reset to their default value.

This patch allows to detect that environment is saved in a removable
device, as a SD card, and reused on a other board, potentially with
incompatible variables.

Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com>
---

 arch/arm/mach-stm32mp/cpu.c | 20 +++++++++++++++-----
 1 file changed, 15 insertions(+), 5 deletions(-)

diff --git a/arch/arm/mach-stm32mp/cpu.c b/arch/arm/mach-stm32mp/cpu.c
index 9aa5794334..365c2aa4f7 100644
--- a/arch/arm/mach-stm32mp/cpu.c
+++ b/arch/arm/mach-stm32mp/cpu.c
@@ -511,8 +511,9 @@ __weak int setup_mac_address(void)
 		return -EINVAL;
 	}
 	pr_debug("OTP MAC address = %pM\n", enetaddr);
-	ret = !eth_env_set_enetaddr("ethaddr", enetaddr);
-	if (!ret)
+
+	ret = eth_env_set_enetaddr("ethaddr", enetaddr);
+	if (ret)
 		pr_err("Failed to set mac address %pM from OTP: %d\n",
 		       enetaddr, ret);
 #endif
@@ -522,13 +523,13 @@ __weak int setup_mac_address(void)
 
 static int setup_serial_number(void)
 {
+	char *serial_env;
 	char serial_string[25];
 	u32 otp[3] = {0, 0, 0 };
 	struct udevice *dev;
 	int ret;
 
-	if (env_get("serial#"))
-		return 0;
+	serial_env = env_get("serial#");
 
 	ret = uclass_get_device_by_driver(UCLASS_MISC,
 					  DM_GET_DRIVER(stm32mp_bsec),
@@ -542,6 +543,15 @@ static int setup_serial_number(void)
 		return ret;
 
 	sprintf(serial_string, "%08X%08X%08X", otp[0], otp[1], otp[2]);
+
+	if (serial_env) {
+		if (!strcmp(serial_string, serial_env))
+			return 0;
+		/* For invalid enviromnent (serial# change), reset to default */
+		env_set_default("serial number mismatch", 0);
+	}
+
+	/* save serial number */
 	env_set("serial#", serial_string);
 
 	return 0;
@@ -549,9 +559,9 @@ static int setup_serial_number(void)
 
 int arch_misc_init(void)
 {
+	setup_serial_number();
 	setup_boot_mode();
 	setup_mac_address();
-	setup_serial_number();
 
 	return 0;
 }
-- 
2.17.1

  parent reply	other threads:[~2020-03-31 16:04 UTC|newest]

Thread overview: 51+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-03-31 16:04 [PATCH 01/16] arm: stm32mp: update dependency for STM32_ETZPC Patrick Delaunay
2020-03-31 16:04 ` [PATCH 02/16] arm: stm32mp: remove dependency for STM32KEY Patrick Delaunay
2020-04-01  7:19   ` Patrice CHOTARD
2020-03-31 16:04 ` Patrick Delaunay [this message]
2020-04-01  7:22   ` [PATCH 03/16] arm: stm32mp: reset to default environment when serial# change Patrice CHOTARD
2020-04-01 11:18   ` Wolfgang Denk
2020-04-07 14:31     ` Patrick DELAUNAY
2020-04-07 16:22       ` Wolfgang Denk
2020-03-31 16:04 ` [PATCH 04/16] arm: stm32mp: detect U-Boot version used to save environment Patrick Delaunay
2020-04-01  7:33   ` Patrice CHOTARD
2020-04-07 14:37     ` Patrick DELAUNAY
2020-04-01 11:26   ` Wolfgang Denk
2020-04-07 14:54     ` Patrick DELAUNAY
2020-04-07 16:28       ` Wolfgang Denk
2020-04-08  9:38         ` [Uboot-stm32] " Patrick DELAUNAY
2020-03-31 16:04 ` [PATCH 05/16] arm: stm32mp: spl: add bsec driver in SPL Patrick Delaunay
2020-04-01  7:34   ` Patrice CHOTARD
2020-04-01 11:27   ` Wolfgang Denk
2020-04-08 14:31     ` Patrick DELAUNAY
2020-03-31 16:04 ` [PATCH 06/16] arm: stm32mp: spl: display error in board_init_f Patrick Delaunay
2020-04-01  7:43   ` Patrice CHOTARD
2020-04-01 11:30   ` Wolfgang Denk
2020-04-21 16:05     ` Patrick DELAUNAY
2020-04-23 20:39       ` Wolfgang Denk
2020-04-24  8:28         ` Patrick DELAUNAY
2020-03-31 16:04 ` [PATCH 07/16] board: stm32mp1: Keep error led ON in case of low power detection Patrick Delaunay
2020-04-01  7:44   ` Patrice CHOTARD
2020-03-31 16:04 ` [PATCH 08/16] board: stm32mp1: update management of boot-led Patrick Delaunay
2020-04-01  7:49   ` [Uboot-stm32] " Patrice CHOTARD
2020-04-01 11:32   ` Wolfgang Denk
2020-04-01 11:43   ` Anatolij Gustschin
2020-04-10 17:08     ` Patrick DELAUNAY
2020-03-31 16:04 ` [PATCH 09/16] board: stm32mp1: gt9147 IRQ before reset on EV1 Patrick Delaunay
2020-04-01  7:53   ` [Uboot-stm32] " Patrice CHOTARD
2020-04-01 11:34   ` Wolfgang Denk
2020-03-31 16:04 ` [PATCH 10/16] board: stm32mp1: set environment variable fdtfile Patrick Delaunay
2020-04-01  8:06   ` [Uboot-stm32] " Patrice CHOTARD
2020-03-31 16:04 ` [PATCH 11/16] board: stm32mp1: check env_get result in board_late_init Patrick Delaunay
2020-04-01  8:06   ` [Uboot-stm32] " Patrice CHOTARD
2020-04-01 11:39   ` Wolfgang Denk
2020-03-31 16:04 ` [PATCH 12/16] board: stm32mp1: add timeout for I/O compensation ready Patrick Delaunay
2020-04-01  8:07   ` [Uboot-stm32] " Patrice CHOTARD
2020-03-31 16:04 ` [PATCH 13/16] gpio: stm32: support gpio ops in SPL Patrick Delaunay
2020-04-01  8:11   ` Patrice CHOTARD
2020-03-31 16:04 ` [PATCH 14/16] ARM: dts: stm32mp15: use DDR3 files generated by STM32CubeMX Patrick Delaunay
2020-04-01  8:08   ` [Uboot-stm32] " Patrice CHOTARD
2020-03-31 16:04 ` [PATCH 15/16] configs: stm32mp1: activate Ethernet PHY Realtek Patrick Delaunay
2020-04-01  8:08   ` [Uboot-stm32] " Patrice CHOTARD
2020-03-31 16:04 ` [PATCH 16/16] configs: stm32mp1: activate CONFIG_ERRNO_STR Patrick Delaunay
2020-04-01  8:09   ` [Uboot-stm32] " Patrice CHOTARD
2020-04-01  7:10 ` [PATCH 01/16] arm: stm32mp: update dependency for STM32_ETZPC Patrice CHOTARD

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200331180330.3.I8f6df6d28ce5b4b601ced711af3699d95e1576fb@changeid \
    --to=patrick.delaunay@st.com \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.