NVCSI - Register readout time sync

I managed to read out the NVCSI Registers (CSI2 Header, Footer, CRC etc) using devmem as described in Access CSI-2 Packet headers and footers - Jetson & Embedded Systems / Jetson AGX Orin - NVIDIA Developer Forums

What is the best way to synchronize readout of these registers with the arriving CSI2 Frames? Such that the frames can be reconstructed?

Thanks in advance

Do you want to reinitialize the sensor if capture failed?
Then checking PH to confirm if receive data from sensor or CRC to check if the data is good or not.


Sorry for my late reply.

Then checking PH to confirm if receive data from sensor or CRC to check if the data is good or not.

Yes, my goal is for debugging purposes, to be able to reconstruct a frame as it was on the CSI level.
For this I need to log all PH/PF.

With my understanding of the TRM and CSI2 Spec, there should be a PH/PF for each line of the frame.
VI outputs the full image to memory in an Nvidia 12 Bit Format (16 Bit with Padding), without these headers, but they are put to the according registers (as described above).

How can I make sure to “log” the PH/PF Registers continuously in order to verify each individual Line?
→ At the moment, I am using a similar approach as Devmem and just reading the registers continuously, which is not very efficient and I risk to miss some readings.

In case there would be a notify for each StartOfLine and EndOfLIne, that would help to trigger the readout only in case of a new line.

Hope this makes sense … :)

Thanks a lot for your help

Maybe you can check the vi5_fops.c like the vi_capture_status() for it.


Thanks for this hint, I looked into it. I am unsure about how to integrate it in my code though… Is there some documentation or minmal examples somewhere?

If I understand correctly, it appears to me there are only frame start/end events, as in TRM it says:

The Header Footer Parser (HFP) […]

  • Checks if this packet is a long packet or short packet; if it is long packet, starts the long packet color Parser.
  • Checks if this packet is a short packet. For SOF/EOF packets, set appropriate bits to communicate with VI. HFP drops SOL/EOL packets.

but I would need notifys for each line, they dont seem to be communicated to VI?

However later in TRM it says

The VI output mux collects different information such as SOF, EOF, VC, DTYPE, Frame number, SOL, EOL, Embedded Data, Pixel Data, Error Flags. These are generated from various blocks in NVCSI and then combines and places them on the interface bus to VI.

Sorry for my confusion …

Best regards

I don’t think there’s a way to do it.

Ok, a pity to hear but at least it confirms the above.
In any case, thanks a lot for your help!

Best regards

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.