How to integrate mipi-csi2 camera to carrier board

Hi,

I’m developing Jetson AGX / NX based multiple camera product.
Currently, the development on Dev Kit is successful so I’m moving to production phase.
I picked one Carrier board for the Jetson AGX module from A(Aetina) company,
and two type of multiple MIPI CSI2 camera modules from B(e-consystem) and C(Basler) company.

I have no experience on linux device tree modification, board support package modification … etc.
I could follow tutorials with Dev Kit and succeded to make it work, however when it comes to Carrier board, I need more deep knowledge.

*Here are what I recieve from the venders.

  • Board Support Package(BSP) for the carrier board from A. I can flash the board with Jetpack or copied image.
    I can see its .dtb files.
    automatic setup script running on host to update nvidia BSP folder
  • Camera Enable Package[CEP] for the camera module from B.
    .dtb files are included.
    automatic setup script running on jetson
  • CEP for the camera module from C.
    XXX-overlay.dts files are included.
    automatic setup script running on jetson

*Status

  • when I use CEP on Jetson Dev Kit. both cameras from B and C are working.
  • when I use CEP on the Carrier board from A. Device tree is mixed so that some hardwares are not working.
    ex) USB ports are not detected / Wifi module is not detected / Camera C is not detected
    Camera B is detected / HDMI is detected … etc

*On Going

  • The Company B and C recieved BSP from A and try to integrate their CEP with BSP.
  • I’m trying to integrate the .dtb files from CEP to BSP.

As a begginer in the embedded system or linux device, I need more infomation.
so here are some questions,

  1. I want to enable the camera from the BSP from A. my plan is to modify .dtb on the carrier board based on .dtb and .dts files from B and C. Does it make sense? is it a right way to do?

  2. all I have is .dtb files from A,B,C. and each hardware. is it enough resource for the integration?

  3. as a begginer it is quite hard topic… is there any course or tutorial related to this?

You can start from l4t document first. There’s sensor programing guide and how to build the kernel/dtb from source. Also you can use dtc to decompile the dtb to dts, but it’s better if can get dts from vendor.

https://docs.nvidia.com/jetson/l4t/index.html#page/Tegra%20Linux%20Driver%20Package%20Development%20Guide/kernel_custom.html#