* [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 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.