Integrating GMSL2 camera to Nvidia Xavier

Looking for support to integrate AR0231/MAX9295A GMSL2 camera to Nvidia. Are there some samples on how to integrate a new serialzier on the Nvmedia stack ? Looking for insights/recommendation on where to inject the code ? is it driver level or SAL level ?

Dear divya sharma,
The <PATH_TO_DriveSDK>/drive-t186ref-linux/samples/nvmedia/ext_dev_prgm/drv has drivers files which are supported in NvMedia and which in turn supported by Driveworks. If you want to add a new camera support, you need to add driver code files in the folder path I mentioned and check running NVMedia samples.

Hi Siva

Thanks for the response. I would really appreciate detailed instructions on how these layers are communicating with each other. My understanding of capture sample is it makes calls to NvMedia API, from there how is it routing to /ext_dev_prgm/drv ? Does NvMedia needs to be recompiled after inserting this new driver for the serializer ?

Dear Divyasharma,
If you want new combination apart from default provided configurations, you need to add files to /ext_dev_prgm/drv and recompile to get a new .so file and can check running samples in NVMedia. You can only work with NVMedia APIs. This does not help the new sensor to work using Driveworks. DW is configured to work with defualt sensor+ser+deser combinations.

If you want support for new Sensor+serializer+deserilizer combination on Driveworks, You need to file a bug. Please login to https://developer.nvidia.com/drive with your credentials. Please check MyAccount->MyBugs->Submit a new bug to file bug.
Please share ID here to follow up

Is there a block diagram showing the deserializer used in the AGX platform? I see references to MAX96712, but this is not a GMSL2 deserializer. Which ports support GMSL2 in GMSL2 mode?

Bug ID# 2648213 created with details of what I’m trying to achieve.

Thanks!

EDIT: this IS a GMSL2 deserializer - I mixed up MAX96712 with MAX96711. Is there an example GMSL2 camera conf file that I can reference?

any updates about this?

I also want to get support for AR0231/MAX9295A GMSL2.
I have tried implemented the driver under nvmedia/ext_dev_prgm.
Bellow is the detail logs for running nvmipp_raw.

# ./nvmipp_raw -cf ddpx-a.conf -c SF3324-CSI-A
Max96712 Rev 2 detected!
SetupConfigLink: Check deserializer limitations
ChkMAX96712Limitaions: Read the deserializer revision number
SetupConfigLink: Check deserializer limitations finished
SetupConfigLink: Select I2C port over the link
SetupConfigLink: Select I2C port over the link finished
SetupConfigLink: Enabling link: 0
MAX96712 Rev 2 manual adaptation on the link 0(0)
SetupConfigLink: Disable all forward channels
SetupConfigLink: Disable all forward channels finished
SetupConfigLink: Enable all forward channels
SetupConfigLink: Enable all forward channels finished
SetupConfigLink: Enable packet based control channel
SetupConfigLink: Disable DE
SetupConfigLink: Enable periodic AEQ
MAX96712: Enable periodic AEQ on Link 0
SetupVideoLink: Replicate output
SetupVideoLink: Set MIPI output mode
SetupVideoLink: Set data type
SetupVideoLink: Update mapping table
SetupVideoLink: Enable specific link
SetupVideoLink: Check config link lock
SetupVideoLink: Check serializer is present
MAX9295: Revision 8 detected!
SetupVideoLink: Set unique address with broadcast address
SetupVideoLink: Set address translation for the serializer
SetupVideoLink: Check sensor is present
nvmedia: ERROR: [AR0231RCCBCheckPresence:721] Chip Id register read failed
nvmedia: ERROR: SetupVideoLink: Image sensor(0) device is not present, err = 89(Function not implemented)
nvmedia: ERROR: Init: Failed to setup video link
nvmedia: ERROR: IPPInit: Failed to initialize ISC devices
nvmedia: ERROR: main: Error in IPPInit
[NvMediaIPPManagerDestroy:192] Bad parameter

It seems fine until ERROR: [AR0231RCCBCheckPresence:721] Chip Id register read failed.
Any suggestions?