高支持、
目前、我们在 Linux 启动期间使用 Remoteproc 来加载 R5F 固件。 也就是说、我们将固件文件复制到/lib/firmware linux 文件夹、然后在 Linux 启动期间加载该文件。
R5F 运行裸机应用。 我们的 BSP 基于 TI SDK 07.01。
我想知道是否有方法可以在更早的版本中加载 R5F MCU 固件、例如在 u-boot 或更早的版本中?
我们希望 R5F MCU 在上电后尽早开始执行
谢谢
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.
高支持、
目前、我们在 Linux 启动期间使用 Remoteproc 来加载 R5F 固件。 也就是说、我们将固件文件复制到/lib/firmware linux 文件夹、然后在 Linux 启动期间加载该文件。
R5F 运行裸机应用。 我们的 BSP 基于 TI SDK 07.01。
我想知道是否有方法可以在更早的版本中加载 R5F MCU 固件、例如在 u-boot 或更早的版本中?
我们希望 R5F MCU 在上电后尽早开始执行
谢谢
Kevin 老师好!
1) 1)您的 Linux SDK 和 RTOS SDK 都基于7.1? 请记住、SDK 版本足够旧、我们将无法为此提供软件支持。
2) 2)请注意、我们通常无法再支持 PROCESSOR-SDK-RTOS AM65X-AM65X 版本。 请访问 https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1358029/notice-regarding-am65x-rtos-sdk-processor-sdk-rtos-am65x ,我正在与团队合作,以获取 SDK 网站的更新。
3) 3)您使用的引导流程是什么?
此致、
尼克
您好、Nick。
感谢您的答复。
1. Linux 以 TI SDK 7.01为基础。 R5F 运行裸机 C/C++应用程序。 我们不使用 RTOS。
2. 我们要更改为引导 R5F 并 在上电后尽快执行裸机 C/C++应用程序
3.我不是很清楚为什么你指的是"启动流"。 我认为它是 u-boot -> Linux 内核。 在 Linux 启动期间、它使用 Remoteproc 加载 R5F 固件。
您可以在系统引导期间查看以下控制台输出。
当前引导输出的开头如下所示:
U-Boot SPL 2020.01-g6eecb83-BSP-Yocto-TISDK-AM65xx-ALPHA4-dirty (Oct 04 2023 - 03:44:33 +0000) SYSFW ABI: 3.1 (firmware rev 0x0014 '20.8.5--v2020.08b (Terrific Lla') Trying to boot from MMC2 Starting ATF on ARM64 core... U-Boot SPL 2020.01-g6eecb83-BSP-Yocto-TISDK-AM65xx-ALPHA4-dirty (Jan 16 2024 - 05:02:48 +0000) SYSFW ABI: 3.1 (firmware rev 0x0014 '20.8.5--v2020.08b (Terrific Lla') Trying to boot from MMC2 U-Boot 2020.01-g6eecb83-BSP-Yocto-TISDK-AM65xx-ALPHA4-dirty (Jan 16 2024 - 05:02:48 +0000) SoC: AM65X SR2.0 Model: PHYTEC phyCORE-AM65x Carrier Board DRAM: 2 GiB MMC: sdhci@4f80000: 0, sdhci@4fa0000: 1 Loading Environment from FAT... *** Warning - bad CRC, using default environment Loading Environment from MMC... OK In: serial Out: serial Err: serial Net: Warning: ethernet@46000000 using MAC address from ROM eth0: ethernet@46000000 Hit any key to stop autoboot: 0 switch to partitions #0, OK mmc1 is current device SD/MMC found on device 1 16965640 bytes read in 706 ms (22.9 MiB/s) 67312 bytes read in 7 ms (9.2 MiB/s) 1771 bytes read in 5 ms (345.7 KiB/s) ## Flattened Device Tree blob at 88000000 Booting using the fdt blob at 0x88000000 Loading Device Tree to 000000008feec000, end 000000008fffffff ... OK Starting kernel ... [ 0.000000] 000: printk: bootconsole [ns16550a0] enabled [ 0.000000] 000: Reserved memory: created DMA memory pool at 0x00000000a0000000, size 1 MiB [ 0.000000] 000: OF: reserved mem: initialized node r5f-dma-memory@a0000000, compatible id shared-dma-pool
在 Linux 启动期间、它使用 Remoteproc 加载 R5F 固件:
[ 12.004635] platform 41000000.r5f: configured R5F for remoteproc mode [ 12.063004] remoteproc remoteproc0: 41000000.r5f is available [ 12.095078] remoteproc remoteproc0: powering up 41000000.r5f [ 12.095108] remoteproc remoteproc0: Booting fw image am65x-mcu-r5f0_0-fw, size 2190660 [ 12.185307] remoteproc0#vdev0buffer: assigned reserved memory node r5f-dma-memory@a0000000 [ 12.274545] remoteproc0#vdev0buffer: registered virtio0 (type 7) [ 12.274557] remoteproc remoteproc0: remote processor 41000000.r5f is now up
此致
Kevin 老师好!
好的、如果您在使用 Linux SDK 中的标准引导流程、则使用的是"SPL"引导流程。
可能是您最简单的选项:在 uboot 中引导 R5F
有一个 uboot rproc 驱动程序可用于初始化远程内核。 看起来 AM65x SDK 7.1确实支持该驱动程序:
https://software-dl.ti.com/processor-sdk-linux/esd/AM65X/07_01_00_17/exports/docs/linux/Foundational_Components_ Boot.html#remoteproc
SBL 引导流程和 R5F 早期引导
RTOS SDK 7.1中有一种称为"SBL"引导流程的不同引导流程。 SPL 与 SBL 在 uboot 之前发生-无论哪种方式、在早期的引导加载程序运行后、它都会启动 uboot、然后是 Linux。
如果您正在使用 SBL 引导流程、这将是 早期引导 R5F 内核的最快方法。 甚至在 uboot 开始运行之前、SBL 也可以初始化 R5F 内核: https://software-dl.ti.com/processor-sdk-rtos/esd/AM65X/07_01_00_14/exports/docs/pdk_am65xx_07_01_00_55/docs/userguide/am65xx/boot/boot_k3.html
未来的读者、
请记住、AM65x MCU+ 9.1 SDK 不支持 SBL 引导(因此标准 Linux SDK SPL 引导流程是唯一受支持的引导流程)。 可能会在以后的 AM65x MCU+ SDK 版本中添加 SBL 引导功能、但您不应期望添加任何其他特性。
此致、
尼克