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.

[参考译文] AM625:VP0 问题

Guru**** 2665185 points

Other Parts Discussed in Thread: AM625, AM62P, AM620-Q1

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1586471/am625-vp0-issue

器件型号: AM625
主题中讨论的其他器件: AM62PAM620-Q1

您好:

我们有一些单位报告了以下 dmesg 中的错误。

Tidss 30200000.dss:Vp0:时钟速率 0 与请求的 366800000 相差 5%以上


目前、我们正在尝试推断这是硬件错误还是软件错误。 我们的大部分单位都按预期工作、但我们的许多 SOM 都报告了此错误。 有没有人知道我们如何确定这里的罪魁祸首是什么?

谢谢、
Brandon  

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

    您好:

    我与 Brandon 合作、想为他的问题添加更多背景信息。 我们目前正在与 AM625 一起运行一个 PhyCORE SOM。 通信线路模拟了 PhyCORE 建议的原理图。

    它是一个单显示器、LVDS/OLDI 差分通信线路、频率为 52.4MHz。 使用 OLDI0_Clk 和差分线路 0、1、2、3。

    误差恰好是所请求 clk 频率的 7 倍。 我已经在论坛上阅读过,

    实际的父时钟由 oldi 桥驱动器拥有

    是用来设置时钟速率(7 *像素频率)的值。 来自的等效操作

    Tidss VP (DRM CRTC) 在 OLDI 显示流水线的情况下不执行操作。“

    发生此错误时、显示屏可能严重倾斜。 我们有在每次开始时都会得到此误差的单位。 我们的器件从不表现出此误差、有些器件在开始时会定期表现出此误差。

    我们使用的是 Lenix V6 OLDI 驱动器、 我很好奇、AM625 上是否有 OLDI/LVDS 的最低驱动程序版本? 如果此行为有修补程序、那么什么是根本原因可能导致此问题。

    谢谢、Jason

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

    您好、Brandon、Jason、
    您能否分享所有软件详细信息、例如与显示器相关的 dts、dtso 以及与默认驱动程序/dts 文件的任何差异。

    Lenix V6 OLDI 驱动程序

    没有理解。 这是面板驱动器、还是向 oldi-transmitters 节点介绍了驱动器?

    在这方面、我们没有已知/报告的问题、因此问题可能主要存在于您的软件中。

    据我了解、您使用的是单链路 OLDI。 能否查看以下 AM62P 示例: https://github.com/TexasInstruments/Beyond-SDK/blob/main/am62p/psdk/simultaneous_display_examples/k3-am62p5-sk-rocktech-rk101-panel-cloned-mode.dtso 
    您将需要根据此修改 dtso。

    此外、您正在使用哪个内核版本?

    请检查此常见问题解答是否有助于您:  【常见问题解答】AM62P:显示子系统 (DSS):基本调试和论坛最佳实践 。

    是否启用或禁用了 U-Boot 中的启动界面?  

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

    尊敬的 Divyansh:

    感谢 chming in。 我们从 ti-linux-kernel 存储库中启动了这个项目、并在 6.1 版上锁定了该项目、我们正在使用面板简单驱动程序、并为我们使用的显示内容创建了一个部分、输入我们从显示制造商处收到的参数。  

    在我们的大多数单位,我们的显示工作正常,但我们有几个单位,从 dmesg 输出此消息  

    Tidss 30200000.dss:Vp0:时钟速率 0 与请求的 366800000 相差 5%以上

    目前、我们正在尝试确定我们的 SOM 是否因处理而受损、或者是否发生了其他情况、以及是否有任何方法可以验证其中一种方法


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

    您好 Brandon、
    我将等待您的更新。
    同时、如果您需要进一步的帮助、也请与您分享面板时序参数。

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

    嘿、Divyansh、

    我们找到了一个解决方法、但它提出了一些问题。  

    具体来说、我们看的是版本 6.1.33

    启动时、我们发现以下时钟未初始化 DEV_DSS0_DPI_0_IN_CLK、通过使用 k3conf、我们可以将值设置为预期的时钟频率。 这可以解决问题

    k3conf set clock 186 0 366800000


    问题是、我们是否需要驱动程序更新、如果我们需要哪个版本?  
    第二个问题是、为什么某些单元会初始化该时钟、而其他单元则不初始化?

    再次感谢、
    Brandon

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

    您好 Brandon、
    即使在较旧的内核中、您也不需要手动设置时钟。  
    1.请分享您的计时参数。
    2.请帮助我了解您所说的“ Lenix V6 OLDI 驱动程序“。 您是否必须修改驱动程序的默认值。 如果是、原因是什么? 您能分享这些更改吗?
    3.在不工作的板上,它是否总是不工作,或者它是否有时工作,有时不工作?
    4.您是使用面板简易操作来指定 OLDI 时序参数还是定制面板驱动程序?

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

    你好、Divyansh、

    我误键入了我们所使用的 Linux 驱动程序版本、是“Laenix V6 OLDI 驱动程序“。 请忽略此内容。 Brandon 和我将获得您请求的计时参数和任何其他信息。 我们已经阅读了一些提及此错误的 TI 论坛、其中需要更新驱动程序。 这些论坛已有几年历史。 我很抱歉耽误你的时间。 感谢您提供的任何帮助!

    Jason  

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

    您好、Jason、感谢您的澄清。
    您能在这里分享这些 E2E 链接吗?
    我将等待参数。
    我的问题 3 和 4 仍有待解答。

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

    嘿、Divyansh、

    3.几乎所有的非工作板总是不工作。 也就是说、我们只有 1 个问题板有时会出现故障、有时会正常工作。 从未出现故障的电路板继续不会出现故障

    4.我用的是面板简单的驱动程序与制造商提供的时序参数,在驱动程序代码中,它支持的每个显示器都有结构,我已经为我们的显示器添加了一个结构。 对于我们的大多数器件、此驱动器运行良好

    时序参数可从其网站的此处获取
    https://www.data-modul.com/en/products/product-finder/find-your-tft-display/com84t8m02sss

    我们的面板简单驱动程序代码就在这里

    static const struct display_timing ortustech_com84t8m02sss_timing = {
    	.pixelclock = { 52400000, 52400000, 52400000 },
    	.hactive = { 1024, 1024, 1024 },
    	.hfront_porch = { 2, 2, 2 },
    	.hback_porch = { 2, 2, 2 },
    	.hsync_len = { 20, 20, 20 },
    	.vactive = { 768, 768, 768 },
    	.vfront_porch = { 2, 2, 2 },
    	.vback_porch = { 2, 2, 2 },
    	.vsync_len = { 40, 40, 40 },
    	.flags = DISPLAY_FLAGS_DE_HIGH,
    };
    
    static const struct panel_desc ortustech_com84t8m02sss = {
    	.timings = &ortustech_com84t8m02sss_timing,
    	.num_timings = 1,
    	.bpc = 8,
    	.size = {
    		.width = 217,
    		.height = 136,
    	},
    	.bus_format = MEDIA_BUS_FMT_RGB888_1X7X4_JEIDA,
    	.connector_type = DRM_MODE_CONNECTOR_LVDS,
    };



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

    在这里、Siemens 的同事讨论了与今年早些时候类似的问题。 最后、他们提到了驱动程序更新是如何解决问题的

    lists.freedesktop.org/.../496727.html

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

    嗨、Brandon、
    我正在查看您分享的主题、并将返回给您。

    同时,您是否可以尝试按以下格式更改结构(我们已经使用这种方法测试了面板):

    static const struct drm_display_mode microtips_mf_101hiebcaf0_c_mode = {
    	.clock = 150275,
    	.hdisplay = 1920,
    	.hsync_start = 1920 + 32,
    	.hsync_end = 1920 + 32 + 52,
    	.htotal = 1920 + 32 + 52 + 24,
    	.vdisplay = 1200,
    	.vsync_start = 1200 + 24,
    	.vsync_end = 1200 + 24 + 8,
    	.vtotal = 1200 + 24 + 8 + 3,
    };
    
    static const struct panel_desc microtips_mf_101hiebcaf0_c = {
    	.modes = &microtips_mf_101hiebcaf0_c_mode,
    	.bpc = 8,
    	.num_modes = 1,
    	.size = {
    		.width = 217,
    		.height = 136,
    	},
    	.delay = {
    		.prepare = 50,
    		.disable = 50,
    	},
    	.bus_flags = DRM_BUS_FLAG_DE_HIGH,
    	.bus_format = MEDIA_BUS_FMT_RGB888_1X7X4_SPWG,
    	.connector_type = DRM_MODE_CONNECTOR_LVDS,
    };

    可以更改 BUS_FORMAT 和时序。 请使用 bus_flags 属性、并查看添加.delay 是否有帮助。
    只是为了确认、您使用的是 AM625、而不是 AM620-Q1?

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

    谢谢 Divyansh、让我知道你们发现了什么。 我添加了延迟并将总线标志从 DISPLAY_FLAGS_DE_HIGH 更改为 DRM_BUS_FLAG_DE_HIGH、但没有产生区别。 是的、我们使用的是 AM625

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

    嗨、

    我目前在下周不在办公室。 请期待收到延迟的回复。

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

    Brandon、您好、这一问题是否有任何进展?
    我将尝试重新创建您的设置、但不确定是否可以重现问题。
    因为它是在一些样品上工作的,而不是在一些样品上工作的,有没有一个明确的方法让我能够重现它?

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

    感谢您在这个问题上与我们保持联系。 遗憾的是、这两个问题都没有;只有前面提到的解决办法给了我们任何理由。 如果您愿意尝试重新创建问题、我建议使用上面链接中列出的计时参数和内核版本 6.1.33

    某些单元可能必须重置多次、每次复位时、都会尝试每次驱动 LVDS 信号、并尽可能让我们更新