summaryrefslogtreecommitdiff
path: root/payloads/libpayload/include
diff options
context:
space:
mode:
authorJakub Czapiga <jacz@semihalf.com>2021-11-10 14:04:43 +0000
committerFelix Held <felix-coreboot@felixheld.de>2021-12-03 16:51:41 +0000
commit2f236c232d9ceaeeddf8efa2868a3afbd898e1b3 (patch)
tree6baa879a93e428cfa4e2ca36f66ba3b5c1e8fb7a /payloads/libpayload/include
parentc627b0edeb2f82cb710f51f92f7ae1d5bea0605c (diff)
libpayload: Add CBMEM_IMD_ENTRY support to coreboot tables parser
coreboot stores much information in the CBMEM IMD. Until now it was ignored. This patch makes use of these coreboot tables entries. It also removes get_cbmem_addr() function as it is no longer needed. Moreover, the coreboot tables entry CB_TAG_MRC_CACHE does not exist anymore, as it is not created by the code. It was replaced by CBMEM_ID_MRCDATA entry, so MRCDATA should now be accessible through sysinfo structure field. Change-Id: I5bd02a98ba2631f34014bc0f8e7ebd5a5ddd2321 Signed-off-by: Jakub Czapiga <jacz@semihalf.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/59491 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Julius Werner <jwerner@chromium.org> Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Diffstat (limited to 'payloads/libpayload/include')
-rw-r--r--payloads/libpayload/include/coreboot_tables.h12
-rw-r--r--payloads/libpayload/include/sysinfo.h6
2 files changed, 16 insertions, 2 deletions
diff --git a/payloads/libpayload/include/coreboot_tables.h b/payloads/libpayload/include/coreboot_tables.h
index 914cfa5683..3fd3fc85e1 100644
--- a/payloads/libpayload/include/coreboot_tables.h
+++ b/payloads/libpayload/include/coreboot_tables.h
@@ -321,6 +321,16 @@ struct cb_boot_media_params {
uint64_t boot_media_size;
};
+
+struct cb_cbmem_entry {
+ uint32_t tag;
+ uint32_t size;
+
+ uint64_t address;
+ uint32_t entry_size;
+ uint32_t id;
+};
+
struct cb_tsc_info {
uint32_t tag;
uint32_t size;
@@ -443,6 +453,4 @@ static inline const char *cb_mb_part_string(const struct cb_mainboard *cbm)
(void *)(((u8 *) (_rec)) + sizeof(*(_rec)) \
+ (sizeof((_rec)->map[0]) * (_idx)))
-/* Helper functions */
-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 b34476d25e..376f298c77 100644
--- a/payloads/libpayload/include/sysinfo.h
+++ b/payloads/libpayload/include/sysinfo.h
@@ -150,6 +150,12 @@ struct sysinfo_t {
#endif
/* USB Type-C Port Configuration Info */
uintptr_t type_c_info;
+
+ /* CBFS RW/RO Metadata Cache */
+ uintptr_t cbfs_ro_mcache_offset;
+ uint32_t cbfs_ro_mcache_size;
+ uintptr_t cbfs_rw_mcache_offset;
+ uint32_t cbfs_rw_mcache_size;
};
extern struct sysinfo_t lib_sysinfo;