public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
* [PATCH 0/4] Add an efidebug ecpt command
@ 2026-03-05 16:13 Vincent Stehlé
  2026-03-05 16:13 ` [PATCH 1/4] lib: uuid: add EBBR 2.1 conformance profile GUID Vincent Stehlé
                   ` (7 more replies)
  0 siblings, 8 replies; 22+ messages in thread
From: Vincent Stehlé @ 2026-03-05 16:13 UTC (permalink / raw)
  To: u-boot; +Cc: Vincent Stehlé, Heinrich Schuchardt, Ilias Apalodimas,
	Tom Rini

Hi,

This patch series adds an "efidebug ecpt" command to list the conformance
profiles and a python unit test.

This should help verification when we will add more conformance profiles.

Best regards,
Vincent.

Vincent Stehlé (4):
  lib: uuid: add EBBR 2.1 conformance profile GUID
  efi_loader: export efi_ecpt_guid
  cmd: efidebug: add ecpt command
  test/py: add ECPT tests

 cmd/efidebug.c                   | 49 ++++++++++++++++++++++++++++++++
 include/efi_loader.h             |  4 +++
 lib/efi_loader/efi_conformance.c |  2 +-
 lib/uuid.c                       |  4 +++
 test/py/tests/test_efi_ecpt.py   | 42 +++++++++++++++++++++++++++
 5 files changed, 100 insertions(+), 1 deletion(-)
 create mode 100644 test/py/tests/test_efi_ecpt.py

-- 
2.51.0


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

* [PATCH 1/4] lib: uuid: add EBBR 2.1 conformance profile GUID
  2026-03-05 16:13 [PATCH 0/4] Add an efidebug ecpt command Vincent Stehlé
@ 2026-03-05 16:13 ` Vincent Stehlé
  2026-03-09 12:19   ` Heinrich Schuchardt
  2026-03-05 16:13 ` [PATCH 2/4] efi_loader: export efi_ecpt_guid Vincent Stehlé
                   ` (6 subsequent siblings)
  7 siblings, 1 reply; 22+ messages in thread
From: Vincent Stehlé @ 2026-03-05 16:13 UTC (permalink / raw)
  To: u-boot; +Cc: Vincent Stehlé, Heinrich Schuchardt, Ilias Apalodimas,
	Tom Rini

Add support for printing the EFI_CONFORMANCE_PROFILE_EBBR_2_1_GUID as human
readable text.

This is added in the GUIDs range, which is compiled in only when
CONFIG_CMD_EFIDEBUG is set.

Signed-off-by: Vincent Stehlé <vincent.stehle@arm.com>
Cc: Tom Rini <trini@konsulko.com>
---
 lib/uuid.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/lib/uuid.c b/lib/uuid.c
index 0a166320e07..d9d5414d4bf 100644
--- a/lib/uuid.c
+++ b/lib/uuid.c
@@ -254,6 +254,10 @@ static const struct {
 		NULL, "EFI Conformance Profiles Table",
 		EFI_CONFORMANCE_PROFILES_TABLE_GUID,
 	},
+	{
+		NULL, "EFI EBBR 2.1 Conformance Profile",
+		EFI_CONFORMANCE_PROFILE_EBBR_2_1_GUID,
+	},
 #ifdef CONFIG_EFI_RISCV_BOOT_PROTOCOL
 	{
 		NULL, "RISC-V Boot",
-- 
2.51.0


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

* [PATCH 2/4] efi_loader: export efi_ecpt_guid
  2026-03-05 16:13 [PATCH 0/4] Add an efidebug ecpt command Vincent Stehlé
  2026-03-05 16:13 ` [PATCH 1/4] lib: uuid: add EBBR 2.1 conformance profile GUID Vincent Stehlé
@ 2026-03-05 16:13 ` Vincent Stehlé
  2026-03-09 12:26   ` Heinrich Schuchardt
  2026-03-05 16:13 ` [PATCH 3/4] cmd: efidebug: add ecpt command Vincent Stehlé
                   ` (5 subsequent siblings)
  7 siblings, 1 reply; 22+ messages in thread
From: Vincent Stehlé @ 2026-03-05 16:13 UTC (permalink / raw)
  To: u-boot; +Cc: Vincent Stehlé, Heinrich Schuchardt, Ilias Apalodimas,
	Tom Rini

Export the ECPT GUID, to prepare accessing it from more than one location.

The C file containing the GUID is compiled only when CONFIG_EFI_ECPT is
set; gate the export accordingly.

Signed-off-by: Vincent Stehlé <vincent.stehle@arm.com>
Cc: Heinrich Schuchardt <xypron.glpk@gmx.de>
Cc: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Cc: Tom Rini <trini@konsulko.com>
---
 include/efi_loader.h             | 4 ++++
 lib/efi_loader/efi_conformance.c | 2 +-
 2 files changed, 5 insertions(+), 1 deletion(-)

diff --git a/include/efi_loader.h b/include/efi_loader.h
index 3e70ac07055..0ebc80e0af0 100644
--- a/include/efi_loader.h
+++ b/include/efi_loader.h
@@ -387,6 +387,10 @@ extern const efi_guid_t efi_guid_capsule_report;
 extern const efi_guid_t efi_guid_firmware_management_protocol;
 /* GUID for the ESRT */
 extern const efi_guid_t efi_esrt_guid;
+/* GUID for the ECPT */
+#if CONFIG_IS_ENABLED(EFI_ECPT)
+extern const efi_guid_t efi_ecpt_guid;
+#endif
 /* GUID of the SMBIOS table */
 extern const efi_guid_t smbios_guid;
 extern const efi_guid_t smbios3_guid;
diff --git a/lib/efi_loader/efi_conformance.c b/lib/efi_loader/efi_conformance.c
index 2d31800ccb8..470141af483 100644
--- a/lib/efi_loader/efi_conformance.c
+++ b/lib/efi_loader/efi_conformance.c
@@ -12,7 +12,7 @@
 #include <efi_api.h>
 #include <malloc.h>
 
-static const efi_guid_t efi_ecpt_guid = EFI_CONFORMANCE_PROFILES_TABLE_GUID;
+const efi_guid_t efi_ecpt_guid = EFI_CONFORMANCE_PROFILES_TABLE_GUID;
 
 /**
  * efi_ecpt_register() - Install the ECPT system table.
-- 
2.51.0


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

* [PATCH 3/4] cmd: efidebug: add ecpt command
  2026-03-05 16:13 [PATCH 0/4] Add an efidebug ecpt command Vincent Stehlé
  2026-03-05 16:13 ` [PATCH 1/4] lib: uuid: add EBBR 2.1 conformance profile GUID Vincent Stehlé
  2026-03-05 16:13 ` [PATCH 2/4] efi_loader: export efi_ecpt_guid Vincent Stehlé
@ 2026-03-05 16:13 ` Vincent Stehlé
  2026-03-09 12:23   ` Heinrich Schuchardt
  2026-03-05 16:13 ` [PATCH 4/4] test/py: add ECPT tests Vincent Stehlé
                   ` (4 subsequent siblings)
  7 siblings, 1 reply; 22+ messages in thread
From: Vincent Stehlé @ 2026-03-05 16:13 UTC (permalink / raw)
  To: u-boot; +Cc: Vincent Stehlé, Heinrich Schuchardt, Ilias Apalodimas,
	Tom Rini

Add an "efidebug ecpt" command, to print the conformance profiles in the
ECPT:

  => efidebug ecpt
  cce33c35-74ac-4087-bce7-8b29b02eeb27  EFI EBBR 2.1 Conformance Profile

Signed-off-by: Vincent Stehlé <vincent.stehle@arm.com>
Cc: Heinrich Schuchardt <xypron.glpk@gmx.de>
Cc: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Cc: Tom Rini <trini@konsulko.com>
---
 cmd/efidebug.c | 49 +++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 49 insertions(+)

diff --git a/cmd/efidebug.c b/cmd/efidebug.c
index 109496d9e95..672214a54b7 100644
--- a/cmd/efidebug.c
+++ b/cmd/efidebug.c
@@ -533,6 +533,47 @@ static int do_efi_show_defaults(struct cmd_tbl *cmdtp, int flag,
 	return CMD_RET_SUCCESS;
 }
 
+#if CONFIG_IS_ENABLED(EFI_ECPT)
+/**
+ * do_efi_show_ecpt() - show UEFI conformance profiles in ECPT
+ *
+ * @cmdtp:	Command table
+ * @flag:	Command flag
+ * @argc:	Number of arguments
+ * @argv:	Argument array
+ * Return:	CMD_RET_SUCCESS on success,
+ *		CMD_RET_USAGE or CMD_RET_FAILURE on failure
+ *
+ * Implement efidebug "ecpt" sub-command.
+ * Show all the UEFI Conformance Profiles listed in the EFI Conformance Profiles
+ * Table (ECPT).
+ */
+static int do_efi_show_ecpt(struct cmd_tbl *cmdtp, int flag, int argc,
+			    char *const argv[])
+{
+	const struct efi_conformance_profiles_table *ecpt;
+	u16 n;
+
+	if (argc != 1)
+		return CMD_RET_USAGE;
+
+	ecpt = efi_get_configuration_table(&efi_ecpt_guid);
+	if (!ecpt) {
+		log_info("ECPT: table not present\n");
+		return CMD_RET_SUCCESS;
+	}
+
+	for (n = 0; n < ecpt->number_of_profiles; n++) {
+		const efi_guid_t *guid = &ecpt->conformance_profiles[n];
+
+		printf("%pUl  %s\n", guid->b,
+		       uuid_guid_get_str(guid->b) ?: "(unknown)");
+	}
+
+	return CMD_RET_SUCCESS;
+}
+#endif /* CONFIG_IS_ENABLED(EFI_ECPT) */
+
 static const char * const efi_mem_type_string[] = {
 	[EFI_RESERVED_MEMORY_TYPE] = "RESERVED",
 	[EFI_LOADER_CODE] = "LOADER CODE",
@@ -1586,6 +1627,10 @@ static struct cmd_tbl cmd_efidebug_sub[] = {
 			 "", ""),
 	U_BOOT_CMD_MKENT(defaults, CONFIG_SYS_MAXARGS, 1, do_efi_show_defaults,
 			 "", ""),
+#if CONFIG_IS_ENABLED(EFI_ECPT)
+	U_BOOT_CMD_MKENT(ecpt, CONFIG_SYS_MAXARGS, 1, do_efi_show_ecpt,
+			 "", ""),
+#endif
 	U_BOOT_CMD_MKENT(images, CONFIG_SYS_MAXARGS, 1, do_efi_show_images,
 			 "", ""),
 	U_BOOT_CMD_MKENT(memmap, CONFIG_SYS_MAXARGS, 1, do_efi_show_memmap,
@@ -1680,6 +1725,10 @@ U_BOOT_LONGHELP(efidebug,
 	"  - show UEFI handles\n"
 	"efidebug defaults\n"
 	"  - show default EFI filename and PXE architecture\n"
+#if CONFIG_IS_ENABLED(EFI_ECPT)
+	"efidebug ecpt\n"
+	"  - show conformance profiles in the ECPT\n"
+#endif
 	"efidebug images\n"
 	"  - show loaded images\n"
 	"efidebug memmap\n"
-- 
2.51.0


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

* [PATCH 4/4] test/py: add ECPT tests
  2026-03-05 16:13 [PATCH 0/4] Add an efidebug ecpt command Vincent Stehlé
                   ` (2 preceding siblings ...)
  2026-03-05 16:13 ` [PATCH 3/4] cmd: efidebug: add ecpt command Vincent Stehlé
@ 2026-03-05 16:13 ` Vincent Stehlé
  2026-03-09 12:37   ` Heinrich Schuchardt
  2026-03-09 16:36 ` [PATCH v2 1/4] lib: uuid: add EBBR 2.1 conformance profile GUID Vincent Stehlé
                   ` (3 subsequent siblings)
  7 siblings, 1 reply; 22+ messages in thread
From: Vincent Stehlé @ 2026-03-05 16:13 UTC (permalink / raw)
  To: u-boot; +Cc: Vincent Stehlé, Heinrich Schuchardt, Ilias Apalodimas,
	Tom Rini

Add a couple of EFI Conformance Profiles Table (ECPT) tests, which exercise
the "efidebug ecpt" command.

Signed-off-by: Vincent Stehlé <vincent.stehle@arm.com>
Cc: Tom Rini <trini@konsulko.com>
Cc: Heinrich Schuchardt <xypron.glpk@gmx.de>
Cc: Ilias Apalodimas <ilias.apalodimas@linaro.org>
---
 test/py/tests/test_efi_ecpt.py | 42 ++++++++++++++++++++++++++++++++++
 1 file changed, 42 insertions(+)
 create mode 100644 test/py/tests/test_efi_ecpt.py

diff --git a/test/py/tests/test_efi_ecpt.py b/test/py/tests/test_efi_ecpt.py
new file mode 100644
index 00000000000..5e7c79c4577
--- /dev/null
+++ b/test/py/tests/test_efi_ecpt.py
@@ -0,0 +1,42 @@
+# SPDX-License-Identifier: GPL-2.0-or-later
+""" Unit test for the EFI Conformance Profiles Table (ECPT)
+"""
+
+import pytest
+
+
+@pytest.mark.buildconfigspec('cmd_efidebug')
+@pytest.mark.buildconfigspec('efi_ecpt')
+def test_efi_ecpt(ubman) -> None:
+    """ Unit test for the ECPT
+    This test assumes nothing about the ECPT contents, it just checks that the
+    ECPT table is there and that the efidebug ecpt command does not fail.
+
+    Args:
+        ubman -- U-Boot console
+    """
+    response = ubman.run_command('efidebug tables')
+    assert ('36122546-f7e7-4c8f-bd9b-eb8525b50c0b  '
+            'EFI Conformance Profiles Table') in response
+
+    response = ubman.run_command('efidebug ecpt')
+    assert 'Unknown command' not in response
+    assert 'Configure UEFI environment' not in response
+    assert 'Usage:' not in response
+    assert 'table not present' not in response
+
+
+@pytest.mark.buildconfigspec('cmd_efidebug')
+@pytest.mark.buildconfigspec('efi_ecpt')
+@pytest.mark.buildconfigspec('efi_ebbr_2_1_conformance')
+def test_efi_ecpt_ebbr_2_1(ubman) -> None:
+    """ Unit test for the ECPT, with EBBR 2.1 profile
+    This test uses the efidebug ecpt command to dump the ECPT and check that
+    the EBBR 2.1 conformance profile is there.
+
+    Args:
+        ubman -- U-Boot console
+    """
+    response = ubman.run_command('efidebug ecpt')
+    assert ('cce33c35-74ac-4087-bce7-8b29b02eeb27  '
+            'EFI EBBR 2.1 Conformance Profile') in response
-- 
2.51.0


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

* Re: [PATCH 1/4] lib: uuid: add EBBR 2.1 conformance profile GUID
  2026-03-05 16:13 ` [PATCH 1/4] lib: uuid: add EBBR 2.1 conformance profile GUID Vincent Stehlé
@ 2026-03-09 12:19   ` Heinrich Schuchardt
  2026-03-09 14:38     ` Vincent Stehlé
  0 siblings, 1 reply; 22+ messages in thread
From: Heinrich Schuchardt @ 2026-03-09 12:19 UTC (permalink / raw)
  To: Vincent Stehlé
  Cc: Heinrich Schuchardt, Ilias Apalodimas, Tom Rini, u-boot

On 3/5/26 17:13, Vincent Stehlé wrote:
> Add support for printing the EFI_CONFORMANCE_PROFILE_EBBR_2_1_GUID as human
> readable text.
> 
> This is added in the GUIDs range, which is compiled in only when
> CONFIG_CMD_EFIDEBUG is set.
> 
> Signed-off-by: Vincent Stehlé <vincent.stehle@arm.com>
> Cc: Tom Rini <trini@konsulko.com>
> ---
>   lib/uuid.c | 4 ++++
>   1 file changed, 4 insertions(+)
> 
> diff --git a/lib/uuid.c b/lib/uuid.c
> index 0a166320e07..d9d5414d4bf 100644
> --- a/lib/uuid.c
> +++ b/lib/uuid.c
> @@ -254,6 +254,10 @@ static const struct {
>   		NULL, "EFI Conformance Profiles Table",
>   		EFI_CONFORMANCE_PROFILES_TABLE_GUID,
>   	},

Some boards have tight binary size restrictions.

If CONFIG_EFI_ECPT=n, we don't need the GUID text. I would suggest to 
hide it behind an #ifdef.

Best regards

Heinrich

> +	{
> +		NULL, "EFI EBBR 2.1 Conformance Profile",
> +		EFI_CONFORMANCE_PROFILE_EBBR_2_1_GUID,
> +	},
>   #ifdef CONFIG_EFI_RISCV_BOOT_PROTOCOL
>   	{
>   		NULL, "RISC-V Boot",


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

* Re: [PATCH 3/4] cmd: efidebug: add ecpt command
  2026-03-05 16:13 ` [PATCH 3/4] cmd: efidebug: add ecpt command Vincent Stehlé
@ 2026-03-09 12:23   ` Heinrich Schuchardt
  2026-03-09 15:02     ` Vincent Stehlé
  0 siblings, 1 reply; 22+ messages in thread
From: Heinrich Schuchardt @ 2026-03-09 12:23 UTC (permalink / raw)
  To: Vincent Stehlé
  Cc: Heinrich Schuchardt, Ilias Apalodimas, Tom Rini, u-boot

On 3/5/26 17:13, Vincent Stehlé wrote:
> Add an "efidebug ecpt" command, to print the conformance profiles in the
> ECPT:
> 
>    => efidebug ecpt
>    cce33c35-74ac-4087-bce7-8b29b02eeb27  EFI EBBR 2.1 Conformance Profile
> 
> Signed-off-by: Vincent Stehlé <vincent.stehle@arm.com>
> Cc: Heinrich Schuchardt <xypron.glpk@gmx.de>
> Cc: Ilias Apalodimas <ilias.apalodimas@linaro.org>
> Cc: Tom Rini <trini@konsulko.com>
> ---
>   cmd/efidebug.c | 49 +++++++++++++++++++++++++++++++++++++++++++++++++
>   1 file changed, 49 insertions(+)
> 
> diff --git a/cmd/efidebug.c b/cmd/efidebug.c
> index 109496d9e95..672214a54b7 100644
> --- a/cmd/efidebug.c
> +++ b/cmd/efidebug.c
> @@ -533,6 +533,47 @@ static int do_efi_show_defaults(struct cmd_tbl *cmdtp, int flag,
>   	return CMD_RET_SUCCESS;
>   }
>   
> +#if CONFIG_IS_ENABLED(EFI_ECPT)
> +/**
> + * do_efi_show_ecpt() - show UEFI conformance profiles in ECPT
> + *
> + * @cmdtp:	Command table
> + * @flag:	Command flag
> + * @argc:	Number of arguments
> + * @argv:	Argument array
> + * Return:	CMD_RET_SUCCESS on success,
> + *		CMD_RET_USAGE or CMD_RET_FAILURE on failure
> + *
> + * Implement efidebug "ecpt" sub-command.
> + * Show all the UEFI Conformance Profiles listed in the EFI Conformance Profiles
> + * Table (ECPT).
> + */
> +static int do_efi_show_ecpt(struct cmd_tbl *cmdtp, int flag, int argc,
> +			    char *const argv[])
> +{
> +	const struct efi_conformance_profiles_table *ecpt;
> +	u16 n;
> +
> +	if (argc != 1)
> +		return CMD_RET_USAGE;
> +
> +	ecpt = efi_get_configuration_table(&efi_ecpt_guid);
> +	if (!ecpt) {
> +		log_info("ECPT: table not present\n");

This looks like an error situation. Should this be:

	log_err("ECPT table missing\n");

> +		return CMD_RET_SUCCESS;
> +	}
> +
> +	for (n = 0; n < ecpt->number_of_profiles; n++) {
> +		const efi_guid_t *guid = &ecpt->conformance_profiles[n];
> +
> +		printf("%pUl  %s\n", guid->b,
> +		       uuid_guid_get_str(guid->b) ?: "(unknown)");

Isn't the following enough:

	printf("%pUs\n");

%pUs:   GUID text representation if known or fallback to %pUl

Best regards

Heinrich

> +	}
> +
> +	return CMD_RET_SUCCESS;
> +}
> +#endif /* CONFIG_IS_ENABLED(EFI_ECPT) */
> +
>   static const char * const efi_mem_type_string[] = {
>   	[EFI_RESERVED_MEMORY_TYPE] = "RESERVED",
>   	[EFI_LOADER_CODE] = "LOADER CODE",
> @@ -1586,6 +1627,10 @@ static struct cmd_tbl cmd_efidebug_sub[] = {
>   			 "", ""),
>   	U_BOOT_CMD_MKENT(defaults, CONFIG_SYS_MAXARGS, 1, do_efi_show_defaults,
>   			 "", ""),
> +#if CONFIG_IS_ENABLED(EFI_ECPT)
> +	U_BOOT_CMD_MKENT(ecpt, CONFIG_SYS_MAXARGS, 1, do_efi_show_ecpt,
> +			 "", ""),
> +#endif
>   	U_BOOT_CMD_MKENT(images, CONFIG_SYS_MAXARGS, 1, do_efi_show_images,
>   			 "", ""),
>   	U_BOOT_CMD_MKENT(memmap, CONFIG_SYS_MAXARGS, 1, do_efi_show_memmap,
> @@ -1680,6 +1725,10 @@ U_BOOT_LONGHELP(efidebug,
>   	"  - show UEFI handles\n"
>   	"efidebug defaults\n"
>   	"  - show default EFI filename and PXE architecture\n"
> +#if CONFIG_IS_ENABLED(EFI_ECPT)
> +	"efidebug ecpt\n"
> +	"  - show conformance profiles in the ECPT\n"
> +#endif
>   	"efidebug images\n"
>   	"  - show loaded images\n"
>   	"efidebug memmap\n"


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

* Re: [PATCH 2/4] efi_loader: export efi_ecpt_guid
  2026-03-05 16:13 ` [PATCH 2/4] efi_loader: export efi_ecpt_guid Vincent Stehlé
@ 2026-03-09 12:26   ` Heinrich Schuchardt
  0 siblings, 0 replies; 22+ messages in thread
From: Heinrich Schuchardt @ 2026-03-09 12:26 UTC (permalink / raw)
  To: Vincent Stehlé
  Cc: Heinrich Schuchardt, Ilias Apalodimas, Tom Rini, u-boot

On 3/5/26 17:13, Vincent Stehlé wrote:
> Export the ECPT GUID, to prepare accessing it from more than one location.
> 
> The C file containing the GUID is compiled only when CONFIG_EFI_ECPT is
> set; gate the export accordingly.
> 
> Signed-off-by: Vincent Stehlé <vincent.stehle@arm.com>
> Cc: Heinrich Schuchardt <xypron.glpk@gmx.de>
> Cc: Ilias Apalodimas <ilias.apalodimas@linaro.org>
> Cc: Tom Rini <trini@konsulko.com>

Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de>

> ---
>   include/efi_loader.h             | 4 ++++
>   lib/efi_loader/efi_conformance.c | 2 +-
>   2 files changed, 5 insertions(+), 1 deletion(-)
> 
> diff --git a/include/efi_loader.h b/include/efi_loader.h
> index 3e70ac07055..0ebc80e0af0 100644
> --- a/include/efi_loader.h
> +++ b/include/efi_loader.h
> @@ -387,6 +387,10 @@ extern const efi_guid_t efi_guid_capsule_report;
>   extern const efi_guid_t efi_guid_firmware_management_protocol;
>   /* GUID for the ESRT */
>   extern const efi_guid_t efi_esrt_guid;
> +/* GUID for the ECPT */
> +#if CONFIG_IS_ENABLED(EFI_ECPT)
> +extern const efi_guid_t efi_ecpt_guid;
> +#endif
>   /* GUID of the SMBIOS table */
>   extern const efi_guid_t smbios_guid;
>   extern const efi_guid_t smbios3_guid;
> diff --git a/lib/efi_loader/efi_conformance.c b/lib/efi_loader/efi_conformance.c
> index 2d31800ccb8..470141af483 100644
> --- a/lib/efi_loader/efi_conformance.c
> +++ b/lib/efi_loader/efi_conformance.c
> @@ -12,7 +12,7 @@
>   #include <efi_api.h>
>   #include <malloc.h>
>   
> -static const efi_guid_t efi_ecpt_guid = EFI_CONFORMANCE_PROFILES_TABLE_GUID;
> +const efi_guid_t efi_ecpt_guid = EFI_CONFORMANCE_PROFILES_TABLE_GUID;
>   
>   /**
>    * efi_ecpt_register() - Install the ECPT system table.


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

* Re: [PATCH 4/4] test/py: add ECPT tests
  2026-03-05 16:13 ` [PATCH 4/4] test/py: add ECPT tests Vincent Stehlé
@ 2026-03-09 12:37   ` Heinrich Schuchardt
  0 siblings, 0 replies; 22+ messages in thread
From: Heinrich Schuchardt @ 2026-03-09 12:37 UTC (permalink / raw)
  To: Vincent Stehlé; +Cc: Ilias Apalodimas, Tom Rini, u-boot

On 3/5/26 17:13, Vincent Stehlé wrote:
> Add a couple of EFI Conformance Profiles Table (ECPT) tests, which exercise
> the "efidebug ecpt" command.
> 
> Signed-off-by: Vincent Stehlé <vincent.stehle@arm.com>
> Cc: Tom Rini <trini@konsulko.com>
> Cc: Heinrich Schuchardt <xypron.glpk@gmx.de>
> Cc: Ilias Apalodimas <ilias.apalodimas@linaro.org>
> ---
>   test/py/tests/test_efi_ecpt.py | 42 ++++++++++++++++++++++++++++++++++
>   1 file changed, 42 insertions(+)
>   create mode 100644 test/py/tests/test_efi_ecpt.py
> 
> diff --git a/test/py/tests/test_efi_ecpt.py b/test/py/tests/test_efi_ecpt.py
> new file mode 100644
> index 00000000000..5e7c79c4577
> --- /dev/null
> +++ b/test/py/tests/test_efi_ecpt.py
> @@ -0,0 +1,42 @@
> +# SPDX-License-Identifier: GPL-2.0-or-later
> +""" Unit test for the EFI Conformance Profiles Table (ECPT)
> +"""
> +
> +import pytest
> +
> +
> +@pytest.mark.buildconfigspec('cmd_efidebug')
> +@pytest.mark.buildconfigspec('efi_ecpt')
> +def test_efi_ecpt(ubman) -> None:
> +    """ Unit test for the ECPT
> +    This test assumes nothing about the ECPT contents, it just checks that the
> +    ECPT table is there and that the efidebug ecpt command does not fail.
> +
> +    Args:
> +        ubman -- U-Boot console
> +    """
> +    response = ubman.run_command('efidebug tables')
> +    assert ('36122546-f7e7-4c8f-bd9b-eb8525b50c0b  '
> +            'EFI Conformance Profiles Table') in response
> +
> +    response = ubman.run_command('efidebug ecpt')
> +    assert 'Unknown command' not in response
> +    assert 'Configure UEFI environment' not in response
> +    assert 'Usage:' not in response
> +    assert 'table not present' not in response
> +
> +
> +@pytest.mark.buildconfigspec('cmd_efidebug')
> +@pytest.mark.buildconfigspec('efi_ecpt')

EFI_EBBR_2_1_CONFORMANCE depends on EFI_ECPT.

Given the next line the line above is redundant.

> +@pytest.mark.buildconfigspec('efi_ebbr_2_1_conformance')

If CONFIG_EFI_ECPT=y and CONFIG_EFI_EBBR_2_1_CONFORMANCE=n, we still 
expect the `efidebug ecpt` command to succeed.

I would suggest to move the CONFIG_EFI_EBBR_2_1_CONFORMANCE check to 
inside the test. This also matches that the EBBR defines more 
conformance levels which we should add to the ECPT table.

> +def test_efi_ecpt_ebbr_2_1(ubman) -> None:
> +    """ Unit test for the ECPT, with EBBR 2.1 profile
> +    This test uses the efidebug ecpt command to dump the ECPT and check that
> +    the EBBR 2.1 conformance profile is there.
> +
> +    Args:
> +        ubman -- U-Boot console
> +    """
> +    response = ubman.run_command('efidebug ecpt')
> +    assert ('cce33c35-74ac-4087-bce7-8b29b02eeb27  '
> +            'EFI EBBR 2.1 Conformance Profile') in response

I don't think that printing out the GUID in hexadecimal is helpful for 
users. But that would be a change in 3/4.

Best regards

Heinrich

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

* Re: [PATCH 1/4] lib: uuid: add EBBR 2.1 conformance profile GUID
  2026-03-09 12:19   ` Heinrich Schuchardt
@ 2026-03-09 14:38     ` Vincent Stehlé
  0 siblings, 0 replies; 22+ messages in thread
From: Vincent Stehlé @ 2026-03-09 14:38 UTC (permalink / raw)
  To: Heinrich Schuchardt
  Cc: Heinrich Schuchardt, Ilias Apalodimas, Tom Rini, u-boot

On Mon, Mar 09, 2026 at 01:19:32PM +0100, Heinrich Schuchardt wrote:

Hi Heinrich,

Thanks for your review; I will modify as per your suggestion and send a v2.

Best regards,
Vincent.

> On 3/5/26 17:13, Vincent Stehlé wrote:
> > Add support for printing the EFI_CONFORMANCE_PROFILE_EBBR_2_1_GUID as human
> > readable text.
> > 
> > This is added in the GUIDs range, which is compiled in only when
> > CONFIG_CMD_EFIDEBUG is set.
> > 
> > Signed-off-by: Vincent Stehlé <vincent.stehle@arm.com>
> > Cc: Tom Rini <trini@konsulko.com>
> > ---
> >   lib/uuid.c | 4 ++++
> >   1 file changed, 4 insertions(+)
> > 
> > diff --git a/lib/uuid.c b/lib/uuid.c
> > index 0a166320e07..d9d5414d4bf 100644
> > --- a/lib/uuid.c
> > +++ b/lib/uuid.c
> > @@ -254,6 +254,10 @@ static const struct {
> >   		NULL, "EFI Conformance Profiles Table",
> >   		EFI_CONFORMANCE_PROFILES_TABLE_GUID,
> >   	},
> 
> Some boards have tight binary size restrictions.
> 
> If CONFIG_EFI_ECPT=n, we don't need the GUID text. I would suggest to hide
> it behind an #ifdef.
> 
> Best regards
> 
> Heinrich
> 
> > +	{
> > +		NULL, "EFI EBBR 2.1 Conformance Profile",
> > +		EFI_CONFORMANCE_PROFILE_EBBR_2_1_GUID,
> > +	},
> >   #ifdef CONFIG_EFI_RISCV_BOOT_PROTOCOL
> >   	{
> >   		NULL, "RISC-V Boot",
> 

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

* Re: [PATCH 3/4] cmd: efidebug: add ecpt command
  2026-03-09 12:23   ` Heinrich Schuchardt
@ 2026-03-09 15:02     ` Vincent Stehlé
  0 siblings, 0 replies; 22+ messages in thread
From: Vincent Stehlé @ 2026-03-09 15:02 UTC (permalink / raw)
  To: Heinrich Schuchardt
  Cc: Heinrich Schuchardt, Ilias Apalodimas, Tom Rini, u-boot

On Mon, Mar 09, 2026 at 01:23:53PM +0100, Heinrich Schuchardt wrote:

Hi Heinrich,

Thanks for your review, I will send a v2 adding your first suggestion; more
comments below.

Best regards,
Vincent.

> On 3/5/26 17:13, Vincent Stehlé wrote:
> > Add an "efidebug ecpt" command, to print the conformance profiles in the
> > ECPT:
> > 
> >    => efidebug ecpt
> >    cce33c35-74ac-4087-bce7-8b29b02eeb27  EFI EBBR 2.1 Conformance Profile
> > 
> > Signed-off-by: Vincent Stehlé <vincent.stehle@arm.com>
> > Cc: Heinrich Schuchardt <xypron.glpk@gmx.de>
> > Cc: Ilias Apalodimas <ilias.apalodimas@linaro.org>
> > Cc: Tom Rini <trini@konsulko.com>
> > ---
> >   cmd/efidebug.c | 49 +++++++++++++++++++++++++++++++++++++++++++++++++
> >   1 file changed, 49 insertions(+)
> > 
> > diff --git a/cmd/efidebug.c b/cmd/efidebug.c
> > index 109496d9e95..672214a54b7 100644
> > --- a/cmd/efidebug.c
> > +++ b/cmd/efidebug.c
> > @@ -533,6 +533,47 @@ static int do_efi_show_defaults(struct cmd_tbl *cmdtp, int flag,
> >   	return CMD_RET_SUCCESS;
> >   }
> > +#if CONFIG_IS_ENABLED(EFI_ECPT)
> > +/**
> > + * do_efi_show_ecpt() - show UEFI conformance profiles in ECPT
> > + *
> > + * @cmdtp:	Command table
> > + * @flag:	Command flag
> > + * @argc:	Number of arguments
> > + * @argv:	Argument array
> > + * Return:	CMD_RET_SUCCESS on success,
> > + *		CMD_RET_USAGE or CMD_RET_FAILURE on failure
> > + *
> > + * Implement efidebug "ecpt" sub-command.
> > + * Show all the UEFI Conformance Profiles listed in the EFI Conformance Profiles
> > + * Table (ECPT).
> > + */
> > +static int do_efi_show_ecpt(struct cmd_tbl *cmdtp, int flag, int argc,
> > +			    char *const argv[])
> > +{
> > +	const struct efi_conformance_profiles_table *ecpt;
> > +	u16 n;
> > +
> > +	if (argc != 1)
> > +		return CMD_RET_USAGE;
> > +
> > +	ecpt = efi_get_configuration_table(&efi_ecpt_guid);
> > +	if (!ecpt) {
> > +		log_info("ECPT: table not present\n");
> 
> This looks like an error situation. Should this be:
> 
> 	log_err("ECPT table missing\n");

Ok, I will change this as you suggest and send a v2, returning CMD_RET_FAILURE,
then.

Note that I did hesitate and finally opted to replicate what
do_efi_capsule_esrt() was doing, but I think reporting an error as you suggest
makes more sense as we know that we should have an ECPT when CONFIG_EFI_ECPT=y.

> 
> > +		return CMD_RET_SUCCESS;
> > +	}
> > +
> > +	for (n = 0; n < ecpt->number_of_profiles; n++) {
> > +		const efi_guid_t *guid = &ecpt->conformance_profiles[n];
> > +
> > +		printf("%pUl  %s\n", guid->b,
> > +		       uuid_guid_get_str(guid->b) ?: "(unknown)");
> 
> Isn't the following enough:
> 
> 	printf("%pUs\n");
> 
> %pUs:   GUID text representation if known or fallback to %pUl

For this printing change I am not so sure; this is inspired from
efi_show_tables()'s behaviour and the intention is to have the following
outputs, depending on whether we know the GUID or not:

     cce33c35-74ac-4087-bce7-8b29b02eeb27  EFI EBBR 2.1 Conformance Profile
  or cce33c35-74ac-4087-bce7-8b29b02eeb27  (unknown)

With the change you suggest, we would have:

     EFI EBBR 2.1 Conformance Profile
  or cce33c35-74ac-4087-bce7-8b29b02eeb27

I think I prefer the original solution, as it more in line with `efidebug
tables' and it always shows the GUID in numerical form, but let me know if you
insist, in which case I will send a v3 with this change as well.

> 
> Best regards
> 
> Heinrich
> 
> > +	}
> > +
> > +	return CMD_RET_SUCCESS;
> > +}
> > +#endif /* CONFIG_IS_ENABLED(EFI_ECPT) */
> > +
> >   static const char * const efi_mem_type_string[] = {
> >   	[EFI_RESERVED_MEMORY_TYPE] = "RESERVED",
> >   	[EFI_LOADER_CODE] = "LOADER CODE",
> > @@ -1586,6 +1627,10 @@ static struct cmd_tbl cmd_efidebug_sub[] = {
> >   			 "", ""),
> >   	U_BOOT_CMD_MKENT(defaults, CONFIG_SYS_MAXARGS, 1, do_efi_show_defaults,
> >   			 "", ""),
> > +#if CONFIG_IS_ENABLED(EFI_ECPT)
> > +	U_BOOT_CMD_MKENT(ecpt, CONFIG_SYS_MAXARGS, 1, do_efi_show_ecpt,
> > +			 "", ""),
> > +#endif
> >   	U_BOOT_CMD_MKENT(images, CONFIG_SYS_MAXARGS, 1, do_efi_show_images,
> >   			 "", ""),
> >   	U_BOOT_CMD_MKENT(memmap, CONFIG_SYS_MAXARGS, 1, do_efi_show_memmap,
> > @@ -1680,6 +1725,10 @@ U_BOOT_LONGHELP(efidebug,
> >   	"  - show UEFI handles\n"
> >   	"efidebug defaults\n"
> >   	"  - show default EFI filename and PXE architecture\n"
> > +#if CONFIG_IS_ENABLED(EFI_ECPT)
> > +	"efidebug ecpt\n"
> > +	"  - show conformance profiles in the ECPT\n"
> > +#endif
> >   	"efidebug images\n"
> >   	"  - show loaded images\n"
> >   	"efidebug memmap\n"
> 

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

* [PATCH v2 1/4] lib: uuid: add EBBR 2.1 conformance profile GUID
  2026-03-05 16:13 [PATCH 0/4] Add an efidebug ecpt command Vincent Stehlé
                   ` (3 preceding siblings ...)
  2026-03-05 16:13 ` [PATCH 4/4] test/py: add ECPT tests Vincent Stehlé
@ 2026-03-09 16:36 ` Vincent Stehlé
  2026-03-09 16:38   ` Heinrich Schuchardt
  2026-03-11 16:14   ` Ilias Apalodimas
  2026-03-09 16:36 ` [PATCH v2 2/4] efi_loader: export efi_ecpt_guid Vincent Stehlé
                   ` (2 subsequent siblings)
  7 siblings, 2 replies; 22+ messages in thread
From: Vincent Stehlé @ 2026-03-09 16:36 UTC (permalink / raw)
  To: u-boot; +Cc: Heinrich Schuchardt, Ilias Apalodimas, Tom Rini,
	Vincent Stehlé

Add support for printing the EFI_CONFORMANCE_PROFILE_EBBR_2_1_GUID as human
readable text.

This is compiled in only when CONFIG_CMD_EFIDEBUG and CONFIG_EFI_EPCT are
set.

Suggested-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Signed-off-by: Vincent Stehlé <vincent.stehle@arm.com>
Cc: Tom Rini <trini@konsulko.com>
---

Changes in v2:
- Gate with CONFIG_EFI_ECPT (suggested by Heinrich)

 lib/uuid.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/lib/uuid.c b/lib/uuid.c
index 0a166320e07..3a666d0430d 100644
--- a/lib/uuid.c
+++ b/lib/uuid.c
@@ -254,6 +254,12 @@ static const struct {
 		NULL, "EFI Conformance Profiles Table",
 		EFI_CONFORMANCE_PROFILES_TABLE_GUID,
 	},
+#if CONFIG_IS_ENABLED(EFI_ECPT)
+	{
+		NULL, "EFI EBBR 2.1 Conformance Profile",
+		EFI_CONFORMANCE_PROFILE_EBBR_2_1_GUID,
+	},
+#endif
 #ifdef CONFIG_EFI_RISCV_BOOT_PROTOCOL
 	{
 		NULL, "RISC-V Boot",
-- 
2.53.0


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

* [PATCH v2 2/4] efi_loader: export efi_ecpt_guid
  2026-03-05 16:13 [PATCH 0/4] Add an efidebug ecpt command Vincent Stehlé
                   ` (4 preceding siblings ...)
  2026-03-09 16:36 ` [PATCH v2 1/4] lib: uuid: add EBBR 2.1 conformance profile GUID Vincent Stehlé
@ 2026-03-09 16:36 ` Vincent Stehlé
  2026-03-09 16:40   ` Heinrich Schuchardt
  2026-03-11 16:24   ` Ilias Apalodimas
  2026-03-09 16:36 ` [PATCH v2 3/4] cmd: efidebug: add ecpt command Vincent Stehlé
  2026-03-09 16:36 ` [PATCH v2 4/4] test/py: add ECPT tests Vincent Stehlé
  7 siblings, 2 replies; 22+ messages in thread
From: Vincent Stehlé @ 2026-03-09 16:36 UTC (permalink / raw)
  To: u-boot; +Cc: Heinrich Schuchardt, Ilias Apalodimas, Tom Rini,
	Vincent Stehlé

Export the ECPT GUID, to prepare accessing it from more than one location.

The C file containing the GUID is compiled only when CONFIG_EFI_ECPT is
set; gate the export accordingly.

Signed-off-by: Vincent Stehlé <vincent.stehle@arm.com>
Cc: Heinrich Schuchardt <xypron.glpk@gmx.de>
Cc: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Cc: Tom Rini <trini@konsulko.com>
---

(No change in v2; re-sending in the series for consistency only.)

 include/efi_loader.h             | 4 ++++
 lib/efi_loader/efi_conformance.c | 2 +-
 2 files changed, 5 insertions(+), 1 deletion(-)

diff --git a/include/efi_loader.h b/include/efi_loader.h
index 3e70ac07055..0ebc80e0af0 100644
--- a/include/efi_loader.h
+++ b/include/efi_loader.h
@@ -387,6 +387,10 @@ extern const efi_guid_t efi_guid_capsule_report;
 extern const efi_guid_t efi_guid_firmware_management_protocol;
 /* GUID for the ESRT */
 extern const efi_guid_t efi_esrt_guid;
+/* GUID for the ECPT */
+#if CONFIG_IS_ENABLED(EFI_ECPT)
+extern const efi_guid_t efi_ecpt_guid;
+#endif
 /* GUID of the SMBIOS table */
 extern const efi_guid_t smbios_guid;
 extern const efi_guid_t smbios3_guid;
diff --git a/lib/efi_loader/efi_conformance.c b/lib/efi_loader/efi_conformance.c
index 2d31800ccb8..470141af483 100644
--- a/lib/efi_loader/efi_conformance.c
+++ b/lib/efi_loader/efi_conformance.c
@@ -12,7 +12,7 @@
 #include <efi_api.h>
 #include <malloc.h>
 
-static const efi_guid_t efi_ecpt_guid = EFI_CONFORMANCE_PROFILES_TABLE_GUID;
+const efi_guid_t efi_ecpt_guid = EFI_CONFORMANCE_PROFILES_TABLE_GUID;
 
 /**
  * efi_ecpt_register() - Install the ECPT system table.
-- 
2.53.0


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

* [PATCH v2 3/4] cmd: efidebug: add ecpt command
  2026-03-05 16:13 [PATCH 0/4] Add an efidebug ecpt command Vincent Stehlé
                   ` (5 preceding siblings ...)
  2026-03-09 16:36 ` [PATCH v2 2/4] efi_loader: export efi_ecpt_guid Vincent Stehlé
@ 2026-03-09 16:36 ` Vincent Stehlé
  2026-03-09 16:41   ` Heinrich Schuchardt
  2026-03-11 16:20   ` Ilias Apalodimas
  2026-03-09 16:36 ` [PATCH v2 4/4] test/py: add ECPT tests Vincent Stehlé
  7 siblings, 2 replies; 22+ messages in thread
From: Vincent Stehlé @ 2026-03-09 16:36 UTC (permalink / raw)
  To: u-boot; +Cc: Heinrich Schuchardt, Ilias Apalodimas, Tom Rini,
	Vincent Stehlé

Add an "efidebug ecpt" command, to print the conformance profiles in the
ECPT:

  => efidebug ecpt
  cce33c35-74ac-4087-bce7-8b29b02eeb27  EFI EBBR 2.1 Conformance Profile

Suggested-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Signed-off-by: Vincent Stehlé <vincent.stehle@arm.com>
Cc: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Cc: Tom Rini <trini@konsulko.com>
---

Changes in v2:
- Change log level to error and adapt the printed message (suggested by
  Heinrich)
- Also in that case, return an error code

 cmd/efidebug.c | 49 +++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 49 insertions(+)

diff --git a/cmd/efidebug.c b/cmd/efidebug.c
index 109496d9e95..7b733119c82 100644
--- a/cmd/efidebug.c
+++ b/cmd/efidebug.c
@@ -533,6 +533,47 @@ static int do_efi_show_defaults(struct cmd_tbl *cmdtp, int flag,
 	return CMD_RET_SUCCESS;
 }
 
+#if CONFIG_IS_ENABLED(EFI_ECPT)
+/**
+ * do_efi_show_ecpt() - show UEFI conformance profiles in ECPT
+ *
+ * @cmdtp:	Command table
+ * @flag:	Command flag
+ * @argc:	Number of arguments
+ * @argv:	Argument array
+ * Return:	CMD_RET_SUCCESS on success,
+ *		CMD_RET_USAGE or CMD_RET_FAILURE on failure
+ *
+ * Implement efidebug "ecpt" sub-command.
+ * Show all the UEFI Conformance Profiles listed in the EFI Conformance Profiles
+ * Table (ECPT).
+ */
+static int do_efi_show_ecpt(struct cmd_tbl *cmdtp, int flag, int argc,
+			    char *const argv[])
+{
+	const struct efi_conformance_profiles_table *ecpt;
+	u16 n;
+
+	if (argc != 1)
+		return CMD_RET_USAGE;
+
+	ecpt = efi_get_configuration_table(&efi_ecpt_guid);
+	if (!ecpt) {
+		log_err("ECPT table missing\n");
+		return CMD_RET_FAILURE;
+	}
+
+	for (n = 0; n < ecpt->number_of_profiles; n++) {
+		const efi_guid_t *guid = &ecpt->conformance_profiles[n];
+
+		printf("%pUl  %s\n", guid->b,
+		       uuid_guid_get_str(guid->b) ?: "(unknown)");
+	}
+
+	return CMD_RET_SUCCESS;
+}
+#endif /* CONFIG_IS_ENABLED(EFI_ECPT) */
+
 static const char * const efi_mem_type_string[] = {
 	[EFI_RESERVED_MEMORY_TYPE] = "RESERVED",
 	[EFI_LOADER_CODE] = "LOADER CODE",
@@ -1586,6 +1627,10 @@ static struct cmd_tbl cmd_efidebug_sub[] = {
 			 "", ""),
 	U_BOOT_CMD_MKENT(defaults, CONFIG_SYS_MAXARGS, 1, do_efi_show_defaults,
 			 "", ""),
+#if CONFIG_IS_ENABLED(EFI_ECPT)
+	U_BOOT_CMD_MKENT(ecpt, CONFIG_SYS_MAXARGS, 1, do_efi_show_ecpt,
+			 "", ""),
+#endif
 	U_BOOT_CMD_MKENT(images, CONFIG_SYS_MAXARGS, 1, do_efi_show_images,
 			 "", ""),
 	U_BOOT_CMD_MKENT(memmap, CONFIG_SYS_MAXARGS, 1, do_efi_show_memmap,
@@ -1680,6 +1725,10 @@ U_BOOT_LONGHELP(efidebug,
 	"  - show UEFI handles\n"
 	"efidebug defaults\n"
 	"  - show default EFI filename and PXE architecture\n"
+#if CONFIG_IS_ENABLED(EFI_ECPT)
+	"efidebug ecpt\n"
+	"  - show conformance profiles in the ECPT\n"
+#endif
 	"efidebug images\n"
 	"  - show loaded images\n"
 	"efidebug memmap\n"
-- 
2.53.0


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

* [PATCH v2 4/4] test/py: add ECPT tests
  2026-03-05 16:13 [PATCH 0/4] Add an efidebug ecpt command Vincent Stehlé
                   ` (6 preceding siblings ...)
  2026-03-09 16:36 ` [PATCH v2 3/4] cmd: efidebug: add ecpt command Vincent Stehlé
@ 2026-03-09 16:36 ` Vincent Stehlé
  7 siblings, 0 replies; 22+ messages in thread
From: Vincent Stehlé @ 2026-03-09 16:36 UTC (permalink / raw)
  To: u-boot; +Cc: Heinrich Schuchardt, Ilias Apalodimas, Tom Rini,
	Vincent Stehlé

Add a couple of EFI Conformance Profiles Table (ECPT) tests, which exercise
the "efidebug ecpt" command.

Signed-off-by: Vincent Stehlé <vincent.stehle@arm.com>
Cc: Tom Rini <trini@konsulko.com>
Cc: Heinrich Schuchardt <xypron.glpk@gmx.de>
Cc: Ilias Apalodimas <ilias.apalodimas@linaro.org>
---

Changes in v2:
- Adapt to follow error message changes

 test/py/tests/test_efi_ecpt.py | 42 ++++++++++++++++++++++++++++++++++
 1 file changed, 42 insertions(+)
 create mode 100644 test/py/tests/test_efi_ecpt.py

diff --git a/test/py/tests/test_efi_ecpt.py b/test/py/tests/test_efi_ecpt.py
new file mode 100644
index 00000000000..632a6b90bad
--- /dev/null
+++ b/test/py/tests/test_efi_ecpt.py
@@ -0,0 +1,42 @@
+# SPDX-License-Identifier: GPL-2.0-or-later
+""" Unit test for the EFI Conformance Profiles Table (ECPT)
+"""
+
+import pytest
+
+
+@pytest.mark.buildconfigspec('cmd_efidebug')
+@pytest.mark.buildconfigspec('efi_ecpt')
+def test_efi_ecpt(ubman) -> None:
+    """ Unit test for the ECPT
+    This test assumes nothing about the ECPT contents, it just checks that the
+    ECPT table is there and that the efidebug ecpt command does not fail.
+
+    Args:
+        ubman -- U-Boot console
+    """
+    response = ubman.run_command('efidebug tables')
+    assert ('36122546-f7e7-4c8f-bd9b-eb8525b50c0b  '
+            'EFI Conformance Profiles Table') in response
+
+    response = ubman.run_command('efidebug ecpt')
+    assert 'Unknown command' not in response
+    assert 'Configure UEFI environment' not in response
+    assert 'Usage:' not in response
+    assert 'table missing' not in response
+
+
+@pytest.mark.buildconfigspec('cmd_efidebug')
+@pytest.mark.buildconfigspec('efi_ecpt')
+@pytest.mark.buildconfigspec('efi_ebbr_2_1_conformance')
+def test_efi_ecpt_ebbr_2_1(ubman) -> None:
+    """ Unit test for the ECPT, with EBBR 2.1 profile
+    This test uses the efidebug ecpt command to dump the ECPT and check that
+    the EBBR 2.1 conformance profile is there.
+
+    Args:
+        ubman -- U-Boot console
+    """
+    response = ubman.run_command('efidebug ecpt')
+    assert ('cce33c35-74ac-4087-bce7-8b29b02eeb27  '
+            'EFI EBBR 2.1 Conformance Profile') in response
-- 
2.53.0


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

* Re: [PATCH v2 1/4] lib: uuid: add EBBR 2.1 conformance profile GUID
  2026-03-09 16:36 ` [PATCH v2 1/4] lib: uuid: add EBBR 2.1 conformance profile GUID Vincent Stehlé
@ 2026-03-09 16:38   ` Heinrich Schuchardt
  2026-03-11 16:14   ` Ilias Apalodimas
  1 sibling, 0 replies; 22+ messages in thread
From: Heinrich Schuchardt @ 2026-03-09 16:38 UTC (permalink / raw)
  To: Vincent Stehlé, u-boot; +Cc: Ilias Apalodimas, Tom Rini

On 3/9/26 17:36, Vincent Stehlé wrote:
> Add support for printing the EFI_CONFORMANCE_PROFILE_EBBR_2_1_GUID as human
> readable text.
> 
> This is compiled in only when CONFIG_CMD_EFIDEBUG and CONFIG_EFI_EPCT are
> set.
> 
> Suggested-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
> Signed-off-by: Vincent Stehlé <vincent.stehle@arm.com>
> Cc: Tom Rini <trini@konsulko.com>

Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de>

> ---
> 
> Changes in v2:
> - Gate with CONFIG_EFI_ECPT (suggested by Heinrich)
> 
>   lib/uuid.c | 6 ++++++
>   1 file changed, 6 insertions(+)
> 
> diff --git a/lib/uuid.c b/lib/uuid.c
> index 0a166320e07..3a666d0430d 100644
> --- a/lib/uuid.c
> +++ b/lib/uuid.c
> @@ -254,6 +254,12 @@ static const struct {
>   		NULL, "EFI Conformance Profiles Table",
>   		EFI_CONFORMANCE_PROFILES_TABLE_GUID,
>   	},
> +#if CONFIG_IS_ENABLED(EFI_ECPT)
> +	{
> +		NULL, "EFI EBBR 2.1 Conformance Profile",
> +		EFI_CONFORMANCE_PROFILE_EBBR_2_1_GUID,
> +	},
> +#endif
>   #ifdef CONFIG_EFI_RISCV_BOOT_PROTOCOL
>   	{
>   		NULL, "RISC-V Boot",


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

* Re: [PATCH v2 2/4] efi_loader: export efi_ecpt_guid
  2026-03-09 16:36 ` [PATCH v2 2/4] efi_loader: export efi_ecpt_guid Vincent Stehlé
@ 2026-03-09 16:40   ` Heinrich Schuchardt
  2026-03-09 17:34     ` Vincent Stehlé
  2026-03-11 16:24   ` Ilias Apalodimas
  1 sibling, 1 reply; 22+ messages in thread
From: Heinrich Schuchardt @ 2026-03-09 16:40 UTC (permalink / raw)
  To: Vincent Stehlé, u-boot; +Cc: Ilias Apalodimas, Tom Rini

On 3/9/26 17:36, Vincent Stehlé wrote:
> Export the ECPT GUID, to prepare accessing it from more than one location.
> 
> The C file containing the GUID is compiled only when CONFIG_EFI_ECPT is
> set; gate the export accordingly.
> 
> Signed-off-by: Vincent Stehlé <vincent.stehle@arm.com>
> Cc: Heinrich Schuchardt <xypron.glpk@gmx.de>
> Cc: Ilias Apalodimas <ilias.apalodimas@linaro.org>
> Cc: Tom Rini <trini@konsulko.com>
> ---
> 
> (No change in v2; re-sending in the series for consistency only.)
> 
>   include/efi_loader.h             | 4 ++++
>   lib/efi_loader/efi_conformance.c | 2 +-
>   2 files changed, 5 insertions(+), 1 deletion(-)
> 
> diff --git a/include/efi_loader.h b/include/efi_loader.h
> index 3e70ac07055..0ebc80e0af0 100644
> --- a/include/efi_loader.h
> +++ b/include/efi_loader.h
> @@ -387,6 +387,10 @@ extern const efi_guid_t efi_guid_capsule_report;
>   extern const efi_guid_t efi_guid_firmware_management_protocol;
>   /* GUID for the ESRT */
>   extern const efi_guid_t efi_esrt_guid;
> +/* GUID for the ECPT */
> +#if CONFIG_IS_ENABLED(EFI_ECPT)

This #if looks superfluous. The include should compile without it.

Best regards

Heinrich

> +extern const efi_guid_t efi_ecpt_guid;
> +#endif
>   /* GUID of the SMBIOS table */
>   extern const efi_guid_t smbios_guid;
>   extern const efi_guid_t smbios3_guid;
> diff --git a/lib/efi_loader/efi_conformance.c b/lib/efi_loader/efi_conformance.c
> index 2d31800ccb8..470141af483 100644
> --- a/lib/efi_loader/efi_conformance.c
> +++ b/lib/efi_loader/efi_conformance.c
> @@ -12,7 +12,7 @@
>   #include <efi_api.h>
>   #include <malloc.h>
>   
> -static const efi_guid_t efi_ecpt_guid = EFI_CONFORMANCE_PROFILES_TABLE_GUID;
> +const efi_guid_t efi_ecpt_guid = EFI_CONFORMANCE_PROFILES_TABLE_GUID;
>   
>   /**
>    * efi_ecpt_register() - Install the ECPT system table.


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

* Re: [PATCH v2 3/4] cmd: efidebug: add ecpt command
  2026-03-09 16:36 ` [PATCH v2 3/4] cmd: efidebug: add ecpt command Vincent Stehlé
@ 2026-03-09 16:41   ` Heinrich Schuchardt
  2026-03-11 16:20   ` Ilias Apalodimas
  1 sibling, 0 replies; 22+ messages in thread
From: Heinrich Schuchardt @ 2026-03-09 16:41 UTC (permalink / raw)
  To: Vincent Stehlé; +Cc: Ilias Apalodimas, Tom Rini, u-boot

On 3/9/26 17:36, Vincent Stehlé wrote:
> Add an "efidebug ecpt" command, to print the conformance profiles in the
> ECPT:
> 
>    => efidebug ecpt
>    cce33c35-74ac-4087-bce7-8b29b02eeb27  EFI EBBR 2.1 Conformance Profile
> 
> Suggested-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
> Signed-off-by: Vincent Stehlé <vincent.stehle@arm.com>
> Cc: Ilias Apalodimas <ilias.apalodimas@linaro.org>
> Cc: Tom Rini <trini@konsulko.com>

Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de>

> ---
> 
> Changes in v2:
> - Change log level to error and adapt the printed message (suggested by
>    Heinrich)
> - Also in that case, return an error code
> 
>   cmd/efidebug.c | 49 +++++++++++++++++++++++++++++++++++++++++++++++++
>   1 file changed, 49 insertions(+)
> 
> diff --git a/cmd/efidebug.c b/cmd/efidebug.c
> index 109496d9e95..7b733119c82 100644
> --- a/cmd/efidebug.c
> +++ b/cmd/efidebug.c
> @@ -533,6 +533,47 @@ static int do_efi_show_defaults(struct cmd_tbl *cmdtp, int flag,
>   	return CMD_RET_SUCCESS;
>   }
>   
> +#if CONFIG_IS_ENABLED(EFI_ECPT)
> +/**
> + * do_efi_show_ecpt() - show UEFI conformance profiles in ECPT
> + *
> + * @cmdtp:	Command table
> + * @flag:	Command flag
> + * @argc:	Number of arguments
> + * @argv:	Argument array
> + * Return:	CMD_RET_SUCCESS on success,
> + *		CMD_RET_USAGE or CMD_RET_FAILURE on failure
> + *
> + * Implement efidebug "ecpt" sub-command.
> + * Show all the UEFI Conformance Profiles listed in the EFI Conformance Profiles
> + * Table (ECPT).
> + */
> +static int do_efi_show_ecpt(struct cmd_tbl *cmdtp, int flag, int argc,
> +			    char *const argv[])
> +{
> +	const struct efi_conformance_profiles_table *ecpt;
> +	u16 n;
> +
> +	if (argc != 1)
> +		return CMD_RET_USAGE;
> +
> +	ecpt = efi_get_configuration_table(&efi_ecpt_guid);
> +	if (!ecpt) {
> +		log_err("ECPT table missing\n");
> +		return CMD_RET_FAILURE;
> +	}
> +
> +	for (n = 0; n < ecpt->number_of_profiles; n++) {
> +		const efi_guid_t *guid = &ecpt->conformance_profiles[n];
> +
> +		printf("%pUl  %s\n", guid->b,
> +		       uuid_guid_get_str(guid->b) ?: "(unknown)");
> +	}
> +
> +	return CMD_RET_SUCCESS;
> +}
> +#endif /* CONFIG_IS_ENABLED(EFI_ECPT) */
> +
>   static const char * const efi_mem_type_string[] = {
>   	[EFI_RESERVED_MEMORY_TYPE] = "RESERVED",
>   	[EFI_LOADER_CODE] = "LOADER CODE",
> @@ -1586,6 +1627,10 @@ static struct cmd_tbl cmd_efidebug_sub[] = {
>   			 "", ""),
>   	U_BOOT_CMD_MKENT(defaults, CONFIG_SYS_MAXARGS, 1, do_efi_show_defaults,
>   			 "", ""),
> +#if CONFIG_IS_ENABLED(EFI_ECPT)
> +	U_BOOT_CMD_MKENT(ecpt, CONFIG_SYS_MAXARGS, 1, do_efi_show_ecpt,
> +			 "", ""),
> +#endif
>   	U_BOOT_CMD_MKENT(images, CONFIG_SYS_MAXARGS, 1, do_efi_show_images,
>   			 "", ""),
>   	U_BOOT_CMD_MKENT(memmap, CONFIG_SYS_MAXARGS, 1, do_efi_show_memmap,
> @@ -1680,6 +1725,10 @@ U_BOOT_LONGHELP(efidebug,
>   	"  - show UEFI handles\n"
>   	"efidebug defaults\n"
>   	"  - show default EFI filename and PXE architecture\n"
> +#if CONFIG_IS_ENABLED(EFI_ECPT)
> +	"efidebug ecpt\n"
> +	"  - show conformance profiles in the ECPT\n"
> +#endif
>   	"efidebug images\n"
>   	"  - show loaded images\n"
>   	"efidebug memmap\n"


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

* Re: [PATCH v2 2/4] efi_loader: export efi_ecpt_guid
  2026-03-09 16:40   ` Heinrich Schuchardt
@ 2026-03-09 17:34     ` Vincent Stehlé
  0 siblings, 0 replies; 22+ messages in thread
From: Vincent Stehlé @ 2026-03-09 17:34 UTC (permalink / raw)
  To: Heinrich Schuchardt; +Cc: u-boot, Ilias Apalodimas, Tom Rini

On Mon, Mar 09, 2026 at 05:40:12PM +0100, Heinrich Schuchardt wrote:

Hi Heinrich,

Thanks for the review; my comments below.

Best regards,
Vincent.

> On 3/9/26 17:36, Vincent Stehlé wrote:
> > Export the ECPT GUID, to prepare accessing it from more than one location.
> > 
> > The C file containing the GUID is compiled only when CONFIG_EFI_ECPT is
> > set; gate the export accordingly.
> > 
> > Signed-off-by: Vincent Stehlé <vincent.stehle@arm.com>
> > Cc: Heinrich Schuchardt <xypron.glpk@gmx.de>
> > Cc: Ilias Apalodimas <ilias.apalodimas@linaro.org>
> > Cc: Tom Rini <trini@konsulko.com>
> > ---
> > 
> > (No change in v2; re-sending in the series for consistency only.)
> > 
> >   include/efi_loader.h             | 4 ++++
> >   lib/efi_loader/efi_conformance.c | 2 +-
> >   2 files changed, 5 insertions(+), 1 deletion(-)
> > 
> > diff --git a/include/efi_loader.h b/include/efi_loader.h
> > index 3e70ac07055..0ebc80e0af0 100644
> > --- a/include/efi_loader.h
> > +++ b/include/efi_loader.h
> > @@ -387,6 +387,10 @@ extern const efi_guid_t efi_guid_capsule_report;
> >   extern const efi_guid_t efi_guid_firmware_management_protocol;
> >   /* GUID for the ESRT */
> >   extern const efi_guid_t efi_esrt_guid;
> > +/* GUID for the ECPT */
> > +#if CONFIG_IS_ENABLED(EFI_ECPT)
> 
> This #if looks superfluous. The include should compile without it.

This should compile indeed, but it will not always link as the efi_ecpt_guid
symbol is defined in lib/efi_loader/efi_conformance.c, which is compiled only
when CONFIG_EFI_ECPT is set.

I think gating the declaration serves two purposes here:

1. It should make the build fail at the point where the symbol is used, which
   should be -arguably- easier to debug than having it fail at link-time.
2. It kind of documents the fact that the symbol is available only when
   CONFIG_EFI_ECPT is set. This should avoid having to find the symbol in
   efi_conformance.c and having to look into the corresponding Makefile to have
   this information.

Besides, other symbols are already declared conditionally in efi_loader.h.

Anyway, if you insist I could send a v3 without the #if; just let me know.

> 
> Best regards
> 
> Heinrich
> 
> > +extern const efi_guid_t efi_ecpt_guid;
> > +#endif
> >   /* GUID of the SMBIOS table */
> >   extern const efi_guid_t smbios_guid;
> >   extern const efi_guid_t smbios3_guid;
> > diff --git a/lib/efi_loader/efi_conformance.c b/lib/efi_loader/efi_conformance.c
> > index 2d31800ccb8..470141af483 100644
> > --- a/lib/efi_loader/efi_conformance.c
> > +++ b/lib/efi_loader/efi_conformance.c
> > @@ -12,7 +12,7 @@
> >   #include <efi_api.h>
> >   #include <malloc.h>
> > -static const efi_guid_t efi_ecpt_guid = EFI_CONFORMANCE_PROFILES_TABLE_GUID;
> > +const efi_guid_t efi_ecpt_guid = EFI_CONFORMANCE_PROFILES_TABLE_GUID;
> >   /**
> >    * efi_ecpt_register() - Install the ECPT system table.
> 

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

* Re: [PATCH v2 1/4] lib: uuid: add EBBR 2.1 conformance profile GUID
  2026-03-09 16:36 ` [PATCH v2 1/4] lib: uuid: add EBBR 2.1 conformance profile GUID Vincent Stehlé
  2026-03-09 16:38   ` Heinrich Schuchardt
@ 2026-03-11 16:14   ` Ilias Apalodimas
  1 sibling, 0 replies; 22+ messages in thread
From: Ilias Apalodimas @ 2026-03-11 16:14 UTC (permalink / raw)
  To: Vincent Stehlé; +Cc: u-boot, Heinrich Schuchardt, Tom Rini

On Mon, 9 Mar 2026 at 18:36, Vincent Stehlé <vincent.stehle@arm.com> wrote:
>
> Add support for printing the EFI_CONFORMANCE_PROFILE_EBBR_2_1_GUID as human
> readable text.
>
> This is compiled in only when CONFIG_CMD_EFIDEBUG and CONFIG_EFI_EPCT are
> set.
>
> Suggested-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
> Signed-off-by: Vincent Stehlé <vincent.stehle@arm.com>
> Cc: Tom Rini <trini@konsulko.com>
> ---

Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
>
> Changes in v2:
> - Gate with CONFIG_EFI_ECPT (suggested by Heinrich)
>
>  lib/uuid.c | 6 ++++++
>  1 file changed, 6 insertions(+)
>
> diff --git a/lib/uuid.c b/lib/uuid.c
> index 0a166320e07..3a666d0430d 100644
> --- a/lib/uuid.c
> +++ b/lib/uuid.c
> @@ -254,6 +254,12 @@ static const struct {
>                 NULL, "EFI Conformance Profiles Table",
>                 EFI_CONFORMANCE_PROFILES_TABLE_GUID,
>         },
> +#if CONFIG_IS_ENABLED(EFI_ECPT)
> +       {
> +               NULL, "EFI EBBR 2.1 Conformance Profile",
> +               EFI_CONFORMANCE_PROFILE_EBBR_2_1_GUID,
> +       },
> +#endif
>  #ifdef CONFIG_EFI_RISCV_BOOT_PROTOCOL
>         {
>                 NULL, "RISC-V Boot",
> --
> 2.53.0
>

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

* Re: [PATCH v2 3/4] cmd: efidebug: add ecpt command
  2026-03-09 16:36 ` [PATCH v2 3/4] cmd: efidebug: add ecpt command Vincent Stehlé
  2026-03-09 16:41   ` Heinrich Schuchardt
@ 2026-03-11 16:20   ` Ilias Apalodimas
  1 sibling, 0 replies; 22+ messages in thread
From: Ilias Apalodimas @ 2026-03-11 16:20 UTC (permalink / raw)
  To: Vincent Stehlé; +Cc: u-boot, Heinrich Schuchardt, Tom Rini

On Mon, 9 Mar 2026 at 18:36, Vincent Stehlé <vincent.stehle@arm.com> wrote:
>
> Add an "efidebug ecpt" command, to print the conformance profiles in the
> ECPT:
>
>   => efidebug ecpt
>   cce33c35-74ac-4087-bce7-8b29b02eeb27  EFI EBBR 2.1 Conformance Profile
>
> Suggested-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
> Signed-off-by: Vincent Stehlé <vincent.stehle@arm.com>
> Cc: Ilias Apalodimas <ilias.apalodimas@linaro.org>
> Cc: Tom Rini <trini@konsulko.com>
> ---
>
> Changes in v2:
> - Change log level to error and adapt the printed message (suggested by
>   Heinrich)
> - Also in that case, return an error code
>
>  cmd/efidebug.c | 49 +++++++++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 49 insertions(+)
>

Acked-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>

> diff --git a/cmd/efidebug.c b/cmd/efidebug.c
> index 109496d9e95..7b733119c82 100644
> --- a/cmd/efidebug.c
> +++ b/cmd/efidebug.c
> @@ -533,6 +533,47 @@ static int do_efi_show_defaults(struct cmd_tbl *cmdtp, int flag,
>         return CMD_RET_SUCCESS;
>  }
>
> +#if CONFIG_IS_ENABLED(EFI_ECPT)
> +/**
> + * do_efi_show_ecpt() - show UEFI conformance profiles in ECPT
> + *
> + * @cmdtp:     Command table
> + * @flag:      Command flag
> + * @argc:      Number of arguments
> + * @argv:      Argument array
> + * Return:     CMD_RET_SUCCESS on success,
> + *             CMD_RET_USAGE or CMD_RET_FAILURE on failure
> + *
> + * Implement efidebug "ecpt" sub-command.
> + * Show all the UEFI Conformance Profiles listed in the EFI Conformance Profiles
> + * Table (ECPT).
> + */
> +static int do_efi_show_ecpt(struct cmd_tbl *cmdtp, int flag, int argc,
> +                           char *const argv[])
> +{
> +       const struct efi_conformance_profiles_table *ecpt;
> +       u16 n;
> +
> +       if (argc != 1)
> +               return CMD_RET_USAGE;
> +
> +       ecpt = efi_get_configuration_table(&efi_ecpt_guid);
> +       if (!ecpt) {
> +               log_err("ECPT table missing\n");
> +               return CMD_RET_FAILURE;
> +       }
> +
> +       for (n = 0; n < ecpt->number_of_profiles; n++) {
> +               const efi_guid_t *guid = &ecpt->conformance_profiles[n];
> +
> +               printf("%pUl  %s\n", guid->b,
> +                      uuid_guid_get_str(guid->b) ?: "(unknown)");
> +       }
> +
> +       return CMD_RET_SUCCESS;
> +}
> +#endif /* CONFIG_IS_ENABLED(EFI_ECPT) */
> +
>  static const char * const efi_mem_type_string[] = {
>         [EFI_RESERVED_MEMORY_TYPE] = "RESERVED",
>         [EFI_LOADER_CODE] = "LOADER CODE",
> @@ -1586,6 +1627,10 @@ static struct cmd_tbl cmd_efidebug_sub[] = {
>                          "", ""),
>         U_BOOT_CMD_MKENT(defaults, CONFIG_SYS_MAXARGS, 1, do_efi_show_defaults,
>                          "", ""),
> +#if CONFIG_IS_ENABLED(EFI_ECPT)
> +       U_BOOT_CMD_MKENT(ecpt, CONFIG_SYS_MAXARGS, 1, do_efi_show_ecpt,
> +                        "", ""),
> +#endif
>         U_BOOT_CMD_MKENT(images, CONFIG_SYS_MAXARGS, 1, do_efi_show_images,
>                          "", ""),
>         U_BOOT_CMD_MKENT(memmap, CONFIG_SYS_MAXARGS, 1, do_efi_show_memmap,
> @@ -1680,6 +1725,10 @@ U_BOOT_LONGHELP(efidebug,
>         "  - show UEFI handles\n"
>         "efidebug defaults\n"
>         "  - show default EFI filename and PXE architecture\n"
> +#if CONFIG_IS_ENABLED(EFI_ECPT)
> +       "efidebug ecpt\n"
> +       "  - show conformance profiles in the ECPT\n"
> +#endif
>         "efidebug images\n"
>         "  - show loaded images\n"
>         "efidebug memmap\n"
> --
> 2.53.0
>

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

* Re: [PATCH v2 2/4] efi_loader: export efi_ecpt_guid
  2026-03-09 16:36 ` [PATCH v2 2/4] efi_loader: export efi_ecpt_guid Vincent Stehlé
  2026-03-09 16:40   ` Heinrich Schuchardt
@ 2026-03-11 16:24   ` Ilias Apalodimas
  1 sibling, 0 replies; 22+ messages in thread
From: Ilias Apalodimas @ 2026-03-11 16:24 UTC (permalink / raw)
  To: Vincent Stehlé; +Cc: u-boot, Heinrich Schuchardt, Tom Rini

On Mon, 9 Mar 2026 at 18:36, Vincent Stehlé <vincent.stehle@arm.com> wrote:
>
> Export the ECPT GUID, to prepare accessing it from more than one location.
>
> The C file containing the GUID is compiled only when CONFIG_EFI_ECPT is
> set; gate the export accordingly.
>
> Signed-off-by: Vincent Stehlé <vincent.stehle@arm.com>
> Cc: Heinrich Schuchardt <xypron.glpk@gmx.de>
> Cc: Ilias Apalodimas <ilias.apalodimas@linaro.org>
> Cc: Tom Rini <trini@konsulko.com>
> ---

Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>

>
> (No change in v2; re-sending in the series for consistency only.)
>
>  include/efi_loader.h             | 4 ++++
>  lib/efi_loader/efi_conformance.c | 2 +-
>  2 files changed, 5 insertions(+), 1 deletion(-)
>
> diff --git a/include/efi_loader.h b/include/efi_loader.h
> index 3e70ac07055..0ebc80e0af0 100644
> --- a/include/efi_loader.h
> +++ b/include/efi_loader.h
> @@ -387,6 +387,10 @@ extern const efi_guid_t efi_guid_capsule_report;
>  extern const efi_guid_t efi_guid_firmware_management_protocol;
>  /* GUID for the ESRT */
>  extern const efi_guid_t efi_esrt_guid;
> +/* GUID for the ECPT */
> +#if CONFIG_IS_ENABLED(EFI_ECPT)
> +extern const efi_guid_t efi_ecpt_guid;
> +#endif
>  /* GUID of the SMBIOS table */
>  extern const efi_guid_t smbios_guid;
>  extern const efi_guid_t smbios3_guid;
> diff --git a/lib/efi_loader/efi_conformance.c b/lib/efi_loader/efi_conformance.c
> index 2d31800ccb8..470141af483 100644
> --- a/lib/efi_loader/efi_conformance.c
> +++ b/lib/efi_loader/efi_conformance.c
> @@ -12,7 +12,7 @@
>  #include <efi_api.h>
>  #include <malloc.h>
>
> -static const efi_guid_t efi_ecpt_guid = EFI_CONFORMANCE_PROFILES_TABLE_GUID;
> +const efi_guid_t efi_ecpt_guid = EFI_CONFORMANCE_PROFILES_TABLE_GUID;
>
>  /**
>   * efi_ecpt_register() - Install the ECPT system table.
> --
> 2.53.0
>

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

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

Thread overview: 22+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-03-05 16:13 [PATCH 0/4] Add an efidebug ecpt command Vincent Stehlé
2026-03-05 16:13 ` [PATCH 1/4] lib: uuid: add EBBR 2.1 conformance profile GUID Vincent Stehlé
2026-03-09 12:19   ` Heinrich Schuchardt
2026-03-09 14:38     ` Vincent Stehlé
2026-03-05 16:13 ` [PATCH 2/4] efi_loader: export efi_ecpt_guid Vincent Stehlé
2026-03-09 12:26   ` Heinrich Schuchardt
2026-03-05 16:13 ` [PATCH 3/4] cmd: efidebug: add ecpt command Vincent Stehlé
2026-03-09 12:23   ` Heinrich Schuchardt
2026-03-09 15:02     ` Vincent Stehlé
2026-03-05 16:13 ` [PATCH 4/4] test/py: add ECPT tests Vincent Stehlé
2026-03-09 12:37   ` Heinrich Schuchardt
2026-03-09 16:36 ` [PATCH v2 1/4] lib: uuid: add EBBR 2.1 conformance profile GUID Vincent Stehlé
2026-03-09 16:38   ` Heinrich Schuchardt
2026-03-11 16:14   ` Ilias Apalodimas
2026-03-09 16:36 ` [PATCH v2 2/4] efi_loader: export efi_ecpt_guid Vincent Stehlé
2026-03-09 16:40   ` Heinrich Schuchardt
2026-03-09 17:34     ` Vincent Stehlé
2026-03-11 16:24   ` Ilias Apalodimas
2026-03-09 16:36 ` [PATCH v2 3/4] cmd: efidebug: add ecpt command Vincent Stehlé
2026-03-09 16:41   ` Heinrich Schuchardt
2026-03-11 16:20   ` Ilias Apalodimas
2026-03-09 16:36 ` [PATCH v2 4/4] test/py: add ECPT tests Vincent Stehlé

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