GMSL Add-in-Card Design Overview#

A GMSL product design based on Intel® Core™ Ultra Series 1 and 2 (Arrow Lake-U/H) or 12th/13th/14th Gen Intel® Core™ products can be illustrated as follows:

GMSL overview architecture

  • The GMSL2 camera modules, designed by third-party GMSL2 camera vendors, combine a camera sensor and GMSL2 serializer, for example MAX9295.

  • The Add-in-Card (AIC), designed by either ODM/OEMs or third-party GMSL2 camera vendors, provides multiple GMSL2 deserializers, for example MAX9296A.

  • The Intel®-based motherboard, designed by ODM/OEMs, provides the Mobile Industry Processor Interface (MIPI) Camera Serial Interface (CSI) exposed by Intel® Core™ Ultra Series 1 and 2 (Arrow Lake-U/H) and 12th/13th/14th Gen Intel® Core™ products.

There are two design approaches for GMSL Add-in-Card (AIC):

How To Detect in I2C Bus to GMSL2 Deserializer and Serializer ACPI Devices Mapping#

The best way to detect I2C bus to GMSL2 Deserializer and Serializer ACPI devices mapping is by using the i2cdetect command-line tool from the i2c-tools package on Linux.

i2cdetect -y <i2c_bus_number>

Here, <i2c_bus_number> is the I2C bus number assigned to GMSL2 Deserializer and Serializer ACPI devices.

Below is an example output from i2cdetect for GMSL2 Deserializer and Serializer ACPI devices mapping:

i2cdetect -r -y 0 0x20 0x6f
       0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
  00:
  10:             -- -- -- -- -- -- 1a -- -- -- -- --
  20: -- -- -- -- -- -- -- 27 -- -- -- -- -- -- -- --
  30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
  40: 40 -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
  50: -- -- -- -- 54 -- -- -- -- -- -- -- 5c -- -- --
  60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
  70:
i2cdetect -r -y 1 0x20 0x6f
      0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
  00:
  10:             -- -- -- -- -- -- -- -- -- -- -- --
  20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
  30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
  40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
  50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
  60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
  70:

As you can see, the sample devices are on I2C bus 0 at addresses 0x1a, 0x27, 0x40, and 0x54, corresponding to the GMSL2 Deserializer and Serializer ACPI devices configured on the system.

GMSL2 Driver#

Prerequisites for the GMSL driver can be found in the ECI APT repository.

Follow the Set up ECI APT Repository guide first.

Once the ECI APT repository is set up, install the GMSL driver with:

sudo apt-get update
sudo apt-get install intel-mipi-gmsl-dkms

Select the max929x or max967xx deserializer to compile the required Linux V4L2 I2C sensor driver.

Reboot the system and enter BIOS/UEFI settings. Navigate to the ACPI configuration section and verify that the GMSL SerDes device is listed and enabled. If it is not present, update the system firmware or consult the hardware vendor.

Go into UEFI Advanced settings.

UEFI advanced

Navigate to System Agent (SA).

UEFI system agent

Navigate to MIPI Configuration.

UEFI MIPI configuration

Ensure GMSL SerDes is enabled.

Enable camera

After enabling the GMSL SerDes device in UEFI, click link options to adjust the settings for the GMSL SerDes link.

Boot the system into the OS.