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.

[参考译文] Linux/AM3359:GPMC_WAIT 停转 MPU

Guru**** 2608265 points
Other Parts Discussed in Thread: AM3359

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/651634/linux-am3359-gpmc_wait-stalls-mpu

器件型号:AM3359

工具/软件:Linux

您好!

我们有一个 FPGA 通过(异步) GPMC 连接到 Linux 驱动的 AM3359。 由于 FPGA 总线实现中存在错误、对 FPGA 中特定地址的写入访问将导致永久置位 GPMC_WAIT 信号、而不是在数据就绪前的正确时间。 之所以发现此错误、是因为在访问此地址后、整个 CPU 似乎被冻结。 不能进行串行/网络连接、只有一个关机后再开机。

现在我要问的问题是、GPMC-wait 是否可能会使整个 CPU 停顿?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    工厂团队已收到通知。 他们将在这里作出回应。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Manuel、
    您应该能够通过启用 GPMC 控制器中的超时机制来避免挂起。 请参阅 TRM 中有关 TIMEOUT_CONTROL 寄存器的说明。 这将监控 GPMC 事务并在一个可编程超时周期后报告一个错误。 该错误将记录在 GPMC_ERR_TYPE 寄存器中、违规地址将记录在 ERR_ADDRESS 寄存器中。 没有与此错误相关的中断、因此您必须轮询这些寄存器以监控该错误。

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

    尊敬的 James:

    感谢您的回复。 我将了解 TRM 有关 TIMEOUT_CONTROL 的信息。 但是、这是 GPMC-WAIT 会停止_All_总线活动并可以冻结整个 CPU 的设计行为吗? 我非常希望情况并非如此! 我的问题不是我们在 FPGA 中修复的导致等待时间长的错误、而是每个 FPGA 存取的小错误都会停止、FPGA 会正确地应用等待、直到数据就绪。 GPMC 和 CPU/RAM/诸如此类的东西是否紧密耦合?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Manuel、除非随后发生另一个 GPMC 事务、否则器件的内部操作不应停止。 我想你看到的停顿是几个 GPMC 事务的积累无法完成、因此整个器件运行都会受到影响。 例如、如果您执行多个相互依赖的 GPMC 事务(或其他 CPU 操作依赖于哪些事务)、则处理器将等待事务完成。

    请注意、MMU 配置也会对此产生影响。 如果配置为可缓冲写入、则 GPMC 写入可以被缓冲、并且不需要确认、除非后续访问依赖于它们。

    此致、
    James