From 6938f353cac958c82311f4fb126895cf3d7c519d Mon Sep 17 00:00:00 2001 From: Raul E Rangel Date: Fri, 23 Jul 2021 16:43:18 -0600 Subject: lib/cbfs: Add CBFS_CACHE_ALIGN Kconfig option This option will allow platforms to set the alignment of the cbfs_cache buffers. BUG=b:179699789 TEST=gdb -ex 'p cbfs_cache' /tmp/coreboot/guybrush/cbfs/fallback/ramstage.debug $1 = {buf = 0x0, size = 0, alignment = 8, last_alloc = 0x0, second_to_last_alloc = 0x0, free_offset = 0} Signed-off-by: Raul E Rangel Change-Id: I74598d4bcbca9a01cc8c65012d7e4ae341d052b1 Reviewed-on: https://review.coreboot.org/c/coreboot/+/58706 Tested-by: build bot (Jenkins) Reviewed-by: Karthik Ramasubramanian Reviewed-by: Julius Werner --- src/lib/Kconfig | 6 ++++++ src/lib/cbfs.c | 4 ++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/lib/Kconfig b/src/lib/Kconfig index 0f651b346a..41a23b27c0 100644 --- a/src/lib/Kconfig +++ b/src/lib/Kconfig @@ -99,6 +99,12 @@ config NO_CBFS_MCACHE lookup must re-read the same CBFS directory entries from flash to find the respective file. +config CBFS_CACHE_ALIGN + int + default 8 + help + Sets the alignment of the buffers returned by the cbfs_cache. + config PAYLOAD_PRELOAD bool depends on COOP_MULTITASKING diff --git a/src/lib/cbfs.c b/src/lib/cbfs.c index 7633fdff03..1c79b65d6b 100644 --- a/src/lib/cbfs.c +++ b/src/lib/cbfs.c @@ -20,7 +20,7 @@ #if ENV_STAGE_HAS_DATA_SECTION struct mem_pool cbfs_cache = - MEM_POOL_INIT(_cbfs_cache, REGION_SIZE(cbfs_cache), sizeof(uint64_t)); + MEM_POOL_INIT(_cbfs_cache, REGION_SIZE(cbfs_cache), CONFIG_CBFS_CACHE_ALIGN); #else struct mem_pool cbfs_cache = MEM_POOL_INIT(NULL, 0, 0); #endif @@ -29,7 +29,7 @@ static void switch_to_postram_cache(int unused) { if (_preram_cbfs_cache != _postram_cbfs_cache) mem_pool_init(&cbfs_cache, _postram_cbfs_cache, REGION_SIZE(postram_cbfs_cache), - sizeof(uint64_t)); + CONFIG_CBFS_CACHE_ALIGN); } ROMSTAGE_CBMEM_INIT_HOOK(switch_to_postram_cache); -- cgit v1.2.3