I can see a little bug that makes this return a confusing error (it should have really failed with `SPI flash address(0x300) not in any mmap window!`), and we can fix that if you want. But that still won't make this build (and my patch didn't cause the underlying problem, before that it may have built an image but it probably wouldn't have booted). By default cbfstool only expects the top 16MB of the flash to be memory-mapped, so it cannot link XIP stages into areas outside of that. The real solution is to either change your FMAP to put the COREBOOT section into the top 16MB (we might want to change the auto-generated default FMAP to do that), or pass --ext-win-base/--ext-win-size options to cbfstool to tell it how to map areas below the top 16MB.
On Thu, Jun 23, 2022 at 1:09 AM Paul Menzel pmenzel@molgen.mpg.de wrote:
Dear Mike,
Am 23.06.22 um 09:49 schrieb Mike Banon:
If I use a default config for i440fx/piix4, building a 16MB ROM works fine, but 32MB or 64MB doesn't work anymore:
... CC postcar/southbridge/intel/common/rtc.o LINK cbfs/fallback/postcar.debug OBJCOPY cbfs/fallback/romstage.elf CREATE build/mainboard/emulation/qemu-i440fx/cbfs-file.vqaXlP.out (from /home/my_custom_path_to/coreboot/.config) CC+STRIP src/lib/cbfs_master_header.c OBJCOPY cbfs/fallback/bootblock.elf OBJCOPY bootblock.raw.elf OBJCOPY bootblock.raw.bin Created CBFS (capacity = 33553892 bytes) BOOTBLOCK CBFS cbfs_master_header CBFS fallback/romstage cbfstool: /home/my_custom_path_to/coreboot/util/cbfstool/cbfstool.c:1145: cbfstool_convert_mkstage: Assertion `IS_HOST_SPACE_ADDRESS(host_space_address)' failed. make: *** [Makefile.inc:1116: build/coreboot.pre] Aborted
Thank you for the report. It looks like a regression of commit 20ad36547e25 (cbfstool: Do host space address conversion earlier when adding files) [1].
Building a 32 MB ROM also fails for emulation/qemu-q35 (`CONFIG_BOARD_EMULATION_QEMU_X86_Q35=y`).
Kind regards,
Paul