Newer
Older
#!/usr/bin/make -f
#
# Sign/encrypt a Linux Kernel zImage, a DTB file, and a rootfs (to be used
# as an initramfs) into a FIT image tree blob for loading through U-Boot on a
# TI High Security (HS) SoC.
#
# Copyright (C) 2016-2017, Texas Instruments, Incorporated - http://www.ti.com/
# Andreas Dannenberg <dannenberg@ti.com>
# Andrew F. Davis <afd@ti.com>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
#
ITB ?= fitImage
ITS ?= $(ITB:=.its)
SEC_IMAGES := $(shell sed -n 's/.*\/incbin\/.*\"\(.*\.sec\)\".*/\1/p' $(ITS))
.PHONY: all
all: $(ITB)
# Invoke signing tool from the TI Secure Dev package to sign and optionally
# encrypt a binary blob. This tool is accessed through the use of the
# TI_SECURE_DEV_PKG environmental variable in the same fashion as it is used
# when building secure U-Boot for TI devices.
%.sec: %
ifneq ($(TI_SECURE_DEV_PKG),)
ifneq ($(wildcard $(TI_SECURE_DEV_PKG)/scripts/secure-binary-image.sh),)
$(TI_SECURE_DEV_PKG)/scripts/secure-binary-image.sh $(patsubst %.sec,%,$@) $@
else
@echo "ERROR: $(TI_SECURE_DEV_PKG)/scripts/secure-binary-image.sh not found." \
"$@ was NOT created!"; exit 1
endif
else
@echo "ERROR: TI_SECURE_DEV_PKG environment variable must be defined" \
"for TI secure devices. $@ was NOT created!"; exit 1
endif
# Compile a FIT image tree source file describing the final image tree blob.
# Use the mkimage tool that comes with U-Boot to make sure we have the latest/
# greatest as we are using advanced features such as FIT...
MKIMAGE ?= mkimage
$(ITB): $(ITS) $(SEC_IMAGES)
$(MKIMAGE) -f $< -r $@
.PHONY: clean
clean:
-$(RM) -v $(SEC_IMAGES)
-$(RM) -v $(ITB)