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.

[参考译文] 关于:SK-AM62-LP:Linux 和 M4F 之间的 RPMsg

Guru**** 2416110 points
Other Parts Discussed in Thread: UNIFLASH

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1529953/re-sk-am62-lp-rpmsg-between-linux-and-m4f

Thread 中讨论的其他器件:UNIFLASH

此主题是此处讨论的延续:
https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1526599/sk-am62-lp-booting-linux-and-m4f-mcu-binary-from-emmc-at-power-on 

您好、

我们只需要在 M4F 内核和 Linux 之间使用 RPMsg 通信。

目前、我们计划ipc_rpmsg_echo_linux在应用中使用该示例。
作为参考、我们使用以下命令:

python3 uart_uniflash.py -p /dev/ttyUSB0 --cfg=sbl_prebuilt/am62x-sk-lp/default_sbl_emmc_linux_hs_fs.cfg

但是、此示例也涉及 R5 内核。
此设置是否只能使用两个内核(一个运行 Linux 的 A53 内核、一个 M4F 内核)?

请您分享实现这一目标的方法或步骤。

此致、
Gopal Sharma





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

    您好、Gopal、

    默认情况下、SBL 固件不会将 RPMsg 示例加载到 DM R5F 内核中。 如果您想仔细检查、可以在启动期间向我展示终端输出、我们可以检查 Linux 如何与 DM R5F 内核交互。

    是的、您可以在 Linux 和 M4F 内核之间执行 RPMsg。

    有多种方法可以在引导期间初始化 M4F 内核。 有关更多信息、请参阅 AM62x Academy:
    多核>引导和禁用处理器内核>初始化远程内核的方法
    https://dev.ti.com/tirex/explore/node?node=A__AXoA3i9lx8c-jH8btw5.pA__AM62-ACADEMY__uiYMDcq__LATEST

    无论 M4F 内核如何初始化、都可以在 Linux 和 M4F 内核之间执行 RPMsg。

    此致、

    Nick

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

    您好、

    如果有任何方法从 Linux 加载 M4F 固件、请分享详细信息。

    此致、
    戈帕尔

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

    您好、Gopal、

    供参考:已编辑的回复

    我编辑了您的回复,将终端输出放在代码块中。 您将来可以通过转到来实现这一点
    插入>代码

    解读输出  

    首先、请查看两个终端输出中的第一行。 您说您正在执行 SBL 引导、在您的 SBL 输出期间、我们看到了

    [BOOTLOADER_PROFILE] Cores present :
    m4f0-0
    r5f0-0
    [BOOTLOADER PROFILE] System_init : 23332us
    [BOOTLOADER PROFILE] Board_init : 0us
    [BOOTLOADER PROFILE] Drivers_open : 20722us
    [BOOTLOADER PROFILE] Board_driversOpen : 0us
    [BOOTLOADER PROFILE] Sciclient Get Version : 10204us
    [BOOTLOADER PROFILE] App_loadImages : 7574us
    [BOOTLOADER PROFILE] App_loadSelfcoreImage : 8225us
    [BOOTLOADER_PROFILE] SBL Total Time Taken : 70059us
    
    Image loading done, switching to application ...
    Starting MCU-m4f and 2nd stage bootloader

    SBL 声称它正在引导 M4F。 如果确实如此、则 M4F 将已经在 Linux 导通之前运行。 然后、Linux Remoteproc 驱动程序应“连接“到已在运行的 M4F、而不是“初始化“仍处于关闭状态的 M4F。

    在您的第二个引导日志中、我们看到了

    [ 8.237153] k3-m4-rproc 5000000.m4fss: assigned reserved memory node m4f-dma-memory@9cb00000
    [ 8.253047] k3-m4-rproc 5000000.m4fss: configured M4F for IPC-only mode
    [ 8.298383] remoteproc remoteproc0: 5000000.m4fss is available
    ...
    [ 8.311960] remoteproc remoteproc0: attaching to 5000000.m4fss
    [ 8.341919] rproc-virtio rproc-virtio.3.auto: assigned reserved memory node m4f-dma-memory@9cb00000
    [ 8.360447] virtio_rpmsg_bus virtio0: rpmsg host is online
    [ 8.361295] virtio_rpmsg_bus virtio0: creating channel ti.ipc4.ping-pong addr 0xd
    [ 8.367221] rproc-virtio rproc-virtio.3.auto: registered virtio0 (type 7)
    [ 8.381319] remoteproc remoteproc0: remote processor 5000000.m4fss is now attached

    实际上、我在上一个回复中链接到的学院页面中包含了有关附加信息:
    https://dev.ti.com/tirex/explore/node?node=A__AXoA3i9lx8c-jH8btw5.pA__AM62-ACADEMY__uiYMDcq__LATEST 

    一般般…… 下一步是什么?  

    如果您希望 Linux 初始化 M4F 而不是 SBL、则需要在 SBL 中禁用 M4F 内核。

    请参阅 AM62x 学院:
    多核>引导和禁用处理器内核>禁用远程内核的方法
    https://dev.ti.com/tirex/explore/node?node=A__AYOA.KT56sP6jW8Ke3ucPQ__AM62-ACADEMY__uiYMDcq__LATEST 

    此致、

    Nick