
Hi Heinrich,
/* Use internal device tree when starting UEFI application */ #define EFI_FDT_USE_INTERNAL NULL
diff --git a/lib/efi_loader/efi_runtime.c b/lib/efi_loader/efi_runtime.c index 8ebbea7e5c69..d898ba6c268f 100644 --- a/lib/efi_loader/efi_runtime.c +++ b/lib/efi_loader/efi_runtime.c @@ -127,10 +127,6 @@ efi_status_t efi_init_runtime_supported(void) EFI_RT_SUPPORTED_SET_VIRTUAL_ADDRESS_MAP | EFI_RT_SUPPORTED_CONVERT_POINTER;
if (IS_ENABLED(CONFIG_EFI_RT_VOLATILE_STORE))
rt_table->runtime_services_supported |=
EFI_RT_SUPPORTED_SET_VARIABLE;
[...]
Why do you want to remove this flag?
I don't, I messed this up during my rebase before sending the patches.
The code in EBS() was supposed to re-enable it. It's all fixed in patch #3, but this patch needs a change as well rt_prop->runtime_services_supported |= ~EFI_RT_SUPPORTED_SET_VARIABLE; should be rt_prop->runtime_services_supported |= EFI_RT_SUPPORTED_SET_VARIABLE; in efi_variables_boot_exit_notify()
Thanks /Ilias
Best regards
Heinrich
/* * This value must be synced with efi_runtime_detach_list * as well as efi_runtime_services.
diff --git a/lib/efi_loader/efi_variable.c b/lib/efi_loader/efi_variable.c index f79041e6bedd..f97c8c57f75c 100644 --- a/lib/efi_loader/efi_variable.c +++ b/lib/efi_loader/efi_variable.c @@ -554,6 +554,26 @@ if (IS_ENABLED(CONFIG_EFI_RT_VOLATILE_STORE)) { */ void efi_variables_boot_exit_notify(void) {
const efi_guid_t efi_guid_efi_rt_var_file = U_BOOT_EFI_RT_VAR_FILE_GUID;
const efi_guid_t rt_prop_guid = EFI_RT_PROPERTIES_TABLE_GUID;
efi_status_t ret;
if (IS_ENABLED(CONFIG_EFI_RT_VOLATILE_STORE)) {
struct efi_rt_properties_table *rt_prop =
efi_get_configuration_table(&rt_prop_guid);
ret = efi_set_variable_int(u"RTStorageVolatile",
&efi_guid_efi_rt_var_file,
EFI_VARIABLE_BOOTSERVICE_ACCESS |
EFI_VARIABLE_RUNTIME_ACCESS |
EFI_VARIABLE_READ_ONLY,
sizeof(EFI_VAR_FILE_NAME),
EFI_VAR_FILE_NAME, false);
if (ret != EFI_SUCCESS)
rt_prop->runtime_services_supported |= ~EFI_RT_SUPPORTED_SET_VARIABLE;
else
log_err("Can't RTStorage. SetVariableRT won't be available\n");
} /* Switch variable services functions to runtime version */ efi_runtime_services.get_variable = efi_get_variable_runtime; efi_runtime_services.get_next_variable_name =