From 648a8dcb39306ebd32353d6c503ac3b69e064190 Mon Sep 17 00:00:00 2001 From: Jose Marinho Date: Fri, 17 Dec 2021 12:55:05 +0000 Subject: [PATCH] efi: ECPT add EBBRv2.0 conformance profile Display the EBBRv2.0 conformance in the ECPT table. The EBBRv2.0 conformance profile is set in the ECPT if CONFIG_EFI_EBBR_2_0_CONFORMANCE=y. Signed-off-by: Jose Marinho Add dependencies for CONFIG_EFI_EBBR_2_0_CONFORMANCE. Enable the setting by default. Reviewed-by: Heinrich Schuchardt --- include/efi_api.h | 4 ++++ lib/efi_loader/Kconfig | 11 +++++++++++ lib/efi_loader/efi_conformance.c | 6 ++++++ 3 files changed, 21 insertions(+) diff --git a/include/efi_api.h b/include/efi_api.h index 58934bd..9bb0d44 100644 --- a/include/efi_api.h +++ b/include/efi_api.h @@ -232,6 +232,10 @@ enum efi_reset_type { #define EFI_CONFORMANCE_PROFILES_TABLE_VERSION 1 +#define EFI_CONFORMANCE_PROFILE_EBBR_2_0_GUID \ + EFI_GUID(0xcce33c35, 0x74ac, 0x4087, 0xbc, 0xe7, \ + 0x8b, 0x29, 0xb0, 0x2e, 0xeb, 0x27) + struct efi_conformance_profiles_table { u16 version; u16 number_of_profiles; diff --git a/lib/efi_loader/Kconfig b/lib/efi_loader/Kconfig index 2b2e9ae..b8fb270 100644 --- a/lib/efi_loader/Kconfig +++ b/lib/efi_loader/Kconfig @@ -391,6 +391,17 @@ config EFI_ECPT help Enabling this option created the ECPT UEFI table. +config EFI_EBBR_2_0_CONFORMANCE + bool "Add the EBBRv2.0 conformance entry to the ECPT table" + depends on EFI_ECPT + depends on EFI_LOADER_HII + depends on EFI_RISCV_BOOT_PROTOCOL || !RISCV + depends on EFI_RNG_PROTOCOL || !DM_RNG + depends on EFI_UNICODE_COLLATION_PROTOCOL2 + default y + help + Enabling this option adds the EBBRv2.0 conformance entry to the ECPT UEFI table. + config EFI_RISCV_BOOT_PROTOCOL bool "RISCV_EFI_BOOT_PROTOCOL support" default y diff --git a/lib/efi_loader/efi_conformance.c b/lib/efi_loader/efi_conformance.c index 385d76c..a49aae9 100644 --- a/lib/efi_loader/efi_conformance.c +++ b/lib/efi_loader/efi_conformance.c @@ -12,6 +12,8 @@ #include static const efi_guid_t efi_ecpt_guid = EFI_CONFORMANCE_PROFILES_TABLE_GUID; +static const efi_guid_t efi_ebbr_2_0_guid = + EFI_CONFORMANCE_PROFILE_EBBR_2_0_GUID; /** * efi_ecpt_register() - Install the ECPT system table. @@ -36,6 +38,10 @@ efi_status_t efi_ecpt_register(void) return ret; } + if (CONFIG_IS_ENABLED(EFI_EBBR_2_0_CONFORMANCE)) + guidcpy(&ecpt->conformance_profiles[num_entries++], + &efi_ebbr_2_0_guid); + ecpt->version = EFI_CONFORMANCE_PROFILES_TABLE_VERSION; ecpt->number_of_profiles = num_entries; -- 2.7.4