[1/4] lib: uuid: add partition type GUID for extended bootloader

Message ID 20260328171624.2377527-2-dario.binacchi@amarulasolutions.com
State New
Headers show
Series
  • Support metadata-driven A/B boot for STM32MP25
Related show

Commit Message

Dario Binacchi March 28, 2026, 5:15 p.m. UTC
The Extended Boot Loader Partition (XBOOTLDR) is a standard defined by
the Discoverable Partitions Specification (DPS) to host boot loader
resources outside of the EFI System Partition.

Defining this GUID (bc13c2ff-59e6-4262-a352-b275fd6f7172) allows U-Boot
to correctly identify and label these partitions using the "xbootldr"
shorthand.

Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>
---

 doc/README.gpt     | 2 ++
 include/part_efi.h | 3 +++
 lib/uuid.c         | 1 +
 3 files changed, 6 insertions(+)

Comments

'Heinrich Schuchardt' via Amarula Linux March 28, 2026, 5:36 p.m. UTC | #1
Am 28. März 2026 18:15:14 MEZ schrieb Dario Binacchi <dario.binacchi@amarulasolutions.com>:
>The Extended Boot Loader Partition (XBOOTLDR) is a standard defined by
>the Discoverable Partitions Specification (DPS) to host boot loader
>resources outside of the EFI System Partition.
>
>Defining this GUID (bc13c2ff-59e6-4262-a352-b275fd6f7172) allows U-Boot
>to correctly identify and label these partitions using the "xbootldr"
>shorthand.

Please, provide a link to the specification that defines what XBOOTLDR is and that this GUID should be used in the commit message.

Best regards

Heinrich

>
>Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>
>---
>
> doc/README.gpt     | 2 ++
> include/part_efi.h | 3 +++
> lib/uuid.c         | 1 +
> 3 files changed, 6 insertions(+)
>
>diff --git a/doc/README.gpt b/doc/README.gpt
>index 386ac2e0fc8f..a6e1fd7ce8d4 100644
>--- a/doc/README.gpt
>+++ b/doc/README.gpt
>@@ -286,6 +286,8 @@ Some strings can be also used at the place of known GUID :
> 	                    (E6D6D379-F507-44C2-A23C-238F2A3DF928)
> 	"u-boot-env"      = PARTITION_U_BOOT_ENVIRONMENT
> 	                    (3DE21764-95BD-54BD-A5C3-4ABE786F38A8)
>+	"xbootldr"        = PARTITION_XBOOTLDR
>+	                    (BC13C2FF-59E6-4262-A352-B275FD6F7172)
> 
>     "uuid_disk=...;name=u-boot,size=60MiB,uuid=...;
> 	name=kernel,size=60MiB,uuid=...,type=linux;"
>diff --git a/include/part_efi.h b/include/part_efi.h
>index fb402df6f13e..afb21569c932 100644
>--- a/include/part_efi.h
>+++ b/include/part_efi.h
>@@ -59,6 +59,9 @@
> #define PARTITION_U_BOOT_ENVIRONMENT \
> 	EFI_GUID( 0x3de21764, 0x95bd, 0x54bd, \
> 		0xa5, 0xc3, 0x4a, 0xbe, 0x78, 0x6f, 0x38, 0xa8)
>+#define PARTITION_XBOOTLDR \
>+	EFI_GUID( 0xbc13c2ff, 0x59e6, 0x4262, \
>+		0xa3, 0x52, 0xb2, 0x75, 0xfd, 0x6f, 0x71, 0x72)
> 
> /* Special ChromiumOS things */
> #define PARTITION_CROS_KERNEL \
>diff --git a/lib/uuid.c b/lib/uuid.c
>index 0a166320e077..cf5f8be48a32 100644
>--- a/lib/uuid.c
>+++ b/lib/uuid.c
>@@ -86,6 +86,7 @@ static const struct {
> 	{"swap",	NULL,	PARTITION_LINUX_SWAP_GUID},
> 	{"lvm",		NULL,	PARTITION_LINUX_LVM_GUID},
> 	{"u-boot-env",	NULL,	PARTITION_U_BOOT_ENVIRONMENT},
>+	{"xbootldr",	NULL,	PARTITION_XBOOTLDR},
> 	{"cros-kern",	NULL,	PARTITION_CROS_KERNEL},
> 	{"cros-root",	NULL,	PARTITION_CROS_ROOT},
> 	{"cros-fw",	NULL,	PARTITION_CROS_FIRMWARE},

To unsubscribe from this group and stop receiving emails from it, send an email to linux-amarula+unsubscribe@amarulasolutions.com.

Patch

diff --git a/doc/README.gpt b/doc/README.gpt
index 386ac2e0fc8f..a6e1fd7ce8d4 100644
--- a/doc/README.gpt
+++ b/doc/README.gpt
@@ -286,6 +286,8 @@  Some strings can be also used at the place of known GUID :
 	                    (E6D6D379-F507-44C2-A23C-238F2A3DF928)
 	"u-boot-env"      = PARTITION_U_BOOT_ENVIRONMENT
 	                    (3DE21764-95BD-54BD-A5C3-4ABE786F38A8)
+	"xbootldr"        = PARTITION_XBOOTLDR
+	                    (BC13C2FF-59E6-4262-A352-B275FD6F7172)
 
     "uuid_disk=...;name=u-boot,size=60MiB,uuid=...;
 	name=kernel,size=60MiB,uuid=...,type=linux;"
diff --git a/include/part_efi.h b/include/part_efi.h
index fb402df6f13e..afb21569c932 100644
--- a/include/part_efi.h
+++ b/include/part_efi.h
@@ -59,6 +59,9 @@ 
 #define PARTITION_U_BOOT_ENVIRONMENT \
 	EFI_GUID( 0x3de21764, 0x95bd, 0x54bd, \
 		0xa5, 0xc3, 0x4a, 0xbe, 0x78, 0x6f, 0x38, 0xa8)
+#define PARTITION_XBOOTLDR \
+	EFI_GUID( 0xbc13c2ff, 0x59e6, 0x4262, \
+		0xa3, 0x52, 0xb2, 0x75, 0xfd, 0x6f, 0x71, 0x72)
 
 /* Special ChromiumOS things */
 #define PARTITION_CROS_KERNEL \
diff --git a/lib/uuid.c b/lib/uuid.c
index 0a166320e077..cf5f8be48a32 100644
--- a/lib/uuid.c
+++ b/lib/uuid.c
@@ -86,6 +86,7 @@  static const struct {
 	{"swap",	NULL,	PARTITION_LINUX_SWAP_GUID},
 	{"lvm",		NULL,	PARTITION_LINUX_LVM_GUID},
 	{"u-boot-env",	NULL,	PARTITION_U_BOOT_ENVIRONMENT},
+	{"xbootldr",	NULL,	PARTITION_XBOOTLDR},
 	{"cros-kern",	NULL,	PARTITION_CROS_KERNEL},
 	{"cros-root",	NULL,	PARTITION_CROS_ROOT},
 	{"cros-fw",	NULL,	PARTITION_CROS_FIRMWARE},