This does not support secure boot so far, but if a previous test has enabled it, it will remain enabled, thus causing this test to fail with:
efi_load_pe() Image not authenticated Fix this by providing a way to disable secure boot in tests. Signed-off-by: Simon Glass <s...@chromium.org> --- (no changes since v1) include/efi_loader.h | 12 ++++++++++++ lib/efi_loader/efi_var_common.c | 5 +++++ test/boot/bootflow.c | 1 + 3 files changed, 18 insertions(+) diff --git a/include/efi_loader.h b/include/efi_loader.h index 1269907fa3c..a67d3827812 100644 --- a/include/efi_loader.h +++ b/include/efi_loader.h @@ -1117,6 +1117,18 @@ struct efi_signature_store *efi_sigstore_parse_sigdb(u16 *name); bool efi_secure_boot_enabled(void); +/** + * efi_set_secure_boot_enabled - set whether secure boot is enabled or not + * + * This should be only be used in tests. + * + * TODO(s...@chromium.org): Consider how we can reinit the EFI state without + * restarting U-Boot + * + * @enable: true to enable, false to disable + */ +void efi_set_secure_boot_enabled(bool enable); + bool efi_capsule_auth_enabled(void); void *efi_prepare_aligned_image(void *efi, u64 *efi_size); diff --git a/lib/efi_loader/efi_var_common.c b/lib/efi_loader/efi_var_common.c index ea8d2a4cf98..0f0e6e8d792 100644 --- a/lib/efi_loader/efi_var_common.c +++ b/lib/efi_loader/efi_var_common.c @@ -362,6 +362,11 @@ bool efi_secure_boot_enabled(void) return efi_secure_boot; } +void efi_set_secure_boot_enabled(bool enable) +{ + efi_secure_boot = enable; +} + enum efi_auth_var_type efi_auth_var_get_type(const u16 *name, const efi_guid_t *guid) { diff --git a/test/boot/bootflow.c b/test/boot/bootflow.c index da713d8ed72..f64d91e0d64 100644 --- a/test/boot/bootflow.c +++ b/test/boot/bootflow.c @@ -1230,6 +1230,7 @@ static int bootflow_efi(struct unit_test_state *uts) struct udevice *bootstd; const char **old_order; + efi_set_secure_boot_enabled(false); ut_assertok(uclass_first_device_err(UCLASS_BOOTSTD, &bootstd)); std = dev_get_priv(bootstd); old_order = std->bootdev_order; -- 2.43.0