[PATCH v2 09/33] firmware: add ti-linux-firmware submodule

Ahmad Fatoum a.fatoum at pengutronix.de
Mon Jun 16 04:54:13 PDT 2025


Hello Sascha,

On 6/5/25 14:42, Sascha Hauer wrote:
> For K3 SoCs we need several binaries from the ti-linux-firmware
> repository and currently we have to copy the needed files over from the
> repository to firmware/ in barebox. To simplify this expect the
> ti-linux-firmware repository to be checked out or linked at
> firmware/ti-linux-firmware. For further convenience create a git
> submodule for it.

I don't dislike the idea, but I hope that build systems that check out
barebox by git revision instead of tarball won't do a recursive clone by
default, give that this is a 1.30 GiB dependency. I guess we will find out.

At LPC 2024, there was a talk about a "Common git repo for hosting
Boot-firmware", which would lend itself nicely to this and to other
firmware that we expect to be placed into this directory, but I think
things haven't progressed further since then unfortunately.

[1]: https://lpc.events/event/18/contributions/1815/

Cheers,
Ahmad

> 
> Signed-off-by: Sascha Hauer <s.hauer at pengutronix.de>
> ---
>  .gitmodules                    |  3 +++
>  Documentation/boards/ti-k3.rst | 10 +++++-----
>  firmware/ti-linux-firmware     |  1 +
>  images/Makefile.k3             |  6 +++---
>  4 files changed, 12 insertions(+), 8 deletions(-)
> 
> diff --git a/.gitmodules b/.gitmodules
> new file mode 100644
> index 0000000000000000000000000000000000000000..c58f53c29f302f7610c5776d13259a373c17520c
> --- /dev/null
> +++ b/.gitmodules
> @@ -0,0 +1,3 @@
> +[submodule "ti-linux-firmware"]
> +	path = firmware/ti-linux-firmware
> +	url = https://git.ti.com/git/processor-firmware/ti-linux-firmware.git
> diff --git a/Documentation/boards/ti-k3.rst b/Documentation/boards/ti-k3.rst
> index 3bb5103f32378d6fe7413b5f19ca29883444dc69..6cb9eb8edab93e6bf7a74bc24748f9ad11609b20 100644
> --- a/Documentation/boards/ti-k3.rst
> +++ b/Documentation/boards/ti-k3.rst
> @@ -15,10 +15,11 @@ Prerequisites
>  
>  There are several binary blobs required for building barebox for TI K3 SoCs. Find them
>  in git://git.ti.com/processor-firmware/ti-linux-firmware.git. The repository is assumed
> -to be checked out at ``$TI_LINUX_FIRMWARE``. The K3 SoCs boot from a FAT partition on
> -SD/eMMC cards. During the next steps the files are copied to ``$TI_BOOT``. This is assumed
> -to be an empty directory. After the build process copy its contents to a FAT filesystem
> -on an SD/eMMC card.
> +to be checked out at ``firmware/ti-linux-firmware``. Alternatively the barebox repository
> +has a ti-linux-firmware submodule which checks out at the correct place. The K3 SoCs boot
> +from a FAT partition on SD/eMMC cards. During the next steps the files are copied to
> +``$TI_BOOT``. This is assumed to be an empty directory. After the build process copy its
> +contents to a FAT filesystem on an SD/eMMC card.
>  
>  The Cortex-R5 is a 32-bit processors whereas the Cortex-A53 are 64-bit processors, so
>  both 32-bit and 64-bit toolchains are needed::
> @@ -35,7 +36,6 @@ need to be adjusted for other boards.
>  There's a single ``k3-r5_defconfig`` for all K3 boards. This builds the boot images
>  for the Cortex-R5 processors::
>  
> -  cp $TI_LINUX_FIRMWARE/ti-linux-firmware/ti-sysfw/ti-fs-firmware-am62x-gp.bin firmware/
>    export ARCH=arm CROSS_COMPILE=$CROSS_COMPILE_32
>    make k3-r5_defconfig
>    make
> diff --git a/firmware/ti-linux-firmware b/firmware/ti-linux-firmware
> new file mode 160000
> index 0000000000000000000000000000000000000000..10257543a029cc608c9df1c36c83e36ac3dd5b46
> --- /dev/null
> +++ b/firmware/ti-linux-firmware
> @@ -0,0 +1 @@
> +Subproject commit 10257543a029cc608c9df1c36c83e36ac3dd5b46
> diff --git a/images/Makefile.k3 b/images/Makefile.k3
> index 3236a983d10a0df552392762200d8aa20fb2ea44..12db9c59a96eade62679987aedb9b5433cec3c2f 100644
> --- a/images/Makefile.k3
> +++ b/images/Makefile.k3
> @@ -21,9 +21,9 @@ ifdef CONFIG_MACH_K3_CORTEX_R5
>  
>  SYSFWDATA_am625=$(objtree)/arch/arm/mach-k3/combined-sysfw-cfg-am62x.k3cfg
>  DMDATA_am625=$(objtree)/arch/arm/mach-k3/combined-dm-cfg-am62x.k3cfg
> -SYSFW_am625_hs_fs=$(FIRMWARE_DIR)/ti-fs-firmware-am62x-hs-fs-enc.bin
> -SYSFW_am625_gp=$(FIRMWARE_DIR)/ti-fs-firmware-am62x-gp.bin
> -INNERDATA_am625=$(FIRMWARE_DIR)/ti-fs-firmware-am62x-hs-fs-cert.bin
> +SYSFW_am625_hs_fs=$(FIRMWARE_DIR)/ti-linux-firmware/ti-sysfw/ti-fs-firmware-am62x-hs-fs-enc.bin
> +SYSFW_am625_gp=$(FIRMWARE_DIR)/ti-linux-firmware/ti-sysfw/ti-fs-firmware-am62x-gp.bin
> +INNERDATA_am625=$(FIRMWARE_DIR)/ti-linux-firmware/ti-sysfw/ti-fs-firmware-am62x-hs-fs-cert.bin
>  KEY_custmpk=$(srctree)/arch/arm/mach-k3/custMpk.pem
>  KEY_degenerate=$(srctree)/arch/arm/mach-k3/ti-degenerate-key.pem
>  
> 

-- 
Pengutronix e.K.                  |                             |
Steuerwalder Str. 21              | http://www.pengutronix.de/  |
31137 Hildesheim, Germany         | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686  | Fax:   +49-5121-206917-5555 |




More information about the barebox mailing list