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.

[参考译文] AM62L-PROCESSOR-SDK:有关为 MIPI-DSI 显示器在 k3-am62l3-EVM-DSI-RPI-7inch-panel.dtso 中使用桥接器和端口的说明

Guru**** 2419530 points
Other Parts Discussed in Thread: AM62P, AM62L

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1499432/am62l-processor-sdk-clarification-on-use-of-bridges-and-ports-in-k3-am62l3-evm-dsi-rpi-7inch-panel-dtso-for-mipi-dsi-display

器件型号:AM62L-PROCESSOR-SDK
主题中讨论的其他器件:AM62PAM62L

工具/软件:

尊敬的 TI 团队:

我正在努力将原生 MIPI-DSI 显示面板与 AM62L3 平台集成、并参考k3-am62l3-evm-dsi-rpi-7inch-panel.dtso覆盖层作为指导。 但是、我注意到这个 DTS 包括一个用于 Toshiba TC358762 的桥接节点、它通过一系列端口和远程端点将 DSI 输出连接到显示面板。 这给我造成了一些混淆、因为我的硬件将 MIPI 显示屏直接连接到 SoC 的 DSI 接口、而不使用任何外部桥接芯片。 我想知道、当显示器已经与 MIPI 兼容并直接连接时、为什么在 DTS 中对电桥建模。 该桥接器是否仅适用于 Raspberry Pi 7“面板、因为其内部 DPI 接口需要 DSI 到 DPI 转换器、例如 TC358762? 还是出于软件抽象目的、这只是 DTS 中的通用表示形式? 在具有原生 MIPI-DSI 面板的典型设置中、我们是否应该跳过桥接节点、将面板直接连接到器件树中的 DSI 控制器? 感谢您澄清 DTS 中何时需要桥接器以及为什么需要桥接器、以及端口/端点层次结构在直接 MIPI-DSI 连接场景中应该如何呈现。

Im 使用不同的显示器 mipi。我想重新命名在 EVK 中使用的 DTS ,所以如果你能提供一些解释会很有帮助。

-- Dheeraj

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

    您好、  

    在 dss_ports 方面进行一些更改后、我能够获得测试图形。现在、您能告诉我可以进行哪些更改/测试来获取 GUI 吗?



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

    很棒! 您能否分享您所做的导致这一发展的变化?

    根据其他用户实验、 重试 一次执行以下操作之一:
    1.  

    请尝试以下操作:
    1. 加入了补丁程序: 前面提到的补丁程序集的补丁程序 15/18。 
    2. 将寄存器 2.2.35.1 DSI_TOP_VBUSP_CFG_DSI_0_DSI_VID_MAIN_CTL 寄存器中的 REG_BLKEOL_MODE 和 REG_BLKLINE_MODE 调整为 3(切换到 LP 模式与传输空白数据包)[复位= 80000000h][/quot]

    2.没有上面的任何修补程序:增加 HFP 并因此增加时钟。 在所有实验中保持 fps 不变。

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

    您好、

    您能否分享您所做的导致这一发展的变化?  
    我也添加了对 RGB 显示的支持、因此在 DTS 中、我使用 的是同一个 DSS_ports 节点、该节点是将端点连接到 RGB 显示的。 因此,在测试 MIPI 显示屏时,我禁用了 RGB_panel 节点而不是 dss_ports。所以我完全解析所有与 RGB 节点相关的节点并运行脚本。

    完全禁用后我的 RGB 显示 dts :

    / {
    #if 0
         rgb_panel {
                    compatible = "powertip,ph800480t013-ihc09";
                    backlight = <&lvds_backlight1>;
                    power-supply = <&reg_3p3v>;
                    reset-gpios = <&main_gpio0 43 GPIO_ACTIVE_HIGH>;
                    enable-gpios = <&main_gpio0 45 GPIO_ACTIVE_HIGH>;
                    pinctrl-names = "default";
                    pinctrl-0 = <&main_panel_pins_default>;
                    status = "okay";
    
                  port {
                            rgb_in: endpoint {
                                   remote-endpoint = <&dpi1_out>;
                            };
                    };
            };
    
    #endif
    #if 0
            lvds_backlight1: lvds_backlight1 {
                    compatible = "pwm-backlight";
                    pwms = <&epwm0 0 100000 0>;
                    power-supply = <&reg_1p8v>;
                    enable-gpios = <&main_gpio0 46 GPIO_ACTIVE_HIGH>;
                    pinctrl-names = "default";
                    pinctrl-0 = <&main_lvds_backlight_pins_default>;
                    brightness-levels = <0 1  2  3  4  5  6  7  8  9
                                         10 11 12 13 14 15 16 17 18 19
                                         20 21 22 23 24 25 26 27 28 29
                                         30 31 32 33 34 35 36 37 38 39
                                         40 41 42 43 44 45 46 47 48 49
                                         50 51 52 53 54 55 56 57 58 59
                                         60 61 62 63 64 65 66 67 68 69
                                         70 71 72 73 74 75 76 77 78 79
                                         80 81 82 83 84 85 86 87 88 89
                                         90 91 92 93 94 95 96 97 98 99
                                         100>;
                    default-brightness-level = <100>;
                    status = "okay";
            };
    
    #endif
    };
    
    &dphy_tx0 {
           status = "okay";
    };
    
    #if 1
    &dss {
            status = "okay";
            pinctrl-names = "default";
            pinctrl-0 = <&main_dss0_pins_default>;
    };
    
    #endif
     
    #if 0
    &dss_ports {
          port@0 {
                    reg = <0>;
    
                 dpi1_out: endpoint {
                            remote-endpoint = <&rgb_in>;
                    };
            };
    };
    #endif
    


    Winstar 已启用 DTS:
    &dss {
    	bootph-all;
    	status = "okay";
    };
    
    &dphy_tx0 {
    	bootph-all;
    	status = "okay";
    
    };
    
    &dss_ports {
             #address-cells = <1>;
             #size-cells = <0>;
    
             port@0 {
                    reg = <0>;
                    dpi_out: endpoint {
                            remote-endpoint = <&dsi0_in>;
                    };
            };
    
    };
    
    &dsi0 {
    	bootph-all;
            #address-cells = <1>;
            #size-cells = <0>;
    	status = "okay";
    
            ports {
                    #address-cells = <1>;
                    #size-cells = <0>;
    
                    port@0 {
                            reg = <0>;
                            dsi0_out: endpoint {
                                    remote-endpoint = <&panel_in>;
                            };
                    };
    
                    port@1 {
                             reg = <1>;
                             dsi0_in: endpoint {
            	                remote-endpoint = <&dpi_out>;
                            };
                    };
             };
    
            panel@0 { 
    
                    reg = <0>;
                    compatible = "panel-winstar";
                   // enable-gpios = <&main_gpio0 45 GPIO_ACTIVE_HIGH>;
                   // pinctrl-names = "default";
                   //pinctrl-0 = <&main_mipi_panel_pins_default>;
                    dsi-lanes = <4>;
    	 	v3p3-supply = <&reg_3p3v>;
                    v1p8-supply = <&reg_1p8v>;
                    video-mode = <2>;
                    width-mm = <154>;
                    height-mm = <85>; 
                    status = "okay";
    
                    port {
                    
    		       	panel_in: endpoint {
                                 	remote-endpoint = <&dsi0_out>;
                            };
                    };
            };
    
    };
    


    这里、dss_ports 节点之前发生了冲突。


    1. 加入了补丁程序: 前面提到的补丁程序集的补丁程序 15/18。 

    这是我尝试过的和没有补丁测试图形是来的,但显示是不可见的。

    将寄存器 2.2.35.1 DSI_TOP_VBUSP_CFG_DSI_0_DSI_VID_MAIN_CTL 寄存器中的 REG_BLKEOL_MODE 和 REG_BLKLINE_MODE 调整为 3(切换到 LP 模式与传输空白数据包)[复位= 80000000h]

    很抱歉、我不明白这一点、我是否必须更改寄存器值并再次测试?



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

    您好、

    我尝试更新寄存器值并相应地测试显示。 但是、我没有观察到显示输出中有任何可见的变化。\n\n 您能否验证我是否已将正确的值写入寄存器、以及测试程序是否已正确执行?

    在进行此更改之后和之前、测试图形看起来与之前相同。

    root@am62lxx-ig69m-2gb:~# fbset
    
    mode "1024x600"
        geometry 1024 600 1024 600 32
        timings 0 0 0 0 0 0 0
        rgba 8/16,8/8,8/0,0/0
    endmode
    
    root@am62lxx-ig69m-2gb:~# ./dsi-test 
    REG_BLKEOL_MODE & REG_BLKLINE_MODE : 3
    Unknown Silicon 48039
    Value at addr 0x305000b0 = 0x81f8fe00
    -------- Enabling test pattern
    DSI_TVG_CTL WRITE (disable TVG_RUN)
    Unknown Silicon 48039
    Value at addr 0x305000fc = 0xb8
    DSI_MCTL_MAIN_EN WRITE (disable IF2_EN)
    Unknown Silicon 48039
    Value at addr 0x3050000c = 0xf9
    DSI_MAIN_DATA_CTL WRITE (enable TVG, disable VID_EN)
    Unknown Silicon 48039
    Value at addr 0x30500004 = 0x20047
    DSI_MAIN_DATA_CTL WRITE (enable TVG, enable VID_EN)
    Unknown Silicon 48039
    Value at addr 0x30500004 = 0x20067
    DSI_TVG_IMG_SIZE WRITE (setup lines / size 1024x600)
    Unknown Silicon 48039
    |-----------------------------------------------------------------|
    | VERSION INFO                                                    |
    |-----------------------------------------------------------------|
    | K3CONF | (version 0.3-nogit built Thu Jul 25 14:13:02 UTC 2024) |
    |-----------------------------------------------------------------|
    
    Value at addr 0x30500100 = 0x2580c00
    
    TEST PATTERN COLOR 1
    Unknown Silicon 48039
    Value at addr 0x30500104 = 0xff0000
    Unknown Silicon 48039
    Value at addr 0x30500108 = 0x0
    TEST PATTERN COLOR 2
    Unknown Silicon 48039
    Value at addr 0x3050010c = 0xfff
    Unknown Silicon 48039
    Value at addr 0x30500110 = 0x0
    DSI_TVG_CTL WRITE (enable TVG_RUN)
    Unknown Silicon 48039
    Value at addr 0x305000fc = 0xb9
    root@am62lxx-ig69m-2gb:~# ^C
    root@am62lxx-ig69m-2gb:~# devmem2 0x30500004 w 0x27
    /dev/mem opened.
    Memory mapped at address 0xffff82191000.
    Read at address  0x30500004 (0xffff82191004): 0x00020067
    Write at address 0x30500004 (0xffff82191004): 0x00000027, readback 0x00000027
    root@am62lxx-ig69m-2gb:~# 
    root@am62lxx-ig69m-2gb:~# 
    root@am62lxx-ig69m-2gb:~# devmem2 0x305000B0 w 
    /dev/mem opened.
    Memory mapped at address 0xffff8d624000.
    Read at address  0x305000B0 (0xffff8d6240b0): 0x81F8FE00
    root@am62lxx-ig69m-2gb:~# 
    root@am62lxx-ig69m-2gb:~# 
    root@am62lxx-ig69m-2gb:~# devmem2 0x305000B0 w 0x81E8FE00
    /dev/mem opened.
    Memory mapped at address 0xffffb996d000.
    Read at address  0x305000B0 (0xffffb996d0b0): 0x81F8FE00
    Write at address 0x305000B0 (0xffffb996d0b0): 0x81E8FE00, readback 0x81E8FE00
    root@am62lxx-ig69m-2gb:~# 
    root@am62lxx-ig69m-2gb:~# 
    root@am62lxx-ig69m-2gb:~# devmem2 0x305000B0             
    /dev/mem opened.
    Memory mapped at address 0xffffb6a52000.
    Read at address  0x305000B0 (0xffffb6a520b0): 0x81E8FE00
    root@am62lxx-ig69m-2gb:~# 
    root@am62lxx-ig69m-2gb:~# 
    root@am62lxx-ig69m-2gb:~# ./dsi-test 
    REG_BLKEOL_MODE & REG_BLKLINE_MODE : 3
    Unknown Silicon 48039
    Value at addr 0x305000b0 = 0x81f8fe00
    -------- Enabling test pattern
    DSI_TVG_CTL WRITE (disable TVG_RUN)
    Unknown Silicon 48039
    Value at addr 0x305000fc = 0xb8
    DSI_MCTL_MAIN_EN WRITE (disable IF2_EN)
    Unknown Silicon 48039
    Value at addr 0x3050000c = 0xf9
    DSI_MAIN_DATA_CTL WRITE (enable TVG, disable VID_EN)
    Unknown Silicon 48039
    Value at addr 0x30500004 = 0x20047
    DSI_MAIN_DATA_CTL WRITE (enable TVG, enable VID_EN)
    Unknown Silicon 48039
    Value at addr 0x30500004 = 0x20067
    DSI_TVG_IMG_SIZE WRITE (setup lines / size 1024x600)
    Unknown Silicon 48039
    |-----------------------------------------------------------------|
    | VERSION INFO                                                    |
    |-----------------------------------------------------------------|
    | K3CONF | (version 0.3-nogit built Thu Jul 25 14:13:02 UTC 2024) |
    |-----------------------------------------------------------------|
    
    Value at addr 0x30500100 = 0x2580c00
    
    TEST PATTERN COLOR 1
    Unknown Silicon 48039
    Value at addr 0x30500104 = 0xff0000
    Unknown Silicon 48039
    Value at addr 0x30500108 = 0x0
    TEST PATTERN COLOR 2
    Unknown Silicon 48039
    Value at addr 0x3050010c = 0xfff
    Unknown Silicon 48039
    Value at addr 0x30500110 = 0x0
    DSI_TVG_CTL WRITE (enable TVG_RUN)
    Unknown Silicon 48039
    Value at addr 0x305000fc = 0xb9
    root@am62lxx-ig69m-2gb:~# devmem2 0x305000B0 
    /dev/mem opened.
    Memory mapped at address 0xffffa30f6000.
    Read at address  0x305000B0 (0xffffa30f60b0): 0x81F8FE00
            


    如果没有上述任何补丁:增加 HFP、从而增加时钟。 在所有实验中保持 fps 不变。

    我通过根据建议增加水平前沿 (HFP) 并相应地调整像素时钟、同时尝试保持每秒恒定帧数 (FPS)、进行了几项实验。 但是、我测试过的所有组合中、问题仍然存在。

    您能否分享一个已知的工作配置或设置、以获得的显示分辨率 1260x600 稳定的 FPS?

    此外、我发现很难保持 FPS 恒定、修改任何一个时序参数(例如 HFP、HBP 或像素时钟)似乎都会导致 FPS 发生变化。 您能否阐明在不同测试用例中维持固定 FPS 的正确方法?

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

    您好、

    我们已经用彩色图案测试了显示器、有没有方法可以用任何视频图案进行测试?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [报价 userid=“563438" url="“ url="~“~/support/processors-group/processors/f/processors-forum/1499432/am62l-processor-sdk-clarification-on-use-of-bridges-and-ports-in-k3-am62l3-evm-dsi-rpi-7inch-panel-dtso-for-mipi-dsi-display/5839843 #5839843“]

    根据其他用户实验、 重试 一次执行以下操作之一:
    1.  

    您可以尝试以下操作吗:
    1. 加入了补丁程序: 前面提到的补丁程序集的补丁程序 15/18。 
    2. 将寄存器 2.2.35.1 DSI_TOP_VBUSP_CFG_DSI_0_DSI_VID_MAIN_CTL 寄存器中的 REG_BLKEOL_MODE 和 REG_BLKLINE_MODE 调整为 3(切换到 LP 模式与传输空白数据包)[复位= 80000000h]

    2.没有上面的任何修补程序:增加 HFP 并因此增加时钟。 在所有实验中保持 fps 不变。

    [/报价]

    我的意思是让您的 DTS 变化保持不变、您可以看到测试模式。

    现在、测试生成模式没有任何用途。
    请使用这些选项之一、一次一个、并运行 kmstest 以检查您是否看到任何内容。
    注意、在运行 kmstest 之前、您不应运行测试模式脚本。 如果是、请先重新引导、然后直接运行 kmstest。

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

    您好、  

    1) 我尝试了 kmstest 在补丁之后和之前,你共享:只有光标闪烁(注意:  仅在执行命令的时刻 直到我停止 kmstest ) 在右上角或显示和背光被观察.

    2) 在将寄存器值调整为 LP 模式之后和之前尝试了 kmstest : 与上述观察结果相同。

    3) 更新 timimg 参数 HFP 和时钟: 与上一个对象相同

    注意:  
    只要我在显示屏上看到光标、我就能看到数据信号仅在此时脉动。


    您能否分享以 1024x600 分辨率正确购买显示器的任何一个工作参数?
    这会是一个问题,因为我的显示器有自己的驱动程序,而不是常见的 simple-panel.c ?
    这是否支持外部显示驱动程序?

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

    您好、

    我在 TRM 中找到了这个  


    这是否意味着不支持数据线=4 的 RG888?

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

    您好、

    在通过 TRM 时,我找到了一些支持的显示大小列表,我找不到 1024*600。 能否请您确认此查询以及上述查询。

    您能否分享以 1024x600 分辨率正确购买显示器的任何一个工作参数?
    这会是一个问题,因为我的显示器有自己的驱动程序,而不是常见的 simple-panel.c ?
    这是否支持外部显示驱动程序?

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

    当您之前提到一个显示器工作良好,而另一个没有,这两者之间有什么区别? 这两个 DSI 是否都由与 AM62L 相同的面板驱动器驱动?

    这是否意味着不支持数据行=4 的 RG888?

    很快就会回复。

    在浏览 TRM 时、我找到了一些支持的显示大小列表、其中我找不到 1024*600

    您能否分享相关章节编号?
    将在明天之前回答您的问题。

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

    您好、  

    一个显示屏效果良好、这一点很重要 :工作显示是一个 RGB 显示,它直接从 DSS 获取 DPI 信号。 DSI 控制器没有用于操作该显示屏的概念。 另一个不起作用的显示屏是 MIPI-DSI 显示屏、它从 DSI 控制器接收 CPU 信号。 两个显示屏使用不同的驱动器。 RGB Dispay 使用面板简单,而 MIPI-DSI 使用面板 Winstar 驱动器。

    您能否分享相关章节编号?  12.7.2.7.2.3 pg.no:1207 中的视频一致性

    将在明天之前回答您的问题。 好的。期待您的答复

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

    您好、

    我按照 TRM 第 12.7.2.7.3 节“启动过程“中的说明检查了寄存器值  

    你能确认天气登记簿被写得正确,以得到我的折扣。

    devmem2 0x30500008-DSI_MCTL_MAIN_PHY_CTL
    /dev/mem 已打开。
    存储器映射到地址 0xff87ff000。
    读取地址 0x30500008 (0xff87ffe008):0x00000017
    十六进制:0x00000017
    二进制:0000 0000 0000 0000 0000 0001 0111

    devmem2 0x3050000C-DSI_MCTL_MAIN_EN
    /dev/mem 已打开。
    映射到地址 0xffffa2eb0000 的存储器。
    读取地址 0x3050000C (0xffa2eb000c):0x000040F9

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引述 userid=“640123" url="“ url="~“~/support/processors-group/processors/f/processors-forum/1499432/am62l-processor-sdk-clarification-on-use-of-bridges-and-ports-in-k3-am62l3-evm-dsi-rpi-7inch-panel-dtso-for-mipi-dsi-display/5842787 #5842787“]
    这是否意味着不支持数据行=4 的 RG888?

    不可以、我们已经有内部验证、一些客户验证的 4 通道 DSI 面板可以正常工作。

    找到一些支持的显示大小列表、我找不到 1024*600

    这些似乎只是在 TVG 发电机测试中提到的。 通常、客户已经启用了非标准分辨率。

    [引述 userid=“640123" url="“ url="~“~/support/processors-group/processors/f/processors-forum/1499432/am62l-processor-sdk-clarification-on-use-of-bridges-and-ports-in-k3-am62l3-evm-dsi-rpi-7inch-panel-dtso-for-mipi-dsi-display/5842818 #5842818“] 您能否分享以 1024x600 分辨率正确购买显示器的任何一个工作参数?
    [/报价]

    您可以尝试使用: https://tomverbeure.github.io/video_timings_calculator 、方法是在此处添加 1024x600 并使用 CVT-RB 列计时。

    [引述 userid=“640123" url="“ url="~“~/support/processors-group/processors/f/processors-forum/1499432/am62l-processor-sdk-clarification-on-use-of-bridges-and-ports-in-k3-am62l3-evm-dsi-rpi-7inch-panel-dtso-for-mipi-dsi-display/5842818 #5842818“] 这会是一个问题,因为我的显示器有自己的驱动程序,而不是常见的 simple-panel.c ?
    [/报价]

    通常、TIDSS 与驱动程序无关、任何有效的自定义驱动程序都应该工作。

    devmem2 0x30500008-DSI_MCTL_MAIN_PHY_CTL
    /dev/mem 已打开。
    存储器映射到地址 0xff87ff000。
    读取地址 0x30500008 (0xff87ffe008):0x00000017
    十六进制:0x00000017
    二进制:0000 0000 0000 0000 0000 0001 0111

    devmem2 0x3050000C-DSI_MCTL_MAIN_EN
    /dev/mem 已打开。
    映射到地址 0xffffa2eb0000 的存储器。
    读取地址 0x3050000C (0xffa2eb000c):0x000040F9

    我根据 TRM 寄存器说明检查了您的值、考虑到您使用的是 4 通道显示、这两个值看起来都可以正常使用。 这些寄存器显示已启用 4 通道模式。

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

    您好、  

    感谢您的答复。

    经证实、具有 4 通道 DSI 接口的 1024x600 分辨率通过定制面板驱动程序获得支持。 我尝试使用您共享的计时计算器配置面板;但是、问题仍然存在。

    我观察到的一个结果是、更新器件树中的时序参数后、在运行 TVG 测试脚本时、TVG 图形不再出现在显示屏上。 采用与之前正确显示图形相同的 DTS 配置 — 唯一的更改是时序参数。

    我还使用了显示供应商提供的时序参数进行了测试、但遗憾的是、该配置也无法在显示器上启动 GUI。

    如果您有已知与 TIDSS 驱动程序兼容的 1024x600 分辨率面板的任何已验证工作计时参数、我希望您能分享这些参数。 同时,我将继续尝试在我的最后使用不同的计时值

    只是为了确认 — 根据我们目前的理解,问题是否仅与时序参数有关,或者它是否可能与 Cadence DSI 驱动器或任何其他组件有关?


    我根据计算器尝试的 Timimg 参数是:
    .clock = 43750、
    .hdisplay = 1024、
    .hSYNC_START = 1024 + 48、
    .hSYNC_END = 1024 + 48 + 80、
    .htotal = 1024 + 48 + 80 + 32、
    .vdisplay = 600、
    .vsync_start = 600 + 3、
    .vsync_end = 600 + 3 + 6、
    .vtotal = 600 + 3 + 6 + 10、
    .width_mm = 154、
    .height_mm = 85、
    .flags = DRM_MODE_FLAG_PHSYNC |
    DRM_MODE_FLAG_PVSYNC、

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

    尊敬的 Dheeraj:

    如果您有已知与 TIDSS 驱动程序兼容的 1024x600 分辨率面板的任何已验证工作计时参数、我将不胜感激。

    遗憾的是、我们最后没有用于验证此分辨率的时序参数的测试设置、因此无法提供任何经过验证的时序参数。

    根据我们目前的理解、问题是否仅与时序参数有关、或者它是否可能与 Cadence DSI 驱动程序或任何其他组件有关?

    您之前可能已经回答过这个问题、但您是否已经验证过面板驱动器和面板与任何其他 SoC/电路板发出 DSI 信号?
    如果经过验证、很可能的问题是、您可能需要根据数据表中给出的值增加 HFP 时序、并相应地增加时钟。 偏离数据表参数的原因可能是 hoe DSI DPHY 工作正常、但到目前为止、还没有定义的算法来提供有效的时序参数。 过去、我们看到多个客户只能通过调整这些参数来启动其显示。

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

    您好、  

    我使用的驱动程序和显示器已经过验证、并根据供应商提供的时序参数正常运行。

    此外、我还有另一台分辨率为 1200x1920 的 MIPI Startek 显示器、在那里我遇到了类似的问题。 但是、我遇到了一个有人能够成功提出该解决方案的案例。 如果该实例中使用的特定时序参数可用、将会非常有用。

    此外、我尝试使用simple-panel驱动器通过包含适当的时序结构来增加对此显示的支持。 但是、我在引导过程中遇到了以下错误信息(我已将 dss_port 更改为 1、因为如果我使用 dss_port、 “tidss prot 0 探测器失败“ )

    错误:
    dmesg | grep -i tidss
    [ 12.546016][DRM]初始化了次要 0 上 30200000.dss 的 tidss 1.0.0
    [ 12.553448] tidss 30200000.dss:[DRM]找不到兼容格式
    [ 12.560117] tidss 30200000.dss:[DRM]找不到任何 CRTC 或大小

    驱动程序更改 — 在使用自定义显示屏时,在显示屏中探测和播放 TVG 模式时、这些参数没有问题。

    static const struct drm_display_mode winstar_1024x600_mode = {
            .clock = 51100,
            .hdisplay = 1024,
            .hsync_start = 1024 + 180,
            .hsync_end = 1024 + 180 + 32,
            .htotal = 1024 + 180 + 32 + 128,
            .vdisplay = 600,
            .vsync_start = 600 + 10,
            .vsync_end = 600 + 10 + 4,
            .vtotal = 600 + 12 + 4 + 21,
            .width_mm = 154,
            .height_mm = 85,
            .flags = DRM_MODE_FLAG_PHSYNC |
                    DRM_MODE_FLAG_PVSYNC,
    
    
    };
    
    static const struct panel_desc qunxin_1024x600 = {
            .modes = &qunxin_1224x600_mode,
            .num_modes = 1,
            .bpc = 8,
            .size = {
                    .width = 154,
                    .height = 85,
            },
            .bus_format = MEDIA_BUS_FMT_RGB888_1X24,
            .connector_type = DRM_MODE_CONNECTOR_DSI,
    };
    



    DTS -
     
                    &dss {
            status = "okay";
            bootph-all;
    };
    
    &dss_ports {
            #address-cells = <1>;
            #size-cells = <0>;
    
            port@1 {
                    reg = <1>;
    
                    dpi_out: endpoint {
                            remote-endpoint = <&dsi0_in>;
                    };
            };
    };
    
    &dphy_tx0 {
            status = "okay";
            bootph-all;
    };
    
    &dsi0 {
            status = "okay";
            bootph-all;
            #address-cells = <1>;
            #size-cells = <0>;
    
            ports {
                    #address-cells = <1>;
                    #size-cells = <0>;
    
                    port@0 {
                            reg = <0>;
                            dsi0_out: endpoint {
                                    remote-endpoint = <&panel_in>;
                            };
                    };
    
                    port@1 {
                            reg = <1>;
                            dsi0_in: endpoint {
                                    remote-endpoint = <&dpi_out>;
                            };
                    };
            };
    
            panel@0 {
                    compatible = "winstar,winstar1024x600";
                    v3p3-supply = <&vcc_3v3_sys>;
                    v1p8-supply = <&vcc_1v8>;
                    reg = <0>;
                    ports {
                            #address-cells = <1>;
                            #size-cells = <0>;
    
                            port@0 {
                                    reg = <0>;
                                    panel_in: endpoint {
                                            remote-endpoint = <&dsi0_out>;
                                    };
                            };
                    };
            };
    };
    





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

    驱动程序更改:

    静态常量结构体 DRM_DISPLAY_MODE Winstar_1024x600_mode ={
    .clock = 51100、
    .hdisplay = 1024、
    .hSYNC_START = 1024 + 180、
    .hSYNC_END = 1024 + 180 + 32、
    htotal = 1024 + 180 + 32 + 128、
    .vdisplay = 600、
    .vsync_start = 600 + 10、
    .vsync_end = 600 + 10 + 4、
    .vtotal = 600 + 12 + 4 + 21、
    .width_mm = 154、
    .height_mm = 85、
    .flags = DRM_MODE_FLAG_PHSYNC |
    DRM_MODE_FLAG_PVSYNC、


    };

    static const struct panel_desc Winstar_1024x600 ={
    .modes =&Winstar_1024x600_mode、
    .num_modes = 1、
    .bpc = 8、
    .size ={
    .width = 154、
    .height = 85,
    }、
    .bus_format = media_bus_FMT_RGB888_1X24、
    .CONNECTOR_TYPE = DRM_MODE_CONNECTOR_DSI
    };

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

    您好、

    只需办理入住手续。请提供  1200x1920 分辨率的工作计时参数。


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

    您好、

    请提供具有  1200x1920 分辨率的工作计时参数。

    到目前为止、此分辨率还没有一组工作参数。

    错误:
    dmesg | grep -i tidss
    [ 12.546016][DRM]初始化了次要 0 上 30200000.dss 的 tidss 1.0.0
    [ 12.553448] tidss 30200000.dss:[DRM]找不到兼容格式
    [ 12.560117] tidss 30200000.dss:[DRM]找不到任何 CRTC 或大小

    这些日志与我有一点有关。 您能否添加打印日志以检查 tidss_dispc.c 文件中的 dispc_vp_mode_valid() 返回的内容?

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

    您好、

    因此、没有分辨率为 1024x600 和 1200x1920 的工作显示器 ?
    是的、我尝试在 mode_valid 函数内的文件中添加打印件、但在我看来、每当我收到此错误时、特定的功能就不会执行。 将我所添加的打印信标从不显示在引导日志中。


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

    您使用哪个功能添加打印件?
    尝试使用 dev_dbg、并在`#include 之后添加`#define DEBUG 1

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

    是的、我使用了您提到的相同功能。 根据我的理解,只有在设置了帧缓冲区或正确探测了驱动程序时,函数才会被执行。当我在更改计时参数时使用 Winstar 驱动程序进行测试时,我使用 ALE 获取我在 tidss_dispc.c 文件中添加的打印件,

    以下是使用 Winstar 驱动程序进行测试时收到的调试打印。

    [   16.619432] panel-custom-disp-winstar 30500000.dsi.0: Winstar :Display physical size: width = 154 mm, height = 85 mm
    [   16.710502] IG69-> hsw:280 hbp:32 vfp:128 vsw:10 vbp:4 
    [   16.736990] IG69-> hsw:280 hbp:32 vfp:128 vsw:10 vbp:4 
    [   16.737047] IG69-> hsw:280 hbp:32 vfp:128 vsw:10 vbp:4 
    [   16.790940] IG69-> hsw:280 hbp:32 vfp:128 vsw:10 vbp:4 
    [   16.908601] panel-custom-disp-winstar 30500000.dsi.0: Winstar :Display physical size: width = 154 mm, height = 85 mm
    [   16.954582] IG69-> hsw:280 hbp:32 vfp:128 vsw:10 vbp:4 
    [   16.954747] IG69-> hsw:280 hbp:32 vfp:128 vsw:10 vbp:4 
    [   17.099335] IG69-> hsw:280 hbp:32 vfp:128 vsw:10 vbp:4 
    [   22.271644] panel-custom-disp-winstar 30500000.dsi.0: Winstar :Display physical size: width = 154 mm, height = 85 mm
    [   22.308485] IG69-> hsw:280 hbp:32 vfp:128 vsw:10 vbp:4 
    [   22.373615] IG69-> hsw:280 hbp:32 vfp:128 vsw:10 vbp:4 
    [   23.036998] IG69-> hsw:280 hbp:32 vfp:128 vsw:10 vbp:4 
    root@am62lx-ig69m-osm-2gb:~# [   23.689927] IG69-> hsw:280 hbp:32 vfp:128 vsw:10 vbp:4 
    [   53.885811] IG69-> hsw:280 hbp:32 vfp:128 vsw:10 vbp:4 
    [   53.899789] IG69-> hsw:280 hbp:32 vfp:128 vsw:10 vbp:4 
    [   53.940796] IG69-> hsw:280 hbp:32 vfp:128 vsw:10 vbp:4 
    [  113.885760] IG69-> hsw:280 hbp:32 vfp:128 vsw:10 vbp:4 
    [  113.898112] IG69-> hsw:280 hbp:32 vfp:128 vsw:10 vbp:4 
    [  113.910476] IG69-> hsw:280 hbp:32 vfp:128 vsw:10 vbp:4 
    [  173.886011] IG69-> hsw:280 hbp:32 vfp:128 vsw:10 vbp:4 
    [  173.909703] IG69-> hsw:280 hbp:32 vfp:128 vsw:10 vbp:4 
    
    
    
    
    The prints i haved added in the driver is below:
     */
            if ((mode->hdisplay % 2) != 0)
                    return MODE_BAD_HVALUE;
    
            hfp = mode->hsync_start - mode->hdisplay;
            hsw = mode->hsync_end - mode->hsync_start;
            hbp = mode->htotal - mode->hsync_end;
    
            vfp = mode->vsync_start - mode->vdisplay;
            vsw = mode->vsync_end - mode->vsync_start;
            vbp = mode->vtotal - mode->vsync_end;
    
            printk("IG69-> hsw:%d hbp:%d vfp:%d vsw:%d vbp:%d ",hfp,hsw,hbp,vfp,vsw,vbp);
    
            if (hsw < 1 || hsw > 256 ||
                hfp < 1 || hfp > 4096 ||
                hbp < 1 || hbp > 4096)
                    return MODE_BAD_HVALUE;
    
            if (vsw < 1 || vsw > 256 ||
                vfp > 4095 || vbp > 4095)
                    return MODE_BAD_VVALUE;
                    
    
    Similarly i have added one more debug print which was not observed during bootprnt  (The else part)
    if (dispc->tidss->shared_mode && !dispc->tidss->shared_mode_owned_vps[hw_videoport]) {
                    int vp_hdisplay = VP_REG_GET(dispc, hw_videoport, DISPC_VP_SIZE_SCREEN, 11, 0) + 1;
                    int vp_vdisplay = VP_REG_GET(dispc, hw_videoport, DISPC_VP_SIZE_SCREEN, 27, 16) + 1;
    
                    if (mode->hdisplay > vp_hdisplay ||
                        mode->vdisplay > vp_vdisplay) {
                            dev_err(dispc->dev, "%dx%d exceeds VP screen size %dx%d in shared mode\n",
                                    mode->hdisplay, mode->vdisplay, vp_hdisplay, vp_vdisplay);
                            return MODE_BAD;
                    }
                    else{
                    dev_dbg(dispc->dev, "IG69-> VP screen size %dx%d in shared mode\n",
                                    mode->hdisplay, mode->vdisplay, vp_hdisplay, vp_vdisplay);
                    }
            }
    

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

    ELSE 部分不会打印、因为外部 IF 部分仅在 DSS 共享模式下执行、AM62L 没有共享模式。
    尝试如下操作:

    static int tidss_crtc_atomic_check(struct drm_crtc *crtc,
    				   struct drm_atomic_state *state)
    {
    	struct drm_crtc_state *crtc_state = drm_atomic_get_new_crtc_state(state,
    									  crtc);
    	struct drm_device *ddev = crtc->dev;
    	struct tidss_device *tidss = to_tidss(ddev);
    	struct dispc_device *dispc = tidss->dispc;
    	struct tidss_crtc *tcrtc = to_tidss_crtc(crtc);
    	u32 hw_videoport = tcrtc->hw_videoport;
    	const struct drm_display_mode *mode;
    	enum drm_mode_status ok;
    
    	dev_dbg(ddev->dev, "%s\n", __func__);
    
    	if (!crtc_state->enable)
    		return 0;
    
    	mode = &crtc_state->adjusted_mode;
    
    	ok = dispc_vp_mode_valid(dispc, hw_videoport, mode);
    	dev_dbg(ddev->dev, "....<print what dispc_vp_mode_valid returns>....");
    	if (ok != MODE_OK) {
    		dev_dbg(ddev->dev, "%s: bad mode: %ux%u pclk %u kHz\n",
    			__func__, mode->hdisplay, mode->vdisplay, mode->clock);
    		return -EINVAL;
    	}
    
    	drm_mode_set_crtcinfo(&crtc_state->adjusted_mode, 0);
    	return dispc_vp_bus_check(dispc, hw_videoport, crtc_state);
    }

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

    我会检查,但我认为这不是问题,因为我的 Winstar 驱动程序通过了.

    我测试的显示器的分辨率为 1024x600 、根据处理器文档、它应处于支持的范围内(高达 1080p 或更高)

    我的驱动程序和显示器之前已在其他平台上进行过验证、因此我相信问题在于当前的时序配置或显示参数被tidss AM62L 平台上的驱动程序拒绝。 要继续并关闭此测试用例、我需要正确调出显示屏。

    为了确保设置在限制范围内、我甚至尝试使用其他分辨率显示器(例如, 1200x1920 )、但仍然会遇到tidss驱动程序不接受计时参数的问题。我从先前的讨论中了解到、此分辨率可能没有经过正式验证的显示计时参数。 然而,我遇到了以下的线程,在那里它似乎是 1200x1920 显示已成功启动:
    Thread 链路:AM62L DSI_P_CLK 没有速率

    请为以下任一项提供经过验证且可正常工作的显示计时配置:

    • 1200x1920

    • 1024x600
      还是其他经验证可与 AM62L 上的 MIPI DSI 接口配合使用的已知良好的分辨率?

    我愿意将面板迁移到任何受支持的分辨率、而这些分辨率不想在它们之间使用桥梁、如 EVM 板中所示、只要有助于完成此 CPU 上的验证即可。

    此致、
    Dheeraj k

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

    您好、  

    你能不能看到任何照片的 mipi 显示器应该是如何看起来,一旦它是正常工作

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

    您 将看到 Arago 控制台几秒钟、然后加载 LVGL OOB GUI。

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

    我们正在尝试通过其他团队的咨询来确定时间参数的某种准则。 可能需要一周时间。 我们会尽快分享这些信息。

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

    好的、谢谢、正在等待您的答复。

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

    您好、  

    我尝试打开另一个带有部件号的显示屏 KD070FHFID078 、使用类似于的配置k3-am62l3-evm-dsi-rpi-7inch-panel.dtso。 我使用了同一个 MIPI DSI 桥并更新了成功以相同分辨率打开该显示屏的人员共享的时序参数。

    但是、我仍然无法在显示器上看到任何输出、甚至无法看到测试模式。 背光灯打开、但显示屏保持空白、并且没有来自的可见输出kmstest

    鉴于时序参数似乎正确并由其他人验证、您能否建议需要进行哪些其他更改或检查才能成功启动显示?

    kmstest 的输出:
    root@am62lxx-ig69m-2GB:~# kmstest
    [45.211186] IG69-> HSW:48 HBP:32 VFP:56 vsw:3 VBP:3
    [ 48.940632]面板 0:内部 get_modes
    [48.945646]窗格 0:non_EDID_MODES 内
    [48.949170] Panel0:在 get_display_mode 内部
    [48.953216] Panel0:模式[0]- 1200x1920@39Hz、时钟:101550kHz、HSYNC:1248-1280-1336、Vsync:1923-1926-1930
    [48.967456]面板 0:连接器->DISPLAY_INFO:BPC=8、大小=95mm x 151mm、bus_format=0x100a、bus_flags=0x0
    连接器 0/@41:DSI-1
    [48.977018] IG69-> HSW:48 HBP:32 VFP:56 vsw:3 VBP:3
    CRTC 0/@39:1200x1920@39.38 101.550 1200/48/32/56/? 1920/3/3/4[49.211763] wwinstar:insidsi_round-clk
    /? 39 (39.38) 0x0 0x48
    平面 0/@32:0、0-1200x1920
    FB 44 1200x1920-XR24


    在转储寄存器值时、我可以看到通道已设为 0? 为什么会这样呢?

    devmem2 0x30500008
    /dev/mem 已打开。
    映射到地址 0xff99888000 的存储器。
    读取地址 0x30500008 (0xff99888008):0x00000010

    devmem2 0x3050000C
    /dev/mem 已打开。
    存储器映射到地址 0xffffaf82a000。
    读取地址 0x3050000C (0xffffaf82a00c):0x00004019

    我将附上 DTS 更改:  

    /dts-v1/;
    
    
    
    &{/} {
    
            bridge_reg: bridge-regulator {
                    compatible = "regulator-fixed";
                    regulator-name = "bridge_reg";
                    regulator-min-microvolt = <3300000>;
                    regulator-max-microvolt = <3300000>;
                    enable-active-high;
                    regulator-always-on;
                    regulator-boot-on;
                    vin-supply = <&reg_3p3v>;
            };
    
            mipi_backlight: mipi-backlight {
                    compatible = "pwm-backlight";
                    pwms = <&epwm0 0 100000 0>;
                    status = "okay";
                    brightness-levels =
                            < 0  1  2  3  4  5  6  7  8  9
                            10 11 12 13 14 15 16 17 18 19
                            20 21 22 23 24 25 26 27 28 29
                            30 31 32 33 34 35 36 37 38 39
                            40 41 42 43 44 45 46 47 48 49
                            50 51 52 53 54 55 56 57 58 59
                            60 61 62 63 64 65 66 67 68 69
                            70 71 72 73 74 75 76 77 78 79
                            80 81 82 83 84 85 86 87 88 89
                            90 91 92 93 94 95 96 97 98 99
                            100>;
                    default-brightness-level = <80>;
            };
    
            panel0 {
                    compatible = "startek,1200x1290";
                    backlight = <&mipi_backlight>;
                    power-supply = <&reg_3p3v>;
                    dsi-lanes = <4>;
                    v3p3-supply = <&reg_3p3v>;
                    v1p8-supply = <&reg_1p8v>;
                    video-mode = <2>;
                    width-mm = <95>;
                    height-mm = <151>;
                    port {
                            panel_in: endpoint {
                                    remote-endpoint = <&panel_bridge_out>;
                            };
                    };
            };
    };
    
    &dss {
            status = "okay";
            bootph-all;
    };
    
    &dss_ports {
            #address-cells = <1>;
            #size-cells = <0>;
    
            port@0 {
                    reg = <0>;
    
                    dpi_out: endpoint {
                            remote-endpoint = <&dsi0_in>;
                    };
            };
    };
    
    &dphy_tx0 {
            status = "okay";
            bootph-all;
    };
    
    &dsi0 {
            status = "okay";
            bootph-all;
            #address-cells = <1>;
            #size-cells = <0>;
    
            ports {
                    #address-cells = <1>;
                    #size-cells = <0>;
    
                    port@0 {
                            reg = <0>;
                            dsi0_out: endpoint {
                                    remote-endpoint = <&panel_bridge_in>;
                            };
                    };
    
                    port@1 {
                            reg = <1>;
                            dsi0_in: endpoint {
                                    remote-endpoint = <&dpi_out>;
                            };
                    };
            };
    
            bridge@0 {
                    compatible = "toshiba,tc358762";
                    reg = <0>;
                    vddc-supply = <&bridge_reg>;
                    ports {
                            #address-cells = <1>;
                            #size-cells = <0>;
    
                            port@0 {
                                    reg = <0>;
                                    panel_bridge_in: endpoint {
                                            remote-endpoint = <&dsi0_out>;
                                    };
                            };
    
                            port@1 {
                                    reg = <1>;
                                    panel_bridge_out: endpoint {
                                            remote-endpoint = <&panel_in>;
                                    };
                            };
                    };
            };
    };
    
    &epwm0 {
            pinctrl-names = "default";
            pinctrl-0 = <&main_epwm0_pins_default>;
            status = "okay";
    };
    ~    


    并且驱动程序会更改:
    static const struct drm_display_mode startek_1200x1920_mode = {
                    .clock = 101550,
                    .hdisplay = 1200,
                    .hsync_start = 1200 + 48,
                    .hsync_end = 1200 + 48 + 32,
                    .htotal = 1200 + 48 + 32 + 56,
                    .vdisplay = 1920,
                    .vsync_start = 1920 + 3,
                    .vsync_end = 1920 + 3 + 3,
                    .vtotal = 1920 + 3 + 3 + 4,
                    .width_mm = 95,
                    .height_mm = 151,
    
    
    };
    
    static const struct panel_desc startek_1200x1290 = {
            .modes = &startek_1200x1920_mode,
            .num_modes = 1,
            .bpc = 8,
            .size = {
                    .width = 95,
                    .height = 151,
            },
            .bus_format = MEDIA_BUS_FMT_RGB888_1X24,
            .connector_type = DRM_MODE_CONNECTOR_DSI,
    };
    
    

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

    您好、  

    我对仍然很好奇 用于连接处理器和显示屏的桥接器 。 根据我的理解、使用了以下桥接器:

    Toshiba、tc358762 : Toshiba TC358762 MIPI DSI 转 MIPI DPI 桥接器。

    但是、我有点困惑。

    据我所知、 我们的 MIPI 显示屏直接支持 DSI 信号 、而不是 DPI。 所以、 为什么在此设置中甚至需要像 TC358762 这样的 DSI 转 DPI 桥接器?

    是否可以通过显示屏显示 DSI 原生、根本不需要这种桥接器

    此外:

    • 是否有人在不使用 Toshiba 桥接器的情况下直接启动了 MIPI DSI 显示器?

    • 默认情况下、EVM 板上是否已安装任何硬件元件(如此桥接器)?
      我想确认该桥接器实际上是否存在于显示路径中、或者它是否只是通用 DTS 配置的一部分。

    我怀疑这座桥可能是显示屏不能按预期工作的原因、所以任何澄清都很有帮助。

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

    您好、

    这主要与您的面板驱动程序的工作方式有关。 任何 DSI 面板都 需要将接收到的数据转换为 RGB 格式、以便在面板上显示。 在 RPi 面板外壳中、有一个 Toshiba 桥接驱动器可以执行此操作。 Toshiba 桥有自己的驱动器功能、需要为此调用该功能。
    不同的面板可以采用不同的方法来实现这一点(可能具有这样的面板驱动器)。 查看以下 DTS: https://git.ti.com/cgit/ti-linux-kernel/ti-linux-kernel/tree/arch/arm64/boot/dts/ti/k3-am62p5-sk-microtips-mf070zima-lcd3.dtso?h=ti-linux-6.6.y (此显示器适用于 AM62P,目前不受支持)。 这种情况下无需使用桥接驱动器、而是使用面板驱动器中定义的命令来执行这些功能。

    您必须检查面板驱动器的工作原理以及是否需要在 DTS 中单独设置桥接节点。
    如果您的面板驱动器不需要桥接驱动器、从硬件连接说明的角度来看、DTS 看起来不错。  
    如果您的面板没有显示任何内容、我建议您将与 DSS 和 DSI 相关的 dmesg 日志、控制台结果与 kmsprint 和 kmstest 共享、并且您在屏幕上看到的任何内容都包含 kmstest 正在运行以及更新的 DTS(如果已修改)。

    如前所述、DSI 面板会接收 DSI 数据、然后将其转换为 DPI 以使面板正常工作。 该桥接器实际上存在于 RPi 显示屏中、而不是 TI EVM 上、因此不仅仅是一个软件抽象。 (请参阅 forums.raspberrypi.com/viewtopic.php
    请检查上面引用的相同消息、以查看没有显式桥接器的面板示例。  

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

    您好、  

    我已按照您的要求附加了输出。只要我在显示屏右上角给出命令 kmstest、光标就会闪烁、这就是我在运行脚本时可以看到的以及 2 种颜色的测试模式。

    root@am62lxx-ig69m-2gb:~# 
    root@am62lxx-ig69m-2gb:~# dmesg | grep [   25.047835] IG69-> hsw:180 hbp:32 vfp:128 vsw:10 vbp:4 
    [   53.998099] wwinstar:insidedsi_round-clk
    [   54.003589] IG69-> hsw:180 hbp:32 vfp:128 vsw:10 vbp:4 
    [   54.019868] wwinstar:insidedsi_round-clk
    [   54.025242] IG69-> hsw:180 hbp:32 vfp:128 vsw:10 vbp:4 
    [   54.060547] wwinstar:insidedsi_round-clk
    -i tidss
    [   16.851516] [drm] Initialized tidss 1.0.0 for 30200000.dss on minor 0
    [   17.112421] tidss 30200000.dss: [drm] fb0: tidssdrmfb frame buffer device
    root@am62lxx-ig69m-2gb:~# dmesg | grep -i dsi  
    [    0.307683] /bus@f0000/dss@30200000: Fixed dependency cycle(s) with /bus@f0000/dsi@30500000
    [    0.316241] /bus@f0000/dsi@30500000: Fixed dependency cycle(s) with /bus@f0000/dss@30200000
    [    0.324776] /bus@f0000/dsi@30500000: Fixed dependency cycle(s) with /bus@f0000/dsi@30500000/panel@0
    [    0.334033] /bus@f0000/dsi@30500000/panel@0: Fixed dependency cycle(s) with /bus@f0000/dsi@30500000
    [    0.347638] /bus@f0000/dss@30200000: Fixed dependency cycle(s) with /bus@f0000/dsi@30500000
    [    0.356331] /bus@f0000/dss@30200000: Fixed dependency cycle(s) with /bus@f0000/dsi@30500000
    [    0.364917] /bus@f0000/dsi@30500000: Fixed dependency cycle(s) with /bus@f0000/dss@30200000
    [    0.373502] /bus@f0000/dsi@30500000: Fixed dependency cycle(s) with /bus@f0000/dsi@30500000/panel@0
    [    0.382808] /bus@f0000/dsi@30500000/panel@0: Fixed dependency cycle(s) with /bus@f0000/dsi@30500000
    [   14.743925] /bus@f0000/dsi@30500000: Fixed dependency cycle(s) with /bus@f0000/dsi@30500000/panel@0
    [   14.763310] /bus@f0000/dsi@30500000/panel@0: Fixed dependency cycle(s) with /bus@f0000/dsi@30500000
    [   16.793015] panel-custom-disp-winstar 30500000.dsi.0: Winstar received dsi-lanes property (4)
    [   16.865311] panel-custom-disp-winstar 30500000.dsi.0: Winstar:recieved modes 1024x600x@59
    [   16.881944] panel-custom-disp-winstar 30500000.dsi.0: Winstar :Display physical size: width = 154 mm, height = 85 mm
    [   16.898016] panel-custom-disp-winstar 30500000.dsi.0: Display bus format [0]: 0x0000100a
    [   16.910841] panel-custom-disp-winstar 30500000.dsi.0: Display bus format [1]: 0x00001009
    [   16.927429] panel-custom-disp-winstar 30500000.dsi.0: Display bus format [2]: 0x00001017
    [   16.948327] wwinstar:insidedsi_round-clk
    [   16.960127] DSI format receivedd: 0
    [   16.960134] DSI format received: RGB888 (0)
    [   16.999640] wwinstar:insidedsi_round-clk
    [   17.155400] panel-custom-disp-winstar 30500000.dsi.0: Winstar:recieved modes 1024x600x@59
    [   17.171720] panel-custom-disp-winstar 30500000.dsi.0: Winstar :Display physical size: width = 154 mm, height = 85 mm
    [   17.182629] panel-custom-disp-winstar 30500000.dsi.0: Display bus format [0]: 0x0000100a
    [   17.200886] panel-custom-disp-winstar 30500000.dsi.0: Display bus format [1]: 0x00001009
    [   17.223650] panel-custom-disp-winstar 30500000.dsi.0: Display bus format [2]: 0x00001017
    [   17.249807] wwinstar:insidedsi_round-clk
    [   17.533115] wwinstar:insidedsi_round-clk
    [   22.502455] panel-custom-disp-winstar 30500000.dsi.0: Winstar:recieved modes 1024x600x@59
    [   22.510769] panel-custom-disp-winstar 30500000.dsi.0: Winstar :Display physical size: width = 154 mm, height = 85 mm
    [   22.521380] panel-custom-disp-winstar 30500000.dsi.0: Display bus format [0]: 0x0000100a
    [   22.529546] panel-custom-disp-winstar 30500000.dsi.0: Display bus format [1]: 0x00001009
    [   22.537731] panel-custom-disp-winstar 30500000.dsi.0: Display bus format [2]: 0x00001017
    [   23.377088] wwinstar:insidedsi_round-clk
    [   23.807488] wwinstar:insidedsi_round-clk
    [   23.869860] wwinstar:insidedsi_round-clk
    [   23.890149] wwinstar:insidedsi_round-clk
    [   23.921498] wwinstar:insidedsi_round-clk
    [   23.959100] wwinstar:insidedsi_round-clk
    [   24.124855] wwinstar:insidedsi_round-clk
    [   24.162281] wwinstar:insidedsi_round-clk
    [   24.264255] wwinstar:insidedsi_round-clk
    [   24.299391] wwinstar:insidedsi_round-clk
    [   24.441870] wwinstar:insidedsi_round-clk
    [   24.468415] wwinstar:insidedsi_round-clk
    [   24.619139] wwinstar:insidedsi_round-clk
    [   24.658240] wwinstar:insidedsi_round-clk
    [   24.775204] wwinstar:insidedsi_round-clk
    [   24.808582] wwinstar:insidedsi_round-clk
    [   24.947109] wwinstar:insidedsi_round-clk
    [   24.983153] wwinstar:insidedsi_round-clk
    [   25.042356] wwinstar:insidedsi_round-clk
    [   53.998099] wwinstar:insidedsi_round-clk
    [   54.019868] wwinstar:insidedsi_round-clk
    [   54.060547] wwinstar:insidedsi_round-clk
    root@am62lxx-ig69m-2gb:~# dmesg | grep -i dss
    [    0.307683] /bus@f0000/dss@30200000: Fixed dependency cycle(s) with /bus@f0000/dsi@30500000
    [    0.316241] /bus@f0000/dsi@30500000: Fixed dependency cycle(s) with /bus@f0000/dss@30200000
    [    0.347638] /bus@f0000/dss@30200000: Fixed dependency cycle(s) with /bus@f0000/dsi@30500000
    [    0.356331] /bus@f0000/dss@30200000: Fixed dependency cycle(s) with /bus@f0000/dsi@30500000
    [    0.364917] /bus@f0000/dsi@30500000: Fixed dependency cycle(s) with /bus@f0000/dss@30200000
    [   16.851516] [drm] Initialized tidss 1.0.0 for 30200000.dss on minor 0
    [   17.112421] tidss 30200000.dss: [drm] fb0: tidssdrmfb frame buffer device
    root@am62lxx-ig69m-2gb:~# kmstest
    Could not get DRM master permission. Card already in use?
    root@am62lxx-ig69m-2gb:~# systemctl stop weston
    [   54.065964] IG69-> hsw:180 hbp:32 vfp:128 vsw:10 vbp:4 
    [   83.053060] IG69-> hsw:180 hbp:32 vfp:128 vsw:10 vbp:4 
    [   83.069036] wwinstar:insidedsi_round-clk
    [   83.069133] IG69-> hsw:180 hbp:32 vfp:128 vsw:10 vbp:4 
    [   83.086021] wwinstar:insidedsi_round-clk
    [   83.086103] IG69-> hsw:180 hbp:32 vfp:128 vsw:10 vbp:4 
    [   83.103064] wwinstar:insidedsi_round-clk
    [   83.103157] IG69-> hsw:180 hbp:32 vfp:128 vsw:10 vbp:4 
    [   83.120080] wwinstar:insidedsi_round-clk
    [   83.120167] IG69-> hsw:180 hbp:32 vfp:128 vsw:10 vbp:4 
    [   83.233479] wwinstar:insidedsi_round-clk
    Stopping 'weston.service', but its triggering units are still active:
    weston.socket
    root@am62lxx-ig69m-2gb:~# 
    root@am62lxx-ig69m-2gb:~# kmstest
    [   83.233571] IG69-> hsw:180 hbp:32 vfp:128 vsw:10 vbp:4 
    [   85.262171] panel-custom-disp-winstar 30500000.dsi.0: Winstar:recieved modes 1024x600x@59
    [   85.275646] panel-custom-disp-winstar 30500000.dsi.0: Winstar :Display physical size: width = 154 mm, height = 85 mm
    [   85.286189] panel-custom-disp-winstar 30500000.dsi.0: Display bus format [0]: 0x0000100a
    [   85.294324] panel-custom-disp-winstar 30500000.dsi.0: Display bus format [1]: 0x00001009
    [   85.302431] panel-custom-disp-winstar 30500000.dsi.0: Display bus format [2]: 0x00001017
    Connector 0/@41: DSI-1
    [   85.310660] IG69-> hsw:180 hbp:32 vfp:128 vsw:10 vbp:4 
      Crtc 0/@39: 1024x600@58.81 51.100 1024/180/32/128/+ 600/10/4/2[   85.374090] wwinstar:insidedsi_round-clk
    3/+ 59 (58.81) 0x5 0x48
      Plane 0/@32: 0,0-1024x600
        Fb 44 1024x600-XR24
    [   85.381143] IG69-> hsw:180 hbp:32 vfp:128 vsw:10 vbp:4 
    [   85.415831] wwinstar:insidedsi_round-clk
    [   85.421298] IG69-> hsw:180 hbp:32 vfp:128 vsw:10 vbp:4 
    [   85.425380] wwinstar:insidedsi_round-clk
    [   85.430709] IG69-> hsw:180 hbp:32 vfp:128 vsw:10 vbp:4 
    [   85.447228] Winstar:Inside Enable
    [   85.452484] DSI format receivedd: 0
    [   85.459322] DSI format received: RGB888 (0)
    press enter to exit
    
    [   90.508715] wwinstar:insidedsi_round-clk
    [   90.508812] IG69-> hsw:180 hbp:32 vfp:128 vsw:10 vbp:4 
    [   90.514935] wwinstar:insidedsi_round-clk
    root@am62lxx-ig69m-2gb:~# fbset
    
    mode "1024x600"
        geometry 1024 600 1024 600 32
        timings 0 0 0 0 0 0 0
        rgba 8/16,8/8,8/0,0/0
    endmode
    
    root@am62lxx-ig69m-2gb:~# kmsprint 
    [   90.520328] IG69-> hsw:180 hbp:32 vfp:128 vsw:10 vbp:4 
    [  115.003890] panel-custom-disp-winstar 30500000.dsi.0: Winstar:recieved modes 1024x600x@59
    [  115.017411] panel-custom-disp-winstar 30500000.dsi.0: Winstar :Display physical size: width = 154 mm, height = 85 mm
    [  115.028019] panel-custom-disp-winstar 30500000.dsi.0: Display bus format [0]: 0x0000100a
    [  115.036154] panel-custom-disp-winstar 30500000.dsi.0: Display bus format [1]: 0x00001009
    [  115.044257] panel-custom-disp-winstar 30500000.dsi.0: Display bus format [2]: 0x00001017
    Connector 0 (41) DSI-1 (connected)[  115.052478] IG69-> hsw:180 hbp:32 vfp:128 vsw:10 vbp:4 
    
      Encoder 0 (40) NONE
        Crtc 0 (39) 1024x600@58.81 51.100 1[  115.053809] wwinstar:insidedsi_round-clk
    024/180/32/128/+ 600/10/4/23/+ 59 (58.81) 0x5 0x48
          Plane 0 (32) fb-id: 42 (crtcs: 0) 0,0 1024x600 -> 0,0 1024x600 (AR12 AB12 RA12 RG16 BG16 AR15 AB15 AR24 AB24 RA24 BA24 RG24 BG24 AR30 [  115.061965] I 
    AB30 XR12 XB12 RX12 XR15 XB15 XR24 XB24 RX24 BX24 XR30 XB30 YUYV[  115.084265] wwinstar:insidedsi_round-clk
     UYVY NV12)
            FB 42 1024x600
    root@am62lxx-ig69m-2gb:~# ^C
    


    仅用于确认:在 EVM 板上、使用桥接器将 DSI 信号转换为 RGB (DPI)、并使用 RGB 显示进行验证。 这意味着 MIPI-DSI 信号没有直接连接到原生 MIPI-DSI 显示屏并使用该显示屏进行测试、对吗?

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

    您好、  

    我在测试过程中观察到了一个重要的行为。 由于 EVM 器件树使用桥接器与panel-simple驱动器将 DSI 信号转换为 DPI (RGB) 信号、因此我采取了类似的方法。 我修改了器件树、以便使用同一桥接器、并将显示配置为由panel-simple驱动器探测、分辨率为 800x480、类似于 EVK 设置。

    然后、我连接了 RGB 显示 (非 MIPI-DSI 显示器)生成的读数。 尽管我的电路板上没有安装任何物理桥接器、但软件配置足以验证设置。 结果、我成功地获得了 RGB 显示屏上的 GUI 输出。

    有趣的是、在此设置中、我观察到除了 RGB 信号处于活动状态之外、DSI 时钟和数据线也处于高电平并具有脉冲状态、表明 DSI 活动、即使使用的显示是 RGB 也是如此。

    此时、只有 RGB 显示正常工作、而原生 MIPI-DSI 显示无法正常工作。

    进一步说明、我们的 MIPI-DSI 显示确实如此 不会 需要任何电桥进行信号转换;它直接接受 MIPI-DSI 信号。

    基于这些观察结果的任何见解或调查结果都有助于调试 MIPI-DSI 显示问题。

    #include "k3-am62l3-ig69m.dtsi"
    
    &{/} {
    
            bridge_reg: bridge-regulator {
                    compatible = "regulator-fixed";
                    regulator-name = "bridge_reg";
                    regulator-min-microvolt = <3300000>;
                    regulator-max-microvolt = <3300000>;
                    enable-active-high;
                    regulator-always-on;
                    regulator-boot-on;
                    vin-supply = <&reg_3p3v>;
            };
    
            mipi_backlight: mipi-backlight {
                    compatible = "pwm-backlight";
                    pwms = <&epwm0 0 100000 0>;
                    status = "okay";
                    brightness-levels =
                            < 0  1  2  3  4  5  6  7  8  9
                            10 11 12 13 14 15 16 17 18 19
                            20 21 22 23 24 25 26 27 28 29
                            30 31 32 33 34 35 36 37 38 39
                            40 41 42 43 44 45 46 47 48 49
                            50 51 52 53 54 55 56 57 58 59
                            60 61 62 63 64 65 66 67 68 69
                            70 71 72 73 74 75 76 77 78 79
                            80 81 82 83 84 85 86 87 88 89
                            90 91 92 93 94 95 96 97 98 99
                            100>;
                    default-brightness-level = <80>;
            };
    
            panel0 {
    
                    compatible = "mipiasrgb,ph800480t013mipi-ihc09";
                    backlight = <&mipi_backlight>;
                    power-supply = <&reg_3p3v>;
                    reset-gpios = <&main_gpio0 43 GPIO_ACTIVE_HIGH>;
                    enable-gpios = <&main_gpio0 45 GPIO_ACTIVE_HIGH>;
                    pinctrl-names = "default";
                    pinctrl-0 = <&main_panel_pins_default>;
                    status = "okay";
    
                    port {
                            panel_in: endpoint {
                                    remote-endpoint = <&panel_bridge_out>;
                            };
                    };
            };
    };
    
    &dss {
              status = "okay";
            pinctrl-names = "default";
            pinctrl-0 = <&main_dss0_pins_default>;
            bootph-all;
    
    
    
    };
    
    &dss_ports {
            #address-cells = <1>;
            #size-cells = <0>;
    
            port@0 {
                    reg = <0>;
    
                    dpi_out: endpoint {
                            remote-endpoint = <&dsi0_in>;
                    };
            };
    };
    
    &dphy_tx0 {
            status = "okay";
            bootph-all;
    };
    
    &dsi0 {
            status = "okay";
            bootph-all;
            #address-cells = <1>;
            #size-cells = <0>;
    
            ports {
                    #address-cells = <1>;
                    #size-cells = <0>;
    
                    port@0 {
                            reg = <0>;
                            dsi0_out: endpoint {
                                    remote-endpoint = <&panel_bridge_in>;
                            };
                    };
    
                    port@1 {
                            reg = <1>;
                            dsi0_in: endpoint {
                                    remote-endpoint = <&dpi_out>;
                            };
                    };
            };
    
            bridge@0 {
                    compatible = "toshiba,tc358762";
                    reg = <0>;
                    vddc-supply = <&bridge_reg>;
                    ports {
                            #address-cells = <1>;
                            #size-cells = <0>;
    
                            port@0 {
                                    reg = <0>;
                                    panel_bridge_in: endpoint {
                                            remote-endpoint = <&dsi0_out>;
                                    };
                            };
    
                            port@1 {
                                    reg = <1>;
                                    panel_bridge_out: endpoint {
                                            remote-endpoint = <&panel_in>;
                                    };
                            };
                    };
            };
    };
    
    &epwm0 {
            pinctrl-names = "default";
            pinctrl-0 = <&main_epwm0_pins_default>;
            status = "okay";
    };
    
    
    
    &pmx0 {
    
            main_dss0_pins_default: main_dss0-default-pins {
                    pinctrl-single,pins = <
                            AM62PX_IOPAD(0x00e4, PIN_OUTPUT, 1) /* (L20) GPMC0_CSn0.VOUT0_VSYNC */
                            AM62PX_IOPAD(0x00dc, PIN_OUTPUT, 1) /* (N21) GPMC0_WPn.VOUT0_HSYNC */
                            AM62PX_IOPAD(0x00e8, PIN_OUTPUT, 1) /* (L19) GPMC0_CSn1.VOUT0_PCLK */
                            AM62PX_IOPAD(0x00e0, PIN_OUTPUT, 1) /* (M21) GPMC0_DIR.VOUT0_DE */
                            AM62PX_IOPAD(0x0078, PIN_OUTPUT, 1) /* (L22) GPMC0_AD0.VOUT0_DATA0 */
                            AM62PX_IOPAD(0x007c, PIN_OUTPUT, 1) /* (L23) GPMC0_AD1.VOUT0_DATA1 */
                            AM62PX_IOPAD(0x0080, PIN_OUTPUT, 1) /* (K22) GPMC0_AD2.VOUT0_DATA2 */
                            AM62PX_IOPAD(0x0084, PIN_OUTPUT, 1) /* (J23) GPMC0_AD3.VOUT0_DATA3 */
                            AM62PX_IOPAD(0x0088, PIN_OUTPUT, 1) /* (K23) GPMC0_AD4.VOUT0_DATA4 */
                            AM62PX_IOPAD(0x008c, PIN_OUTPUT, 1) /* (H22) GPMC0_AD5.VOUT0_DATA5 */
                            AM62PX_IOPAD(0x0090, PIN_OUTPUT, 1) /* (H23) GPMC0_AD6.VOUT0_DATA6 */
                            AM62PX_IOPAD(0x0094, PIN_OUTPUT, 1) /* (J22) GPMC0_AD7.VOUT0_DATA7 */
                            AM62PX_IOPAD(0x0098, PIN_OUTPUT, 1) /* (H19) GPMC0_AD8.VOUT0_DATA8 */
                            AM62PX_IOPAD(0x009c, PIN_OUTPUT, 1) /* (H20) GPMC0_AD9.VOUT0_DATA9 */
                            AM62PX_IOPAD(0x00a0, PIN_OUTPUT, 1) /* (H21) GPMC0_AD10.VOUT0_DATA10 */
                            AM62PX_IOPAD(0x00a4, PIN_OUTPUT, 1) /* (H18) GPMC0_AD11.VOUT0_DATA11 */
                            AM62PX_IOPAD(0x00a8, PIN_OUTPUT, 1) /* (G23) GPMC0_AD12.VOUT0_DATA12 */
                            AM62PX_IOPAD(0x00ac, PIN_OUTPUT, 1) /* (G22) GPMC0_AD13.VOUT0_DATA13 */
                            AM62PX_IOPAD(0x00b0, PIN_OUTPUT, 1) /* (F22) GPMC0_AD14.VOUT0_DATA14 */
                            AM62PX_IOPAD(0x00b4, PIN_OUTPUT, 1) /* (F23) GPMC0_AD15.VOUT0_DATA15 */
                            AM62PX_IOPAD(0x00b8, PIN_OUTPUT, 1) /* (L21) GPMC0_CLK.VOUT0_DATA16 */
                            AM62PX_IOPAD(0x00c0, PIN_OUTPUT, 1) /* (N19) GPMC0_ADVn_ALE.VOUT0_DATA17 */
                    >;
            };
    
                       main_epwm0_pins_default: main_epwm0-default-pins {
                    pinctrl-single,pins = <
                            AM62PX_IOPAD(0x0198, PIN_OUTPUT, 5) /* (C11) MCASP0_AFSR.EHRPWM0_A */   
                            AM62PX_IOPAD(0x019c, PIN_OUTPUT, 5) /* (A12) MCASP0_ACLKR.EHRPWM0_B */
                    >;
            };
    
            main_panel_pins_default: main-panel-pins-default {
                    pinctrl-single,pins = <
                            AM62PX_IOPAD(0x00f4, PIN_INPUT, 7) /* (R22) MMC2_DAT3.GPIO0_45 */
                             AM62PX_IOPAD(0x00ec, PIN_INPUT, 7) /* (M23) GPMC0_CSn2.GPIO0_43 */ 
                    >;
             };
    };
    
    


  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    仅用于确认—在 EVM 板上、DSI 信号将使用桥接器转换为 RGB (DPI)、并使用 RGB 显示完成验证。 这意味着 MIPI-DSI 信号没有直接连接到原生 MIPI-DSI 显示屏并使用该显示屏进行测试、对吗?

    如前所述(另请参阅 e2e.ti.com/.../am62l-assistance-required-for-mipi-dsi-display-bring-up-without-bridge-using-panel-simple-dsi)  DSI 转 DPI 桥接器不在 EVM 上、而是在 Raspberry Pi 显示器内部。 该面板从 EVM 接收 DSI、并使用桥接器将其转换为 DPI、并使用此 DPI 显示在像素上。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    I then connected an RGB 显示 (非 MIPI-DSI 显示器)生成的读数。 尽管我的电路板上没有安装任何物理桥接器、但软件配置足以验证设置。 因此、我成功地获得了 RGB 显示屏上的 GUI 输出。

    这不是预期行为。 在任何时候、您应该只能使用 DPI 或 DSI、而不能同时使用两者。
    您能分享一下这个 DTS 为您展示的内容吗?

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

    我现在知道、面板从 EVM 接收 DSI 信号、并使用桥接器将这些信号转换为 DPI 格式、然后显示屏使用该格式来呈现像素。

    但是、我有一个后续问题:
    用于验证的显示器是否设计为仅接受 DPI 信号? 在这种情况下、从 SoC (CPU) 到显示器(无桥接器)的直接 DSI 连接是否曾在 EVM 上验证过?

    另外、您能否分享已经过验证的显示器数据表?

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

    同时、只有当我配置如上面共享的 DTS 时、我才同时获得 DPI 和 DSI 信号。 但只有 RGB Display 显示 GUI。

     root@am62lxx-ig69m-2gb:~# kmsprint 
    [2025-06-11 18:03:36] [  386.798780] IG69-> hsw:48 hbp:32 vfp:80 vsw:3 vbp:7 
    [2025-06-11 18:03:37] Connector 0 (41) DSI-1 (connected)
    [2025-06-11 18:03:37] [  413.365548] IG69-> hsw:48 hbp:32 vfp:80 vsw:3 vbp:7 
    [2025-06-11 18:03:37]   Encoder 0 (40) NONE
    [2025-06-11 18:03:37]     Crtc 0 (39) 800x480@60.00 28.569 800/48/32/80/- 480/3/7/6/- 60 (60.00) 0xa 0x48
    [2025-06-11 18:03:37]       Plane 0 (32) fb-id: 42 (crtcs: 0) 0,0 800x480 -> 0,0 800x480 (AR12 AB12 RA12 R[  413.375901] IG69-> hsw:48 hbp:3
    2 vfp:80 vsw:3 vbp:7 
    [2025-06-11 18:03:37] G16 BG16 AR15 AB15 AR24 AB24 RA24 BA24 RG24 BG24 AR30 AB30 XR12 XB12 RX12 XR15 XB15 XR24 XB24 RX24 BX24 XR30 XB30 YUYV
     UYVY NV12)
    [2025-06-11 18:03:37]         FB 42 800x480
    [2025-06-11 18:03:37] root@am62lxx-ig69m-2gb:~# 
    


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

    您好、

    此外、您能否分享已验证的显示器数据表?

    此页面包含所有文档: https://www.raspberrypi.com/products/raspberry-pi-touch-display/ 

    [引述 userid=“640123" url="“ url="~“~/support/processors-group/processors/f/processors-forum/1499432/am62l-processor-sdk-clarification-on-use-of-bridges-and-ports-in-k3-am62l3-evm-dsi-rpi-7inch-panel-dtso-for-mipi-dsi-display/5866375 #5866375“]

    用于验证的显示器是否设计为仅接受 DPI 信号? 在这种情况下、从 SoC (CPU) 到显示器(无桥接器)的直接 DSI 连接是否曾在 EVM 上验证过?

    [/报价]

    上面测试的面板仅接受 DSI、不接受 DPI。 此面板和我们的 EVM 之间存在直接 DSI 连接。 由于面板本身使用 DSI 转 DPI 桥接器、因此我们在 DTS 中添加了一个节点以实现该节点。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    同时、仅当我配置类似我在上面共享的 DTS 时、才获得 DPI 和 DSI 信号

    这是预期结果。 在内部 DSI 和 DPI 连接到同一视频端口 (VP)。 因此、如果驱动 DSI、则 DPI 引脚和 DSI 引脚都将接收来自 VP 的输出数据。 因此、当您使用 DSI 时、还会在 DPI 上获得输出。 但是、在 DPI 上接收到的时钟和时序间隔是为 DSI 配置的。

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

    上面测试的面板仅接受 MIPI-DSI 输入、并通过 DSI 通道直接连接到 EVM。 但是、面板本身包含一个内部 DSI 转 DPI 桥接器、为了在软件中考虑这一点、我们在器件树中添加了一个相应的桥接节点。

    根据您的说明、此面板被视为 A MIPI-DSI 显示 因为它直接从 SoC 接收 DSI 信号。 在内部、它将这些信号转换为 DPI 以驱动其像素矩阵、这在许多 DSI 面板中很常见。

    现在,从我的理解 — 如果一个显示 需要 DPI 信号来呈现像素 在功能上,它是一个 DPI 显示 需要 DSI 转 DPI 桥接器 噪声量。 在这种情况下、尽管 SoC 会发送 DSI、但面板运行的实际接口是 DPI、这意味着我们正在有效地验证 DPI 显示设置、而不是本机 DSI 显示路径。

    这会导致我对验证 DSI 和 DPI 之间的区别产生一些混淆。如果您能清楚地解释此条件和验证的内容、这将是一种帮助 (DPI 显示/DSI 显示/或只是提供给 DPI 显示的 DSI 显示)

    此外、我还观察到、即使在器件树中使用 DSI 配置、 在我的 RGB 显示屏上可以看到输出 、它只接受 DPI 信号。 电路板上未安装硬件桥接器 — 仅存在软件配置。 仍然会成功显示 GUI。

    您提到这是预期原因 DSI 和 DPI 在内部共享同一个视频端口 。 因此、当配置和驱动 DSI 接口时、 来自视频端口的输出数据也存在于 DPI 引脚上 和 DPI 线路反映为 DSI 配置的时序。

    假设我的电路板没有外部 DSI 转 DPI 桥接器、并且连接的显示器是 RGB (DPI) 显示屏 但当在设备树中配置了 DSI 路径时、它会显示输出—
    在这种情况下、我们是否可以考虑验证 MIPI-DSI? 或者、尽管在软件中使用了 DSI 配置、但是否仅是在功能上验证的 DPI 路径?

    澄清这种区别将是非常有帮助的。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引述 userid=“640123" url="“ url="~“~/support/processors-group/processors/f/processors-forum/1499432/am62l-processor-sdk-clarification-on-use-of-bridges-and-ports-in-k3-am62l3-evm-dsi-rpi-7inch-panel-dtso-for-mipi-dsi-display/5866476 #5866476“]

    假设我的电路板没有外部 DSI 转 DPI 桥接器、并且连接的显示器是 RGB (DPI) 显示屏 但当在设备树中配置了 DSI 路径时、它会显示输出—
    在这种情况下、我们是否可以考虑验证 MIPI-DSI? 或者、尽管在软件中使用了 DSI 配置、但是否仅是在功能上验证的 DPI 路径?

    [/报价]

    如果您说已连接 RGB 显示器、我假设您已将其连接到 DPI 引脚而非 DSI 引脚。 基于此假设、尽管 RGB 显示可以配置 DSI、但它只会在功能上验证 DPI 路径、与 DSI 验证/路径无关。

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

    当您尝试在 AM62L 上使用 DSI 时、预计不会同时使用 DPI。 因此、为了节省功耗、可从 DSS_VP1_CONTROL 寄存器中的 DPIENABLE 位禁用 DPI。

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

    当您提到 RGB 显示器已连接时、我假设它已连接到 DPI 引脚、而不是 DSI 接口。

    是、RGB 显示屏连接到 DPI 信号。 但是、我还将 MIPI 显示屏连接到 DSI 信号端口。 探测时、我可以看到 DSI 时钟和数据线正在主动脉动。 您能否查看并确认器件树 (DTS) 配置是否正确、以便启用 MIPI 显示屏?

    通过当前配置、我能够观察 DPI 和 DSI 接口上的活动。 但是、GUI 仅显示在 RGB 显示器(连接到 DPI 接口)上。

    关于您的评论:

    “它只能在功能上验证 DPI 路径、与 DSI 验证/路径无关。“

    这是否意味着、即使我已在 DSI 控制器下配置了面板并使用桥接器将 DSI 转换为 DPI 信号(最终将其路由到 DPI 端口/显示屏)、但在功能上仍然不会验证 DPI 信号? 我想澄清一下、此设置是否确实可以确保 DPI 或 DSI 信号正确性?

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

    您好、  

    您能否分享您正在使用的显示屏的完整部件号、因为在您共享的网站链接中、没有提及 DSI 通道和其他一些信息

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

    您好、

    我们现正跟进有关设定时间参数的指引、预期这些指引会在谘询其他小组后分享。 请提供最新情况。

    同时、我已停止使用桥接器和panel-simple驱动器测试显示器、因为这似乎无效、虽然 GUI 在 RGB 显示器上呈现正确、但它不会出现在 Winstar DSI 面板上。

    现在、我想使用供应商提供的驱动程序、通过根据tidss要求调整时序参数来继续测试 Winstar 显示器。 通过此设置、我能够观察 Winstar 面板上的测试图形、从而确认 DSI 信号正在正确发送和接收。 此外、我注意到 DSI 数据信号在kmstest命令触发时(而不是连续)恰好变为有效状态。

    接下来、如果您可以建议一些测试用例或方法来验证显示器上的 GUI 渲染效果、那将会非常有用。

    我还怀疑我的自定义 rootfs 中可能缺少与 Weston 或 LVGL 演示相关的组件、这些组件是 GUI 显示所必需的。 请说明至少要显示 Weston 控制台或基本 GUI 需要哪组最低软件包或依赖项?

    也就是说、我将从时序参数的角度继续调试问题、前提是您一方已经使用正确的 DSI 信号传输验证了接受不同分辨率 DSI 信号的 DSI 面板。

    这里是我一直使用的显示器的附加数据表,你可以回顾天气这个显示器可以支持

    e2e.ti.com/.../WF70A8TYAHMNGB-_2800_1_2900_–1.pdf

    期待您的回应和指导。



  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [报价 userid=“640123" url="“ url="~“~/support/processors-group/processors/f/processors-forum/1499432/am62l-processor-sdk-clarification-on-use-of-bridges-and-ports-in-k3-am62l3-evm-dsi-rpi-7inch-panel-dtso-for-mipi-dsi-display/5868858 #5868858“] 我们现正跟进有关设定时间参数的指引、预期这些指引会在谘询其他小组后分享。 您能否提供有关该状态的最新信息?

    这尚未经过全面测试、但您可能需要试用:
    计算 fbdiv =(h_tot * v_tot * fps * 24/num_lanes)* 2 * opdiv * ipdiv / ref_clock

    opdiv 和 ipdiv cn 位于 cdns-dphy.c 中、ref_clock 是您在 EVM 中使用的时钟。

    如果 fbdiv 拿出分数、请尝试调整计时参数、使其变为积分。

    [报价 userid=“640123" url="“ url="~“~/support/processors-group/processors/f/processors-forum/1499432/am62l-processor-sdk-clarification-on-use-of-bridges-and-ports-in-k3-am62l3-evm-dsi-rpi-7inch-panel-dtso-for-mipi-dsi-display/5868858 #5868858“]

    此外、我注意到 DSI 数据信号在kmstest命令触发时(而不是连续)恰好变为有效状态。

    接下来、如果您可以建议一些测试用例或方法来验证显示器上的 GUI 渲染效果、那将会非常有用。

    我还怀疑我的自定义 rootfs 中可能缺少与 Weston 或 LVGL 演示相关的组件、这些组件是 GUI 显示所必需的。 请说明至少要显示 Weston 控制台或基本 GUI 需要哪组最低软件包或依赖项?

    [/报价]

    尝试运行 kmscube、它应不断在视频中呈现不同的帧。 默认 SDK 已经有运行 LVGL 的所有要求。

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

    您好、

    感谢您的更新,我将检查并告诉您。在 TRM 中,我观察到的另一件事应该是这样的模式  



    如何倾斜从水平到垂直旋转阵列。垂直线的数量取决于哪个因子。我得到的数字比预期的要多。  
    我应该在哪里更新脚本  

    echo "REG_BLKEOL_MODE & REG_BLKLINE_MODE : 3"
    k3conf write 0x305000B0 0x81F8FE00 | grep addr
    echo "-------- Enabling test pattern"
    echo "DSI_TVG_CTL WRITE (disable TVG_RUN)"
    k3conf write 0x305000fc 0x000000B8 | grep addr
    sleep 1
    echo "DSI_MCTL_MAIN_EN WRITE (disable IF2_EN)"
    k3conf write 0x3050000C 0x000000F9 | grep addr
    echo "DSI_MAIN_DATA_CTL WRITE (enable TVG, disable VID_EN)"
    k3conf write 0x30500004 0x00020047 | grep addr
    sleep 1
    echo "DSI_MAIN_DATA_CTL WRITE (enable TVG, enable VID_EN)"
    k3conf write 0x30500004 0x00020067 | grep addr
    echo "DSI_TVG_IMG_SIZE WRITE (setup lines / size 1024x600)"
    k3conf write 0x30500100 0x02580C00
    echo "TEST PATTERN COLOR 1"
    k3conf write 0x30500104 0x0FFF0000 | grep addr
    k3conf write 0x30500108 0x00000000 | grep addr
    echo "TEST PATTERN COLOR 2"
    k3conf write 0x3050010c 0x00000FFF | grep addr
    k3conf write 0x30500110 0x00000000 | grep addr
    echo "DSI_TVG_CTL WRITE (enable TVG_RUN)"
    k3conf write 0x305000fc 0x000000B9 | grep addr
    

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

    您好、   

    计算 fbdiv =(h_tot * v_tot * fps * 24/num_lanes)* 2 * opdiv * ipdiv / ref_clock

    此处 ref_clock 是哪一个 DSI_clock 或 pixel_clock 的时钟速率?

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

    您好、  

    任何更新对于我在这个循环中已经询问过的以下问题和其他一些问题都很有帮助。

    1) 您是否检查过我共享的数据表,该显示是否属于支持的显示列表(FYI :无桥接和使用直接 DPI 信号)?
    2)  此处 ref_clock 是哪一个 DSI_clock 或 pixel_clock 的时钟速率?
    3) 在示波器中应该看到的时钟速率假定值是多少 (DSI_CLK)
    3)
    当连接了正确的验证显示时,您是否可以共享以下地址的寄存器值:  
       
        devmem2 0x3050000C-DSI_MCTL_MAIN_EN
        devmem2 0x30500008-DSI_MCTL_MAIN_PHY_CTL
        devmem2 0x305000B0- REG_BLKEOL_MODE 和任何其他重新相关寄存器。  

    任何其他与时间参数相关的测试案例都将是真正令人赞赏的。

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

    您好、  

    更有疑问..像寄存器  REG_BLKEOL_MODE 的值在 探测后为 0x80B8FE00 一样,根据我的理解,它意味着空白模式,而 VID_PIXEL_MODE[17 : 14]设置为 1100 ( 1100:DSC 压缩 )。  

    请检查这一点、请让我知道这是否是一个问题、以及上面提到的其他问题。

    0x80B8FE00 = 1000 0000 1011 1000 1111 1110 0000 0000