TX2 R28.2 How to capture camera sensor image data of multiple virtual channels at the same time

Hi everyone,
I use TX2 the bsp version is R28.2, I want to capture camera sensor image data of multiple virtual channels at the same time. But the RTCPU output error log as below. How to fix this bug? Thanks.

[ 1906.077420] tegra186-cam-rtcpu b000000.rtcpu: Detected an exception.
               Type: 3 (Prefetch abort)
               General Purpose Registers
                 R0:  0b493210 R1:  00000001 R2:  00000000 R4:  00000001
                 R4:  04040404 R5:  0b493210 R6:  06060606 R7:  0b49c768
                 R8:  08080808 R9:  09090909 R10: 10101010 R11: 11111111
                 R12: 00000000 SP:  0b4bf800 LR:  70000004 PC:  0b4801a4
               General Purpose Registers in previous mode
                 SP: 0b49c750 LR: 0b4871b8
               Program Status Registers
                 CPSR: 80000197 SPSR: 8000011f
               Coprocessor Registers
                 DFSR: 00000000 DFAR: 00000000 ADFSR: 00000000
                 IFSR: 00000000 IFAR: 70000000 AIFSR: 00000000
               Callstack
                 [0b49c73c]: 0b486320
                 [0b49c74c]: 0b4870bc
                 [0b49c790]: 0b4870a4
                 [0b49c89c]: 0b490d99
                 [0b49d438]: 0b4836cc
                 [0b49d43c]: 0b484834
                 [0b49d464]: 0b4816ec
                 [0b49d46c]: 0b487f1c
                 [0b49d490]: 0b487f10
                 [0b49d534]: 0b490d99

hello kenny_234,

since r28.2 is one very old release version, are you able moving to the latest release to enable your use-case?
for example, JetPack SDK | NVIDIA Developer, JetPack-4.6/ l4t-r32.6.1
thanks

Hi Jerry,
We have sold our products which use r28.2 version to customers. We can only upgrade new version to customers online, so I can’t use r32.6.1 version.

hello kenny_234,

may I know how many camera streams did you have, are you able to stream them individually?
is this issue only happened with capture multiple virtual channels simultaneously?

Hi Jerry,
I have 8 camera streams, they are work well individually, and the issue only happend when capture multiple virtual channels simultaneously.

hello kenny_234,

could you please gather the complete kernel logs for reference, $ dmesg --follow.
besides, please check this external page for r28.2.1 bug fixes, Jetson/L4T/r28.2.1 patches - eLinux.org
thanks

Hi Jerry,
The kernel log as below:

nvcsi 150c0000.nvcsi: csi4_stream_check_status (2) INTR_STATUS 0x00000008
[ 1918.572023] nvcsi 150c0000.nvcsi: csi4_stream_check_status (2) ERR_INTR_STATUS 0x00000008
[ 1918.609227] nvcsi 150c0000.nvcsi: csi4_stream_check_status (2) INTR_STATUS 0x00000008
[ 1918.617125] nvcsi 150c0000.nvcsi: csi4_stream_check_status (2) ERR_INTR_STATUS 0x00000008
[ 1918.677420] tegra186-cam-rtcpu b000000.rtcpu: Detected an exception.
[ 1918.677420] Type: 3 (Prefetch abort)
[ 1918.677420] General Purpose Registers
[ 1918.677420]   R0:  0b493210 R1:  00000001 R2:  00000000 R4:  00000001
[ 1918.677420]   R4:  04040404 R5:  0b493210 R6:  06060606 R7:  0b49c768
[ 1918.677420]   R8:  08080808 R9:  09090909 R10: 10101010 R11: 11111111
[ 1918.677420]   R12: 00000000 SP:  0b4bf800 LR:  70000004 PC:  0b4801a4
[ 1918.677420] General Purpose Registers in previous mode
[ 1918.677420]   SP: 0b49c750 LR: 0b4871b8
[ 1918.677420] Program Status Registers
[ 1918.677420]   CPSR: 80000197 SPSR: 8000011f
[ 1918.677420] Coprocessor Registers
[ 1918.677420]   DFSR: 00000000 DFAR: 00000000 ADFSR: 00000000
[ 1918.677420]   IFSR: 00000000 IFAR: 70000000 AIFSR: 00000000
[ 1918.677420] Callstack
[ 1918.677420]   [0b49c73c]: 0b486320
[ 1918.677420]   [0b49c74c]: 0b4870bc
[ 1918.677420]   [0b49c790]: 0b4870a4
[ 1919.155296] tegra186-cam-rtcpu b000000.rtcpu: Alert: Camera RTCPU gone bad! restoring it immediately!!
[ 1919.233416] tegra186-cam-rtcpu b000000.rtcpu: Detected an exception.
[ 1919.233416] Type: 3 (Prefetch abort)
[ 1919.233416] General Purpose Registers
[ 1919.233416]   R0:  0b493210 R1:  00000001 R2:  00000000 R4:  00000001
[ 1919.233416]   R4:  00000000 R5:  0b493210 R6:  0000000a R7:  0b49c768
[ 1919.233416]   R8:  0b49321a R9:  09090909 R10: 10101010 R11: 11111111
[ 1919.233416]   R12: 00000000 SP:  0b4bf800 LR:  70000004 PC:  0b4801a4
[ 1919.233416] General Purpose Registers in previous mode
[ 1919.233416]   SP: 0b49c750 LR: 0b4871b8
[ 1919.233416] Program Status Registers
[ 1919.233416]   CPSR: 80000197 SPSR: 8000011f
[ 1919.233416] Coprocessor Registers
[ 1919.233416]   DFSR: 00000000 DFAR: 00000000 ADFSR: 00000000
[ 1919.233416]   IFSR: 00000000 IFAR: 70000000 AIFSR: 00000000
[ 1919.233416] Callstack
[ 1919.233416]   [0b49c73c]: 0b486320
[ 1919.233416]   [0b49c74c]: 0b4870bc
[ 1919.233416]   [0b49c790]: 0b4870a4
[ 1919.653581] tegra186-cam-rtcpu b000000.rtcpu: Alert: Camera RTCPU gone bad! restoring it immediately!!
[ 1919.663585] tegra-ivc-vi-notify ivc-b000000.rtcpu:vinotify@12c0: notify backend down
[ 1919.671357] tegra-vi4 15700000.vi: Status: 13 channel:00 frame:0000
[ 1919.677644] tegra-vi4 15700000.vi:          timestamp sof 0 eof 0 data 0x00000000
[ 1919.685138] tegra-vi4 15700000.vi:          capture_id 0 stream  0 vchan  0
[ 1919.692118] tegra-vi4 15700000.vi: Status: 13 channel:01 frame:0000
[ 1919.698401] tegra-vi4 15700000.vi:          timestamp sof 0 eof 0 data 0x00000000
[ 1919.705899] tegra-vi4 15700000.vi:          capture_id 0 stream  0 vchan  0
[ 1919.712890] tegra-vi4 15700000.vi: tegra_channel_status_worker: status_work_destroying is 1, chan addr = ffffffc07b1b0018
[ 1919.732051] tegra186-cam-rtcpu b000000.rtcpu: Alert: Camera RTCPU gone bad! restoring it immediately!!
[ 1919.742103] tegra-ivc-vi-notify ivc-b000000.rtcpu:vinotify@12c0: notify backend down
[ 1919.777412] tegra-vi4 15700000.vi: PXL_SOF syncpt timeout! err = -11
[ 1919.801406] tegra-vi4 15700000.vi: ATOMP_FE syncpt timeout! err = -11
[    0.000000] Booting Linux on physical CPU 0x100

hello kenny_234,

sorry, I’ll need the failure in the beginning to understand the root cause.
could you please setup a terminal to gather logs continuously, please save the log as single text file and attach that to the topic for reference,

Hi Jerry,
The kernel log and rtcpu log as attached.
kernel.log (34.1 KB)
rtcpu.log (22.0 KB)

hello kenny_234,

could you please restart the platform and gather the logs from the beginning.
thanks

Hi Jerry,
The system start log as attached.
start.log (24.0 KB)

hello kenny_234,

I am sorry, I meant restart the system, then enable your multi-cam use-case to gather the logs completely from the beginning.

Hi Jerry,
The kernel.log and rtcpu.log are the log when I enable my multi camera log.

hello kenny_234,

there’re errors related to syncpt timeout, it usually caused by sensor did not output camera frames within 2500ms.

this should be an issue that there’re lots of registers to program and take longer time to finish sensor initialization, we had implementation to add set_mode_delay_ms to configure the waiting time for the first frame after capture starts, however, it’s not included in rel-28 release. check Device Properties as see-also

BTW,
since it’s multi-camera failure, would you please narrow down the issue, for example, can this reproduce with dual camera use-case?

Hi Jerry,
I have tested capture one virtual channel image the driver work well , and the issue only happend when capture multiple virtual channels simultaneously. And R32.3.1 bsp can capture multiple virtual channels simultaneously. I think the rtcpu not support capture multiple virtual channels simultaneously. Could you help me to confirm it ? Thanks.

[  537.105449] tegra186-cam-rtcpu b000000.rtcpu: Detected an exception.
               Type: 3 (Prefetch abort)
               General Purpose Registers
                 R0:  0b493210 R1:  00000001 R2:  00000000 R4:  00000001
                 R4:  00000000 R5:  0b493210 R6:  0000000c R7:  0b49c768
                 R8:  0b49321c R9:  09090909 R10: 10101010 R11: 11111111
                 R12: 00000000 SP:  0b4bf800 LR:  70000004 PC:  0b4801a4
               General Purpose Registers in previous mode
                 SP: 0b49c750 LR: 0b4871b8
               Program Status Registers
                 CPSR: 80000197 SPSR: 8000011f
               Coprocessor Registers
                 DFSR: 00000000 DFAR: 00000000 ADFSR: 00000000
                 IFSR: 00000000 IFAR: 70000000 AIFSR: 00000000
               Callstack
                 [0b49c734]: 0b48227c
                 [0b49c74c]: 0b4870f0
                 [0b49c790]: 0b4870a4
                 [0b49c89c]: 0b490d99
                 [0b49d438]: 0b4836cc
                 [0b49d43c]: 0b484834
                 [0b49d464]: 0b4816ec
                 [0b49d46c]: 0b487f1c
                 [0b49d490]: 0b487f10
                 [0b49d534]: 0b490d99

hello kenny_234,

it looks virtual channel support has officially enabled on the release-32 code-line.
you may check the developer guide and see the [Software Features] for confirmation.

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