How to set max96712‘s speed to 3Gbps in NvSIPL

Please provide the following info (check/uncheck the boxes after clicking “+ Create Topic”):
Software Version
[*] DRIVE OS Linux 5.2.0
DRIVE OS Linux 5.2.0 and DriveWorks 3.5
NVIDIA DRIVE™ Software 10.0 (Linux)
NVIDIA DRIVE™ Software 9.0 (Linux)
other DRIVE OS version
other

Target Operating System
[*] Linux
QNX
other

Hardware Platform
[*] NVIDIA DRIVE™ AGX Xavier DevKit (E3550)
NVIDIA DRIVE™ AGX Pegasus DevKit (E3550)
other

SDK Manager Version
1.5.0.7774
other

Host Machine Version
[*] native Ubuntu 18.04
other
Hi, team,
I am trying to add serializer Max96717F camera in NvSIPL. Max967167F only works in 3Gbps mode. I try to modify CNvMMax96712.cpp, but it looks not worked. I think Nv only opensource CNvMMax96712.cpp but not use it in the opensource part. And CNvMMax96712.cpp already build in libnvsipl_devblk.so right? So how can i set Max96712 in 3Gbps mode.

Hi @wangxuhui1 ,

It was built in libnvsipl_devblk_drv_*.so. For configuring MAX96712, you may need to contact with MAXIM. Thanks.

Hi,@VickNV , it’s not MAXIM’s issue. I think there is a bug in NvSIPL.

  1. NvSIPL’s framework support GMSL2 and GMSL1, and GMSL2 only support 6Gbps, But GMSL2 has 6Gbps and 3Gbps , and in function
    static NvMediaStatus SetLinkMode( DevBlkCDIDevice *handle, LinkMAX96712 link)
    only can choose GMSL1 3Gbps and GMSL2 6Gbps. There is no option for GMSL2 3Gbps.
  2. if i set LINK_MODE_GMSL1 in function CNvMDeserializer::LinkMode CNvMMAX96712_96XXXCameraModule::GetLinkMode()
    the program will excute the function
    NvMediaStatus MAX96712SetDefaults( DevBlkCDIDevice *handle)
    If i set LINK_MODE_GMSL2 , the function wont be excuted. Thats super Confusing.

It will be available in the upcoming release.

Please check if CNvMMax96712::Init() is called with LINK_MODE_GMSL2 set.

Hi, @VickNV

  1. Whats the estimated release time of upcoming release?

  2. CNvMMax96712::Init() is not called in both MODE set. The funciton MAX96712CheckLink looks like only called in LINK_MODE_GMSL1 mode. I think there is a copy of class CNvMMax96712 in libnvsipl_devblk.so ? Because i can grep evey printf message in libnvsipl_devblk.so.

Release schedule won’t be conveyed in the forum. Maybe you can check it with your nvidia rep.

Isn’t it called in CNvMMax96712.cpp for both GMSL1/2?

SIPLStatus CNvMMax96712::CheckLinkLock(uint8_t linkMask) {                      
...
        if (item.linkMode == LinkMode::LINK_MODE_GMSL2) {                       
...
                nvmStatus = MAX96712CheckLink(m_upCDIDevice.get(),              
                                              GetMAX96712Link(linkIndex),       
                                              CDI_MAX96712_LINK_LOCK_GMSL2,     
                                              true);                            
...
        } else if (item.linkMode == LinkMode::LINK_MODE_GMSL1) {                
...
            nvmStatus = MAX96712CheckLink(m_upCDIDevice.get(),                  
                                          GetMAX96712Link(linkIndex),           
                                          CDI_MAX96712_LINK_LOCK_GMSL1_CONFIG,  
                                          false);                               
...
        }...

@VickNV Yes, SIPLStatus CNvMMax96712::CheckLinkLock(uint8_t linkMask) never called. I tried print log in that function and gdb debug make break for CheckLinkLock. They both show nothing

The function is also called in
~/nvidia/nvidia_sdk/DRIVE_OS_5.2.0_SDK_HW_Linux_OS_DDPX/DRIVEOS/drive-t186ref-linux/samples/nvmedia/nvsipl/devblk/cameramodule/MAX96712cameramodule/CNvMTransportLink_Max96712_*.cpp.
You can have a check on them.