1a80490c5SAndre Przywara# 2b23ab8ebSAndre Przywara# Copyright (c) 2017-2021, ARM Limited and Contributors. All rights reserved. 3a80490c5SAndre Przywara# 4a80490c5SAndre Przywara# SPDX-License-Identifier: BSD-3-Clause 5a80490c5SAndre Przywara# 6a80490c5SAndre Przywara 7a80490c5SAndre Przywarainclude lib/xlat_tables_v2/xlat_tables.mk 89bc28a5eSAndre Przywarainclude lib/libfdt/libfdt.mk 99bc28a5eSAndre Przywarainclude drivers/arm/gic/v2/gicv2.mk 10a80490c5SAndre Przywara 11a80490c5SAndre PrzywaraAW_PLAT := plat/allwinner 12a80490c5SAndre Przywara 13252c1d1dSSamuel HollandPLAT_INCLUDES := -Iinclude/plat/arm/common/aarch64 \ 14a80490c5SAndre Przywara -I${AW_PLAT}/common/include \ 15a80490c5SAndre Przywara -I${AW_PLAT}/${PLAT}/include 16a80490c5SAndre Przywara 17985ee0b7SJulius WernerPLAT_BL_COMMON_SOURCES := drivers/ti/uart/${ARCH}/16550_console.S \ 18a80490c5SAndre Przywara ${XLAT_TABLES_LIB_SRCS} \ 19a80490c5SAndre Przywara ${AW_PLAT}/common/plat_helpers.S \ 20a80490c5SAndre Przywara ${AW_PLAT}/common/sunxi_common.c 21a80490c5SAndre Przywara 22fb23b104SSamuel HollandBL31_SOURCES += drivers/allwinner/axp/common.c \ 239bc28a5eSAndre Przywara ${GICV2_SOURCES} \ 24a80490c5SAndre Przywara drivers/delay_timer/delay_timer.c \ 25a80490c5SAndre Przywara drivers/delay_timer/generic_delay_timer.c \ 26a80490c5SAndre Przywara lib/cpus/${ARCH}/cortex_a53.S \ 27a80490c5SAndre Przywara plat/common/plat_gicv2.c \ 28a80490c5SAndre Przywara plat/common/plat_psci_common.c \ 29a80490c5SAndre Przywara ${AW_PLAT}/common/sunxi_bl31_setup.c \ 30e2b18771SSamuel Holland ${AW_PLAT}/${PLAT}/sunxi_idle_states.c \ 31a80490c5SAndre Przywara ${AW_PLAT}/common/sunxi_pm.c \ 32a80490c5SAndre Przywara ${AW_PLAT}/${PLAT}/sunxi_power.c \ 33a80490c5SAndre Przywara ${AW_PLAT}/common/sunxi_security.c \ 34a80490c5SAndre Przywara ${AW_PLAT}/common/sunxi_topology.c 35a80490c5SAndre Przywara 36b23ab8ebSAndre Przywara# By default, attempt to use SCPI to the ARISC management processor. If SCPI 37b23ab8ebSAndre Przywara# is not enabled or SCP firmware is not loaded, fall back to a simpler native 38b23ab8ebSAndre Przywara# implementation that does not support CPU or system suspend. 39b23ab8ebSAndre Przywara# 40b23ab8ebSAndre Przywara# If SCP firmware will always be present (or absent), the unused implementation 41b23ab8ebSAndre Przywara# can be compiled out. 42b23ab8ebSAndre PrzywaraSUNXI_PSCI_USE_NATIVE ?= 1 43b23ab8ebSAndre PrzywaraSUNXI_PSCI_USE_SCPI ?= 1 44b23ab8ebSAndre Przywara 45b23ab8ebSAndre Przywara$(eval $(call assert_boolean,SUNXI_PSCI_USE_NATIVE)) 46b23ab8ebSAndre Przywara$(eval $(call assert_boolean,SUNXI_PSCI_USE_SCPI)) 47b23ab8ebSAndre Przywara$(eval $(call add_define,SUNXI_PSCI_USE_NATIVE)) 48b23ab8ebSAndre Przywara$(eval $(call add_define,SUNXI_PSCI_USE_SCPI)) 49b23ab8ebSAndre Przywara 50b23ab8ebSAndre Przywaraifeq (${SUNXI_PSCI_USE_NATIVE}${SUNXI_PSCI_USE_SCPI},00) 51b23ab8ebSAndre Przywara$(error "At least one of SCPI or native PSCI ops must be enabled") 52b23ab8ebSAndre Przywaraendif 53b23ab8ebSAndre Przywara 54b23ab8ebSAndre Przywaraifeq (${SUNXI_PSCI_USE_NATIVE},1) 55b23ab8ebSAndre PrzywaraBL31_SOURCES += ${AW_PLAT}/common/sunxi_cpu_ops.c \ 56b23ab8ebSAndre Przywara ${AW_PLAT}/common/sunxi_native_pm.c 57b23ab8ebSAndre Przywaraendif 58b23ab8ebSAndre Przywara 59b23ab8ebSAndre Przywaraifeq (${SUNXI_PSCI_USE_SCPI},1) 60b23ab8ebSAndre PrzywaraBL31_SOURCES += drivers/allwinner/sunxi_msgbox.c \ 61b23ab8ebSAndre Przywara drivers/arm/css/scpi/css_scpi.c \ 62b23ab8ebSAndre Przywara ${AW_PLAT}/common/sunxi_scpi_pm.c 63b23ab8ebSAndre Przywaraendif 64b23ab8ebSAndre Przywara 6567412e4dSAndre PrzywaraSUNXI_SETUP_REGULATORS ?= 1 6667412e4dSAndre Przywara$(eval $(call assert_boolean,SUNXI_SETUP_REGULATORS)) 6767412e4dSAndre Przywara$(eval $(call add_define,SUNXI_SETUP_REGULATORS)) 6867412e4dSAndre Przywara 696fa8e72eSAndre PrzywaraSUNXI_BL31_IN_DRAM ?= 0 706fa8e72eSAndre Przywara$(eval $(call assert_boolean,SUNXI_BL31_IN_DRAM)) 716fa8e72eSAndre Przywara 726fa8e72eSAndre Przywaraifeq (${SUNXI_BL31_IN_DRAM},1) 736fa8e72eSAndre PrzywaraSUNXI_AMEND_DTB := 1 746fa8e72eSAndre Przywara$(eval $(call add_define,SUNXI_BL31_IN_DRAM)) 756fa8e72eSAndre Przywaraendif 766fa8e72eSAndre Przywara 776fa8e72eSAndre PrzywaraSUNXI_AMEND_DTB ?= 0 786fa8e72eSAndre Przywara$(eval $(call assert_boolean,SUNXI_AMEND_DTB)) 796fa8e72eSAndre Przywara$(eval $(call add_define,SUNXI_AMEND_DTB)) 806fa8e72eSAndre Przywara 816fa8e72eSAndre Przywaraifeq (${SUNXI_AMEND_DTB},1) 826fa8e72eSAndre PrzywaraBL31_SOURCES += common/fdt_fixup.c \ 836fa8e72eSAndre Przywara ${AW_PLAT}/common/sunxi_prepare_dtb.c 846fa8e72eSAndre Przywaraendif 856fa8e72eSAndre Przywara 86a80490c5SAndre Przywara# The bootloader is guaranteed to only run on CPU 0 by the boot ROM. 87a80490c5SAndre PrzywaraCOLD_BOOT_SINGLE_CPU := 1 88a80490c5SAndre Przywara 898f31853bSSamuel Holland# Do not enable SPE (not supported on ARM v8.0). 90*90118bb5SAndre PrzywaraENABLE_SPE_FOR_NS := 0 918f31853bSSamuel Holland 928f31853bSSamuel Holland# Do not enable SVE (not supported on ARM v8.0). 938f31853bSSamuel HollandENABLE_SVE_FOR_NS := 0 948f31853bSSamuel Holland 95a80490c5SAndre Przywara# Enable workarounds for Cortex-A53 errata. Allwinner uses at least r0p4. 96a80490c5SAndre PrzywaraERRATA_A53_835769 := 1 97a80490c5SAndre PrzywaraERRATA_A53_843419 := 1 98a80490c5SAndre PrzywaraERRATA_A53_855873 := 1 9974665119SSamuel HollandERRATA_A53_1530924 := 1 100a80490c5SAndre Przywara 1013d36d8e6SSamuel Holland# The traditional U-Boot load address is 160MB into DRAM. 1023d36d8e6SSamuel HollandPRELOADED_BL33_BASE ?= 0x4a000000 1033d36d8e6SSamuel Holland 104a80490c5SAndre Przywara# The reset vector can be changed for each CPU. 105a80490c5SAndre PrzywaraPROGRAMMABLE_RESET_ADDRESS := 1 106a80490c5SAndre Przywara 107a80490c5SAndre Przywara# Allow mapping read-only data as execute-never. 108a80490c5SAndre PrzywaraSEPARATE_CODE_AND_RODATA := 1 109a80490c5SAndre Przywara 110a80490c5SAndre Przywara# BL31 gets loaded alongside BL33 (U-Boot) by U-Boot's SPL 111a80490c5SAndre PrzywaraRESET_TO_BL31 := 1 11243060513SAndre Przywara 1138f31853bSSamuel Holland# This platform is single-cluster and does not require coherency setup. 1148f31853bSSamuel HollandWARMBOOT_ENABLE_DCACHE_EARLY := 1 115