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.

[参考译文] AM6548:在 u-boot 或更早版本中加载 R5F 固件

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1360697/am6548-load-r5f-firmware-in-u-boot-or-even-earlier

器件型号:AM6548

高支持、

目前、我们在 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 引导功能、但您不应期望添加任何其他特性。

    此致、

    尼克