1# SPDX-License-Identifier: GPL-2.0+ 2# 3# Copyright (C) 2017-2018 Texas Instruments Incorporated - http://www.ti.com/ 4# Lokesh Vutla <lokeshvutla@ti.com> 5 6ifdef CONFIG_SPL_BUILD 7 8# Openssl is required to generate x509 certificate. 9# Error out if openssl is not available. 10ifeq ($(shell which openssl),) 11$(error "No openssl in $(PATH), consider installing openssl") 12endif 13 14IMAGE_SIZE= $(shell cat $(obj)/u-boot-spl.bin | wc -c) 15MAX_SIZE= $(shell printf "%d" $(CONFIG_SYS_K3_MAX_DOWNLODABLE_IMAGE_SIZE)) 16 17ifeq ($(CONFIG_SYS_K3_KEY), "") 18KEY="" 19# On HS use real key or warn if not available 20ifeq ($(CONFIG_TI_SECURE_DEVICE),y) 21ifneq ($(wildcard $(TI_SECURE_DEV_PKG)/keys/custMpk.pem),) 22KEY=$(TI_SECURE_DEV_PKG)/keys/custMpk.pem 23else 24$(warning "WARNING: signing key not found. Random key will NOT work on HS hardware!") 25endif 26endif 27else 28KEY=$(patsubst "%",$(srctree)/%,$(CONFIG_SYS_K3_KEY)) 29endif 30 31# tiboot3.bin is mandated by ROM and ROM only supports R5 boot. 32# So restrict tiboot3.bin creation for CPU_V7R. 33ifdef CONFIG_CPU_V7R 34image_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; \ 40 exit 1; \ 41 fi 42 43tiboot3.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) 46 47INPUTS-y += tiboot3.bin 48endif 49 50ifdef CONFIG_ARM64 51 52ifeq ($(CONFIG_SOC_K3_J721E),) 53export DM := /dev/null 54endif 55 56ifeq ($(CONFIG_TI_SECURE_DEVICE),y) 57SPL_ITS := u-boot-spl-k3_HS.its 58$(SPL_ITS): export IS_HS=1 59INPUTS-y += tispl.bin_HS 60else 61SPL_ITS := u-boot-spl-k3.its 62INPUTS-y += tispl.bin 63endif 64 65ifeq ($(CONFIG_SPL_OF_LIST),) 66LIST_OF_DTB := $(CONFIG_DEFAULT_DEVICE_TREE) 67else 68LIST_OF_DTB := $(CONFIG_SPL_OF_LIST) 69endif 70 71quiet_cmd_k3_mkits = MKITS $@ 72cmd_k3_mkits = \ 73 $(srctree)/tools/k3_fit_atf.sh \ 74 $(CONFIG_K3_ATF_LOAD_ADDR) \ 75 $(patsubst %,$(obj)/dts/%.dtb,$(subst ",,$(LIST_OF_DTB))) > $@ 76 77$(SPL_ITS): FORCE 78 $(call cmd,k3_mkits) 79endif 80 81else 82 83ifeq ($(CONFIG_TI_SECURE_DEVICE),y) 84INPUTS-y += u-boot.img_HS 85else 86INPUTS-y += u-boot.img 87endif 88endif 89 90include $(srctree)/arch/arm/mach-k3/config_secure.mk 91