This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TDA4VH-Q1: multicam yuv capture error

Part Number: TDA4VH-Q1
Other Parts Discussed in Thread: TDA4VH

Tool/software:

Hello I'm using custom board using tda4vh and the sdk version is 9.2 version.


Currently, I want to store every frame camera image as yuv using multicam application,

but if it exceeds a certain frame unit, about 2,000 frames kernel panic error occurs.

The same error occurs even when saving using the en_out_img_write option in multicam application.

Is it a hardware problem if the storage capacity is sufficient?

Thank you

  • Hi,

    It depends on how you are writing. Lets say you are writing to SD card and SD card's capacity is not enough, then yes, it can potentially cause issue. So can you please check your SD card's capacity? Is it becoming full after writing 2000 frames? 

    Regards,

    Brijesh

  • No, the storage device has sufficient capacity and read speed.

  • No, the storage device has sufficient capacity and read speed.

  • ok, can you please first check if usecase is running fine for more than 2K frames, without storage? I am just wondering if then the issue is due to some application.. 

    Regards,

    Brijesh

  • If I don't use the save function, there's no issue


    It was confirmed that it works for more than 7 hours if i simply run the application

  • This is my error log

     =========================
     Demo : Camera Demo
     =========================
    
     s: Save CSIx, VISS and LDC outputs
    
     p: Print performance statistics
    
     x: Exit
    
     Enter Choice:    432.957319 s: ISS: Starting sensor [IMX390-MAX9295] ... !!!
       433.398297 s: ISS: Starting sensor [IMX390-MAX9295] ... Done !!!
    [  548.018131] kauditd_printk_skb: 1 callbacks suppressed
    [  548.018141] audit: type=1701 audit(1743987461.987:15): auid=4294967295 uid=0 gid=0 ses=4294967295 pid=3405 comm="vx_app_multi_ca" exe="/opt/vision_apps/vx_app_multi_cam.out" sig=4 res=1
    [  548.019218] Core dump to |/lib/systemd/systemd-coredump pipe failed
    [  548.019251] Core dump to |/lib/systemd/systemd-coredump pipe failed
    [  548.023296] audit: type=1701 audit(1743987461.987:16): auid=4294967295 uid=0 gid=0 ses=4294967295 pid=216 comm="systemd-journal" exe="/lib/systemd/systemd-journald" sig=11 res=1
    [  548.033595] Core dump to |/lib/systemd/systemd-coredump pipe failed
    [  548.033606] Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b
    [  548.033611] CPU: 5 PID: 1 Comm: systemd Not tainted 6.1.80 #1
    [  548.033615] Hardware name: Texas Instruments J784S4 EVM (DT)
    [  548.033617] Call trace:
    [  548.033620]  dump_backtrace.part.0+0xdc/0xf0
    [  548.033638]  show_stack+0x18/0x30
    [  548.033642]  dump_stack_lvl+0x68/0x84
    [  548.033649]  dump_stack+0x18/0x34
    [  548.033652]  panic+0x184/0x344
    [  548.033656]  make_task_dead+0x0/0x180
    [  548.033661]  do_group_exit+0x34/0x90
    [  548.033664]  get_signal+0x724/0x790
    [  548.033668]  do_notify_resume+0x23c/0xda0
    [  548.033673]  el0_undef+0x74/0x84
    [  548.033677]  el0t_64_sync_handler+0xf0/0x140
    [  548.033682]  el0t_64_sync+0x18c/0x190
    [  548.033686] SMP: stopping secondary CPUs
    [  548.039784] Kernel Offset: disabled
    [  548.039786] CPU features: 0x40000,20028084,0000420b
    [  548.039790] Memory Limit: none
    [  548.154317] ---[ end Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b ]---

  • ok, i am just wondering, that due to slow SD interface, entire usecase is slowing down and after sometime, usecase is crashing.. 

    Why do you need to store all images to SD card? Have you tried any other faster interface? 

    Regards,

    Brijesh

  • I'm in the process of acquiring data by video or image with a camera.

    My storage interface is nvme ssd, not sd card.

    When saved as sd card, there was a phenomenon in which the display screen slowed down due to slow writting,

    but there was no such phenomenon in ssd

  • That's strange, we have not tried saving such a large number of frames, but it should work. 

    Can you please share the crash log to understand the reason for the crash? 

    Regards,

    Brijesh

  • This is my full crash log

    root@j784s4-evm:/opt/vision_apps# ./run_app_multi_cam.sh 
    APP: Init ... !!!
    MEM: Init ... !!!
    MEM: Initialized DMA HEAP (fd=5) !!!
    MEM: Init ... Done !!!
    IPC: Init ... !!!
    IPC: Init ... Done !!!
    REMOTE_SERVICE: Init ... !!!
    REMOTE_SERVICE: Init ... Done !!!
       112.228512 s: GTC Frequency = 200 MHz
    APP: Init ... Done !!!
       112.232990 s:  VX_ZONE_INIT:Enabled
       112.233016 s:  VX_ZONE_ERROR:Enabled
       112.233023 s:  VX_ZONE_WARNING:Enabled
       112.234565 s:  VX_ZONE_INIT:[tivxPlatformCreateTargetId:116] Added target MPU-0 
       112.234661 s:  VX_ZONE_INIT:[tivxPlatformCreateTargetId:116] Added target MPU-1 
       112.234789 s:  VX_ZONE_INIT:[tivxPlatformCreateTargetId:116] Added target MPU-2 
       112.234867 s:  VX_ZONE_INIT:[tivxPlatformCreateTargetId:116] Added target MPU-3 
       112.234877 s:  VX_ZONE_INIT:[tivxInitLocal:136] Initialization Done !!!
       112.235369 s:  VX_ZONE_INIT:[tivxHostInitLocal:101] Initialization Done for HOST !!!
       112.237918 s: ISS: Enumerating sensors ... !!!
       112.456085 s: ISS: Enumerating sensors ... found 0 : IMX390-MAX9295
       112.456120 s: ISS: Enumerating sensors ... found 1 : AR0820-MAX9295
    2 sensor(s) found 
    Supported sensor list: 
    a : IMX390-MAX9295 
    b : AR0820-MAX9295 
    Select a sensor above or press '0' to autodetect the sensor 
    a
    Sensor selected : IMX390-MAX9295
    Querying IMX390-MAX9295 
       113.444776 s: ISS: Querying sensor [IMX390-MAX9295] ... !!!
       113.444874 s: ISS: Querying sensor [IMX390-MAX9295] ... Done !!!
    LDC Selection Yes(1)/No(0)
    Invalid selection 
    . Try again 
    LDC Selection Yes(1)/No(0)
    1
    Max number of cameras supported by sensor IMX390-MAX9295 = 8 
    Please enter number of cameras to be enabled 
    2
    Number of camera found is less than entered num_of_cameras
    Enter Channel mask in decimal. Indicates number and positions of cameras selected
    For e.g. channel_mask = 15 (0x0F) indicates that first 4 cameras are enabled
    Press 0 to autodetect channel mask 
    3
    Channel mask = 3 Number of camera selected = 2
    starting_channel 0
       117.826377 s: ISS: Initializing sensor [IMX390-MAX9295], doing IM_SENSOR_CMD_PWRON ... !!!
       117.826622 s: ISS: Initializing sensor [IMX390-MAX9295], doing IM_SENSOR_CMD_CONFIG ... !!!
       120.846125 s: ISS: Initializing sensor [IMX390-MAX9295] ... Done !!!
    read_test_image_raw : Unable to open file /opt/vision_apps/test_data//img_test.raw, setting error message as all 0s
       121.067430 s: ISS: Starting sensor [IMX390-MAX9295] ... !!!
       121.509015 s: ISS: Starting sensor [IMX390-MAX9295] ... Done !!!
    
    
     =========================
     Demo : Camera Demo
     =========================
    
     s: Save CSIx, VISS and LDC outputs
    
     p: Print performance statistics
    
     x: Exit
    
     Enter Choice: [  230.002495] Unable to handle kernel paging request at virtual address 92929292929190f9
    [  230.010419] Mem abort info:
    [  230.013212]   ESR = 0x0000000096000004
    [  230.013467] kauditd_printk_skb: 1 callbacks suppressed
    [  230.013471] audit: type=1701 audit(1744619587.954:15): auid=4294967295 uid=0 gid=0 ses=4294967295 pid=213 comm="systemd-journal" exe="/lib/systemd/systemd-journald" sig=4 res=1
    [  230.016954]   EC = 0x25: DABT (current EL), IL = 32 bits
    [  230.016958]   SET = 0, FnV = 0
    [  230.016960]   EA = 0, S1PTW = 0
    [  230.016961]   FSC = 0x04: level 0 translation fault
    [  230.054112] Data abort info:
    [  230.056982]   ISV = 0, ISS = 0x00000004
    [  230.060807]   CM = 0, WnR = 0
    [  230.063761] [92929292929190f9] address between user and kernel address ranges
    [  230.070881] Internal error: Oops: 0000000096000004 [#1] PREEMPT SMP
    [  230.077130] Modules linked in: overlay ti_cpsw_proxy_client nvme nvme_core pci_endpoint_test bluetooth ecdh_generic cfg80211 ecc rfkill rpmsg_ctrl rpmsg_char xhci_plat_hcd ti_am335x_adc cdns3 omap_rng kfifo_buf cdns_usb_common cdns_pltfrm wave5 crct10dif_ce videobuf2_dma_contig cdns_mhdp8546 videobuf2_memops cdns_dsi display_connector ti_j721e_cpsw_virt_mac drm_display_helper v4l2_mem2mem drm_kms_helper phy_can_transceiver videobuf2_v4l2 ti_k3_r5_remoteproc syscopyarea ti_k3_dsp_remoteproc videobuf2_common sysfillrect videodev virtio_rpmsg_bus k3_j72xx_bandgap sysimgblt rpmsg_ns mc fb_sys_fops ti_am335x_tscadc ti_k3_common pci_j721e_host ti_j721e_ufs sa2ul pci_j721e cdns_dphy pcie_cadence_host cdns_dphy_rx pcie_cadence cdns3_ti m_can_platform m_can optee_rng can_dev rng_core rti_wdt fuse drm drm_panel_orientation_quirks ipv6
    [  230.150143] CPU: 2 PID: 1243 Comm: vx_app_multi_ca Not tainted 6.1.80 #1
    [  230.156826] Hardware name: Texas Instruments J784S4 EVM (DT)
    [  230.162467] pstate: a0000005 (NzCv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--)
    [  230.169410] pc : insert_inode_locked+0x9c/0x1d0
    [  230.173938] lr : insert_inode_locked+0x88/0x1d0
    [  230.178454] sp : ffff80000c46b9b0
    [  230.181754] x29: ffff80000c46b9b0 x28: ffff0008c58d5000 x27: ffff0008c58d5000
    [  230.188873] x26: ffff000b4f231388 x25: ffff000f59360000 x24: ffff800008b62610
    [  230.195991] x23: ffff000f5938c2c8 x22: ffff8000091395c0 x21: 0000000000000b8b
    [  230.203109] x20: 0000000000005859 x19: 92929292929190b9 x18: 0000000000000000
    [  230.210228] x17: 000000005ed0d26c x16: 0000000060887f9f x15: 0000000060887f9f
    [  230.217346] x14: 0000000039bef1f7 x13: 00000000304a1b2d x12: 0000000074dff1a7
    [  230.224463] x11: 00000000d6c9cf17 x10: 0000000074dff1a7 x9 : 0000000000000000
    [  230.231581] x8 : ffff000b4f23129c x7 : 0000000000000000 x6 : 00000000fffe3fb0
    [  230.238698] x5 : 0000000000000000 x4 : 0000000000000000 x3 : ffff8000091395c0
    [  230.245816] x2 : 0000000000000001 x1 : 0000000000000000 x0 : 0000000000000000
    [  230.252934] Call trace:
    [  230.255368]  insert_inode_locked+0x9c/0x1d0
    [  230.259538]  __ext4_new_inode+0x7f0/0x12b0
    [  230.263623]  ext4_create+0xe8/0x1e0
    [  230.267100]  path_openat+0xb64/0xe44
    [  230.270664]  do_filp_open+0x80/0x130
    [  230.274227]  do_sys_openat2+0xb4/0x170
    [  230.277963]  __arm64_sys_openat+0x60/0xb0
    [  230.281958]  invoke_syscall+0x48/0x114
    [  230.285696]  el0_svc_common.constprop.0+0xd4/0xfc
    [  230.290385]  do_el0_svc+0x20/0x30
    [  230.293686]  el0_svc+0x28/0xa0
    [  230.296732]  el0t_64_sync_handler+0xbc/0x140
    [  230.300989]  el0t_64_sync+0x18c/0x190
    [  230.304640] Code: b40001b3 f1036273 d503201f 54000140 (f9402261) 
    [  230.310716] ---[ end trace 0000000000000000 ]---
    [  230.315327] note: vx_app_multi_ca[1243] exited with preempt_count 1
    
    

  • Hello Kim,

    ext4_create --> ext4_new_inode so basically storing the content to SSD is the issue. How are you enumerating the ssd? Any other storage media that you gave tried? 

    Best Regards,

    Keerthy 

  • I have connected an M.2 SSD to PCIe0 and used the ext4 format.

    Additionally, I tried using a storage device connected via the USB port, setting it up as USB storage,

    and experimented with various formats.

    NTFS could not be mounted, and the fat32, ext4 format resulted in the same kernel panic.

  • Hi Kim,

    I am not aware of this issue with PCIe SSD. I am not sure if you are related to this other on-going E2E forum discussion, but this will be the closest thing I have seen: https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1508979/tda4vh-q1-kernel-panic-during-large-nvme-read-write-on-pci0

    So, 3 questions and requests:

    • Does the kernel panic occur when transferring a small file using commandline, similar to the linked E2E? For example, create a small .txt and do a "cp" to the SSD.
    • Could you share the logs from "dmesg > dmesg_logs_multicam_error.txt"
    • Could you share the logs from "lspci -vvv > lspci_logs_multicam_error.txt"

    Regards,

    Takuma