diff options
author | Julius Werner <jwerner@chromium.org> | 2023-11-09 12:20:59 -0800 |
---|---|---|
committer | Felix Held <felix-coreboot@felixheld.de> | 2023-11-13 14:19:01 +0000 |
commit | c827c9b216f7e0d9cfd856f03ed18544e8208193 (patch) | |
tree | 01f8436c13da34ec364e0ef895684c9c30328515 /src | |
parent | 432e92688eca0e85cbaebca3232f65936b305a98 (diff) |
fmap: Map less space in fallback path without CBFS verification
This is a fixup to CB:78914 which inadvertently broke the RK3288 SoC.
Unfortunately we can only accommodate very little PRERAM_CBFS_CACHE in
the tiny SRAM for that chip, so we would not be able to map an entire
FMAP. Solve this problem for now by mapping less space when CBFS
verification is disabled, and disallowing CBFS verification on that SoC.
Change-Id: I2e419d157dc26bb70a6dd62e44dc6607e51cf791
Signed-off-by: Julius Werner <jwerner@chromium.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/78971
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/lib/fmap.c | 3 | ||||
-rw-r--r-- | src/soc/rockchip/rk3288/bootblock.c | 3 |
2 files changed, 5 insertions, 1 deletions
diff --git a/src/lib/fmap.c b/src/lib/fmap.c index 77817d1e60..8901ff7ce2 100644 --- a/src/lib/fmap.c +++ b/src/lib/fmap.c @@ -130,7 +130,8 @@ static int find_fmap_directory(struct region_device *fmrd) if (boot == NULL) return -1; - fmap = rdev_mmap(boot, offset, FMAP_SIZE); + fmap = rdev_mmap(boot, offset, + CONFIG(CBFS_VERIFICATION) ? FMAP_SIZE : sizeof(struct fmap)); if (fmap == NULL) return -1; diff --git a/src/soc/rockchip/rk3288/bootblock.c b/src/soc/rockchip/rk3288/bootblock.c index 60ead64785..a821ef1401 100644 --- a/src/soc/rockchip/rk3288/bootblock.c +++ b/src/soc/rockchip/rk3288/bootblock.c @@ -8,6 +8,9 @@ #include <soc/timer.h> #include <symbols.h> +_Static_assert(!CONFIG(CBFS_VERIFICATION), + "RK3288 doesn't have enough PRERAM_CBFS_CACHE to support the FMAP mapping needed for CBFS verification"); + void bootblock_soc_init(void) { rkclk_init(); |