This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[FAQ] Buildroot Support for Sitara AM62x/AM62Ax/AM62Px/AM64x Devices

Part Number: AM6442
Other Parts Discussed in Thread: SK-AM62B, SK-AM64B, SK-AM62, AM625,

(also applicable to other AM62x, AM62Ax, AM62Px, AM64x parts with changes)

Introduction

Buildroot (https://buildroot.org/) is a simple, efficient, and easy-to-use tool for generating bootable images for Embedded Linux systems through cross-compilation. Due to this it is a popular alternative to the widely-used Yocto-based build system. Some key differentiators are that it is easy to configure most aspects of the target image including but not limited to adding, configuring, and removing packages all using a menu-based system and that the build system itself behind the scenes is Makefile-based and with this will be immediately familiar to many developers (as opposed to the complex scripting language and layered approach Yocto uses). All this is what makes Buildroot very approachable and suitable especially for embedded systems engineers moving from MCUs into the world of Linux-based MPUs.

ExclamationDisclaimer: As of May 2024 the officially recommended and TI-supported way of generating full-featured bootable Embedded Linux images for use on Sitara AM6x devices is using the Yocto-based Linux SDKs for the different AM6x devices available at https://www.ti.com/tool/PROCESSOR-SDK-AM62X and https://www.ti.com/tool/PROCESSOR-SDK-AM64X. The steps outlined here to enable AM6x on Buildroot are provided as-is.

Current State of Support for TI's AM6x Devices

Upstream Support

As of March 2024 support for TI's AM62x (via SK-AM62B EVM) and AM64x (via SK-AM64B EVM) devices is available in the upstream Buildroot tree at https://git.busybox.net/buildroot/. The associated defconfig files are setup to only use community trees for all firmware artifacts such as the Linux Kernel, U-Boot, ATF, and OP-TEE.

In order to build an SD card image to run on an SK-AM62B EVM, refer to the instructions provided here: https://git.busybox.net/buildroot/tree/board/ti/am62x-sk/readme.txt. Similarly, to build an SD card image for an SK-AM64B EVM, refer to the readme here: https://git.busybox.net/buildroot/tree/board/ti/am64x-sk/readme.txt.

Here's an overview about which configuration to use depending on the TI Starter Kit SKU and Device Variant that is used:

TI Starter Kit SKU Device Variant

BR2_TARGET_TI_K3_R5_LOADER_TIBOOT3_BIN
Customization Required

Buildroot defconfig
SK-AM62 AM625 GP Change to "tiboot3-am62x-gp-evm.bin" ti_am62x_sk_defconfig
SK-AM62B AM625 HS-FS Not needed ti_am62x_sk_defconfig
SK-AM64 AM6442 GP Change to "tiboot3-am64x-gp-evm.bin" ti_am64x_sk_defconfig
SK-AM64B AM6442 HS-FS Not needed ti_am64x_sk_defconfig

TI Yocto SDK v9.2 Baseline Equivalent

It is a common request wanting to use the source trees for the various firmwares that are used as part of the TI Processor SDK Linux rather than the upstream trees that Buildroot usually uses. To accommodate this, this E2E FAQ provides a patch that can be applied on top of the community Buildroot tree which adds new AM62x and AM64x defconfigs that are based on the existing defconfigs for those devices but customized to use the
following source trees as used in the recent TI SDK v9.2 releases for AM62x (link) and AM64x (link).

  • TI Kernel 6.1.80 (w/ TI config-pruning step applied)
  • TI U-Boot 2023.04
  • ATF 2.10 (public tree)
  • OPTEE 4.1 (public tree)
  • TIFS/DM/DMSC Device Firmwares 9.2

The patch provided here is partially based on a patch that was previously proposed on the Buildroot mailing list ("configs/am62x-sk: Add fragment for TI tree integration") but simplified for ease of use and extended to also encompass ATF and OPTEE firmwares while specifically targeting the sources used as part of the TI SDK v9.2 release.

Here's an overview about which configuration to use depending on the TI Starter Kit SKU and Device Variant that is used:

TI Starter Kit SKU Device Variant

BR2_TARGET_TI_K3_R5_LOADER_TIBOOT3_BIN
Customization Required

Buildroot defconfig
SK-AM62 AM625 GP Change to "tiboot3-am62x-gp-evm.bin" ti_am62x_sk_tisdk_defconfig
SK-AM62B AM625 HS-FS Not needed ti_am62x_sk_tisdk_defconfig
SK-AM64 AM6442 GP Change to "tiboot3-am64x-gp-evm.bin" ti_am64x_sk_tisdk_defconfig
SK-AM64B AM6442 HS-FS Not needed ti_am64x_sk_tisdk_defconfig

0001-configs-ti_am6-2-4-x_sk_tisdk-Add-TI-SDK-v9.2-equiva-7-May-2024.patch

Building Bootable SD Card Images for AM62x and AM64x

Setting up the Build Environment

As with most aspects of Buildroot setting up the build environment is pretty straightforward, and usually only involves cloning the official Buildroot Git repository to a Linux machine. This section uses the TI Yocto SDK Baseline Equivalent approach discussed earlier which requires applying one additional patch.

Also while Buildroot itself supports a wide range of host systems the steps outlined in this section were specifically tested using Ubuntu 22.04. Note that Buildroot expects a few basic packages to be present on the host system, many of which should already be preinstalled on a typical Ubuntu 22.04 system however. Usually installing the 'build-essential' and 'libncurses-dev' (for using the menuconfig interface) additional packages should be most/all that's needed. Refer to the official Buildroot documentation for additional details: https://buildroot.org/downloads/manual/manual.html#requirement

# Clone the Buildroot Git repository from the official sources
a0797059@dasso:~/tmp
$ git clone https://git.buildroot.net/buildroot
Cloning into 'buildroot'...
remote: Enumerating objects: 39138, done.
remote: Counting objects: 100% (39138/39138), done.
remote: Compressing objects: 100% (19298/19298), done.
remote: Total 540781 (delta 24543), reused 32185 (delta 19668), pack-reused 501643
Receiving objects: 100% (540781/540781), 118.74 MiB | 3.67 MiB/s, done.
Resolving deltas: 100% (377635/377635), done.

# Change into the Buildroot folder
a0797059@dasso:~/tmp
$ cd buildroot/

# Optional/Recommended: Establish a new branch with a the same baseline commit
# that was used to create the patch set that needs to be applied. Skipping this
# step may cause issues over time such as merge conflicts that may require
# manual resolution, as 'master' advances further due to ongoing upstream work.
a0797059@dasso:~/tmp/buildroot (master)
$ git checkout -b am6x-dev 9b25246e9b
Switched to a new branch 'am6x-dev'

# Copy the patch provided along this E2E FAQ into the Buildroot root folder
a0797059@dasso:~/tmp/buildroot (am6x-dev)
$ cp <path_to_patch>/0001-configs-ti_am6-2-4-x_sk_tisdk-Add-TI-SDK-v9.2-equiva*.patch .

# Apply the patch
a0797059@dasso:~/tmp/buildroot (am6x-dev)
$ git am 0001-configs-ti_am6-2-4-x_sk_tisdk-Add-TI-SDK-v9.2-equiva*.patch
Applying: configs/ti_am6[2|4]x_sk_tisdk: Add TI SDK v9.2-equivalent defconfigs

Building SD Card Images

After the basic build environment was setup there's nothing special really about using Buildroot and building images at this point, so all the steps outlined in the Buildroot quick start guide (https://buildroot.org/downloads/manual/manual.html#_buildroot_quick_start) apply as-is. Below log capture shows a typical session building an SD card image for the SK-AM62B board via ti_am62x_sk_tisdk_defconfig. The steps for the SK-AM64B board are the same except that the ti_am64x_sk_tisdk_defconfig will need to be used.

# Establish the Buildroot baseline configuration for building for the SK-AM62B board
a0797059@dasso:~/tmp/buildroot (am6x-dev)
$ make ti_am62x_sk_tisdk_defconfig
mkdir -p /home/a0797059/tmp/buildroot/output/build/buildroot-config/lxdialog
PKG_CONFIG_PATH="" make CC="/usr/bin/gcc" HOSTCC="/usr/bin/gcc" \
    obj=/home/a0797059/tmp/buildroot/output/build/buildroot-config -C support/kconfig -f Makefile.br conf
/usr/bin/gcc -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DCURSES_LOC="<ncurses.h>" -DNCURSES_WIDECHAR=1 -DLOCALE  -I/home/a0797059/tmp/buildroot/output/build/buildroot-config -DCONFIG_=\"\"  -MM *.c > /home/a0797059/
tmp/buildroot/output/build/buildroot-config/.depend 2>/dev/null || :
/usr/bin/gcc -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DCURSES_LOC="<ncurses.h>" -DNCURSES_WIDECHAR=1 -DLOCALE  -I/home/a0797059/tmp/buildroot/output/build/buildroot-config -DCONFIG_=\"\"   -c conf.c -o /home/a0797
059/tmp/buildroot/output/build/buildroot-config/conf.o
/usr/bin/gcc -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DCURSES_LOC="<ncurses.h>" -DNCURSES_WIDECHAR=1 -DLOCALE  -I/home/a0797059/tmp/buildroot/output/build/buildroot-config -DCONFIG_=\"\"  -I. -c /home/a0797059/tmp
/buildroot/output/build/buildroot-config/zconf.tab.c -o /home/a0797059/tmp/buildroot/output/build/buildroot-config/zconf.tab.o
/usr/bin/gcc -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DCURSES_LOC="<ncurses.h>" -DNCURSES_WIDECHAR=1 -DLOCALE  -I/home/a0797059/tmp/buildroot/output/build/buildroot-config -DCONFIG_=\"\"   /home/a0797059/tmp/build
root/output/build/buildroot-config/conf.o /home/a0797059/tmp/buildroot/output/build/buildroot-config/zconf.tab.o  -o /home/a0797059/tmp/buildroot/output/build/buildroot-config/conf
rm /home/a0797059/tmp/buildroot/output/build/buildroot-config/zconf.tab.c
#
# configuration written to /home/a0797059/tmp/buildroot/.config
#

# Optional: Inspect and modify the Buildroot configuration (add/configure/remove packages, etc.)
# It's recommended to configure BR2_CCACHE=y for faster builds
a0797059@dasso:~/tmp/buildroot (am6x-dev)
$ make menuconfig

# Build the target images. The generated images can be found in the output/images/ folder.
a0797059@dasso:~/tmp/buildroot (am6x-dev)
$ make
/usr/bin/make -j1  O=/home/a0797059/tmp/buildroot/output HOSTCC="/usr/bin/gcc" HOSTCXX="/usr/bin/g++" syncconfig
make[2]: warning: -j1 forced in submake: resetting jobserver mode.
>>> host-skeleton  Extracting
>>> host-skeleton  Patching
>>> host-skeleton  Configuring
>>> host-skeleton  Building
>>> host-skeleton  Installing to host directory
# check-package DoNotInstallToHostdirUsr
>>> host-pkgconf 1.6.3 Downloading
<...snip...>

Programming the SD Card Images

The generated SD card images are ready to be used to boot the SK-AM62B and SK-AM64B boards and can be written to an SD card using the 'dd' command as follows:

# Copy image to SD card. Make sure you use the proper output  device for your
# system, otherwise data loss may occur (use 'lsblk' to double-check)
a0797059@dasso:~/tmp/buildroot (am6x-dev)
$ sudo umount /dev/sdc?
a0797059@dasso:~/tmp/buildroot (am6x-dev)
$ sudo dd if=output/images/sdcard.img of=/dev/sdc bs=1M status=progress && sync
136+1 records in
136+1 records out
142606848 bytes (143 MB, 136 MiB) copied, 6.35363 s, 22.4 MB/s

Testing the SD Card Image on the SK-AM62B Board

The resulting boot log should look as follows:

U-Boot SPL 2023.04 (May 06 2024 - 07:08:46 -0500)
SYSFW ABI: 3.1 (firmware rev 0x0009 '9.2.7--v09.02.07 (Kool Koala)')
SPL initial stack usage: 13392 bytes
Trying to boot from MMC2
Authentication passed
Authentication passed
Authentication passed
Authentication passed
Authentication passed
Starting ATF on ARM64 core...

NOTICE:  BL31: v2.10.0(release):00f1ec6b8740ccd403e641131e294aabacf2a48b
NOTICE:  BL31: Built : 07:06:20, May  6 2024
I/TC:
I/TC: OP-TEE version: Unknown_4.1 (gcc version 12.3.0 (Buildroot 2024.02-601-g4066df4afd)) #1 Mon May  6 12:06:15 UTC 2024 aarch64
I/TC: WARNING: This OP-TEE configuration might be insecure!
I/TC: WARNING: Please check https://optee.readthedocs.io/en/latest/architecture/porting_guidelines.html
I/TC: Primary CPU initializing
I/TC: GIC redistributor base address not provided
I/TC: Assuming default GIC group status and modifier
I/TC: SYSFW ABI: 3.1 (firmware rev 0x0009 '9.2.7--v09.02.07 (Kool Koala)')
I/TC: HUK Initialized
I/TC: Activated SA2UL device
I/TC: Enabled firewalls for SA2UL TRNG device
I/TC: SA2UL TRNG initialized
I/TC: SA2UL Drivers initialized
I/TC: Primary CPU switching to normal world boot

U-Boot SPL 2023.04 (May 06 2024 - 07:09:02 -0500)
SYSFW ABI: 3.1 (firmware rev 0x0009 '9.2.7--v09.02.07 (Kool Koala)')
SPL initial stack usage: 1872 bytes
Error (-2): cannot determine file size
Trying to boot from MMC2
Authentication passed
Authentication passed


U-Boot 2023.04 (May 06 2024 - 07:09:02 -0500)

SoC:   AM62X SR1.0 HS-FS
Model: Texas Instruments AM625 SK
EEPROM not available at 80, trying to read at 81
Board: AM62B-SKEVM rev A
DRAM:  no bloblist found!2 GiB
Core:  72 devices, 32 uclasses, devicetree: separate
MMC:   mmc@fa10000: 0, mmc@fa00000: 1
Loading Environment from nowhere... OK
In:    serial
Out:   serial
Err:   serial
Net:   eth0: ethernet@8000000port@1
Hit any key to stop autoboot:  0
switch to partitions #0, OK
mmc1 is current device
SD/MMC found on device 1
Failed to load 'boot.scr'
Failed to load 'uEnv.txt'
## Error: "main_cpsw0_qsgmii_phyinit" not defined
19442176 bytes read in 258 ms (71.9 MiB/s)
59546 bytes read in 19 ms (3 MiB/s)
Working FDT set to 88000000
## Flattened Device Tree blob at 88000000
   Booting using the fdt blob at 0x88000000
Working FDT set to 88000000
   Loading Device Tree to 000000008feee000, end 000000008fffffff ... OK
Working FDT set to 8feee000

Starting kernel ...

[    0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd034]
[    0.000000] Linux version 6.1.80 (a0797059@dasso) (aarch64-buildroot-linux-gnu-gcc.br_real (Buildroot 2024.02-601-g4066df4afd) 12.3.0, GNU ld (GNU Binutils) 2.41) #1 SMP PREEMPT Mon May  6 07:10:23 CDT 2024
[    0.000000] Machine model: Texas Instruments AM625 SK
[    0.000000] earlycon: ns16550a0 at MMIO32 0x0000000002800000 (options '')
[    0.000000] printk: bootconsole [ns16550a0] enabled
[    0.000000] efi: UEFI not found.
[    0.000000] Reserved memory: created CMA memory pool at 0x00000000f8000000, size 128 MiB
[    0.000000] OF: reserved mem: initialized node linux,cma, compatible id shared-dma-pool
[    0.000000] Reserved memory: created DMA memory pool at 0x000000009c800000, size 3 MiB
[    0.000000] OF: reserved mem: initialized node ipc-memories@9c800000, compatible id shared-dma-pool
[    0.000000] Reserved memory: created DMA memory pool at 0x000000009cb00000, size 1 MiB
[    0.000000] OF: reserved mem: initialized node m4f-dma-memory@9cb00000, compatible id shared-dma-pool
[    0.000000] Reserved memory: created DMA memory pool at 0x000000009cc00000, size 14 MiB
[    0.000000] OF: reserved mem: initialized node m4f-memory@9cc00000, compatible id shared-dma-pool
[    0.000000] Reserved memory: created DMA memory pool at 0x000000009da00000, size 1 MiB
[    0.000000] OF: reserved mem: initialized node r5f-dma-memory@9da00000, compatible id shared-dma-pool
[    0.000000] Reserved memory: created DMA memory pool at 0x000000009db00000, size 12 MiB
[    0.000000] OF: reserved mem: initialized node r5f-memory@9db00000, compatible id shared-dma-pool
[    0.000000] Zone ranges:
[    0.000000]   DMA      [mem 0x0000000080000000-0x00000000ffffffff]
[    0.000000]   DMA32    empty
[    0.000000]   Normal   empty
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000080000000-0x000000009c7fffff]
[    0.000000]   node   0: [mem 0x000000009c800000-0x000000009e6fffff]
[    0.000000]   node   0: [mem 0x000000009e700000-0x000000009e77ffff]
[    0.000000]   node   0: [mem 0x000000009e780000-0x000000009fffffff]
[    0.000000]   node   0: [mem 0x00000000a0000000-0x00000000ffffffff]
[    0.000000] Initmem setup node 0 [mem 0x0000000080000000-0x00000000ffffffff]
[    0.000000] psci: probing for conduit method from DT.
[    0.000000] psci: PSCIv1.1 detected in firmware.
[    0.000000] psci: Using standard PSCI v0.2 function IDs
[    0.000000] psci: Trusted OS migration not required
[    0.000000] psci: SMC Calling Convention v1.4
[    0.000000] percpu: Embedded 20 pages/cpu s41064 r8192 d32664 u81920
[    0.000000] Detected VIPT I-cache on CPU0
[    0.000000] CPU features: detected: GIC system register CPU interface
[    0.000000] CPU features: detected: ARM erratum 845719
[    0.000000] alternatives: applying boot alternatives
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 516096
[    0.000000] Kernel command line: console=ttyS2,115200n8 earlycon=ns16550a,mmio32,0x02800000 mtdparts=spi-nand0:512k(ospi.tiboot3),2m(ospi.tispl),4m(ospi.u-boot),256k(ospi.env),256k(ospi.env.backup),98048k@32m(ospi.rootfs),256k@130816k(ospi.phypattern);omap2-nand.0:2m(NAND.tiboot3),2m(NAND.tispl),2m(NAND.tiboot3.backup),4m(NAND.u-boot),256k(NAND.u-boot-env),256k(NAND.u-boot-env.backup),-(NAND.file-system) root=PARTUUID=00000000-02 rw rootfstype=ext4 rootwait
[    0.000000] Dentry cache hash table entries: 262144 (order: 9, 2097152 bytes, linear)
[    0.000000] Inode-cache hash table entries: 131072 (order: 8, 1048576 bytes, linear)
[    0.000000] mem auto-init: stack:all(zero), heap alloc:off, heap free:off
[    0.000000] Memory: 1848268K/2097152K available (11776K kernel code, 1258K rwdata, 3816K rodata, 1984K init, 438K bss, 117812K reserved, 131072K cma-reserved)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1
[    0.000000] rcu: Preemptible hierarchical RCU implementation.
[    0.000000] rcu:     RCU event tracing is enabled.
[    0.000000] rcu:     RCU restricting CPUs from NR_CPUS=256 to nr_cpu_ids=4.
[    0.000000]  Trampoline variant of Tasks RCU enabled.
[    0.000000]  Tracing variant of Tasks RCU enabled.
[    0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 25 jiffies.
[    0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=4
[    0.000000] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0
[    0.000000] GICv3: GIC: Using split EOI/Deactivate mode
[    0.000000] GICv3: 256 SPIs implemented
[    0.000000] GICv3: 0 Extended SPIs implemented
[    0.000000] Root IRQ handler: gic_handle_irq
[    0.000000] GICv3: GICv3 features: 16 PPIs
[    0.000000] GICv3: CPU0: found redistributor 0 region 0:0x0000000001880000
[    0.000000] ITS [mem 0x01820000-0x0182ffff]
[    0.000000] GIC: enabling workaround for ITS: Socionext Synquacer pre-ITS
[    0.000000] ITS@0x0000000001820000: Devices Table too large, reduce ids 20->19
[    0.000000] ITS@0x0000000001820000: allocated 524288 Devices @80800000 (flat, esz 8, psz 64K, shr 0)
[    0.000000] ITS: using cache flushing for cmd queue
[    0.000000] GICv3: using LPI property table @0x0000000080040000
[    0.000000] GIC: using cache flushing for LPI property table
[    0.000000] GICv3: CPU0: using allocated LPI pending table @0x0000000080050000
[    0.000000] rcu: srcu_init: Setting srcu_struct sizes based on contention.
[    0.000000] arch_timer: cp15 timer(s) running at 200.00MHz (phys).
[    0.000000] clocksource: arch_sys_counter: mask: 0x3ffffffffffffff max_cycles: 0x2e2049d3e8, max_idle_ns: 440795210634 ns
[    0.000001] sched_clock: 58 bits at 200MHz, resolution 5ns, wraps every 4398046511102ns
[    0.008554] Console: colour dummy device 80x25
[    0.013153] Calibrating delay loop (skipped), value calculated using timer frequency.. 400.00 BogoMIPS (lpj=800000)
[    0.023835] pid_max: default: 32768 minimum: 301
[    0.028605] LSM: Security Framework initializing
[    0.033457] Mount-cache hash table entries: 4096 (order: 3, 32768 bytes, linear)
[    0.041041] Mountpoint-cache hash table entries: 4096 (order: 3, 32768 bytes, linear)
[    0.050828] cblist_init_generic: Setting adjustable number of callback queues.
[    0.058277] cblist_init_generic: Setting shift to 2 and lim to 1.
[    0.064574] cblist_init_generic: Setting adjustable number of callback queues.
[    0.071970] cblist_init_generic: Setting shift to 2 and lim to 1.
[    0.078357] rcu: Hierarchical SRCU implementation.
[    0.083264] rcu:     Max phase no-delay instances is 1000.
[    0.088861] Platform MSI: msi-controller@1820000 domain created
[    0.095157] PCI/MSI: /bus@f0000/interrupt-controller@1800000/msi-controller@1820000 domain created
[    0.104566] EFI services will not be available.
[    0.109484] smp: Bringing up secondary CPUs ...
I/TC: Secondary CPU 1 initializing
I/TC: Secondary CPU 1 switching to normal world boot
I/TC: Secondary CPU 2 initializing
I/TC: Secondary CPU 2 switching to normal world boot
I/TC: Secondary CPU 3 initializing
I/TC: Secondary CPU 3 switching to normal world boot
[    0.122807] Detected VIPT I-cache on CPU1
[    0.122925] GICv3: CPU1: found redistributor 1 region 0:0x00000000018a0000
[    0.122944] GICv3: CPU1: using allocated LPI pending table @0x0000000080060000
[    0.123001] CPU1: Booted secondary processor 0x0000000001 [0x410fd034]
[    0.131731] Detected VIPT I-cache on CPU2
[    0.131814] GICv3: CPU2: found redistributor 2 region 0:0x00000000018c0000
[    0.131828] GICv3: CPU2: using allocated LPI pending table @0x0000000080070000
[    0.131861] CPU2: Booted secondary processor 0x0000000002 [0x410fd034]
[    0.140522] Detected VIPT I-cache on CPU3
[    0.140610] GICv3: CPU3: found redistributor 3 region 0:0x00000000018e0000
[    0.140622] GICv3: CPU3: using allocated LPI pending table @0x0000000080080000
[    0.140653] CPU3: Booted secondary processor 0x0000000003 [0x410fd034]
[    0.140724] smp: Brought up 1 node, 4 CPUs
[    0.220434] SMP: Total of 4 processors activated.
[    0.225247] CPU features: detected: 32-bit EL0 Support
[    0.230512] CPU features: detected: CRC32 instructions
[    0.235824] CPU: All CPU(s) started at EL2
[    0.240021] alternatives: applying system-wide alternatives
[    0.247599] devtmpfs: initialized
[    0.259248] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns
[    0.269251] futex hash table entries: 1024 (order: 4, 65536 bytes, linear)
[    0.281221] pinctrl core: initialized pinctrl subsystem
[    0.287223] DMI not present or invalid.
[    0.291795] NET: Registered PF_NETLINK/PF_ROUTE protocol family
[    0.298968] DMA: preallocated 256 KiB GFP_KERNEL pool for atomic allocations
[    0.306451] DMA: preallocated 256 KiB GFP_KERNEL|GFP_DMA pool for atomic allocations
[    0.314513] DMA: preallocated 256 KiB GFP_KERNEL|GFP_DMA32 pool for atomic allocations
[    0.322697] audit: initializing netlink subsys (disabled)
[    0.328391] audit: type=2000 audit(0.220:1): state=initialized audit_enabled=0 res=1
[    0.328847] thermal_sys: Registered thermal governor 'step_wise'
[    0.336322] thermal_sys: Registered thermal governor 'power_allocator'
[    0.342505] cpuidle: using governor menu
[    0.353352] hw-breakpoint: found 6 breakpoint and 4 watchpoint registers.
[    0.360381] ASID allocator initialised with 65536 entries
[    0.376946] platform a40000.pinctrl: Fixed dependency cycle(s) with /bus@f0000/pinctrl@a40000/cpsw-cpts
[    0.390060] KASLR disabled due to lack of seed
[    0.401198] HugeTLB: registered 1.00 GiB page size, pre-allocated 0 pages
[    0.408170] HugeTLB: 0 KiB vmemmap can be freed for a 1.00 GiB page
[    0.414581] HugeTLB: registered 32.0 MiB page size, pre-allocated 0 pages
[    0.421520] HugeTLB: 0 KiB vmemmap can be freed for a 32.0 MiB page
[    0.427928] HugeTLB: registered 2.00 MiB page size, pre-allocated 0 pages
[    0.434867] HugeTLB: 0 KiB vmemmap can be freed for a 2.00 MiB page
[    0.441274] HugeTLB: registered 64.0 KiB page size, pre-allocated 0 pages
[    0.448213] HugeTLB: 0 KiB vmemmap can be freed for a 64.0 KiB page
[    0.456071] k3-chipinfo 43000014.chipid: Family:AM62X rev:SR1.0 JTAGID[0x0bb7e02f] Detected
[    0.466587] iommu: Default domain type: Translated
[    0.471605] iommu: DMA domain TLB invalidation policy: strict mode
[    0.478294] SCSI subsystem initialized
[    0.482512] usbcore: registered new interface driver usbfs
[    0.488162] usbcore: registered new interface driver hub
[    0.493617] usbcore: registered new device driver usb
[    0.499261] pps_core: LinuxPPS API ver. 1 registered
[    0.504348] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[    0.513702] PTP clock support registered
[    0.517844] EDAC MC: Ver: 3.0.0
[    0.521996] omap-mailbox 29000000.mailbox: omap mailbox rev 0x66fc9100
[    0.529029] FPGA manager framework
[    0.532589] Advanced Linux Sound Architecture Driver Initialized.
[    0.539781] clocksource: Switched to clocksource arch_sys_counter
[    0.546279] VFS: Disk quotas dquot_6.6.0
[    0.550336] VFS: Dquot-cache hash table entries: 512 (order 0, 4096 bytes)
[    0.563281] NET: Registered PF_INET protocol family
[    0.568583] IP idents hash table entries: 32768 (order: 6, 262144 bytes, linear)
[    0.577837] tcp_listen_portaddr_hash hash table entries: 1024 (order: 2, 16384 bytes, linear)
[    0.586645] Table-perturb hash table entries: 65536 (order: 6, 262144 bytes, linear)
[    0.594582] TCP established hash table entries: 16384 (order: 5, 131072 bytes, linear)
[    0.602785] TCP bind hash table entries: 16384 (order: 7, 524288 bytes, linear)
[    0.610785] TCP: Hash tables configured (established 16384 bind 16384)
[    0.617701] UDP hash table entries: 1024 (order: 3, 32768 bytes, linear)
[    0.624630] UDP-Lite hash table entries: 1024 (order: 3, 32768 bytes, linear)
[    0.632152] NET: Registered PF_UNIX/PF_LOCAL protocol family
[    0.638435] RPC: Registered named UNIX socket transport module.
[    0.644515] RPC: Registered udp transport module.
[    0.649324] RPC: Registered tcp transport module.
[    0.654132] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    0.660723] NET: Registered PF_XDP protocol family
[    0.665636] PCI: CLS 0 bytes, default 64
[    0.670460] hw perfevents: enabled with armv8_cortex_a53 PMU driver, 7 counters available
[    0.680589] Initialise system trusted keyrings
[    0.685404] workingset: timestamp_bits=46 max_order=19 bucket_order=0
[    0.696388] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    0.702963] NFS: Registering the id_resolver key type
[    0.708204] Key type id_resolver registered
[    0.712482] Key type id_legacy registered
[    0.716636] nfs4filelayout_init: NFSv4 File Layout Driver Registering...
[    0.723493] nfs4flexfilelayout_init: NFSv4 Flexfile Layout Driver Registering...
[    0.765777] Key type asymmetric registered
[    0.769972] Asymmetric key parser 'x509' registered
[    0.775011] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 245)
[    0.782735] io scheduler mq-deadline registered
[    0.787385] io scheduler kyber registered
[    0.794904] pinctrl-single 4084000.pinctrl: 34 pins, size 136
[    0.801440] pinctrl-single f4000.pinctrl: 171 pins, size 684
[    0.808911] pinctrl-single a40000.pinctrl: 512 pins, size 2048
[    0.821326] Serial: 8250/16550 driver, 12 ports, IRQ sharing enabled
[    0.837473] loop: module loaded
[    0.841904] megasas: 07.719.03.00-rc1
[    0.848782] tun: Universal TUN/TAP device driver, 1.6
[    0.854708] VFIO - User Level meta-driver version: 0.3
[    0.860746] usbcore: registered new interface driver usb-storage
[    0.867457] i2c_dev: i2c /dev entries driver
[    0.873296] sdhci: Secure Digital Host Controller Interface driver
[    0.879648] sdhci: Copyright(c) Pierre Ossman
[    0.884326] sdhci-pltfm: SDHCI platform and OF driver helper
[    0.890917] ledtrig-cpu: registered to indicate activity on CPUs
[    0.897259] SMCCC: SOC_ID: ARCH_SOC_ID not implemented, skipping ....
[    0.904212] usbcore: registered new interface driver usbhid
[    0.909915] usbhid: USB HID core driver
[    0.914738] optee: probing for conduit method.
I/TC: Reserved shared memory is enabled
I/TC: Dynamic shared memory is enabled
I/TC: Normal World virtualization support is disabled
I/TC: Asynchronous notifications are disabled
[    0.919335] optee: revision 4.1
[    0.935948] optee: dynamic shared memory is enabled
[    0.944547] optee: initialized driver
[    0.950025] Initializing XFRM netlink socket
[    0.954455] NET: Registered PF_PACKET protocol family
[    0.959704] Key type dns_resolver registered
[    0.964492] registered taskstats version 1
[    0.968712] Loading compiled-in X.509 certificates
[    0.983508] ti-sci 44043000.system-controller: ABI: 3.1 (firmware rev 0x0009 '9.2.7--v09.02.07 (Kool Koala)')
[    1.036601] ti-sci-clk 44043000.system-controller:clock-controller: recalc-rate failed for dev=81, clk=20, ret=-19
[    1.066978] omap_i2c 20000000.i2c: bus 0 rev0.12 at 400 kHz
[    1.074256] omap_i2c 20010000.i2c: bus 1 rev0.12 at 100 kHz
[    1.081123] omap_i2c 20020000.i2c: bus 2 rev0.12 at 400 kHz
[    1.087099] ti-sci-intr bus@f0000:interrupt-controller@a00000: Interrupt Router 3 domain created
[    1.096349] ti-sci-inta 48000000.interrupt-controller: Interrupt Aggregator domain 28 created
[    1.108764] ti-udma 485c0100.dma-controller: Number of rings: 82
[    1.116973] ti-udma 485c0100.dma-controller: Channels: 48 (bchan: 18, tchan: 12, rchan: 18)
[    1.127929] ti-udma 485c0000.dma-controller: Number of rings: 150
[    1.137898] ti-udma 485c0000.dma-controller: Channels: 35 (tchan: 20, rchan: 15)
[    1.148103] printk: console [ttyS2] disabled
[    1.152559] 2800000.serial: ttyS2 at MMIO 0x2800000 (irq = 240, base_baud = 3000000) is a 8250
[    1.161451] printk: console [ttyS2] enabled
[    1.161451] printk: console [ttyS2] enabled
[    1.169908] printk: bootconsole [ns16550a0] disabled
[    1.169908] printk: bootconsole [ns16550a0] disabled
[    1.181316] davinci_mdio 8000f00.mdio: Configuring MDIO in manual mode
[    1.227812] davinci_mdio 8000f00.mdio: davinci mdio revision 9.7, bus freq 1000000
[    1.237971] davinci_mdio 8000f00.mdio: phy[0]: device 8000f00.mdio:00, driver TI DP83867
[    1.246081] davinci_mdio 8000f00.mdio: phy[1]: device 8000f00.mdio:01, driver TI DP83867
[    1.254201] am65-cpsw-nuss 8000000.ethernet: initializing am65 cpsw nuss version 0x6BA01103, cpsw version 0x6BA81103 Ports: 3 quirks:00000006
[    1.267054] am65-cpsw-nuss 8000000.ethernet: initialized cpsw ale version 1.5
[    1.274181] am65-cpsw-nuss 8000000.ethernet: ALE Table size 512
[    1.280631] pps pps0: new PPS source ptp0
[    1.284944] am65-cpsw-nuss 8000000.ethernet: CPTS ver 0x4e8a010c, freq:500000000, add_val:1 pps:1
[    1.295333] am65-cpsw-nuss 8000000.ethernet: set new flow-id-base 19
[    1.306897] mmc0: CQHCI version 5.10
[    1.311724] pca953x 1-0022: supply vcc not found, using dummy regulator
[    1.318499] pca953x 1-0022: using AI
[    1.350266] spi-nor spi0.0: s28hs512t (65536 Kbytes)
[    1.351944] mmc0: SDHCI controller on fa10000.mmc [fa10000.mmc] using ADMA 64-bit
[    1.355400] 7 fixed-partitions partitions found on MTD device fc40000.spi.0
[    1.369668] Creating 7 MTD partitions on "fc40000.spi.0":
[    1.375062] 0x000000000000-0x000000080000 : "ospi.tiboot3"
[    1.381803] 0x000000080000-0x000000280000 : "ospi.tispl"
[    1.388187] 0x000000280000-0x000000680000 : "ospi.u-boot"
[    1.394571] 0x000000680000-0x0000006c0000 : "ospi.env"
[    1.400722] 0x0000006c0000-0x000000700000 : "ospi.env.backup"
[    1.407524] 0x000000800000-0x000003fc0000 : "ospi.rootfs"
[    1.413937] 0x000003fc0000-0x000004000000 : "ospi.phypattern"
[    1.431291] debugfs: Directory 'pd:182' with parent 'pm_genpd' already present!
[    1.439042] mmc1: CQHCI version 5.10
[    1.439140] mmc2: CQHCI version 5.10
[    1.440806] debugfs: Directory 'pd:186' with parent 'pm_genpd' already present!
[    1.445704] ti-sci-clk 44043000.system-controller:clock-controller: is_prepared failed for dev=81, clk=20, ret=-19
[    1.469240] ALSA device list:
[    1.469691] mmc0: Command Queue Engine enabled
[    1.472251]   No soundcards found.
[    1.476722] mmc0: new HS200 MMC card at address 0001
[    1.486325] mmcblk0: mmc0:0001 S0J56X 14.8 GiB
[    1.493738]  mmcblk0: p1 p2
[    1.494806] mmc1: SDHCI controller on fa00000.mmc [fa00000.mmc] using ADMA 64-bit
[    1.497316] mmcblk0boot0: mmc0:0001 S0J56X 31.5 MiB
[    1.504076] mmc2: SDHCI controller on fa20000.mmc [fa20000.mmc] using ADMA 64-bit
[    1.510850] mmcblk0boot1: mmc0:0001 S0J56X 31.5 MiB
[    1.522547] mmcblk0rpmb: mmc0:0001 S0J56X 4.00 MiB, chardev (240:0)
[    1.528990] Waiting for root device PARTUUID=00000000-02...
[    1.566649] mmc1: new ultra high speed SDR104 SDHC card at address aaaa
[    1.574259] mmcblk1: mmc1:aaaa SC16G 14.8 GiB
[    1.584794]  mmcblk1: p1 p2
[    1.623969] EXT4-fs (mmcblk1p2): mounted filesystem with ordered data mode. Quota mode: none.
[    1.632887] VFS: Mounted root (ext4 filesystem) on device 179:98.
[    1.642562] devtmpfs: mounted
[    1.646863] Freeing unused kernel memory: 1984K
[    1.651630] Run /sbin/init as init process
[    1.716221] EXT4-fs (mmcblk1p2): re-mounted. Quota mode: none.
Seeding 256 bits without crediting
Saving 256 bits of non-creditable seed for next boot
Starting syslogd: OK
Starting klogd: OK
Running sysctl: OK
Starting network: OK

Welcome to Buildroot
buildroot login:

Testing the SD Card Image on the SK-AM64B Board

The resulting boot log should look as follows:

U-Boot SPL 2023.04 (May 06 2024 - 07:49:15 -0500)
EEPROM not available at 0x50, trying to read at 0x51
SYSFW ABI: 3.1 (firmware rev 0x0009 '9.2.7--v09.02.07 (Kool Koala)')
SPL initial stack usage: 13392 bytes
Trying to boot from MMC2
Authentication passed
Authentication passed
Loading Environment from MMC... MMC Device 0 not found
*** Warning - No MMC card found, using default environment

Authentication passed
Authentication passed
Starting ATF on ARM64 core...

NOTICE:  BL31: v2.10.0(release):00f1ec6b8740ccd403e641131e294aabacf2a48b
NOTICE:  BL31: Built : 07:46:46, May  6 2024
I/TC:
I/TC: OP-TEE version: Unknown_4.1 (gcc version 12.3.0 (Buildroot 2024.02-602-g554c1050b8)) #1 Mon May  6 12:46:41 UTC 2024 aarch64
I/TC: WARNING: This OP-TEE configuration might be insecure!
I/TC: WARNING: Please check https://optee.readthedocs.io/en/latest/architecture/porting_guidelines.html
I/TC: Primary CPU initializing
I/TC: GIC redistributor base address not provided
I/TC: Assuming default GIC group status and modifier
I/TC: SYSFW ABI: 3.1 (firmware rev 0x0009 '9.2.7--v09.02.07 (Kool Koala)')
I/TC: HUK Initialized
I/TC: Activated SA2UL device
I/TC: Enabled firewalls for SA2UL TRNG device
I/TC: SA2UL TRNG initialized
I/TC: SA2UL Drivers initialized
I/TC: Primary CPU switching to normal world boot

U-Boot SPL 2023.04 (May 06 2024 - 07:49:33 -0500)
SYSFW ABI: 3.1 (firmware rev 0x0009 '9.2.7--v09.02.07 (Kool Koala)')
Trying to boot from MMC2
Authentication passed
Authentication passed


U-Boot 2023.04 (May 06 2024 - 07:49:33 -0500)

SoC:   AM64X SR2.0 HS-FS
Model: Texas Instruments AM642 SK
Board: AM64B-SKEVM rev A
DRAM:  2 GiB
Core:  90 devices, 33 uclasses, devicetree: separate
NAND:  0 MiB
MMC:   mmc@fa00000: 1
Loading Environment from nowhere... OK
In:    serial@2800000
Out:   serial@2800000
Err:   serial@2800000
Net:   eth0: ethernet@8000000port@1, eth1: ethernet@8000000port@2
Hit any key to stop autoboot:  0
switch to partitions #0, OK
mmc1 is current device
SD/MMC found on device 1
Failed to load 'boot.scr'
Failed to load 'uEnv.txt'
## Error: "main_cpsw0_qsgmii_phyinit" not defined
19442176 bytes read in 844 ms (22 MiB/s)
43154 bytes read in 35 ms (1.2 MiB/s)
Working FDT set to 88000000
## Flattened Device Tree blob at 88000000
   Booting using the fdt blob at 0x88000000
Working FDT set to 88000000
   Loading Device Tree to 000000008fef2000, end 000000008fffffff ... OK
Working FDT set to 8fef2000

Starting kernel ...

[    0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd034]
[    0.000000] Linux version 6.1.80 (a0797059@dasso) (aarch64-buildroot-linux-gnu-gcc.br_real (Buildroot 2024.02-602-g554c1050b8) 12.3.0, GNU ld (GNU Binutils) 2.41) #1 SMP PREEMPT Mon May  6 07:51:03 CDT 2024
[    0.000000] Machine model: Texas Instruments AM642 SK
[    0.000000] earlycon: ns16550a0 at MMIO32 0x0000000002800000 (options '')
[    0.000000] printk: bootconsole [ns16550a0] enabled
[    0.000000] efi: UEFI not found.
[    0.000000] Reserved memory: created DMA memory pool at 0x00000000a0000000, size 1 MiB
[    0.000000] OF: reserved mem: initialized node r5f-dma-memory@a0000000, compatible id shared-dma-pool
[    0.000000] Reserved memory: created DMA memory pool at 0x00000000a0100000, size 15 MiB
[    0.000000] OF: reserved mem: initialized node r5f-memory@a0100000, compatible id shared-dma-pool
[    0.000000] Reserved memory: created DMA memory pool at 0x00000000a1000000, size 1 MiB
[    0.000000] OF: reserved mem: initialized node r5f-dma-memory@a1000000, compatible id shared-dma-pool
[    0.000000] Reserved memory: created DMA memory pool at 0x00000000a1100000, size 15 MiB
[    0.000000] OF: reserved mem: initialized node r5f-memory@a1100000, compatible id shared-dma-pool
[    0.000000] Reserved memory: created DMA memory pool at 0x00000000a2000000, size 1 MiB
[    0.000000] OF: reserved mem: initialized node r5f-dma-memory@a2000000, compatible id shared-dma-pool
[    0.000000] Reserved memory: created DMA memory pool at 0x00000000a2100000, size 15 MiB
[    0.000000] OF: reserved mem: initialized node r5f-memory@a2100000, compatible id shared-dma-pool
[    0.000000] Reserved memory: created DMA memory pool at 0x00000000a3000000, size 1 MiB
[    0.000000] OF: reserved mem: initialized node r5f-dma-memory@a3000000, compatible id shared-dma-pool
[    0.000000] Reserved memory: created DMA memory pool at 0x00000000a3100000, size 15 MiB
[    0.000000] OF: reserved mem: initialized node r5f-memory@a3100000, compatible id shared-dma-pool
[    0.000000] Reserved memory: created DMA memory pool at 0x00000000a4000000, size 1 MiB
[    0.000000] OF: reserved mem: initialized node m4f-dma-memory@a4000000, compatible id shared-dma-pool
[    0.000000] Reserved memory: created DMA memory pool at 0x00000000a4100000, size 15 MiB
[    0.000000] OF: reserved mem: initialized node m4f-memory@a4100000, compatible id shared-dma-pool
[    0.000000] Zone ranges:
[    0.000000]   DMA      [mem 0x0000000080000000-0x00000000ffffffff]
[    0.000000]   DMA32    empty
[    0.000000]   Normal   empty
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000080000000-0x000000009e7fffff]
[    0.000000]   node   0: [mem 0x000000009e800000-0x00000000a57fffff]
[    0.000000]   node   0: [mem 0x00000000a5800000-0x00000000ffffffff]
[    0.000000] Initmem setup node 0 [mem 0x0000000080000000-0x00000000ffffffff]
[    0.000000] cma: Reserved 32 MiB at 0x00000000fba00000
[    0.000000] psci: probing for conduit method from DT.
[    0.000000] psci: PSCIv1.1 detected in firmware.
[    0.000000] psci: Using standard PSCI v0.2 function IDs
[    0.000000] psci: Trusted OS migration not required
[    0.000000] psci: SMC Calling Convention v1.4
[    0.000000] percpu: Embedded 20 pages/cpu s41064 r8192 d32664 u81920
[    0.000000] Detected VIPT I-cache on CPU0
[    0.000000] CPU features: detected: GIC system register CPU interface
[    0.000000] CPU features: detected: ARM erratum 845719
[    0.000000] alternatives: applying boot alternatives
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 516096
[    0.000000] Kernel command line: console=ttyS2,115200n8 earlycon=ns16550a,mmio32,0x02800000 omap2-nand.0:2m(NAND.tiboot3),2m(NAND.tispl),2m(NAND.tiboot3.backup),4m(NAND.u-boot),256k(NAND.u-boot-env),256k(NAND.u-boot-env.backup),-(NAND.file-system) root=PARTUUID=00000000-02 rw rootfstype=ext4 rootwait
[    0.000000] Dentry cache hash table entries: 262144 (order: 9, 2097152 bytes, linear)
[    0.000000] Inode-cache hash table entries: 131072 (order: 8, 1048576 bytes, linear)
[    0.000000] mem auto-init: stack:all(zero), heap alloc:off, heap free:off
[    0.000000] Memory: 1890076K/2097152K available (11776K kernel code, 1258K rwdata, 3816K rodata, 1984K init, 438K bss, 174308K reserved, 32768K cma-reserved)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=2, Nodes=1
[    0.000000] rcu: Preemptible hierarchical RCU implementation.
[    0.000000] rcu:     RCU event tracing is enabled.
[    0.000000] rcu:     RCU restricting CPUs from NR_CPUS=256 to nr_cpu_ids=2.
[    0.000000]  Trampoline variant of Tasks RCU enabled.
[    0.000000]  Tracing variant of Tasks RCU enabled.
[    0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 25 jiffies.
[    0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=2
[    0.000000] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0
[    0.000000] GICv3: GIC: Using split EOI/Deactivate mode
[    0.000000] GICv3: 256 SPIs implemented
[    0.000000] GICv3: 0 Extended SPIs implemented
[    0.000000] Root IRQ handler: gic_handle_irq
[    0.000000] GICv3: GICv3 features: 16 PPIs
[    0.000000] GICv3: CPU0: found redistributor 0 region 0:0x0000000001840000
[    0.000000] ITS [mem 0x01820000-0x0182ffff]
[    0.000000] GIC: enabling workaround for ITS: Socionext Synquacer pre-ITS
[    0.000000] ITS@0x0000000001820000: Devices Table too large, reduce ids 20->19
[    0.000000] ITS@0x0000000001820000: allocated 524288 Devices @80800000 (flat, esz 8, psz 64K, shr 0)
[    0.000000] ITS: using cache flushing for cmd queue
[    0.000000] GICv3: using LPI property table @0x0000000080030000
[    0.000000] GIC: using cache flushing for LPI property table
[    0.000000] GICv3: CPU0: using allocated LPI pending table @0x0000000080040000
[    0.000000] rcu: srcu_init: Setting srcu_struct sizes based on contention.
[    0.000000] arch_timer: cp15 timer(s) running at 200.00MHz (phys).
[    0.000000] clocksource: arch_sys_counter: mask: 0x3ffffffffffffff max_cycles: 0x2e2049d3e8, max_idle_ns: 440795210634 ns
[    0.000000] sched_clock: 58 bits at 200MHz, resolution 5ns, wraps every 4398046511102ns
[    0.008576] Console: colour dummy device 80x25
[    0.013178] Calibrating delay loop (skipped), value calculated using timer frequency.. 400.00 BogoMIPS (lpj=800000)
[    0.023857] pid_max: default: 32768 minimum: 301
[    0.028631] LSM: Security Framework initializing
[    0.033500] Mount-cache hash table entries: 4096 (order: 3, 32768 bytes, linear)
[    0.041084] Mountpoint-cache hash table entries: 4096 (order: 3, 32768 bytes, linear)
[    0.051117] cblist_init_generic: Setting adjustable number of callback queues.
[    0.058588] cblist_init_generic: Setting shift to 1 and lim to 1.
[    0.064894] cblist_init_generic: Setting adjustable number of callback queues.
[    0.072290] cblist_init_generic: Setting shift to 1 and lim to 1.
[    0.078706] rcu: Hierarchical SRCU implementation.
[    0.083618] rcu:     Max phase no-delay instances is 1000.
[    0.089274] Platform MSI: msi-controller@1820000 domain created
[    0.095625] PCI/MSI: /bus@f4000/interrupt-controller@1800000/msi-controller@1820000 domain created
[    0.105052] EFI services will not be available.
[    0.109996] smp: Bringing up secondary CPUs ...
I/TC: Secondary CPU 1 initializing
I/TC: Secondary CPU 1 switching to normal world boot
[    0.123664] Detected VIPT I-cache on CPU1
[    0.123801] GICv3: CPU1: found redistributor 1 region 0:0x0000000001860000
[    0.123822] GICv3: CPU1: using allocated LPI pending table @0x0000000080050000
[    0.123883] CPU1: Booted secondary processor 0x0000000001 [0x410fd034]
[    0.124021] smp: Brought up 1 node, 2 CPUs
[    0.153410] SMP: Total of 2 processors activated.
[    0.158224] CPU features: detected: 32-bit EL0 Support
[    0.163494] CPU features: detected: CRC32 instructions
[    0.168812] CPU: All CPU(s) started at EL2
[    0.172998] alternatives: applying system-wide alternatives
[    0.180780] devtmpfs: initialized
[    0.192633] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns
[    0.202638] futex hash table entries: 512 (order: 3, 32768 bytes, linear)
[    0.211265] pinctrl core: initialized pinctrl subsystem
[    0.217352] DMI not present or invalid.
[    0.222106] NET: Registered PF_NETLINK/PF_ROUTE protocol family
[    0.229515] DMA: preallocated 256 KiB GFP_KERNEL pool for atomic allocations
[    0.236977] DMA: preallocated 256 KiB GFP_KERNEL|GFP_DMA pool for atomic allocations
[    0.245096] DMA: preallocated 256 KiB GFP_KERNEL|GFP_DMA32 pool for atomic allocations
[    0.253309] audit: initializing netlink subsys (disabled)
[    0.259220] audit: type=2000 audit(0.164:1): state=initialized audit_enabled=0 res=1
[    0.259837] thermal_sys: Registered thermal governor 'step_wise'
[    0.267181] thermal_sys: Registered thermal governor 'power_allocator'
[    0.273603] cpuidle: using governor menu
[    0.284518] hw-breakpoint: found 6 breakpoint and 4 watchpoint registers.
[    0.291530] ASID allocator initialised with 65536 entries
[    0.306340] platform a40000.pinctrl: Fixed dependency cycle(s) with /bus@f4000/pinctrl@a40000/cpsw-cpts-pps
[    0.320152] KASLR disabled due to lack of seed
[    0.332836] HugeTLB: registered 1.00 GiB page size, pre-allocated 0 pages
[    0.339820] HugeTLB: 0 KiB vmemmap can be freed for a 1.00 GiB page
[    0.346229] HugeTLB: registered 32.0 MiB page size, pre-allocated 0 pages
[    0.353166] HugeTLB: 0 KiB vmemmap can be freed for a 32.0 MiB page
[    0.359570] HugeTLB: registered 2.00 MiB page size, pre-allocated 0 pages
[    0.366506] HugeTLB: 0 KiB vmemmap can be freed for a 2.00 MiB page
[    0.372909] HugeTLB: registered 64.0 KiB page size, pre-allocated 0 pages
[    0.379846] HugeTLB: 0 KiB vmemmap can be freed for a 64.0 KiB page
[    0.388200] k3-chipinfo 43000014.chipid: Family:AM64X rev:SR2.0 JTAGID[0x1bb3802f] Detected
[    0.398267] iommu: Default domain type: Translated
[    0.403306] iommu: DMA domain TLB invalidation policy: strict mode
[    0.410077] SCSI subsystem initialized
[    0.414433] usbcore: registered new interface driver usbfs
[    0.420091] usbcore: registered new interface driver hub
[    0.425555] usbcore: registered new device driver usb
[    0.431204] pps_core: LinuxPPS API ver. 1 registered
[    0.436285] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[    0.445632] PTP clock support registered
[    0.449786] EDAC MC: Ver: 3.0.0
[    0.454246] omap-mailbox 29020000.mailbox: omap mailbox rev 0x66fc9100
[    0.461209] omap-mailbox 29040000.mailbox: omap mailbox rev 0x66fc9100
[    0.468060] omap-mailbox 29060000.mailbox: omap mailbox rev 0x66fc9100
[    0.475349] FPGA manager framework
[    0.478971] Advanced Linux Sound Architecture Driver Initialized.
[    0.486453] clocksource: Switched to clocksource arch_sys_counter
[    0.493043] VFS: Disk quotas dquot_6.6.0
[    0.497123] VFS: Dquot-cache hash table entries: 512 (order 0, 4096 bytes)
[    0.511459] NET: Registered PF_INET protocol family
[    0.516804] IP idents hash table entries: 32768 (order: 6, 262144 bytes, linear)
[    0.526533] tcp_listen_portaddr_hash hash table entries: 1024 (order: 2, 16384 bytes, linear)
[    0.535378] Table-perturb hash table entries: 65536 (order: 6, 262144 bytes, linear)
[    0.543323] TCP established hash table entries: 16384 (order: 5, 131072 bytes, linear)
[    0.551547] TCP bind hash table entries: 16384 (order: 7, 524288 bytes, linear)
[    0.559654] TCP: Hash tables configured (established 16384 bind 16384)
[    0.566637] UDP hash table entries: 1024 (order: 3, 32768 bytes, linear)
[    0.573606] UDP-Lite hash table entries: 1024 (order: 3, 32768 bytes, linear)
[    0.581169] NET: Registered PF_UNIX/PF_LOCAL protocol family
[    0.587594] RPC: Registered named UNIX socket transport module.
[    0.593706] RPC: Registered udp transport module.
[    0.598517] RPC: Registered tcp transport module.
[    0.603326] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    0.609918] NET: Registered PF_XDP protocol family
[    0.614859] PCI: CLS 0 bytes, default 64
[    0.619758] hw perfevents: enabled with armv8_cortex_a53 PMU driver, 7 counters available
[    0.629938] Initialise system trusted keyrings
[    0.634865] workingset: timestamp_bits=46 max_order=19 bucket_order=0
[    0.646766] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    0.653542] NFS: Registering the id_resolver key type
[    0.658817] Key type id_resolver registered
[    0.663098] Key type id_legacy registered
[    0.667270] nfs4filelayout_init: NFSv4 File Layout Driver Registering...
[    0.674125] nfs4flexfilelayout_init: NFSv4 Flexfile Layout Driver Registering...
[    0.723408] Key type asymmetric registered
[    0.727615] Asymmetric key parser 'x509' registered
[    0.732666] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 245)
[    0.740495] io scheduler mq-deadline registered
[    0.745143] io scheduler kyber registered
[    0.752814] pinctrl-single 4084000.pinctrl: 33 pins, size 132
[    0.759280] pinctrl-single f4000.pinctrl: 180 pins, size 720
[    0.766958] pinctrl-single a40000.pinctrl: 512 pins, size 2048
[    0.780204] Serial: 8250/16550 driver, 12 ports, IRQ sharing enabled
[    0.797760] loop: module loaded
[    0.802248] megasas: 07.719.03.00-rc1
[    0.809599] tun: Universal TUN/TAP device driver, 1.6
[    0.815760] VFIO - User Level meta-driver version: 0.3
[    0.821991] usbcore: registered new interface driver usb-storage
[    0.828871] i2c_dev: i2c /dev entries driver
[    0.834340] sdhci: Secure Digital Host Controller Interface driver
[    0.840697] sdhci: Copyright(c) Pierre Ossman
[    0.845659] sdhci-pltfm: SDHCI platform and OF driver helper
[    0.852243] ledtrig-cpu: registered to indicate activity on CPUs
[    0.858627] SMCCC: SOC_ID: ARCH_SOC_ID not implemented, skipping ....
[    0.865543] usbcore: registered new interface driver usbhid
[    0.871251] usbhid: USB HID core driver
[    0.876213] optee: probing for conduit method.
I/TC: Reserved shared memory is enabled
I/TC: Dynamic shared memory is enabled
I/TC: Normal World virtualization support is disabled
I/TC: Asynchronous notifications are disabled
[    0.880847] optee: revision 4.1
[    0.897531] optee: dynamic shared memory is enabled
[    0.906215] optee: initialized driver
[    0.912203] Initializing XFRM netlink socket
[    0.916660] NET: Registered PF_PACKET protocol family
[    0.921919] Key type dns_resolver registered
[    0.926835] registered taskstats version 1
[    0.931073] Loading compiled-in X.509 certificates
[    0.947717] ti-sci 44043000.system-controller: ABI: 3.1 (firmware rev 0x0009 '9.2.7--v09.02.07 (Kool Koala)')
[    1.000797] pca953x 0-0070: supply vcc not found, using dummy regulator
[    1.007783] pca953x 0-0070: using no AI
[    1.035317] omap_i2c 20010000.i2c: bus 0 rev0.12 at 400 kHz
[    1.041424] ti-sci-intr bus@f4000:interrupt-controller@a00000: Interrupt Router 3 domain created
[    1.050815] ti-sci-inta 48000000.interrupt-controller: Interrupt Aggregator domain 28 created
[    1.062943] ti-udma 485c0100.dma-controller: Number of rings: 68
[    1.070510] ti-udma 485c0100.dma-controller: Channels: 24 (bchan: 12, tchan: 6, rchan: 6)
[    1.080724] ti-udma 485c0000.dma-controller: Number of rings: 288
[    1.095952] ti-udma 485c0000.dma-controller: Channels: 44 (tchan: 29, rchan: 15)
[    1.107137] printk: console [ttyS2] disabled
[    1.111614] 2800000.serial: ttyS2 at MMIO 0x2800000 (irq = 304, base_baud = 3000000) is a 8250
[    1.120504] printk: console [ttyS2] enabled
[    1.120504] printk: console [ttyS2] enabled
[    1.128970] printk: bootconsole [ns16550a0] disabled
[    1.128970] printk: bootconsole [ns16550a0] disabled
[    1.143785] spi-nor spi0.0: s28hs512t (65536 Kbytes)
[    1.148905] 7 fixed-partitions partitions found on MTD device fc40000.spi.0
[    1.155884] Creating 7 MTD partitions on "fc40000.spi.0":
[    1.161280] 0x000000000000-0x000000100000 : "ospi.tiboot3"
[    1.168283] 0x000000100000-0x000000300000 : "ospi.tispl"
[    1.175054] 0x000000300000-0x000000700000 : "ospi.u-boot"
[    1.181832] 0x000000700000-0x000000740000 : "ospi.env"
[    1.188384] 0x000000740000-0x000000780000 : "ospi.env.backup"
[    1.195576] 0x000000800000-0x000003fc0000 : "ospi.rootfs"
[    1.202384] 0x000003fc0000-0x000004000000 : "ospi.phypattern"
[    1.218741] davinci_mdio 8000f00.mdio: Configuring MDIO in manual mode
[    1.262503] davinci_mdio 8000f00.mdio: davinci mdio revision 9.7, bus freq 1000000
[    1.273263] davinci_mdio 8000f00.mdio: phy[0]: device 8000f00.mdio:00, driver TI DP83867
[    1.281394] davinci_mdio 8000f00.mdio: phy[1]: device 8000f00.mdio:01, driver TI DP83867
[    1.289535] am65-cpsw-nuss 8000000.ethernet: initializing am65 cpsw nuss version 0x6BA00903, cpsw version 0x6BA80903 Ports: 3 quirks:00000006
[    1.302432] am65-cpsw-nuss 8000000.ethernet: initialized cpsw ale version 1.4
[    1.309585] am65-cpsw-nuss 8000000.ethernet: ALE Table size 512
[    1.316338] pps pps0: new PPS source ptp0
[    1.320767] am65-cpsw-nuss 8000000.ethernet: CPTS ver 0x4e8a010c, freq:500000000, add_val:1 pps:1
[    1.331797] am65-cpsw-nuss 8000000.ethernet: set new flow-id-base 16
[    1.342633] am65-cpts 39000000.cpts: CPTS ver 0x4e8a010c, freq:500000000, add_val:1 pps:0
[    1.365349] mmc0: CQHCI version 5.10
[    1.366818] debugfs: Directory 'pd:114' with parent 'pm_genpd' already present!
[    1.369763] mmc1: CQHCI version 5.10
[    1.386873] ALSA device list:
[    1.389975]   No soundcards found.
[    1.419028] mmc0: SDHCI controller on fa10000.mmc [fa10000.mmc] using ADMA 64-bit
[    1.421341] mmc1: SDHCI controller on fa00000.mmc [fa00000.mmc] using ADMA 64-bit
[    1.434734] Waiting for root device PARTUUID=00000000-02...
[    1.443590] sdhci-am654 fa10000.mmc: card claims to support voltages below defined range
[    1.463187] mmc0: new SDIO card at address 0001
[    1.491568] mmc1: new ultra high speed SDR104 SDHC card at address aaaa
[    1.499175] mmcblk1: mmc1:aaaa SL16G 14.8 GiB
[    1.509737]  mmcblk1: p1 p2
[    1.536576] EXT4-fs (mmcblk1p2): mounted filesystem with ordered data mode. Quota mode: none.
[    1.545279] VFS: Mounted root (ext4 filesystem) on device 179:2.
[    1.554395] devtmpfs: mounted
[    1.559122] Freeing unused kernel memory: 1984K
[    1.563823] Run /sbin/init as init process
[    1.637399] EXT4-fs (mmcblk1p2): re-mounted. Quota mode: none.
Seeding 256 bits without crediting
Saving 256 bits of non-creditable seed for next boot
Starting syslogd: OK
Starting klogd: OK
Running sysctl: OK
Starting network: OK

Welcome to Buildroot
buildroot login: 

Future Work / Roadmap

We are currently exploring how to start providing official Buildroot-based releases that are in sync with our regular TI Yocto SDK-based releases, targeting the same level of device feature support and software quality, potentially intersecting with our next major SDK release stream. Until this is available, this E2E FAQ here serves as a go-to page to enable a basic TI Yocto SDK Baseline Equivalent solution for selected TI Yocto SDK releases and device variants. In parallel, several members of the TI Platform Software Team continue to engage with the Buildroot community to help moving the upstream project forward.