lib/fmap: Cache FMAP in cbmem

For platform independend exposure of FMAP through a kernel module
cache the FMAP in CBMEM. In addition add a pointer in coreboot tables
pointing to the introduced CBMEM area.

To not waste the allocated DRAM, use the cached CBMEM in RAM enabled
stages if possible.

Tested on qemu using
https://github.com/9elements/linux/commits/google_firmware_fmap2

Tested on QEMU and Supermicro X11SSH-TF.

Change-Id: I4e01c573c3edfa34dbba5fe7604d4f6e18b584d5
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/35377
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
Reviewed-by: Arthur Heymans <arthur@aheymans.xyz>
Reviewed-by: Julius Werner <jwerner@chromium.org>
This commit is contained in:
Patrick Rudolph
2019-09-12 13:21:37 +02:00
committed by Philipp Deppenwiese
parent afa6a2de48
commit 6d787c2590
4 changed files with 68 additions and 2 deletions

View File

@ -345,7 +345,8 @@ static void add_cbmem_pointers(struct lb_header *header)
{CBMEM_ID_ACPI_GNVS, LB_TAG_ACPI_GNVS},
{CBMEM_ID_VPD, LB_TAG_VPD},
{CBMEM_ID_WIFI_CALIBRATION, LB_TAG_WIFI_CALIBRATION},
{CBMEM_ID_TCPA_LOG, LB_TAG_TCPA_LOG}
{CBMEM_ID_TCPA_LOG, LB_TAG_TCPA_LOG},
{CBMEM_ID_FMAP, LB_TAG_FMAP},
};
int i;