Other Parts Discussed in Thread: AM4376
器件型号: AM4376
尊敬的 TI 团队:
我们正在使用元件 AM4376、并将下面的问题阻止我们的测试和工程、能否帮助您了解一下、谢谢。
演示默认启动是 MMC0 (Micro SD)、我们的工程要求从闪存开始。 我们根据 SDK 指南将版本烧录到闪存、但无法启动。
BR、
Bijian Chen
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.
您好、Bijan Chen、
感谢您的查询!
您能帮助我更详细地了解 用于引导的 AM4376 I/O 接口吗?
我知道 microSD 卡上有 SDK 引导加载程序和操作系统映像、该卡在 MMC0 端口映射。 一些闪存加载程序用于将映像写入外部闪存。
问题 1: 您是否要指定 SDK 的类型/版本 — MCU PLUS 或 Linux SDK?
问题 2: 您是否在非 SD 卡引导模式(例如在 UART 中)下成功引导 AM4376 ROM 代码?
问题 3 如果对 Q2 的答复是肯定的、您是否验证了刻录到 Q-SPI 闪存上的引导映像? 您是否确定可以正确读取和写入 Q-SPI 闪存?
问题 3 这意味着什么 — 系统无法启动? 是否有任何硬件活动指示 — LED 亮起、闪烁。 UART 控制台上是否绝对没有打印消息?
问题 6. 如果问题 2 回答为否、您是否确保所有电源均存在并按照 AM437x 数据表建议的通电顺序打开?
期待您的反馈!
谢谢
此致
Anastas Yordanov
我在 AM4378-SK 板上同样使用了 Linux SDK11.2 和 6.3、也无法从 QSPI NOR 闪存引导
#1。 使用 am43xx_evm_qspiboot_defconfig 构建 u-boot.bin
=> mmc rescan
=>
=> fatload mmc 0 ${loadaddr} u-boot.bin
759824 bytes read in 43 ms (16.9 MiB/s)
=> sf probe 0
SF: Detected mx66l51235l with page size 256 Bytes, erase size 64 KiB, total 64 MiB
=> sf erase 0x0 0x100000
SF: 1048576 bytes @ 0x0 Erased: OK
=> sf write ${loadaddr} 0x0 ${filesize}
device 0 offset 0x0, size 0xb9810
SF: 759824 bytes @ 0x0 Written: OK
=>
#3. 关闭板电源、移除 SD 卡、再次上电、UART 无输出。
#4. 已在列表中选中引导模式具有 QSPI。
Root@AM437X-EVM:~# devmem2 0x44e10040
/dev/mem 已打开。
存储器映射在地址 0xb6f6e000 处。
在地址 0x44E10040 (0xb6f6e040) 读取:0x02400338


#5. 从用户指南 uboot 部分来看、QSPI 引导仅由 IDK 板支持、是否有原因?

我开发了 AM437x IDK、可以使用相同的 u-boot.bin 文件引导
U-Boot 2019.01-ga764a508fd-dirty (Feb 11 2026 - 16:46:24 +0800)
CPU : AM437X-GP rev 1.2
Model: TI AM437x Industrial Development Kit
DRAM: 1 GiB
PMIC: TPS62362
MMC: OMAP SD/MMC: 0
Loading Environment from SPI Flash... SF: Detected mx66l51235l with page size 256 Bytes, erase size 64 KiB, total 64 MiB
*** Warning - bad CRC, using default environment
Net:
Warning: ethernet@4a100000 using MAC address from ROM
eth0: ethernet@4a100000
Hit any key to stop autoboot: 0
MMC: no card present
MMC: no card present
MMC: no card present
MMC: no card present
starting USB...
USB0: Register 2000440 NbrPorts 2
Starting the controller
USB XHCI 1.00
scanning bus 0 for devices... 1 USB Device(s) found
usb - USB sub-system
Usage:
usb start - start (scan) USB controller
usb reset - reset (rescan) USB controller
usb stop [f] - stop USB [f]=force stop
usb tree - show USB device tree
usb info [dev] - show available USB devices
usb test [dev] [port] [mode] - set USB 2.0 test mode
(specify port 0 to indicate the device's upstream port)
Available modes: J, K, S[E0_NAK], P[acket], F[orce_Enable]
=>
为了仔细检查、我重新刷写了 SDK11.2 uboot.bin、仍然可以引导。
U-Boot 2025.01-ga44465cad8a3 (Feb 11 2026 - 16:26:26 +0800) CPU : AM437X-GP rev 1.2 Model: TI AM437x Industrial Development Kit DRAM: 1 GiB Core: 25 devices, 12 uclasses, devicetree: fit PMIC: TPS62362 MMC: OMAP SD/MMC: 0 Loading Environment from SPIFlash... SF: Detected mx66l51235l with page size 256 Bytes, erase size 64 KiB, total 64 MiB *** Warning - bad CRC, using default environment Net: eth2: ethernet@4a100000 Hit any key to stop autoboot: 0 MMC: no card present ** Bad device specification mmc 0 ** MMC: no card present starting USB... No USB controllers found USB is stopped. Please issue 'usb start' first. ## Error: "bootcmd_nand0" not defined starting USB... No USB controllers found ethernet@4a100000 Waiting for PHY auto negotiation to complete.....
IDK 板引导模式寄存器值:0x318、与 AM4378-SK 板引导模式设置没有明显不同。
root@am437x-evm:~# devmem2 0x44e10040 /dev/mem opened. Memory mapped at address 0xb6f59000. Read at address 0x44E10040 (0xb6f59040): 0x00400318 root@am437x-evm:~#
BTW。 接通电源后需要等待 29 秒才能获取 UBoot 日志输出。
尊敬的 Tony:
非常感谢两个 EVM 的传导测试 以及您在这里的输入。
我检查了两个 EVM 是否包含相同的 QSPI MACRONIX MX66L51235FMI NOR 闪存。
从随附的 MLO + U-Boot 构建表中、我知道没有默认的 TI 配置来构建可以引导的 MLO + U-Boot 映像 支持 QSPI 从 AM437x 入门套件上的 AM437x ROM 代码。 只有 defconfig 文件用于仅针对 AM437x 工业套件构建 QSPI 可引导 MLO/U-Boot。
经测试的 SYSBOOT [4:0]配置为:

以下是我根据您的完整 SYSBOOT 配置从 AM437x TRM 中编写的一些注释:
“从地址 0x44E10040 (0xb6f6e040) 读取:0x02400338“->该转换为二进制的值为:
0b0000 0010 0100 0000 0011 0011 1000
[4:0]= 0b11000 ->引导列表序列 :MMC0->USB1->USB0->QSPI(问:在达到 QSPI 之前执行器件扫描的速度有多快?)
[5]= 0b1 — 不用考虑
[7:6]= 0b00 — 从闪存进行四路读取 (引导)(与 STS 位字段说明错位)+ 引脚多路复用选项 0
注释: 所以我理解 MX66L51235FMI 的四路读取 QE 位必须是初始的 编程为 0b1、允许 ROM 在四通道模式下引导。
您的入门套件是否有这种情况?
[10:8]= 0b011 - GP 器件
[15:11]=0b00000 — 保持在复位值 0h
[16]= 0b0 - 8 位 GPMC 数据总线
[17]= 0b0 — 忽略等待输入
[19:18]= 0b00 — 无 GPMC 地址/数据多路复用
[21:20]= 0b00 — 保留
[23:22]= 0b01 - 24MHz — 选择系统时钟
[24] SYSBOT16 = 0b0 -> USB0 (USB_CL)/USB1 (USB_MS) DP/DM 未交换
[25] SYSBOOT17 = 0b1->CLKOUT1 信号在引脚:xdma_event_intr0 上选择
[26] SYSBOT18 = 0b0 ->不将 EXTCLK 路由到 CLKOUT2
BTW。 插入电源后需要等待 29 秒才能获取 UBoot 日志输出。
您是否检查了使用 SYSBOOT [4:0]的以下配置、可以更快地引导 U-boot?
![]()

让我咨询我们的 AM437x EVM/U-Boot 软件专家并跟进。
Bijan Chen,
请详细回答我的初始问题。
谢谢
此致
Anastas Yordanov