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.

[参考译文] TMS320C6655:需要勘误表说明

Guru**** 2540720 points
Other Parts Discussed in Thread: SYSBIOS

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/598306/tms320c6655-errata-clarifications-required

器件型号:TMS320C6655
Thread 中讨论的其他器件:TMS320C6670SYSBIOS

香榭丽舍

客户需要澄清一些 c6655器件勘误表:

1、咨询13:单一的疏忽问题。 客户没有自己的汇编代码、使用 IBL 版本1.0.14和 TI 编译器版本 v7.4.11。 这些版本中是否处理了此问题?

 2.咨询意见14:阅读例外和数据损坏问题。 问题:TI 平台软件是否应负责禁用 MARS 12-15中的 PFX 位? 如果不是-应在何处执行此操作(引导加载程序/应用程序启动)?

 使用说明13:修订了 PLL 编程序列使用说明。 客户代码基于 TI IBL 版本1.0.0.14 2011年11月、应用代码使用 CSL 版本:01.00.05。 您能否确认此使用说明是否在上述版本中实施?

谢谢!

Michael

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

    这是哪个 SDK 版本? 通常、在 SDK 版本中应注意勘误表建议、我建议 SW 团队详细说明。

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

    Michael、

    我假设客户从2011年11月开始使用 IBL 版本、因此他们使用的是 MCSDK 基准、而不是处理器 SDK RTOS。 如果您拥有确切的 MCSDK 版本、我们可能能够从发行说明中更好地跟踪此版本。 MCSDK 2.x 的最后一个版本于2012年8月发布。

    我将在内部进行检查、看看我们是否可以挖掘 IBL 中实施的这些修复程序的历史记录。

    此致、
    Rahul

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

    Mike、

    从发行说明中、我发现 作为 MCSDK 2.1.2.5和 MCSDK 2.1.2.6的一部分的 IBL 1.0.0.15最终更新了 PLL 序列。 以下是 MCSDK 版本的发行说明:e2e.ti.com/.../bios_5F00_mcsdk_5F00_releasenotes_5F00_02_5F00_01_5F00_02.pdf

    此致、

    Rahul

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

    CSL (mfence 和 prefetch)已添加到 CSL_cacheAux.h 文件中。 早期用户必须执行 mfence 和预取操作、在 CSL 中进行更新后、他可以直接调用缓存操作(例如 cache_invL1d、cache_wbL1d 等)。 CSL 执行“Advisory 6”。

    此更新在 KeyStone I 器件的早期版本 Processor SDK RTOS 中已修复、因此不太可能出现在客户使用的 IBL 版本中、但客户可以使用 CSL_cacheAux.h 查看其实施是否包含此修复程序。 我已附加该文件以供参考。

    e2e.ti.com/.../csl_5F00_cacheAux.h

    希望这对您有所帮助。

    此致、

    Rahul

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

    我不能肯定我完全理解建议14的机制。 例如、cache_invL1d 会使所有预取缓冲区内容无效、并且 XMC 会阻止所有请求、直到预取缓冲区空闲。 同时、针对受影响地址范围禁用 MAR 寄存器中 PFX 位的建议14调用的权变措施。 使预取缓冲区无效可能会消除可能出现问题的某些情况、但根据数据表/勘误表中提供的信息、它看起来不像最终修复。 我非常希望在此作出澄清。

    此外、关于建议13 -我看到缓存控制操作中使用了_mfence、但该建议明确要求使用2 mfence 回调作为变通办法。 编译器可能会将_mfenced()调用转换为两个 mfence 命令,但我无法找到这方面的证据...

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

    您好、Rahul、

    我相信代码中引用的 advisory6 ( CSL_cacheAux.h 中的 cache_invL1d ()函数)实现 了 TMS320C6670勘误表中建议6的修复:

    块一致性操作期间可能出现 L2缓存损坏问题。  

    C6655勘误表中的建议14称为"读取异常和数据损坏问题"。 这是不一样的。 此外、C6670勘误表还包含名为 "读取异常和数据损坏问题"的建议33、说明似乎与 C6655中的建议14相同、因此它肯定是两个单独的问题。 我非常希望您能帮助您澄清 Keystone 1系列中"读取异常和数据损坏问题"咨询的状态和修复。

    谢谢

    Michael

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

    对此进行了任何更新?

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

    我相信我已经弄清楚了 mfence 问题-整个 PDK 代码中找到的_mfenced()是一个内在函数,因此除非明确调用,否则编译器不会自行生成它。
    在 SYSBIOS 端、mfence 用于缓存等待函数、而在较新的 SYSBIOS 中、该函数实际上为勘误表实现了2xmfence 变通办法(请参阅 c:\ti\BIOS_6_46_04_53\packages/ti\SysBIOS\family\c66\Cache c.中的 cache_wait()函数)。
    因此,除非调用内在函数,否则应用程序代码中不存在 mfence 显示的风险,如果需要使用 mfence,则应用程序应调用它两次,就像在 cache_wait()中一样,以解决勘误表。

    这只会留下咨询意见14"读取异常和数据损坏问题"的问题。 我一直无法在平台代码中找到建议作为变通办法的任何修复的跟踪(禁用地址范围0x0C000000–的 MARS 中的 PFX 位
    对应于可缓存数据的0x0FFFFFFF)
    我们非常感谢您的指导

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

    您好、Rahul、

    我做了一些进一步的研究、但未能找到顾问14的任何修复方法。 在我看来、如果建议适用于客户的设计、则客户有责任实施权变措施。 非常感谢您确认这一理解。

    谢谢你

    Michael

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

    很抱歉、迟迟未能解决此问题。 我正在尝试与内部专家合作、并找到此勘误表的背景。 这不是 DSP 裸机或 RTOS 软件的典型用例、因此我怀疑 SDK 中是否实现了这种解决方案、但我将在设计/系统专家的帮助下尽快更新该线程。

    此致、
    Rahul