How to check MIPI CSI error in Orin?


I want to check MIPI CSI error in Orin (5.10.104-tegra, JetPack 5.0.2).
I tried the method which is introduced in Jetson/l4t/Camera BringUp - In this site, CSI error can be found by analyzing CSIMUX_FRAME data field. However, although if we inject CRC error, there is no CSIMUX_FRAME in the trace.

Is there any possible solution?

hello jw.cs.park,

you may treat those VI tracing logs as same as Xavier since they’re based-on the same kernel driver.
may I know what’s the exactly failure, could you please attach the logs for reference. thanks

I’m sorry that I made you confused. Our sensor doesn’t have any failure. I just want to check if VI trace shows CRC error when the error occurs. So I injected CRC error in the working sensor but VI trace doesn’t show any error log related CRC.

I have another question. If there are CRC errors, is there other way to check the error without using VI trace?
We just want to check MIPI Standard Error when this kind of error occurs.

In the TRM, NVCSI_STREAM_0_PH_CHK_CTRL_0 register has crc and ecc enable bit.
However, accessing this register occurs kernel panic. Is this way right to check the CRC error? If then, how to manipulate this kind of registers (eg., NVCSI_STREAM_0_PH_CHK_CTRL_0)?

Also, I referenced this patch ( How to disable CSI mipi CRC check on Xavier? - Jetson & Embedded Systems / Jetson AGX Xavier - NVIDIA Developer Forums) to access and write register. But it shows kernel panic in Orin. Could you check this?

hello jw.cs.park,

you may check registers to obtain more CSI details.
for example,

you should enable camera stream before access registers.
moreover, there’s firewall configuration of accessing to these registers on Orin platforms.
you may refer to Topic 234321 for CBB FIREWALL settings, please update tegra234-mb2-bct-scr-p3701-0000-override.dts then re-flash your target to apply the config.

Thanks for your reply.
I don’t use override dts so I modified hardware/nvidia/platform/t23x/common/bct/firewall/tegra234-firewall-config-base.dtsi to modify firewall configuration. However, this register is not still accessable. Is it okay to modify this dtsi file?

hello jw.cs.park,

you should modify the dtsi file under JetPack installation path.
for example,

please re-flash the target completely.
please also share the kernel messages if you still unable to access to the register.

Thanks. FIREWALL error has been fixed. However, SLAVE_ERR occured.
How could I fix this error?

[  235.075643] CPU:0, Error:cbb-fabric@0x13a00000, irq=21
[  235.090911] **************************************
[  235.095844] CPU:0, Error:cbb-fabric, Errmon:2
[  235.100331]    Error Code            : SLAVE_ERR
[  235.104192]    Overflow              : Multiple SLAVE_ERR

[  235.110215]    Error Code            : SLAVE_ERR
[  235.114076]    MASTER_ID             : CCPLEX
[  235.117578]    Address               : 0x15a10194
[  235.121258]    Cache                 : 0x0 -- Device Non-Bufferable
[  235.126459]    Protection            : 0x2 -- Unprivileged, Non-Secure, Data Access
[  235.133450]    Access_Type           : Read
[  235.136949]    Access_ID             : 0x11
[  235.136950]    Fabric                : cbb-fabric
[  235.143867]    Slave_Id              : 0x3
[  235.147004]    Burst_length          : 0x0
[  235.150503]    Burst_type            : 0x1
[  235.153827]    Beat_size             : 0x0
[  235.157062]    VQC                   : 0x0
[  235.159846]    GRPSEC                : 0x7e
[  235.162907]    FALCONSEC             : 0x0
[  235.166131]    Slave                 : T234_CBB_SN_HOST1X
[  235.170432]  **************************************

hello jw.cs.park,

SLAVE_ERR it means fail to communicate with the slave address, it may due to NVCSI did not power-on. I assume you’re using devmem to access the register directly, right?
practically, you must enable camera stream, please stay the camera stream running for NVCSI register reading.
if you have driver implementation to examine register dumps, please check the values after start_stream.

Thanks a lot. I finally succeed accessing NVCSI registers.

But in this case, how could I check whether NVCSI CRC/ECC Error has occured? I want to get alram when this kind of error has occured.
I found that the value of 0x15a10194 is 0x7 and 0x15a101d8 is different at every dump.

Sorry for the late response, have you managed to get issue resolved or still need the support? Thanks

Thank you for your support.
This issue is continued in the following topic: How could I get alarm when MIPI CSI error occured? - Jetson & Embedded Systems / Jetson AGX Orin - NVIDIA Developer Forums

Got it, thanks for the update.

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