fvp: add support for FVP Base Platform
Add support for running the Base Platform FVP. This model offers more
configuration options and more peripherals than the Foundation model.
It's available free of charge on the Arm Developer website.
Link: https://developer.arm.com/downloads/-/arm-ecosystem-models
Reviewed-by: Gyorgy Szing <gyorgy.szing@arm.com>
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
Signed-off-by: Balint Dobszay <balint.dobszay@arm.com>
diff --git a/fvp.mk b/fvp.mk
index 8be3fb2..9575312 100644
--- a/fvp.mk
+++ b/fvp.mk
@@ -52,8 +52,16 @@
EDK2_BUILD ?= RELEASE
endif
EDK2_BIN ?= $(EDK2_PLATFORMS_PATH)/Build/ArmVExpress-FVP-AArch64/$(EDK2_BUILD)_$(EDK2_TOOLCHAIN)/FV/FVP_$(EDK2_ARCH)_EFI.fd
+FVP_USE_BASE_PLAT ?= n
+ifeq ($(FVP_USE_BASE_PLAT),y)
+FVP_PATH ?= $(ROOT)/Base_RevC_AEMvA_pkg/models/Linux64_GCC-9.3
+FVP_BIN ?= FVP_Base_RevC-2xAEMvA
+FVP_LINUX_DTB ?= $(LINUX_PATH)/arch/arm64/boot/dts/arm/fvp-base-revc.dtb
+else
FVP_PATH ?= $(ROOT)/Foundation_Platformpkg/models/Linux64_GCC-9.3
FVP_BIN ?= Foundation_Platform
+FVP_LINUX_DTB ?= $(LINUX_PATH)/arch/arm64/boot/dts/arm/foundation-v8-gicv3-psci.dtb
+endif
ifeq ($(wildcard $(FVP_PATH)),)
$(error $(FVP_PATH) does not exist)
endif
@@ -239,7 +247,7 @@
rm -f $(BOOT_IMG)
mformat -i $(BOOT_IMG) -n 64 -h 255 -T 131072 -v "BOOT IMG" -C ::
mcopy -i $(BOOT_IMG) $(LINUX_PATH)/arch/arm64/boot/Image ::
- mcopy -i $(BOOT_IMG) $(LINUX_PATH)/arch/arm64/boot/dts/arm/foundation-v8-gicv3-psci.dtb ::
+ mcopy -i $(BOOT_IMG) $(FVP_LINUX_DTB) ::/fvp.dtb
mmd -i $(BOOT_IMG) ::/EFI
mmd -i $(BOOT_IMG) ::/EFI/BOOT
mcopy -i $(BOOT_IMG) $(ROOT)/out-br/images/rootfs.cpio.gz ::/initrd.img
@@ -257,6 +265,18 @@
run: all
$(MAKE) run-only
+ifeq ($(FVP_USE_BASE_PLAT),y)
+FVP_ARGS ?= \
+ -C bp.ve_sysregs.exit_on_shutdown=1 \
+ -C cache_state_modelled=0 \
+ -C pctl.startup=0.0.0.0 \
+ -C cluster0.NUM_CORES=4 \
+ -C cluster1.NUM_CORES=4 \
+ -C bp.secure_memory=1 \
+ -C bp.secureflashloader.fname=$(TF_A_PATH)/build/fvp/$(TF_A_BUILD)/bl1.bin \
+ -C bp.flashloader0.fname=$(TF_A_PATH)/build/fvp/$(TF_A_BUILD)/fip.bin \
+ -C bp.virtioblockdevice.image_path=$(BOOT_IMG)
+else
FVP_ARGS ?= \
--arm-v8.0 \
--cores=4 \
@@ -266,6 +286,7 @@
--data="$(TF_A_PATH)/build/fvp/$(TF_A_BUILD)/bl1.bin"@0x0 \
--data="$(TF_A_PATH)/build/fvp/$(TF_A_BUILD)/fip.bin"@0x8000000 \
--block-device=$(BOOT_IMG)
+endif
run-only:
$(FVP_PATH)/$(FVP_BIN) $(FVP_ARGS)