Reading IPU registers with memtool hangs.

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Reading IPU registers with memtool hangs.

Jump to solution
3,133 Views
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

Tags (4)
0 Kudos
1 Solution
1,557 Views
jotes
Contributor IV

Probably because ipu1_ipu_clk_enable bits are not set in CCM_CCGR3 register.

View solution in original post

0 Kudos
4 Replies
1,558 Views
jotes
Contributor IV

Probably because ipu1_ipu_clk_enable bits are not set in CCM_CCGR3 register.

0 Kudos
1,557 Views
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 Kudos
1,557 Views
jotes
Contributor IV

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

1,557 Views
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 Kudos