create a coverity builder
The Coverity Scanner requires a 'platform builder' which in this case,
it is a makefile (cov-makefile) that take cares of platform
compilation under the trusted-firmware-m folder. The compiled files
are the only source files scanned by Coverity, thus the more platforms
included on the platform builder, the better is the static check
scan. So far, the only platform considered is mps2/an521 but much more
are desired as explained above.
Signed-off-by: Leonardo Sandoval <leonardo.sandoval@linaro.org>
Change-Id: If8ce6a70e8568c5e8b0116555b20377855ac9a55
diff --git a/script/tf-coverity/common-def.sh b/script/tf-coverity/common-def.sh
index ea54d18..1f1a683 100644
--- a/script/tf-coverity/common-def.sh
+++ b/script/tf-coverity/common-def.sh
@@ -1,15 +1,6 @@
#!/usr/bin/env bash
#
-# Copyright (c) 2019, Arm Limited. All rights reserved.
+# Copyright (c) 2020, Arm Limited. All rights reserved.
#
# SPDX-License-Identifier: BSD-3-Clause
#
-
-JENKINS_URL=https://jenkins.oss.arm.com/
-
-# mbed TLS source tag to checkout when building Trusted Firmware with Trusted
-# Board Boot support.
-MBED_TLS_SOURCES_TAG="mbedtls-2.18.0"
-
-ARMCLANG_PATH=/arm/warehouse/Distributions/FA/ARMCompiler/6.8/25/standalone-linux-x86_64-rel/bin/armclang
-CRYPTOCELL_LIB_PATH=/arm/projectscratch/ssg/trusted-fw/dummy-crypto-lib
diff --git a/script/tf-coverity/cov-makefile b/script/tf-coverity/cov-makefile
new file mode 100644
index 0000000..5fb30e9
--- /dev/null
+++ b/script/tf-coverity/cov-makefile
@@ -0,0 +1,38 @@
+#
+# Copyright (c) 2019-2020, Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+
+# $(call build-platform,platform,toolchain)
+define build-platform
+ mkdir $(BASE_DIR)/$(tf_m)/cmake_build
+ cd $(BASE_DIR)/$(tf_m)/cmake_build && \
+ cmake .. -DTFM_PLATFORM=$1 -DTFM_TOOLCHAIN_FILE=../$2
+
+ cd $(BASE_DIR)/$(tf_m)/cmake_build && \
+ make install
+endef
+
+BASE_DIR ?= .
+
+# TODO: include other platforms to increase coverity coverage
+gnuarm_target_platforms := mps2/an521
+tf_m := trusted-firmware-m
+
+all: $(gnuarm_target_platforms)
+
+$(gnuarm_target_platforms): check msg
+ $(call build-platform,$@,toolchain_GNUARM.cmake)
+
+.phony: check
+check:
+ifndef BASE_DIR
+ echo "please provide a environment BASE_DIR"
+ exit 1
+endif
+ echo "base directory $(BASE_DIR)"
+
+.phony: msg
+msg:
+ echo "building platform"
diff --git a/script/tf-coverity/tf-cov-make b/script/tf-coverity/tf-cov-make
index 67a244f..a40fbb4 100755
--- a/script/tf-coverity/tf-cov-make
+++ b/script/tf-coverity/tf-cov-make
@@ -1,4 +1,4 @@
-#! /bin/sh
+#! /usr/bin/env bash
#
# Copyright (c) 2019-2020, Arm Limited. All rights reserved.
#
@@ -17,463 +17,10 @@
# Bail out as soon as an error is encountered.
set -e
-TF_SOURCES=$1
-if [ ! -d "$TF_SOURCES" ]; then
- echo "ERROR: '$TF_SOURCES' does not exist or is not a directory"
- echo "Usage: $(basename "$0") <trusted-firmware-directory>"
- exit 1
-fi
+tf_coverity_dir="$(readlink -f "$(dirname "$0")/")"
+base_dir="$(readlink -f "$(dirname "$0")/../../../")"
-export CROSS_COMPILE=aarch64-none-elf-
+. $tf_coverity_dir/common-def.sh
-# Get mbed TLS library code to build Trusted Firmware with Trusted Board Boot
-# support. The version of mbed TLS to use here must be the same as when
-# building TF in the usual context.
-if [ ! -d mbedtls ]; then
- git clone https://github.com/ARMmbed/mbedtls.git
-fi
-cd mbedtls
-containing_dir="$(readlink -f "$(dirname "$0")/")"
-. $containing_dir/common-def.sh
-git checkout "$MBED_TLS_SOURCES_TAG"
-cd -
-TBB_OPTIONS="TRUSTED_BOARD_BOOT=1 GENERATE_COT=1 MBEDTLS_DIR=$(pwd)/mbedtls"
-ARM_TBB_OPTIONS="$TBB_OPTIONS ARM_ROTPK_LOCATION=devel_rsa"
-
-cd "$TF_SOURCES"
-
-# Clean TF source dir to make sure we don't analyse temporary files.
-make distclean
-
-#
-# Build TF in different configurations to get as much coverage as possible
-#
-
-# We need to clean the platform build between each configuration because Trusted
-# Firmware's build system doesn't track build options dependencies and won't
-# rebuild the files affected by build options changes.
-clean_build()
-{
- local flags="$*"
- echo "Building TF with the following build flags:"
- echo " $flags"
- make $flags clean
- make $flags all
- echo "Build config complete."
- echo
-}
-
-# Defines common flags between platforms
-common_flags() {
- local release="${1:-}"
-
- # default to debug mode, unless a parameter is passed to the function
- debug="DEBUG=1"
- [ -n "$release" ] && debug=""
-
- echo " -j $debug -s "
-}
-
-#
-# FVP platform
-# We'll use the following flags for all FVP builds.
-#
-fvp_common_flags="$(common_flags) PLAT=fvp"
-
-# Try all possible SPDs.
-clean_build $fvp_common_flags ${ARM_TBB_OPTIONS} ARM_TSP_RAM_LOCATION=dram SPD=tspd
-clean_build $fvp_common_flags ${ARM_TBB_OPTIONS} ARM_TSP_RAM_LOCATION=dram SPD=tspd TSP_INIT_ASYNC=1 \
- TSP_NS_INTR_ASYNC_PREEMPT=1
-clean_build $fvp_common_flags ${ARM_TBB_OPTIONS} SPD=opteed
-clean_build $fvp_common_flags ${ARM_TBB_OPTIONS} SPD=tlkd
-
-# Dualroot chain of trust.
-clean_build $fvp_common_flags ${ARM_TBB_OPTIONS} SPD=tspd COT=dualroot
-
-clean_build $fvp_common_flags SPD=trusty
-clean_build $fvp_common_flags SPD=trusty TRUSTY_SPD_WITH_GENERIC_SERVICES=1
-
-# SDEI
-clean_build $fvp_common_flags SDEI_SUPPORT=1 EL3_EXCEPTION_HANDLING=1
-
-# SDEI with fconf
-clean_build $fvp_common_flags SDEI_IN_FCONF=1 SDEI_SUPPORT=1 EL3_EXCEPTION_HANDLING=1
-
-# Secure interrupt descriptors with fconf
-clean_build $fvp_common_flags SEC_INT_DESC_IN_FCONF=1
-
-# Without coherent memory
-clean_build $fvp_common_flags ${ARM_TBB_OPTIONS} ARM_TSP_RAM_LOCATION=dram SPD=tspd USE_COHERENT_MEM=0
-
-# Using PSCI extended State ID format rather than the original format
-clean_build $fvp_common_flags ${ARM_TBB_OPTIONS} ARM_TSP_RAM_LOCATION=dram SPD=tspd PSCI_EXTENDED_STATE_ID=1 \
- ARM_RECOM_STATE_ID_ENC=1
-
-# Alternative boot flows (This changes some of the platform initialisation code)
-clean_build $fvp_common_flags EL3_PAYLOAD=0x80000000
-clean_build $fvp_common_flags PRELOADED_BL33_BASE=0x80000000
-
-# Using the SP804 timer instead of the Generic Timer
-clean_build $fvp_common_flags FVP_USE_SP804_TIMER=1
-
-# Using the CCN driver and multi cluster topology
-clean_build $fvp_common_flags FVP_CLUSTER_COUNT=4
-
-# PMF
-clean_build $fvp_common_flags ENABLE_PMF=1
-
-# stack protector
-clean_build $fvp_common_flags ENABLE_STACK_PROTECTOR=strong
-
-# AArch32 build
-clean_build $fvp_common_flags CROSS_COMPILE=arm-none-eabi- \
- ARCH=aarch32 AARCH32_SP=sp_min \
- RESET_TO_SP_MIN=1 PRELOADED_BL33_BASE=0x80000000
-clean_build $fvp_common_flags CROSS_COMPILE=arm-none-eabi- \
- ARCH=aarch32 AARCH32_SP=sp_min
-
-# Xlat tables lib version 1 (AArch64 and AArch32)
-clean_build $fvp_common_flags ARM_XLAT_TABLES_LIB_V1=1 RECLAIM_INIT_CODE=0
-clean_build $fvp_common_flags CROSS_COMPILE=arm-none-eabi- \
- ARCH=aarch32 AARCH32_SP=sp_min ARM_XLAT_TABLES_LIB_V1=1 RECLAIM_INIT_CODE=0
-
-# SPM support based on Management Mode Interface Specification
-clean_build $fvp_common_flags SPM_MM=1 EL3_EXCEPTION_HANDLING=1
-
-# SPM support with TOS(optee) as SPM sitting at S-EL1
-clean_build $fvp_common_flags SPD=spmd SPMD_SPM_AT_SEL2=0
-
-# SPM support with Secure hafnium as SPM sitting at S-EL2
-# SP_LAYOUT_FILE is used only during FIP creation but build won't progress
-# if we have NULL value to it, so passing a dummy string.
-clean_build $fvp_common_flags SPD=spmd SPMD_SPM_AT_SEL2=1 ARM_ARCH_MINOR=4 \
- CTX_INCLUDE_EL2_REGS=1 SP_LAYOUT_FILE=dummy
-
-#BL2 at EL3 support
-clean_build $fvp_common_flags BL2_AT_EL3=1
-clean_build $fvp_common_flags CROSS_COMPILE=arm-none-eabi- \
- ARCH=aarch32 AARCH32_SP=sp_min BL2_AT_EL3=1
-
-# RAS Extension Support
-clean_build $fvp_common_flags EL3_EXCEPTION_HANDLING=1 \
- FAULT_INJECTION_SUPPORT=1 HANDLE_EA_EL3_FIRST=1 RAS_EXTENSION=1 \
- SDEI_SUPPORT=1
-
-# Hardware Assisted Coherency(DynamIQ)
-clean_build $fvp_common_flags FVP_CLUSTER_COUNT=1 FVP_MAX_CPUS_PER_CLUSTER=8 \
- HW_ASSISTED_COHERENCY=1 USE_COHERENT_MEM=0
-
-# Pointer Authentication Support
-clean_build $fvp_common_flags CTX_INCLUDE_PAUTH_REGS=1 \
- ARM_ARCH_MINOR=5 EL3_EXCEPTION_HANDLING=1 BRANCH_PROTECTION=1 SDEI_SUPPORT=1 SPD=tspd TSP_NS_INTR_ASYNC_PREEMPT=1
-
-# Undefined Behaviour Sanitizer
-# Building with UBSAN SANITIZE_UB=on increases the executable size.
-# Hence it is only properly supported in bl31 with RESET_TO_BL31 enabled
-make $fvp_common_flags clean
-make $fvp_common_flags SANITIZE_UB=on RESET_TO_BL31=1 bl31
-
-# debugfs feature
-clean_build $fvp_common_flags DEBUG=1 USE_DEBUGFS=1
-
-# MPAM feature
-clean_build $fvp_common_flags ENABLE_MPAM_FOR_LOWER_ELS=1
-
-# Using GICv3.1 driver with extended PPI and SPI range
-clean_build $fvp_common_flags GIC_EXT_INTID=1
-
-# Using GICv4 features with extended PPI and SPI range
-clean_build $fvp_common_flags GIC_ENABLE_V4_EXTN=1 GIC_EXT_INTID=1
-
-# Measured Boot
-clean_build $fvp_common_flags ${ARM_TBB_OPTIONS} MEASURED_BOOT=1
-
-#
-# Juno platform
-# We'll use the following flags for all Juno builds.
-#
-juno_common_flags="$(common_flags) PLAT=juno"
-clean_build $juno_common_flags SPD=tspd ${ARM_TBB_OPTIONS}
-clean_build $juno_common_flags EL3_PAYLOAD=0x80000000
-clean_build $juno_common_flags ENABLE_STACK_PROTECTOR=strong
-clean_build $juno_common_flags CSS_USE_SCMI_SDS_DRIVER=0
-clean_build $juno_common_flags SPD=tspd ${ARM_TBB_OPTIONS} ARM_CRYPTOCELL_INTEG=1 CCSBROM_LIB_PATH=${CRYPTOCELL_LIB_PATH} KEY_SIZE=2048
-
-#
-# System Guidance for Infrastructure platform SGI575
-# Enable build config with RAS_EXTENSION to cover more files
-make $(common_flags) PLAT=sgi575 ${ARM_TBB_OPTIONS} EL3_EXCEPTION_HANDLING=1 FAULT_INJECTION_SUPPORT=1 \
- HANDLE_EA_EL3_FIRST=1 RAS_EXTENSION=1 SDEI_SUPPORT=1 SPM_MM=1 all
-#
-# System Guidance for Mobile platform SGM775
-#
-make $(common_flags) PLAT=sgm775 ${ARM_TBB_OPTIONS} SPD=tspd \
- CSS_USE_SCMI_SDS_DRIVER=1 all
-
-#
-# System Guidance for Infrastructure platform RD-N1-Edge-Dual
-#
-make $(common_flags) PLAT=rdn1edge CSS_SGI_CHIP_COUNT=2 ${ARM_TBB_OPTIONS} all
-
-#
-# System Guidance for Infrastructure platform RD-E1Edge
-#
-make $(common_flags) PLAT=rde1edge ${ARM_TBB_OPTIONS} CSS_SGI_CHIP_COUNT=1 all
-
-#
-# System Guidance for Infrastructure platform RD-Daniel
-#
-make $(common_flags) PLAT=rddaniel ${ARM_TBB_OPTIONS} all
-
-#
-# System Guidance for Infrastructure platform RD-Danielxlr
-#
-make $(common_flags) PLAT=rddanielxlr ${ARM_TBB_OPTIONS} CSS_SGI_CHIP_COUNT=4 all
-
-#
-# Neoverse N1 SDP platform
-#
-make $(common_flags) PLAT=n1sdp ${ARM_TBB_OPTIONS} all
-
-#
-# FVP VE platform
-#
-make $(common_flags) PLAT=fvp_ve AARCH32_SP=sp_min ARCH=aarch32 \
- CROSS_COMPILE=arm-none-eabi- ARM_ARCH_MAJOR=7 \
- ARM_CORTEX_A5=yes ARM_XLAT_TABLES_LIB_V1=1 \
- FVP_HW_CONFIG_DTS=fdts/fvp-ve-Cortex-A5x1.dts all
-
-#
-# A5 DesignStart Platform
-#
-make $(common_flags) PLAT=a5ds AARCH32_SP=sp_min ARCH=aarch32 \
- ARM_ARCH_MAJOR=7 ARM_CORTEX_A5=yes ARM_XLAT_TABLES_LIB_V1=1 \
- CROSS_COMPILE=arm-none-eabi- FVP_HW_CONFIG_DTS=fdts/a5ds.dts
-
-#
-# Corstone700 Platform
-#
-
-corstone700_common_flags="CROSS_COMPILE=arm-none-eabi- \
- $(common_flags) \
- PLAT=corstone700 \
- ARCH=aarch32 \
- RESET_TO_SP_MIN=1 \
- AARCH32_SP=sp_min \
- ARM_LINUX_KERNEL_AS_BL33=0 \
- ARM_PRELOADED_DTB_BASE=0x80400000 \
- ENABLE_PIE=1 \
- ENABLE_STACK_PROTECTOR=all \
- all"
-
-echo "Info: Building Corstone700 FVP ..."
-
-make TARGET_PLATFORM=fvp ${corstone700_common_flags}
-
-echo "Info: Building Corstone700 FPGA ..."
-
-make TARGET_PLATFORM=fpga ${corstone700_common_flags}
-
-#
-# Arm internal FPGA port
-#
-make PLAT=arm_fpga $(common_flags) CROSS_COMPILE=aarch64-none-elf- \
- FPGA_PRELOADED_DTB_BASE=0x88000000 PRELOADED_BL33_BASE=0x82080000 all
-
-#
-# Total Compute platform
-#
-make $(common_flags) PLAT=tc0 ${ARM_TBB_OPTIONS} all
-
-# Partners' platforms.
-# Enable as many features as possible.
-# We don't need to clean between each build here because we only do one build
-# per platform so we don't hit the build flags dependency problem.
-
-make PLAT=mt8173 $(common_flags) all
-make PLAT=mt8183 $(common_flags) all
-
-make PLAT=rk3288 CROSS_COMPILE=arm-none-eabi- \
- $(common_flags) ARCH=aarch32 AARCH32_SP=sp_min all
-make PLAT=rk3368 $(common_flags) COREBOOT=1 all
-make PLAT=rk3399 $(common_flags) COREBOOT=1 PLAT_RK_DP_HDCP=1 all
-make PLAT=rk3328 $(common_flags) COREBOOT=1 PLAT_RK_SECURE_DDR_MINILOADER=1 all
-make PLAT=px30 $(common_flags) PLAT_RK_SECURE_DDR_MINILOADER=1 all
-
-# Although we do several consecutive builds for the Tegra platform below, we
-# don't need to clean between each one because the Tegra makefiles specify
-# a different build directory per SoC.
-make PLAT=tegra TARGET_SOC=t210 $(common_flags) all
-make PLAT=tegra TARGET_SOC=t132 $(common_flags) all
-make PLAT=tegra TARGET_SOC=t186 $(common_flags) all
-make PLAT=tegra TARGET_SOC=t194 $(common_flags) all
-
-# For the Xilinx platform, artificially increase the extents of BL31 memory
-# (using the platform-specific build options ZYNQMP_ATF_MEM_{BASE,SIZE}).
-# If we keep the default values, BL31 doesn't fit when it is built with all
-# these build flags.
-make PLAT=zynqmp $(common_flags) \
- RESET_TO_BL31=1 SPD=tspd \
- ZYNQMP_ATF_MEM_BASE=0xFFFC0000 ZYNQMP_ATF_MEM_SIZE=0x00040000 \
- all
-
-# Build both for silicon (default) and virtual QEMU platform.
-clean_build PLAT=versal $(common_flags)
-clean_build PLAT=versal $(common_flags) VERSAL_PLATFORM=versal_virt
-
-# Platforms from Allwinner
-make PLAT=sun50i_a64 $(common_flags) all
-make PLAT=sun50i_h6 $(common_flags) all
-
-# Platforms from i.MX
-make AARCH32_SP=optee ARCH=aarch32 ARM_ARCH_MAJOR=7 ARM_CORTEX_A7=yes \
- CROSS_COMPILE=arm-none-eabi- PLAT=warp7 ${TBB_OPTIONS} \
- $(common_flags) all
-make AARCH32_SP=optee ARCH=aarch32 CROSS_COMPILE=arm-none-eabi- PLAT=picopi \
- $(common_flags) all
-make PLAT=imx8mm $(common_flags) all
-make PLAT=imx8mn $(common_flags) all
-make PLAT=imx8mp $(common_flags) all
-
-# Temporarily building in release mode until the following ticket is resolved:
-# https://developer.trustedfirmware.org/T626
-# make PLAT=imx8mq $(common_flags) all
-make PLAT=imx8mq $(common_flags release) all
-
-make PLAT=imx8qm $(common_flags) all
-make PLAT=imx8qx $(common_flags) all
-
-# Platforms from Intel
-make PLAT=stratix10 $(common_flags) all
-make PLAT=agilex $(common_flags) all
-
-# Platforms from Broadcom
-clean_build PLAT=stingray $(common_flags) BOARD_CFG=bcm958742t INCLUDE_EMMC_DRIVER_ERASE_CODE=1
-clean_build PLAT=stingray $(common_flags) BOARD_CFG=bcm958742t-ns3 INCLUDE_EMMC_DRIVER_ERASE_CODE=1
-
-# Platforms from Marvell
-make PLAT=a3700 $(common_flags) SCP_BL2=/dev/null all
-# Source files from mv-ddr-marvell repository are necessary
-# to build below four platforms
-wget http://files.oss.arm.com/downloads/tf-a/mv-ddr-marvell/mv-ddr-marvell-a881467ef0f0185e6570dd0483023fde93cbb5f5.tar.gz 2> /dev/null
-tar -xzf mv-ddr-marvell-a881467ef0f0185e6570dd0483023fde93cbb5f5.tar.gz 2> /dev/null
-mv mv-ddr-marvell drivers/marvell/mv_ddr
-
-# These platforms from Marvell have dependency on GCC-6.2.1 toolchain
-make PLAT=a80x0 DEBUG=1 SCP_BL2=/dev/null \
- CROSS_COMPILE=/arm/pdsw/tools/gcc-linaro-6.2.1-2016.11-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu- all
-make PLAT=a80x0_mcbin DEBUG=1 SCP_BL2=/dev/null \
- CROSS_COMPILE=/arm/pdsw/tools/gcc-linaro-6.2.1-2016.11-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu- all
-make PLAT=a70x0 DEBUG=1 SCP_BL2=/dev/null \
- CROSS_COMPILE=/arm/pdsw/tools/gcc-linaro-6.2.1-2016.11-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu- all
-make PLAT=a70x0_amc DEBUG=1 SCP_BL2=/dev/null \
- CROSS_COMPILE=/arm/pdsw/tools/gcc-linaro-6.2.1-2016.11-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu- all
-make PLAT=a80x0_puzzle DEBUG=1 SCP_BL2=/dev/null \
- CROSS_COMPILE=/arm/pdsw/tools/gcc-linaro-6.2.1-2016.11-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu- all
-
-# Removing the source files
-rm -rf drivers/marvell/mv_ddr 2> /dev/null
-
-# Platforms from Meson
-make PLAT=gxbb $(common_flags) all
-make PLAT=gxl $(common_flags) all
-make PLAT=g12a $(common_flags) all
-
-# Platforms from Renesas
-# Renesas R-Car D3 Automotive SoC
-clean_build PLAT=rcar $(common_flags) BL32=Makefile \
- BL33=Makefile LIFEC_DBSC_PROTECT_ENABLE=0 LSI=D3 \
- MBEDTLS_DIR=$(pwd)/mbedtls PMIC_ROHM_BD9571=0 \
- RCAR_AVS_SETTING_ENABLE=0 SPD=none RCAR_LOSSY_ENABLE=0 \
- RCAR_SA0_SIZE=0 RCAR_SYSTEM_SUSPEND=0 TRUSTED_BOARD_BOOT=1
-
-# Renesas R-Car H3 Automotive SoC
-clean_build PLAT=rcar $(common_flags) BL32=Makefile \
- BL33=Makefile MBEDTLS_DIR=$(pwd)/mbedtls LSI=H3 \
- MACHINE=ulcb PMIC_LEVEL_MODE=0 RCAR_DRAM_LPDDR4_MEMCONF=0 \
- RCAR_DRAM_SPLIT=1 RCAR_GEN3_ULCB=1 SPD=opteed \
- TRUSTED_BOARD_BOOT=1
-
-# Renesas R-Car H3N Automotive SoC
-clean_build PLAT=rcar $(common_flags) BL32=Makefile \
- BL33=Makefile MBEDTLS_DIR=$(pwd)/mbedtls LSI=H3N \
- SPD=opteed TRUSTED_BOARD_BOOT=1
-
-# Renesas R-Car M3 Automotive SoC
-clean_build PLAT=rcar $(common_flags) BL32=Makefile \
- BL33=Makefile MBEDTLS_DIR=$(pwd)/mbedtls LSI=M3 \
- MACHINE=ulcb PMIC_LEVEL_MODE=0 RCAR_DRAM_LPDDR4_MEMCONF=0 \
- RCAR_DRAM_SPLIT=2 RCAR_GEN3_ULCB=1 SPD=opteed \
- TRUSTED_BOARD_BOOT=1
-
-# Renesas R-Car M3N Automotive SoC
-clean_build PLAT=rcar $(common_flags) BL32=Makefile \
- BL33=Makefile MBEDTLS_DIR=$(pwd)/mbedtls LSI=M3N \
- MACHINE=ulcb PMIC_LEVEL_MODE=0 RCAR_DRAM_LPDDR4_MEMCONF=0 \
- RCAR_GEN3_ULCB=1 SPD=opteed TRUSTED_BOARD_BOOT=1
-
-# Renesas R-Car E3 Automotive SoC
-clean_build PLAT=rcar $(common_flags) BL32=Makefile \
- BL33=Makefile MBEDTLS_DIR=$(pwd)/mbedtls LSI=E3 \
- RCAR_AVS_SETTING_ENABLE=0 RCAR_DRAM_DDR3L_MEMCONF=0 \
- RCAR_SA0_SIZE=0 SPD=opteed TRUSTED_BOARD_BOOT=1
-
-# Renesas R-Car V3M Automotive SoC
-clean_build PLAT=rcar $(common_flags) BL32=Makefile \
- MBEDTLS_DIR=$(pwd)/mbedtls BL33=Makefile LSI=V3M MACHINE=eagle \
- PMIC_ROHM_BD9571=0 RCAR_DRAM_SPLIT=0 RCAR_SYSTEM_SUSPEND=0 \
- AVS_SETTING_ENABLE=0 SPD=none TRUSTED_BOARD_BOOT=1
-
-# Platforms from ST
-make PLAT=stm32mp1 CROSS_COMPILE=arm-none-eabi- \
- $(common_flags) ARM_ARCH_MAJOR=7 STM32MP_EMMC=1 \
- STM32MP_RAW_NAND=1 STM32MP_SDMMC=1 STM32MP_SPI_NAND=1 STM32MP_SPI_NOR=1 \
- ARCH=aarch32 AARCH32_SP=sp_min ENABLE_STACK_PROTECTOR=strong bl1 bl2 bl32
-
-# Platforms from TI
-make PLAT=k3 $(common_flags) all
-
-clean_build PLAT=qemu $(common_flags) ${TBB_OPTIONS}
-# Use GICV3 driver
-clean_build PLAT=qemu $(common_flags) QEMU_USE_GIC_DRIVER=QEMU_GICV3 \
- ENABLE_STACK_PROTECTOR=strong
-# Use encrypted FIP feature.
-clean_build PLAT=qemu $(common_flags) ${TBB_OPTIONS} \
- BL32_RAM_LOCATION=tdram DECRYPTION_SUPPORT=aes_gcm ENCRYPT_BL31=1 \
- ENCRYPT_BL32=1 FW_ENC_STATUS=0 SPD=opteed
-
-clean_build PLAT=qemu_sbsa $(common_flags)
-
-# For hikey enable PMF to include all files in the platform port
-make PLAT=hikey $(common_flags) ${TBB_OPTIONS} ENABLE_PMF=1 all
-make PLAT=hikey960 $(common_flags) ${TBB_OPTIONS} all
-make PLAT=poplar $(common_flags) all
-
-# Platforms from Socionext
-clean_build PLAT=uniphier $(common_flags) ${TBB_OPTIONS} SPD=tspd
-clean_build PLAT=uniphier $(common_flags) FIP_GZIP=1
-
-clean_build PLAT=synquacer $(common_flags) SPM_MM=1 \
- EL3_EXCEPTION_HANDLING=1 PRELOADED_BL33_BASE=0x0
-
-# Support for SCP Message Interface protocol with platform specific drivers
-clean_build PLAT=synquacer $(common_flags) \
- PRELOADED_BL33_BASE=0x0 SQ_USE_SCMI_DRIVER=1
-
-make PLAT=poplar $(common_flags) all
-
-# Raspberry Pi Platforms
-make PLAT=rpi3 $(common_flags) ${TBB_OPTIONS} \
- ENABLE_STACK_PROTECTOR=strong PRELOADED_BL33_BASE=0xDEADBEEF all
-make PLAT=rpi4 $(common_flags) all
-
-# Cannot use $(common_flags) for LS1043 platform, as then
-# the binaries do not fit in memory.
-clean_build PLAT=ls1043 SPD=opteed ENABLE_STACK_PROTECTOR=strong
-clean_build PLAT=ls1043 SPD=tspd
-
-# A113D (AXG) platform.
-clean_build PLAT=axg $(common_flags) SPD=opteed
-clean_build PLAT=axg $(common_flags) AML_USE_ATOS=1
-
-cd ..
+# a single makefile takes care of all platform building
+make BASE_DIR="$base_dir" -f "$tf_coverity_dir/cov-makefile"