MAX96705 GMSL Camera Driver on Jetson (It's GMSL1, Not GMSL2)
jetsongmslmax96705camera driverv4l2serializer

MAX96705 GMSL Camera Driver on Jetson (It's GMSL1, Not GMSL2)

Aaron Angulo ·

If you are searching for a GMSL2 driver for the MAX96705 and coming up empty, the reason is that MAX96705 is not GMSL2 — it is first-generation GMSL. GMSL2 uses a completely different chip family. This distinction matters because the driver approach, bandwidth limits, and cable requirements are all different. What follows covers bringing up a GMSL1 camera chain with MAX96705/MAX9286 on NVIDIA Jetson.

Key Insights

  • MAX96705 is a GMSL1 (first-generation) serializer rated at 3.12 Gbps — not GMSL2
  • GMSL2 serializers are MAX9295A (single) and MAX96717 (single with more features); the deserializers are MAX9296A and MAX96718
  • The MAX9286 (GMSL1 deserializer) has had upstream Linux kernel support since v5.1; GMSL2 MAX9296A support came later
  • On Jetson, the driver stack is: MAX9286 deserializer driver → V4L2 subdevice for the sensor → nvarguscamerasrc or v4l2src
  • GMSL1 link-lock failure and I2C passthrough to the sensor are the two most common bring-up problems

GMSL1 vs GMSL2: understanding the difference

Maxim Integrated (now part of Analog Devices) has produced two generations of GMSL:

FeatureGMSL1GMSL2
SerializerMAX96705, MAX96707MAX9295A, MAX96717
DeserializerMAX9286, MAX96706MAX9296A, MAX96718, MAX96792
Bandwidth3.12 Gbps3 Gbps or 6 Gbps
CableStandard coax or STPStandard coax or STP
I2C tunnelingYesYes
Linux kernel driverupstream since v5.1partial upstream, mostly BSP
Typical useAutomotive cameras, industrialNewer automotive, higher-res

The MAX9286 is a 4-camera GMSL1 deserializer. The MAX96705 is the single-channel serializer that sits at the camera. They communicate over coaxial cable carrying both video data and reverse-channel power and I2C.

How the Jetson driver stack works

On Jetson, the camera side sees a standard CSI-2 interface coming from the MAX9286 deserializer. The GMSL chain is transparent to the Tegra ISP — from the Jetson’s perspective, it is just another CSI camera after the deserializer handles link negotiation.

The driver stack:

  1. MAX9286 driver handles link negotiation, I2C passthrough to sensors behind the serializer, and routes video from each camera to a V4L2 subdevice
  2. Sensor driver (e.g., IMX327, OV10640) registers via the deserializer’s I2C gateway
  3. V4L2 / Argus captures from the resulting /dev/video nodes

The DTS for this setup is more complex than a direct CSI camera. The MAX9286 deserializer node appears in the I2C bus, and each camera port under it describes both the serializer and the sensor, with the sensor’s I2C address translated through the deserializer’s alias mechanism.

Bring-up sequence

The same four-layer debugging approach applies here, with two additional GMSL-specific steps:

Step 1: Verify power and I2C

# Confirm MAX9286 is visible on the Jetson I2C bus
i2cdetect -y 2  # adjust bus number

# Expected output: MAX9286 at its configured address (typically 0x48 or 0x2c)

Step 2: Check GMSL link lock

dmesg | grep -i max9286

A successful bring-up looks like:

max9286 2-0048: Found 4 cameras
max9286 2-0048: camera 0 address 0x40: IMX327

A link-lock failure looks like:

max9286 2-0048: Unable to lock GMSL link

Link-lock failures are most often caused by cable problems (wrong impedance, damaged coax, poor connector termination), power issues on the serializer side, or incorrect GMSL configuration registers. Check the physical cable first.

Step 3: Verify sensor I2C passthrough

Once the link has locked, the MAX9286 exposes a virtual I2C bus for each camera port. The sensor behind each MAX96705 should appear on this bus at its translated address:

# Read from sensor through the deserializer I2C passthrough
i2ctransfer -y <alias-bus> r2@0x40

Step 4: V4L2 and Argus capture

Once the sensor I2C is working and the DTS is correctly configured:

# Verify V4L2 node exists
v4l2-ctl --list-devices

# Capture test frames
v4l2-ctl -d /dev/video0 --stream-mmap --stream-count=10

# Argus pipeline
gst-launch-1.0 nvarguscamerasrc sensor-id=0 ! \
  video/x-raw(memory:NVMM),format=NV12 ! \
  nvvidconv ! nv3dsink sync=false

Common problems

Coax cable quality. GMSL1 is more sensitive to cable quality than you might expect. A cable that passes DC continuity can still fail GMSL bring-up if the impedance is wrong or there is too much capacitance. Use recommended cable specifications from the MAX9286 datasheet.

Conflicting I2C addresses. When multiple MAX96705 serializers share the same I2C bus through the deserializer, the deserializer remaps each serializer to a unique address. The initial broadcast address (0x40 for MAX96705) must not conflict with any other device on the bus during bring-up. The DTS must configure the alias addresses correctly.

Power sequencing. The MAX9286 requires the MAXIM_ENABLE pin and the serializer power supplies to sequence correctly. If the deserializer probes before the serializer has power, the link will not lock and the driver may fail silently.

For newer designs, GMSL2 bring-up with MAX9295/MAX9296A on Jetson Orin covers the GMSL2 equivalent of this process with the newer chip family and its different driver architecture.

Frequently Asked Questions

Is MAX96705 a GMSL or GMSL2 serializer?

MAX96705 is a GMSL1 (first-generation) serializer, not GMSL2. GMSL1 operates at 3.12 Gbps. GMSL2 uses different chips: MAX9295A (serializer) and MAX9296A (deserializer).

What deserializer pairs with MAX96705?

MAX96705 pairs with MAX9286 (4-channel GMSL1 deserializer) or MAX96706 (single-channel). Do not confuse these with MAX9296A or MAX96792, which are GMSL2 deserializers.

Is there a Linux kernel driver for MAX96705 and MAX9286?

Yes. A MAX9286 driver with MAX96705 support has been upstream in the Linux kernel since v5.1 under drivers/media/i2c/max9286.c.

Check dmesg for max9286 messages after driver probe. A successful lock shows the number of cameras detected. A failed lock shows a link-lock error. Check the physical cable first — it is the most common cause.

When should I upgrade from GMSL1 to GMSL2?

Upgrade when you need more bandwidth than 3.12 Gbps per lane or are starting a new hardware design. For existing GMSL1 hardware, the upgrade requires replacing camera modules, serializers, and the deserializer — generally only practical for a new product generation.


ProventusNova has shipped GMSL1 and GMSL2 camera integrations on Jetson. Talk to us if you are stuck on a serializer bring-up.

NVIDIA Jetson Expert Support

Stuck on a Jetson bring-up?

We've debugged this failure mode before. BSP, device tree, camera pipelines, OTA, most blockers clear in the first session. No long retainers. No guessing.

Frequently Asked Questions

Is MAX96705 a GMSL or GMSL2 serializer?

MAX96705 is a GMSL1 serializer, not GMSL2. GMSL1 operates at 3.12 Gbps and is the first-generation Maxim Integrated coax camera interface. GMSL2 operates at 3 or 6 Gbps and uses different chips: MAX9295A (serializer) and MAX9296A (deserializer).

What deserializer pairs with MAX96705?

MAX96705 (serializer, camera side) typically pairs with MAX9286 (4-channel GMSL1 deserializer, Jetson side) or MAX96706 (single-channel GMSL1 deserializer). Do not confuse these with MAX9296A/MAX96792, which are GMSL2 deserializers.

Is there a Linux kernel driver for MAX96705 and MAX9286?

Yes. A MAX9286 deserializer driver with MAX96705 support has been upstream in the Linux kernel since v5.1 (under drivers/media/i2c/max9286.c). For Jetson with L4T, you can use this driver via OOT injection or find NVIDIA's downstream BSP patches for it.

How do I check if the GMSL link has locked between MAX96705 and MAX9286 on Jetson?

Check dmesg for max9286 messages after driver probe. A successful link lock will show the number of cameras detected and their I2C addresses. A failed lock shows 'GMSL link not locked' or similar. Also check that the coax cable is properly connected — GMSL is sensitive to cable quality and termination.

When should I upgrade from GMSL1 to GMSL2?

Upgrade to GMSL2 (MAX9295/MAX9296A) when you need more than 3.12 Gbps per lane, require longer cable distances at higher resolutions, or are starting a new design. For existing GMSL1 hardware with MAX96705, upgrading the cable harness and camera modules is a significant hardware revision — generally only worth it for new product generations.

Aarón Angulo, Co-Founder & CEO at ProventusNova

Written by

Aarón Angulo

Co-Founder & CEO · ProventusNova

Obsessed with client outcomes. Aarón ensures every engagement delivers real results, on time, on scope, no exceptions.

Connect on LinkedIn