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/DRA756:Jacinto6和 PSDKLA 上的4通道显示

Guru**** 2609955 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/583039/linux-dra756-4ch-display-on-jacinto6-and-psdkla

器件型号:DRA756

工具/软件:Linux

大家好、我正在使用 PSDKLA 3.02.e2e.ti.com/.../4ch_2D00_disp.log 开发 Jacinto6

我的定制板具有4个显示屏(HDMI、ser-disp0、ser-disp1、ser-disp2)

我为我的4通道显示更改了 dra7-EVM.dts。 但在 DTB 中启用4个显示时出错。

当我用 HDMI、disp0、disp2 (不使用 disp1)尝试它时  ,它就可以工作了

但 这两种情况下的 HDMI、disp0、disp1  和 HDMI、disp0、disp1、 disp2不起作用。

*我附加了日志消息,并启用 DSS 调试

请检查我的 DTS

/{
 lcd_fpd1:display_fpd1{
  /*
  *这不是真正的 dpi 面板,而是 panel-dpi 驱动程序
  *用作虚拟面板驱动程序。
  *
  兼容="lg、lp101wx2"、"panel-dpi";
  //label ="lcd_fpd1";
  ///senable-GPIO =<&pcf_GPIO_21 0 GPIO_ACTIVE_LOW>;
  状态="正常";

  面板正时{
   时钟频率=<64000000>;
   hactive =<1280>;
   Vactive =<720>;

   前沿=<48>;
   后沿=<80>;
   HSYNC-LEN =<32>;

   垂直前沿=<3>;
   后沿=<13>;
   vsync-len =<5>;

   HSYNC-ACTIVE =<0>;
   vsync-active =<0>;
   停用=<1>;
   像素时钟激活=<0>;
  };
  
  port@lcd1{
   FPD_in1:端点{
    远程端点=<&dp_dout1>;
   };
  };
 };
};

/{
 lcd_fpd2:display_fpd2{
  /*
  *这不是真正的 dpi 面板,而是 panel-dpi 驱动程序
  *用作虚拟面板驱动程序。
  *
  兼容="lg、lp101wx2"、"panel-dpi";
  //label ="lcd_fpd2";
  ///senable-GPIO =<&pcf_GPIO_21 0 GPIO_ACTIVE_LOW>;
  状态="正常";

  面板正时{
   时钟频率=<64000000>;
   hactive =<1280>;
   Vactive =<720>;

   前沿=<48>;
   后沿=<80>;
   HSYNC-LEN =<32>;

   垂直前沿=<3>;
   后沿=<13>;
   vsync-len =<5>;

   HSYNC-ACTIVE =<0>;
   vsync-active =<0>;
   停用=<1>;
   像素时钟激活=<0>;
  };
  
  port@lcd2{
   FPD_IN2:端点{
    远程端点=<&dp_dout2>;
   };
  };
 };
};

/{
 lcd_fpd3:display_fpd3{
  /*
  *这不是真正的 dpi 面板,而是 panel-dpi 驱动程序
  *用作虚拟面板驱动程序。
  *
  兼容="lg、lp101wx2"、"panel-dpi";
  //label ="lcd_fpd3";
  ///senable-GPIO =<&pcf_GPIO_21 0 GPIO_ACTIVE_LOW>;
  状态="正常";

  面板正时{
   时钟频率=<64000000>;
   hactive =<1280>;
   Vactive =<720>;

   前沿=<48>;
   后沿=<80>;
   HSYNC-LEN =<32>;

   垂直前沿=<3>;
   后沿=<13>;
   vsync-len =<5>;

   HSYNC-ACTIVE =<0>;
   vsync-active =<0>;
   停用=<1>;
   像素时钟激活=<0>;
  };
  
  port@lcd3{
   FPD_in3:端点{
    远程端点=<&dp_dout3>;
   };
  };
 };
};

DSS{
 状态="正常";

 VDDA_VIDEO_SUPPLY =<&ldoln_reg>;
 pinctrl-names ="default";
 pinctrl-0 =<&vout1_pins &vout2_pins &vout3_pins;

 端口{
  #address-cells =<1>;
  #size-cells =<0>;
  状态="正常";

  port@lcd1{
   reg =<0>;
   状态="正常";
   DPI_OUT1:端点{
    远程端点=<&FPD_in1>;
    数据线=<24>;
   };
  };

  port@lcd2{
   reg =<1>;
   状态="正常";
   DPI_OUT2:端点{
    远程端点=<&FPD_IN2>;
    数据线=<24>;
   };
  };
  
  port@lcd3{
   reg =<2>;
   状态="正常";
   DPI_out3:端点{
    远程端点=<&FPD_in3>;
    数据线=<24>;
   };
  };
 };
};

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

    我已将您的问题转交给 DSS 专家。

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

    谢谢 Yordan。

    顺便提一下、在我的内核日志中、第一个 dump_stack 调用来自 OMAP-CRTC_apar_flush OMAP-CRTC_c 的 OMAP-CRTC_at原 子_flush 的" warn_on (OMAP-CRTC->vblank_IRR.registered)"

    启用 disp0、disp1时会生成此情况。(我只尝试了 disp0、但没关系。  我还尝试了 disp0和 disp2、也是可以的)

    看起来 disp0和 disp1与 IRQ 有一些冲突。

    我使用4作为 CRTC 的编号

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

    让我们从较简单的 disp0 + disp1情况开始。 是否可以运行以下脚本并向我发送日志?

    git.ti.com/.../dss_clockdumps.sh

    在转至 IRQ 配置之前、我想检查时钟配置是否正确。

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

    你好

    附件是 disp0,disp1的日志

    有 一些我的虚拟日志。 关于 OMAP-IRQ_register、如"在##########之前" ywdbg:OMA_IRQ_register:72:1"

    请理解这一点、因为 我的 Yocto Build 有问题、我现在无法获得干净的日志。

    引导时没有错误日志、但 disp0不起作用、但当我 ex可爱 的 kmscube 或 Weston 时、它会生成错误、因此我将 kmscube 引导结束

    e2e.ti.com/.../disp0disp1.log

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    很抱歉我错过了您的脚本
    下面是结果

    root@dra7xx-EVM:~#./debug_dss_clockdumps.sh


    =========================== DSS 时钟脚本================================
    转储 DSS 的内部时钟和多路复用器

    CTRL_CORE_DSS_PLL_CONTROL (0x4a002538)= 0x00000286
    视频1 PLL:已启用
    VIDEO2 PLL:已禁用
    HDMI PLL:已禁用
    DSI1_A_CLK 多路复用器:DPLL Video1
    DSI1_B_CLK 多路复用器:DPLL Video1
    DSI1_C_CLK 多路复用器:DPLL Video1

    DSS_CTRL (0x58000040)= 0x00011001
    2:LCD1时钟开关:DSI1_A_CLK
    3:LCD2时钟开关:DSI1_B_CLK
    10:LCD3时钟开关:DSS 时钟
    1:func clk 开关:dss clk
    13:DPI1输出 :LCD1

    DSS_STATUS (0x5800005C)= 0x01409282

    DSI_CLK_CTRL (0x58004054)= 0x80004001

    ===================================================================================================
    DPLL 视频1的寄存器转储
    |------------------------- |
    |地址(十六进制)|数据(十六进制)|
    |------------------------- |
    | 0x58004300 | 0x00000018 |
    | 0x58004304 | 0x00002283 |
    | 0x58004308 | 0x00000000 |
    | 0x5800430C | 0x01AE004E |
    | 0x58004310 | 0x00616008 |
    | 0x58004314 | 0x00000000 |
    | 0x58004318 | 0x00000000 |
    | 0x5800431C | 0x00000000 |
    | 0x58004320 | 0x00000000 |
    |------------------------- |
    DPLL 视频1的详细信息
    PLL 状态:已锁定
    M4 hsdiv(1):活动
    M5 hsdiv(2):未激活
    M6 hsdiv(3):未激活
    M7 hsdiv(4):未激活

    PLL_REGM = 1792
    PLL_REGN = 39
    M4 DIV = 13
    M6 DIV = 0
    M7 DIV = 0

    时钟计算(DPLL 视频1)
    SYSCLK = 20000000
    DCO clk = SYSCLK * 2 * REGM /(REGN + 1)= 1792000000
    M4clk (clkcout1)= DCO clk /(M4 DIV + 1)= 128000000
    M6clk (clkcout3)= DCO clk /(M6 DIV + 1)= 0
    M7clk (clkcout4)= DCO clk /(M7 DIV + 1)= 0

    ===================================================================================================
    多路复用器的时钟 O/P
    DSI1_A_CLK:128000000
    DSI1_B_CLK:0
    DSI1_C_CLK:0

    2:LCD1时钟:128000000
    3:LCD2时钟:0
    10:LCD3时钟:192000000
    1:func clk:192000000

    LCD1逻辑 clk (/ 1):128000000 pix clk (/ 2):64000000
    LCD2逻辑 clk (/ 1):0 pix clk (/ 2):0
    LCD3逻辑时钟(/ 4):48000000 pix 时钟(/ 1):48000000

    root@dra7xx-EVM:~#
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    很抱歉、以上结果不正确。
    我再次使用清理过的内核进行了测试
    请检查此日志。

    dra7xx-EVM 登录:root
    root@dra7xx-EVM:~# ls
    debug_dss_clockdumps.sh 实用程序
    root@dra7xx-EVM:~#./debug_dss_clockdumps.sh


    =========================== DSS 时钟脚本================================
    转储 DSS 的内部时钟和多路复用器

    CTRL_CORE_DSS_PLL_CONTROL (0x4a002538)= 0x00000200
    视频1 PLL:已启用
    VIDEO2 PLL:已启用
    HDMI PLL:已启用
    DSI1_A_CLK 多路复用器:DPLL Video1
    DSI1_B_CLK 多路复用器:DPLL Video1
    DSI1_C_CLK 多路复用器:DPLL Video2

    DSS_CTRL (0x58000040)= 0x00091001
    2:LCD1时钟开关:DSI1_A_CLK
    3:LCD2时钟开关:DSI1_B_CLK
    10:LCD3时钟开关:DSI1_C_CLK
    1:func clk 开关:dss clk
    13:DPI1输出 :LCD1

    DSS_STATUS (0x5800005C)= 0x02409282

    DSI_CLK_CTRL (0x58004054)= 0x80004001

    ===================================================================================================
    DPLL 视频1的寄存器转储
    |------------------------- |
    |地址(十六进制)|数据(十六进制)|
    |------------------------- |
    | 0x58004300 | 0x00000018 |
    | 0x58004304 | 0x00002603 |
    | 0x58004308 | 0x00000000 |
    | 0x5800430C | 0x000E004E |
    | 0x58004310 | 0x00E06008 |
    | 0x58004314 | 0x0000000D |
    | 0x58004318 | 0x00000000 |
    | 0x5800431C | 0x00000000 |
    | 0x58004320 | 0x00000000 |
    |------------------------- |
    DPLL 视频1的详细信息
    PLL 状态:已锁定
    M4 hsdiv(1):未激活
    M5 hsdiv(2):未激活
    M6 hsdiv (3):激活
    M7 hsdiv(4):未激活

    PLL_REGM = 1792
    PLL_REGN = 39
    M4 DIV = 0
    M6 DIV = 13
    M7 DIV = 0

    时钟计算(DPLL 视频1)
    SYSCLK = 20000000
    DCO clk = SYSCLK * 2 * REGM /(REGN + 1)= 1792000000
    M4clk (clkcout1)= DCO clk /(M4 DIV + 1)= 0
    M6clk (clkcout3)= DCO clk /(M6 DIV + 1)= 128000000
    M7clk (clkcout4)= DCO clk /(M7 DIV + 1)= 0

    ===================================================================================================
    DPLL 视频2的寄存器转储
    |------------------------- |
    |地址(十六进制)|数据(十六进制)|
    |------------------------- |
    | 0x58009300 | 0x00000018 |
    | 0x58009304 | 0x00002283 |
    | 0x58009308 | 0x00000000 |
    | 0x5800930C | 0x01AE004E |
    | 0x58009310 | 0x00616008 |
    | 0x58009314 | 0x00000000 |
    | 0x58009318 | 0x00000000 |
    | 0x5800931C | 0x00000000 |
    | 0x58009320 | 0x00000000 |
    |------------------------- |
    DPLL 视频详细信息2.
    PLL 状态:已锁定
    M4 hsdiv(1):活动
    M5 hsdiv(2):未激活
    M6 hsdiv(3):未激活
    M7 hsdiv(4):未激活

    PLL_REGM = 1792
    PLL_REGN = 39
    M4 DIV = 13
    M6 DIV = 0
    M7 DIV = 0

    时钟计算(DPLL 视频2)
    SYSCLK = 20000000
    DCO clk = SYSCLK * 2 * REGM /(REGN + 1)= 1792000000
    M4clk (clkcout1)= DCO clk /(M4 DIV + 1)= 128000000
    M6clk (clkcout3)= DCO clk /(M6 DIV + 1)= 0
    M7clk (clkcout4)= DCO clk /(M7 DIV + 1)= 0

    ===================================================================================================
    DPLL HDMI 的寄存器转储
    |------------------------- |
    |地址(十六进制)|数据(十六进制)|
    |------------------------- |
    | 0x58040200 | 0x00000018 |
    | 0x58040204 | 0x00000003 |
    | 0x58040208 | 0x00000000 |
    | 0x5804020C | 0x00037C0E |
    | 0x58040210 | 0x00602004 |
    | 0x58040214 | 0x00001400 |
    | 0x58040218 | 0x00000000 |
    | 0x5804021C | 0x00000000 |
    | 0x58040220 | 0x00069374 |
    |------------------------- |
    DPLL HDMI 详细信息
    PLL 状态:已锁定
    M4 hsdiv(1):未激活
    M5 hsdiv(2):未激活
    M6 hsdiv(3):未激活
    M7 hsdiv(4):未激活

    PLL_REGM = 446
    PLL_REGN = 7
    M4 DIV = 0
    M6 DIV = 0
    M7 DIV = 0
    PLL_REGM2 = 1
    PLL_REGM_F = 1.

    时钟计算(DPLL HDMI)
    SYSCLK = 20000000
    CLKOUT = SYSCLK * REGM /(REGM2 *(REGN + 1))= 1115000000

    ===================================================================================================
    多路复用器的时钟 O/P
    DSI1_A_CLK:0
    DSI1_B_CLK:128000000
    DSI1_C_CLK:128000000

    2:LCD1时钟:0
    3:LCD2时钟:128000000
    10:LCD3时钟:128000000
    1:func clk:192000000

    LCD1逻辑 clk (/ 1):0 pix clk (/ 2):0
    LCD2逻辑 clk (/ 1):128000000 pix clk (/ 2):64000000
    LCD3逻辑 clk (/ 1):128000000 pix clk (/ 2):64000000

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

    你好,Venkat。

    e2e.ti.com/.../0001_2D00_HACK_2D00_dss_2D00_fix_2D00_to_2D00_enable_2D00_4channel_2D00_display.patch.log

    我现在可以看到带有 HACK 代码的4通道显示(带有硬编码的使能时钟)。

    请检查随附的补丁。

    但我仍然不知道结果是否正确。 我需要正确的方法来启用它。

    请验证我的结果是否正确。

    请给我补丁以使其成为正确的方式(而不是硬编码方式)

    =========================== DSS 时钟脚本================================

    转储 DSS 的内部时钟和多路复用器

    CTRL_CORE_DSS_PLL_CONTROL (0x4a002538)= 0x00000200

    视频1 PLL: 已启用

    VIDEO2 PLL: 已启用

    HDMI PLL: 已启用

    DSI1_A_CLK 多路复用器:DPLL Video1

    DSI1_B_CLK 多路复用器:DPLL Video1

    DSI1_C_CLK 多路复用器:DPLL Video2

    DSS_CTRL (0x58000040)= 0x00091001

    2:LCD1时钟开关: DSI1_A_CLK

    3:LCD2时钟开关: DSI1_B_CLK

    10:LCD3时钟开关: DSI1_C_CLK

    1:func clk 开关: dss clk

    13:DPI1输出  : LCD1

    DSS_STATUS (0x5800005C)= 0x02409282

    DSI_CLK_CTRL (0x58004054)= 0x80004001

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

    DPLL 视频1的寄存器转储

    |------------------------- |

    |地址(十六进制)|数据(十六进制)|

    |------------------------- |

    | 0x58004300  | 0x00000018 |

    | 0x58004304  | 0x00002683 |

    | 0x58004308  | 0x00000000 |

    | 0x5800430C  | 0x01AE004E |

    | 0x58004310  | 0x00E16008 |

    | 0x58004314  | 0x0000000D |

    | 0x58004318  | 0x00000000 |

    | 0x5800431C  | 0x00000000 |

    | 0x58004320  | 0x00000000 |

    |------------------------- |

    DPLL 视频1的详细信息

    PLL 状态 : 已锁定

    M4 hsdiv(1): 活动

    M5 hsdiv(2): 未激活

    M6 hsdiv (3): 激活

    M7 hsdiv(4): 未激活

    PLL_REGM = 1792

    PLL_REGN = 39

    M4 DIV  = 13

    M6 DIV  = 13

    M7 DIV  = 0

    时钟计算(DPLL 视频1)

    SYSCLK = 20000000

    DCO clk = SYSCLK * 2 * REGM /(REGN + 1)= 1792000000

    M4clk (clkcout1)= DCO clk /(M4 DIV + 1)= 128000000

    M6clk (clkcout3)= DCO clk /(M6 DIV + 1)= 128000000

    M7clk (clkcout4)= DCO clk /(M7 DIV + 1)= 0

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

    DPLL 视频2的寄存器转储

    |------------------------- |

    |地址(十六进制)|数据(十六进制)|

    |------------------------- |

    | 0x58009300  | 0x00000018 |

    | 0x58009304  | 0x00002683 |

    | 0x58009308  | 0x00000000 |

    | 0x5800930C  | 0x01AE004E |

    | 0x58009310  | 0x00E16008 |

    | 0x58009314  | 0x0000000D |

    | 0x58009318  | 0x00000000 |

    | 0x5800931C  | 0x00000000 |

    | 0x58009320  | 0x00000000 |

    |------------------------- |

    DPLL 视频详细信息2.

    PLL 状态 : 已锁定

    M4 hsdiv(1): 活动

    M5 hsdiv(2): 未激活

    M6 hsdiv (3): 激活

    M7 hsdiv(4): 未激活

    PLL_REGM = 1792

    PLL_REGN = 39

    M4 DIV  = 13

    M6 DIV  = 13

    M7 DIV  = 0

    时钟计算(DPLL 视频2)

    SYSCLK = 20000000

    DCO clk = SYSCLK * 2 * REGM /(REGN + 1)= 1792000000

    M4clk (clkcout1)= DCO clk /(M4 DIV + 1)= 128000000

    M6clk (clkcout3)= DCO clk /(M6 DIV + 1)= 128000000

    M7clk (clkcout4)= DCO clk /(M7 DIV + 1)= 0

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

    DPLL HDMI 的寄存器转储

    |------------------------- |

    |地址(十六进制)|数据(十六进制)|

    |------------------------- |

    | 0x58040200  | 0x00000018 |

    | 0x58040204  | 0x00000003 |

    | 0x58040208  | 0x00000000 |

    | 0x5804020C  | 0x00037C0E |

    | 0x58040210  | 0x00602004 |

    | 0x58040214  | 0x00001400 |

    | 0x58040218  | 0x00000000 |

    | 0x5804021C  | 0x00000000 |

    | 0x58040220  | 0x00069374 |

    |------------------------- |

    DPLL HDMI 详细信息

    PLL 状态 : 已锁定

    M4 hsdiv(1): 未激活

    M5 hsdiv(2): 未激活

    M6 hsdiv(3): 未激活

    M7 hsdiv(4): 未激活

    PLL_REGM = 446

    PLL_REGN = 7

    M4 DIV  = 0

    M6 DIV  = 0

    M7 DIV  = 0

    PLL_REGM2 = 1

    PLL_REGM_F = 1.

    时钟计算(DPLL HDMI)

    SYSCLK = 20000000

    CLKOUT = SYSCLK * REGM /(REGM2 *(REGN + 1))= 1115000000

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

    多路复用器的时钟 O/P

    DSI1_A_CLK: 128000000

    DSI1_B_CLK: 128000000

    DSI1_C_CLK: 128000000

    2:LCD1时钟: 128000000

    3:LCD2时钟: 128000000

    10:LCD3时钟: 128000000

    1:func clk: 192000000

    LCD1逻辑 clk (/ 1): 128000000 pix clk (/ 2): 64000000

    LCD2逻辑 clk (/ 1): 128000000 pix clk (/ 2): 64000000

    LCD3逻辑 clk (/ 1): 128000000 pix clk (/ 2): 64000000

    此致、

    Yangwoo

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

    我看到您正在为 VideoPLL 同时启用 M4和 M6分频器、无论使用哪种分频器。 作为临时解决方法、这应该是可以的。 我将在内部检查如何清晰地启用该功能。 请注意、这可能需要一些时间。

    此致、
    Venkat
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢您的确认。
    如果没有任何问题、我将使用它、直到 TI 对它进行了彻底的检查。