EFI System Resource Table (ESRT) is an informational structure that reports basic details about current system or device firmware. This is chiefly used to perform firmware updates. New CONFIG_DRIVERS_EFI_FW_INFO is off by default, enabling it adds DRIVERS_EFI_FW_{GUID,VERSION,LSV} to be used to specify firmware version/update information. Existing forms of versions wouldn't be sufficient because there is no universal way of converting string versions to 32-bit unsigned integers and there are no GUIDs or lowest supported versions. Change-Id: Ic1b768d7bed43edf7ca8e41552087734054de033 Signed-off-by: Sergii Dmytruk <sergii.dmytruk@3mdeb.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/83421 Reviewed-by: Christian Walter <christian.walter@9elements.com> Reviewed-by: coreboot org <coreboot.org@gmail.com> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
54 lines
1.5 KiB
C
54 lines
1.5 KiB
C
/* SPDX-License-Identifier: GPL-2.0-only */
|
|
|
|
#ifndef COREBOOT_TABLES_H
|
|
#define COREBOOT_TABLES_H
|
|
|
|
#include <commonlib/coreboot_tables.h>
|
|
#include <stddef.h>
|
|
#include <stdint.h>
|
|
|
|
/* function prototypes for building the coreboot table */
|
|
|
|
/*
|
|
* Write forwarding table of target address at entry address returning size
|
|
* of table written.
|
|
*/
|
|
size_t write_coreboot_forwarding_table(uintptr_t entry, uintptr_t target);
|
|
|
|
void fill_lb_gpios(struct lb_gpios *gpios);
|
|
void lb_add_gpios(struct lb_gpios *gpios, const struct lb_gpio *gpio_table,
|
|
size_t count);
|
|
|
|
enum cb_err fill_lb_serial(struct lb_serial *serial);
|
|
void lb_add_console(uint16_t consoletype, void *data);
|
|
|
|
enum cb_err fill_lb_pcie(struct lb_pcie *pcie);
|
|
|
|
/* Define this in mainboard.c to add board-specific table entries. */
|
|
void lb_board(struct lb_header *header);
|
|
|
|
/* Adds LB_TAG_EFI_FW_INFO table entry. */
|
|
void lb_efi_fw_info(struct lb_header *header);
|
|
|
|
/* Define this function to fill in the frame buffer returning 0 on success and
|
|
< 0 on error. */
|
|
int fill_lb_framebuffer(struct lb_framebuffer *framebuffer);
|
|
|
|
/* Allow arch to add records. */
|
|
void lb_arch_add_records(struct lb_header *header);
|
|
|
|
/*
|
|
* Function to retrieve MAC address(es) from the VPD and store them in the
|
|
* coreboot table.
|
|
*/
|
|
void lb_table_add_macs_from_vpd(struct lb_header *header);
|
|
|
|
void lb_table_add_serialno_from_vpd(struct lb_header *header);
|
|
|
|
struct lb_record *lb_new_record(struct lb_header *header);
|
|
|
|
/* Add VBOOT VBNV offsets. */
|
|
void lb_table_add_vbnv_cmos(struct lb_header *header);
|
|
|
|
#endif /* COREBOOT_TABLES_H */
|