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] [参考译文] [常见问题解答] Sitara AM62x/AM62Ax/AM64x 器件的 BuildRoot 支持

Guru**** 2576215 points
Other Parts Discussed in Thread: SK-AM62B, AM625, PROCESSOR-SDK-AM62A, SK-AM62, AM6442, SK-AM64B

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1226815/faq-buildroot-support-for-sitara-am62x-am62ax-am64x-devices

器件型号:AM6442
主题中讨论的其他器件:SK-AM62、AM625、SK-AM62B SK-AM64、、 SK-AM64B

(也适用于其他已更改的 AM62x、AM62Ax、AM64x 器件)

简介

BuildRoot (https://buildroot.org/)是一款简单、高效且易于使用的工具、用于通过交叉编译为嵌入式 Linux 系统生成可启动映像。 因此、它是广泛使用的基于 Yocto 的构建系统的常见替代方案。 一些关键区别在于、可以轻松配置目标图像的大部分方面、包括但不限于添加、配置 和删除软件包、所有这些都使用基于菜单的系统、并且幕后的编译系统本身基于 Makefile、这将使许多开发人员立即熟悉(与 Yocto 使用的复杂脚本语言和分层方法相反)。 这一切使得 BuildRoot 非常平易近人、尤其适合从 MCU 转移到基于 Linux 的 MPU 世界的嵌入式系统工程师。

TI AM6x 器件的当前支持状态

TI 意识到需要为 AM6x 器件提供 BuildRoot 支持、并且已于2022年与 BuildRoot 社区合作、开始针对 AM64器件进行初始实施。 这项努力在2022年末左右稍稍稍停顿、但此后又再度回升。 2023年6月15日、已将一个更新的补丁集("补丁 v8")发布到社区邮件列表(https://lists.buildroot.org/pipermail/buildroot/2023-June/668947.html)、以继续先前的工作。 添加 AM64和 AM62器件支持、包括基于一些前期工作的图形、此前期工作是在过去几周内作为此 E2E 常见问题解答的一部分发布的。 最新的补丁程序集于2023年6月22日发布("补丁 v9")、可从 https://lore.kernel.org/buildroot/20230625193648.GA646621@scaer/T/获取。

下面的屏幕截图展示了当前的上游 BuildRoot、其中添加了实验性 AM64x 支持、显示了用于封装选择和总体图像配置的"menuconfig"屏幕。 本 E2E 常见问题解答的其余部分将讨论如何设置和使用 BuildRoot 为 AM64x 以及 AM62x 器件构建可引导的 SD 卡映像。

为 AM62x 和 AM64x 构建可引导 SD 卡映像(仅限实验支持!)

免责声明: 为在 Sitara AM6x 器件上使用生成可引导嵌入式 Linux 映像而正式建议和 TI 支持的方法是为不同的 AM6x 器件使用基于 Yocto 的 Linux SDK、 这些 SDK 可从 www.ti.com/.../PROCESSOR-SDK-AM62A 和 www.ti.com/.../PROCESSOR-SDK-AM64X 获取。 此处概述的在 BuildRoot 上尽早访问和启用 AM6x 的步骤均按原样提供、仅适用于实验。

由于这里讨论的 AM6x 支持的实验性质、所创建的图像存在一些限制、包括但不限于以下几点:

  • 虽然当前解决方案默认支持在 AM62x HS-FS 和 AM64x HS-FS 器件上启动、但尚不支持在 AM62x HS-SE 和 AM64x HS-SE 器件上启动。 支持 AM62x/AM64x HS-SE 器件以实现正确/完整身份验证的引导流程所需的证书/签名流程尚未完全实现。 如果需要支持 HS-SE、则需要在当前 AM62x/AM64x Linux SDK 建模后添加这些步骤。
  • 一些 SoC 特定的功能、例如远程内核固件加载/消息传递和低功耗模式支持尚未完全实现和/或测试

设置构建环境

与 BuildRoot 设置的大多数方面一样、构建环境非常简单、通常只涉及将正式的 BuildRoot Git 存储库克隆到 Linux 计算机。 由于官方 BuildRoot 存储库当前(截至2023年5月)仅包含不完整的 AM64x 支持、并且不支持 AM62x、因此需要手动应用一些附加补丁、才能为这些器件构建映像。

为了更轻松地重新创建针对 AM62x 和 AM64x 的 BuildRoot 支持、为了方便、这些补丁作为此 E2E 常见问题解答附带的 tarball 的一部分提供。 始终使用可 用于实验的最新/最新增补程序集、并参阅"变更日志"表列以了解更多详细信息。

此外、虽然 BuildRoot 本身支持广泛的主机系统、但是本节中列出的步骤是使用 Ubuntu 22.04进行专门测试的。 请注意、BuildRoot 期望主机系统上存在一些基本软件包、其中许多软件包应该已经预安装在典型的 Ubuntu 22.04系统上。 通常、安装"build-ess"和"libncurses-dev"(用于使用 menuconfig 接口)其他软件包应该是大多数需要的。 有关更多详细信息、请参阅官方 BuildRoot 文档: https://buildroot.org/downloads/manual/manual.html#requirement

# Clone the Buildroot Git repository from the official sources
a0797059@ula0797059:~/git
$ git clone git.buildroot.net/buildroot
Cloning into 'buildroot'...
remote: Enumerating objects: 3425, done.
remote: Counting objects: 100% (3425/3425), done.
remote: Compressing objects: 100% (3312/3312), done.
remote: Total 505068 (delta 1706), reused 240 (delta 111), pack-reused 501643
Receiving objects: 100% (505068/505068), 109.47 MiB | 2.84 MiB/s, done.
Resolving deltas: 100% (354798/354798), done.
Updating files: 100% (13204/13204), done.

# Change into the Buildroot folder
a0797059@ula0797059:~/git
$ 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, as 'master' advances further due to ongoing
# upstream development.
a0797059@ula0797059:~/git/buildroot (master)
$ git checkout -b am6x-dev 2023.05-rc2
Switched to a new branch 'am6x-dev'

# Copy the latest patch tarball provided along this E2E FAQ into the Buildroot
# root folder and extract it.
a0797059@ula0797059:~/git/buildroot (am6x-dev)
$ tar -xvf buildroot-am64-sk-am62-sk-1-jun-2023.tar.gz 
0001-boot-ti-k3-r5-loader-allow-for-full-build-source-cus.patch
0002-boot-ti-k3-image-gen-add-new-package.patch
0003-boot-uboot-add-support-for-building-the-TI-K3-DM-int.patch
0004-board-ti-am64x_sk-add-new-board.patch
0005-board-ti-am62x_sk-add-new-board.patch
0006-board-ti-am62x_sk-am64x_sk-switch-to-TI-SDK-v8.6-sou.patch
0007-board-ti-am62x_sk-am64x_sk-switch-to-HS-FS-device-va.patch

# Apply the extracted patches
a0797059@ula0797059:~/git/buildroot (am6x-dev)
$ git am *.patch
Applying: boot/ti-k3-r5-loader: allow for full build source customization
Applying: boot/ti-k3-image-gen: add new package
Applying: boot/uboot: add support for building the TI K3 DM into U-Boot
Applying: board/ti/am64x_sk: add new board
Applying: board/ti/am62x_sk: add new board
Applying: board/ti/am62x_sk|am64x_sk: switch to TI SDK v8.6 sources
Applying: board/ti/am62x_sk|am64x_sk: switch to HS-FS device variants

支持的电路板和构建配置

下表概述了如何为支持的不同电路板设置构建。 请注意、目前分发的 TI 入门套件(SK)板有多个版本因所使用的器件型号而异、其中包括要求构建环境的设置稍有不同。 为简单起见、本常见问题解答的大部分讨论中均省略了主板版本字母后缀(例如"B")。

TI 入门套件 SKU 器件型号 TI_SECURE_DEV_PKG
环境变量

HS-FS 支持补丁
"board/ti/am62x_sk|am64x_sk:
切换到 HS-FS 器件型号"

BuildRoot defconfig
SK-AM62的基础 AM625 GP 不需要 不适用 am62x_SK_defconfig
SK-AM62B AM625 HS-FS 应用 应用 am62x_SK_defconfig
SK-AM64 AM6442 GP 不需要 不适用 am64x_sk_defconfig
SK-AM64B AM6442 HS-FS 应用 应用 am64x_sk_defconfig

构建 SD 卡映像

设置基本构建环境后、对于目前使用 BuildRoot 和编译映像没有什么特别之处、因此 BuildRoot 快速入门指南(https://buildroot.org/downloads/manual/manual.html#_buildroot_quick_start)中概述的所有步骤均按原样应用。 下面的日志捕获显示了通过为 SK-AM64板构建 SD 卡映像的典型会话  am64x_sk_defconfig

# NOTE: Skip this step if using patch set v9 or later
#
# Create a clone of the core-secdev-k3 repository which is needed to provide the
# signing scripts and keys for building for HS-FS silicon variants. Note when
# building for GP silicon variants, this step is not needed.
a0797059@ula0797059:~/git/buildroot (am6x-dev)
$ git clone git.ti.com/.../core-secdev-k3.git
Cloning into 'core-secdev-k3'...
remote: Enumerating objects: 63, done.
remote: Counting objects: 100% (63/63), done.
remote: Compressing objects: 100% (60/60), done.
remote: Total 63 (delta 21), reused 0 (delta 0), pack-reused 0
Receiving objects: 100% (63/63), 58.88 KiB | 2.80 MiB/s, done.
Resolving deltas: 100% (21/21), done.

# NOTE: Skip this step if using patch set v9 or later
#
# Export the location of the core-secdev-k3 repository for use by the build process
a0797059@ula0797059:~/git/buildroot (am6x-dev)
$ export TI_SECURE_DEV_PKG=$PWD/core-secdev-k3

# Establish the Buildroot baseline configuration for building for the SK-AM64 board
a0797059@ula0797059:~/git/buildroot (am6x-dev)
$ make am64x_sk_defconfig
mkdir -p /home/a0797059/git/buildroot/output/build/buildroot-config/lxdialog
PKG_CONFIG_PATH="" make CC="/usr/bin/gcc" HOSTCC="/usr/bin/gcc" \
    obj=/home/a0797059/git/buildroot/output/build/buildroot-config -C support/kconfig -f Makefile.br conf
/usr/bin/gcc -I/usr/include/ncursesw -DCURSES_LOC="<curses.h>"  -DNCURSES_WIDECHAR=1 -DLOCALE  -I/home/a0797059/git/buildroot/output/build/buildroot-config -DCONFIG_=\"\"  -MM *.c > /home/a0797059/git/buildroot/output/build/buildroot-config/.depend 2>/dev/null || :
/usr/bin/gcc -I/usr/include/ncursesw -DCURSES_LOC="<curses.h>"  -DNCURSES_WIDECHAR=1 -DLOCALE  -I/home/a0797059/git/buildroot/output/build/buildroot-config -DCONFIG_=\"\"   -c conf.c -o /home/a0797059/git/buildroot/output/build/buildroot-config/conf.o
/usr/bin/gcc -I/usr/include/ncursesw -DCURSES_LOC="<curses.h>"  -DNCURSES_WIDECHAR=1 -DLOCALE  -I/home/a0797059/git/buildroot/output/build/buildroot-config -DCONFIG_=\"\"  -I. -c /home/a0797059/git/buildroot/output/build/buildroot-config/zconf.tab.c -o /home/a0797059/git/buildroot/output/build/buildroot-config/zconf.tab.o
/usr/bin/gcc -I/usr/include/ncursesw -DCURSES_LOC="<curses.h>"  -DNCURSES_WIDECHAR=1 -DLOCALE  -I/home/a0797059/git/buildroot/output/build/buildroot-config -DCONFIG_=\"\"   /home/a0797059/git/buildroot/output/build/buildroot-config/conf.o /home/a0797059/git/buildroot/output/build/buildroot-config/zconf.tab.o  -o /home/a0797059/git/buildroot/output/build/buildroot-config/conf
rm /home/a0797059/git/buildroot/output/build/buildroot-config/zconf.tab.c
#
# configuration written to /home/a0797059/git/buildroot/.config
#

# Optional: Inspect and modify the Buildroot configuration (add/configure/remove packages, etc.)
a0797059@ula0797059:~/git/buildroot (am6x-dev)
$ make menuconfig
mkdir -p /home/a0797059/git/buildroot/output/build/buildroot-config/lxdialog
PKG_CONFIG_PATH="" make CC="/usr/bin/gcc" HOSTCC="/usr/bin/gcc" \
    obj=/home/a0797059/git/buildroot/output/build/buildroot-config -C support/kconfig -f Makefile.br mconf
/usr/bin/gcc -I/usr/include/ncursesw -DCURSES_LOC="<curses.h>"  -DNCURSES_WIDECHAR=1 -DLOCALE  -I/home/a0797059/git/buildroot/output/build/buildroot-config -DCONFIG_=\"\"   -c lxdialog/checklist.c -o /home/a0797059/git/buildroot/output/build/buildroot-config/lxdialog/checklist.o
/usr/bin/gcc -I/usr/include/ncursesw -DCURSES_LOC="<curses.h>"  -DNCURSES_WIDECHAR=1 -DLOCALE  -I/home/a0797059/git/buildroot/output/build/buildroot-config -DCONFIG_=\"\"   -c lxdialog/inputbox.c -o /home/a0797059/git/buildroot/output/build/buildroot-config/lxdialog/inputbox.o
/usr/bin/gcc -I/usr/include/ncursesw -DCURSES_LOC="<curses.h>"  -DNCURSES_WIDECHAR=1 -DLOCALE  -I/home/a0797059/git/buildroot/output/build/buildroot-config -DCONFIG_=\"\"   -c lxdialog/menubox.c -o /home/a0797059/git/buildroot/output/build/buildroot-config/lxdialog/menubox.o
/usr/bin/gcc -I/usr/include/ncursesw -DCURSES_LOC="<curses.h>"  -DNCURSES_WIDECHAR=1 -DLOCALE  -I/home/a0797059/git/buildroot/output/build/buildroot-config -DCONFIG_=\"\"   -c lxdialog/textbox.c -o /home/a0797059/git/buildroot/output/build/buildroot-config/lxdialog/textbox.o
/usr/bin/gcc -I/usr/include/ncursesw -DCURSES_LOC="<curses.h>"  -DNCURSES_WIDECHAR=1 -DLOCALE  -I/home/a0797059/git/buildroot/output/build/buildroot-config -DCONFIG_=\"\"   -c lxdialog/util.c -o /home/a0797059/git/buildroot/output/build/buildroot-config/lxdialog/util.o
/usr/bin/gcc -I/usr/include/ncursesw -DCURSES_LOC="<curses.h>"  -DNCURSES_WIDECHAR=1 -DLOCALE  -I/home/a0797059/git/buildroot/output/build/buildroot-config -DCONFIG_=\"\"   -c lxdialog/yesno.c -o /home/a0797059/git/buildroot/output/build/buildroot-config/lxdialog/yesno.o
/usr/bin/gcc -I/usr/include/ncursesw -DCURSES_LOC="<curses.h>"  -DNCURSES_WIDECHAR=1 -DLOCALE  -I/home/a0797059/git/buildroot/output/build/buildroot-config -DCONFIG_=\"\"   -c mconf.c -o /home/a0797059/git/buildroot/output/build/buildroot-config/mconf.o
/usr/bin/gcc -I/usr/include/ncursesw -DCURSES_LOC="<curses.h>"  -DNCURSES_WIDECHAR=1 -DLOCALE  -I/home/a0797059/git/buildroot/output/build/buildroot-config -DCONFIG_=\"\"   /home/a0797059/git/buildroot/output/build/buildroot-config/mconf.o /home/a0797059/git/buildroot/output/build/buildroot-config/zconf.tab.o /home/a0797059/git/buildroot/output/build/buildroot-config/lxdialog/checklist.o /home/a0797059/git/buildroot/output/build/buildroot-config/lxdialog/util.o /home/a0797059/git/buildroot/output/build/buildroot-config/lxdialog/inputbox.o /home/a0797059/git/buildroot/output/build/buildroot-config/lxdialog/textbox.o /home/a0797059/git/buildroot/output/build/buildroot-config/lxdialog/yesno.o /home/a0797059/git/buildroot/output/build/buildroot-config/lxdialog/menubox.o -lncursesw -o /home/a0797059/git/buildroot/output/build/buildroot-config/mconf


*** End of the configuration.
*** Execute 'make' to start the build or try 'make help'.

# Build the target images
a0797059@ula0797059:~/git/buildroot (am6x-dev)
$ make
/usr/bin/make -j1 O=/home/a0797059/git/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
wget --passive-ftp -nd -t 3 -O '/home/a0797059/git/buildroot/output/build/.pkgconf-1.6.3.tar.xz.QidAfl/output' 'distfiles.dereferenced.org/.../pkgconf-1.6.3.tar.xz' 
--2023-05-15 15:11:25--  distfiles.dereferenced.org/.../pkgconf-1.6.3.tar.xz
Length: 291216 (284K) [application/octet-stream]
Saving to: ‘/home/a0797059/git/buildroot/output/build/.pkgconf-1.6.3.tar.xz.QidAfl/output’

/home/a0797059/git/buildroot/output/ 100%[======================================================================>] 284.39K   657KB/s    in 0.4s    

2023-05-15 15:11:27 (657 KB/s) - ‘/home/a0797059/git/buildroot/output/build/.pkgconf-1.6.3.tar.xz.QidAfl/output’ saved [291216/291216]

pkgconf-1.6.3.tar.xz: OK (sha256: 61f0b31b0d5ea0e862b454a80c170f57bad47879c0c42bd8de89200ff62ea210)
>>> host-pkgconf 1.6.3 Extracting
xzcat /home/a0797059/git/buildroot/dl/pkgconf/pkgconf-1.6.3.tar.xz | tar --strip-components=1 -C /home/a0797059/git/buildroot/output/build/host-pkgconf-1.6.3   -xf -
>>> host-pkgconf 1.6.3 Patching

Applying 0001-Only-prefix-with-the-sysroot-a-subset-of-variables.patch using patch: 
patching file libpkgconf/tuple.c

Applying 0002-Revert-main-assume-modversion-insted-of-version-if-o.patch using patch: 
patching file cli/main.c


<...snip...>

>>>   Executing post-image script support/scripts/genimage.sh
INFO: cmd: "mkdir -p "/home/a0797059/git/buildroot/output/build/genimage.tmp"" (stderr):
INFO: cmd: "rm -rf "/home/a0797059/git/buildroot/output/build/genimage.tmp"/*" (stderr):
INFO: cmd: "mkdir -p "/home/a0797059/git/buildroot/output/build/genimage.tmp"" (stderr):
INFO: cmd: "cp -a "/tmp/tmp.xP0pNRWRCX" "/home/a0797059/git/buildroot/output/build/genimage.tmp/root"" (stderr):
INFO: cmd: "mkdir -p "/home/a0797059/git/buildroot/output/images"" (stderr):
INFO: vfat(boot.vfat): cmd: "mkdosfs   '/home/a0797059/git/buildroot/output/images/boot.vfat'" (stderr):
INFO: vfat(boot.vfat): adding file 'tiboot3.bin' as 'tiboot3.bin' ...
INFO: vfat(boot.vfat): cmd: "MTOOLS_SKIP_CHECK=1 mcopy -sp -i '/home/a0797059/git/buildroot/output/images/boot.vfat' '/home/a0797059/git/buildroot/output/images/tiboot3.bin' '::'" (stderr):
INFO: vfat(boot.vfat): adding file 'tispl.bin' as 'tispl.bin' ...
INFO: vfat(boot.vfat): cmd: "MTOOLS_SKIP_CHECK=1 mcopy -sp -i '/home/a0797059/git/buildroot/output/images/boot.vfat' '/home/a0797059/git/buildroot/output/images/tispl.bin' '::'" (stderr):
INFO: vfat(boot.vfat): adding file 'u-boot.img' as 'u-boot.img' ...
INFO: vfat(boot.vfat): cmd: "MTOOLS_SKIP_CHECK=1 mcopy -sp -i '/home/a0797059/git/buildroot/output/images/boot.vfat' '/home/a0797059/git/buildroot/output/images/u-boot.img' '::'" (stderr):
INFO: hdimage(sdcard.img): adding partition 'u-boot' (in MBR) from 'boot.vfat' ...
INFO: hdimage(sdcard.img): adding partition 'rootfs' (in MBR) from 'rootfs.ext4' ...
INFO: hdimage(sdcard.img): adding partition '[MBR]' ...
INFO: hdimage(sdcard.img): writing MBR

# List the generated output image files
a0797059@ula0797059:~/git/buildroot (am6x-dev)
$ ll output/images/
total 351776
drwxr-xr-x 4 a0797059 a0797059      4096 May 15 18:00 ./
drwxrwxr-x 6 a0797059 a0797059      4096 May 15 18:00 ../
-rw-r--r-- 1 a0797059 a0797059     44056 May 15 16:40 bl31.bin
-rw-r--r-- 1 a0797059 a0797059  16777216 May 15 18:00 boot.vfat
-rw-r--r-- 1 a0797059 a0797059  39475712 May 15 18:00 Image
-rwxr-xr-x 1 a0797059 a0797059     38811 May 15 18:00 k3-am642-sk.dtb*
-rw-r--r-- 1 a0797059 a0797059    281256 May 15 16:44 r5-u-boot-spl.bin
-rw-r--r-- 1 a0797059 a0797059 125829120 May 15 18:00 rootfs.ext2
lrwxrwxrwx 1 a0797059 a0797059        11 May 15 18:00 rootfs.ext4 -> rootfs.ext2
-rw-r--r-- 1 a0797059 a0797059 104734720 May 15 18:00 rootfs.tar
-rw-r--r-- 1 a0797059 a0797059 142606848 May 15 18:00 sdcard.img
drwxr-xr-x 3 a0797059 a0797059      4096 May 15 16:44 soc/
-rw-r--r-- 1 a0797059 a0797059    411628 May 15 16:39 tee.bin
-rw-r--r-- 1 a0797059 a0797059        28 May 15 16:39 tee-header_v2.bin
-rw-r--r-- 1 a0797059 a0797059         0 May 15 16:39 tee-pageable_v2.bin
-rw-r--r-- 1 a0797059 a0797059    411600 May 15 16:39 tee-pager_v2.bin
-rw-r--r-- 1 a0797059 a0797059    505617 May 15 16:44 tiboot3.bin
drwxr-xr-x 2 a0797059 a0797059      4096 May 15 16:20 ti-connectivity/
-rw-r--r-- 1 a0797059 a0797059    808916 May 15 16:46 tispl.bin
-rw-r--r-- 1 a0797059 a0797059    914036 May 15 16:46 u-boot.img

若要构建与 SK-AM62板配合使用的 SD 卡映像、只需使用不同的 defconfig 文件( am62x_SK_defconfig )以反映如下所示的不同目标平台。 所有其他设置和编译步骤都采用相同的方式。

# Establish the Buildroot baseline configuration for building for the SK-AM62 board
a0797059@ula0797059:~/git/buildroot (am6x-dev)
$ make am62x_sk_defconfig
mkdir -p /home/a0797059/git/buildroot/output/build/buildroot-config/lxdialog
PKG_CONFIG_PATH="" make CC="/usr/bin/gcc" HOSTCC="/usr/bin/gcc" \
    obj=/home/a0797059/git/buildroot/output/build/buildroot-config -C support/kconfig -f Makefile.br conf
/usr/bin/gcc -I/usr/include/ncursesw -DCURSES_LOC="<curses.h>"  -DNCURSES_WIDECHAR=1 -DLOCALE  -I/home/a0797059/git/buildroot/output/build/buildroot-config -DCONFIG_=\"\"  -MM *.c > /home/a0797059/git/buildroot/output/build/buildroot-config/.depend 2>/dev/null || :
/usr/bin/gcc -I/usr/include/ncursesw -DCURSES_LOC="<curses.h>"  -DNCURSES_WIDECHAR=1 -DLOCALE  -I/home/a0797059/git/buildroot/output/build/buildroot-config -DCONFIG_=\"\"   -c conf.c -o /home/a0797059/git/buildroot/output/build/buildroot-config/conf.o
/usr/bin/gcc -I/usr/include/ncursesw -DCURSES_LOC="<curses.h>"  -DNCURSES_WIDECHAR=1 -DLOCALE  -I/home/a0797059/git/buildroot/output/build/buildroot-config -DCONFIG_=\"\"  -I. -c /home/a0797059/git/buildroot/output/build/buildroot-config/zconf.tab.c -o /home/a0797059/git/buildroot/output/build/buildroot-config/zconf.tab.o
/usr/bin/gcc -I/usr/include/ncursesw -DCURSES_LOC="<curses.h>"  -DNCURSES_WIDECHAR=1 -DLOCALE  -I/home/a0797059/git/buildroot/output/build/buildroot-config -DCONFIG_=\"\"   /home/a0797059/git/buildroot/output/build/buildroot-config/conf.o /home/a0797059/git/buildroot/output/build/buildroot-config/zconf.tab.o  -o /home/a0797059/git/buildroot/output/build/buildroot-config/conf
rm /home/a0797059/git/buildroot/output/build/buildroot-config/zconf.tab.c
#
# configuration written to /home/a0797059/git/buildroot/.config
#

测试 AM62x 上的图形支持

同时、通过最新的补丁集、可以启用在 AM62x 上支持图形所需的驱动程序  TI-roge-km 和  ti-roge-um 软件包的情况下、它不会启用任何开包即用的框架或特定于应用程序的软件包。 如果您想要实验并体验图形支持、您可以通过应用下面显示的补丁或通过 make menuconfig 手动选择适当的选项来添加以下 BuildRoot config 选项

Author:     Andreas Dannenberg <dannenberg@ti.com>
AuthorDate: Wed May 31 10:50:31 2023 -0500
Commit:     Andreas Dannenberg <dannenberg@ti.com>
CommitDate: Fri Jun 16 16:34:51 2023 -0500

    WIP: configs/am62x_sk_defconfig: enable Weston and Chocolate Doom

    This is a development/test commit to enable and allow experimenting
    with the following features:

    ===Weston===
    $ mkdir /tmp/weston-runtime-dir
    $ export XDG_RUNTIME_DIR=/tmp/weston-runtime-dir
    $ weston --tty=1
    ...or when no keyboard is connected...
    $ weston --tty=1 --continue-without-input

    ===Chocolate Doom===
    $ chocolate-doom
    Note: sound not working yet

    Signed-off-by: Andreas Dannenberg <dannenberg@ti.com>
---
 configs/am62x_sk_defconfig | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/configs/am62x_sk_defconfig b/configs/am62x_sk_defconfig
index c130847e9d..3dfbb0fab6 100644
--- a/configs/am62x_sk_defconfig
+++ b/configs/am62x_sk_defconfig
@@ -1,5 +1,6 @@
 BR2_aarch64=y
 BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_10=y
+BR2_TOOLCHAIN_BUILDROOT_CXX=y
 BR2_CCACHE=y
 BR2_CCACHE_INITIAL_SETUP="--max-size 20G"
 BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV=y
@@ -13,9 +14,16 @@ BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/ti/am62x_sk/ti_sdk_arm64_release_defc
 BR2_LINUX_KERNEL_DTS_SUPPORT=y
 BR2_LINUX_KERNEL_INTREE_DTS_NAME="ti/k3-am625-sk"
 BR2_LINUX_KERNEL_INSTALL_TARGET=y
+BR2_PACKAGE_PULSEAUDIO=y
+BR2_PACKAGE_CHOCOLATE_DOOM=y
+BR2_PACKAGE_DOOM_WAD=y
+BR2_PACKAGE_SDL2_KMSDRM=y
+BR2_PACKAGE_SDL2_OPENGLES=y
+BR2_PACKAGE_WESTON=y
 BR2_PACKAGE_LINUX_FIRMWARE=y
 BR2_PACKAGE_LINUX_FIRMWARE_TI_WL18XX=y
 BR2_PACKAGE_TI_ROGUE_UM=y
+BR2_PACKAGE_ALSA_LIB=y
 BR2_TARGET_ROOTFS_EXT2=y
 BR2_TARGET_ROOTFS_EXT2_4=y
 BR2_TARGET_ROOTFS_EXT2_SIZE="256M"

对 SD 卡映像进行编程

生成的 SD 卡映像已准备就绪、可用于引导 SK-AM64和 SK-AM62板、并可使用'd'命令写入 SD 卡、如下所示:

# 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@ula0797059:~/git/buildroot (am6x-dev)
$ sudo umount /dev/sdc?
a0797059@ula0797059:~/git/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

在 SK-AM64板上测试 SD 卡映像

注: 实验图像仅与 AM64x HS-FS 器件兼容。 用于构建在 AM64x GP 器件上使用的映像、会恢复/撤消作为此解决方案一部分提供的"board/ti/am62x_sk|am64x_sk:切换到 HS-FS 器件变体"补丁所做的更改。

生成的引导日志应如下所示:

U-Boot SPL 2021.01 (May 29 2023 - 13:14:31 -0500)
EEPROM not available at 80, trying to read at 81
SYSFW ABI: 3.1 (firmware rev 0x0008 '8.6.4--v08.06.04 (Chill Capybar')
SPL initial stack usage: 13424 bytes
Trying to boot from MMC2
Starting ATF on ARM64 core...

NOTICE:  BL31: v2.8(release):2023.05-rc1-11-g7d17f891b2
NOTICE:  BL31: Built : 13:14:11, May 29 2023
I/TC: 
I/TC: OP-TEE version: 2023.05-rc1-11-g7d17f891b2 (gcc version 11.3.0 (Buildroot 2023.05-rc1-11-g7d17f891b2)) #1 Mon May 29 18:14:10 UTC 2023 aarch64
I/TC: WARNING: This OP-TEE configuration might be insecure!
I/TC: WARNING: Please check optee.readthedocs.io/.../porting_guidelines.html
I/TC: Primary CPU initializing
I/TC: SYSFW ABI: 3.1 (firmware rev 0x0008 '8.6.4--v08.06.04 (Chill Capybar')
I/TC: HUK Initialized
I/TC: Primary CPU switching to normal world boot

U-Boot SPL 2021.01 (May 29 2023 - 13:14:43 -0500)
SYSFW ABI: 3.1 (firmware rev 0x0008 '8.6.4--v08.06.04 (Chill Capybar')
Trying to boot from MMC2


U-Boot 2021.01 (May 29 2023 - 13:14:43 -0500)

SoC:   AM64X SR1.0 GP
Model: Texas Instruments AM642 SK
Board: AM64-SKEVM rev E3
DRAM:  2 GiB
NAND:  0 MiB
MMC:   mmc@fa00000: 1
Loading Environment from FAT... *** Warning - bad CRC, using default environment

In:    serial@2800000
Out:   serial@2800000
Err:   serial@2800000
Net:   eth0: ethernet@8000000port@1
Warning: ethernet@8000000port@2 MAC addresses don't match:
Address in ROM is		ac:1f:0f:84:01:dc
Address in environment is	70:ff:76:1d:f2:a1
, 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'
19212800 bytes read in 801 ms (22.9 MiB/s)
41647 bytes read in 5 ms (7.9 MiB/s)
## Flattened Device Tree blob at 88000000
   Booting using the fdt blob at 0x88000000
   Loading Device Tree to 000000008fef2000, end 000000008fffffff ... OK

Starting kernel ...

[    0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd034]
[    0.000000] Linux version 5.10.168 (a0797059@dasso) (aarch64-buildroot-linux-gnu-gcc.br_real (Buildroot 2023.05-rc1-11-g7d17f891b2) 11.3.0, GNU ld (GNU Binutils) 2.38) #1 SMP PREEMPT Mon May 29 13:15:03 CDT 2023
[    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 512 MiB at 0x00000000dd000000
[    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.2
[    0.000000] percpu: Embedded 22 pages/cpu s51288 r8192 d30632 u90112
[    0.000000] Detected VIPT I-cache on CPU0
[    0.000000] CPU features: detected: ARM erratum 845719
[    0.000000] CPU features: detected: GIC system register CPU interface
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 516096
[    0.000000] Kernel command line: console=ttyS2,115200n8 earlycon=ns16550a,mmio32,0x02800000 mtdparts=fc40000.spi.0:1m(ospi.tiboot3),2m(ospi.tispl),4m(ospi.u-boot),256k(ospi.env),256k(ospi.env.backup),57088k@8m(ospi.rootfs),256k(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:off, heap alloc:off, heap free:off
[    0.000000] Memory: 1398768K/2097152K available (11392K kernel code, 1162K rwdata, 4260K rodata, 1856K init, 431K bss, 174096K reserved, 524288K 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] GICv3: Distributor has no Range Selector support
[    0.000000] GICv3: 16 PPIs implemented
[    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] arch_timer: cp15 timer(s) running at 200.00MHz (phys).
[    0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x2e2049d3e8, max_idle_ns: 440795210634 ns
[    0.000005] sched_clock: 56 bits at 200MHz, resolution 5ns, wraps every 4398046511102ns
[    0.008545] Console: colour dummy device 80x25
[    0.013139] Calibrating delay loop (skipped), value calculated using timer frequency.. 400.00 BogoMIPS (lpj=800000)
[    0.023814] pid_max: default: 32768 minimum: 301
[    0.028637] LSM: Security Framework initializing
[    0.033425] Mount-cache hash table entries: 4096 (order: 3, 32768 bytes, linear)
[    0.041000] Mountpoint-cache hash table entries: 4096 (order: 3, 32768 bytes, linear)
[    0.050992] rcu: Hierarchical SRCU implementation.
[    0.056259] Platform MSI: msi-controller@1820000 domain created
[    0.062632] PCI/MSI: /bus@f4000/interrupt-controller@1800000/msi-controller@1820000 domain created
[    0.071902] EFI services will not be available.
[    0.076804] smp: Bringing up secondary CPUs ...
I/TC: Secondary CPU 1 initializing
I/TC: Secondary CPU 1 switching to normal world boot
[    0.090409] Detected VIPT I-cache on CPU1
[    0.090454] GICv3: CPU1: found redistributor 1 region 0:0x0000000001860000
[    0.090471] GICv3: CPU1: using allocated LPI pending table @0x0000000080050000
[    0.090539] CPU1: Booted secondary processor 0x0000000001 [0x410fd034]
[    0.090671] smp: Brought up 1 node, 2 CPUs
[    0.120051] SMP: Total of 2 processors activated.
[    0.124865] CPU features: detected: 32-bit EL0 Support
[    0.130139] CPU features: detected: CRC32 instructions
[    0.143556] CPU: All CPU(s) started at EL2
[    0.147761] alternatives: patching kernel code
[    0.153555] devtmpfs: initialized
[    0.163975] KASLR disabled due to lack of seed
[    0.168773] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns
[    0.178746] futex hash table entries: 512 (order: 3, 32768 bytes, linear)
[    0.204748] pinctrl core: initialized pinctrl subsystem
[    0.210818] DMI not present or invalid.
[    0.215511] NET: Registered protocol family 16
[    0.221967] DMA: preallocated 256 KiB GFP_KERNEL pool for atomic allocations
[    0.229344] DMA: preallocated 256 KiB GFP_KERNEL|GFP_DMA pool for atomic allocations
[    0.237454] DMA: preallocated 256 KiB GFP_KERNEL|GFP_DMA32 pool for atomic allocations
[    0.246290] thermal_sys: Registered thermal governor 'step_wise'
[    0.246300] thermal_sys: Registered thermal governor 'power_allocator'
[    0.252911] cpuidle: using governor menu
[    0.263792] hw-breakpoint: found 6 breakpoint and 4 watchpoint registers.
[    0.270804] ASID allocator initialised with 65536 entries
[    0.302253] HugeTLB registered 1.00 GiB page size, pre-allocated 0 pages
[    0.309142] HugeTLB registered 32.0 MiB page size, pre-allocated 0 pages
[    0.315992] HugeTLB registered 2.00 MiB page size, pre-allocated 0 pages
[    0.322838] HugeTLB registered 64.0 KiB page size, pre-allocated 0 pages
[    0.331112] cryptd: max_cpu_qlen set to 1000
[    0.339163] k3-chipinfo 43000014.chipid: Family:AM64X rev:SR1.0 JTAGID[0x0bb3802f] Detected
[    0.348525] vcc_3v3_sys: supplied by vusb_main5v0
[    0.354835] iommu: Default domain type: Translated 
[    0.360272] SCSI subsystem initialized
[    0.364739] mc: Linux media interface: v0.10
[    0.369137] videodev: Linux video capture interface: v2.00
[    0.374831] pps_core: LinuxPPS API ver. 1 registered
[    0.379904] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[    0.389265] PTP clock support registered
[    0.393317] EDAC MC: Ver: 3.0.0
[    0.397551] omap-mailbox 29020000.mailbox: omap mailbox rev 0x66fc9100
[    0.404477] omap-mailbox 29040000.mailbox: omap mailbox rev 0x66fc9100
[    0.411311] omap-mailbox 29060000.mailbox: omap mailbox rev 0x66fc9100
[    0.418828] FPGA manager framework
[    0.422442] Advanced Linux Sound Architecture Driver Initialized.
[    0.429758] clocksource: Switched to clocksource arch_sys_counter
[    0.436316] VFS: Disk quotas dquot_6.6.0
[    0.440413] VFS: Dquot-cache hash table entries: 512 (order 0, 4096 bytes)
[    0.453863] NET: Registered protocol family 2
[    0.458626] IP idents hash table entries: 32768 (order: 6, 262144 bytes, linear)
[    0.467629] tcp_listen_portaddr_hash hash table entries: 1024 (order: 2, 16384 bytes, linear)
[    0.476432] TCP established hash table entries: 16384 (order: 5, 131072 bytes, linear)
[    0.484665] TCP bind hash table entries: 16384 (order: 6, 262144 bytes, linear)
[    0.492436] TCP: Hash tables configured (established 16384 bind 16384)
[    0.499378] UDP hash table entries: 1024 (order: 3, 32768 bytes, linear)
[    0.506281] UDP-Lite hash table entries: 1024 (order: 3, 32768 bytes, linear)
[    0.513800] NET: Registered protocol family 1
[    0.518882] RPC: Registered named UNIX socket transport module.
[    0.524976] RPC: Registered udp transport module.
[    0.529819] RPC: Registered tcp transport module.
[    0.534627] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    0.541216] NET: Registered protocol family 44
[    0.545782] PCI: CLS 0 bytes, default 64
[    0.550552] hw perfevents: enabled with armv8_cortex_a53 PMU driver, 7 counters available
[    0.563671] Initialise system trusted keyrings
[    0.568521] workingset: timestamp_bits=46 max_order=19 bucket_order=0
[    0.579674] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    0.586405] NFS: Registering the id_resolver key type
[    0.591663] Key type id_resolver registered
[    0.595951] Key type id_legacy registered
[    0.600143] nfs4filelayout_init: NFSv4 File Layout Driver Registering...
[    0.606997] nfs4flexfilelayout_init: NFSv4 Flexfile Layout Driver Registering...
[    0.614794] 9p: Installing v9fs 9p2000 file system support
[    0.664173] Key type asymmetric registered
[    0.668380] Asymmetric key parser 'x509' registered
[    0.673425] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 243)
[    0.680996] io scheduler mq-deadline registered
[    0.685625] io scheduler kyber registered
[    0.692108] pinctrl-single 4084000.pinctrl: 33 pins, size 132
[    0.698582] pinctrl-single f4000.pinctrl: 180 pins, size 720
[    0.705538] pinctrl-single a40000.timesync-router: 512 pins, size 2048
[    0.721800] Serial: 8250/16550 driver, 10 ports, IRQ sharing enabled
[    0.744828] brd: module loaded
[    0.756469] loop: module loaded
[    0.760747] megasas: 07.714.04.00-rc1
[    0.768904] tun: Universal TUN/TAP device driver, 1.6
[    0.774850] igbvf: Intel(R) Gigabit Virtual Function Network Driver
[    0.781284] igbvf: Copyright (c) 2009 - 2012 Intel Corporation.
[    0.787409] sky2: driver version 1.30
[    0.792483] VFIO - User Level meta-driver version: 0.3
[    0.799035] i2c /dev entries driver
[    0.804149] sdhci: Secure Digital Host Controller Interface driver
[    0.810498] sdhci: Copyright(c) Pierre Ossman
[    0.815700] sdhci-pltfm: SDHCI platform and OF driver helper
[    0.822982] ledtrig-cpu: registered to indicate activity on CPUs
[    0.829669] SMCCC: SOC_ID: ARCH_SOC_ID not implemented, skipping ....
[    0.838117] 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.842736] optee: revision 3.20 (7d17f891)
[    0.859365] optee: dynamic shared memory is enabled
[    0.868915] optee: initialized driver
[    0.875358] NET: Registered protocol family 17
[    0.880114] 9pnet: Installing 9P2000 support
[    0.884569] Key type dns_resolver registered
[    0.889363] Loading compiled-in X.509 certificates
[    0.912483] ti-sci 44043000.dmsc: lpm region is required for suspend but not provided.
[    0.920688] ti-sci 44043000.dmsc: ABI: 3.1 (firmware rev 0x0008 '8.6.4--v08.06.04 (Chill Capybar')
[    0.974235] omap-gpmc 3b000000.memory-controller: GPMC revision 6.0
[    0.980698] gpmc_mem_init: disabling cs 0 mapped at 0x0-0x1000000
[    0.990246] omap_i2c 20000000.i2c: bus 0 rev0.12 at 100 kHz
[    0.997638] pca953x 1-0070: supply vcc not found, using dummy regulator
[    1.004618] pca953x 1-0070: using no AI
[    1.030737] omap_i2c 20010000.i2c: bus 1 rev0.12 at 400 kHz
[    1.037907] omap_i2c 20020000.i2c: bus 2 rev0.12 at 100 kHz
[    1.044081] ti-sci-intr bus@f4000:bus@4000000:interrupt-controller1: Interrupt Router 5 domain created
[    1.053818] ti-sci-intr bus@f4000:interrupt-controller0: Interrupt Router 3 domain created
[    1.062634] ti-sci-inta 48000000.interrupt-controller: Interrupt Aggregator domain 28 created
[    1.084356] ti-udma 485c0100.dma-controller: Number of rings: 68
[    1.092026] ti-udma 485c0100.dma-controller: Channels: 24 (bchan: 12, tchan: 6, rchan: 6)
[    1.102317] ti-udma 485c0000.dma-controller: Number of rings: 288
[    1.116901] ti-udma 485c0000.dma-controller: Channels: 44 (tchan: 29, rchan: 15)
[    1.127984] printk: console [ttyS2] disabled
[    1.132448] 2800000.serial: ttyS2 at MMIO 0x2800000 (irq = 16, base_baud = 3000000) is a 8250
[    1.141213] printk: console [ttyS2] enabled
[    1.141213] printk: console [ttyS2] enabled
[    1.149654] printk: bootconsole [ns16550a0] disabled
[    1.149654] printk: bootconsole [ns16550a0] disabled
[    1.161010] omap8250 2840000.serial: PM domain pd:155 will not be powered off
[    1.168558] 2840000.serial: ttyS6 at MMIO 0x2840000 (irq = 17, base_baud = 3000000) is a 8250
[    1.177268] serial serial0: tty port ttyS6 registered
[    1.185966] spi-nor spi0.0: s28hs512t (65536 Kbytes)
[    1.190998] 7 cmdlinepart partitions found on MTD device fc40000.spi.0
[    1.197525] Creating 7 MTD partitions on "fc40000.spi.0":
[    1.202922] 0x000000000000-0x000000100000 : "ospi.tiboot3"
[    1.209821] 0x000000100000-0x000000300000 : "ospi.tispl"
[    1.216348] 0x000000300000-0x000000700000 : "ospi.u-boot"
[    1.222963] 0x000000700000-0x000000740000 : "ospi.env"
[    1.229306] 0x000000740000-0x000000780000 : "ospi.env.backup"
[    1.236342] 0x000000800000-0x000003fc0000 : "ospi.rootfs"
[    1.243005] 0x000003fc0000-0x000004000000 : "ospi.phypattern"
[    1.262306] davinci_mdio 8000f00.mdio: Configuring MDIO in manual mode
[    1.305760] davinci_mdio 8000f00.mdio: davinci mdio revision 9.7, bus freq 1000000
[    1.316051] davinci_mdio 8000f00.mdio: phy[0]: device 8000f00.mdio:00, driver TI DP83867
[    1.324166] davinci_mdio 8000f00.mdio: phy[1]: device 8000f00.mdio:01, driver TI DP83867
[    1.332371] am65-cpsw-nuss 8000000.ethernet: initializing am65 cpsw nuss version 0x6BA00903, cpsw version 0x6BA80903 Ports: 3 quirks:00000006
[    1.345250] am65-cpsw-nuss 8000000.ethernet: initialized cpsw ale version 1.4
[    1.352379] am65-cpsw-nuss 8000000.ethernet: ALE Table size 512
[    1.359064] pps pps0: new PPS source ptp0
[    1.363486] am65-cpsw-nuss 8000000.ethernet: CPTS ver 0x4e8a010c, freq:500000000, add_val:1 pps:1
[    1.374288] am65-cpsw-nuss 8000000.ethernet: set new flow-id-base 16
[    1.385178] am65-cpts 39000000.cpts: CPTS ver 0x4e8a010c, freq:500000000, add_val:1 pps:0
[    1.394343] k3-j72xx-soc-thermal b00000.temperature-sensor: invalid resource
[    1.401457] k3-j72xx-soc-thermal: probe of b00000.temperature-sensor failed with error -22
[    1.414390] gpio-478 (btuart_rts_sel): hogged as output/high
[    1.427647] vdd_mmc1: supplied by vcc_3v3_sys
[    1.433267] wlan_en: supplied by com8_ls_en
[    1.442175] mmc0: CQHCI version 5.10
[    1.442889] debugfs: Directory 'pd:114' with parent 'pm_genpd' already present!
[    1.450233] mmc1: CQHCI version 5.10
[    1.465499] ALSA device list:
[    1.468507]   No soundcards found.
[    1.498283] mmc0: SDHCI controller on fa10000.mmc [fa10000.mmc] using ADMA 64-bit
[    1.498319] mmc1: SDHCI controller on fa00000.mmc [fa00000.mmc] using ADMA 64-bit
[    1.515104] Waiting for root device PARTUUID=00000000-02...
[    1.524023] sdhci-am654 fa10000.mmc: card claims to support voltages below defined range
[    1.543638] mmc0: new SDIO card at address 0001
[    1.572051] mmc1: new ultra high speed SDR104 SDHC card at address aaaa
[    1.579504] mmcblk1: mmc1:aaaa SC16G 14.8 GiB 
[    1.589818]  mmcblk1: p1 p2
[    1.611166] EXT4-fs (mmcblk1p2): mounted filesystem with ordered data mode. Opts: (null)
[    1.619359] VFS: Mounted root (ext4 filesystem) on device 179:2.
[    1.628879] devtmpfs: mounted
[    1.633266] Freeing unused kernel memory: 1856K
[    1.637937] Run /sbin/init as init process
[    1.703193] EXT4-fs (mmcblk1p2): re-mounted. Opts: (null)
Starting syslogd: OK
Starting klogd: OK
Running sysctl: OK
Seeding 256 bits without crediting
Saving 256 bits of non-creditable seed for next boot
Starting network: OK

Welcome to Buildroot
buildroot login: root
# ls -al /
total 26
drwxr-xr-x   19 root     root          1024 May 29  2023 .
drwxr-xr-x   19 root     root          1024 May 29  2023 ..
drwxr-xr-x    2 root     root          2048 May 29  2023 bin
drwxr-xr-x    2 root     root          1024 May 29  2023 boot
drwxr-xr-x    8 root     root          4000 Jan  1 00:00 dev
drwxr-xr-x    5 root     root          1024 May 29  2023 etc
drwxr-xr-x    5 root     root          1024 May 29  2023 lib
lrwxrwxrwx    1 root     root             3 May 29  2023 lib64 -> lib
lrwxrwxrwx    1 root     root            11 May 29  2023 linuxrc -> bin/busybox
drwx------    2 root     root         12288 May 29  2023 lost+found
drwxr-xr-x    2 root     root          1024 Apr 20  2023 media
drwxr-xr-x    2 root     root          1024 Apr 20  2023 mnt
drwxr-xr-x    2 root     root          1024 Apr 20  2023 opt
dr-xr-xr-x  144 root     root             0 Jan  1 00:00 proc
drwx------    2 root     root          1024 Jan  1 00:00 root
drwxr-xr-x    4 root     root           160 Jan  1 00:00 run
drwxr-xr-x    2 root     root          1024 May 29  2023 sbin
dr-xr-xr-x   12 root     root             0 Jan  1 00:00 sys
drwxrwxrwt    2 root     root            60 Jan  1 00:00 tmp
drwxr-xr-x    6 root     root          1024 May 29  2023 usr
drwxr-xr-x    4 root     root          1024 May 29  2023 var
# ip link set eth0 up
[   70.218350] am65-cpsw-nuss 8000000.ethernet eth0: PHY [8000f00.mdio:00] driver [TI DP83867] (irq=POLL)
[   70.227686] am65-cpsw-nuss 8000000.ethernet eth0: configuring for phy/rgmii-rxid link mode
# [   74.338749] am65-cpsw-nuss 8000000.ethernet eth0: Link is Up - 1Gbps/Full - flow control rx/tx

# ip addr add dev eth0 192.168.1.20/24
# ping 192.168.1.1
PING 192.168.1.1 (192.168.1.1): 56 data bytes
64 bytes from 192.168.1.1: seq=0 ttl=64 time=2.110 ms
64 bytes from 192.168.1.1: seq=1 ttl=64 time=0.706 ms
64 bytes from 192.168.1.1: seq=2 ttl=64 time=0.620 ms
64 bytes from 192.168.1.1: seq=3 ttl=64 time=0.825 ms
^C
--- 192.168.1.1 ping statistics ---
4 packets transmitted, 4 packets received, 0% packet loss
round-trip min/avg/max = 0.620/1.065/2.110 ms
# poweroff
# Stopping network: OK
Seeding 256 bits without crediting
Saving 256 bits of non-creditable seed for next boot
Stopping klogd: OK
Stopping syslogd: OK
umount: devtmpfs busy - remounted read-only
[  112.344246] EXT4-fs (mmcblk1p2): re-mounted. Opts: (null)
The system is going down NOW!
Sent SIGTERM to all processes
Sent SIGKILL to all processes
[  114.357462] reboot: Power down
ERROR:   System Off: operation not handled.

在 SK-AM62电路板上测试 SD 卡映像

注: 实验图像仅与 AM62x HS-FS 器件兼容。 用于构建在 AM62x GP 器件上使用的映像、会恢复/撤消作为此解决方案一部分提供的"board/ti/am62x_sk|am64x_sk:切换到 HS-FS 器件变体"补丁所做的更改。

生成的引导日志 应 如下所示:

U-Boot SPL 2021.01 (May 29 2023 - 13:37:28 -0500)
SYSFW ABI: 3.1 (firmware rev 0x0008 '8.6.4--v08.06.04 (Chill Capybar')
SPL initial stack usage: 13424 bytes
Trying to boot from MMC2
Loading Environment from MMC... *** Warning - No MMC card found, using default environment

Starting ATF on ARM64 core...

NOTICE:  BL31: v2.8(release):2023.05-rc1-11-g7d17f891b2
NOTICE:  BL31: Built : 13:37:08, May 29 2023
I/TC: 
I/TC: OP-TEE version: 2023.05-rc1-11-g7d17f891b2 (gcc version 11.3.0 (Buildroot 2023.05-rc1-11-g7d17f891b2)) #1 Mon May 29 18:37:06 UTC 2023 aarch64
I/TC: WARNING: This OP-TEE configuration might be insecure!
I/TC: WARNING: Please check optee.readthedocs.io/.../porting_guidelines.html
I/TC: Primary CPU initializing
I/TC: SYSFW ABI: 3.1 (firmware rev 0x0008 '8.6.4--v08.06.04 (Chill Capybar')
I/TC: HUK Initialized
I/TC: Primary CPU switching to normal world boot

U-Boot SPL 2021.01 (May 29 2023 - 13:37:39 -0500)
SYSFW ABI: 3.1 (firmware rev 0x0008 '8.6.4--v08.06.04 (Chill Capybar')
Trying to boot from MMC2


U-Boot 2021.01 (May 29 2023 - 13:37:39 -0500)

SoC:   AM62X SR1.0 GP
Model: Texas Instruments AM625 SK
EEPROM not available at 0x50, trying to read at 0x51
Board: AM62-SKEVM rev E2
DRAM:  2 GiB
MMC:   mmc@fa10000: 0, mmc@fa00000: 1, mmc@fa20000: 2
Loading Environment from MMC... OK
In:    serial@2800000
Out:   serial@2800000
Err:   serial@2800000
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'
19212800 bytes read in 247 ms (74.2 MiB/s)
42219 bytes read in 5 ms (8.1 MiB/s)
Failed to load '/boot/k3-am625-base-board-jailhouse.dtbo'
## Flattened Device Tree blob at 88000000
   Booting using the fdt blob at 0x88000000
   Loading Device Tree to 000000008fef2000, end 000000008fffffff ... OK

Starting kernel ...

[    0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd034]
[    0.000000] Linux version 5.10.168 (a0797059@dasso) (aarch64-buildroot-linux-gnu-gcc.br_real (Buildroot 2023.05-rc1-11-g7d17f891b2) 11.3.0, GNU ld (GNU Binutils) 2.38) #1 SMP PREEMPT Mon May 29 13:37:55 CDT 2023
[    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 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] cma: Reserved 512 MiB at 0x00000000dd000000
[    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.2
[    0.000000] percpu: Embedded 22 pages/cpu s51288 r8192 d30632 u90112
[    0.000000] Detected VIPT I-cache on CPU0
[    0.000000] CPU features: detected: ARM erratum 845719
[    0.000000] CPU features: detected: GIC system register CPU interface
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 516096
[    0.000000] Kernel command line: console=ttyS2,115200n8 earlycon=ns16550a,mmio32,0x02800000 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:off, heap alloc:off, heap free:off
[    0.000000] Memory: 1455816K/2097152K available (11392K kernel code, 1162K rwdata, 4260K rodata, 1856K init, 431K bss, 117048K reserved, 524288K 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] GICv3: Distributor has no Range Selector support
[    0.000000] GICv3: 16 PPIs implemented
[    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] arch_timer: cp15 timer(s) running at 200.00MHz (phys).
[    0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x2e2049d3e8, max_idle_ns: 440795210634 ns
[    0.000004] sched_clock: 56 bits at 200MHz, resolution 5ns, wraps every 4398046511102ns
[    0.008493] Console: colour dummy device 80x25
[    0.013085] Calibrating delay loop (skipped), value calculated using timer frequency.. 400.00 BogoMIPS (lpj=800000)
[    0.023767] pid_max: default: 32768 minimum: 301
[    0.028576] LSM: Security Framework initializing
[    0.033362] Mount-cache hash table entries: 4096 (order: 3, 32768 bytes, linear)
[    0.040940] Mountpoint-cache hash table entries: 4096 (order: 3, 32768 bytes, linear)
[    0.050729] rcu: Hierarchical SRCU implementation.
[    0.055908] Platform MSI: msi-controller@1820000 domain created
[    0.062192] PCI/MSI: /bus@f0000/interrupt-controller@1800000/msi-controller@1820000 domain created
[    0.071428] EFI services will not be available.
[    0.076332] 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.089605] Detected VIPT I-cache on CPU1
[    0.089642] GICv3: CPU1: found redistributor 1 region 0:0x00000000018a0000
[    0.089658] GICv3: CPU1: using allocated LPI pending table @0x0000000080060000
[    0.089717] CPU1: Booted secondary processor 0x0000000001 [0x410fd034]
[    0.098366] Detected VIPT I-cache on CPU2
[    0.098391] GICv3: CPU2: found redistributor 2 region 0:0x00000000018c0000
[    0.098403] GICv3: CPU2: using allocated LPI pending table @0x0000000080070000
[    0.098440] CPU2: Booted secondary processor 0x0000000002 [0x410fd034]
[    0.107061] Detected VIPT I-cache on CPU3
[    0.107083] GICv3: CPU3: found redistributor 3 region 0:0x00000000018e0000
[    0.107094] GICv3: CPU3: using allocated LPI pending table @0x0000000080080000
[    0.107126] CPU3: Booted secondary processor 0x0000000003 [0x410fd034]
[    0.107198] smp: Brought up 1 node, 4 CPUs
[    0.186903] SMP: Total of 4 processors activated.
[    0.191715] CPU features: detected: 32-bit EL0 Support
[    0.196979] CPU features: detected: CRC32 instructions
[    0.209497] CPU: All CPU(s) started at EL2
[    0.213703] alternatives: patching kernel code
[    0.219402] devtmpfs: initialized
[    0.228651] KASLR disabled due to lack of seed
[    0.233389] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns
[    0.243365] futex hash table entries: 1024 (order: 4, 65536 bytes, linear)
[    0.264695] pinctrl core: initialized pinctrl subsystem
[    0.270715] DMI not present or invalid.
[    0.275283] NET: Registered protocol family 16
[    0.281459] DMA: preallocated 256 KiB GFP_KERNEL pool for atomic allocations
[    0.288807] DMA: preallocated 256 KiB GFP_KERNEL|GFP_DMA pool for atomic allocations
[    0.296882] DMA: preallocated 256 KiB GFP_KERNEL|GFP_DMA32 pool for atomic allocations
[    0.305580] thermal_sys: Registered thermal governor 'step_wise'
[    0.305586] thermal_sys: Registered thermal governor 'power_allocator'
[    0.312123] cpuidle: using governor menu
[    0.322957] hw-breakpoint: found 6 breakpoint and 4 watchpoint registers.
[    0.329995] ASID allocator initialised with 65536 entries
[    0.358115] HugeTLB registered 1.00 GiB page size, pre-allocated 0 pages
[    0.364991] HugeTLB registered 32.0 MiB page size, pre-allocated 0 pages
[    0.371843] HugeTLB registered 2.00 MiB page size, pre-allocated 0 pages
[    0.378694] HugeTLB registered 64.0 KiB page size, pre-allocated 0 pages
[    0.386546] cryptd: max_cpu_qlen set to 1000
[    0.393758] k3-chipinfo 43000014.chipid: Family:AM62X rev:SR1.0 JTAGID[0x0bb7e02f] Detected
[    0.402826] vcc_5v0: supplied by vmain_pd
[    0.407298] vcc_3v3_sys: supplied by vmain_pd
[    0.412178] vcc_1v8: supplied by vcc_3v3_sys
[    0.417510] iommu: Default domain type: Translated 
[    0.422836] SCSI subsystem initialized
[    0.427080] mc: Linux media interface: v0.10
[    0.431466] videodev: Linux video capture interface: v2.00
[    0.437138] pps_core: LinuxPPS API ver. 1 registered
[    0.442212] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[    0.451563] PTP clock support registered
[    0.455600] EDAC MC: Ver: 3.0.0
[    0.459451] omap-mailbox 29000000.mailbox: omap mailbox rev 0x66fc9100
[    0.466590] FPGA manager framework
[    0.470166] Advanced Linux Sound Architecture Driver Initialized.
[    0.477230] clocksource: Switched to clocksource arch_sys_counter
[    0.483685] VFS: Disk quotas dquot_6.6.0
[    0.487745] VFS: Dquot-cache hash table entries: 512 (order 0, 4096 bytes)
[    0.499983] NET: Registered protocol family 2
[    0.504730] IP idents hash table entries: 32768 (order: 6, 262144 bytes, linear)
[    0.513470] tcp_listen_portaddr_hash hash table entries: 1024 (order: 2, 16384 bytes, linear)
[    0.522248] TCP established hash table entries: 16384 (order: 5, 131072 bytes, linear)
[    0.530450] TCP bind hash table entries: 16384 (order: 6, 262144 bytes, linear)
[    0.538176] TCP: Hash tables configured (established 16384 bind 16384)
[    0.545061] UDP hash table entries: 1024 (order: 3, 32768 bytes, linear)
[    0.551959] UDP-Lite hash table entries: 1024 (order: 3, 32768 bytes, linear)
[    0.559440] NET: Registered protocol family 1
[    0.564350] RPC: Registered named UNIX socket transport module.
[    0.570421] RPC: Registered udp transport module.
[    0.575257] RPC: Registered tcp transport module.
[    0.580069] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    0.586660] NET: Registered protocol family 44
[    0.591219] PCI: CLS 0 bytes, default 64
[    0.595986] hw perfevents: enabled with armv8_cortex_a53 PMU driver, 7 counters available
[    0.608074] Initialise system trusted keyrings
[    0.612829] workingset: timestamp_bits=46 max_order=19 bucket_order=0
[    0.622963] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    0.629527] NFS: Registering the id_resolver key type
[    0.634735] Key type id_resolver registered
[    0.639013] Key type id_legacy registered
[    0.643165] nfs4filelayout_init: NFSv4 File Layout Driver Registering...
[    0.650025] nfs4flexfilelayout_init: NFSv4 Flexfile Layout Driver Registering...
[    0.657773] 9p: Installing v9fs 9p2000 file system support
[    0.698365] Key type asymmetric registered
[    0.702561] Asymmetric key parser 'x509' registered
[    0.707584] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 243)
[    0.715149] io scheduler mq-deadline registered
[    0.719779] io scheduler kyber registered
[    0.725933] pinctrl-single 4084000.pinctrl: 34 pins, size 136
[    0.732242] pinctrl-single f4000.pinctrl: 171 pins, size 684
[    0.745157] Serial: 8250/16550 driver, 10 ports, IRQ sharing enabled
[    0.764559] brd: module loaded
[    0.774716] loop: module loaded
[    0.778828] megasas: 07.714.04.00-rc1
[    0.786115] tun: Universal TUN/TAP device driver, 1.6
[    0.791822] igbvf: Intel(R) Gigabit Virtual Function Network Driver
[    0.798245] igbvf: Copyright (c) 2009 - 2012 Intel Corporation.
[    0.804354] sky2: driver version 1.30
[    0.809028] VFIO - User Level meta-driver version: 0.3
[    0.815260] i2c /dev entries driver
[    0.820455] sdhci: Secure Digital Host Controller Interface driver
[    0.826796] sdhci: Copyright(c) Pierre Ossman
[    0.831565] sdhci-pltfm: SDHCI platform and OF driver helper
[    0.838387] ledtrig-cpu: registered to indicate activity on CPUs
[    0.844868] SMCCC: SOC_ID: ARCH_SOC_ID not implemented, skipping ....
[    0.852897] 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.857485] optee: revision 3.20 (7d17f891)
[    0.874046] optee: dynamic shared memory is enabled
[    0.883548] optee: initialized driver
[    0.889267] NET: Registered protocol family 17
[    0.893975] 9pnet: Installing 9P2000 support
[    0.898423] Key type dns_resolver registered
[    0.903138] Loading compiled-in X.509 certificates
[    0.918897] ti-sci 44043000.system-controller: lpm region is required for suspend but not provided.
[    0.928225] ti-sci 44043000.system-controller: ABI: 3.1 (firmware rev 0x0008 '8.6.4--v08.06.04 (Chill Capybar')
[    0.992289] davinci-mcasp 2b10000.mcasp: IRQ common not found
[    1.000554] omap-gpmc 3b000000.memory-controller: GPMC revision 6.0
[    1.007012] gpmc_mem_init: disabling cs 0 mapped at 0x0-0x1000000
[    1.015971] omap_i2c 20000000.i2c: bus 0 rev0.12 at 400 kHz
[    1.023618] omap_i2c 20010000.i2c: bus 1 rev0.12 at 100 kHz
[    1.029898] ti-sci-intr 4210000.interrupt-controller: Interrupt Router 5 domain created
[    1.038246] ti-sci-intr bus@f0000:interrupt-controller@a00000: Interrupt Router 3 domain created
[    1.047498] ti-sci-inta 48000000.interrupt-controller: Interrupt Aggregator domain 28 created
[    1.056940] ti-udma 485c0100.dma-controller: Number of rings: 82
[    1.064897] ti-udma 485c0100.dma-controller: Channels: 48 (bchan: 18, tchan: 12, rchan: 18)
[    1.075820] ti-udma 485c0000.dma-controller: Number of rings: 150
[    1.085628] ti-udma 485c0000.dma-controller: Channels: 35 (tchan: 20, rchan: 15)
[    1.095649] printk: console [ttyS2] disabled
[    1.100097] 2800000.serial: ttyS2 at MMIO 0x2800000 (irq = 27, base_baud = 3000000) is a 8250
[    1.108863] printk: console [ttyS2] enabled
[    1.108863] printk: console [ttyS2] enabled
[    1.117305] printk: bootconsole [ns16550a0] disabled
[    1.117305] printk: bootconsole [ns16550a0] disabled
[    1.131907] spi-nor spi0.0: s28hs512t (65536 Kbytes)
[    1.136935] 7 fixed-partitions partitions found on MTD device fc40000.spi.0
[    1.143888] Creating 7 MTD partitions on "fc40000.spi.0":
[    1.149288] 0x000000000000-0x000000080000 : "ospi.tiboot3"
[    1.155965] 0x000000080000-0x000000280000 : "ospi.tispl"
[    1.162317] 0x000000280000-0x000000680000 : "ospi.u-boot"
[    1.168682] 0x000000680000-0x0000006c0000 : "ospi.env"
[    1.174806] 0x0000006c0000-0x000000700000 : "ospi.env.backup"
[    1.181529] 0x000000800000-0x000003fc0000 : "ospi.rootfs"
[    1.187916] 0x000003fc0000-0x000004000000 : "ospi.phypattern"
[    1.200478] davinci_mdio 8000f00.mdio: Configuring MDIO in manual mode
[    1.245235] davinci_mdio 8000f00.mdio: davinci mdio revision 9.7, bus freq 1000000
[    1.254975] davinci_mdio 8000f00.mdio: phy[0]: device 8000f00.mdio:00, driver TI DP83867
[    1.263082] davinci_mdio 8000f00.mdio: phy[1]: device 8000f00.mdio:01, driver TI DP83867
[    1.271258] am65-cpsw-nuss 8000000.ethernet: initializing am65 cpsw nuss version 0x6BA01103, cpsw version 0x6BA81103 Ports: 3 quirks:00000006
[    1.284094] am65-cpsw-nuss 8000000.ethernet: initialized cpsw ale version 1.5
[    1.291220] am65-cpsw-nuss 8000000.ethernet: ALE Table size 512
[    1.297868] am65-cpsw-nuss 8000000.ethernet: CPTS ver 0x4e8a010c, freq:500000000, add_val:1 pps:0
[    1.308207] am65-cpsw-nuss 8000000.ethernet: set new flow-id-base 19
[    1.318296] rtc-ti-k3 2b1f0000.rtc: registered as rtc0
[    1.323486] rtc-ti-k3 2b1f0000.rtc: setting system clock to 1970-01-01T00:00:07 UTC (7)
[    1.435966] mmc0: CQHCI version 5.10
[    1.437398] davinci-mcasp 2b10000.mcasp: IRQ common not found
[    1.457045] pca953x 1-0022: supply vcc not found, using dummy regulator
[    1.463797] pca953x 1-0022: using AI
[    1.475883] mmc0: SDHCI controller on fa10000.mmc [fa10000.mmc] using ADMA 64-bit
[    1.492553] sii902x 1-003b: supply iovcc not found, using dummy regulator
[    1.499466] sii902x 1-003b: supply cvcc12 not found, using dummy regulator
[    1.509153] i2c i2c-1: Added multiplexed i2c bus 2
[    1.516003] [drm] Initialized tidss 1.0.0 20180215 for 30200000.dss on minor 0
[    1.523744] tidss 30200000.dss: [drm] Cannot find any crtc or sizes
[    1.532822] vdd_mmc1: supplied by vcc_3v3_sys
[    1.539018] wlan_lten: supplied by vcc_3v3_sys
[    1.545113] debugfs: Directory 'pd:53' with parent 'pm_genpd' already present!
[    1.545507] wlan_en: supplied by wlan_lten
[    1.545833] mmc1: CQHCI version 5.10
[    1.552395] debugfs: Directory 'pd:52' with parent 'pm_genpd' already present!
[    1.556662] mmc2: CQHCI version 5.10
[    1.560175] debugfs: Directory 'pd:51' with parent 'pm_genpd' already present!
[    1.578503] mmc0: Command Queue Engine enabled
[    1.578515] debugfs: Directory 'pd:182' with parent 'pm_genpd' already present!
[    1.582967] mmc0: new HS200 MMC card at address 0001
[    1.589775] mmc1: SDHCI controller on fa00000.mmc [fa00000.mmc] using ADMA 64-bit
[    1.603768] mmcblk0: mmc0:0001 S0J56X 14.8 GiB 
[    1.608075] mmc2: SDHCI controller on fa20000.mmc [fa20000.mmc] using ADMA 64-bit
[    1.608679] mmcblk0boot0: mmc0:0001 S0J56X partition 1 31.5 MiB
[    1.622157] mmcblk0boot1: mmc0:0001 S0J56X partition 2 31.5 MiB
[    1.628370] mmcblk0rpmb: mmc0:0001 S0J56X partition 3 4.00 MiB, chardev (237:0)
[    1.636135] sdhci-am654 fa20000.mmc: card claims to support voltages below defined range
[    1.643267] ALSA device list:
[    1.647184]   No soundcards found.
[    1.651068] Waiting for root device PARTUUID=00000000-02...
[    1.656328] mmc2: new high speed SDIO card at address 0001
[    1.683832] mmc1: new ultra high speed SDR104 SDHC card at address aaaa
[    1.691128] mmcblk1: mmc1:aaaa SC16G 14.8 GiB 
[    1.701015]  mmcblk1: p1 p2
[    1.764159] EXT4-fs (mmcblk1p2): mounted filesystem with ordered data mode. Opts: (null)
[    1.772341] VFS: Mounted root (ext4 filesystem) on device 179:98.
[    1.782166] devtmpfs: mounted
[    1.786425] Freeing unused kernel memory: 1856K
[    1.791043] Run /sbin/init as init process
[    1.852963] EXT4-fs (mmcblk1p2): re-mounted. Opts: (null)
Starting syslogd: OK
Starting klogd: OK
Running sysctl: OK
Seeding 256 bits without crediting
Saving 256 bits of non-creditable seed for next boot
Starting network: OK

Welcome to Buildroot
buildroot login: root
# ls -al /
total 26
drwxr-xr-x   19 root     root          1024 May 29  2023 .
drwxr-xr-x   19 root     root          1024 May 29  2023 ..
drwxr-xr-x    2 root     root          2048 May 29  2023 bin
drwxr-xr-x    2 root     root          1024 May 29  2023 boot
drwxr-xr-x    9 root     root          4120 Jan  1 00:00 dev
drwxr-xr-x    5 root     root          1024 May 29  2023 etc
drwxr-xr-x    5 root     root          1024 May 29  2023 lib
lrwxrwxrwx    1 root     root             3 May 29  2023 lib64 -> lib
lrwxrwxrwx    1 root     root            11 May 29  2023 linuxrc -> bin/busybox
drwx------    2 root     root         12288 May 29  2023 lost+found
drwxr-xr-x    2 root     root          1024 Apr 20  2023 media
drwxr-xr-x    2 root     root          1024 Apr 20  2023 mnt
drwxr-xr-x    2 root     root          1024 Apr 20  2023 opt
dr-xr-xr-x  172 root     root             0 Jan  1 00:00 proc
drwx------    2 root     root          1024 Jan  1 00:00 root
drwxr-xr-x    4 root     root           160 Jan  1 00:00 run
drwxr-xr-x    2 root     root          1024 May 29  2023 sbin
dr-xr-xr-x   12 root     root             0 Jan  1 00:00 sys
drwxrwxrwt    2 root     root            60 Jan  1 00:00 tmp
drwxr-xr-x    6 root     root          1024 May 29  2023 usr
drwxr-xr-x    4 root     root          1024 May 29  2023 var
# ip link set eth0 up
[   21.144150] am65-cpsw-nuss 8000000.ethernet eth0: PHY [8000f00.mdio:00] driver [TI DP83867] (irq=POLL)
[   21.153472] am65-cpsw-nuss 8000000.ethernet eth0: configuring for phy/rgmii-rxid link mode
# [   24.213979] am65-cpsw-nuss 8000000.ethernet eth0: Link is Up - 1Gbps/Full - flow control rx/tx

# ip addr add dev eth0 192.168.1.20/24
# ping 192.168.1.1
PING 192.168.1.1 (192.168.1.1): 56 data bytes
64 bytes from 192.168.1.1: seq=0 ttl=64 time=2.140 ms
64 bytes from 192.168.1.1: seq=1 ttl=64 time=0.627 ms
64 bytes from 192.168.1.1: seq=2 ttl=64 time=0.598 ms
64 bytes from 192.168.1.1: seq=3 ttl=64 time=0.672 ms
64 bytes from 192.168.1.1: seq=4 ttl=64 time=0.556 ms
^C
--- 192.168.1.1 ping statistics ---
5 packets transmitted, 5 packets received, 0% packet loss
round-trip min/avg/max = 0.556/0.918/2.140 ms
# poweroff
# Stopping network: OK
Seeding 256 bits without crediting
Saving 256 bits of non-creditable seed for next boot
Stopping klogd: OK
Stopping syslogd: OK
umount: devtmpfs busy - remounted read-only
[   49.709094] EXT4-fs (mmcblk1p2): re-mounted. Opts: (null)
The system is going down NOW!
Sent SIGTERM to all processes
Sent SIGKILL to all processes
[   51.732249] reboot: Power down
ERROR:   System Off: operation not handled.

修补 tarball

存档名称/链接 更改日志
buildroot-am64-sk-15-may-2023.tar.gz
  • 初始补丁集
  • 仅支持 SK-AM64 (带 GP 器件型号)
  • 使用上游 U-Boot/Kernel /ATF/OPTEE
buildroot-am64-sk-am62-sk-29-may-2023.tar.gz
  • 为 SK-AM62 (GP 器件型号)添加了支持
  • 使用  TI Processor SDK Linux v8.6 (通过可选补丁)中的 U-Boot/Kernel /ATF/OPTEE 和各种器件固件 、以实现 与官方 SDK 相似级别的基本平台功能完整性和质量
  • 各种修复和清理
buildroot-am64-sk-am62-sk-1-jun-2023.tar.gz
  • 默认情况下、支持具有 AM62 HS-FS 的 SK-AM62B 和具有 AM64 HS-FS 器件型号的 SK-AM64B。 请注意、这需要  TI_SECURE_DEV_PKG 环境变量在编译时定义、指向有效的 core-secdev-k3 文件夹 位置、否则编译将失败。
buildroot-am64-sk-am62-sk-patch-v8-15-jun-2023.tar.gz
buildroot-am64-sk-am62-sk-patch-v9-22-jun-2023.tar.gz
  • 添加了 ti-core-secdev-k3 封装、以 自动为 HS-FS 器件型号添加引导伪影。 因此、不再需要执行下载/克隆 TI core-secDEV-K3工具并通过 TI_secure_DEV_PKG 环境变量对其进行公开的设置步骤