1558a6f44SRadoslaw Biernacki# 2c681d02cSMarcin Juszkiewicz# Copyright (c) 2019-2023, Linaro Limited and Contributors. All rights reserved. 3558a6f44SRadoslaw Biernacki# 4558a6f44SRadoslaw Biernacki# SPDX-License-Identifier: BSD-3-Clause 5558a6f44SRadoslaw Biernacki# 6558a6f44SRadoslaw Biernacki 7886688d1SMarcin JuszkiewiczPLAT_QEMU_PATH := plat/qemu/qemu_sbsa 8886688d1SMarcin JuszkiewiczPLAT_QEMU_COMMON_PATH := plat/qemu/common 9886688d1SMarcin Juszkiewicz 104a2e7547SMarcin JuszkiewiczCRASH_REPORTING := 1 114a2e7547SMarcin Juszkiewicz 124a2e7547SMarcin Juszkiewicz# Disable the PSCI platform compatibility layer 134a2e7547SMarcin JuszkiewiczENABLE_PLAT_COMPAT := 0 144a2e7547SMarcin Juszkiewicz 154a2e7547SMarcin JuszkiewiczSEPARATE_CODE_AND_RODATA := 1 164a2e7547SMarcin JuszkiewiczENABLE_STACK_PROTECTOR := 0 174a2e7547SMarcin Juszkiewicz 186a2426a9SMasahisa Kojimaifeq (${SPM_MM},1) 196a2426a9SMasahisa KojimaNEED_BL32 := yes 206a2426a9SMasahisa KojimaEL3_EXCEPTION_HANDLING := 1 216a2426a9SMasahisa Kojimaendif 226a2426a9SMasahisa Kojima 23941fc383SMarcin Juszkiewiczinclude plat/qemu/common/common.mk 24941fc383SMarcin Juszkiewicz 25558a6f44SRadoslaw Biernacki# Enable new version of image loading on QEMU platforms 26558a6f44SRadoslaw BiernackiLOAD_IMAGE_V2 := 1 27558a6f44SRadoslaw Biernacki 28*cda0487aSJens Wiklanderifeq (${SPD},opteed) 29*cda0487aSJens Wiklanderadd-lib-optee := yes 30*cda0487aSJens Wiklanderendif 31*cda0487aSJens Wiklanderifeq ($(AARCH32_SP),optee) 32*cda0487aSJens Wiklanderadd-lib-optee := yes 33*cda0487aSJens Wiklanderendif 34*cda0487aSJens Wiklanderifeq ($(SPMC_OPTEE),1) 35*cda0487aSJens Wiklander$(eval $(call add_define,SPMC_OPTEE)) 36*cda0487aSJens Wiklanderadd-lib-optee := yes 37*cda0487aSJens Wiklanderendif 38*cda0487aSJens Wiklander 39*cda0487aSJens Wiklanderifeq ($(add-lib-optee),yes) 40*cda0487aSJens WiklanderBL2_SOURCES += lib/optee/optee_utils.c 41*cda0487aSJens Wiklanderendif 42*cda0487aSJens Wiklander 43558a6f44SRadoslaw Biernackiifeq ($(NEED_BL32),yes) 44558a6f44SRadoslaw Biernacki$(eval $(call add_define,QEMU_LOAD_BL32)) 45558a6f44SRadoslaw Biernackiendif 46558a6f44SRadoslaw Biernacki 47a6ea06f5SAlexei Fedorov# Include GICv3 driver files 48a6ea06f5SAlexei Fedorovinclude drivers/arm/gic/v3/gicv3.mk 49a6ea06f5SAlexei Fedorov 50a6ea06f5SAlexei FedorovQEMU_GIC_SOURCES := ${GICV3_SOURCES} \ 511e67b1b1SMarcin Juszkiewicz plat/common/plat_gicv3.c 52558a6f44SRadoslaw Biernacki 5318884750SMarcin JuszkiewiczBL31_SOURCES += ${PLAT_QEMU_PATH}/sbsa_gic.c \ 54ecadac7cSMathieu Poirier ${PLAT_QEMU_PATH}/sbsa_platform.c \ 552fb5ed47SGraeme Gregory ${PLAT_QEMU_PATH}/sbsa_pm.c \ 56c681d02cSMarcin Juszkiewicz ${PLAT_QEMU_PATH}/sbsa_sip_svc.c \ 5718884750SMarcin Juszkiewicz ${PLAT_QEMU_PATH}/sbsa_topology.c 581fa05dabSChris Kay 591fa05dabSChris KayBL31_SOURCES += ${FDT_WRAPPERS_SOURCES} 601fa05dabSChris Kay 616a2426a9SMasahisa Kojimaifeq (${SPM_MM},1) 626a2426a9SMasahisa Kojima BL31_SOURCES += ${PLAT_QEMU_COMMON_PATH}/qemu_spm.c 636a2426a9SMasahisa Kojimaendif 64558a6f44SRadoslaw Biernacki 65*cda0487aSJens Wiklanderifeq (${SPD},spmd) 66*cda0487aSJens WiklanderBL31_SOURCES += plat/common/plat_spmd_manifest.c \ 67*cda0487aSJens Wiklander common/uuid.c \ 68*cda0487aSJens Wiklander ${LIBFDT_SRCS} 69*cda0487aSJens Wiklanderendif 70*cda0487aSJens Wiklander 71*cda0487aSJens Wiklander 72*cda0487aSJens Wiklander# Add the build options to pack Trusted OS Extra1 and Trusted OS Extra2 images 73*cda0487aSJens Wiklander# in the FIP if the platform requires. 74*cda0487aSJens Wiklanderifneq ($(BL32_EXTRA1),) 75*cda0487aSJens Wiklanderifneq (${DECRYPTION_SUPPORT},none) 76*cda0487aSJens Wiklander$(eval $(call TOOL_ADD_IMG,bl32_extra1,--tos-fw-extra1,,$(ENCRYPT_BL32))) 77*cda0487aSJens Wiklanderelse 78*cda0487aSJens Wiklander$(eval $(call TOOL_ADD_IMG,bl32_extra1,--tos-fw-extra1)) 79*cda0487aSJens Wiklanderendif 80*cda0487aSJens Wiklanderendif 81*cda0487aSJens Wiklanderifneq ($(BL32_EXTRA2),) 82*cda0487aSJens Wiklanderifneq (${DECRYPTION_SUPPORT},none) 83*cda0487aSJens Wiklander$(eval $(call TOOL_ADD_IMG,bl32_extra2,--tos-fw-extra2,,$(ENCRYPT_BL32))) 84*cda0487aSJens Wiklanderelse 85*cda0487aSJens Wiklander$(eval $(call TOOL_ADD_IMG,bl32_extra2,--tos-fw-extra2)) 86*cda0487aSJens Wiklanderendif 87*cda0487aSJens Wiklanderendif 88*cda0487aSJens Wiklander 89*cda0487aSJens Wiklanderifneq ($(QEMU_TB_FW_CONFIG_DTS),) 90*cda0487aSJens WiklanderFDT_SOURCES += ${QEMU_TB_FW_CONFIG_DTS} 91*cda0487aSJens WiklanderQEMU_TB_FW_CONFIG := ${BUILD_PLAT}/fdts/$(notdir $(basename ${QEMU_TB_FW_CONFIG_DTS})).dtb 92*cda0487aSJens Wiklander# Add the TB_FW_CONFIG to FIP 93*cda0487aSJens Wiklander$(eval $(call TOOL_ADD_PAYLOAD,${QEMU_TB_FW_CONFIG},--tb-fw-config,${QEMU_TB_FW_CONFIG})) 94*cda0487aSJens Wiklanderendif 95*cda0487aSJens Wiklander 96*cda0487aSJens Wiklanderifneq ($(QEMU_TOS_FW_CONFIG_DTS),) 97*cda0487aSJens WiklanderFDT_SOURCES += ${QEMU_TOS_FW_CONFIG_DTS} 98*cda0487aSJens WiklanderQEMU_TOS_FW_CONFIG := ${BUILD_PLAT}/fdts/$(notdir $(basename ${QEMU_TOS_FW_CONFIG_DTS})).dtb 99*cda0487aSJens Wiklander# Add the TOS_FW_CONFIG to FIP 100*cda0487aSJens Wiklander$(eval $(call TOOL_ADD_PAYLOAD,${QEMU_TOS_FW_CONFIG},--tos-fw-config,${QEMU_TOS_FW_CONFIG})) 101*cda0487aSJens Wiklanderendif 102*cda0487aSJens Wiklander 103558a6f44SRadoslaw Biernacki# Use known base for UEFI if not given from command line 104558a6f44SRadoslaw Biernacki# By default BL33 is at FLASH1 base 105558a6f44SRadoslaw BiernackiPRELOADED_BL33_BASE ?= 0x10000000 106558a6f44SRadoslaw Biernacki 107558a6f44SRadoslaw Biernacki# Qemu SBSA plafrom only support SEC_SRAM 108558a6f44SRadoslaw BiernackiBL32_RAM_LOCATION_ID = SEC_SRAM_ID 109558a6f44SRadoslaw Biernacki$(eval $(call add_define,BL32_RAM_LOCATION_ID)) 110558a6f44SRadoslaw Biernacki 11174464d5bSAndrew Walbran# Don't have the Linux kernel as a BL33 image by default 11274464d5bSAndrew WalbranARM_LINUX_KERNEL_AS_BL33 := 0 11374464d5bSAndrew Walbran$(eval $(call assert_boolean,ARM_LINUX_KERNEL_AS_BL33)) 11474464d5bSAndrew Walbran$(eval $(call add_define,ARM_LINUX_KERNEL_AS_BL33)) 11574464d5bSAndrew Walbran 11626da60e2SMathieu PoirierARM_PRELOADED_DTB_BASE := PLAT_QEMU_DRAM0_BASE 11774464d5bSAndrew Walbran$(eval $(call add_define,ARM_PRELOADED_DTB_BASE)) 118