mail archive of the barebox mailing list
 help / color / mirror / Atom feed
* [PATCH 0/2] Add additional globalvar for soc_uid
@ 2026-03-30 12:24 Fabian Pflug
  2026-03-30 12:24 ` [PATCH 1/2] common: misc: add soc_uid_bin to globalvar Fabian Pflug
  2026-03-30 12:24 ` [PATCH 2/2] i.MX: HAB: update text for HABV4_CSF_UNLOCK_UID Fabian Pflug
  0 siblings, 2 replies; 3+ messages in thread
From: Fabian Pflug @ 2026-03-30 12:24 UTC (permalink / raw)
  To: Sascha Hauer, BAREBOX; +Cc: Fabian Pflug

The binary representation was used to compare against, but never exposed
to userspace to query, as the exposed variables could correlate with the
value, but did not.

For example on i.MX8MP the byte order was reversed in comparing
the return value of barebox_get_soc_uid_bin and $global.soc_uid.

Signed-off-by: Fabian Pflug <f.pflug@pengutronix.de>
---
Fabian Pflug (2):
      common: misc: add soc_uid_bin to globalvar
      i.MX: HAB: update text for HABV4_CSF_UNLOCK_UID

 arch/arm/mach-imx/Kconfig | 11 +++--------
 common/misc.c             |  8 ++++++--
 2 files changed, 9 insertions(+), 10 deletions(-)
---
base-commit: 1d386a53086d28a0c4eda138ae9408a418b97b7e
change-id: 20260330-v2026-03-0-topic-soc_bin_id-d12a84d7b1b5

Best regards,
-- 
Fabian Pflug <f.pflug@pengutronix.de>




^ permalink raw reply	[flat|nested] 3+ messages in thread

* [PATCH 1/2] common: misc: add soc_uid_bin to globalvar
  2026-03-30 12:24 [PATCH 0/2] Add additional globalvar for soc_uid Fabian Pflug
@ 2026-03-30 12:24 ` Fabian Pflug
  2026-03-30 12:24 ` [PATCH 2/2] i.MX: HAB: update text for HABV4_CSF_UNLOCK_UID Fabian Pflug
  1 sibling, 0 replies; 3+ messages in thread
From: Fabian Pflug @ 2026-03-30 12:24 UTC (permalink / raw)
  To: Sascha Hauer, BAREBOX; +Cc: Fabian Pflug

uidstr and uidbuf could be the same, but don't have to be. This results
in uncertainty on what exactly is the current UID used for
machine_set_hashable and to compare against with TLV.

Add an additional global var, that represents a binary representation
of the soc_uid_bin variable.

This can now be used to feed as data for bound-soc-uid into
`bareboxtlv-generator.py` or as the value for
`CONFIG_HABV4_CSF_UNLOCK_UID`

Signed-off-by: Fabian Pflug <f.pflug@pengutronix.de>
---
 common/misc.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/common/misc.c b/common/misc.c
index ecf9574f7a..f18c8b5825 100644
--- a/common/misc.c
+++ b/common/misc.c
@@ -268,6 +268,7 @@ const uuid_t *barebox_get_product_uuid(void)
 BAREBOX_MAGICVAR(global.product.uuid, "SMBIOS-reported product UUID");
 
 static char *soc_uid_str;
+static char *soc_uid_bin_str;
 static void *soc_uid;
 static size_t soc_uid_len;
 
@@ -295,16 +296,19 @@ void barebox_set_soc_uid(const char *uidstr, const void *uidbuf, size_t len)
 	soc_uid = xmemdup(uidbuf, len);
 	soc_uid_len = len;
 
+	soc_uid_bin_str = xzalloc(len * 2 + 1);
+	bin2hex(soc_uid_bin_str, uidbuf, len);
+
 	if (uidstr) {
 		soc_uid_str = xstrdup(uidstr);
 	} else {
-		soc_uid_str = xzalloc(len * 2 + 1);
-		bin2hex(soc_uid_str, uidbuf, len);
+		soc_uid_str = soc_uid_bin_str;
 	}
 
 	machine_id_set_hashable(uidbuf, len);
 
 	globalvar_add_simple_string("soc_uid", &soc_uid_str);
+	globalvar_add_simple_string("soc_uid_bin", &soc_uid_bin_str);
 }
 BAREBOX_MAGICVAR(global.soc_uid, "SoC Unique ID");
 

-- 
2.47.3




^ permalink raw reply	[flat|nested] 3+ messages in thread

* [PATCH 2/2] i.MX: HAB: update text for HABV4_CSF_UNLOCK_UID
  2026-03-30 12:24 [PATCH 0/2] Add additional globalvar for soc_uid Fabian Pflug
  2026-03-30 12:24 ` [PATCH 1/2] common: misc: add soc_uid_bin to globalvar Fabian Pflug
@ 2026-03-30 12:24 ` Fabian Pflug
  1 sibling, 0 replies; 3+ messages in thread
From: Fabian Pflug @ 2026-03-30 12:24 UTC (permalink / raw)
  To: Sascha Hauer, BAREBOX; +Cc: Fabian Pflug

With the establishment of global.soc_uid_bin, there is no need to look
for the serial number and reverse it.

Also some SoC's will have 128-bit UID's, so the hint to 64 bit is not
correct and should be removed.

Signed-off-by: Fabian Pflug <f.pflug@pengutronix.de>
---
 arch/arm/mach-imx/Kconfig | 11 +++--------
 1 file changed, 3 insertions(+), 8 deletions(-)

diff --git a/arch/arm/mach-imx/Kconfig b/arch/arm/mach-imx/Kconfig
index 2e4d1ac80a..bfcb6ae402 100644
--- a/arch/arm/mach-imx/Kconfig
+++ b/arch/arm/mach-imx/Kconfig
@@ -918,17 +918,12 @@ config HABV4_CSF_UNLOCK_UID
 	depends on HABV4 && HABV4_CSF_UNLOCK_FIELD_RETURN
 	string "CSF Unlock UID"
 	help
-	  Device specific 64-bit UID required to unlock the field-return
+	  Device specific UID required to unlock the field-return
 	  feature. This value must match the per device UNIQUE_ID fuses.
 
 	  The below example shows the expected format. The UNIQUE_ID is
-	  printed during boot by barebox:
-	    i.MX___ unique ID: 7766554433221100
-	  or it can be queried by Linux via:
-	    - cat /sys/devices/soc0/serial_number
-	      7766554433221100
-
-	  So this value have to be set:
+	  is stored in $global.soc_uid_bin, but must be split into bytes.
+	  The soc_uid_bin 0011223344556677 becomes:
 	    - 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77
 
 	  Afterwards, the `hab -p -r` command can be used to burn the fuse.

-- 
2.47.3




^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2026-03-30 12:25 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-03-30 12:24 [PATCH 0/2] Add additional globalvar for soc_uid Fabian Pflug
2026-03-30 12:24 ` [PATCH 1/2] common: misc: add soc_uid_bin to globalvar Fabian Pflug
2026-03-30 12:24 ` [PATCH 2/2] i.MX: HAB: update text for HABV4_CSF_UNLOCK_UID Fabian Pflug

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox