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.

[参考译文] SN65DSI86:*错误*链路训练失败、链路关闭(–5)

Guru**** 2445440 points
Other Parts Discussed in Thread: SN65DSI86

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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1540152/sn65dsi86-error-link-training-failed-link-is-off--5

器件型号:SN65DSI86


工具/软件:

您好、

我们将在 iMX95 平台上移植此 IC、但在内核启动时遇到错误:

==================================

[ 4.772672] ti_sn65dsi86 7-002d:[DRM:ti_sn_bridge_atomic_enable]* error*无法读取通道数(–110);假设为 4
[ 4.777219] imx6q-PCIe 4c300000.pcie:iATU:展开 T、128 ob、128 ib、对齐 4K、限制 1024G
[ 4.781602] imx6q-PCIe 4c380000.pcie:iATU:展开 T、128 ob、128 ib、对齐 4K、限制 1024G
[ 5.028699] ti_sn65dsi86 7-002d:[DRM:ti_sn_bridge_atomic_enable]* error*无法读取 eDP rev(–110)(假设为 1.1)
[ 5.154858] ti_sn65dsi86 7-002d:[DRM:ti_sn_bridge_atomic_enable]* error*无法读取最大速率(–110);假设频率为 5.4GHz
[5.378389] ti_sn65dsi86 7-002d:[drm:ti_sn_bridge_atomic_enable]* error*链路训练失败、链路关闭(–5)

===================================

这是 i2cdump:

读取 EDID 不显示任何内容。

此错误意味着什么? 接下来要采取什么措施来解决此问题? 谢谢您~

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

    尊敬的 Clement:

    您能否请检查初始化序列是否遵循数据表“8.4.2 上电序列“中所述的序列。 您的错误列表中会显示无法读取通道速率和通道数的错误。 您正在使用哪种链路训练模式?

    请尝试测试图形生成、以检查编程的时序是否可以成功显示到面板中。 这将验证 DP 输出和显示器配置是否正常工作。 若要为此生成寄存器写入、请使用此处分享的计算器工具: 【常见问题解答】SN65DSI8x 编程工具

    此致、
    Ikram

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

    您好、

    是的、我尝试通过 i2c 命令生成测试图形到面板、测试图形可以正确显示测试图形。

    现在、我要返回到驱动器部分、看看培训阶段发生的错误。

    我跟踪了驱动程序代码、它将训练设置为“半自动链路训练模式“、但链路始终处于关闭模式。

    驱动程序上的代码段为:

      /*
       *我们将尝试连接火车几次。  链路训练中
       *桥接芯片会将 DP_SET_POWER_D0 写入 DP_SET_POWER。  If
       *面板尚未完全准备就绪,它可能会在这里响应 NAK 这意味着
       *我们需要重试。
       */
      for (i = 0;i < SN_LINK_TRAINING_TRIES;I++){
        /*半自动链路训练模式*/
        regmap_write (pdata->regmap、SN_ML_TX_MODE_REG、0x0A);
        RET = regMAP_READ_POLL_TIMEOUT (pdata->regmap、SN_ML_TX_MODE_REG、val、
                  VAL == ML_TX_MAIN_LINK_OFF ||
                  VAL = ML_TX_NORMAL_MODE、1000
                  500 * 1000);
        if (ret){
          printk(“Clement — 培训完成轮询失败“)
          *last_err_str =“培训完成轮询失败“;
        } else if (val == ML_TX_MAIN_LINK_OFF){
          printk(“Clement — 链路训练失败,链路关闭“)
          *last_err_str =“链路训练失败,链路关闭“;
          RET =-EIO
          继续
        }

        休息
      }

    我的错误日志:

    [ 4.771881] ti_sn65dsi86 7-002d:[DRM:ti_sn_bridge_atomic_enable]* error*无法读取通道数(–110);假设为 4
    [ 4.898212] Clement - pdata->DP_LANES = 2.
    [ 4.898217] Clement - DP_LANES = 32
    [ 5.018360] ti_sn65dsi86 7-002d:[DRM:ti_sn_bridge_atomic_enable]* error*无法读取 eDP rev(–110)(假设为 1.1)
    [ 5.138319] ti_sn65dsi86 7-002d:[DRM:ti_sn_bridge_atomic_enable]* error*无法读取最大速率(–110);假设频率为 5.4GHz
    [5.145728] Clement — 链路训练失败,链路关闭
    [5.152753] Clement — 链路训练失败,链路关闭
    [ 5.159861] Clement — 链路训练失败,链路关闭
    [5.167003] Clement — 链路训练失败,链路关闭
    [5.174136] Clement — 链路训练失败,链路关闭
    [5.181252] Clement — 链路训练失败,链路关闭
    [5.188395] Clement — 链路训练失败,链路关闭
    [5.195553] Clement — 链路训练失败,链路关闭
    [5.202670] Clement — 链路训练失败,链路关闭
    [ 5.209777] Clement — 链路训练失败,链路关闭
    [5.217411] Clement — 链路训练失败,链路关闭
    [5.224551] Clement — 链路训练失败,链路关闭
    [ 5.232010] Clement — 链路训练失败,链路关闭
    [5.239144] Clement — 链路训练失败,链路关闭
    [5.246686] Clement — 链路训练失败,链路关闭
    [5.253841] Clement — 链路训练失败,链路关闭
    [5.260976] Clement — 链路训练失败,链路关闭
    [5.268089] Clement — 链路训练失败,链路关闭
    [5.27522] Clement — 链路训练失败,链路关闭
    [5.282347] Clement — 链路训练失败,链路关闭
    [5.289991] Clement — 链路训练失败,链路关闭
    [5.297527] Clement — 链路训练失败,链路关闭
    [5.304764] Clement — 链路训练失败,链路关闭
    [5.311874] Clement — 链路训练失败,链路关闭
    [5.319010]拼图 — 链路训练失败,链路关闭
    [5.326143] Clement — 链路训练失败,链路关闭
    [5.333256] Clement — 链路训练失败,链路关闭
    [5.340388] Clement — 链路训练失败,链路关闭
    [5.347531] Clement — 链路训练失败,链路关闭
    [5.354669] Clement — 链路训练失败,链路关闭
    [5.354765] ti_sn65dsi86 7-002d:[drm:ti_sn_bridge_atomic_enable]* error*链路训练失败、链路关闭(–5)

    培训失败意味着什么?  

    我的内核是 6.6.36、TI 驱动程序位于 NXP 的 BSP 的收件箱中、不确定是否需要更新此驱动程序?  

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

    尊敬的 Clement:  

    如果 测试图案与显示屏正常工作、则必须成功地将训练与 DP/eDP 显示屏链接起来。

    您能否检查 DP 通道速率和编程的通道数是否与 DISPLAY DP 接口兼容? 此外、请分享您的通道速率和通道数。 数据表 h“8.4.5.7.4 半自动链路训练“部分描述了链路训练过程。  

    此致、
    Ikram

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

    您好、

    我们的面板规范为 pixelclock=533.28Mhz、3840x2160@60p。但这会导致 TI calcu Excel 文件失败、

    所以我们使用的 266.64Mhz 是 30p,但面板只显示一些噪音,没有正确的图像。

    我们尝试使用 pixelclock=76.42MHz,1366x768@60p 这是另一个面板的参数,它可以显示图像,但当然不正确的大小如下所示。

    我们应该如何为 3840x2160 面板设置像素时钟?

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

    尊敬的 Clement:

    以下是有关 DSI86 解决方案的常见问题解答: 【常见问题解答】SN65DSI86:CAN DSI86 支持 4k2k 60Hz?

    最大分辨率受 DSI 数据通道速率的限制:每通道速率最大为 1.5Gbps、8 个数据通道总共为 12Gbps。

    您使用 533.28MHz  PCLK 分享的分辨率超出了限制、因为对于 24bpp、该值为~12.8Gbps。
    如该常见问题解答中所述、如果面板规格允许、可以考虑使用 18bpp 而不是 24bpp。

    此外、您可以参考面板/显示规格、以检查是否可以通过减少消隐、帧速率或像素深度 (bpp) 来降低 PCLK 速率。 您能否与我们分享面板规格数据表、以便我们检查显示时间公差?  


    此致、
    Ikram

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

    您好、

    已附上面板规格。

    另一点是、我们应该从 CPU 端设置 DSI 时钟、

    在 imx95 设备树中:

    这是 1366x768 时钟设置、但我们无法找到适合此 4K 面板的设置、CPU 供应商建议我们需要联系 TI 了解正确的像素时钟是什么?

    分配的时钟速率=<0>、<pixelclock*9>、<pixelclock*5>

    e2e.ti.com/.../TFT_2D00_LCD-Approval-Specification--Spec_5F00_N133DCE_2D00_GP1-ver-2.0.pdf

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

    尊敬的 Clement:

    从您分享的显示规格中可以看出、DCLK 或像素时钟频率是最小 530.62MHz、高于 DSI86 的分辨率限制和 DSI 数据限制。

    像素时钟频率= Htotal * Vtotal *每秒帧数。 显示屏上的典型值= 4000 * 2222 * 60 = 533.280MHz。
    总视频数据带宽= PCLK *每像素位数= 533.280MHz * 24 = 12.799Gbps

    如前所述、DSI86 只能支持高达 12Gbps(每个 DSI 数据通道的速率为 1.5Gbps、最多可通过 8 个通道)。

    DSI86 无法根据共享的显示规格支持此显示面板分辨率。 请检查显示器是否能在其他应用中支持较低的分辨率、或者是否有可改用的具有较低刷新率和 PCLK 频率的不同显示器。



    此外、为了便于您参考、若要确定所需的 DSI 时钟速率、可以使用以下公式:
    DSI 时钟频率=(PCLK 频率*每像素位数)/(2 * DSI 通道数)

    以下是一些具有类似器件(支持 LVDS 而非 DP/eDP)的示例: 【常见问题解答】SN65DSI84:SN65DSI83、SN65DSI84 和 SN65DSI85 分辨率指南 


    此致、
    Ikram

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

    根据回复、我可以 将 18bpp 与 533.28MHz PCLK 搭配使用吗?

    查找从 24bpp 到 18bpp 的下载大小、不会超过 TI 规范。

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

    尊敬的 Clement:

    是的、如果您使用 18bpp、则视频带宽将=  PCLK *每像素位数= 533.280MHz * 18 = 9.59904Gbps、这处于 DSI86 规范范围内。

    若要对此进行编程、请使用我们之前链接的计算器工具。 用户可以使用它输入配置 DSI 和 DP 的规范、并使用测试模式进行初始测试。

     【常见问题解答】SN65DSI8x 编程工具 


    此致、
    Ikram