efi_loader: specify UEFI spec revision

Both in the boot and the runtime services tables we have to specify the
UEFI spec revision. The same value is already used for the system
table. So let's use a common constant.

In the boot services table we have to provide the header signature.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
Signed-off-by: Alexander Graf <agraf@suse.de>
This commit is contained in:
Heinrich Schuchardt 2018-06-28 12:45:27 +02:00 committed by Alexander Graf
parent e67ff94ded
commit 112f243016
3 changed files with 8 additions and 3 deletions

View file

@ -21,6 +21,9 @@
#include <asm/setjmp.h>
#endif
/* UEFI spec version 2.7 */
#define EFI_SPECIFICATION_VERSION (2 << 16 | 70)
/* Types and defines for EFI CreateEvent */
enum efi_timer_delay {
EFI_TIMER_STOP = 0,
@ -46,6 +49,7 @@ typedef uint16_t *efi_string_t;
struct efi_event;
/* EFI Boot Services table */
#define EFI_BOOT_SERVICES_SIGNATURE 0x56524553544f4f42
struct efi_boot_services {
struct efi_table_hdr hdr;
efi_status_t (EFIAPI *raise_tpl)(efi_uintn_t new_tpl);
@ -186,7 +190,6 @@ enum efi_reset_type {
/* EFI Runtime Services table */
#define EFI_RUNTIME_SERVICES_SIGNATURE 0x5652453544e5552ULL
#define EFI_RUNTIME_SERVICES_REVISION 0x00010000
#define CAPSULE_FLAGS_PERSIST_ACROSS_RESET 0x00010000
#define CAPSULE_FLAGS_POPULATE_SYSTEM_TABLE 0x00020000

View file

@ -3058,6 +3058,8 @@ out:
static const struct efi_boot_services efi_boot_services = {
.hdr = {
.signature = EFI_BOOT_SERVICES_SIGNATURE,
.revision = EFI_SPECIFICATION_VERSION,
.headersize = sizeof(struct efi_table_hdr),
},
.raise_tpl = efi_raise_tpl,
@ -3113,7 +3115,7 @@ static uint16_t __efi_runtime_data firmware_vendor[] = L"Das U-Boot";
struct efi_system_table __efi_runtime_data systab = {
.hdr = {
.signature = EFI_SYSTEM_TABLE_SIGNATURE,
.revision = 2 << 16 | 70, /* 2.7 */
.revision = EFI_SPECIFICATION_VERSION,
.headersize = sizeof(struct efi_table_hdr),
},
.fw_vendor = (long)firmware_vendor,

View file

@ -459,7 +459,7 @@ efi_status_t __efi_runtime EFIAPI efi_query_variable_info(
struct efi_runtime_services __efi_runtime_data efi_runtime_services = {
.hdr = {
.signature = EFI_RUNTIME_SERVICES_SIGNATURE,
.revision = EFI_RUNTIME_SERVICES_REVISION,
.revision = EFI_SPECIFICATION_VERSION,
.headersize = sizeof(struct efi_table_hdr),
},
.get_time = &efi_get_time_boottime,