F: boot/ti-k3-boot-firmware/
+F: boot/ti-k3-image-gen/
F: boot/ti-k3-r5-loader/
F: boot/ti-k3-boot-firmware/
+F: boot/ti-k3-image-gen/
F: boot/ti-k3-r5-loader/
source "boot/shim/Config.in"
source "boot/syslinux/Config.in"
source "boot/ti-k3-boot-firmware/Config.in"
+source "boot/ti-k3-image-gen/Config.in"
source "boot/ti-k3-r5-loader/Config.in"
source "boot/uboot/Config.in"
source "boot/vexpress-firmware/Config.in"
--- /dev/null
+config BR2_TARGET_TI_K3_IMAGE_GEN
+ bool "ti-k3-image-gen"
+ depends on BR2_TARGET_TI_K3_R5_LOADER
+ select BR2_TARGET_TI_K3_BOOT_FIRMWARE
+ # We need FIT support in uboot-tools, which is why we select a
+ # host package
+ select BR2_PACKAGE_HOST_UBOOT_TOOLS
+ select BR2_PACKAGE_HOST_UBOOT_TOOLS_FIT_SUPPORT
+ help
+ Use TI's k3-image-gen to build a separate bare metal boot
+ binary from a separate SPL that is running on the R5 core.
+
+ https://git.ti.com/cgit/k3-image-gen/k3-image-gen/
+
+if BR2_TARGET_TI_K3_IMAGE_GEN
+choice
+ prompt "SoC family"
+
+config BR2_TARGET_TI_K3_IMAGE_GEN_SOC_AM62AX
+ bool "am62ax"
+
+config BR2_TARGET_TI_K3_IMAGE_GEN_SOC_AM62X
+ bool "am62x"
+
+config BR2_TARGET_TI_K3_IMAGE_GEN_SOC_AM64X
+ bool "am64x"
+
+config BR2_TARGET_TI_K3_IMAGE_GEN_SOC_AM65X
+ bool "am65x"
+
+endchoice
+
+choice
+ prompt "Security type"
+ help
+ The target SoC security type option for image gen. Valid
+ options are "gp" for General Purpose devices, "hs-fs" for
+ High Security - Field Securable devices, or "hs" for High
+ Security - Security Enforcing devices. Note for all High
+ Security device variants the TI_SECURE_DEV_PKG environmental
+ variable must be defined at build time pointing to a valid
+ core-secdev-k3 folder location, otherwise the build will
+ fail, see
+ https://git.ti.com/cgit/security-development-tools/core-secdev-k3
+
+config BR2_TARGET_TI_K3_IMAGE_GEN_SECTYPE_GP
+ bool "gp"
+
+config BR2_TARGET_TI_K3_IMAGE_GEN_SECTYPE_HS_FS
+ bool "hs-fs"
+
+config BR2_TARGET_TI_K3_IMAGE_GEN_SECTYPE_HS
+ bool "hs"
+
+endchoice
+
+config BR2_TARGET_TI_K3_IMAGE_GEN_SOC
+ string
+ default "am62ax" if BR2_TARGET_TI_K3_IMAGE_GEN_SOC_AM62AX
+ default "am62x" if BR2_TARGET_TI_K3_IMAGE_GEN_SOC_AM62X
+ default "am64x" if BR2_TARGET_TI_K3_IMAGE_GEN_SOC_AM64X
+ default "am65x" if BR2_TARGET_TI_K3_IMAGE_GEN_SOC_AM65X
+
+config BR2_TARGET_TI_K3_IMAGE_GEN_FW_TYPE
+ string
+ default "ti-fs" if BR2_TARGET_TI_K3_IMAGE_GEN_SOC_AM62AX
+ default "ti-fs" if BR2_TARGET_TI_K3_IMAGE_GEN_SOC_AM62X
+ default "ti-sci" if BR2_TARGET_TI_K3_IMAGE_GEN_SOC_AM64X
+ default "ti-sci" if BR2_TARGET_TI_K3_IMAGE_GEN_SOC_AM65X
+
+config BR2_TARGET_TI_K3_IMAGE_GEN_SECTYPE
+ string
+ default "gp" if BR2_TARGET_TI_K3_IMAGE_GEN_SECTYPE_GP
+ default "hs-fs" if BR2_TARGET_TI_K3_IMAGE_GEN_SECTYPE_HS_FS
+ default "hs" if BR2_TARGET_TI_K3_IMAGE_GEN_SECTYPE_HS
+
+endif
--- /dev/null
+# Locally calculated
+sha256 f89ea4b1f5c992455b1a682fde48359221b53f3294135df4bf20feea6aea90e4 k3-image-gen-08.06.00.007.tar.gz
+sha256 f012e8d000d711d0539e5b4c812fc1d3a59c10fc1e3d6ea155556f5b78286845 LICENSE
--- /dev/null
+################################################################################
+#
+# ti-k3-image-gen
+#
+################################################################################
+
+TI_K3_IMAGE_GEN_VERSION = 08.06.00.007
+TI_K3_IMAGE_GEN_SITE = https://git.ti.com/cgit/k3-image-gen/k3-image-gen/snapshot
+TI_K3_IMAGE_GEN_SOURCE = k3-image-gen-$(TI_K3_IMAGE_GEN_VERSION).tar.gz
+TI_K3_IMAGE_GEN_LICENSE = BSD-3-Clause
+TI_K3_IMAGE_GEN_LICENSE_FILES = LICENSE
+TI_K3_IMAGE_GEN_INSTALL_IMAGES = YES
+
+# - ti-k3-image-gen is used to build tiboot3.bin, using the
+# r5-u-boot-spl.bin file from the ti-k3-r5-loader package. Hence the
+# dependency on ti-k3-r5-loader.
+# - the ti-k3-image-gen makefiles seem to need some feature from Make
+# v4.0, similar to u-boot.
+TI_K3_IMAGE_GEN_DEPENDENCIES = \
+ host-arm-gnu-toolchain \
+ host-python3 \
+ host-openssl \
+ host-uboot-tools \
+ ti-k3-r5-loader \
+ ti-k3-boot-firmware \
+ $(BR2_MAKE_HOST_DEPENDENCY)
+
+TI_K3_IMAGE_GEN_FW_TYPE = $(call qstrip,$(BR2_TARGET_TI_K3_IMAGE_GEN_FW_TYPE))
+TI_K3_IMAGE_GEN_SOC = $(call qstrip,$(BR2_TARGET_TI_K3_IMAGE_GEN_SOC))
+TI_K3_IMAGE_GEN_SECTYPE = $(call qstrip,$(BR2_TARGET_TI_K3_IMAGE_GEN_SECTYPE))
+
+TI_K3_IMAGE_GEN_SYSFW = $(TI_K3_IMAGE_GEN_FW_TYPE)-firmware-$(TI_K3_IMAGE_GEN_SOC)-$(TI_K3_IMAGE_GEN_SECTYPE).bin
+
+define TI_K3_IMAGE_GEN_CONFIGURE_CMDS
+ cp $(BINARIES_DIR)/ti-sysfw/$(TI_K3_IMAGE_GEN_SYSFW) $(@D)
+endef
+
+define TI_K3_IMAGE_GEN_BUILD_CMDS
+ $(TARGET_MAKE_ENV) \
+ $(BR2_MAKE) -C $(@D) \
+ SOC=$(TI_K3_IMAGE_GEN_SOC) \
+ SOC_TYPE=$(TI_K3_IMAGE_GEN_SECTYPE) \
+ CONFIG=evm \
+ CROSS_COMPILE=$(HOST_DIR)/bin/arm-none-eabi- \
+ SBL=$(BINARIES_DIR)/r5-u-boot-spl.bin \
+ O=$(@D)/tmp \
+ BIN_DIR=$(@D)
+endef
+
+define TI_K3_IMAGE_GEN_INSTALL_IMAGES_CMDS
+ cp $(@D)/tiboot3.bin $(BINARIES_DIR)
+endef
+
+$(eval $(generic-package))