Debugging CSI on TX1

Hi everyone,

I’m trying to read CSI registers on the TX1 using devmem2 tool.
My setup consists of a TX1 mounted on the CarrierBoard from Leopard Imaging.
It’s running R28.1 and I’m able to view a camera stream using argus_camera.

For development purposes, I want to read CSI status registers. Therefore I’ve checked the TX1 Reference Manual for CSI register address and found:

CSI 5408:0000

Now to read e.g. the CSI Input Stream A Control register, which is decleared with

Offset: 0x20e | Byte Offset: 0x838

resulting in the address 0x54080A46, I’ve executed

sudo devmem2 0x54080A46

and received

/dev/mem opened.
Memory mapped at address 0x7f8a9a6000.
Bus error

Same as for other registers.
If tried this with and without running camera stream in background.

Q: Any idea how to read the value at the specific address in the CSI?

Thanks for your Help!

Try the 0x54080a44 of 32 bit data. You can only access the end address for the 4 times like 0, 4, 8, c

Thanks for your answer.

One further question;
When reading the CSI Control register with
Offset: 0x295
Byte Offset: 0xa54

Which results in 0x54080CE9 and with respect to address alignment (thanks to your hint) in 0x54080CE8.

I expect that devmem2 would return a 32 bit value. But instead I receive:

sudo devmem2 0x54080CE8

Memory mapped at address 0x7f83dde000.
Value at address 0x54080CE8 (0x7f83ddece8): 0x0

Q1: Can you give me a hint what I’m missing here?
Q2: Is there a more convenient way to get a detailled log/report of the CSI status?

Thanks

  1. it’s 32 bit value 0x0 means 0x00000000
  2. You can check the vi driver in …/kernel/kernel-4.4/drivers/media/platform/tegra/camera/vi/

Hey ShaneCCC,
Sorry for late response,
the folder you’ve mentioned doesn’t contain anything but a makefile on my system. Btw it’s located in

/usr/src/linux-headers-4.4.38-tegra/drivers/media/platform/tegra/camera/vi/

Is it the wrong location?

Did you get the kernel source follow the l4t document?