1
0
mirror of https://xff.cz/git/u-boot/ synced 2025-10-17 07:52:46 +02:00

efi_loader: add RuntimeServicesSupported variable

This variable is defined in UEFI specification 2.8, section 8.1.
Its value should be updated whenever we add any usable runtime services
function.

Currently we only support SetVirtualAddress() for all systems and
ResetSystem() for some.

Signed-off-by: AKASHI Takahiro <takahiro.akashi@linaro.org>
Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
This commit is contained in:
AKASHI Takahiro
2019-06-05 13:21:38 +09:00
committed by Heinrich Schuchardt
parent c77d8e9d89
commit e771b4b39e
4 changed files with 47 additions and 0 deletions

View File

@@ -89,6 +89,30 @@ struct elf_rela {
* handle a good number of runtime callbacks
*/
efi_status_t efi_init_runtime_supported(void)
{
u16 efi_runtime_services_supported = 0;
/*
* This value must be synced with efi_runtime_detach_list
* as well as efi_runtime_services.
*/
#if CONFIG_IS_ENABLED(ARCH_BCM283X) || \
CONFIG_IS_ENABLED(FSL_LAYERSCAPE) || \
CONFIG_IS_ENABLED(SYSRESET_X86) || \
CONFIG_IS_ENABLED(PSCI_RESET)
efi_runtime_services_supported |= EFI_RT_SUPPORTED_RESET_SYSTEM;
#endif
efi_runtime_services_supported |=
EFI_RT_SUPPORTED_SET_VIRTUAL_ADDRESS_MAP;
return EFI_CALL(efi_set_variable(L"RuntimeServicesSupported",
&efi_global_variable_guid,
EFI_VARIABLE_BOOTSERVICE_ACCESS |
EFI_VARIABLE_RUNTIME_ACCESS,
sizeof(efi_runtime_services_supported),
&efi_runtime_services_supported));
}
/**
* efi_update_table_header_crc32() - Update crc32 in table header
*