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.

[参考译文] 66ak2h14:超链接引导 ROM 段映射

Guru**** 2564410 points
Other Parts Discussed in Thread: 66AK2H14, CDCM6208

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/609757/66ak2h14-hyperlink-boot-rom-segment-mapping

器件型号:66AK2H14
主题中讨论的其他器件: CDCM6208

我有两个 EMVK2Hx 板、它们通过自定义背板连接、以允许超链接消息传递。 我已成功运行超链接示例应用并在两个板之间建立了通信。 我现在尝试通过超链接启动一个板。 我相信我已经成功地在 BMC 控制台中配置了引导模式,以允许 CorePac0通过超链接引导。 当 RX 器件处于超链接引导模式并且 TX 器件运行超链接示例应用程序时、我相信超链接连接已正确建立。 现在、我需要了解 RX 器件的默认段映射。  

我在2012年发布的一篇文章中包含了我找到的有关超链接引导 ROM 段映射的唯一信息。 在2012年4月17日的信中,Arun Mani 先生表示,该表将列入"下一个文件版本"。 据我所知、此信息不包含在任何 TI 文档中。 如果有提供此信息的文档、请指引我访问该信息的位置。 下面是原始帖子中的表格副本。 对于 KeyStone II 66AK2H14器件、我不清楚被描述为"Config Regs"的四个区域的实际映射。

引导 ROM 已初始化超链接段映射

部分

尺寸

已翻译地址

说明

0 - N

L2的大小

Core0 L2到 Coren L2的全局地址

全局 L2

N + 1

128K

0x08000000

XMC 配置

N + 2

1MB

0x0bc00000

MSMC 配置

N + 3

MSMC 存储器的大小

0x0c000000

MSMC 存储器

N + 4

4MB

0x01c00000

配置寄存器

N + 5

4MB

0x02000000

配置寄存器

N + 6

4MB

0x02400000

配置寄存器

N + 7

2MB

0x02800000

配置寄存器

N + 8

512字节

0x21000000

DDR 配置

(N + 9)–63

4MB

0x80000000 (4MB 步长)

DDR 存储器

(1)您能否提供反映 KeyStone II 66AK2H14器件超链接引导 ROM 段映射的更新表?

(2)假设引导魔法地址已经更新、将 CorePac0从空闲状态变为开始执行加载的代码的正确方法是什么?  

感谢您的支持。

插孔

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

    插孔、

    这是 Keystone II 器件的更新段映射。

    如 ARM Bootloader 用户指南中所示:

    www.ti.com/.../spruhj3.pdf


    配置外设后、ARM 内核执行一条 WFI 指令、该指令使 ARM 暂停执行、等待中断。 在 ARM 暂停时、超链接主机可以将引导映像写入 MSMC。 写入映像后、超链接主机必须将映像的执行起始地址写入主机引导数据地址寄存器。 超链接主机必须中断 ARM 以脱离挂起状态。 每次触发中断时、ARM 内核将轮询主机引导数据地址寄存器以检查引导映像是否就绪。 如果主机引导数据地址寄存器指示引导映像已就绪、引导加载程序将开始在寄存器中指定的地址执行引导映像"

    您可以参考我们在 SDK 中提供的 SRIO 示例、了解数据如何推送到从外设上、然后发生 core0唤醒。

    sriobot_example 是主机端代码。

    此致、

    Rahul

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

    Rahul、

    感谢您的及时响应。 我将尝试进行此操作、并让您知道它是如何工作的。

    此致、  

    插孔

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

    您好、Rahul、

    我将 CCS7与 pdk_K2HK_4_0_4配合使用。 没有"examples/SRIO"文件夹。 实际上、根本没有"examples"文件夹。 在" packages /ti/boot 是"post"、"SBL"和"writer"。 我还下载了"keystone2_boot_examples.zip"、它也没有任何 SRIO 引导示例。 您发送的链接不适用于 KeyStone II 系列、因此我假设这是断开连接。 您是否建议下载 C66x PDK 以查看 SRIO 引导示例?

    在我的设置中、我没有使用任何 ARM 内核。 我正在使用一个 EVMK2Hx 板上的 DSP CorePak0通过超链接加载引导映像到第二个 EVMK2Hx 板、该辅助 EVMK2Hx 板已配置为通过超链接引导 DSP CorePak0。 因此、您为使 ARM 脱离复位而提供的指令不适用。 但是、我假设这些步骤与《DSP 引导加载程序用户指南》(spruvy5c.pdf)中的步骤相似。 在 DSP 端、CorePak0执行一条空闲指令、直到接收到一个中断。

    如果您可以为 KeyStone II 提供 SRIO 引导示例代码、这会很有帮助。

    谢谢、

    插孔

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

    插孔、

    抱歉、我是说 Keystone I 处理器 SDK 中有一个 SRIO 引导示例、您可以将其用作参考。

    我n`t 了 SRIO 文件夹的 zip 版本、因此您也不必为 Keystone I 器件安装 SDK。

    e2e.ti.com/.../7115.srio.zip

    n`t、我们对 K2H 器件的 Processor SDK 中的以太网、SRIO 或超链接等从器件引导模式不提供任何支持。

    下面是一些我发现您可以用作参考的旧超链接引导测试代码:

    e2e.ti.com/.../vusrLoopBoot.zip

    希望这对您有所帮助。

    此致、

    Rahul

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

    感谢您提供这些信息、我将查看代码并告诉您代码是如何实现的。  

    此致、  

    插孔

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

    您好 Rahul、  

    我仍然无法通过超链接访问远程设备 MSM (0x0C000000)。 以下是一些观察结果:

    (1)通过主机超链接接口的偏移量(0x80)看不到超链接远程寄存器。 我假设这是由于在远程设备上以引导模式配置超链接接口而导致的。 当我让两个板运行示例超链接演示应用(hyplnk_K2HC66DevLibBiosExampleProject)时、情况并非如此。  

    (2)我不确定我是否正在运行、以解决 PrivID 或 SecID 设置的问题。 在示例代码中、在 Tx 和 Rx 端、PrivID 均设置为12。 我在超链接 Training Slides (Eindhon_JAN_12-08_Into_TO_Hyperlink.pdf)中看到、Privilege 超链接索引中的"商定"值为13、表示从一个内核请求、14表示从另一个主控方发起的请求。 这是否仍适用于 KeyStone II 器件、是否应将 PrivID 设置为14以与远程设备连接? 是否需要观察安全位的任何特定设置?

    (3)根据您提供的默认段映射表、我计算了以下 Tx 侧起始地址:

    部分 TX 地址 RX 地址 说明
    0 0x4000_0000 0x1080_0000 内核0本地 L2
    1 0x4040_0000 0x1180_0000 内核1本地 L2
    2. 0x4080_0000 0x1280_0000 内核2本地 L2
    3. 0x40C0_0000 0x1380_0000 内核3本地 L2
    4. 0x4100_0000 0x1480_0000 内核4本地 L2
    5. 0x4140_0000 0x1580_0000 内核5本地 L2
    6. 0x4180_0000 0x1680_0000 内核6本地 L2
    7. 0x41C0_0000 0x1780_0000 内核7本地 L2
    8. 0x4200_0000 0x0BC0_0000 MSMC  
    9. 0x4240_0000 0x0C00_0000 MSM (4MB)  
    10. 0x4280_0000 0x0C40_0000 MSM (2MB)
    11. 0x42C0_0000 0x01C0_0000 控制寄存器
    12. 0x4300_0000 0x0200_0000 控制寄存器
    13. 0x4340_0000 0x0240_0000 控制寄存器
    14. 0x4380_0000 0x0280_0000 控制寄存器
    15. 0x43C0_0000 0x2101_0000 DDR 配置
    16. 0x4400_0000 0x8000_0000 DDR 存储器(4MB)

    使用上述存储器映射、我尝试按如下方式将配置为超链接引导模式的器件传输到 MSM:

    uint32_t * hyplnk_RemoteMSMAddr_ptr =(uint32_t*) 0x42400000;

    *hyplnk_RemoteMSMAddr_PTR = 0xCAFEBABE;

    上述传输未完成。 在目标 DSP 上没有写入发生。 在进行上述设置之前、我将配置超链接接口并按如下方式设置 TxAddrOvly:

    TXAddrOvly.txSecOvl = 0;

    TXAddrOvly.txPrivIDOvl = 14;

    TXAddrOvly.txIgnMask = 5;

    我很幸运地尝试了几种不同的 txPrivIDOvl 设置。  

    作为完整性检查、我确认可以从调试器内写入 Rx 器件上的 MSM。 那么、问题是、TXAddrOvly 设置应该与配置为通过 DSP 0超链接引导的器件匹配什么?

    (4)文档中不清楚如何将超链接引导器件配置为312.5MHz 的参考时钟。 器件配置的位15:14与超链接参考时钟相关。 但是、根据最新的 KeyStone II 参考手册、唯一支持的选项是125MHz 为0、156.25MHz 为1。 EVMK2Hx 板显然具有312.5MHz 参考时钟。 对于通过 DSP0配置为超链接引导的器件、我在 BMC 中编程的引导配置设置中的参考时钟应设置为什么? 对于312.5MHz 参考时钟、2是有效选项吗?

    如果有任何想法/建议,将不胜感激。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    KeyStone II EVMK6Hx 开发板的默认配置不支持超链接引导模式。 如上所示、超链接参考时钟通过 CDCM6208时钟发生器(U19)配置为312.5MHz。 可以通过 BMC 接口修改此设置,将时钟向下调整到支持的156.25MHz 速率。 通过此修改、界面的位置似乎按预期工作。 我可以在超链接引导模式下成功地将数据复制到"从器件"的多个区域、包括多个 DSP 的 MSM 和 L2 SRAM。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    插孔、

    感谢您在此处发布您的解决方案。 超链接n`t 使用不是很广泛、因此我们不会宣传此功能。 您的努力肯定会帮助其他想要使用此功能的人、因此我们感谢您在论坛上发布的指导。

    此致、
    Rahul