From 845f232502e32c1e6b1b092f21225f3cb49d5d1a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ky=C3=B6sti=20M=C3=A4lkki?= Date: Wed, 6 Apr 2022 10:53:17 +0300 Subject: FMAP: Refactor CBMEM hook MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Change-Id: Ib1257c57c64322c8c3dccdf1a754afb9b54ce7f8 Signed-off-by: Kyösti Mälkki Reviewed-on: https://review.coreboot.org/c/coreboot/+/63395 Tested-by: build bot (Jenkins) Reviewed-by: Arthur Heymans Reviewed-by: Julius Werner --- src/lib/fmap.c | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) (limited to 'src/lib') diff --git a/src/lib/fmap.c b/src/lib/fmap.c index 251125522e..4d197db5ff 100644 --- a/src/lib/fmap.c +++ b/src/lib/fmap.c @@ -273,7 +273,7 @@ ssize_t fmap_overwrite_area(const char *name, const void *buffer, size_t size) return rdev_writeat(&rdev, buffer, 0, size); } -static void fmap_register_cbmem_cache(int unused) +static void fmap_register_cbmem_cache(void) { const struct cbmem_entry *e; @@ -290,7 +290,7 @@ static void fmap_register_cbmem_cache(int unused) * The main reason to copy the FMAP into CBMEM is to make it available to the * OS on every architecture. As side effect use the CBMEM copy as cache. */ -static void fmap_setup_cbmem_cache(int unused) +static void fmap_add_cbmem_cache(void) { struct region_device fmrd; @@ -311,11 +311,17 @@ static void fmap_setup_cbmem_cache(int unused) cbmem_entry_remove(cbmem_entry_find(CBMEM_ID_FMAP)); return; } +} + +static void fmap_setup_cbmem_cache(int unused) +{ + if (ENV_ROMSTAGE) + fmap_add_cbmem_cache(); /* Finally advertise the cache for the current stage */ - fmap_register_cbmem_cache(unused); + fmap_register_cbmem_cache(); } ROMSTAGE_CBMEM_INIT_HOOK(fmap_setup_cbmem_cache) -RAMSTAGE_CBMEM_INIT_HOOK(fmap_register_cbmem_cache) -POSTCAR_CBMEM_INIT_HOOK(fmap_register_cbmem_cache) +RAMSTAGE_CBMEM_INIT_HOOK(fmap_setup_cbmem_cache) +POSTCAR_CBMEM_INIT_HOOK(fmap_setup_cbmem_cache) -- cgit v1.2.3