diff options
Diffstat (limited to 'src/commonlib/include/commonlib/coreboot_tables.h')
-rw-r--r-- | src/commonlib/include/commonlib/coreboot_tables.h | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/commonlib/include/commonlib/coreboot_tables.h b/src/commonlib/include/commonlib/coreboot_tables.h index 94985b1567..a9e14c7bff 100644 --- a/src/commonlib/include/commonlib/coreboot_tables.h +++ b/src/commonlib/include/commonlib/coreboot_tables.h @@ -87,6 +87,7 @@ enum { LB_TAG_TYPE_C_INFO = 0x0042, LB_TAG_ACPI_RSDP = 0x0043, LB_TAG_PCIE = 0x0044, + LB_TAG_EFI_FW_INFO = 0x0045, /* The following options are CMOS-related */ LB_TAG_CMOS_OPTION_TABLE = 0x00c8, LB_TAG_OPTION = 0x00c9, @@ -578,4 +579,23 @@ struct lb_acpi_rsdp { lb_uint64_t rsdp_pointer; /* Address of the ACPI RSDP */ }; +/* + * Machine-friendly version of a system firmware component. A component is + * identified by a GUID. coreboot is an obvious main component but there could + * be others (like EC) which should get their own instances of the tag. + * + * The main consumer of this information is UEFI firmware but something else + * could reuse it too. + * + * Larger number in a version field corresponds to a more recent version. + */ +struct lb_efi_fw_info { + uint32_t tag; + uint32_t size; + uint8_t guid[16]; /* Called "firmware class" in UEFI */ + uint32_t version; /* Current version */ + uint32_t lowest_supported_version; /* Lowest allowed version for downgrades */ + uint32_t fw_size; /* Size of firmware in bytes */ +} __packed; + #endif |