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/AM5728:DSP1的 Xbar 配置会中断 ttyS0

Guru**** 2541690 points
Other Parts Discussed in Thread: AM5728

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/649381/linux-am5728-xbar-configuration-from-dsp1-breaks-ttys0

器件型号:AM5728

工具/软件:Linux

您好!

我将 AM5728与 TI GIT 库中的 Linux 4.9.45-rt23搭配使用。

DSP1正在运行 IPC 示例中的代码、在该示例中、我"合并"了旧 PDK 中的示例代码、以直接从 DSP 驱动 McASP2 (但不使用中断、只使用 DMA)。

DSP1正在正确驱动 McASP2、从而产生预期的音频输出、但在初始配置期间配置 XBAR 时、Linux 下的 ttyS0停止工作。

在调用 CSL_xbarDmaConfigure()期间,要将 McASP2事件与 DSP1内部 EDMA 链接,AM5728的控制模块由 DSP1编写

一旦使用 MMR_LOCK_2 (ctrlCoreReg ->MMR_LOCK_2 = 0xFDF45530U)锁定控制模块、ttyS0就会停止工作。

在我看来、Linux 驱动程序不支持控制模块的锁定/解锁机制、而 CSL 支持。

我猜测是正确的、还是缺少其他东西?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    软件团队已收到通知。 他们将在这里作出回应。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Marco、

    在论坛 e2e.ti.com/.../2328401上讨论了这一问题由于 C6678中的勘误表、www.ti.com/.../sprz334h.pdf 中的 Advisory 30用法说明4指示多核环境中可能会发生竞争情况。 因此、Linux 内核保持 MMR_LOCK_2解锁。 我们将在 CSL 库中修复它、如果它在配置 XBAR 时已解锁、则不执行解锁/锁定、或者在执行解锁/锁定后恢复 MMR_LOCK_2的值。 此修复程序将在 SDK 4.2版本中提供。 目前、您可以通过不在 DSP 代码中锁定 MMR_LOCK_2来解决问题。

    雷克斯