efi_loader: define UpdateCapsule api

In this commit, skeleton functions for capsule-related API's are
added under CONFIG_EFI_UPDATE_CAPSULE configuration.
Detailed implementation for a specific capsule type will be added
in the succeeding patches.

Signed-off-by: AKASHI Takahiro <takahiro.akashi@linaro.org>
This commit is contained in:
AKASHI Takahiro 2020-11-17 09:27:55 +09:00 committed by Heinrich Schuchardt
parent 96ec4b1a18
commit 2bc27ca8a0
7 changed files with 316 additions and 54 deletions

View file

@ -217,6 +217,10 @@ enum efi_reset_type {
#define CAPSULE_FLAGS_POPULATE_SYSTEM_TABLE 0x00020000
#define CAPSULE_FLAGS_INITIATE_RESET 0x00040000
#define EFI_CAPSULE_REPORT_GUID \
EFI_GUID(0x39b68c46, 0xf7fb, 0x441b, 0xb6, 0xec, \
0x16, 0xb0, 0xf6, 0x98, 0x21, 0xf3)
struct efi_capsule_header {
efi_guid_t capsule_guid;
u32 header_size;
@ -224,6 +228,14 @@ struct efi_capsule_header {
u32 capsule_image_size;
} __packed;
struct efi_capsule_result_variable_header {
u32 variable_total_size;
u32 reserved;
efi_guid_t capsule_guid;
struct efi_time capsule_processed;
efi_status_t capsule_status;
} __packed;
#define EFI_RT_SUPPORTED_GET_TIME 0x0001
#define EFI_RT_SUPPORTED_SET_TIME 0x0002
#define EFI_RT_SUPPORTED_GET_WAKEUP_TIME 0x0004