On 2/13/19 9:46 PM, Lokesh Vutla wrote: > > > On 14/02/19 12:07 AM, Andrew F. Davis wrote: >> K3 HS devices require signed binaries for boot, use the SECDEV tools >> to sign the boot artifacts during build. >> >> Signed-off-by: Andrew F. Davis <a...@ti.com> >> --- >> MAINTAINERS | 1 + >> arch/arm/mach-k3/config.mk | 25 ++++++++++++++++++ >> arch/arm/mach-k3/config_secure.mk | 44 +++++++++++++++++++++++++++++++ >> tools/k3_fit_atf.sh | 8 ++++-- >> 4 files changed, 76 insertions(+), 2 deletions(-) >> create mode 100644 arch/arm/mach-k3/config_secure.mk >> >> diff --git a/MAINTAINERS b/MAINTAINERS >> index 18cdca9447..ac6bd8cfca 100644 >> --- a/MAINTAINERS >> +++ b/MAINTAINERS >> @@ -717,6 +717,7 @@ F: arch/arm/mach-omap2/omap5/sec_entry_cpu1.S >> F: arch/arm/mach-omap2/sec-common.c >> F: arch/arm/mach-omap2/config_secure.mk >> F: arch/arm/mach-k3/security.c >> +F: arch/arm/mach-k3/config_secure.mk >> F: configs/am335x_hs_evm_defconfig >> F: configs/am335x_hs_evm_uart_defconfig >> F: configs/am43xx_hs_evm_defconfig >> diff --git a/arch/arm/mach-k3/config.mk b/arch/arm/mach-k3/config.mk >> index be00d79fb0..2d8f61f9db 100644 >> --- a/arch/arm/mach-k3/config.mk >> +++ b/arch/arm/mach-k3/config.mk >> @@ -36,6 +36,14 @@ cmd_gencert = cat $(srctree)/tools/k3_x509template.txt | >> sed $(SED_OPTS) > u-boo >> # If external key is not provided, generate key using openssl. >> ifeq ($(CONFIG_SYS_K3_KEY), "") >> KEY=u-boot-spl-eckey.pem >> +# On HS use real key or warn if not available >> +ifeq ($(CONFIG_TI_SECURE_DEVICE),y) >> +ifneq ($(wildcard $(TI_SECURE_DEV_PKG)/keys/custMpk.pem),) >> +KEY=$(TI_SECURE_DEV_PKG)/keys/custMpk.pem >> +else >> +$(warning "WARNING: signing key not found. Random key will NOT work on HS >> hardware!") >> +endif >> +endif >> else >> KEY=$(patsubst "%",$(srctree)/%,$(CONFIG_SYS_K3_KEY)) >> endif >> @@ -65,6 +73,15 @@ ALL-y += tiboot3.bin >> endif >> >> ifdef CONFIG_ARM64 >> +ifeq ($(CONFIG_TI_SECURE_DEVICE),y) >> +SPL_ITS := u-boot-spl-k3_HS.its >> +$(SPL_ITS): FORCE >> + IS_HS=1 \ >> + $(srctree)/tools/k3_fit_atf.sh \ >> + $(patsubst %,$(obj)/dts/%.dtb,$(subst ",,$(CONFIG_SPL_OF_LIST))) > $@ >> + >> +ALL-y += tispl.bin_HS >> +else >> SPL_ITS := u-boot-spl-k3.its >> $(SPL_ITS): FORCE >> $(srctree)/tools/k3_fit_atf.sh \ >> @@ -72,7 +89,15 @@ $(SPL_ITS): FORCE >> >> ALL-y += tispl.bin >> endif >> +endif >> + >> +else >> >> +ifeq ($(CONFIG_TI_SECURE_DEVICE),y) >> +ALL-y += u-boot.img_HS >> else >> ALL-y += u-boot.img >> endif >> +endif >> + >> +include $(srctree)/arch/arm/mach-k3/config_secure.mk >> diff --git a/arch/arm/mach-k3/config_secure.mk >> b/arch/arm/mach-k3/config_secure.mk >> new file mode 100644 >> index 0000000000..6d63c57665 >> --- /dev/null >> +++ b/arch/arm/mach-k3/config_secure.mk >> @@ -0,0 +1,44 @@ >> +# SPDX-License-Identifier: GPL-2.0 >> +# >> +# Copyright (C) 2018 Texas Instruments, Incorporated - http://www.ti.com/ >> +# Andrew F. Davis <a...@ti.com> >> + >> +quiet_cmd_k3secureimg = SECURE $@ >> +ifneq ($(TI_SECURE_DEV_PKG),) >> +ifneq ($(wildcard $(TI_SECURE_DEV_PKG)/scripts/secure-binary-image.sh),) >> +cmd_k3secureimg = $(TI_SECURE_DEV_PKG)/scripts/secure-binary-image.sh \ >> + $< $@ \ >> + $(if $(KBUILD_VERBOSE:1=), >/dev/null) >> +else >> +cmd_k3secureimg = echo "WARNING:" \ >> + "$(TI_SECURE_DEV_PKG)/scripts/secure-binary-image.sh not found." \ >> + "$@ was NOT secured!"; cp $< $@ >> +endif >> +else >> +cmd_k3secureimg = echo "WARNING: TI_SECURE_DEV_PKG environment" \ >> + "variable must be defined for TI secure devices." \ >> + "$@ was NOT secured!"; cp $< $@ >> +endif >> + >> +%.dtb_HS: %.dtb FORCE >> + $(call if_changed,k3secureimg) >> + >> +$(obj)/u-boot-spl-nodtb.bin_HS: $(obj)/u-boot-spl-nodtb.bin FORCE >> + $(call if_changed,k3secureimg) >> + >> +tispl.bin_HS: $(obj)/u-boot-spl-nodtb.bin_HS $(patsubst >> %,$(obj)/dts/%.dtb_HS,$(subst ",,$(CONFIG_SPL_OF_LIST))) $(SPL_ITS) FORCE >> + $(call if_changed,mkfitimage) >> + >> +MKIMAGEFLAGS_u-boot.img_HS = -f auto -A $(ARCH) -T firmware -C none -O >> u-boot \ >> + -a $(CONFIG_SYS_TEXT_BASE) -e $(CONFIG_SYS_UBOOT_START) \ >> + -n "U-Boot $(UBOOTRELEASE) for $(BOARD) board" -E \ >> + $(patsubst %,-b arch/$(ARCH)/dts/%.dtb_HS,$(subst ",,$(CONFIG_OF_LIST))) > > I guess these HS postfixed dtbs will never get cleaned. I see the same issue > with other TI secure devices as well. Can you update the clean rules as well? >
tiboot3.bin and tispl.bin also don't seem to be getting cleaned. I tried adding them to clean-files and CLEAN_FILES, neither worked. Outside of manually deleting them on an appended clean rule I don't know what the recommended trick is for this. > Thanks and regards, > Lokesh > >> + >> +OF_LIST_TARGETS = $(patsubst %,arch/$(ARCH)/dts/%.dtb,$(subst >> ",,$(CONFIG_OF_LIST))) >> +$(OF_LIST_TARGETS): dtbs >> + >> +u-boot-nodtb.bin_HS: u-boot-nodtb.bin FORCE >> + $(call if_changed,k3secureimg) >> + >> +u-boot.img_HS: u-boot-nodtb.bin_HS u-boot.img $(patsubst >> %.dtb,%.dtb_HS,$(OF_LIST_TARGETS)) FORCE >> + $(call if_changed,mkimage) >> diff --git a/tools/k3_fit_atf.sh b/tools/k3_fit_atf.sh >> index 430b5ca616..4e9f69c087 100755 >> --- a/tools/k3_fit_atf.sh >> +++ b/tools/k3_fit_atf.sh >> @@ -21,6 +21,10 @@ if [ ! -f $TEE ]; then >> TEE=/dev/null >> fi >> >> +if [ ! -z "$IS_HS" ]; then >> + HS_APPEND=_HS >> +fi >> + >> cat << __HEADER_EOF >> /dts-v1/; >> >> @@ -51,7 +55,7 @@ cat << __HEADER_EOF >> }; >> spl { >> description = "SPL (64-bit)"; >> - data = /incbin/("spl/u-boot-spl-nodtb.bin"); >> + data = /incbin/("spl/u-boot-spl-nodtb.bin$HS_APPEND"); >> type = "standalone"; >> os = "U-Boot"; >> arch = "arm64"; >> @@ -66,7 +70,7 @@ do >> cat << __FDT_IMAGE_EOF >> $(basename $dtname) { >> description = "$(basename $dtname .dtb)"; >> - data = /incbin/("$dtname"); >> + data = /incbin/("$dtname$HS_APPEND"); >> type = "flat_dt"; >> arch = "arm"; >> compression = "none"; >> _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot