#
# Copyright (c) 2018, ARM Limited and Contributors. All rights reserved.
#
# SPDX-License-Identifier: BSD-3-Clause
#

# indicate the reset vector address can be programmed
PROGRAMMABLE_RESET_ADDRESS	:=	1
USE_COHERENT_MEM		:=	0
RESET_TO_BL31			:=	0
ENABLE_STACK_PROTECTOR		:=	0
LS1043_GIC_SOURCES		:=	drivers/arm/gic/common/gic_common.c	\
					drivers/arm/gic/v2/gicv2_main.c		\
					drivers/arm/gic/v2/gicv2_helpers.c	\
					plat/common/plat_gicv2.c		\
					plat/layerscape/board/ls1043/ls_gic.c


LS1043_INTERCONNECT_SOURCES	:= 	drivers/arm/cci/cci.c

LS1043_SECURITY_SOURCES 	:=	plat/layerscape/common/ls_tzc380.c	\
					plat/layerscape/board/ls1043/ls1043_security.c

PLAT_INCLUDES			:=	-Iplat/layerscape/board/ls1043/include   \
					-Iplat/layerscape/common/include	\
					-Iinclude/lib


PLAT_BL_COMMON_SOURCES		:=	plat/layerscape/common/aarch64/ls_console.S

LS1043_CPU_LIBS			:=	lib/cpus/${ARCH}/aem_generic.S

LS1043_CPU_LIBS			+=	lib/cpus/aarch64/cortex_a53.S

BL1_SOURCES			+= 	plat/layerscape/board/ls1043/ls1043_bl1_setup.c		\
					plat/layerscape/board/ls1043/ls1043_err.c			\
					drivers/delay_timer/delay_timer.c \

BL1_SOURCES     		+=	plat/layerscape/board/ls1043/${ARCH}/ls1043_helpers.S \
					${LS1043_CPU_LIBS}					\
					${LS1043_INTERCONNECT_SOURCES}		\
					$(LS1043_SECURITY_SOURCES)


BL2_SOURCES			+=	drivers/delay_timer/delay_timer.c		\
					plat/layerscape/board/ls1043/ls1043_bl2_setup.c		\
					plat/layerscape/board/ls1043/ls1043_err.c			\
					${LS1043_SECURITY_SOURCES}


BL31_SOURCES			+=	plat/layerscape/board/ls1043/ls1043_bl31_setup.c		\
					plat/layerscape/board/ls1043/ls1043_topology.c		\
					plat/layerscape/board/ls1043/aarch64/ls1043_helpers.S	\
					plat/layerscape/board/ls1043/ls1043_psci.c		\
					drivers/delay_timer/delay_timer.c		\
					${LS1043_CPU_LIBS}					\
					${LS1043_GIC_SOURCES}				\
					${LS1043_INTERCONNECT_SOURCES}			\
					${LS1043_SECURITY_SOURCES}

# Disable the PSCI platform compatibility layer
MULTI_CONSOLE_API		:=	1

# Enable workarounds for selected Cortex-A53 erratas.
ERRATA_A53_855873		:=	1

ifneq (${ENABLE_STACK_PROTECTOR},0)
PLAT_BL_COMMON_SOURCES		+=	plat/layerscape/board/ls1043/ls1043_stack_protector.c
endif

ifeq (${ARCH},aarch32)
    NEED_BL32 := yes
endif

include plat/layerscape/common/ls_common.mk
