diff --git a/boards/amd/versalnet_apu/board.cmake b/boards/amd/versalnet_apu/board.cmake index c086f6706de16..8e457185c3c7c 100644 --- a/boards/amd/versalnet_apu/board.cmake +++ b/boards/amd/versalnet_apu/board.cmake @@ -10,13 +10,26 @@ set(QEMU_ARCH xilinx-aarch64) set(QEMU_CPU_TYPE_${ARCH} cortexa78) set(QEMU_FLAGS_${ARCH} - -machine arm-generic-fdt - -hw-dtb ${PROJECT_BINARY_DIR}/${BOARD}-qemu.dtb - -device loader,addr=0xEC200300,data=0x3EE,data-len=4 -device loader,addr=0xEC200300,data=0x3DD,data-len=4 - -nographic - -m 2g + -machine arm-generic-fdt + -hw-dtb ${PROJECT_BINARY_DIR}/${BOARD}-qemu.dtb + -device loader,addr=0xEC200300,data=0x3EE,data-len=4 -device loader,addr=0xEC200300,data=0x3EE,data-len=4 + -nographic + -m 2g ) +# Set TF-A platform for ARM Trusted Firmware builds +if(CONFIG_BUILD_WITH_TFA) + set(TFA_PLAT "versal_net") + # Add Versal NET specific TF-A build parameters + set(TFA_EXTRA_ARGS "TFA_NO_PM=1;PRELOADED_BL33_BASE=${CONFIG_SRAM_BASE_ADDRESS}") + if(CONFIG_TFA_MAKE_BUILD_TYPE_DEBUG) + set(BUILD_FOLDER "debug") + else() + set(BUILD_FOLDER "release") + endif() +endif() + set(QEMU_KERNEL_OPTION - -device loader,cpu-num=0,file=\$ + -device loader,cpu-num=0,file=${PROJECT_BINARY_DIR}/../tfa/versal_net/${BUILD_FOLDER}/bl31/bl31.elf + -device loader,file=\$ ) diff --git a/boards/amd/versalnet_apu/versalnet_apu_defconfig b/boards/amd/versalnet_apu/versalnet_apu_defconfig index 7cfeda9524115..8f192885cf3d9 100644 --- a/boards/amd/versalnet_apu/versalnet_apu_defconfig +++ b/boards/amd/versalnet_apu/versalnet_apu_defconfig @@ -1,6 +1,7 @@ # The Zephyr build from this defconfig is expected to boot from # Xilinx Arm Trusted Firmware (ATF). # Boot Flow is: Boot PDI -> TF-A -> Zephyr +CONFIG_BUILD_WITH_TFA=y CONFIG_ARM64_VA_BITS_40=y CONFIG_ARM64_PA_BITS_40=y diff --git a/modules/trusted-firmware-a/CMakeLists.txt b/modules/trusted-firmware-a/CMakeLists.txt index 0c0230174f094..a09d279e2dbed 100644 --- a/modules/trusted-firmware-a/CMakeLists.txt +++ b/modules/trusted-firmware-a/CMakeLists.txt @@ -28,12 +28,18 @@ if (CONFIG_BUILD_WITH_TFA) set(TFA_BUILD_DEBUG "0") endif() + # Set default TF-A build parameters that can be overridden by boards + if(NOT DEFINED TFA_EXTRA_ARGS) + set(TFA_EXTRA_ARGS "") + endif() + set_property(GLOBAL APPEND PROPERTY extra_post_build_commands COMMAND make -C ${ZEPHYR_TRUSTED_FIRMWARE_A_MODULE_DIR} DEBUG=${TFA_BUILD_DEBUG} CROSS_COMPILE=${CROSS_COMPILE} BUILD_BASE=${TFA_BINARY_DIR} PLAT=${TFA_PLAT} BL33=${CMAKE_BINARY_DIR}/zephyr/${KERNEL_BIN_NAME} + ${TFA_EXTRA_ARGS} all fip ) endif()