blob: d466aa1ca4ffaf082240df13caaf1fda04aacbec [file] [log] [blame]
Masahiro Yamada574388c2016-09-03 11:37:40 +09001#
Arvind Ram Prakash11b9b492022-11-22 14:41:00 -06002# Copyright (c) 2017-2023, ARM Limited and Contributors. All rights reserved.
Masahiro Yamada574388c2016-09-03 11:37:40 +09003#
4# SPDX-License-Identifier: BSD-3-Clause
5#
6
Arvind Ram Prakash11b9b492022-11-22 14:41:00 -06007override RESET_TO_BL2 := 1
Masahiro Yamadac9422fb2018-01-22 18:35:16 +09008override COLD_BOOT_SINGLE_CPU := 1
Masahiro Yamadac9422fb2018-01-22 18:35:16 +09009override PROGRAMMABLE_RESET_ADDRESS := 1
10override USE_COHERENT_MEM := 1
Masahiro Yamadac9422fb2018-01-22 18:35:16 +090011override ENABLE_SVE_FOR_NS := 0
Masahiro Yamada542ed412020-01-17 13:46:48 +090012
13# Disabling ENABLE_PIE saves memory footprint a lot, but you need to adjust
14# UNIPHIER_MEM_BASE so that all TF images are loaded at their link addresses.
Masahiro Yamada2943c772020-01-17 13:45:32 +090015override ENABLE_PIE := 1
Masahiro Yamada574388c2016-09-03 11:37:40 +090016
Masahiro Yamada9c3da382020-03-26 13:18:48 +090017ALLOW_RO_XLAT_TABLES := 1
18
19ifeq ($(ALLOW_RO_XLAT_TABLES),1)
Masahiro Yamada1adc5f52020-04-01 14:28:24 +090020BL31_CPPFLAGS += -DPLAT_RO_XLAT_TABLES
21BL32_CPPFLAGS += -DPLAT_RO_XLAT_TABLES
Masahiro Yamada9c3da382020-03-26 13:18:48 +090022endif
23
Masahiro Yamada52674702020-04-02 14:03:53 +090024# The dynamic xlat table is only used in BL2
25BL2_CPPFLAGS += -DPLAT_XLAT_TABLES_DYNAMIC
26
Masahiro Yamada574388c2016-09-03 11:37:40 +090027# Cortex-A53 revision r0p4-51rel0
28# needed for LD20, unneeded for LD11, PXs3 (no ACE)
29ERRATA_A53_855873 := 1
30
31FIP_ALIGN := 512
32
33ifeq ($(NEED_BL32),yes)
34$(eval $(call add_define,UNIPHIER_LOAD_BL32))
35endif
36
Douglas Raillard7dd775a2017-09-25 17:48:20 +010037# Libraries
38include lib/xlat_tables_v2/xlat_tables.mk
39
Masahiro Yamada574388c2016-09-03 11:37:40 +090040PLAT_PATH := plat/socionext/uniphier
41PLAT_INCLUDES := -I$(PLAT_PATH)/include
42
Masahiro Yamada75bfecb2017-12-19 11:56:05 +090043# common sources for BL2, BL31 (and BL32 if SPD=tspd)
Masahiro Yamadaca8b80e2019-07-02 22:03:16 +090044PLAT_BL_COMMON_SOURCES += plat/common/aarch64/crash_console_helpers.S \
Masahiro Yamada574388c2016-09-03 11:37:40 +090045 $(PLAT_PATH)/uniphier_console.S \
Masahiro Yamadaca8b80e2019-07-02 22:03:16 +090046 $(PLAT_PATH)/uniphier_console_setup.c \
Masahiro Yamada574388c2016-09-03 11:37:40 +090047 $(PLAT_PATH)/uniphier_helpers.S \
48 $(PLAT_PATH)/uniphier_soc_info.c \
Douglas Raillard7dd775a2017-09-25 17:48:20 +010049 $(PLAT_PATH)/uniphier_xlat_setup.c \
50 ${XLAT_TABLES_LIB_SRCS}
Masahiro Yamada574388c2016-09-03 11:37:40 +090051
Masahiro Yamada574388c2016-09-03 11:37:40 +090052BL2_SOURCES += common/desc_image_load.c \
Masahiro Yamada75bfecb2017-12-19 11:56:05 +090053 drivers/io/io_block.c \
54 drivers/io/io_fip.c \
55 drivers/io/io_memmap.c \
56 drivers/io/io_storage.c \
57 lib/cpus/aarch64/cortex_a53.S \
58 lib/cpus/aarch64/cortex_a72.S \
Masahiro Yamada574388c2016-09-03 11:37:40 +090059 $(PLAT_PATH)/uniphier_bl2_setup.c \
Masahiro Yamada75bfecb2017-12-19 11:56:05 +090060 $(PLAT_PATH)/uniphier_boot_device.c \
61 $(PLAT_PATH)/uniphier_emmc.c \
Masahiro Yamada574388c2016-09-03 11:37:40 +090062 $(PLAT_PATH)/uniphier_image_desc.c \
Masahiro Yamada75bfecb2017-12-19 11:56:05 +090063 $(PLAT_PATH)/uniphier_io_storage.c \
64 $(PLAT_PATH)/uniphier_nand.c \
Masahiro Yamada574388c2016-09-03 11:37:40 +090065 $(PLAT_PATH)/uniphier_scp.c \
Masahiro Yamada75bfecb2017-12-19 11:56:05 +090066 $(PLAT_PATH)/uniphier_usb.c
Masahiro Yamada574388c2016-09-03 11:37:40 +090067
Alexei Fedorov84f1b5d2020-03-23 18:45:17 +000068# Include GICv3 driver files
69include drivers/arm/gic/v3/gicv3.mk
70
Masahiro Yamada574388c2016-09-03 11:37:40 +090071BL31_SOURCES += drivers/arm/cci/cci.c \
Alexei Fedorov84f1b5d2020-03-23 18:45:17 +000072 ${GICV3_SOURCES} \
Masahiro Yamada574388c2016-09-03 11:37:40 +090073 lib/cpus/aarch64/cortex_a53.S \
74 lib/cpus/aarch64/cortex_a72.S \
75 plat/common/plat_gicv3.c \
76 plat/common/plat_psci_common.c \
77 $(PLAT_PATH)/uniphier_bl31_setup.c \
Masahiro Yamadaf36272d2019-07-08 13:46:44 +090078 $(PLAT_PATH)/uniphier_boot_device.c \
Masahiro Yamada574388c2016-09-03 11:37:40 +090079 $(PLAT_PATH)/uniphier_cci.c \
80 $(PLAT_PATH)/uniphier_gicv3.c \
81 $(PLAT_PATH)/uniphier_psci.c \
82 $(PLAT_PATH)/uniphier_scp.c \
83 $(PLAT_PATH)/uniphier_smp.S \
84 $(PLAT_PATH)/uniphier_syscnt.c \
85 $(PLAT_PATH)/uniphier_topology.c
86
87ifeq (${TRUSTED_BOARD_BOOT},1)
88
89include drivers/auth/mbedtls/mbedtls_crypto.mk
90include drivers/auth/mbedtls/mbedtls_x509.mk
91
Masahiro Yamada75bfecb2017-12-19 11:56:05 +090092BL2_SOURCES += drivers/auth/auth_mod.c \
Masahiro Yamada574388c2016-09-03 11:37:40 +090093 drivers/auth/crypto_mod.c \
94 drivers/auth/img_parser_mod.c \
Manish V Badarkhe043fd622020-05-16 16:36:39 +010095 drivers/auth/tbbr/tbbr_cot_common.c \
96 drivers/auth/tbbr/tbbr_cot_bl2.c \
Masahiro Yamada574388c2016-09-03 11:37:40 +090097 plat/common/tbbr/plat_tbbr.c \
Masahiro Yamada9679c9c2017-06-14 20:38:12 +090098 $(PLAT_PATH)/uniphier_rotpk.S \
Masahiro Yamada574388c2016-09-03 11:37:40 +090099 $(PLAT_PATH)/uniphier_tbbr.c
100
Masahiro Yamada9679c9c2017-06-14 20:38:12 +0900101ROT_KEY = $(BUILD_PLAT)/rot_key.pem
102ROTPK_HASH = $(BUILD_PLAT)/rotpk_sha256.bin
103
104$(eval $(call add_define_val,ROTPK_HASH,'"$(ROTPK_HASH)"'))
Masahiro Yamada9679c9c2017-06-14 20:38:12 +0900105$(BUILD_PLAT)/bl2/uniphier_rotpk.o: $(ROTPK_HASH)
106
107certificates: $(ROT_KEY)
Masahiro Yamadadf8fab92017-11-04 03:14:03 +0900108$(ROT_KEY): | $(BUILD_PLAT)
Masahiro Yamada9679c9c2017-06-14 20:38:12 +0900109 @echo " OPENSSL $@"
Salome Thirot0b35da32022-07-14 16:14:15 +0100110 $(Q)${OPENSSL_BIN_PATH}/openssl genrsa 2048 > $@ 2>/dev/null
Masahiro Yamada9679c9c2017-06-14 20:38:12 +0900111
112$(ROTPK_HASH): $(ROT_KEY)
113 @echo " OPENSSL $@"
Salome Thirot0b35da32022-07-14 16:14:15 +0100114 $(Q)${OPENSSL_BIN_PATH}/openssl rsa -in $< -pubout -outform DER 2>/dev/null |\
115 ${OPENSSL_BIN_PATH}/openssl dgst -sha256 -binary > $@ 2>/dev/null
Masahiro Yamada9679c9c2017-06-14 20:38:12 +0900116
Masahiro Yamada574388c2016-09-03 11:37:40 +0900117endif
118
Masahiro Yamada4ff71af2018-01-26 11:42:01 +0900119ifeq (${FIP_GZIP},1)
120
121include lib/zlib/zlib.mk
122
123BL2_SOURCES += common/image_decompress.c \
124 $(ZLIB_SOURCES)
125
126$(eval $(call add_define,UNIPHIER_DECOMPRESS_GZIP))
127
128# compress all images loaded by BL2
129SCP_BL2_PRE_TOOL_FILTER := GZIP
130BL31_PRE_TOOL_FILTER := GZIP
131BL32_PRE_TOOL_FILTER := GZIP
132BL33_PRE_TOOL_FILTER := GZIP
133
134endif
135
Masahiro Yamada75bfecb2017-12-19 11:56:05 +0900136.PHONY: bl2_gzip
137bl2_gzip: $(BUILD_PLAT)/bl2.bin.gz
138%.gz: %
Masahiro Yamadae56b5cd2017-12-20 01:37:15 +0900139 @echo " GZIP $@"
Masahiro Yamadab13af2e2018-01-04 12:59:11 +0900140 $(Q)gzip -n -f -9 $< --stdout > $@