include/fmap.h: Require FMAP_FLASH_SIZE == CONFIG_ROM_SIZE

In our current tree this is always the case. The coreboot code (as far
as I know) doesn't have a hard requirement on that. But if these values
differ then it is usually always a mistake made by the programmer and it
is hard to catch since the value don't really depend on each other.
So until a time in which there comes a platform which needs a flashmap
that doesn't cover the whole flash, this check is introduced.

For that purpose we need to replace the default .config file for tests,
because otherwise the check won't match.

The config file that is used now is based on the fact that we use the
same mainboard for the `.config` as for the `fmap_config.h` in
`tests/include/tests/lib/fmap/fmap_config.h`

Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com>
Change-Id: I8bc05a17a2630516ede949660b4fc428f199f3ab
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90264
Reviewed-by: Jakub "Kuba" Czapiga <czapiga@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
This commit is contained in:
Maximilian Brune 2026-01-20 18:23:35 +01:00 committed by Matt DeVillier
commit f8a32a1cfa
3 changed files with 10 additions and 1 deletions

View file

@ -13,6 +13,14 @@
#error "FMAP must always start flash address 0"
#endif
/* This is usually the case. And it can to lead to confusion if one them is updated without the
* other. There is however no code that has a hard dependency on this check. So if there comes
* a platform at some point, which has a Flashmap which doesn't cover the whole flash, we can
* remove the check again. */
#if FMAP_SECTION_FLASH_SIZE != CONFIG_ROM_SIZE
#error "ROM_SIZE must always be equal to FMAP flash size"
#endif
/* Return the name of the boot region. Falls back to COREBOOT, if not overridden
* by any multi-slot mechanism (e.g Intel Top Swap, vboot). */
const char *cbfs_fmap_region_hint(void);

View file

@ -18,7 +18,7 @@ CMAKE := cmake
OBJCOPY ?= objcopy
OBJDUMP ?= objdump
TEST_DEFAULT_CONFIG ?= $(top)/configs/config.emulation_qemu_x86_i440fx
TEST_DEFAULT_CONFIG ?= $(top)/configs/config.google_octopus_spi_flash_console
TEST_DOTCONFIG := $(testobj)/.config
TEST_KCONFIG_AUTOHEADER := $(testobj)/config.src.h
TEST_KCONFIG_AUTOCONFIG := $(testobj)/auto.conf

View file

@ -8,5 +8,6 @@
* Keeps the build tests from failing since fmap.h needs fmap_config.h
*/
#define FMAP_SECTION_FLASH_START 0
#define FMAP_SECTION_FLASH_SIZE 0x1000000
#endif