How many slave accesses are possible from Xavier B?

Please provide the following info:
Hardware Platform: DRIVE AGX Xavier™ Developer Kit
Software Version: DRIVE Software 10
Host Machine Version: native Ubuntu 18.04
SDK Manager Version: 1.0.1.5538

Hi all,

In our project we testing the master-slave access using SIPL to capture from a Sony IMX390.

We have already tested the Master (Xavier A) and Slave mode (Xavier B) with an SIPL wrapper that we implemented based on the example application provided in Drive OS but we have a quick question related to slave mode limitations.

How many slave access are able to run on Xavier B?

From out tests it seems that there is only possible to use one slave process on Xavier B, Is this a know issue or limitation? The documentation doesn’t mention this case.

Just a quick example using the example application provided by Drive OS:

Master (Xavier A):

/home/nvidia/drive-t186ref-linux/samples/nvmedia/nvsipl/test/camera/nvsipl_camera --platform-config “IMX390_CPHY_x4” --link-enable-masks “0x0000 0x0000 0x0000 0x0001” --showfps

Slave1 (Xavier B, this works):

/home/nvidia/drive-t186ref-linux/samples/nvmedia/nvsipl/test/camera/nvsipl_camera --platform-config “IMX390_CPHY_x4” --link-enable-masks “0x0000 0x0000 0x0000 0x0001” --enableSlave --showfps

Slave2 (Xavier B, this doesn’t work):

/home/nvidia/drive-t186ref-linux/samples/nvmedia/nvsipl/test/camera/nvsipl_camera --platform-config “IMX390_CPHY_x4” --link-enable-masks “0x0000 0x0000 0x0000 0x0001” --enableSlave --showfps

Output error log:

iscRootDevOpen: can’t open /dev/isc-mgr.7.g - Device or resource busy
NvMediaISCRootDeviceCreate: Unable to open root device
libnvsipl_devblk.so: CNvMDeviceBlock.cpp: 135: Init: NvMediaISCRootDeviceCreate failed!
libnvsipl.so: CNvMDeviceBlockMgr.hpp: 90: ThreadFunc: ThreadCreate failed. (7f)
libnvsipl.so: CNvMDeviceBlockMgr.cpp: 83: Init: Failed to initialize device block:0
libnvsipl.so: CNvMCamera.cpp: 169: Init: CNvMCamera::Init failed! with error: 7f
nvsipl_camera: ERROR: Master initialization failed. status: 127

libnvsipl_devblk.so: CNvMDeviceBlock.cpp: 226: Stop: CNvMDeviceBlock has not been started
libnvsipl.so: CNvMDeviceBlockMgr.cpp: 132: Stop: Deviceblock fails to stop
libnvsipl.so: CNvMCamera.cpp: 259: Stop: m_upDeviceBlockMgr fails to stop

Well, it indicates “Device or resource busy” so it seems that only one slave access is possible but it is not clear if this is an expected issue.

I expected multiple slave accesses from Xavier B but I’m not sue if it is a limitation on SIPL side or if it can be improved somehow to support multiple slave accesses.

I found that it is possible to disconnect and reconnect slave processes to the master process but only one slave process at the time.

Best Regards.

Dear @greivin.fallas,
You are right. When camera in in use by one process, another process can not access it. it throws "Device or resource busy” error.