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.

[参考译文] RTOS/EVMK2G:什么适用于 TI-RTOS 的引导加载程序?

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

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/588607/rtos-evmk2g-what-bootloader-for-ti-rtos

器件型号:EVMK2G
主题中讨论的其他器件:UNIFLASH、66AK2G02

工具/软件:TI-RTOS

我们的应用将使用运行 TI-RTOS 的 ARM 和 DSP。  我们的应用程序将包含必须被视为安全 IP 的代码。  我怀疑安全启动是一个问题。

我看到支持 SBL (http://processors.wiki.ti.com/index.php/Processor_SDK_RTOS_BOOT_AM57x?keyMatch=sbl&tisearch=Search-EN)

我们在 U-Boot 方面拥有丰富的经验、我们认为这一点非常有吸引力、因为 U-Boot 支持 USB 和以太网进行固件更新。 在我看来、SBL 将用于加载 U-Boot、U-Boot 将加载 ARM 和 DSP 的实际应用并启动它们。

这是一种常见的方法吗?  您能否提供有关安全启动的任何指导?

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

    卡盘、

    是的、适用于 RTOS SDK。 目前、建议在 SDK 中引导和刷写 SBL 软件包、我们建议部署 ARM 和 DSP 应用。 SDK 中提供了一些工具来组合 ARM 和 DSP 映像、然后由将在作为引导主控方的 ARM 上运行的 SBL 在两个内核上部署这些映像。 目前、我们仅支持具有 SBL 的非安全通用器件。

      

    我们正在进行安全启动开发、并将在2017年第2季度推出 Processor SDK RTOS SECDEV 版本。 要尽早访问此版本、您需要与您当地的 TI 联系人/业务团队合作、因为用于保护 IP 的安全启动软件将在通过我们的安全门户 www.ti.com/mysecuresoftware 签署 NDA 协议后分发。 这还需要您使用硅/EVM 的 HS 型号。

    如果您想使用 U-boot、我们将继续支持通用 A15内核和 HS 芯片的 U-boot 和引导监控器、并使用 Processor SDK Linux 和 Processor SDK Linux SECDEV。

    关于闪存和固件更新的另一个问题、我们正在考虑支持 Uniflash 之类的工具、该工具受 Sitara 器件支持、适用于此产品。 n`t 讨论处于早期阶段、我无法提供此功能支持的时间表。
    processors.wiki.ti.com/.../Sitara_Uniflash_Quick_Start_Guide

    此致、
    Rahul

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Uniflash 看起来很有趣、但依赖安全版本的 UBoot 是否更有意义? 我们将对这两者进行研究。
    我最感兴趣的是使用引导加载程序来大幅改善更改代码时的周转时间。 今天、在 K2G 上、我需要经历3分钟的断开、连接、加载、启动每个处理器的过程、只需对代码进行一行更改。 我并不总是需要调试器、因此我想让构建在 tftp 服务器中生成一个二进制文件、并让 uboot 加载并启动它。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    对于 RTOS、在没有调试器的情况下运行更新软件的唯一可用方法是使用 SD/MMC、但这也需要用户插入 PC 插槽更新并将其放回 EVM。 另一种选择是将 DSP 二进制文件放入网络文件系统、并让 remoteproc 和 IPC 加载 DSP、但这会增加复杂性、因为 u-boot 和 Linux 可能需要修改以获取专用于 DSP 的内存和资源。

    感谢您的反馈、我将与开发团队沟通、看看我们是否可以启用此功能。 我怀疑 Linux SDK 可以从 u-boot 启用此功能、因为 SDK 需要将代码传输到主线、并且在 uboot 中启用和加载辅助内核存在一些限制、但我们可能能够让 Linux 从网络启动 DSP 二进制文件 文件系统。

    此致、
    Rahul
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我们应该能够在不使用 Linux 的情况下使用 uBoot。 它只是将位加载到存储器中。 然后、我们需要相应的代码来启动映像、但这必须已经存在。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是的、您可以使用 u-boot。 我的意思是、加载 DSP 存储器并启动它的自定义将留给最终用户、因为 Linux SDK 软件只支持已上传到主线中的内容。

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

    Rahul、

      我尝试运行在 CCS 中生成的.out 文件(ARM)、并测试了66AK2G02 EVM 上的 LED 是否闪烁。 我使用的是 Processor SDK 中的 SD 卡映像。 我编写的程序基于资源浏览器中的"Hello example"。

      使用 K2GEVM.ccxml 调试配置、从 CCS 通过调试链接运行程序会按预期工作。 但是、当我尝试通过使用"fatload MMC 0 ${loadaddr}hello_K2GEVM_CortexA.out"并使用"bootelf"运行从 U-Boot 加载时、我看到程序已加载、U-Boot 报告正确的入口点:

    => fatload MMC 0 ${loadaddr}hello_k2gevm_cortexa.out
    正在读取 hello_k2gevm_cortexa.out
    1029956字节在57ms (17.2 mB/s)内读取
    => bootelf
    ##正在启动应用程序,地址为0x80005100...
    

    但是、该程序不会像通过 CCS 中的调试工具加载时那样使 LED 闪烁。

    我尝试连接调试器并检查 RAM、可以看到 RAM 已加载、并尝试将其放置在 PC 寄存器中以跳转到入口点。 但是、这不会产生预期的负载。

    但是、成功启动的结果是在 U-Boot 中加载程序并运行 bootef 命令、然后连接调试器、暂停、使用 Run->Reset->CPU Reset (SW)、将入口点放在 PC 寄存器中、并在 ARM 内核上恢复执行。

    对于如何将 CPU 置于某种状态(从 U-Boot)以允许独立可执行文件运行、是否有任何建议?

    此致、

    Jon