From c6ba36f0694c3fa9a7db2a61bc264bef851b4360 Mon Sep 17 00:00:00 2001 From: Patrick Rudolph Date: Wed, 12 Jun 2019 09:48:31 +0200 Subject: mb/emulation/qemu-riscv: Support arbitrary ROM sizes Make the linker script dynamic to support non default ROM sizes. Prevents weird runtime issues due to stages overwriting parts of the CBFS while decompressing stages. Change-Id: I37b9187c719b907959f02a272ec0459aabbcda3c Signed-off-by: Patrick Rudolph Reviewed-on: https://review.coreboot.org/c/coreboot/+/33412 Tested-by: build bot (Jenkins) Reviewed-by: Philipp Hug --- src/mainboard/emulation/qemu-riscv/memlayout.ld | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/src/mainboard/emulation/qemu-riscv/memlayout.ld b/src/mainboard/emulation/qemu-riscv/memlayout.ld index 032fbddecf..7f8ec3dd6a 100644 --- a/src/mainboard/emulation/qemu-riscv/memlayout.ld +++ b/src/mainboard/emulation/qemu-riscv/memlayout.ld @@ -15,15 +15,18 @@ #include #include +#include -#define START 0x80000000 +//Stages start after CBFS in DRAM +#define STAGES_START (QEMU_VIRT_DRAM + CONFIG_ROM_SIZE) SECTIONS { - DRAM_START(START) - BOOTBLOCK(START, 64K) - STACK(START + 4M, 4K) - ROMSTAGE(START + 4M + 64K, 128K) - PRERAM_CBMEM_CONSOLE(START + 4M + 192K, 8K) - RAMSTAGE(START + 4M + 200K, 16M) + DRAM_START(QEMU_VIRT_DRAM) + BOOTBLOCK(QEMU_VIRT_DRAM, 64K) + // CBFS goes here + STACK(STAGES_START, 4K) + ROMSTAGE(STAGES_START + 64K, 128K) + PRERAM_CBMEM_CONSOLE(STAGES_START + 192K, 8K) + RAMSTAGE(STAGES_START + 200K, 16M) } -- cgit v1.2.3