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:DPLL_VIDEO1时钟源的 CPT 错误

Guru**** 2614205 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/579221/linux-am5728-cpts-errors-with-dpll_video1-clock-source

器件型号:AM5728

工具/软件:Linux

你(们)好

我正在尝试将时钟源从 CPTS 的默认值(L3_ICLK)更改为 VIDEO1_CLK。 为此、我已根据表3-1078将 CLKSEL_RFT 位的内容从0x4修改为0x0 (我将0x2写入地址0x4a0093d0)。 CM_GMAC_GMAC_CLKCTRL。  

执行此操作后、我的 PTP 应用程序停止工作、我开始看到以下消息。

#[729.836285] CPT:无法获取时间戳

我只能推断我的 video1 clk 无法完全正常工作。 为了验证我的视频1时钟、我已根据下面的线程对其进行了配置、并将其导出到引脚(clkout3)并在示波器上进行测量。

"="">https://e2e.ti.com/support/arm/sitara_arm/f/791/p/572806/2124447#pi316653filter=all&pi316653scroll=false&pi316653=1

so i can see that video1 clk is actually working but when I select it as source for CPTS, i see errors that are telling me otherwise. 

Questions:

  1. Is there any other register that i should be configuring in order to select video1 as clock for cpts ?
  2. is there a way to verify the status of the video1 clock by reading any registers ?
    According to the link above, the status register is unaccessible. 
    " When the VIDEO1 PLL is enabled (CTRL_CORE_DSS_PLL_CONTROL[PLL_VIDEO1_DSS_CONTROL_DISABLE] = 0), then reading any of the DPLL_VIDEO1_L4_CFG registers (address 0x4A0A4000 – 0x4A0A4020) returns 0x0. "
  3. When i read the register 0x4a0a4004 I get 0x0. When I read the register 0x58004304, it hangs. Is this expected ?

This is on Linux SDK 03.02.00; AM572x EVM

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

    CM_GMAC_GMAC_CLKCTRL (0x4A0093D0)的回读显示什么?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    # devmem2 0x4a0093D0
    /dev/mem 已打开。
    映射到地址 bb6ff7000的内存。
    地址0x4A0093D0 (0xb6ff73d0)处的值:0x2
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    如果有人能回答我上面提出的3个问题、那将会非常好。 我不确定我是否在 CPT 上执行启用此时钟源所需的一切操作。 此外、如果我能够以某种方式读取该 PLL 的状态、这将非常有帮助

    谢谢你

    此致

    David
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我已要求工厂团队查看这一点。 他们将在这里作出回应。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    一个星期了,我们是否对此有任何后续行动?

    谢谢你

    此致、

    David
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    很抱歉耽误你的时间。 我已上报请求。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    已经是2周了。 您对此有什么反馈吗?

    谢谢你

    此致

    David
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您能否描述一下、视频1时钟为您的应用提供了 CPTS 的默认时钟不提供的内容?

    遗憾的是、TI SDK 中的当前内核不支持从默认值切换 CPTS 参考时钟。

    重新定位器访问失败和应用程序失败的原因是、视频1 PLL 在 CPTS 时钟多路复用器上不可用。 您修改过的多路复用器的上游至少有一个多路复用器未将视频1时钟切换到支持 CPTS 模块的树。

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

    感谢您的回答。 我已回答了您的以下问题、并还有一些其他后续问题。

    此致、

    David

    >您能描述一下,视频1时钟为您的应用程序提供的 CPTS 默认时钟不提供的内容吗?
    我需要在与 CPTS 相同的时钟域上有一个外部 PLL。 由于默认的 CPTL 时钟不可用于输出(即 clkout3)、因此我选择了输出上可用的时钟之一、并且可以同时驱动 CPTS。

    >不幸的是、TI SDK 中的当前内核不支持从默认值切换 CPTS 参考时钟。
    我是否可以访问任何支持该功能的内核? 如果不支持、需要实施哪些支持才能支持切换 CPT 的默认时钟?

    >您现在在哪里修改时钟多路复用器?
    根据表3-1078、我已将 CLKSEL_RFT 位的内容从0x4修改为0x0 (我将0x2写入地址0x4a0093d0)。 CM_GMAC_GMAC_CLKCTRL。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    目前只有一个 TI 内核、遗憾的是、它不支持您想要的操作。 添加此功能是  一 个路线图项目、但目前没有时间范围。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    听起来不错。 但我想了解这是否只是 Linux 内核的限制。 如果确实如此、我很可能自己实施。

    那么,您能告诉我 Linux 内核中当前实施的代码在哪里,这样我就可以开始了吗? 之后、可以关闭该线程。

    谢谢你。

    此致