|
|
(3 intermediate revisions by the same user not shown) |
Line 1: |
Line 1: |
− | == Get Prepared ==
| + | Move to https://elinux.org/Jetson/l4t/Camera_BringUp |
− | * Please read through "Camera Development" section in https://developer.nvidia.com/embedded/dlc/l4t-documentation-28-1
| |
− | == FAQ ==
| |
− | === Tips for debugging ===
| |
− | * Boost the clock for debug.
| |
− | sudo su
| |
− | echo 1 > /sys/kernel/debug/bpmp/debug/clk/vi/mrq_rate_locked
| |
− | echo 1 > /sys/kernel/debug/bpmp/debug/clk/isp/mrq_rate_locked
| |
− | echo 1 > /sys/kernel/debug/bpmp/debug/clk/nvcsi/mrq_rate_locked
| |
− | cat /sys/kernel/debug/bpmp/debug/clk/vi/max_rate |tee /sys/kernel/debug/bpmp/debug/clk/vi/rate
| |
− | cat /sys/kernel/debug/bpmp/debug/clk/isp/max_rate | tee /sys/kernel/debug/bpmp/debug/clk/isp/rate
| |
− | cat /sys/kernel/debug/bpmp/debug/clk/nvcsi/max_rate | tee /sys/kernel/debug/bpmp/debug/clk/nvcsi/rate
| |
− | | |
− | | |
− | '''TX1'''
| |
− | * if you saw below error message
| |
− | tegra-vi4 15700000.vi: PXL_SOF syncpt timeout! err = -11
| |
− | | |
− | * please check below 4 items in your sensor device tree, these should follow the settings in your sensor datasheet
| |
− | mode0 {
| |
− | cil_settletime = "0";
| |
− | active_w = "1920";
| |
− | active_h = "1080";
| |
− | embedded_metadata_height = "1";
| |
− | | |
− | * if you saw below error message
| |
− | video4linux video0: MW_ACK_DONE syncpoint time out!
| |
− | | |
− | * Enable the csi debug message from below command, and use v4l2-ctl to verify the driver first.
| |
− | sudo su
| |
− | cd /sys/kernel/debug/dynamic_debug/
| |
− | echo file csi2_fops.c +p > control
| |
− | | |
− | v4l2-ctl -d /dev/video0 --set-ctrl bypass_mode=0 --stream-mmap --stream-count=3
| |
− | | |
− | * please check below
| |
− | please review the configuration of "line_length" in sensor driver
| |
− | try to increase the delay between video lines data send via CSI
| |
− | review the sensor datasheet to check the settings of FPS range
| |
− | | |
− | | |
− | | |
− | | |
− | '''TX2'''
| |
− | * if you saw below message it could be the sensor output embedded data line but DT didn't declare embedded_metadata_height or it value is 0
| |
− | arm-smmu 12000000.iommu: Unhandled context fault: iova=0x00000000, fsynr=0x200011, cb=19, sid=4(0x4 - VI), pgd=0, pud=0, pmd=0, pte=0
| |
− | | |
− | <br />
| |
− | | |
− | === Steps to enable more debug messages ===
| |
− | * To enable logs from user-space for more details
| |
− | sudo su
| |
− | kill the process of argus_daemon/nvargus-daemon or nvcamera-daemon
| |
− | export enableCamPclLogs=5
| |
− | export enableCamScfLogs=5
| |
− | /usr/sbin/argus_daemon(nvargus-daemon) option for argus
| |
− | /usr/sbin/nvcamera-daemon option for gst-launch
| |
− |
| |
− | launch camera from another console
| |
− | | |
− | * To enable trace for more information
| |
− | echo 1 > /sys/kernel/debug/tracing/tracing_on
| |
− | echo 30720 > /sys/kernel/debug/tracing/buffer_size_kb
| |
− | echo 1 > /sys/kernel/debug/tracing/events/tegra_rtcpu/enable
| |
− | echo 1 > /sys/kernel/debug/tracing/events/freertos/enable
| |
− | echo 2 > /sys/kernel/debug/camrtc/log-level
| |
− | echo 1 > /sys/kernel/debug/tracing/events/camera_common/enable
| |
− | echo > /sys/kernel/debug/tracing/trace
| |
− | cat /sys/kernel/debug/tracing/trace
| |
− | | |
− | VI error decoder map from trace
| |
− | CSIMUX_FRAME data bit field
| |
− | bit 0:2 STREAM_ID
| |
− | bit 3 VPR
| |
− | bit 4 FS_flag
| |
− | bit 5 FE_flag
| |
− | bit 6 FE_CSI_FAULT
| |
− | bit 7 FS_FAULT
| |
− | bit 8 FORCE_FE_FAULT
| |
− | bit 9 FE_FRAME_ID_FAULT
| |
− | bit 10 PXL_ENABLE_FAULT
| |
− | bit 20:25 '''CSI_FAULT_CODE'''
| |
− | '''CSI_FAULT_CODE''' data bit field
| |
− | bit 20 PP FSM timeout
| |
− | bit 21 PH single bit error repaired
| |
− | bit 22 CRC error on payload
| |
− | bit 23 Line short error
| |
− | | |
− | The bit 22 CRC error on payload. It could be CRC error at frame end package. Please contact with sensor vendor to check the CRC header.
| |
− | kworker/0:1-2059 [000] ...1 434.733650: rtcpu_vinotify_handle_msg: tstamp:13948014423 tag:CSIMUX_FRAME channel:0x00 frame:2 vi_tstamp:1063112012 data:0x00<big>4</big>00060
| |
− | | |
− | The bit 5 and 7 indicate lose the FE package cause the FS_FAULT
| |
− | kworker/4:0-30 [004] ...1 241.772651: rtcpu_vinotify_handle_msg: tstamp:7868711648 tag:CSIMUX_FRAME channel:0x00 frame:1 vi_tstamp:3573743671 data:0x000000a0
| |
− | | |
− | The CSIMUX_FRAME bit 21 PH single bit error repaired. Possible the sensor didn't send the ECC package.
| |
− | kworker/4:0-2238 [004] ...1 543.467972: rtcpu_vinotify_handle_msg: tstamp:17333540584 tag:CSIMUX_FRAME channel:0x00 frame:0 vi_tstamp:153670980 data:0x00200060
| |
− | Can try disable the ECC check by modify the REG INTR_STATUS/ERR_INTR_MASK/ERROR_STATUS2VI_MASK to try it
| |
− |
| |
− | CHANSEL_FAULT data bit field
| |
− | bit 16:31 LINE_NUMBER
| |
− | bit 15 DTYPE_MISMATCH
| |
− | bit 14 EMBED_INFRINGE
| |
− | bit 13 EMBED_LONG_LINE
| |
− | bit 12 EMBED_SPURIOUS
| |
− | bit 11 EMBED_RUNAWAY
| |
− | bit 10 EMBED_MISSING_LE
| |
− | bit 9 PIXEL_SHORT_LINE
| |
− | bit 8 PIXEL_LONG_LINE
| |
− | bit 7 PIXEL_SPURIOUS
| |
− | bit 6 PIXEL_RUNAWAY
| |
− | bit 5 PIXEL_MISSING_LE
| |
− | bit 4 PIXEL_LINE_TIMER
| |
− | bit 3 EMBED_EOF
| |
− | bit 2 EMBED_SOF
| |
− | bit 1 PIXEL_EOF
| |
− | bit 0 PIXEL_SOF
| |
− | | |
− | The trace show the 0x0ada0040 0x40 means CHANSEL_FAULT of PIXEL_RUNAWAY means VI receives more lines than expected. The 0xad9(2778) is the lines report from the sensor driver.
| |
− | kworker/5:2-275 [005] ...1 122.290528: rtcpu_vinotify_handle_msg: tstamp:4155862787 tag:CHANSEL_PXL_SOF channel:0x00 frame:0 vi_tstamp:4155862337 data:0x00000001
| |
− | kworker/5:2-275 [005] ...1 122.290531: rtcpu_vinotify_handle_msg: tstamp:4155867990 tag:CHANSEL_LOAD_FRAMED channel:0x01 frame:0 vi_tstamp:4155867544 data:0x08000000
| |
− | kworker/5:2-275 [005] ...1 122.342572: rtcpu_vinotify_handle_msg: tstamp:4156521216 tag:CHANSEL_PXL_EOF channel:0x00 frame:0 vi_tstamp:4156520630 data:0x0ad90002
| |
− | kworker/5:2-275 [005] ...1 122.342579: rtcpu_vinotify_handle_msg: tstamp:4156521395 tag:CHANSEL_FAULT channel:0x00 frame:0 vi_tstamp:4156520667 data:0x0ada0040
| |
− | kworker/5:2-275 [005] ...1 122.342582: rtcpu_vinotify_handle_msg: tstamp:4156522342 tag:CHANSEL_LOAD_FRAMED channel:0x01 frame:0 vi_tstamp:4156521558 data:0x08000000
| |
− | kworker/5:2-275 [005] ...1 122.342585: rtcpu_vinotify_handle_msg: tstamp:4156522509 tag:CHANSEL_FAULT_FE channel:0x01 frame:0 vi_tstamp:4156521559 data:0x00000001
| |
− | kworker/5:2-275 [005] ...1 122.342588: rtcpu_vinotify_handle_msg: tstamp:4156522706 tag:ATOMP_FE channel:0x00 frame:0 vi_tstamp:4156521562 data:0x00000000
| |
− | | |
− | CSIMUX_STREAM data bit field
| |
− | bit 31 FIFO_BADPKT_STREAM_HI
| |
− | bit 30 FIFO_LOF_STREAM_HI
| |
− | bit 29 FIFO_OVERFLOW_STREAM_HI
| |
− | bit 28 SPURIOUS_DATA_STREAM_HI
| |
− | bit 27 FIFO_BADPKT_STREAM_LO
| |
− | bit 26 FIFO_LOF_STREAM_LO
| |
− | bit 25 FIFO_OVERFLOW_STREAM_LO
| |
− | bit 24 SPURIOUS_DATA_STREAM_LO
| |
− | bit 23 FIFO_BADPKT_STREAM_5
| |
− | bit 22 FIFO_LOF_STREAM_5
| |
− | bit 21 FIFO_OVERFLOW_STREAM_5
| |
− | bit 20 SPURIOUS_DATA_STREAM_5
| |
− | bit 19 FIFO_BADPKT_STREAM_4
| |
− | bit 18 FIFO_LOF_STREAM_4
| |
− | bit 17 FIFO_OVERFLOW_STREAM_4
| |
− | bit 16 SPURIOUS_DATA_STREAM_4
| |
− | bit 15 FIFO_BADPKT_STREAM_3
| |
− | bit 14 FIFO_LOF_STREAM_3
| |
− | bit 13 FIFO_OVERFLOW_STREAM_3
| |
− | bit 12 SPURIOUS_DATA_STREAM_3
| |
− | bit 11 FIFO_BADPKT_STREAM_2
| |
− | bit 10 FIFO_LOF_STREAM_2
| |
− | bit 9 FIFO_OVERFLOW_STREAM_2
| |
− | bit 8 SPURIOUS_DATA_STREAM_2
| |
− | bit 7 FIFO_BADPKT_STREAM_1
| |
− | bit 6 FIFO_LOF_STREAM_1
| |
− | bit 5 FIFO_OVERFLOW_STREAM_1
| |
− | bit 4 SPURIOUS_DATA_STREAM_1
| |
− | bit 3 FIFO_BADPKT_STREAM_0
| |
− | bit 2 FIFO_LOF_STREAM_0
| |
− | bit 1 FIFO_OVERFLOW_STREAM_0
| |
− | bit 0 SPURIOUS_DATA_STREAM_0
| |
− | | |
− | FIFO_OVERFLOW. It could be the pix_clk_hz in DT too small cause the ISP can't handle the input.
| |
− | kworker/5:3-1359 [005] ...1 253.671478: rtcpu_vinotify_handle_msg: tstamp:8279969890 tag:ISPBUF_FIFO_OVERFLOW channel:0x00 frame:12340 vi_tstamp:3985001981 data:0x00000000
| |
− | | |
− | CHANSEL_NOMATCH
| |
− | bit 0 no_match
| |
− | bit 1-4 CTYPE
| |
− | bit 5-10 DTYPE
| |
− | | |
− | CTYPE:
| |
− | FS = 0x8, FE = 0x1
| |
− | LS = 0x4, LE = 0x2
| |
− | LS_LE = 0x6, DATA = 0x9
| |
− | | |
− | DTYPE:
| |
− | NvCsiDataType_Unspecified = 0,
| |
− | NvCsiDataType_YUV420_10 = 25,
| |
− | NvCsiDataType_LEG_YUV420_8 = 26,
| |
− | NvCsiDataType_YUV420_8 = 24,
| |
− | NvCsiDataType_YUV420CSPS_8 = 28,
| |
− | NvCsiDataType_YUV420CSPS_10 = 29,
| |
− | NvCsiDataType_YUV422_8 = 30,
| |
− | NvCsiDataType_YUV422_10 = 31,
| |
− | NvCsiDataType_RGB444 = 32,
| |
− | NvCsiDataType_RGB555 = 33,
| |
− | NvCsiDataType_RGB565 = 34,
| |
− | NvCsiDataType_RGB666 = 35,
| |
− | NvCsiDataType_RGB888 = 36,
| |
− | NvCsiDataType_RAW6 = 40,
| |
− | NvCsiDataType_RAW7 = 41,
| |
− | NvCsiDataType_RAW8 = 42,
| |
− | NvCsiDataType_RAW10 = 43,
| |
− | NvCsiDataType_RAW12 = 44,
| |
− | NvCsiDataType_RAW14 = 45,
| |
− | NvCsiDataType_RAW16 = 46,
| |
− | NvCsiDataType_RAW20 = 47,
| |
− | NvCsiDataType_User_1 = 48,
| |
− | NvCsiDataType_User_2 = 49,
| |
− | NvCsiDataType_User_3 = 50,
| |
− | NvCsiDataType_User_4 = 51,
| |
− | NvCsiDataType_User_5 = 52,
| |
− | NvCsiDataType_User_6 = 53,
| |
− | NvCsiDataType_User_7 = 54,
| |
− | NvCsiDataType_User_8 = 55,
| |
− | NvCsiDataType_Unknown = 64,
| |
− | | |
− | Didn't receive any package from the MIPI bus. Make sure the sensor have output data to the MIPI bus
| |
− | kworker/5:2-2980 [005] ...1 4162.509492: rtos_queue_peek_from_isr_failed: tstamp:130384213094 queue:0x0b4a3c58
| |
− | kworker/5:2-2980 [005] ...1 4162.509496: rtcpu_start: tstamp:130384214513
| |
− | kworker/5:2-2980 [005] ...1 4162.665213: rtos_queue_peek_from_isr_failed: tstamp:130389214019 queue:0x0b4a3c58
| |
− | kworker/5:2-2980 [005] ...1 4162.821197: rtos_queue_peek_from_isr_failed: tstamp:130394214523 queue:0x0b4a3c58
| |
− | kworker/5:2-2980 [005] ...1 4162.977226: rtos_queue_peek_from_isr_failed: tstamp:130399215027 queue:0x0b4a3c58
| |
− | kworker/5:2-2980 [005] ...1 4163.133208: rtos_queue_peek_from_isr_failed: tstamp:130404215532 queue:0x0b4a3c58
| |
− | kworker/5:2-2980 [005] ...1 4163.289207: rtos_queue_peek_from_isr_failed: tstamp:130409216052 queue:0x0b4a3c58
| |
− | kworker/5:2-2980 [005] ...1 4163.445214: rtos_queue_peek_from_isr_failed: tstamp:130414216548 queue:0x0b4a3c58
| |
− | kworker/5:2-2980 [005] ...1 4163.601218: rtos_queue_peek_from_isr_failed: tstamp:130419217056 queue:0x0b4a3c58
| |