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.

[参考译文] U-Boot/AM572x:DS/DISPC 驱动程序

Guru**** 2557740 points
Other Parts Discussed in Thread: SYSCONFIG, DM3730

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/623141/u-boot-am572x-dss-dispc-driver

Thread 中讨论的其他器件:SysConfigDM3730

大家好

我想在 uboot 上显示一些闪屏。

但在 SDK 中找不到适用于 am572x 的 DSS/DISPC 的任何简单驱动程序

是否有任何支持?

我还尝试根据 CPU 手册设置寄存器以及从 Linux 转储的寄存器值

我只需要创建一个简单的 dss/dispc 驱动程序。 仅输出到 LCD1 (DPI1)。

下表是 Linux 和 U-Boot 寄存器设置的比较。

项目

 

 

 

 

 

DSS (Linux)

DSS (U-Boot)

1

DSS_REVISION

00000061

00000061

2.

DSS_SysConfig

00000000

00000000

3.

DSS_SYSSTATUS

00000001

00000001

4.

DSS_CONTROL

00010001

00010000

5.

DSS_STATUS

01408a82

01408a81

6.

PM_DSS_PWRSTCTRL

00030000

00030000

7.

PM_DSS_PWRSTST

00000037

00000037

8.

PM_DSS_DSS_WKDEP

00000000

00000000

9.

RM_DSS_DSS_Context

00000000

00000103

10.

PM_DSS_DSS2_WKDEP

00000000

00000000

11.

RM_DSS_BB2D_Context

00000101

00000101

12.

RM_DSS_SDVENC_Context

00000001

00000001

13.

CM_DIV_H12_DPLL_PER

00000204

00000204

14.

CTRL_CORE_CONTRAL_IO_2

00000001

00000001

15.

CM_DSS_CLKSTCTRL

00000703

00000203

16.

CM_DSS_DSS_CLKCTRL

00001102.

00060102

17.

CTRL_CORE_DSS_PLL_CONTROL

000002a6.

000002af

 

 

DISPC (Linux)

DISPC (U-Boot)

18

CTRL_CORE_SMA_SW_1

00410000

00410000

19.

DISPC_REVISION

00000051

00000051

20.

DISPC_SysConfig

00002015

00002015

21.

DISPC_SYSSTATUS

00000001

00000001

22.

DISPC_IRQSTATUS

00000020

000102a2.

23

DISPC_IRQENABLE

1694564e

00000000

24

DISPC_CONTROL

00018309

00018309

25

DISPC_CONFIG

0000020c

0000020c

26

支持 DISPC_

00000000

00000000

27.

DISPC_LINE_STATUS

00000150

0000003c

28.

DISPC_LINE_NUMBER

00000000

00000000

29.

DISPC_di遮 阳板

00010001

00010000

30

DISPC_GLOBAL_ALPHA

FFFFFFFF

FFFFFFFF

31.

DISPC_GLOBAL_MFLAG_ATTRIBTE

00000001

00000001

32

DISPC_DEFAULT_COLOR (LCD)

00000000

00000000

33.

DISPC_TRANS_COLOR_LCD (LCD)

00000000

00000000

34

DISPC_SIZE (LCD)

0257031f

0257031f

35.

DISPC_时序_H (LCD)

0570277f

0570277f

36.

DISPC_Timing_V (LCD)

01700103

01700103

37.

DISPC_POL_FREQ (LCD)

00073000

00073000

38.

DISPC_DIVISORO (LCD)

00010004

00010005

39.

DISPC_DATA_Cycle1 (LCD)

00000000

00000000

40

DISPC_DATA_CYCLE2 (LCD)

00000000

00000000

41.

DISPC_DATA_CYCLE3 (LCD)

00000000

00000000

42.

DISPC_CPR_COEF_R (LCD)

00000000

00000000

43.

DISPC_CPR_COEF_G (LCD)

00000000

00000000

44.

DISPC_CPR_COEF_B (LCD)

00000000

00000000

45.

DISPC_OVL_BA0 (GFX)

7fda8000

7fda8000

46.

DISPC_OVL_Ba1 (GFX)

7fda8000

7fda8000

47.

DISPC_OVL_POSITION (GFX)

00000000

00000000

48

DISPC_OVL_SIZE (GFX)

0257031f

0257031f

49

DISPC_OVL_attributes (GFX)

020040b1.

020040b1.

50

DISPC_OVL_FIFO_THRESHOLD (GFX)

07ff07f8.

07ff07f8.

51.

DISPC_OVL_FIFO_SIZE (GFX)

00000500

00000500

52.

DISPC_OVL_ROW_INC (GFX)

00000381

00000381

53.

DISPC_OVL_PIXEL_INC (GFX)

00000001

00000001

54

DISPC_OVL_PRELOAD (GFX)

000007ff

000007ff

55

DISPC_OVL_MFLAG_THRESHOLD (GFX)

05000400

05000400

56.

DISPC_OVL_WINDOW_SKIP (GFX)

00000000

00000000

57.

DISPC_OVL_TABLE_BA (GFX)

00000000

00000000

问题:

我的时钟路径:DSS_GFCLK->DSS_CLK->LCD1_CLK->PIXEL_CLK。 对吗?

2.我的模块路径:DSS->GFX->LCD1,对吗?

设置后、我可以通过引脚测量像素时钟和帧速率、但屏幕上没有显示任何内容、事件尽管我将一些像素值更改为 gfx base 7fda8000。

根据 CPU 手册、不需要设置 DISPC 的 DMA、默认情况下正常。 对吧?

我错过了一些寄存器吗?

您能给我一些解决问题的建议吗?

或者 、您能否给我一些建议、让我知道如何在 U-Boot 上调试 DS/DISPC。  

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

    我还不熟悉 DS/DISPC、但 u-boot 中有一个 OMAP3 DSS 驱动程序。 我不知道 OMAP3 DSS 和 AM572x DSS 有多相似。 查看 drivers/video/omap3_dss.c 并查看它是否有用。

    Steve K.

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我已经知道 OMAP3_dss.c 文件。
    以及在 am572x 项目之前。 我做了一些基于 OMAP3 DSS 的 dm3730工作、并成功地配置了 DSS 内核。
    但我认为 AM57xx DSS 比 OMAP3 DSS 更复杂。

    重要的一点是、我不知道在 am572x 上调试 DSS。
    因为信号是从引脚测量的、但不显示任何内容。 我认为它可能是 gfx BA 或 DMA。
    根据 CPU 手册、DMA 看起来是自动的、无需更改。
    如何调试 U-boot 上 DSS dispc 的 DMA 传输?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我终于找出了问题。

    DISPC DMA 需要 DMM/tiler 模块来进行图像地址映射。

    所以我使用 DMM 直接映射。 显示了图像。

    但还有另一个问题:

    屏幕上的颜色显示 错误、与 DISPC 设置不对应。

    请参阅下图、我设置的反组为0、但屏幕上的颜色为青色。

    我设置的左上角的色条是灰度(0-255)、但屏幕上的颜色是其他颜色。

    是否有任何设置错误? 我要?的是什么

      

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

    您能否发布您的代码?

    Steve K.

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

    e2e.ti.com/.../omap5_5F00_dss.c

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