1 # SPDX-License-Identifier: GPL-2.0+
3 # Copyright (C) 2017-2018 Texas Instruments Incorporated - http://www.ti.com/
4 # Lokesh Vutla <lokeshvutla@ti.com>
8 # Openssl is required to generate x509 certificate.
9 # Error out if openssl is not available.
10 ifeq ($(shell which openssl),)
11 $(error "No openssl in $(PATH), consider installing openssl")
14 IMAGE_SIZE= $(shell cat $(obj)/u-boot-spl.bin | wc -c)
15 MAX_SIZE= $(shell printf "%d" $(CONFIG_SYS_K3_MAX_DOWNLODABLE_IMAGE_SIZE))
17 ifeq ($(CONFIG_SYS_K3_KEY), "")
19 # On HS use real key or warn if not available
20 ifeq ($(CONFIG_TI_SECURE_DEVICE),y)
21 ifneq ($(wildcard $(TI_SECURE_DEV_PKG)/keys/custMpk.pem),)
22 KEY=$(TI_SECURE_DEV_PKG)/keys/custMpk.pem
24 $(warning "WARNING: signing key not found. Random key will NOT work on HS hardware!")
28 KEY=$(patsubst "%",$(srctree)/%,$(CONFIG_SYS_K3_KEY))
31 # tiboot3.bin is mandated by ROM and ROM only supports R5 boot.
32 # So restrict tiboot3.bin creation for CPU_V7R.
34 image_check: $(obj)/u-boot-spl.bin FORCE
35 @if [ $(IMAGE_SIZE) -gt $(MAX_SIZE) ]; then \
36 echo "===============================================" >&2; \
37 echo "ERROR: Final Image too big. " >&2; \
38 echo "$< size = $(IMAGE_SIZE), max size = $(MAX_SIZE)" >&2; \
39 echo "===============================================" >&2; \
43 tiboot3.bin: image_check FORCE
44 $(srctree)/tools/k3_gen_x509_cert.sh -c 16 -b $(obj)/u-boot-spl.bin \
45 -o $@ -l $(CONFIG_SPL_TEXT_BASE) -k $(KEY)
51 ifeq ($(CONFIG_TI_SECURE_DEVICE),y)
52 SPL_ITS := u-boot-spl-k3_HS.its
55 $(srctree)/tools/k3_fit_atf.sh \
56 $(patsubst %,$(obj)/dts/%.dtb,$(subst ",,$(CONFIG_SPL_OF_LIST))) > $@
60 SPL_ITS := u-boot-spl-k3.its
62 $(srctree)/tools/k3_fit_atf.sh \
63 $(patsubst %,$(obj)/dts/%.dtb,$(subst ",,$(CONFIG_SPL_OF_LIST))) > $@
71 ifeq ($(CONFIG_TI_SECURE_DEVICE),y)
72 ALL-y += u-boot.img_HS
78 include $(srctree)/arch/arm/mach-k3/config_secure.mk