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.

[参考译文] TMS320C6748:NAND 引导:AISgen 向 L2 RAM 添加了未记录的段加载

Guru**** 2555630 points
Other Parts Discussed in Thread: TMS320C6748

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/610673/tms320c6748-nand-boot-aisgen-adds-undocumented-section-loads-to-l2-ram

器件型号:TMS320C6748

我们的设计使用 TMS320C6748、它使用 NAND16引导选项从闪存引导。 我使用 AISgen 1.13来生成 AIS 启动映像(NAND 16位、PLL0、PLL1、DDR2、请参阅随附的配置文件)。 DSP 具有最新的引导 ROM 版本(d800k008)。

在 L2 RAM 中放置初始化的存储器部分时、应用程序会在 AIS 启动过程中崩溃、并且无法到达入口点。 (它到达器件存储器空间中的所有位置)就我所见、导致这个问题的原因是 AISgen 在映像开始时向 L2 RAM 添加了一些段负载、这些段负载与我们的应用无关。 我已经分析了生成的 AIS 映像、第一部分看起来像:

0处的魔术词。
4处的段加载命令。
地址:0x00800020、大小:704字节。 (0x2C0)
720处的段加载命令。
地址:0x008002E0、大小:288字节。 (0x120)
加载命令。
地址:0x00800400、大小:64字节。 (0x40)
1096处的段加载命令。
地址:0x00800440、大小:16字节。 (0x10)
跳转命令位于1124。
地址:0x00800220。

从末尾的跳转中、您可以看到它实际上从 L2 RAM 中执行某些操作。 在这些部件之后、AIS 映像包含我希望从我们的配置和应用中获得的函数执行命令和段负载。 引导加载程序文档(spraat2f)提到、对于传统 NOR 引导、会使用一小部分 L2 RAM、用户应用不应将此存储器用于初始化段。 对于 NAND 引导、情况不应如此。 因此、我认为这是 AISgen 中的一个错误、当配置为 NAND 启动时、这些段加载不应添加到 AIS 映像中。 我已手动从 AIS 映像中移除这些段负载、然后我们的应用程序将正常启动、即使我将已初始化的段放置在 L2 RAM 中也是如此。

有人能否确认这是 AISgen 中的一个错误、并且从 NAND 闪存引导时、这些 L2 RAM 的段加载不应包含在 AIS 映像中?

此致、Mark te Brake

e2e.ti.com/.../aisgen.cfg

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

    我已通知软件团队。 他们的反馈将在此处发布。

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

    对于您使用的 ROM 引导版本、此器件上有一个 NAND 引导勘误表(Advisory 2.3.24)。
    www.ti.com/.../sprz303h.pdf

    AISGen 工具通过应用一个从 L2 RAM 运行的补丁来解决这个问题并覆盖 ROM NAND ECC 处理函数。 作为应用开发人员、您不应使用该补丁正在使用的 L2 RAM。

    许多大容量定制器件都在生产中、此器件和此版本的 AISGen 工具上具有 NAND 引导功能。 请查看勘误表并修改应用程序存储器映射、以至少在启动时不使用补丁程序使用的区域。

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

    感谢您的观看、这就说明了这一点。

    [编辑]

    剩下一个小问题:根据建议2.3.24、补丁在0x1180 0000 (=L2 RAM)上使用1KB 的内存。 在我的第一篇文章中、您可以看到生成的 AIS 映像加载高达0x0080 0450 (=L2 RAM)的数据、这大于1KB。 我是否允许覆盖此数据、因为它仅在应用程序的其余部分加载之前使用一次、还是在此处发生其他情况?


    此致、Mark