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:DRA75x 支持的最大显示数

Guru**** 2604225 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/650037/linux-dra756-maximum-number-of-displays-supported-in-dra75x

器件型号:DRA756

工具/软件:Linux

您好!

我们正在开发基于 DRA75x 的数字仪表组(基于 M4 - SYS/BIOS)+信息娱乐系统(基于 Android)。 我们的用例是驱动4个同步显示屏、每个显示屏用于数字仪表组(图形)、信息娱乐(图形+视频回放)、后视摄像头(视频回放+最小图形)、HUD (图形)。

根据 DRA75x、DRA74x SoC 的 TRM (器件版本2.0、1.x)、第11章、第2826页方框图、有3个视频输入端口、一个图形输入端口。 在输出中、我们得到3个 LCD 输出和1个 HDMI 输出。  
使用此配置、我们可以同时运行4个显示器吗? 请告诉我们。

谢谢、

Ramya

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

    我已将您的问题转交给 DSS 专家进行评论。

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

    我们已经测试了4个显示器同时运行的情况。 默认情况下、SDK 不支持此功能、因为我们只有两个视频 PLL 和一个 HDMI PLL 来提供像素时钟。 因此、我们为两个具有相同 PLL 的 LCD 计时以进行测试。 如果四个显示屏中有两个相同的 LCD、则可以使用[1]和[2]进行验证。

    否则、您可能需要修改导出其中一个 LCD 的像素时钟、以获得其他来源的像素时钟。 例如 ABE_GICLK 或 DSS_CLK。 有关更多信息、请参阅"显示子系统时钟"一节。

    [1] processors.wiki.ti.com/.../Processor_SDK_Linux_Automotive_Display_FAQ

    [2] processors.wiki.ti.com/.../Processor_SDK_Linux_Automotive_Display_FAQ

    此致、
    Venkat
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢您的快速响应。 将在测试后返回。

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

    您好、Venkat、

    我们使用以下分辨率显示:
    1920*1200 - IVI
    1920*720 - DIIC (仪表盘)
    1280*320 -后视摄像头  
    840*480 - HUD

    请确认我们是否必须使用您建议的第二种方法。
    如果您也监督任何问题、请告知我们。

    谢谢、

    Ramya

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

    您好、Venkat、

    我们使用以下分辨率显示:
    1920*1200 - IVI
    1920*720 - DIIC (仪表盘)
    1280*320 -后视摄像头  
    840*480 - HUD

    请确认我们是否必须使用您建议的第二种方法。
    如果您也监督任何问题、请告知我们。

    谢谢、

    Ramya

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

    在应用您从 wiki 页面 processors.wiki.ti.com/.../Processor_SDK_Linux_Automotive_Display_FAQ 提供的补丁后、我仍然看到、

    root@dra7xx-EVM:/util-scripts/debug。/dss_clockdumps.sh


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

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

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

    DSS_STATUS (0x5800005C)= 0x01408A81

    DSI_CLK_CTRL (0x58004054)= 0x00000001

    CM_DSS_CLKSTCTRL (0x4A009100)= 0x00040B03

    CM_DSS_DSS_CLKCTRL (0x4A009120)= 0x00060702

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

    PLL_REGM = 315
    PLL_REGN = 7
    M4 DIV = 0
    M6 DIV = 0
    M7 DIV = 0
    PLL_REGM2 = 1
    PLL_REGM_F = 1.
    PLL_SD = 4
    HDMI_SSC_CONFIGURATION1 (应为零) 0x00000000
    HDMI_SSC_configuration2 (应为零) 0x00000000

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

    ===================================================================================================
    多路复用器的时钟 O/P
    DPLL PER H12输出192000000
    CM_DIV_H12_DPLL_PER (0x4A00815C)= 0x00000204

    DSI1_A_CLK:787500000
    DSI1_B_CLK:0
    DSI1_C_CLK:0

    DISPC_di遮 阳板(0x58001804)= 0x00010001

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

    LCD1逻辑 clk (/ 1):192000000 pix clk (/ 2):96000000
    LCD2逻辑时钟(/ 4):48000000 pix 时钟(/ 1):48000000
    LCD3逻辑时钟(/ 4):48000000 pix 时钟(/ 1):48000000

    您能否提供有关这方面的更多见解?

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

    您使用的设备树是什么? 您在设备树中配置了多少台显示器? 当您使用默认的设备树引导时,屏幕上会显示一个 LCD 和一个 HDMI。

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

    您的所有显示屏都具有不同的分辨率。 因此、两个 LCD 不能使用相同的像素时钟。

    最灵活的解决方案是方法(2)、即将 ABE_GICLK 用作其中一个显示屏的时钟源。

    由于您的显示分辨率具有常见的因素、因此您还可以找到一个通用 PLL 输出时钟、通过使用不同的 LCD 分频器生成不同的像素时钟。

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

    感谢 Venkat 的回复。

    我已在器件树中配置了 LCD1、LCD2和 LCD3。 我已参考您建议的 wiki 页面、并使用了4.4内核的补丁。

    在另一个实验中、我还在器件树中禁用了 HDMI 并仅配置了 LCD1。

    但是、它没有帮助。

    谢谢、

    Prabhuraj

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

    Prabhuraj、您好!

    请检查内核引导参数中的 omapdrm.num_crTC 的值。 下面是我通过将器件树 dra7-EVM-4-Displays.dtb 和"omapdrm.num_crtc=4"添加到内核引导 args 从时钟转储获取的输出。

    此致、

    Venkat

    root@dra7xx-EVM:~# 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

    CM_DSS_CLKSTCTRL (0x4A009100)= 0x00041F03

    CM_DSS_DSS_CLKCTRL (0x4A009120)= 0x00003702

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

    PLL_REGM  = 1594
    PLL_REGN  = 36
    M4 DIV    = 24
    M6 DIV    = 24
    M7 DIV    = 24

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

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

    PLL_REGM  = 1594
    PLL_REGN  = 36
    M4 DIV    = 24
    M6 DIV    = 24
    M7 DIV    = 24

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

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

    PLL_REGM  = 594
    PLL_REGN  = 7
    M4 DIV    = 0
    M6 DIV    = 0
    M7 DIV    = 0
    PLL_REGM2 = 1
    PLL_REGM_F = 1.
    PLL_SD = 6
    HDMI_SSC_CONFIGURATION1 (应为零) 0x00000000
    HDMI_SSC_configuration2 (应为零) 0x00000000

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

    ===================================================================================================
    多路复用器的时钟 O/P
    DPLL PER H12输出192000000
    CM_DIV_H12_DPLL_PER (0x4A00815C)= 0x00000204

    DSI1_A_CLK: 68929729
    DSI1_B_CLK: 68929729
    DSI1_C_CLK: 68929729

    DISPC_di遮 阳板(0x58001804)= 0x00010001

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

    LCD1逻辑时钟(/ 1): 68929729 pix 时钟(/ 1): 68929729
    LCD2逻辑时钟(/ 1): 68929729 pix 时钟(/ 1): 68929729
    LCD3逻辑时钟(/ 1): 68929729 pix 时钟(/ 1): 68929729


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

    感谢 Venkat 的宝贵答复。

    我将尝试这些实验、然后返回给您。 我现在正在举行第4次展示会、并研究其他活动。 肯定会在这个主题上回答您我所尝试的内容并提供进一步的帮助。

    再次感谢、

    Prabhuraj