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 \ 30a80490c5SAndre Przywara ${AW_PLAT}/common/sunxi_pm.c \ 31a80490c5SAndre Przywara ${AW_PLAT}/${PLAT}/sunxi_power.c \ 32a80490c5SAndre Przywara ${AW_PLAT}/common/sunxi_security.c \ 33a80490c5SAndre Przywara ${AW_PLAT}/common/sunxi_topology.c 34a80490c5SAndre Przywara 35b23ab8ebSAndre Przywara# By default, attempt to use SCPI to the ARISC management processor. If SCPI 36b23ab8ebSAndre Przywara# is not enabled or SCP firmware is not loaded, fall back to a simpler native 37b23ab8ebSAndre Przywara# implementation that does not support CPU or system suspend. 38b23ab8ebSAndre Przywara# 39b23ab8ebSAndre Przywara# If SCP firmware will always be present (or absent), the unused implementation 40b23ab8ebSAndre Przywara# can be compiled out. 41b23ab8ebSAndre PrzywaraSUNXI_PSCI_USE_NATIVE ?= 1 42b23ab8ebSAndre PrzywaraSUNXI_PSCI_USE_SCPI ?= 1 43b23ab8ebSAndre Przywara 44b23ab8ebSAndre Przywara$(eval $(call assert_boolean,SUNXI_PSCI_USE_NATIVE)) 45b23ab8ebSAndre Przywara$(eval $(call assert_boolean,SUNXI_PSCI_USE_SCPI)) 46b23ab8ebSAndre Przywara$(eval $(call add_define,SUNXI_PSCI_USE_NATIVE)) 47b23ab8ebSAndre Przywara$(eval $(call add_define,SUNXI_PSCI_USE_SCPI)) 48b23ab8ebSAndre Przywara 49b23ab8ebSAndre Przywaraifeq (${SUNXI_PSCI_USE_NATIVE}${SUNXI_PSCI_USE_SCPI},00) 50b23ab8ebSAndre Przywara$(error "At least one of SCPI or native PSCI ops must be enabled") 51b23ab8ebSAndre Przywaraendif 52b23ab8ebSAndre Przywara 53b23ab8ebSAndre Przywaraifeq (${SUNXI_PSCI_USE_NATIVE},1) 54b23ab8ebSAndre PrzywaraBL31_SOURCES += ${AW_PLAT}/common/sunxi_cpu_ops.c \ 55b23ab8ebSAndre Przywara ${AW_PLAT}/common/sunxi_native_pm.c 56b23ab8ebSAndre Przywaraendif 57b23ab8ebSAndre Przywara 58b23ab8ebSAndre Przywaraifeq (${SUNXI_PSCI_USE_SCPI},1) 59b23ab8ebSAndre PrzywaraBL31_SOURCES += drivers/allwinner/sunxi_msgbox.c \ 60b23ab8ebSAndre Przywara drivers/arm/css/scpi/css_scpi.c \ 61b23ab8ebSAndre Przywara ${AW_PLAT}/common/sunxi_scpi_pm.c 62b23ab8ebSAndre Przywaraendif 63b23ab8ebSAndre Przywara 64*67412e4dSAndre PrzywaraSUNXI_SETUP_REGULATORS ?= 1 65*67412e4dSAndre Przywara$(eval $(call assert_boolean,SUNXI_SETUP_REGULATORS)) 66*67412e4dSAndre Przywara$(eval $(call add_define,SUNXI_SETUP_REGULATORS)) 67*67412e4dSAndre Przywara 68a80490c5SAndre Przywara# The bootloader is guaranteed to only run on CPU 0 by the boot ROM. 69a80490c5SAndre PrzywaraCOLD_BOOT_SINGLE_CPU := 1 70a80490c5SAndre Przywara 718f31853bSSamuel Holland# Do not enable SPE (not supported on ARM v8.0). 728f31853bSSamuel HollandENABLE_SPE_FOR_LOWER_ELS := 0 738f31853bSSamuel Holland 748f31853bSSamuel Holland# Do not enable SVE (not supported on ARM v8.0). 758f31853bSSamuel HollandENABLE_SVE_FOR_NS := 0 768f31853bSSamuel Holland 77a80490c5SAndre Przywara# Enable workarounds for Cortex-A53 errata. Allwinner uses at least r0p4. 78a80490c5SAndre PrzywaraERRATA_A53_835769 := 1 79a80490c5SAndre PrzywaraERRATA_A53_843419 := 1 80a80490c5SAndre PrzywaraERRATA_A53_855873 := 1 8174665119SSamuel HollandERRATA_A53_1530924 := 1 82a80490c5SAndre Przywara 833d36d8e6SSamuel Holland# The traditional U-Boot load address is 160MB into DRAM. 843d36d8e6SSamuel HollandPRELOADED_BL33_BASE ?= 0x4a000000 853d36d8e6SSamuel Holland 86a80490c5SAndre Przywara# The reset vector can be changed for each CPU. 87a80490c5SAndre PrzywaraPROGRAMMABLE_RESET_ADDRESS := 1 88a80490c5SAndre Przywara 89a80490c5SAndre Przywara# Allow mapping read-only data as execute-never. 90a80490c5SAndre PrzywaraSEPARATE_CODE_AND_RODATA := 1 91a80490c5SAndre Przywara 92a80490c5SAndre Przywara# BL31 gets loaded alongside BL33 (U-Boot) by U-Boot's SPL 93a80490c5SAndre PrzywaraRESET_TO_BL31 := 1 9443060513SAndre Przywara 958f31853bSSamuel Holland# This platform is single-cluster and does not require coherency setup. 968f31853bSSamuel HollandWARMBOOT_ENABLE_DCACHE_EARLY := 1 97