blob: 2c0ed92a3cc948bb4d281d3c9c8837cec4d1d75c [file] [log] [blame]
Masahiro Yamada574388c2016-09-03 11:37:40 +09001#
Masahiro Yamada2943c772020-01-17 13:45:32 +09002# Copyright (c) 2017-2020, ARM Limited and Contributors. All rights reserved.
Masahiro Yamada574388c2016-09-03 11:37:40 +09003#
4# SPDX-License-Identifier: BSD-3-Clause
5#
6
Masahiro Yamada75bfecb2017-12-19 11:56:05 +09007override BL2_AT_EL3 := 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 \
95 drivers/auth/tbbr/tbbr_cot.c \
96 plat/common/tbbr/plat_tbbr.c \
Masahiro Yamada9679c9c2017-06-14 20:38:12 +090097 $(PLAT_PATH)/uniphier_rotpk.S \
Masahiro Yamada574388c2016-09-03 11:37:40 +090098 $(PLAT_PATH)/uniphier_tbbr.c
99
Masahiro Yamada9679c9c2017-06-14 20:38:12 +0900100ROT_KEY = $(BUILD_PLAT)/rot_key.pem
101ROTPK_HASH = $(BUILD_PLAT)/rotpk_sha256.bin
102
103$(eval $(call add_define_val,ROTPK_HASH,'"$(ROTPK_HASH)"'))
Masahiro Yamada9679c9c2017-06-14 20:38:12 +0900104$(BUILD_PLAT)/bl2/uniphier_rotpk.o: $(ROTPK_HASH)
105
106certificates: $(ROT_KEY)
Masahiro Yamadadf8fab92017-11-04 03:14:03 +0900107$(ROT_KEY): | $(BUILD_PLAT)
Masahiro Yamada9679c9c2017-06-14 20:38:12 +0900108 @echo " OPENSSL $@"
109 $(Q)openssl genrsa 2048 > $@ 2>/dev/null
110
111$(ROTPK_HASH): $(ROT_KEY)
112 @echo " OPENSSL $@"
113 $(Q)openssl rsa -in $< -pubout -outform DER 2>/dev/null |\
114 openssl dgst -sha256 -binary > $@ 2>/dev/null
115
Masahiro Yamada574388c2016-09-03 11:37:40 +0900116endif
117
Masahiro Yamada4ff71af2018-01-26 11:42:01 +0900118ifeq (${FIP_GZIP},1)
119
120include lib/zlib/zlib.mk
121
122BL2_SOURCES += common/image_decompress.c \
123 $(ZLIB_SOURCES)
124
125$(eval $(call add_define,UNIPHIER_DECOMPRESS_GZIP))
126
127# compress all images loaded by BL2
128SCP_BL2_PRE_TOOL_FILTER := GZIP
129BL31_PRE_TOOL_FILTER := GZIP
130BL32_PRE_TOOL_FILTER := GZIP
131BL33_PRE_TOOL_FILTER := GZIP
132
133endif
134
Masahiro Yamada75bfecb2017-12-19 11:56:05 +0900135.PHONY: bl2_gzip
136bl2_gzip: $(BUILD_PLAT)/bl2.bin.gz
137%.gz: %
Masahiro Yamadae56b5cd2017-12-20 01:37:15 +0900138 @echo " GZIP $@"
Masahiro Yamadab13af2e2018-01-04 12:59:11 +0900139 $(Q)gzip -n -f -9 $< --stdout > $@