Reading IPU registers with memtool hangs.

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 
已解决

Reading IPU registers with memtool hangs.

跳至解决方案
4,600 次查看
mikigrof-tisza
Contributor II

whenever I try to read an IPU register using memtool, the system becomes completely unresponsive (no response on terminal, no response to ping..).

Is anyone else seeing this?

Below is an example of a successful read of a non IPU register (ENET.RDAR), but then right below it I'm reading IPU1.CSI0_SENS_CONF, and that hangs.

root@hostname:~# memtool ENET.RDAR

SOC is mx6q

ENET     Addr:0x2188000

  ENET.RDAR Addr:0x02188010 Value:0x01000000 - RDAR is a command register, written by the user, to indicate that the receive descriptor ring has been updated, that is, that the driver produced empty receive buffers with the empty bit set.

     ENET.RDAR.RDAR(24..24)     :0x1

             Always set to 1 when this register is written, regardless of the value written.

root@hostname:~# memtool IPU1.CSI0_SENS_CONF

SOC is mx6q

IPU1     Addr:0x2400000

Thanks,

Miki

标记 (4)
0 项奖励
回复
1 解答
3,024 次查看
jotes
Contributor IV

Probably because ipu1_ipu_clk_enable bits are not set in CCM_CCGR3 register.

在原帖中查看解决方案

0 项奖励
回复
4 回复数
3,025 次查看
jotes
Contributor IV

Probably because ipu1_ipu_clk_enable bits are not set in CCM_CCGR3 register.

0 项奖励
回复
3,024 次查看
mikigrof-tisza
Contributor II

That worked, thanks.  It doesn't hang anymore.

However, I'm now always reading all zeros back.  Here's a screendump of how I tried to enable a CSI, and the enable bit is not written:

root@hostname:~# memtool IPU1.CONF.CSI0_EN

SOC is mx6q

IPU1     Addr:0x2400000

  IPU1.CONF Addr:0x02400000 Value:0x00000000 -

     IPU1.CONF.CSI0_EN(0..0)    :0x0

             Camera Sensor Interface 0 Enable bit

root@hostname:~# memtool IPU1.CONF.CSI0_EN=1

SOC is mx6q

write 0x00000001 to Bit 0..0 of 0x02400000

root@hostname:~# memtool IPU1.CONF.CSI0_EN

SOC is mx6q

IPU1     Addr:0x2400000

  IPU1.CONF Addr:0x02400000 Value:0x00000000 -

     IPU1.CONF.CSI0_EN(0..0)    :0x0

             Camera Sensor Interface 0 Enable bit

The interesting thing is that I still read all zeroes even when the CSI is capturing successfully using gstreamer (verified with stream to VLC on PC).  I know I'm trying to read from the correct IPU/CSI since the camera is hardwires to IPU1_CSI0 (first IPU, first CSI).

Any ideas what that might be?

Thanks,

Miki

0 项奖励
回复
3,024 次查看
jotes
Contributor IV

Are you sure that the address you are reading is correct? IPU1 base address is 0x2600000, not 0x2400000.

3,024 次查看
mikigrof-tisza
Contributor II

I guess I shouldn't have assumes that the memtool from freescale was configured properly.  You're correct, I was accessing the wrong registers.

Thanks so much!

-Miki

0 项奖励
回复