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.

[参考译文] AM6442:如何在 Linux 下抑制从 16 位 GPMC 接口进行预取读取?

Guru**** 2460850 points
Other Parts Discussed in Thread: AM6442, TMDS64EVM, SK-AM64B

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1550944/am6442-how-to-suppress-prefetch-reads-from-a-16-bit-gpmc-interface-under-linux

器件型号:AM6442
Thread 中讨论的其他器件: TMDS64EVMSK-AM64B

工具/软件:

您好:

使用 16 位 GPMC 接口时、尽管该过程仅读取了一个 16 位字(也称为 int16_t)、但我仍然看到该接口有两次背对背读取。 即、从地址 0 读取时、也会从地址 1 读取、但显然会丢弃地址 1 的结果。 写入 16 位字会导致按预期进行单次写入。 没关系。

只需通过/dev/mem.中的间隙区域即可访问 GPMC 窗口

我也找到了这里描述的问题:  AM6442:GPMC 16 位读取问题 

这里还有一个更深入的解释链接: https://e2e.ti.com/support/processors-group/processors/f/processors-forum/316742/am335x-gpmc-phantom-chip-select-generation/1106520#1106520

事实上、背后的理论对我来说是很清楚的。 但是、我不知道如何使用这个 pgprot-stuff 实现相应的设置。 恐怕这只能通过器件驱动程序完成...

有什么建议如何做到这一点?

谢谢、

Mario

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

    嗨、Mario、

    您使用的是 AM6442 的哪个版本? U-Boot 日志显示器件版本。

    请注意、SR1.0 的勘误表 i2313 指出 GPMC 读取访问必须为 32 位。

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

    嗨 Bin!

    感谢您的提示! U-Boot 的输出为:

    SoC:  AM64X SR1.0 GP

    这似乎是问题所在。

    顺便说一下、这是 errate i2313。

    假设后续的器件修订版本没有此勘误表、那么此 pgprot-stuff 不需要其他预防措施。 我问,因为我上面提到的问题描述( AM6442 : GPMC 16 位读取问题)  也专用于 AM6442。 不过、在这次简短的讨论中并没有真正的解决方案、而只是指向一个涉及 AM335x 的较旧主题。

    目前我可以处理这种情况 — 它只是有点伤害性能。

    您好、

    Mario  

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

    嗨、Mario、

    btw.、这是 errate i2313.

    谢谢! 我将更正上面的拼写错误、以避免以后阅读时出现混淆。

    [报价 userid=“499222" url="“ url="~“~/support/processors-group/processors/f/processors-forum/1550944/am6442-how-to-suppress-prefetch-reads-from-a-16-bit-gpmc-interface-under-linux/5970924 ]因此、假设后续器件修订版没有此勘误表、则此 pgprot-stuff 不需要其他预防措施? 我问,因为我上面提到的问题描述( AM6442 : GPMC 16 位读取问题)  也专用于 AM6442。 [/报价]

    我未参与 i2313 问题调试、也不知道确切的时间线、但我相信这个提到的 e2e 主题中的对话是在理解问题 i2313 之前发生的、因此 pgprot 尝试理解问题。

    [报价 userid=“499222" url="“ url="~“~/support/processors-group/processors/f/processors-forum/1550944/am6442-how-to-suppress-prefetch-reads-from-a-16-bit-gpmc-interface-under-linux/5970924

    感谢您的提示! U-Boot 的输出为:

    SoC:  AM64X SR1.0 GP

    这似乎是问题所在。

    [/报价]

    问题 i2313 不影响 SR2.0。 您是否有 SR2.0 处理器来检查第二个 16 位读取是否不再发生、以便我们确定您看到的问题确实是 i2313 导致的?

    当前 SDK 不再支持 SR1.0、我相信每个客户现在都应该使用 SR2.0 进行生产。

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

    尊敬的 Bin:

    我未参与 i2313 问题调试、不知道确切的时间线、但我相信这个提到的 e2e 线程中的对话是在理解问题 i2313 之前发生的、因此 pgprot 尝试理解该问题。

    好的、我看到了。  

    问题 i2313 不影响 SR2.0。 您是否有 SR2.0 处理器来检查第二个 16 位读取是否不再发生、以便我们确定您看到的问题确实是 i2313 导致的?

    总之、对于 AM6442、我这里只有一个 TMDS64GPEVM、以便在进入我们自己的硬件设计之前先弄清楚基本内容。 还有一个 AM64SK、现在我不知道焊接了什么版本。 但该 eval 套件不适合任何任务都要完成。

    SR1.0 不再受当前 SDK 的支持、我相信每个客户现在都应该使用 SR2.0 进行生产。

    “不再支持“是什么意思? 目前、我使用的 是 11.00.09.04、正如我所看到的、已经过时了。 我还没有尝试最近的一个。 但如果这根本不适用于 SR1.0、我甚至不需要尝试。

    不管怎样、现在我可以处理这个小问题。 但也许我们应该尽快订购另一个评估套件...  

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

    嗨、Mario、

    暂时、对于 AM6442、我在这里只有一个 TMDS64GPEVM、以便在进入我们自己的硬件设计之前对基本内容进行整理

    TMDS64GPEVM 具有 SR1.0。 新版本称为具有 SR2.0 的 TMDS64EVM。

    还有一个 AM64SK、现在我不知道在这里焊接了什么版本。

    具体取决于 PCB 上印刷的名称。 如果是 SK-AM64、它有 SR1.0;但如果是 SK-AM64B、则有 SR2.0。

    TI.com 上提供了 TMDS64EVM 和 SK-AM64B 底部(含 SR2.0)。

    这里“不再支持“是什么意思?

    这基本上意味着开箱即用的最新版本 Processor SDK 将无法在 SR1.0 上运行。 SYSFW 二进制文件对于 SR1.0 和 SR2.0 是不同的、并且 SDK 不再为 SR1.0 提供 SYSFW 二进制文件。

    目前我使用的是 11.00.09.04、

    是否确实使用了 11.00.09.04 中提供的 U-Boot? 我的 PC 上未安装此版本的 SDK,但我看到之前的版本 — 10.01.10.04 不为 SR1.0 提供 SYSFW 二进制文件。

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

    嗨、Mario、

    、实际上、我使用的 是 11.00.09.04、U-Boot 随附 SR1.0。 不要问我为什么这是工作,虽然它不应该... 但我不能说它是开箱即用的。 例如、我必须 先将 tiboot3-am64x-gp-evm.bin 重命名为 tiboot3.bin。 但我必须从一开始就这样做。

    您是对的、最近的 SDK 仍然提供 tiboot3-am64x-gp-evm.bin(应重命名为 tiboot3.bin)、以便在使用 SR1.0 的 EVM 上启动。 我很长时间没有提及 SR1.0 EVM、并且回顾了这些详细信息。

    但是、SDK 不为 SR1.0 提供 SYSFW 二进制文件、因此在重新编译 U-Boot 时、我相信它不会生成正确的 tiboot3-am64x-am64-gp-evm.bin。 这就是我的意思、“SR1.0 在最新的 SDK 中不再支持“。