Buildroot sources for SD/MMC2 Boot

I have been following the sequence of notes from the bbai64 gitlab repo to build the bootloader sequence as described in the PROCESSOR SDK
I am also using this wiki article for reference on sources

I was able to get everything to build and begin to boot. Here is what I am getting form the serial console:

U-Boot SPL 2021.01 (Aug 10 2022 - 11:59:46 +0000)
Model: Texas Instruments K3 J721E SoC
EEPROM not available at 0x50, trying to read at 0x51
Board: BBONEAI-64-B0- rev B0
SYSFW ABI: 3.1 (firmware rev 0x0015 '21.9.1--v2021.09a (Terrific Lla')
TLB table from ffffc000 to 00000000
>>SPL: board_init_r()
Trying to boot from MMC2
spl: mmc boot mode: fs
board_fit_image_post_process: processing image: addr=70000000, size=39848, os=arm-trusted-firmware
board_fit_image_post_process: matched image for ID 0
board_fit_image_post_process: processing image: addr=9e800000, size=407376, os=tee
board_fit_image_post_process: matched image for ID 1
spl_load_fit_image: Skip load 'dm': image size is 0!
board_fit_image_post_process: processing image: addr=80080000, size=161480, os=U-Boot
board_fit_image_post_process: matched image for ID 2
board_fit_image_post_process: processing image: addr=ffffffff, size=10103, os=
Unsupported OS image.. Jumping nevertheless..
loaded - jumping to U-Boot...
** Unrecognized filesystem type **
Starting ATF on ARM64 core...

Shutting down...
NOTICE:  BL31: v2.5(release):
NOTICE:  BL31: Built : 11:59:46, Aug 10 2022

I have some spare cycles and would love to help support as much as I can to land all the sources and push toward an upstream build root release. Let me know how I can help.

Hi @mobileoverlord let me update that repo, it’s a little behind on what we now ship in u-boot for the bbai64…


Thanks Robert, as an update. I was just able to get it to boot from sources I built, the problem was that I was using a squashfs root file system and the SPL was trying to load j7-mcu-r5f0_0-fw from /lib/firmware in the rootfs. Could you also inform me where I can find the fw blob sources? Are those in the ti-linux-firmware repo?

Here you go… Everything in one build script… (including where to get `ipc_echo_testb_mcu1_0_release_strip.xer5f’

Ah remove that j7 file, this was one of the mistakes i made early, and then when moving from TI’s 8.0 → 8.1/8.2 this broke boot on everything…

Edit here are all the firmware files we ship, initially these where all symlinks, but that broke boot, so i leave as *.tisdk extensions… Thus they aren’t used… so to actually enable them, you need to remove the *.tisdk extension…

I get them by building ti’s yocto image:

MACHINE=j7-evm bitbake -k tisdk-default-image

and extract them…


I updated all my sources to the branches and tags that you mentioned, except OPTEE, I was able to build and boot using the latest version. I am unsure what modifications are being held in the sources for opt, but it was missing dependencies when I tried to build it.

Its still trying to load j7-mcu-r5f0_0-fw and fails if it doesn’t exist without the tisdk extension in the rootfs. What part of the boot stage is trying to load these firmware blobs? Is it UBoot on the R5?

I see where that line was added. It turns out that I neglected to add DM=<path to ipc_echo_testb_mcu1_0_release_strip.xer5f> when building U-Boot for the a72. I no longer include the firmware files and it is proceeding. Thanks for the help!

1 Like