185135283SDan Handley# 2df9a39eaSdp-arm# Copyright (c) 2013-2017, ARM Limited and Contributors. All rights reserved. 385135283SDan Handley# 485135283SDan Handley# Redistribution and use in source and binary forms, with or without 585135283SDan Handley# modification, are permitted provided that the following conditions are met: 685135283SDan Handley# 785135283SDan Handley# Redistributions of source code must retain the above copyright notice, this 885135283SDan Handley# list of conditions and the following disclaimer. 985135283SDan Handley# 1085135283SDan Handley# Redistributions in binary form must reproduce the above copyright notice, 1185135283SDan Handley# this list of conditions and the following disclaimer in the documentation 1285135283SDan Handley# and/or other materials provided with the distribution. 1385135283SDan Handley# 1485135283SDan Handley# Neither the name of ARM nor the names of its contributors may be used 1585135283SDan Handley# to endorse or promote products derived from this software without specific 1685135283SDan Handley# prior written permission. 1785135283SDan Handley# 1885135283SDan Handley# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 1985135283SDan Handley# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 2085135283SDan Handley# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 2185135283SDan Handley# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE 2285135283SDan Handley# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 2385135283SDan Handley# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 2485135283SDan Handley# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 2585135283SDan Handley# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 2685135283SDan Handley# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 2785135283SDan Handley# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 2885135283SDan Handley# POSSIBILITY OF SUCH DAMAGE. 2985135283SDan Handley# 3085135283SDan Handley 3127573c59SAchin GuptaJUNO_GIC_SOURCES := drivers/arm/gic/common/gic_common.c \ 3227573c59SAchin Gupta drivers/arm/gic/v2/gicv2_main.c \ 3327573c59SAchin Gupta drivers/arm/gic/v2/gicv2_helpers.c \ 3427573c59SAchin Gupta plat/common/plat_gicv2.c \ 3527573c59SAchin Gupta plat/arm/common/arm_gicv2.c 3627573c59SAchin Gupta 376355f234SVikram KanigiriJUNO_INTERCONNECT_SOURCES := drivers/arm/cci/cci.c \ 386355f234SVikram Kanigiri plat/arm/common/arm_cci.c 396355f234SVikram Kanigiri 4057f78201SSoby MathewJUNO_SECURITY_SOURCES := drivers/arm/tzc/tzc400.c \ 41a9cc84d7SVikram Kanigiri plat/arm/board/juno/juno_security.c \ 42df9a39eaSdp-arm plat/arm/board/juno/juno_trng.c \ 43a9cc84d7SVikram Kanigiri plat/arm/common/arm_tzc400.c 44a9cc84d7SVikram Kanigiri 45e6d2aea1Sdp-armifneq (${ENABLE_STACK_PROTECTOR}, 0) 46e6d2aea1Sdp-armJUNO_SECURITY_SOURCES += plat/arm/board/juno/juno_stack_protector.c 47e6d2aea1Sdp-armendif 486355f234SVikram Kanigiri 4985135283SDan HandleyPLAT_INCLUDES := -Iplat/arm/board/juno/include 5085135283SDan Handley 51*07570d59SYatharth KocharPLAT_BL_COMMON_SOURCES := plat/arm/board/juno/${ARCH}/juno_helpers.S 5285135283SDan Handley 53*07570d59SYatharth Kochar# Flag to enable support for AArch32 state on JUNO 54*07570d59SYatharth KocharJUNO_AARCH32_EL3_RUNTIME := 0 55*07570d59SYatharth Kochar$(eval $(call assert_boolean,JUNO_AARCH32_EL3_RUNTIME)) 56*07570d59SYatharth Kochar$(eval $(call add_define,JUNO_AARCH32_EL3_RUNTIME)) 57*07570d59SYatharth Kochar 58*07570d59SYatharth Kocharifeq (${ARCH},aarch64) 5985135283SDan HandleyBL1_SOURCES += lib/cpus/aarch64/cortex_a53.S \ 600f829ea9SBrendan Jackman lib/cpus/aarch64/cortex_a57.S \ 617b4c1405SJuan Castillo lib/cpus/aarch64/cortex_a72.S \ 62436223deSYatharth Kochar plat/arm/board/juno/juno_bl1_setup.c \ 636355f234SVikram Kanigiri plat/arm/board/juno/juno_err.c \ 64e6d2aea1Sdp-arm ${JUNO_INTERCONNECT_SOURCES} \ 65e6d2aea1Sdp-arm ${JUNO_SECURITY_SOURCES} 6685135283SDan Handley 67a9cc84d7SVikram KanigiriBL2_SOURCES += plat/arm/board/juno/juno_err.c \ 68*07570d59SYatharth Kochar plat/arm/board/juno/juno_bl2_setup.c \ 69a9cc84d7SVikram Kanigiri ${JUNO_SECURITY_SOURCES} 7085135283SDan Handley 71a9cc84d7SVikram KanigiriBL2U_SOURCES += ${JUNO_SECURITY_SOURCES} 72dcda29f6SYatharth Kochar 7385135283SDan HandleyBL31_SOURCES += lib/cpus/aarch64/cortex_a53.S \ 74c1bb8a05SSoby Mathew lib/cpus/aarch64/cortex_a57.S \ 750f829ea9SBrendan Jackman lib/cpus/aarch64/cortex_a72.S \ 76c1bb8a05SSoby Mathew plat/arm/board/juno/juno_pm.c \ 770108047aSSoby Mathew plat/arm/board/juno/juno_topology.c \ 78a9cc84d7SVikram Kanigiri ${JUNO_GIC_SOURCES} \ 796355f234SVikram Kanigiri ${JUNO_INTERCONNECT_SOURCES} \ 80a9cc84d7SVikram Kanigiri ${JUNO_SECURITY_SOURCES} 81*07570d59SYatharth Kocharendif 8285135283SDan Handley 836f822cccSDouglas Raillard# Enable workarounds for selected Cortex-A53 and A57 errata. 84b75dc0e4SAndre PrzywaraERRATA_A53_855873 := 1 8585135283SDan HandleyERRATA_A57_806969 := 0 86ccbec91cSAntonio Nino DiazERRATA_A57_813419 := 1 8785135283SDan HandleyERRATA_A57_813420 := 1 886f822cccSDouglas RaillardERRATA_A57_826974 := 1 896f822cccSDouglas RaillardERRATA_A57_826977 := 1 906f822cccSDouglas RaillardERRATA_A57_828024 := 1 916f822cccSDouglas RaillardERRATA_A57_829520 := 1 926f822cccSDouglas RaillardERRATA_A57_833471 := 1 936f822cccSDouglas Raillard 946f822cccSDouglas Raillard# Enable workarounds for selected Cortex-A53 errata. 956f822cccSDouglas RaillardERRATA_A53_826319 := 1 966f822cccSDouglas RaillardERRATA_A53_836870 := 1 9785135283SDan Handley 9885135283SDan Handley# Enable option to skip L1 data cache flush during the Cortex-A57 cluster 9985135283SDan Handley# power down sequence 10085135283SDan HandleySKIP_A57_L1_FLUSH_PWR_DWN := 1 10185135283SDan Handley 10238dce70fSSoby Mathew# Disable the PSCI platform compatibility layer 10338dce70fSSoby MathewENABLE_PLAT_COMPAT := 0 104c64a0448SVikram Kanigiri 105c64a0448SVikram Kanigiri# Enable memory map related constants optimisation 1060289970dSAntonio Nino DiazARM_BOARD_OPTIMISE_MEM := 1 10738dce70fSSoby Mathew 10885135283SDan Handleyinclude plat/arm/board/common/board_css.mk 10985135283SDan Handleyinclude plat/arm/common/arm_common.mk 11085135283SDan Handleyinclude plat/arm/soc/common/soc_css.mk 11185135283SDan Handleyinclude plat/arm/css/common/css_common.mk 1121779ba6bSJuan Castillo 1131779ba6bSJuan Castilloifeq (${KEY_ALG},ecdsa) 1141779ba6bSJuan Castillo $(error "ECDSA key algorithm is not fully supported on Juno.") 1151779ba6bSJuan Castilloendif 116