mail archive of the barebox mailing list
 help / color / mirror / Atom feed
* [PATCH v3 0/2] Add additional globalvar for soc_uid
@ 2026-04-22 10:09 Fabian Pflug
  2026-04-22 10:09 ` [PATCH v3 1/2] common: misc: add soc_uid_hex to globalvar Fabian Pflug
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Fabian Pflug @ 2026-04-22 10:09 UTC (permalink / raw)
  To: Sascha Hauer, Jonas Rebmann, 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.

The exposed string representation is encoded in a manufacturer-specific
manner, hence for use in scripting, soc_uid_hex should be accessible in
a generic representation.

Signed-off-by: Fabian Pflug <f.pflug@pengutronix.de>
---
Changes in v3:
- Reworded the help text for HABV4_CSF_UNLOCK_UID to include linux
  serial number
- Changed the magicvar description to "Raw SoC Unique ID representation"
- Link to v2: https://lore.barebox.org/barebox/20260415-v2026-03-0-topic-soc_bin_id-v2-0-81fab6ba5de0@pengutronix.de

Changes in v2:
- Renamed soc_uid_bin to soc_uid_hex
- Add to MAGICVAR
- removed "is is" in help text
- Updated commit messages
- Link to v1: https://lore.barebox.org/barebox/20260330-v2026-03-0-topic-soc_bin_id-v1-0-11292f75b196@pengutronix.de

---
Fabian Pflug (2):
      common: misc: add soc_uid_hex to globalvar
      i.MX: HAB: update text for HABV4_CSF_UNLOCK_UID

 arch/arm/mach-imx/Kconfig | 13 +++++++------
 common/misc.c             |  9 +++++++--
 2 files changed, 14 insertions(+), 8 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] 4+ messages in thread

* [PATCH v3 1/2] common: misc: add soc_uid_hex to globalvar
  2026-04-22 10:09 [PATCH v3 0/2] Add additional globalvar for soc_uid Fabian Pflug
@ 2026-04-22 10:09 ` Fabian Pflug
  2026-04-22 10:09 ` [PATCH v3 2/2] i.MX: HAB: update text for HABV4_CSF_UNLOCK_UID Fabian Pflug
  2026-04-27  7:15 ` [PATCH v3 0/2] Add additional globalvar for soc_uid Sascha Hauer
  2 siblings, 0 replies; 4+ messages in thread
From: Fabian Pflug @ 2026-04-22 10:09 UTC (permalink / raw)
  To: Sascha Hauer, Jonas Rebmann, 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 encodes SoC-UID registers in a
manner uniform across SoCs/manufacturers.

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`

Reviewed-by: Jonas Rebmann <jre@pengutronix.de>
Signed-off-by: Fabian Pflug <f.pflug@pengutronix.de>
---
 common/misc.c | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/common/misc.c b/common/misc.c
index ecf9574f7a..870dcd0a16 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,18 +296,22 @@ 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_hex", &soc_uid_bin_str);
 }
 BAREBOX_MAGICVAR(global.soc_uid, "SoC Unique ID");
+BAREBOX_MAGICVAR(global.soc_uid_hex, "Raw SoC Unique ID representation");
 
 const char *barebox_get_soc_uid(void)
 {

-- 
2.47.3




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

* [PATCH v3 2/2] i.MX: HAB: update text for HABV4_CSF_UNLOCK_UID
  2026-04-22 10:09 [PATCH v3 0/2] Add additional globalvar for soc_uid Fabian Pflug
  2026-04-22 10:09 ` [PATCH v3 1/2] common: misc: add soc_uid_hex to globalvar Fabian Pflug
@ 2026-04-22 10:09 ` Fabian Pflug
  2026-04-27  7:15 ` [PATCH v3 0/2] Add additional globalvar for soc_uid Sascha Hauer
  2 siblings, 0 replies; 4+ messages in thread
From: Fabian Pflug @ 2026-04-22 10:09 UTC (permalink / raw)
  To: Sascha Hauer, Jonas Rebmann, BAREBOX; +Cc: Fabian Pflug

With the establishment of global.soc_uid_hex, 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.

Reviewed-by: Jonas Rebmann <jre@pengutronix.de>
Signed-off-by: Fabian Pflug <f.pflug@pengutronix.de>
---
 arch/arm/mach-imx/Kconfig | 13 +++++++------
 1 file changed, 7 insertions(+), 6 deletions(-)

diff --git a/arch/arm/mach-imx/Kconfig b/arch/arm/mach-imx/Kconfig
index 2e4d1ac80a..75086d13e6 100644
--- a/arch/arm/mach-imx/Kconfig
+++ b/arch/arm/mach-imx/Kconfig
@@ -918,19 +918,20 @@ 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:
+	  stored in $global.soc_uid_hex, but must be split into bytes.
+	  The soc_uid_hex 0011223344556677 becomes:
+	    - 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77
+
+	  Alternatively, it is printed in reverse byte order during boot
 	    i.MX___ unique ID: 7766554433221100
-	  or it can be queried by Linux via:
+	  or it can be queried (in reverse byte order) by Linux via:
 	    - cat /sys/devices/soc0/serial_number
 	      7766554433221100
 
-	  So this value have to be set:
-	    - 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77
-
 	  Afterwards, the `hab -p -r` command can be used to burn the fuse.
 
 config HAB_CERTS_ENV

-- 
2.47.3




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

* Re: [PATCH v3 0/2] Add additional globalvar for soc_uid
  2026-04-22 10:09 [PATCH v3 0/2] Add additional globalvar for soc_uid Fabian Pflug
  2026-04-22 10:09 ` [PATCH v3 1/2] common: misc: add soc_uid_hex to globalvar Fabian Pflug
  2026-04-22 10:09 ` [PATCH v3 2/2] i.MX: HAB: update text for HABV4_CSF_UNLOCK_UID Fabian Pflug
@ 2026-04-27  7:15 ` Sascha Hauer
  2 siblings, 0 replies; 4+ messages in thread
From: Sascha Hauer @ 2026-04-27  7:15 UTC (permalink / raw)
  To: Jonas Rebmann, BAREBOX, Fabian Pflug


On Wed, 22 Apr 2026 12:09:03 +0200, Fabian Pflug wrote:
> 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.
> 
> [...]

Applied, thanks!

[1/2] common: misc: add soc_uid_hex to globalvar
      https://git.pengutronix.de/cgit/barebox/commit/?id=103c1e79d5a1 (link may not be stable)
[2/2] i.MX: HAB: update text for HABV4_CSF_UNLOCK_UID
      https://git.pengutronix.de/cgit/barebox/commit/?id=1109a7447bcd (link may not be stable)

Best regards,
-- 
Sascha Hauer <s.hauer@pengutronix.de>




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

end of thread, other threads:[~2026-04-27  7:16 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-04-22 10:09 [PATCH v3 0/2] Add additional globalvar for soc_uid Fabian Pflug
2026-04-22 10:09 ` [PATCH v3 1/2] common: misc: add soc_uid_hex to globalvar Fabian Pflug
2026-04-22 10:09 ` [PATCH v3 2/2] i.MX: HAB: update text for HABV4_CSF_UNLOCK_UID Fabian Pflug
2026-04-27  7:15 ` [PATCH v3 0/2] Add additional globalvar for soc_uid Sascha Hauer

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