Nvsipl error with custom driver

Please provide the following info (tick the boxes after creating this topic):
Software Version
DRIVE OS 6.0.4 (rev. 1)
DRIVE OS 6.0.4 SDK
other (DRIVE OS 6.0.3 SDK)

Target Operating System
Linux
QNX
other

Hardware Platform
DRIVE AGX Orin Developer Kit (940-63710-0010-D00)
DRIVE AGX Orin Developer Kit (940-63710-0010-C00)
DRIVE AGX Orin Developer Kit (not sure its number)
other

SDK Manager Version
1.8.3.10431
other

Host Machine Version
native Ubuntu Linux 20.04 Host installed with SDK Manager
native Ubuntu Linux 20.04 Host installed with DRIVE OS Docker Containers
native Ubuntu Linux 18.04 Host installed with DRIVE OS Docker Containers
other

Dear Nvidia

We recently creating a nvsipl driver for sekonix (SF3324) camera module (Max96706 + ar0231), and we get all of the sensor’s register configuration information from Driver SDK 5.1.6 (~/nvidia/nvidia_sdk/DRIVE_Software_10.0_Linux_OS_DRIVE_AGX_XAVIER/DRIVEOS/drive-t186ref-linux/samples/nvmedia/ext_dev_prgm).
The idea was referenced from Create customized camera driver AR0231 + Max9295 with SIPL - DRIVE AGX Xavier / DRIVE AGX General - NVIDIA Developer Forums. After some debugging, we finally light up this camera, and got the raw12 image data.
Now we want to enable the ISP and get good quality images.
So, we find a Nito file of SF3324 camera module from Driver SDK 5.2.6(~/nvidia/nvidia_sdk/DRIVE_OS_5.2.6_SDK_Linux_OSWithSamples_DRIVE_AGX_XAVIER/DRIVEOS/drive-t186ref-linux/targetfs/opt/nvidia/nvmedia/nit/sf3324.nito).
Finally, when we put all information together into a Drive Orin (with SDK 6.0.3), and use below command to capture images

sudo ./nvsipl_camera -c SF3324_CPHY_x4 --link-enable-masks "0x0001 0x0000 0x0000 0x0000" --disableISP0Output --disableISP1Output --enableRawOutput --showNitoMetadata -v 4

We get some error:

Main: /dvs/git/dirty/git-master_linux/camera/fusa/sipl/src/core/pipelineMgr/spmgr/pipeline/blocks/CNvMISPBlock.cpp: 157: Init: Fuse ID: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00Main: /dvs/git/dirty/git-master_linux/camera/fusa/sipl/src/core/utils/CNvMThread.cpp: 34: ThreadCreate: Creating thread:SIPL_ICP_ISP_0
Main: /dvs/git/dirty/git-master_linux/camera/fusa/sipl/src/core/utils/CNvMThread.cpp: 130: m_FuncStatic: Thread created
Main: /dvs/git/dirty/git-master_linux/camera/fusa/sipl/src/core/utils/CNvMThread.cpp: 117: ThreadSetName: Setting thread name:SIPL_ICP_ISP_0
SIPL_ICP_ISP_0: /dvs/git/dirty/git-master_linux/camera/fusa/sipl/src/core/utils/CNvMThread.cpp: 145: m_Func: Running thread:SIPL_ICP_ISP_0
SIPL_ICP_ISP_0: /dvs/git/dirty/git-master_linux/camera/fusa/sipl/src/core/utils/CNvMThread.cpp: 148: m_Func: Calling ThreadFunc for thread:SIPL_ICP_ISP_0
Main: /dvs/git/dirty/git-master_linux/camera/fusa/sipl/src/core/pipelineMgr/spmgr/pipeline/CNvMSensorPipeline.cpp: 274: RegisterImageGroupBuffers: Creating ICP buffer pool of size: 6
Main: /dvs/git/dirty/git-master_linux/camera/fusa/sipl/src/core/utils/CNvMBufferPool.hpp: 112: Init: Creating buffer pool with 6 buffers
Main: /dvs/git/dirty/git-master_linux/camera/fusa/sipl/src/core/pipelineMgr/spmgr/pipeline/CNvMSensorPipeline.cpp: 32: OnBufferRelease: Wake up thread
SIPL_ICP_ISP_0: /dvs/git/dirty/git-master_linux/camera/fusa/sipl/src/core/utils/CNvMThread.cpp: 148: m_Func: Calling ThreadFunc for thread:SIPL_ICP_ISP_0
Main: /dvs/git/dirty/git-master_linux/camera/fusa/sipl/src/core/pipelineMgr/spmgr/pipeline/CNvMSensorPipeline.cpp: 32: OnBufferRelease: Wake up thread
SIPL_ICP_ISP_0: /dvs/git/dirty/git-master_linux/camera/fusa/sipl/src/core/utils/CNvMThread.cpp: 148: m_Func: Calling ThreadFunc for thread:SIPL_ICP_ISP_0
Main: /dvs/git/dirty/git-master_linux/camera/fusa/sipl/src/core/pipelineMgr/spmgr/pipeline/CNvMSensorPipeline.cpp: 32: OnBufferRelease: Wake up thread
SIPL_ICP_ISP_0: /dvs/git/dirty/git-master_linux/camera/fusa/sipl/src/core/utils/CNvMThread.cpp: 148: m_Func: Calling ThreadFunc for thread:SIPL_ICP_ISP_0
Main: /dvs/git/dirty/git-master_linux/camera/fusa/sipl/src/core/pipelineMgr/spmgr/pipeline/CNvMSensorPipeline.cpp: 32: OnBufferRelease: Wake up thread
SIPL_ICP_ISP_0: /dvs/git/dirty/git-master_linux/camera/fusa/sipl/src/core/utils/CNvMThread.cpp: 148: m_Func: Calling ThreadFunc for thread:SIPL_ICP_ISP_0
Main: /dvs/git/dirty/git-master_linux/camera/fusa/sipl/src/core/pipelineMgr/spmgr/pipeline/CNvMSensorPipeline.cpp: 32: OnBufferRelease: Wake up thread
SIPL_ICP_ISP_0: /dvs/git/dirty/git-master_linux/camera/fusa/sipl/src/core/utils/CNvMThread.cpp: 148: m_Func: Calling ThreadFunc for thread:SIPL_ICP_ISP_0
Main: /dvs/git/dirty/git-master_linux/camera/fusa/sipl/src/core/pipelineMgr/spmgr/pipeline/CNvMSensorPipeline.cpp: 32: OnBufferRelease: Wake up thread
SIPL_ICP_ISP_0: /dvs/git/dirty/git-master_linux/camera/fusa/sipl/src/core/utils/CNvMThread.cpp: 148: m_Func: Calling ThreadFunc for thread:SIPL_ICP_ISP_0
Main: /dvs/git/dirty/git-master_linux/camera/fusa/sipl/src/core/pipelineMgr/spmgr/pipeline/CNvMSensorPipeline.cpp: 381: RegisterImageBuffer: Creating ISP[2] buffer pool of size: 4
Main: /dvs/git/dirty/git-master_linux/camera/fusa/sipl/src/core/utils/CNvMBufferPool.hpp: 112: Init: Creating buffer pool with 4 buffers
Main: /dvs/git/dirty/git-master_linux/camera/fusa/sipl/src/core/pipelineMgr/spmgr/pipeline/CNvMSensorPipeline.cpp: 32: OnBufferRelease: Wake up thread
SIPL_ICP_ISP_0: /dvs/git/dirty/git-master_linux/camera/fusa/sipl/src/core/utils/CNvMThread.cpp: 148: m_Func: Calling ThreadFunc for thread:SIPL_ICP_ISP_0
Main: /dvs/git/dirty/git-master_linux/camera/fusa/sipl/src/core/pipelineMgr/spmgr/pipeline/CNvMSensorPipeline.cpp: 32: OnBufferRelease: Wake up thread
SIPL_ICP_ISP_0: /dvs/git/dirty/git-master_linux/camera/fusa/sipl/src/core/utils/CNvMThread.cpp: 148: m_Func: Calling ThreadFunc for thread:SIPL_ICP_ISP_0
Main: /dvs/git/dirty/git-master_linux/camera/fusa/sipl/src/core/pipelineMgr/spmgr/pipeline/CNvMSensorPipeline.cpp: 32: OnBufferRelease: Wake up thread
SIPL_ICP_ISP_0: /dvs/git/dirty/git-master_linux/camera/fusa/sipl/src/core/utils/CNvMThread.cpp: 148: m_Func: Calling ThreadFunc for thread:SIPL_ICP_ISP_0
Main: /dvs/git/dirty/git-master_linux/camera/fusa/sipl/src/core/pipelineMgr/spmgr/pipeline/CNvMSensorPipeline.cpp: 32: OnBufferRelease: Wake up thread
SIPL_ICP_ISP_0: /dvs/git/dirty/git-master_linux/camera/fusa/sipl/src/core/utils/CNvMThread.cpp: 148: m_Func: Calling ThreadFunc for thread:SIPL_ICP_ISP_0
nvsipl_camera: File “/opt/nvidia/nvmedia/nit/SF3324.nito” not found

nvsipl_camera: Opened NITO file for module “SF3324”, file name: “/opt/nvidia/nvmedia/nit/sf3324.nito”
nvsipl_camera: data from NITO file loaded for module “SF3324”

Retrieving metadata from NITO file for sensorID 0
Main: /dvs/git/dirty/git-master_linux/camera/fusa/sipl/src/core/utils/nitoUtils.hpp: 58: ConvertGetNitoMetadataStatus: Call to fetchNitoMetadata API returned code:0, successful metadata extraction
Total number of knobsets in NITO file is 2
For Parameter Set:1
Parameter Set ID
0x860xaa0xb60xab-0xd00xa7-0x890x4a-0x220x8a0xf00xf90xd00xda0x240xe2
Parameter Set Schema Hash
0x8a0x990xb5000x7f0x800x100xe80x530x960xcf0x260xbc0x910x300xf10xc0xd10x100x240x5d0x160x660x350x540x70xc20x730x9c0x660xda0x8c
Parameter Set Data Hash
0xfb0x990xa00xd50xb30x5b0xa60xdf0x690xe10x1b0x9b0x870x720x790x1e0xf30x670xac0x130x290x460x460x9f0xdd0xd00x560xb90xf50xe60x700xd8
For Parameter Set:0x2
Parameter Set ID
0x8c0x2b0xcc0x48-0x960xb6-0x220x47-0x620x920xbe0xc80xcf0xb30x1d0x65
Parameter Set Schema Hash
0xd70x9f0x900x6c0x4f0x10xca0x840x530x330xe10x920x960x1c0x3e0x1f0x410x30xc90x420xa50x9d0x530x8f0xcc0x910xa30xb20x810xad0xde0xcf
Parameter Set Data Hash
0x910xf90x6e0xa00x6c0x830xf50x680x7a0xe10x130x950x6b0x890xac0xdb0xea0x9a0x3d0x950x3d0x670x560xa70xc70x670xb90x630x300xd10x320x56

nvsipl_camera: ERROR: SetSiplControl(NV) failed for ISP output of sensor:0

nvsipl_camera: Queue timeout

nvsipl_camera: Queue timeout

nvsipl_camera: Queue timeout

nvsipl_camera: Queue timeout

Main: /dvs/git/dirty/git-master_linux/camera/fusa/sipl/src/core/pipelineMgr/spmgr/pipeline/CNvMSensorPipeline.cpp: 886: Deinit: Quit the thread

From the message, we guess the error must related the function SetSiplControl(), but this function was not open source,.
So could you help us to fix this error!

Thank you very much

Hi @ying.chen7
Per the DRIVE AGX Orin table, if you’re using Sekonix SF3324, it is compatible with 6.0.4 and supported by Onsemi.

If you’re working on a custom camera module, it’s out of the scope of SDK and not supported via the forum. Please discuss it with your nvidia representative for it. Thanks.

Hey quick follow up question to this, what happened to Sekonix SF3324 being compatible with 6.0.4? I no longer see that listed but instead a “Contact Vendor” notice. I also do not see the drivers on the Drive AGX Orin unit anywhere.

Its drivers are maintained by Onsemi for Orin.

Just reached out to both OnSemi and Sekonix and neither of them have drivers for the Drive AGX Orin unit at this time. Does Nvidia have an alternative solution? I’m a bit confused why cameras would be listed as supported with vendors if neither vendor actually has drivers for said device.

@eolson seeing we are offline addressing the support issue with you. Hope we will figure out this soon. Thanks.

@eolson offline provided you with the correct Onsemi contact. Please check your private message. Thanks.