aboutsummaryrefslogtreecommitdiff
path: root/src/mainboard/emulation/qemu-aarch64/bootblock.c
diff options
context:
space:
mode:
authorPatrick Rudolph <patrick.rudolph@9elements.com>2020-01-23 14:10:07 +0100
committerPhilipp Deppenwiese <zaolin.daisuki@gmail.com>2020-03-02 10:36:37 +0000
commit792fd51b14d1056514e2ddfeb24cf6436df828fb (patch)
tree38e73d87b72ae6fca1df506a4cd21c621e902849 /src/mainboard/emulation/qemu-aarch64/bootblock.c
parent977b8e83cb0a71af1143d3ab56fd0f95bf8d6c70 (diff)
mb/emulation/qemu-aarch64: Add ARM trusted firmware support
Linux expects a working PSCI and hangs if not found. Add BL31 into CBFS as '-M virt,secure=on -bios ' commands line arguments cause qemu's internal PSCI emulation to shutdown. BL31 is placed in qemu's SECURERAM memory region and won't conflict with resources in DRAM. Tested on qemu-system-aarch64: Fixes a hang and allows to boot into Linux 5.4.14 userspace. Change-Id: I809742522240185431621cc4fd8b9c7deaf2bb54 Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/38535 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Philipp Deppenwiese <zaolin.daisuki@gmail.com> Reviewed-by: Arthur Heymans <arthur@aheymans.xyz>
Diffstat (limited to 'src/mainboard/emulation/qemu-aarch64/bootblock.c')
-rw-r--r--src/mainboard/emulation/qemu-aarch64/bootblock.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/mainboard/emulation/qemu-aarch64/bootblock.c b/src/mainboard/emulation/qemu-aarch64/bootblock.c
index 280f77ec1e..77d7e532de 100644
--- a/src/mainboard/emulation/qemu-aarch64/bootblock.c
+++ b/src/mainboard/emulation/qemu-aarch64/bootblock.c
@@ -15,6 +15,8 @@
#include <bootblock_common.h>
#include <symbols.h>
+extern u8 _secram[], _esecram[];
+
void bootblock_mainboard_init(void)
{
mmu_init();
@@ -29,5 +31,7 @@ void bootblock_mainboard_init(void)
mmu_config_range(_romstage, REGION_SIZE(romstage), MA_MEM | MA_S | MA_RW);
mmu_config_range(_ramstage, REGION_SIZE(ramstage), MA_MEM | MA_S | MA_RW);
+ mmu_config_range(_secram, REGION_SIZE(secram), MA_MEM | MA_S | MA_RW);
+
mmu_enable();
}