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.

[参考译文] AM625:DTS 中的 DSS PCLK 极性配置

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1251162/am625-dss-pclk-polarity-configuration-in-dts

器件型号:AM625

Linux SDK 8.3.

希望将 PCLK 极性配置为使用 LCD 时序、因为 LCD 在下降沿采样数据、因此需要在上升沿设置 DSS 输出数据。

Pixelclk-active=<0>或<1>不会对寄存器生效。

如何在 SDK 中配置它?

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

    您好!

    请参阅以下主题: https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1228207/am62a7-rgb-display-flickering-and-pixel-issue/4687209#4687209

    此致、
    克鲁纳尔

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

    Krunal,

    寄存器 CFG0_MAIN_CTRL_MMR_DPI0_CLK_CTRL 可以在 SDK9中进行写入。 但无法在我使用 SDK8.3的客户 SDK8.3上使用、是否有一个可解锁写入的寄存器?

    在 SDK8.3上:  

    Root 用户@am62xx-evm#~ devmem2 0x00108300 w 0x300
    /dev/mem 打开。
    存储器映射在地址0xffffff1e9000。
    在地址0x00108300 (0xffac1e9300)上读取:0x00000000
    在地址0x00108300 (0xffac1e9300)上写入:0x00000300、回读0x00000300

    回读、未更改:
    root@am62xx-EVM:~ devmem2 0x00108300
    /dev/mem 打开。
    内存映射在地址0xFFF82548000。
    在地址0x00108300 (0xff82548300):0x00000000处读取
    root@am62xx-EVM:~#
    root@am62xx-evm:~# uname -a
    Linux am62xx-evm 5.10.109-g9e58028f94 #1 SMP 抢占星期一五月30 16:43:25 UTC 2022 Aarch64 Aarch64 GNU/Linux
    Linux

    在 SDK 9上:

    root@am62xx-EVM:~ devmem2 0x00108300 W 0x00000300

    /dev/mem 打开。

    存储器映射地址为0xFFffb45b4000。

    在地址 0x00108300 (0xffb45b4300):0x00000000处读取

    在地址0x00108300 (0xffb45b4300):0x00000300处写入、回读0x00000300

    root@am62xx-EVM:~#

    root@am62xx-EVM:~ devmem2 0x00108300

    /dev/mem 打开。

    存储器映射在地址0xffaac1a000。

    在地址 0x00108300 (0xffaac1a300):0x00000300处读取

    root@am62xx-EVM:~#

    解锁无任何帮助

    root@am62xx-EVM:~ devmem2 0x00101008 w 0x68ef3490
    /dev/mem 打开。
    存储器映射在地址0xFFff95e24000处。
    在地址0x00101008 (0xFFff95e24008):0x68EF3491处读取
    在地址0x00101008 (0xFFff95e24008):0x68EF3490、回读0x68EF3490
    root 用户@am62xx-evm#~ devmem2 0x0010100c w 0xd172bc5a
    /dev/mem 打开。
    内存映射在地址0xffa8b75000。
    在地址0x0010100C (0xffa8b7500c):0xD172BC5A 处读取
    在地址0x0010100C (0xffa8b7500c):0xD172BC5A、读回0xD172BC5A
    root@am62xx-EVM:~#
    Root 用户@am62xx-evm#~ devmem2 0x00108300 w 0x300
    /dev/mem 打开。
    内存映射在地址0xFFF8251a000。
    在地址0x00108300 (0xff8251a300):0x00000000处读取
    在地址0x00108300 (0xff8251a300):0x00000300、回读0x00000300
    root@am62xx-EVM:~ devmem2 0x00108300
    /dev/mem 打开。
    存储器映射在地址0xFFF8193a000。
    在地址0x00108300 (0xff8193a300):0x00000000处读取
    root@am62xx-EVM:~#

    我还尝试了其他锁定寄存器、但找不到可以解锁寄存器的寄存器。

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

    尊敬的 Tony:

    请使用以下寄存器: 0x00109008。 在 SDK 8.3上、我们让客户在 Uboot uEnv.txt 文件"mw.l 0x00109008 0x68EF3490;mw.l 0x0010900C 0xD172BC5A;mw.l 0x00108300 0x100;"中执行以下操作

    此致、
    克鲁纳尔

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

    实际上我昨天尝试了所有的脚踢注册,不幸运,再次尝试, 仍然没有成功。

    在 Linux 中:

    am62xx-EVM 登录名:root
    root@am62xx-EVM:~#
    root@am62xx-EVM:~#
    root@am62xx-EVM:~ devmem2 0x00109008 w 0x68EF3490
    /dev/mem 打开。
    存储器映射在地址0xffb1de7000。
    在地址0x00109008 (0xffb1de7008)处读取:0x00000000
    写入地址0x00109008 (0xffb1de7008):0x68EF3490、回读0x68EF3490
    root@am62xx-EVM:~# devmem2 0x0010900c、带0xD172BC5A
    /dev/mem 打开。
    存储器映射在地址0xff938d4000。
    在地址0x0010900C (0xff938d400c):0x00000000处读取
    在地址0x0010900C (0xff938d400c):0xD172BC5A、读回0xD172BC5A
    root@am62xx-EVM:~#
    root@am62xx-EVM:~ devmem2 0x00108300
    /dev/mem 打开。
    存储器映射地址为0xFFF94774000。
    在地址0x00108300 (0xff94774300):0x00000000处读取
    root@用户 am62xx-EVM:~#[131.053769]初始化 XFRM netlink 套接字
    器件2 0x00108300
    /dev/mem 打开。
    存储器映射地址为0xFFff97d89000。
    在地址0x00108300 (0xff97d89300):0x00000000处读取
    root@am62xx-EVM:~#
    root 用户@am62xx-evm#~ devmem2 0x00108300 w 0x100
    /dev/mem 打开。
    存储器映射在地址0xFFff956e5000。
    在地址0x00108300 (0xff956e5300):0x00000000处读取
    在地址0x00108300 (0xff956e5300)上写入:0x00000100、回读0x00000100
    root@am62xx-EVM:~#
    root@am62xx-EVM:~ devmem2 0x00108300
    /dev/mem 打开。
    存储器映射在地址0xFFFI5227000。
    在地址0x00108300 (0xffffff5227300)处读取:0x00000000
    root@am62xx-EVM:~#

    在 uBoot 下 ,读回寄存器时触发异常。

    按任意键以停止自动引导:0
    =>
    =>
    => mw.l 0x00109008 0x68EF3490
    => mw.l 0x0010900C 0xD172BC5A
    => mw.l 0x00108300 0x100
    => md.l 0x00108300
    00108300:00000100 EL3中未处理异常。
    x30 = 0x000000009e780f88
    x0 = 0x00000000fffc0000
    X1 = 0x000000000000
    x2 = 0x0000000000000030
    X3 = 0x000000000001
    x4 = 0x0000000000108304
    X5 = 0x00000000f7ee408
    x6 = 0x00000000fffc0265
    x7 = 0x000000000004
    X8 = 0x00000000f7eeea78
    x9 = 0x000000000008
    x10 = 0x00000000ffffffd8
    X11 = 0x0000000000000010
    X12 = 0x000000000006
    X13 = 0x00000001869f
    x14 = 0x00000000f7eeee40
    x15 = 0x0000000000000021
    x16 = 0x00000000fff683a0
    x17 = 0x000000000000
    x18 = 0x00000000f7ef8de0
    x19 = 0x0000000000000040
    x20 = 0x0000000000108300
    x21 = 0x0000000000108300
    x22 = 0x00000000fffbe816
    x23 = 0x000000000008
    x24 = 0x000000000009
    x25 = 0x000000000004
    X26 = 0x000000000004
    x27 = 0x00000000f7eeeb38
    x28 = 0x000000000004
    x29 = 0x00000000f7eeeab0
    SCR_EL3 = 0x000000000000073d
    sctlr_EL3 = 0x000030cd183f
    CPTR_EL3 = 0x000000000000
    TCR_EL3 = 0x0000803520
    DAIF = 0x00000000000002c0
    MAIR_EL3 = 0x00000000004404ff
    spsr_EL3 = 0x00000000600002c9
    ELR_EL3 = 0x00000000fffa0a38
    ttbr0_EL3 = 0x000000009e7910c0
    ESR_EL3 = 0x000092000010
    FAR_EL3 = 0x0000000000108304
    spsr_el1 = 0x000000000000
    eLR_el1 = 0x000000000000
    spsr_abt = 0x000000000000
    spsr_und = 0x000000000000
    SPSR_IRQ = 0x000000000000
    spsr_fiq = 0x000000000000
    sctlr_el1 = 0x000030d00801
    actlr_el1 = 0x000000000000
    cpacr_el1 = 0x000000000000
    csselr_el1 = 0x000000000000
    SP_el1 = 0x000000000000
    ESR_el1 = 0x000000000000
    ttbr0_el1 = 0x000000000000
    ttbr1_el1 = 0x000000000000
    mair_el1 = 0x000000000000
    amair_el1 = 0x000000000000
    TCR_el1 = 0x0000000000800080
    tpidr_el1 = 0x000000000000
    tpidr_el0 = 0x000000000000
    tpidrro_el0 = 0x000000000000
    PAR_EL1 = 0x000000000000
    mpidr_el1 = 0x000080000000
    afsrc0_el1 = 0x000000000000
    afsr1_el1 = 0x000000000000
    contextidr_el1 = 0x000000000000
    VBAR_EL1 = 0x000000000000
    cntp_ctl_el0 = 0x000000000000
    cntp_cval_el0 = 0x0000000000000000
    CNTV_ctl_el0 = 0x000000000000
    CNTV_cval_el0 = 0x000000000000
    cntctl_el1 = 0x000000000000
    SP_el0 = 0x000000000000
    ISR_el1 = 0x000000000000
    dacr32_el2 = 0x000000000000
    ifsr32_el2 = 0x000000000000
    cpuectlr_el1 = 0x0000000000000040
    cpumerrsr_el1 = 0x0000000008000239
    l2merrsr_el1 = 0x0000000010245518
    cpuactlr_el1 = 0x00001000090ca000

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

    如果不读回并启动电路板、会出现什么情况? 值是否发生变化?

    此致、

    克鲁纳尔

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

    Krunal,

    您是否阅读过我的帖子?

    #1. 我是在 Linux SDK8.3中完成的、回读寄存器没有更改。

    #2. 按照您的建议在 uBoot 中执行该操作、回读以验证结果崩溃。

    #3. 可以在 SDK9中更改和读回更改,但在 SDK8.3中无法更改。

    我建议 BU 在让客户尝试之前先对其进行验证。

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

    尊敬的 Tony:

    1.我采用了 PSDK 8.3并对 DTS 文件进行了细微更改。 我附上了 DTS 文件、该文件基本上是告诉驱动程序将 LCD 面板连接到 DPI 端口而不是 HDMI。

    2.启动到 Linux 后,提示我运行以下命令以确认我的液晶屏是否被枚举:

    am62xx-evm login: root
    root@am62xx-evm:~# /etc/init.d/weston stop
    Stopping Weston
    root@am62xx-evm:~# kmstest
    Connector 0/@39: DPI-1
      Crtc 0/@37: 480x272 9.000 480/2/41/2/- 272/2/10/2/- 60 (59.94) 0xa 0x48
      Plane 0/@31: 0,0-480x272
        Fb 47 480x272-XR24
    press enter to exit
    

    3.我运行 MMR 寄存器、它显示了以下内容:

    root@am62xx-evm:~# devmem2 0x00108300                                                                                                                                                                 
    /dev/mem opened.
    Memory mapped at address 0xffffb8f03000.
    Read at address  0x00108300 (0xffffb8f03300): 0x00000000

    4.为了改变这个位、我运行了以下命令:

    root@am62xx-evm:~# devmem2 0x00108300                                                                                                                                                                 
    /dev/mem opened.
    Memory mapped at address 0xffffb8f03000.
    Read at address  0x00108300 (0xffffb8f03300): 0x00000000
    root@am62xx-evm:~# devmem2 0x00109008 w 0x68EF3490; devmem2 0x0010900C w 0xD172BC5A; devmem2 0x00108300 w 0x100                                                                                              
    /dev/mem opened.
    Memory mapped at address 0xffff881ad000.
    Read at address  0x00109008 (0xffff881ad008): 0x00000000
    Write at address 0x00109008 (0xffff881ad008): 0x68EF3490, readback 0x68EF3490
    /dev/mem opened.
    Memory mapped at address 0xffff9436f000.
    Read at address  0x0010900C (0xffff9436f00c): 0x00000000
    Write at address 0x0010900C (0xffff9436f00c): 0xD172BC5A, readback 0xD172BC5A
    /dev/mem opened.
    Memory mapped at address 0xffff9e952000.
    Read at address  0x00108300 (0xffff9e952300): 0x00000000
    Write at address 0x00108300 (0xffff9e952300): 0x00000100, readback 0x00000100
    root@am62xx-evm:~# devmem2 0x00108300
    /dev/mem opened.
    Memory mapped at address 0xffff800c4000.
    Read at address  0x00108300 (0xffff800c4300): 0x00000100
    

    在我的设置中、如果我读回它、我可以看到位从0x0变为0x100

    5.我的 Uboot 建议是不读回寄存器。 我告诉您只需设置位并启动板。 例如、在 Uboot 中、我执行了以下操作:

    Hit any key to stop autoboot:  0 
    => 
    => 
    => mw.l 0x00109008 0x68EF3490; mw.l 0x0010900C 0xD172BC5A; mw.l 0x00108300 0x100;
    => boot
    switch to partitions #0, OK
    mmc1 is current device
    

    引导后、将看到以下内容:

    oot@am62xx-evm:~# devmem2 0x00108300                                                                                                                                                                        
    /dev/mem opened.
    Memory mapped at address 0xffffad64c000.
    Read at address  0x00108300 (0xffffad64c300): 0x00000100
    root@am62xx-evm:~# 
    

    此致、

    克鲁纳尔
    e2e.ti.com/.../dpi_5F00_panel.patch

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

    Krunal,

    我发现了区别、在你的命令上、将3个写入命令放在一行中、我验证了它可以更改寄存器、但如果单独执行3个写入命令。 则无法更改寄存器。 解锁操作是否存在超时限制?

    为了帮助您理解:

    使用此命令进行更改:

    root@am62xx-EVM:~ devmem2 0x00109008 w 0x68EF3490;devmem2 0x0010900C w 0xD172BC5A;devmem2 0x00108300 w 0x100

    无法使用分隔的命令进行更改:  

    root@am62xx-EVM:~ devmem2 0x00109008 w 0x68EF3490

    root 用户@am62xx-EVM:~#  devmem2 0x0010900C w 0xD172BC5A

    root 用户@am62xx-evm#~  devmem2 0x00108300 w 0x100

    不能更改:

    root@am62xx-EVM:~# devmem2 0x00109008 w 0x68EF3490; devmem2 0x0010900C w 0xD172BC5A

    root 用户@am62xx-evm#~  devmem2 0x00108300 w 0x100

    你没有注意到这一点吗?

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

    尊敬的 Tony:

    通常、使用 PSDK8.03并遇到上述问题的客户在 Uboot 源码或 uEnv.txt 中实现了修复。 在内核中、我们用一条命令测试了所有写入、而不是用分离的命令尝试。 我可以向内部团队核实是否存在超时、但上述解决方案是否不 可接受?

    此致、
    克鲁纳尔