summaryrefslogtreecommitdiff
path: root/payloads/libpayload/include
diff options
context:
space:
mode:
authorNico Huber <nico.h@gmx.de>2020-07-18 16:15:42 +0200
committerPatrick Georgi <pgeorgi@google.com>2020-08-24 09:13:30 +0000
commitbea01e32b277682d273fa4a054f34cf725cb15b7 (patch)
tree3c94473ea766b8440fca31d9af932198ad0232ed /payloads/libpayload/include
parent12faea3095cbdb4f134442db1451487355368cf8 (diff)
downloadcoreboot-bea01e32b277682d273fa4a054f34cf725cb15b7.tar.xz
libpayload: Cache physical location of CBMEM entries
In the presence of self-relocating payloads, it's safer to keep physical addresses in `libsysinfo`. This updates all the references to CBMEM entries that are not consumed inside libpayload code. Change-Id: I3be64c8be8b46d00b457eafd7f80a8ed8e604030 Signed-off-by: Nico Huber <nico.h@gmx.de> Reviewed-on: https://review.coreboot.org/c/coreboot/+/43580 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Diffstat (limited to 'payloads/libpayload/include')
-rw-r--r--payloads/libpayload/include/coreboot_tables.h1
-rw-r--r--payloads/libpayload/include/sysinfo.h16
2 files changed, 8 insertions, 9 deletions
diff --git a/payloads/libpayload/include/coreboot_tables.h b/payloads/libpayload/include/coreboot_tables.h
index c281417f10..bf8c0d9303 100644
--- a/payloads/libpayload/include/coreboot_tables.h
+++ b/payloads/libpayload/include/coreboot_tables.h
@@ -396,6 +396,5 @@ static inline const char *cb_mb_part_string(const struct cb_mainboard *cbm)
+ (sizeof((_rec)->map[0]) * (_idx)))
/* Helper functions */
-void *get_cbmem_ptr(unsigned char *ptr);
uintptr_t get_cbmem_addr(const void *cbmem_tab_entry);
#endif
diff --git a/payloads/libpayload/include/sysinfo.h b/payloads/libpayload/include/sysinfo.h
index 33610c3c79..a1b0545074 100644
--- a/payloads/libpayload/include/sysinfo.h
+++ b/payloads/libpayload/include/sysinfo.h
@@ -94,23 +94,23 @@ struct sysinfo_t {
uintptr_t cb_header;
uintptr_t cb_mainboard;
- void *vboot_workbuf;
+ uintptr_t vboot_workbuf;
#if CONFIG(LP_ARCH_X86)
int x86_rom_var_mtrr_index;
#endif
- void *tstamp_table;
+ uintptr_t tstamp_table;
uintptr_t cbmem_cons;
- void *mrc_cache;
- void *acpi_gnvs;
+ uintptr_t mrc_cache;
+ uintptr_t acpi_gnvs;
#define UNDEFINED_STRAPPING_ID (~0)
u32 board_id;
u32 ram_code;
u32 sku_id;
- void *wifi_calibration;
+ uintptr_t wifi_calibration;
uint64_t ramoops_buffer;
uint32_t ramoops_buffer_size;
struct {
@@ -124,11 +124,11 @@ struct sysinfo_t {
uint64_t boot_media_size;
uint64_t mtc_start;
uint32_t mtc_size;
- void *chromeos_vpd;
- int mmc_early_wake_status;
+ uintptr_t chromeos_vpd;
+ int mmc_early_wake_status;
/* Pointer to FMAP cache in CBMEM */
- void *fmap_cache;
+ uintptr_t fmap_cache;
};
extern struct sysinfo_t lib_sysinfo;