Linux SDK 8.3.
希望将 PCLK 极性配置为使用 LCD 时序、因为 LCD 在下降沿采样数据、因此需要在上升沿设置 DSS 输出数据。
Pixelclk-active=<0>或<1>不会对寄存器生效。
如何在 SDK 中配置它?
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 SDK 8.3.
希望将 PCLK 极性配置为使用 LCD 时序、因为 LCD 在下降沿采样数据、因此需要在上升沿设置 DSS 输出数据。
Pixelclk-active=<0>或<1>不会对寄存器生效。
如何在 SDK 中配置它?
您好!
此致、
克鲁纳尔
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:~#
我还尝试了其他锁定寄存器、但找不到可以解锁寄存器的寄存器。
实际上我昨天尝试了所有的脚踢注册,不幸运,再次尝试, 仍然没有成功。
在 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
尊敬的 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:~#
此致、
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
你没有注意到这一点吗?