diff --git a/README.md b/README.md
index 43ee673f..713da4a4 100644
--- a/README.md
+++ b/README.md
@@ -193,8 +193,8 @@ Build and install these software dependencies in your target system:
| IPU Version | ipu-camera-bins | ipu-camera-hal | icamerasrc |
|-------------------|------------------------------------------|------------------------------------------|------------------------------------------|
| IPU6EP, IPU6EPMTL | d9421fef539f24fc80c27002d5da753e193b0670 | 5aa9a3bd3d5582667915d93b0128a02953adbbbc | 7517af78f49a18dde6de86042055aa14ebe6d184 |
-| IPU75XA | cead7320d84ee9ade4f60d74e935b16b5a760945 | ef30767553685b83034e42325992a2442c5fcb2c | 7517af78f49a18dde6de86042055aa14ebe6d184 |
-| IPU8 | adf55525ab9d370828723b1ff8bee76ed7a492e8 | fd1efb6f2ef25fd24775a303cc71af6139d797eb | 7517af78f49a18dde6de86042055aa14ebe6d184 |
+| IPU75XA | adf55525ab9d370828723b1ff8bee76ed7a492e8 | a17d17718e8df9e74940fac32beda016836ef43b | 7517af78f49a18dde6de86042055aa14ebe6d184 |
+| IPU8 | adf55525ab9d370828723b1ff8bee76ed7a492e8 | a17d17718e8df9e74940fac32beda016836ef43b | 7517af78f49a18dde6de86042055aa14ebe6d184 |
@@ -226,26 +226,6 @@ Build and install these software dependencies in your target system:
git checkout main
git submodule update --init --recursive
-
- Workaround for IPU7/IPU8 AR0234 RAW sensor
-
-> **Note:** Workaround required for IPU7/IPU8 **RAW sensor** due to tuning dependency.
-
-By default, `ipu7-drivers` submodule tracks the tip of its `main` branch.
-For IPU75XA,
-
- cd ipu7-drivers
- git checkout 44bbc2de71fe5e7a5a7124d4c5e5900e70e13736
- cd ..
-
-For IPU8,
-
- cd ipu7-drivers
- git checkout bed9b71d5be56d0e24c771c7a6ec83fd0a9db433
- cd ..
-
-
-
**Build and install** modules using DKMS
sudo dkms remove ipu-camera-sensor/0.1
@@ -271,7 +251,7 @@ For IPU8,
1. Power cycle target system with sensors connected.
2. Import sensor profile into BIOS, under section `BIOS Configuration Table` in respective userspace.md.
- E.g. ISX031 GMSL using [userspace-gmsl.md](doc/isx031/userspace-gmsl.md#acpi-setup---bios-configuration)
- - E.g. AR0234 MIPI using [userspace-mipi.md](doc/ar0234/userspace-mipi.md#bios-configuration-table)
+ - E.g. AR0234 MIPI using [userspace-mipi.md](doc/ar0234/userspace-mipi.md#acpi-setup---bios-configuration)
(back to Setup Procedure)
@@ -300,7 +280,7 @@ ASL Configuration is added since release/26Q2.1.
1. Reference stream verification for different sensor setup can be found in [doc/{sensor}](doc/) and respective userspace.md files.
- E.g. ISX031 GMSL using [userspace-gmsl.md](doc/isx031/userspace-gmsl.md#stream-verification)
- - E.g. AR0234 MIPI using [userspace-mipi.md](doc/ar0234/userspace-mipi.md#sample-userspace-command)
+ - E.g. AR0234 MIPI using [userspace-mipi.md](doc/ar0234/userspace-mipi.md#stream-verification)
(back to Setup Procedure)
diff --git a/acpi/ipu7/max96724_mixed_d3_ar0234_isx031.asl b/acpi/ipu7/max96724_mixed_d3_ar0234_isx031.asl
new file mode 100644
index 00000000..91d68d17
--- /dev/null
+++ b/acpi/ipu7/max96724_mixed_d3_ar0234_isx031.asl
@@ -0,0 +1,301 @@
+/*
+ * SPDX-License-Identifier: GPL-2.0
+ * Copyright (c) 2026 Intel Corporation.
+ *
+ * SSDT overlay: Mixed AR0234 + ISX031 GMSL camera configuration on PTL platform.
+ * Two MAX96724 deserializers (DES0, DES1) with CPHY connection to PTL platform.
+ * - DES0 carries two D3 AR0234 cameras and two D3 ISX031 cameras on Links 0..3
+ * - DES1 carries two D3 ISX031 cameras and two D3 AR0234 cameras on Links 0..3
+ * All cameras are fronted by MAX9295A serializers.
+ *
+ * DES-level defines (set per DESx, undef'd at the end of each Device):
+ * DES_PHY_TYPE - DES PHY type (0 for CPHY, 1 for DPHY)
+ * DES_I2C_ADDR - DES I2C slave address (e.g. 0x0027 for MAX96724)
+ * DES_LANES - Number of MIPI data lanes (e.g. 2, 4)
+ * DES_INTERNAL_PHY - DES internal PHY (PHY0 = 4, PHY1 = 5, PHY2 = 6, PHY3 = 7)
+ * DES_TO_MIPI_PORT - DES connected to IPU0 MIPI port (e.g. 0/1/2/3)
+ * DES_I2C_BUS - DES I2C bus path (e.g. "\\_SB.PC00.I2C1")
+ * DES_PATH - DES ACPI path string (e.g. "\\_SB.PC00.DES0")
+ * DES_REF - DES ACPI namespace reference (e.g. \_SB.PC00.DES0)
+ *
+ * Channel-level defines (set per CHxx):
+ * DESCH_LINK_NUM - Channel/link number (0..3) - used for _ADR, reg, SER remote port
+ * DESCH_CH - Channel device name (e.g. CH00)
+ * DESCH_SER - Serializer device name (e.g. SER0)
+ * DESCH_CAM - Camera device name (e.g. CAM0)
+ * DESCH_SER_I2C - SER I2C slave address (e.g. 0x40 for MAX9295A)
+ * DESCH_CH_PATH - CHxx ACPI path string (e.g. "\\_SB.PC00.DES0.CH00")
+ * DESCH_SER_PATH - SERx ACPI path string (e.g. "\\_SB.PC00.DES0.CH00.SER0")
+ * DESCH_SER_REF - SERx ACPI namespace reference (e.g. \_SB.PC00.DES0.CH00.SER0)
+ * DESCH_SER_GPIOREF - SERx GPIO controller reference (e.g. ^^SER0)
+ * CAM_ALIAS - Camera alias I2C address used in i2c-alias-pool of the SER
+ * CAM_LANES - Number of MIPI data lanes for the camera (e.g. 2, 4)
+ */
+
+DefinitionBlock ("", "SSDT", 2, "", "IMG_IPU", 0x20260904)
+{
+ External (_SB.PC00, DeviceObj) // Root device
+
+ Include ("_ipu.asl")
+
+ Scope (\_SB.PC00)
+ {
+ Device (DES0)
+ {
+ /*
+ * For detailed explanation of each define,
+ * please refer to the comment block at the top of this file.
+ */
+
+ // DES-level defines for DES0.
+ #define DES_PHY_TYPE 0
+ #define DES_I2C_ADDR 0x0027
+ #define DES_LANES 2
+ #define DES_INTERNAL_PHY 6
+ #define DES_TO_MIPI_PORT 0
+ #define DES_I2C_BUS "\\_SB.PC00.I2C1"
+ #define DES_PATH "\\_SB.PC00.DES0"
+ #define DES_REF \_SB.PC00.DES0
+ #include "_des_common_max96724.asl"
+
+ // Channel-level defines for Channel 0 (D3 AR0234)
+ #define DESCH_LINK_NUM 0
+ #define DESCH_CH CH00
+ #define DESCH_SER SER0
+ #define DESCH_CAM CAM0
+ #define DESCH_SER_I2C 0x40
+ #define DESCH_CH_PATH "\\_SB.PC00.DES0.CH00"
+ #define DESCH_SER_PATH "\\_SB.PC00.DES0.CH00.SER0"
+ #define DESCH_SER_REF \_SB.PC00.DES0.CH00.SER0
+ #define DESCH_SER_GPIOREF ^^SER0
+ #define CAM_ALIAS 0x54
+ #define CAM_LANES 2
+ #include "_des_ch_common_ar0234.asl"
+ #undef DESCH_LINK_NUM
+ #undef DESCH_CH
+ #undef DESCH_SER
+ #undef DESCH_CAM
+ #undef DESCH_SER_I2C
+ #undef DESCH_CH_PATH
+ #undef DESCH_SER_PATH
+ #undef DESCH_SER_REF
+ #undef DESCH_SER_GPIOREF
+ #undef CAM_ALIAS
+ #undef CAM_LANES
+
+ // Channel-level defines for Channel 1 (D3 AR0234)
+ #define DESCH_LINK_NUM 1
+ #define DESCH_CH CH01
+ #define DESCH_SER SER1
+ #define DESCH_CAM CAM1
+ #define DESCH_SER_I2C 0x40
+ #define DESCH_CH_PATH "\\_SB.PC00.DES0.CH01"
+ #define DESCH_SER_PATH "\\_SB.PC00.DES0.CH01.SER1"
+ #define DESCH_SER_REF \_SB.PC00.DES0.CH01.SER1
+ #define DESCH_SER_GPIOREF ^^SER1
+ #define CAM_ALIAS 0x55
+ #define CAM_LANES 2
+ #include "_des_ch_common_ar0234.asl"
+ #undef DESCH_LINK_NUM
+ #undef DESCH_CH
+ #undef DESCH_SER
+ #undef DESCH_CAM
+ #undef DESCH_SER_I2C
+ #undef DESCH_CH_PATH
+ #undef DESCH_SER_PATH
+ #undef DESCH_SER_REF
+ #undef DESCH_SER_GPIOREF
+ #undef CAM_ALIAS
+ #undef CAM_LANES
+
+ // Channel-level defines for Channel 2 (D3 ISX031)
+ #define DESCH_LINK_NUM 2
+ #define DESCH_CH CH02
+ #define DESCH_SER SER2
+ #define DESCH_CAM CAM2
+ #define DESCH_SER_I2C 0x40
+ #define DESCH_CH_PATH "\\_SB.PC00.DES0.CH02"
+ #define DESCH_SER_PATH "\\_SB.PC00.DES0.CH02.SER2"
+ #define DESCH_SER_REF \_SB.PC00.DES0.CH02.SER2
+ #define DESCH_SER_GPIOREF ^^SER2
+ #define CAM_ALIAS 0x56
+ #define CAM_LANES 4
+ #include "_des_ch_common_isx031.asl"
+ #undef DESCH_LINK_NUM
+ #undef DESCH_CH
+ #undef DESCH_SER
+ #undef DESCH_CAM
+ #undef DESCH_SER_I2C
+ #undef DESCH_CH_PATH
+ #undef DESCH_SER_PATH
+ #undef DESCH_SER_REF
+ #undef DESCH_SER_GPIOREF
+ #undef CAM_ALIAS
+ #undef CAM_LANES
+
+ // Channel-level defines for Channel 3 (D3 ISX031)
+ #define DESCH_LINK_NUM 3
+ #define DESCH_CH CH03
+ #define DESCH_SER SER3
+ #define DESCH_CAM CAM3
+ #define DESCH_SER_I2C 0x40
+ #define DESCH_CH_PATH "\\_SB.PC00.DES0.CH03"
+ #define DESCH_SER_PATH "\\_SB.PC00.DES0.CH03.SER3"
+ #define DESCH_SER_REF \_SB.PC00.DES0.CH03.SER3
+ #define DESCH_SER_GPIOREF ^^SER3
+ #define CAM_ALIAS 0x57
+ #define CAM_LANES 4
+ #include "_des_ch_common_isx031.asl"
+ #undef DESCH_LINK_NUM
+ #undef DESCH_CH
+ #undef DESCH_SER
+ #undef DESCH_CAM
+ #undef DESCH_SER_I2C
+ #undef DESCH_CH_PATH
+ #undef DESCH_SER_PATH
+ #undef DESCH_SER_REF
+ #undef DESCH_SER_GPIOREF
+ #undef CAM_ALIAS
+ #undef CAM_LANES
+
+ // Clean up DES0-level defines
+ #undef DES_PHY_TYPE
+ #undef DES_I2C_ADDR
+ #undef DES_LANES
+ #undef DES_INTERNAL_PHY
+ #undef DES_TO_MIPI_PORT
+ #undef DES_I2C_BUS
+ #undef DES_PATH
+ #undef DES_REF
+ }
+
+ Device (DES1)
+ {
+ /*
+ * For detailed explanation of each define,
+ * please refer to the comment block at the top of this file.
+ */
+
+ // DES-level defines for DES1.
+ #define DES_PHY_TYPE 0
+ #define DES_I2C_ADDR 0x0027
+ #define DES_LANES 2
+ #define DES_INTERNAL_PHY 4
+ #define DES_TO_MIPI_PORT 2
+ #define DES_I2C_BUS "\\_SB.PC00.I2C2"
+ #define DES_PATH "\\_SB.PC00.DES1"
+ #define DES_REF \_SB.PC00.DES1
+ #include "_des_common_max96724.asl"
+
+ // Channel-level defines for Channel 0 (D3 ISX031)
+ #define DESCH_LINK_NUM 0
+ #define DESCH_CH CH00
+ #define DESCH_SER SER0
+ #define DESCH_CAM CAM0
+ #define DESCH_SER_I2C 0x40
+ #define DESCH_CH_PATH "\\_SB.PC00.DES1.CH00"
+ #define DESCH_SER_PATH "\\_SB.PC00.DES1.CH00.SER0"
+ #define DESCH_SER_REF \_SB.PC00.DES1.CH00.SER0
+ #define DESCH_SER_GPIOREF ^^SER0
+ #define CAM_ALIAS 0x54
+ #define CAM_LANES 4
+ #include "_des_ch_common_isx031.asl"
+ #undef DESCH_LINK_NUM
+ #undef DESCH_CH
+ #undef DESCH_SER
+ #undef DESCH_CAM
+ #undef DESCH_SER_I2C
+ #undef DESCH_CH_PATH
+ #undef DESCH_SER_PATH
+ #undef DESCH_SER_REF
+ #undef DESCH_SER_GPIOREF
+ #undef CAM_ALIAS
+ #undef CAM_LANES
+
+ // Channel-level defines for Channel 1 (D3 ISX031)
+ #define DESCH_LINK_NUM 1
+ #define DESCH_CH CH01
+ #define DESCH_SER SER1
+ #define DESCH_CAM CAM1
+ #define DESCH_SER_I2C 0x40
+ #define DESCH_CH_PATH "\\_SB.PC00.DES1.CH01"
+ #define DESCH_SER_PATH "\\_SB.PC00.DES1.CH01.SER1"
+ #define DESCH_SER_REF \_SB.PC00.DES1.CH01.SER1
+ #define DESCH_SER_GPIOREF ^^SER1
+ #define CAM_ALIAS 0x55
+ #define CAM_LANES 4
+ #include "_des_ch_common_isx031.asl"
+ #undef DESCH_LINK_NUM
+ #undef DESCH_CH
+ #undef DESCH_SER
+ #undef DESCH_CAM
+ #undef DESCH_SER_I2C
+ #undef DESCH_CH_PATH
+ #undef DESCH_SER_PATH
+ #undef DESCH_SER_REF
+ #undef DESCH_SER_GPIOREF
+ #undef CAM_ALIAS
+ #undef CAM_LANES
+
+ // Channel-level defines for Channel 2 (D3 AR0234)
+ #define DESCH_LINK_NUM 2
+ #define DESCH_CH CH02
+ #define DESCH_SER SER2
+ #define DESCH_CAM CAM2
+ #define DESCH_SER_I2C 0x40
+ #define DESCH_CH_PATH "\\_SB.PC00.DES1.CH02"
+ #define DESCH_SER_PATH "\\_SB.PC00.DES1.CH02.SER2"
+ #define DESCH_SER_REF \_SB.PC00.DES1.CH02.SER2
+ #define DESCH_SER_GPIOREF ^^SER2
+ #define CAM_ALIAS 0x56
+ #define CAM_LANES 2
+ #include "_des_ch_common_ar0234.asl"
+ #undef DESCH_LINK_NUM
+ #undef DESCH_CH
+ #undef DESCH_SER
+ #undef DESCH_CAM
+ #undef DESCH_SER_I2C
+ #undef DESCH_CH_PATH
+ #undef DESCH_SER_PATH
+ #undef DESCH_SER_REF
+ #undef DESCH_SER_GPIOREF
+ #undef CAM_ALIAS
+ #undef CAM_LANES
+
+ // Channel-level defines for Channel 3 (D3 AR0234)
+ #define DESCH_LINK_NUM 3
+ #define DESCH_CH CH03
+ #define DESCH_SER SER3
+ #define DESCH_CAM CAM3
+ #define DESCH_SER_I2C 0x40
+ #define DESCH_CH_PATH "\\_SB.PC00.DES1.CH03"
+ #define DESCH_SER_PATH "\\_SB.PC00.DES1.CH03.SER3"
+ #define DESCH_SER_REF \_SB.PC00.DES1.CH03.SER3
+ #define DESCH_SER_GPIOREF ^^SER3
+ #define CAM_ALIAS 0x57
+ #define CAM_LANES 2
+ #include "_des_ch_common_ar0234.asl"
+ #undef DESCH_LINK_NUM
+ #undef DESCH_CH
+ #undef DESCH_SER
+ #undef DESCH_CAM
+ #undef DESCH_SER_I2C
+ #undef DESCH_CH_PATH
+ #undef DESCH_SER_PATH
+ #undef DESCH_SER_REF
+ #undef DESCH_SER_GPIOREF
+ #undef CAM_ALIAS
+ #undef CAM_LANES
+
+ // Clean up DES1-level defines
+ #undef DES_PHY_TYPE
+ #undef DES_I2C_ADDR
+ #undef DES_LANES
+ #undef DES_INTERNAL_PHY
+ #undef DES_TO_MIPI_PORT
+ #undef DES_I2C_BUS
+ #undef DES_PATH
+ #undef DES_REF
+ }
+ }
+}
diff --git a/acpi/ipu8/max96724_mixed_d3_ar0234_isx031.asl b/acpi/ipu8/max96724_mixed_d3_ar0234_isx031.asl
new file mode 100644
index 00000000..f3363bfe
--- /dev/null
+++ b/acpi/ipu8/max96724_mixed_d3_ar0234_isx031.asl
@@ -0,0 +1,301 @@
+/*
+ * SPDX-License-Identifier: GPL-2.0
+ * Copyright (c) 2026 Intel Corporation.
+ *
+ * SSDT overlay: Mixed AR0234 + ISX031 GMSL camera configuration on PTL platform.
+ * Two MAX96724 deserializers (DES0, DES1) with CPHY connection to PTL platform.
+ * - DES0 carries two D3 AR0234 cameras and two D3 ISX031 cameras on Links 0..3
+ * - DES1 carries two D3 ISX031 cameras and two D3 AR0234 cameras on Links 0..3
+ * All cameras are fronted by MAX9295A serializers.
+ *
+ * DES-level defines (set per DESx, undef'd at the end of each Device):
+ * DES_PHY_TYPE - DES PHY type (0 for CPHY, 1 for DPHY)
+ * DES_I2C_ADDR - DES I2C slave address (e.g. 0x0027 for MAX96724)
+ * DES_LANES - Number of MIPI data lanes (e.g. 2, 4)
+ * DES_INTERNAL_PHY - DES internal PHY (PHY0 = 4, PHY1 = 5, PHY2 = 6, PHY3 = 7)
+ * DES_TO_MIPI_PORT - DES connected to IPU0 MIPI port (e.g. 0/1/2/3)
+ * DES_I2C_BUS - DES I2C bus path (e.g. "\\_SB.PC00.I2C1")
+ * DES_PATH - DES ACPI path string (e.g. "\\_SB.PC00.DES0")
+ * DES_REF - DES ACPI namespace reference (e.g. \_SB.PC00.DES0)
+ *
+ * Channel-level defines (set per CHxx):
+ * DESCH_LINK_NUM - Channel/link number (0..3) - used for _ADR, reg, SER remote port
+ * DESCH_CH - Channel device name (e.g. CH00)
+ * DESCH_SER - Serializer device name (e.g. SER0)
+ * DESCH_CAM - Camera device name (e.g. CAM0)
+ * DESCH_SER_I2C - SER I2C slave address (e.g. 0x40 for MAX9295A)
+ * DESCH_CH_PATH - CHxx ACPI path string (e.g. "\\_SB.PC00.DES0.CH00")
+ * DESCH_SER_PATH - SERx ACPI path string (e.g. "\\_SB.PC00.DES0.CH00.SER0")
+ * DESCH_SER_REF - SERx ACPI namespace reference (e.g. \_SB.PC00.DES0.CH00.SER0)
+ * DESCH_SER_GPIOREF - SERx GPIO controller reference (e.g. ^^SER0)
+ * CAM_ALIAS - Camera alias I2C address used in i2c-alias-pool of the SER
+ * CAM_LANES - Number of MIPI data lanes for the camera (e.g. 2, 4)
+ */
+
+DefinitionBlock ("", "SSDT", 2, "", "IMG_IPU", 0x20260904)
+{
+ External (_SB.PC00, DeviceObj) // Root device
+
+ Include ("_ipu.asl")
+
+ Scope (\_SB.PC00)
+ {
+ Device (DES0)
+ {
+ /*
+ * For detailed explanation of each define,
+ * please refer to the comment block at the top of this file.
+ */
+
+ // DES-level defines for DES0.
+ #define DES_PHY_TYPE 0
+ #define DES_I2C_ADDR 0x0027
+ #define DES_LANES 2
+ #define DES_INTERNAL_PHY 6
+ #define DES_TO_MIPI_PORT 0
+ #define DES_I2C_BUS "\\_SB.PC00.I2C1"
+ #define DES_PATH "\\_SB.PC00.DES0"
+ #define DES_REF \_SB.PC00.DES0
+ #include "_des_common_max96724.asl"
+
+ // Channel-level defines for Channel 0 (D3 AR0234)
+ #define DESCH_LINK_NUM 0
+ #define DESCH_CH CH00
+ #define DESCH_SER SER0
+ #define DESCH_CAM CAM0
+ #define DESCH_SER_I2C 0x40
+ #define DESCH_CH_PATH "\\_SB.PC00.DES0.CH00"
+ #define DESCH_SER_PATH "\\_SB.PC00.DES0.CH00.SER0"
+ #define DESCH_SER_REF \_SB.PC00.DES0.CH00.SER0
+ #define DESCH_SER_GPIOREF ^^SER0
+ #define CAM_ALIAS 0x54
+ #define CAM_LANES 2
+ #include "_des_ch_common_ar0234.asl"
+ #undef DESCH_LINK_NUM
+ #undef DESCH_CH
+ #undef DESCH_SER
+ #undef DESCH_CAM
+ #undef DESCH_SER_I2C
+ #undef DESCH_CH_PATH
+ #undef DESCH_SER_PATH
+ #undef DESCH_SER_REF
+ #undef DESCH_SER_GPIOREF
+ #undef CAM_ALIAS
+ #undef CAM_LANES
+
+ // Channel-level defines for Channel 1 (D3 AR0234)
+ #define DESCH_LINK_NUM 1
+ #define DESCH_CH CH01
+ #define DESCH_SER SER1
+ #define DESCH_CAM CAM1
+ #define DESCH_SER_I2C 0x40
+ #define DESCH_CH_PATH "\\_SB.PC00.DES0.CH01"
+ #define DESCH_SER_PATH "\\_SB.PC00.DES0.CH01.SER1"
+ #define DESCH_SER_REF \_SB.PC00.DES0.CH01.SER1
+ #define DESCH_SER_GPIOREF ^^SER1
+ #define CAM_ALIAS 0x55
+ #define CAM_LANES 2
+ #include "_des_ch_common_ar0234.asl"
+ #undef DESCH_LINK_NUM
+ #undef DESCH_CH
+ #undef DESCH_SER
+ #undef DESCH_CAM
+ #undef DESCH_SER_I2C
+ #undef DESCH_CH_PATH
+ #undef DESCH_SER_PATH
+ #undef DESCH_SER_REF
+ #undef DESCH_SER_GPIOREF
+ #undef CAM_ALIAS
+ #undef CAM_LANES
+
+ // Channel-level defines for Channel 2 (D3 ISX031)
+ #define DESCH_LINK_NUM 2
+ #define DESCH_CH CH02
+ #define DESCH_SER SER2
+ #define DESCH_CAM CAM2
+ #define DESCH_SER_I2C 0x40
+ #define DESCH_CH_PATH "\\_SB.PC00.DES0.CH02"
+ #define DESCH_SER_PATH "\\_SB.PC00.DES0.CH02.SER2"
+ #define DESCH_SER_REF \_SB.PC00.DES0.CH02.SER2
+ #define DESCH_SER_GPIOREF ^^SER2
+ #define CAM_ALIAS 0x56
+ #define CAM_LANES 4
+ #include "_des_ch_common_isx031.asl"
+ #undef DESCH_LINK_NUM
+ #undef DESCH_CH
+ #undef DESCH_SER
+ #undef DESCH_CAM
+ #undef DESCH_SER_I2C
+ #undef DESCH_CH_PATH
+ #undef DESCH_SER_PATH
+ #undef DESCH_SER_REF
+ #undef DESCH_SER_GPIOREF
+ #undef CAM_ALIAS
+ #undef CAM_LANES
+
+ // Channel-level defines for Channel 3 (D3 ISX031)
+ #define DESCH_LINK_NUM 3
+ #define DESCH_CH CH03
+ #define DESCH_SER SER3
+ #define DESCH_CAM CAM3
+ #define DESCH_SER_I2C 0x40
+ #define DESCH_CH_PATH "\\_SB.PC00.DES0.CH03"
+ #define DESCH_SER_PATH "\\_SB.PC00.DES0.CH03.SER3"
+ #define DESCH_SER_REF \_SB.PC00.DES0.CH03.SER3
+ #define DESCH_SER_GPIOREF ^^SER3
+ #define CAM_ALIAS 0x57
+ #define CAM_LANES 4
+ #include "_des_ch_common_isx031.asl"
+ #undef DESCH_LINK_NUM
+ #undef DESCH_CH
+ #undef DESCH_SER
+ #undef DESCH_CAM
+ #undef DESCH_SER_I2C
+ #undef DESCH_CH_PATH
+ #undef DESCH_SER_PATH
+ #undef DESCH_SER_REF
+ #undef DESCH_SER_GPIOREF
+ #undef CAM_ALIAS
+ #undef CAM_LANES
+
+ // Clean up DES0-level defines
+ #undef DES_PHY_TYPE
+ #undef DES_I2C_ADDR
+ #undef DES_LANES
+ #undef DES_INTERNAL_PHY
+ #undef DES_TO_MIPI_PORT
+ #undef DES_I2C_BUS
+ #undef DES_PATH
+ #undef DES_REF
+ }
+
+ Device (DES1)
+ {
+ /*
+ * For detailed explanation of each define,
+ * please refer to the comment block at the top of this file.
+ */
+
+ // DES-level defines for DES1.
+ #define DES_PHY_TYPE 0
+ #define DES_I2C_ADDR 0x0027
+ #define DES_LANES 2
+ #define DES_INTERNAL_PHY 4
+ #define DES_TO_MIPI_PORT 2
+ #define DES_I2C_BUS "\\_SB.PC00.I2C0"
+ #define DES_PATH "\\_SB.PC00.DES1"
+ #define DES_REF \_SB.PC00.DES1
+ #include "_des_common_max96724.asl"
+
+ // Channel-level defines for Channel 0 (D3 ISX031)
+ #define DESCH_LINK_NUM 0
+ #define DESCH_CH CH00
+ #define DESCH_SER SER0
+ #define DESCH_CAM CAM0
+ #define DESCH_SER_I2C 0x40
+ #define DESCH_CH_PATH "\\_SB.PC00.DES1.CH00"
+ #define DESCH_SER_PATH "\\_SB.PC00.DES1.CH00.SER0"
+ #define DESCH_SER_REF \_SB.PC00.DES1.CH00.SER0
+ #define DESCH_SER_GPIOREF ^^SER0
+ #define CAM_ALIAS 0x54
+ #define CAM_LANES 4
+ #include "_des_ch_common_isx031.asl"
+ #undef DESCH_LINK_NUM
+ #undef DESCH_CH
+ #undef DESCH_SER
+ #undef DESCH_CAM
+ #undef DESCH_SER_I2C
+ #undef DESCH_CH_PATH
+ #undef DESCH_SER_PATH
+ #undef DESCH_SER_REF
+ #undef DESCH_SER_GPIOREF
+ #undef CAM_ALIAS
+ #undef CAM_LANES
+
+ // Channel-level defines for Channel 1 (D3 ISX031)
+ #define DESCH_LINK_NUM 1
+ #define DESCH_CH CH01
+ #define DESCH_SER SER1
+ #define DESCH_CAM CAM1
+ #define DESCH_SER_I2C 0x40
+ #define DESCH_CH_PATH "\\_SB.PC00.DES1.CH01"
+ #define DESCH_SER_PATH "\\_SB.PC00.DES1.CH01.SER1"
+ #define DESCH_SER_REF \_SB.PC00.DES1.CH01.SER1
+ #define DESCH_SER_GPIOREF ^^SER1
+ #define CAM_ALIAS 0x55
+ #define CAM_LANES 4
+ #include "_des_ch_common_isx031.asl"
+ #undef DESCH_LINK_NUM
+ #undef DESCH_CH
+ #undef DESCH_SER
+ #undef DESCH_CAM
+ #undef DESCH_SER_I2C
+ #undef DESCH_CH_PATH
+ #undef DESCH_SER_PATH
+ #undef DESCH_SER_REF
+ #undef DESCH_SER_GPIOREF
+ #undef CAM_ALIAS
+ #undef CAM_LANES
+
+ // Channel-level defines for Channel 2 (D3 AR0234)
+ #define DESCH_LINK_NUM 2
+ #define DESCH_CH CH02
+ #define DESCH_SER SER2
+ #define DESCH_CAM CAM2
+ #define DESCH_SER_I2C 0x40
+ #define DESCH_CH_PATH "\\_SB.PC00.DES1.CH02"
+ #define DESCH_SER_PATH "\\_SB.PC00.DES1.CH02.SER2"
+ #define DESCH_SER_REF \_SB.PC00.DES1.CH02.SER2
+ #define DESCH_SER_GPIOREF ^^SER2
+ #define CAM_ALIAS 0x56
+ #define CAM_LANES 2
+ #include "_des_ch_common_ar0234.asl"
+ #undef DESCH_LINK_NUM
+ #undef DESCH_CH
+ #undef DESCH_SER
+ #undef DESCH_CAM
+ #undef DESCH_SER_I2C
+ #undef DESCH_CH_PATH
+ #undef DESCH_SER_PATH
+ #undef DESCH_SER_REF
+ #undef DESCH_SER_GPIOREF
+ #undef CAM_ALIAS
+ #undef CAM_LANES
+
+ // Channel-level defines for Channel 3 (D3 AR0234)
+ #define DESCH_LINK_NUM 3
+ #define DESCH_CH CH03
+ #define DESCH_SER SER3
+ #define DESCH_CAM CAM3
+ #define DESCH_SER_I2C 0x40
+ #define DESCH_CH_PATH "\\_SB.PC00.DES1.CH03"
+ #define DESCH_SER_PATH "\\_SB.PC00.DES1.CH03.SER3"
+ #define DESCH_SER_REF \_SB.PC00.DES1.CH03.SER3
+ #define DESCH_SER_GPIOREF ^^SER3
+ #define CAM_ALIAS 0x57
+ #define CAM_LANES 2
+ #include "_des_ch_common_ar0234.asl"
+ #undef DESCH_LINK_NUM
+ #undef DESCH_CH
+ #undef DESCH_SER
+ #undef DESCH_CAM
+ #undef DESCH_SER_I2C
+ #undef DESCH_CH_PATH
+ #undef DESCH_SER_PATH
+ #undef DESCH_SER_REF
+ #undef DESCH_SER_GPIOREF
+ #undef CAM_ALIAS
+ #undef CAM_LANES
+
+ // Clean up DES1-level defines
+ #undef DES_PHY_TYPE
+ #undef DES_I2C_ADDR
+ #undef DES_LANES
+ #undef DES_INTERNAL_PHY
+ #undef DES_TO_MIPI_PORT
+ #undef DES_I2C_BUS
+ #undef DES_PATH
+ #undef DES_REF
+ }
+ }
+}
diff --git a/config/acpi/ipu75xa/libcamhal_configs.json b/config/acpi/ipu75xa/libcamhal_configs.json
index 911d299f..d84c6c94 100644
--- a/config/acpi/ipu75xa/libcamhal_configs.json
+++ b/config/acpi/ipu75xa/libcamhal_configs.json
@@ -18,8 +18,6 @@
"Common" : {
"version": 1.0,
"platform": "IPU7",
- // The value format of availableSensors is "sensor name"-wf/uf-"CSI port ID".
- // wf is world facing, and uf is user facing.
"availableSensors": ["acpi"],
"videoStreamNum" : 2
}
diff --git a/config/acpi/ipu75xa/sensors/acpi.json b/config/acpi/ipu75xa/sensors/acpi.json
index b90ac76b..b44c8ee8 100644
--- a/config/acpi/ipu75xa/sensors/acpi.json
+++ b/config/acpi/ipu75xa/sensors/acpi.json
@@ -19,7 +19,7 @@
"Sensor": [
{
"name": "acpi-1",
- "description": "acpi GMSL sensor on Link A",
+ "description": "acpi GMSL sensor on DES0 Link A",
"MediaCtlConfig": [
{
"id": 0 ,
@@ -71,7 +71,7 @@
"acpiName": "\\_SB_.PC00.DES0.CH00.SER0.CAM0", "videoNodeType": "VIDEO_PIXEL_ARRAY"
}
]
- },
+ }
],
"StaticMetadata": {
"supportedStreamConfig": [
@@ -94,7 +94,7 @@
},
{
"name": "acpi-2",
- "description": "acpi GMSL sensor on Link B",
+ "description": "acpi GMSL sensor on DES0 Link B",
"MediaCtlConfig": [
{
"id": 0 ,
@@ -146,7 +146,7 @@
"acpiName": "\\_SB_.PC00.DES0.CH01.SER1.CAM1", "videoNodeType": "VIDEO_PIXEL_ARRAY"
}
]
- },
+ }
],
"StaticMetadata": {
"supportedStreamConfig": [
@@ -169,7 +169,7 @@
},
{
"name": "acpi-3",
- "description": "acpi GMSL sensor on Link C",
+ "description": "acpi GMSL sensor on DES0 Link C",
"MediaCtlConfig": [
{
"id": 0 ,
@@ -221,7 +221,7 @@
"acpiName": "\\_SB_.PC00.DES0.CH02.SER2.CAM2", "videoNodeType": "VIDEO_PIXEL_ARRAY"
}
]
- },
+ }
],
"StaticMetadata": {
"supportedStreamConfig": [
@@ -244,7 +244,7 @@
},
{
"name": "acpi-4",
- "description": "acpi GMSL sensor on Link D",
+ "description": "acpi GMSL sensor on DES0 Link D",
"MediaCtlConfig": [
{
"id": 0 ,
@@ -296,7 +296,307 @@
"acpiName": "\\_SB_.PC00.DES0.CH03.SER3.CAM3", "videoNodeType": "VIDEO_PIXEL_ARRAY"
}
]
+ }
+ ],
+ "StaticMetadata": {
+ "supportedStreamConfig": [
+ {
+ "format": "V4L2_PIX_FMT_UYVY", "size": [1920, 1536], "field": 0, "mcId": 0
+ },
+ {
+ "format": "V4L2_PIX_FMT_UYVY", "size": [1920, 1080], "field": 0, "mcId": 1
+ },
+ {
+ "format": "V4L2_PIX_FMT_UYVY", "size": [1280, 720], "field": 0, "mcId": 2
+ }
+ ]
+ },
+
+ "supportedISysSizes": [[1280, 720], [1920, 1080], [1920, 1536]],
+ "supportedISysFormat": ["V4L2_PIX_FMT_UYVY"],
+ "enableAIQ": false,
+ "usePSysProcessor": false
+ },
+ {
+ "name": "acpi-5",
+ "description": "acpi GMSL sensor on DES1 Link E",
+ "MediaCtlConfig": [
+ {
+ "id": 0 ,
+ "configMode": "AUTO",
+ "output": [1920, 1536],
+ "format": "V4L2_PIX_FMT_UYVY",
+ "videonode": [
+ {
+ "name": "Intel IPU7 ISYS Capture 16", "videoNodeType": "VIDEO_GENERIC"
+ },
+ {
+ "name": "Intel IPU7 CSI2 2", "videoNodeType": "VIDEO_ISYS_RECEIVER"
+ },
+ {
+ "acpiName": "\\_SB_.PC00.DES1.CH00.SER0.CAM0", "videoNodeType": "VIDEO_PIXEL_ARRAY"
+ }
+ ]
+ },
+ {
+ "id": 1 ,
+ "configMode": "AUTO",
+ "output": [1920, 1080],
+ "format": "V4L2_PIX_FMT_UYVY",
+ "videonode": [
+ {
+ "name": "Intel IPU7 ISYS Capture 16", "videoNodeType": "VIDEO_GENERIC"
+ },
+ {
+ "name": "Intel IPU7 CSI2 2", "videoNodeType": "VIDEO_ISYS_RECEIVER"
+ },
+ {
+ "acpiName": "\\_SB_.PC00.DES1.CH00.SER0.CAM0", "videoNodeType": "VIDEO_PIXEL_ARRAY"
+ }
+ ]
+ },
+ {
+ "id": 2 ,
+ "configMode": "AUTO",
+ "output": [1280, 720],
+ "format": "V4L2_PIX_FMT_UYVY",
+ "videonode": [
+ {
+ "name": "Intel IPU7 ISYS Capture 16", "videoNodeType": "VIDEO_GENERIC"
+ },
+ {
+ "name": "Intel IPU7 CSI2 2", "videoNodeType": "VIDEO_ISYS_RECEIVER"
+ },
+ {
+ "acpiName": "\\_SB_.PC00.DES1.CH00.SER0.CAM0", "videoNodeType": "VIDEO_PIXEL_ARRAY"
+ }
+ ]
+ }
+ ],
+ "StaticMetadata": {
+ "supportedStreamConfig": [
+ {
+ "format": "V4L2_PIX_FMT_UYVY", "size": [1920, 1536], "field": 0, "mcId": 0
+ },
+ {
+ "format": "V4L2_PIX_FMT_UYVY", "size": [1920, 1080], "field": 0, "mcId": 1
+ },
+ {
+ "format": "V4L2_PIX_FMT_UYVY", "size": [1280, 720], "field": 0, "mcId": 2
+ }
+ ]
+ },
+
+ "supportedISysSizes": [[1280, 720], [1920, 1080], [1920, 1536]],
+ "supportedISysFormat": ["V4L2_PIX_FMT_UYVY"],
+ "enableAIQ": false,
+ "usePSysProcessor": false
+ },
+ {
+ "name": "acpi-6",
+ "description": "acpi GMSL sensor on DES1 Link F",
+ "MediaCtlConfig": [
+ {
+ "id": 0 ,
+ "configMode": "AUTO",
+ "output": [1920, 1536],
+ "format": "V4L2_PIX_FMT_UYVY",
+ "videonode": [
+ {
+ "name": "Intel IPU7 ISYS Capture 17", "videoNodeType": "VIDEO_GENERIC"
+ },
+ {
+ "name": "Intel IPU7 CSI2 2", "videoNodeType": "VIDEO_ISYS_RECEIVER"
+ },
+ {
+ "acpiName": "\\_SB_.PC00.DES1.CH01.SER1.CAM1", "videoNodeType": "VIDEO_PIXEL_ARRAY"
+ }
+ ]
+ },
+ {
+ "id": 1 ,
+ "configMode": "AUTO",
+ "output": [1920, 1080],
+ "format": "V4L2_PIX_FMT_UYVY",
+ "videonode": [
+ {
+ "name": "Intel IPU7 ISYS Capture 17", "videoNodeType": "VIDEO_GENERIC"
+ },
+ {
+ "name": "Intel IPU7 CSI2 2", "videoNodeType": "VIDEO_ISYS_RECEIVER"
+ },
+ {
+ "acpiName": "\\_SB_.PC00.DES1.CH01.SER1.CAM1", "videoNodeType": "VIDEO_PIXEL_ARRAY"
+ }
+ ]
+ },
+ {
+ "id": 2 ,
+ "configMode": "AUTO",
+ "output": [1280, 720],
+ "format": "V4L2_PIX_FMT_UYVY",
+ "videonode": [
+ {
+ "name": "Intel IPU7 ISYS Capture 17", "videoNodeType": "VIDEO_GENERIC"
+ },
+ {
+ "name": "Intel IPU7 CSI2 2", "videoNodeType": "VIDEO_ISYS_RECEIVER"
+ },
+ {
+ "acpiName": "\\_SB_.PC00.DES1.CH01.SER1.CAM1", "videoNodeType": "VIDEO_PIXEL_ARRAY"
+ }
+ ]
+ }
+ ],
+ "StaticMetadata": {
+ "supportedStreamConfig": [
+ {
+ "format": "V4L2_PIX_FMT_UYVY", "size": [1920, 1536], "field": 0, "mcId": 0
+ },
+ {
+ "format": "V4L2_PIX_FMT_UYVY", "size": [1920, 1080], "field": 0, "mcId": 1
+ },
+ {
+ "format": "V4L2_PIX_FMT_UYVY", "size": [1280, 720], "field": 0, "mcId": 2
+ }
+ ]
+ },
+
+ "supportedISysSizes": [[1280, 720], [1920, 1080], [1920, 1536]],
+ "supportedISysFormat": ["V4L2_PIX_FMT_UYVY"],
+ "enableAIQ": false,
+ "usePSysProcessor": false
+ },
+ {
+ "name": "acpi-7",
+ "description": "acpi GMSL sensor on DES1 Link G",
+ "MediaCtlConfig": [
+ {
+ "id": 0 ,
+ "configMode": "AUTO",
+ "output": [1920, 1536],
+ "format": "V4L2_PIX_FMT_UYVY",
+ "videonode": [
+ {
+ "name": "Intel IPU7 ISYS Capture 18", "videoNodeType": "VIDEO_GENERIC"
+ },
+ {
+ "name": "Intel IPU7 CSI2 2", "videoNodeType": "VIDEO_ISYS_RECEIVER"
+ },
+ {
+ "acpiName": "\\_SB_.PC00.DES1.CH02.SER2.CAM2", "videoNodeType": "VIDEO_PIXEL_ARRAY"
+ }
+ ]
+ },
+ {
+ "id": 1 ,
+ "configMode": "AUTO",
+ "output": [1920, 1080],
+ "format": "V4L2_PIX_FMT_UYVY",
+ "videonode": [
+ {
+ "name": "Intel IPU7 ISYS Capture 18", "videoNodeType": "VIDEO_GENERIC"
+ },
+ {
+ "name": "Intel IPU7 CSI2 2", "videoNodeType": "VIDEO_ISYS_RECEIVER"
+ },
+ {
+ "acpiName": "\\_SB_.PC00.DES1.CH02.SER2.CAM2", "videoNodeType": "VIDEO_PIXEL_ARRAY"
+ }
+ ]
},
+ {
+ "id": 2 ,
+ "configMode": "AUTO",
+ "output": [1280, 720],
+ "format": "V4L2_PIX_FMT_UYVY",
+ "videonode": [
+ {
+ "name": "Intel IPU7 ISYS Capture 18", "videoNodeType": "VIDEO_GENERIC"
+ },
+ {
+ "name": "Intel IPU7 CSI2 2", "videoNodeType": "VIDEO_ISYS_RECEIVER"
+ },
+ {
+ "acpiName": "\\_SB_.PC00.DES1.CH02.SER2.CAM2", "videoNodeType": "VIDEO_PIXEL_ARRAY"
+ }
+ ]
+ }
+ ],
+ "StaticMetadata": {
+ "supportedStreamConfig": [
+ {
+ "format": "V4L2_PIX_FMT_UYVY", "size": [1920, 1536], "field": 0, "mcId": 0
+ },
+ {
+ "format": "V4L2_PIX_FMT_UYVY", "size": [1920, 1080], "field": 0, "mcId": 1
+ },
+ {
+ "format": "V4L2_PIX_FMT_UYVY", "size": [1280, 720], "field": 0, "mcId": 2
+ }
+ ]
+ },
+
+ "supportedISysSizes": [[1280, 720], [1920, 1080], [1920, 1536]],
+ "supportedISysFormat": ["V4L2_PIX_FMT_UYVY"],
+ "enableAIQ": false,
+ "usePSysProcessor": false
+ },
+ {
+ "name": "acpi-8",
+ "description": "acpi GMSL sensor on DES1 Link H",
+ "MediaCtlConfig": [
+ {
+ "id": 0 ,
+ "configMode": "AUTO",
+ "output": [1920, 1536],
+ "format": "V4L2_PIX_FMT_UYVY",
+ "videonode": [
+ {
+ "name": "Intel IPU7 ISYS Capture 19", "videoNodeType": "VIDEO_GENERIC"
+ },
+ {
+ "name": "Intel IPU7 CSI2 2", "videoNodeType": "VIDEO_ISYS_RECEIVER"
+ },
+ {
+ "acpiName": "\\_SB_.PC00.DES1.CH03.SER3.CAM3", "videoNodeType": "VIDEO_PIXEL_ARRAY"
+ }
+ ]
+ },
+ {
+ "id": 1 ,
+ "configMode": "AUTO",
+ "output": [1920, 1080],
+ "format": "V4L2_PIX_FMT_UYVY",
+ "videonode": [
+ {
+ "name": "Intel IPU7 ISYS Capture 19", "videoNodeType": "VIDEO_GENERIC"
+ },
+ {
+ "name": "Intel IPU7 CSI2 2", "videoNodeType": "VIDEO_ISYS_RECEIVER"
+ },
+ {
+ "acpiName": "\\_SB_.PC00.DES1.CH03.SER3.CAM3", "videoNodeType": "VIDEO_PIXEL_ARRAY"
+ }
+ ]
+ },
+ {
+ "id": 2 ,
+ "configMode": "AUTO",
+ "output": [1280, 720],
+ "format": "V4L2_PIX_FMT_UYVY",
+ "videonode": [
+ {
+ "name": "Intel IPU7 ISYS Capture 19", "videoNodeType": "VIDEO_GENERIC"
+ },
+ {
+ "name": "Intel IPU7 CSI2 2", "videoNodeType": "VIDEO_ISYS_RECEIVER"
+ },
+ {
+ "acpiName": "\\_SB_.PC00.DES1.CH03.SER3.CAM3", "videoNodeType": "VIDEO_PIXEL_ARRAY"
+ }
+ ]
+ }
],
"StaticMetadata": {
"supportedStreamConfig": [
diff --git a/config/acpi/ipu8/libcamhal_configs.json b/config/acpi/ipu8/libcamhal_configs.json
new file mode 100644
index 00000000..3b62485c
--- /dev/null
+++ b/config/acpi/ipu8/libcamhal_configs.json
@@ -0,0 +1,24 @@
+//
+// Copyright (C) 2026 Intel Corporation
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+{
+ "Common" : {
+ "version": 1.0,
+ "platform": "IPU7",
+ "availableSensors": ["acpi"],
+ "videoStreamNum" : 2
+ }
+}
diff --git a/config/acpi/ipu8/sensors/acpi.json b/config/acpi/ipu8/sensors/acpi.json
new file mode 100644
index 00000000..3e0698fa
--- /dev/null
+++ b/config/acpi/ipu8/sensors/acpi.json
@@ -0,0 +1,622 @@
+//
+// Copyright (C) 2026 Intel Corporation
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+{
+ "CameraSettings": {
+ "Sensor": [
+ {
+ "name": "acpi-1",
+ "description": "acpi GMSL sensor on DES0 Link A",
+ "MediaCtlConfig": [
+ {
+ "id": 0 ,
+ "configMode": "AUTO",
+ "output": [1920, 1536],
+ "format": "V4L2_PIX_FMT_UYVY",
+ "videonode": [
+ {
+ "name": "Intel IPU7 ISYS Capture 0", "videoNodeType": "VIDEO_GENERIC"
+ },
+ {
+ "name": "Intel IPU7 CSI2 0", "videoNodeType": "VIDEO_ISYS_RECEIVER"
+ },
+ {
+ "acpiName": "\\_SB_.PC00.DES0.CH00.SER0.CAM0", "videoNodeType": "VIDEO_PIXEL_ARRAY"
+ }
+ ]
+ },
+ {
+ "id": 1 ,
+ "configMode": "AUTO",
+ "output": [1920, 1080],
+ "format": "V4L2_PIX_FMT_UYVY",
+ "videonode": [
+ {
+ "name": "Intel IPU7 ISYS Capture 0", "videoNodeType": "VIDEO_GENERIC"
+ },
+ {
+ "name": "Intel IPU7 CSI2 0", "videoNodeType": "VIDEO_ISYS_RECEIVER"
+ },
+ {
+ "acpiName": "\\_SB_.PC00.DES0.CH00.SER0.CAM0", "videoNodeType": "VIDEO_PIXEL_ARRAY"
+ }
+ ]
+ },
+ {
+ "id": 2 ,
+ "configMode": "AUTO",
+ "output": [1280, 720],
+ "format": "V4L2_PIX_FMT_UYVY",
+ "videonode": [
+ {
+ "name": "Intel IPU7 ISYS Capture 0", "videoNodeType": "VIDEO_GENERIC"
+ },
+ {
+ "name": "Intel IPU7 CSI2 0", "videoNodeType": "VIDEO_ISYS_RECEIVER"
+ },
+ {
+ "acpiName": "\\_SB_.PC00.DES0.CH00.SER0.CAM0", "videoNodeType": "VIDEO_PIXEL_ARRAY"
+ }
+ ]
+ }
+ ],
+ "StaticMetadata": {
+ "supportedStreamConfig": [
+ {
+ "format": "V4L2_PIX_FMT_UYVY", "size": [1920, 1536], "field": 0, "mcId": 0
+ },
+ {
+ "format": "V4L2_PIX_FMT_UYVY", "size": [1920, 1080], "field": 0, "mcId": 1
+ },
+ {
+ "format": "V4L2_PIX_FMT_UYVY", "size": [1280, 720], "field": 0, "mcId": 2
+ }
+ ]
+ },
+
+ "supportedISysSizes": [[1280, 720], [1920, 1080], [1920, 1536]],
+ "supportedISysFormat": ["V4L2_PIX_FMT_UYVY"],
+ "enableAIQ": false,
+ "usePSysProcessor": false
+ },
+ {
+ "name": "acpi-2",
+ "description": "acpi GMSL sensor on DES0 Link B",
+ "MediaCtlConfig": [
+ {
+ "id": 0 ,
+ "configMode": "AUTO",
+ "output": [1920, 1536],
+ "format": "V4L2_PIX_FMT_UYVY",
+ "videonode": [
+ {
+ "name": "Intel IPU7 ISYS Capture 1", "videoNodeType": "VIDEO_GENERIC"
+ },
+ {
+ "name": "Intel IPU7 CSI2 0", "videoNodeType": "VIDEO_ISYS_RECEIVER"
+ },
+ {
+ "acpiName": "\\_SB_.PC00.DES0.CH01.SER1.CAM1", "videoNodeType": "VIDEO_PIXEL_ARRAY"
+ }
+ ]
+ },
+ {
+ "id": 1 ,
+ "configMode": "AUTO",
+ "output": [1920, 1080],
+ "format": "V4L2_PIX_FMT_UYVY",
+ "videonode": [
+ {
+ "name": "Intel IPU7 ISYS Capture 1", "videoNodeType": "VIDEO_GENERIC"
+ },
+ {
+ "name": "Intel IPU7 CSI2 0", "videoNodeType": "VIDEO_ISYS_RECEIVER"
+ },
+ {
+ "acpiName": "\\_SB_.PC00.DES0.CH01.SER1.CAM1", "videoNodeType": "VIDEO_PIXEL_ARRAY"
+ }
+ ]
+ },
+ {
+ "id": 2 ,
+ "configMode": "AUTO",
+ "output": [1280, 720],
+ "format": "V4L2_PIX_FMT_UYVY",
+ "videonode": [
+ {
+ "name": "Intel IPU7 ISYS Capture 1", "videoNodeType": "VIDEO_GENERIC"
+ },
+ {
+ "name": "Intel IPU7 CSI2 0", "videoNodeType": "VIDEO_ISYS_RECEIVER"
+ },
+ {
+ "acpiName": "\\_SB_.PC00.DES0.CH01.SER1.CAM1", "videoNodeType": "VIDEO_PIXEL_ARRAY"
+ }
+ ]
+ }
+ ],
+ "StaticMetadata": {
+ "supportedStreamConfig": [
+ {
+ "format": "V4L2_PIX_FMT_UYVY", "size": [1920, 1536], "field": 0, "mcId": 0
+ },
+ {
+ "format": "V4L2_PIX_FMT_UYVY", "size": [1920, 1080], "field": 0, "mcId": 1
+ },
+ {
+ "format": "V4L2_PIX_FMT_UYVY", "size": [1280, 720], "field": 0, "mcId": 2
+ }
+ ]
+ },
+
+ "supportedISysSizes": [[1280, 720], [1920, 1080], [1920, 1536]],
+ "supportedISysFormat": ["V4L2_PIX_FMT_UYVY"],
+ "enableAIQ": false,
+ "usePSysProcessor": false
+ },
+ {
+ "name": "acpi-3",
+ "description": "acpi GMSL sensor on DES0 Link C",
+ "MediaCtlConfig": [
+ {
+ "id": 0 ,
+ "configMode": "AUTO",
+ "output": [1920, 1536],
+ "format": "V4L2_PIX_FMT_UYVY",
+ "videonode": [
+ {
+ "name": "Intel IPU7 ISYS Capture 2", "videoNodeType": "VIDEO_GENERIC"
+ },
+ {
+ "name": "Intel IPU7 CSI2 0", "videoNodeType": "VIDEO_ISYS_RECEIVER"
+ },
+ {
+ "acpiName": "\\_SB_.PC00.DES0.CH02.SER2.CAM2", "videoNodeType": "VIDEO_PIXEL_ARRAY"
+ }
+ ]
+ },
+ {
+ "id": 1 ,
+ "configMode": "AUTO",
+ "output": [1920, 1080],
+ "format": "V4L2_PIX_FMT_UYVY",
+ "videonode": [
+ {
+ "name": "Intel IPU7 ISYS Capture 2", "videoNodeType": "VIDEO_GENERIC"
+ },
+ {
+ "name": "Intel IPU7 CSI2 0", "videoNodeType": "VIDEO_ISYS_RECEIVER"
+ },
+ {
+ "acpiName": "\\_SB_.PC00.DES0.CH02.SER2.CAM2", "videoNodeType": "VIDEO_PIXEL_ARRAY"
+ }
+ ]
+ },
+ {
+ "id": 2 ,
+ "configMode": "AUTO",
+ "output": [1280, 720],
+ "format": "V4L2_PIX_FMT_UYVY",
+ "videonode": [
+ {
+ "name": "Intel IPU7 ISYS Capture 2", "videoNodeType": "VIDEO_GENERIC"
+ },
+ {
+ "name": "Intel IPU7 CSI2 0", "videoNodeType": "VIDEO_ISYS_RECEIVER"
+ },
+ {
+ "acpiName": "\\_SB_.PC00.DES0.CH02.SER2.CAM2", "videoNodeType": "VIDEO_PIXEL_ARRAY"
+ }
+ ]
+ }
+ ],
+ "StaticMetadata": {
+ "supportedStreamConfig": [
+ {
+ "format": "V4L2_PIX_FMT_UYVY", "size": [1920, 1536], "field": 0, "mcId": 0
+ },
+ {
+ "format": "V4L2_PIX_FMT_UYVY", "size": [1920, 1080], "field": 0, "mcId": 1
+ },
+ {
+ "format": "V4L2_PIX_FMT_UYVY", "size": [1280, 720], "field": 0, "mcId": 2
+ }
+ ]
+ },
+
+ "supportedISysSizes": [[1280, 720], [1920, 1080], [1920, 1536]],
+ "supportedISysFormat": ["V4L2_PIX_FMT_UYVY"],
+ "enableAIQ": false,
+ "usePSysProcessor": false
+ },
+ {
+ "name": "acpi-4",
+ "description": "acpi GMSL sensor on DES0 Link D",
+ "MediaCtlConfig": [
+ {
+ "id": 0 ,
+ "configMode": "AUTO",
+ "output": [1920, 1536],
+ "format": "V4L2_PIX_FMT_UYVY",
+ "videonode": [
+ {
+ "name": "Intel IPU7 ISYS Capture 3", "videoNodeType": "VIDEO_GENERIC"
+ },
+ {
+ "name": "Intel IPU7 CSI2 0", "videoNodeType": "VIDEO_ISYS_RECEIVER"
+ },
+ {
+ "acpiName": "\\_SB_.PC00.DES0.CH03.SER3.CAM3", "videoNodeType": "VIDEO_PIXEL_ARRAY"
+ }
+ ]
+ },
+ {
+ "id": 1 ,
+ "configMode": "AUTO",
+ "output": [1920, 1080],
+ "format": "V4L2_PIX_FMT_UYVY",
+ "videonode": [
+ {
+ "name": "Intel IPU7 ISYS Capture 3", "videoNodeType": "VIDEO_GENERIC"
+ },
+ {
+ "name": "Intel IPU7 CSI2 0", "videoNodeType": "VIDEO_ISYS_RECEIVER"
+ },
+ {
+ "acpiName": "\\_SB_.PC00.DES0.CH03.SER3.CAM3", "videoNodeType": "VIDEO_PIXEL_ARRAY"
+ }
+ ]
+ },
+ {
+ "id": 2 ,
+ "configMode": "AUTO",
+ "output": [1280, 720],
+ "format": "V4L2_PIX_FMT_UYVY",
+ "videonode": [
+ {
+ "name": "Intel IPU7 ISYS Capture 3", "videoNodeType": "VIDEO_GENERIC"
+ },
+ {
+ "name": "Intel IPU7 CSI2 0", "videoNodeType": "VIDEO_ISYS_RECEIVER"
+ },
+ {
+ "acpiName": "\\_SB_.PC00.DES0.CH03.SER3.CAM3", "videoNodeType": "VIDEO_PIXEL_ARRAY"
+ }
+ ]
+ }
+ ],
+ "StaticMetadata": {
+ "supportedStreamConfig": [
+ {
+ "format": "V4L2_PIX_FMT_UYVY", "size": [1920, 1536], "field": 0, "mcId": 0
+ },
+ {
+ "format": "V4L2_PIX_FMT_UYVY", "size": [1920, 1080], "field": 0, "mcId": 1
+ },
+ {
+ "format": "V4L2_PIX_FMT_UYVY", "size": [1280, 720], "field": 0, "mcId": 2
+ }
+ ]
+ },
+
+ "supportedISysSizes": [[1280, 720], [1920, 1080], [1920, 1536]],
+ "supportedISysFormat": ["V4L2_PIX_FMT_UYVY"],
+ "enableAIQ": false,
+ "usePSysProcessor": false
+ },
+ {
+ "name": "acpi-5",
+ "description": "acpi GMSL sensor on DES1 Link E",
+ "MediaCtlConfig": [
+ {
+ "id": 0 ,
+ "configMode": "AUTO",
+ "output": [1920, 1536],
+ "format": "V4L2_PIX_FMT_UYVY",
+ "videonode": [
+ {
+ "name": "Intel IPU7 ISYS Capture 16", "videoNodeType": "VIDEO_GENERIC"
+ },
+ {
+ "name": "Intel IPU7 CSI2 2", "videoNodeType": "VIDEO_ISYS_RECEIVER"
+ },
+ {
+ "acpiName": "\\_SB_.PC00.DES1.CH00.SER0.CAM0", "videoNodeType": "VIDEO_PIXEL_ARRAY"
+ }
+ ]
+ },
+ {
+ "id": 1 ,
+ "configMode": "AUTO",
+ "output": [1920, 1080],
+ "format": "V4L2_PIX_FMT_UYVY",
+ "videonode": [
+ {
+ "name": "Intel IPU7 ISYS Capture 16", "videoNodeType": "VIDEO_GENERIC"
+ },
+ {
+ "name": "Intel IPU7 CSI2 2", "videoNodeType": "VIDEO_ISYS_RECEIVER"
+ },
+ {
+ "acpiName": "\\_SB_.PC00.DES1.CH00.SER0.CAM0", "videoNodeType": "VIDEO_PIXEL_ARRAY"
+ }
+ ]
+ },
+ {
+ "id": 2 ,
+ "configMode": "AUTO",
+ "output": [1280, 720],
+ "format": "V4L2_PIX_FMT_UYVY",
+ "videonode": [
+ {
+ "name": "Intel IPU7 ISYS Capture 16", "videoNodeType": "VIDEO_GENERIC"
+ },
+ {
+ "name": "Intel IPU7 CSI2 2", "videoNodeType": "VIDEO_ISYS_RECEIVER"
+ },
+ {
+ "acpiName": "\\_SB_.PC00.DES1.CH00.SER0.CAM0", "videoNodeType": "VIDEO_PIXEL_ARRAY"
+ }
+ ]
+ }
+ ],
+ "StaticMetadata": {
+ "supportedStreamConfig": [
+ {
+ "format": "V4L2_PIX_FMT_UYVY", "size": [1920, 1536], "field": 0, "mcId": 0
+ },
+ {
+ "format": "V4L2_PIX_FMT_UYVY", "size": [1920, 1080], "field": 0, "mcId": 1
+ },
+ {
+ "format": "V4L2_PIX_FMT_UYVY", "size": [1280, 720], "field": 0, "mcId": 2
+ }
+ ]
+ },
+
+ "supportedISysSizes": [[1280, 720], [1920, 1080], [1920, 1536]],
+ "supportedISysFormat": ["V4L2_PIX_FMT_UYVY"],
+ "enableAIQ": false,
+ "usePSysProcessor": false
+ },
+ {
+ "name": "acpi-6",
+ "description": "acpi GMSL sensor on DES1 Link F",
+ "MediaCtlConfig": [
+ {
+ "id": 0 ,
+ "configMode": "AUTO",
+ "output": [1920, 1536],
+ "format": "V4L2_PIX_FMT_UYVY",
+ "videonode": [
+ {
+ "name": "Intel IPU7 ISYS Capture 17", "videoNodeType": "VIDEO_GENERIC"
+ },
+ {
+ "name": "Intel IPU7 CSI2 2", "videoNodeType": "VIDEO_ISYS_RECEIVER"
+ },
+ {
+ "acpiName": "\\_SB_.PC00.DES1.CH01.SER1.CAM1", "videoNodeType": "VIDEO_PIXEL_ARRAY"
+ }
+ ]
+ },
+ {
+ "id": 1 ,
+ "configMode": "AUTO",
+ "output": [1920, 1080],
+ "format": "V4L2_PIX_FMT_UYVY",
+ "videonode": [
+ {
+ "name": "Intel IPU7 ISYS Capture 17", "videoNodeType": "VIDEO_GENERIC"
+ },
+ {
+ "name": "Intel IPU7 CSI2 2", "videoNodeType": "VIDEO_ISYS_RECEIVER"
+ },
+ {
+ "acpiName": "\\_SB_.PC00.DES1.CH01.SER1.CAM1", "videoNodeType": "VIDEO_PIXEL_ARRAY"
+ }
+ ]
+ },
+ {
+ "id": 2 ,
+ "configMode": "AUTO",
+ "output": [1280, 720],
+ "format": "V4L2_PIX_FMT_UYVY",
+ "videonode": [
+ {
+ "name": "Intel IPU7 ISYS Capture 17", "videoNodeType": "VIDEO_GENERIC"
+ },
+ {
+ "name": "Intel IPU7 CSI2 2", "videoNodeType": "VIDEO_ISYS_RECEIVER"
+ },
+ {
+ "acpiName": "\\_SB_.PC00.DES1.CH01.SER1.CAM1", "videoNodeType": "VIDEO_PIXEL_ARRAY"
+ }
+ ]
+ }
+ ],
+ "StaticMetadata": {
+ "supportedStreamConfig": [
+ {
+ "format": "V4L2_PIX_FMT_UYVY", "size": [1920, 1536], "field": 0, "mcId": 0
+ },
+ {
+ "format": "V4L2_PIX_FMT_UYVY", "size": [1920, 1080], "field": 0, "mcId": 1
+ },
+ {
+ "format": "V4L2_PIX_FMT_UYVY", "size": [1280, 720], "field": 0, "mcId": 2
+ }
+ ]
+ },
+
+ "supportedISysSizes": [[1280, 720], [1920, 1080], [1920, 1536]],
+ "supportedISysFormat": ["V4L2_PIX_FMT_UYVY"],
+ "enableAIQ": false,
+ "usePSysProcessor": false
+ },
+ {
+ "name": "acpi-7",
+ "description": "acpi GMSL sensor on DES1 Link G",
+ "MediaCtlConfig": [
+ {
+ "id": 0 ,
+ "configMode": "AUTO",
+ "output": [1920, 1536],
+ "format": "V4L2_PIX_FMT_UYVY",
+ "videonode": [
+ {
+ "name": "Intel IPU7 ISYS Capture 18", "videoNodeType": "VIDEO_GENERIC"
+ },
+ {
+ "name": "Intel IPU7 CSI2 2", "videoNodeType": "VIDEO_ISYS_RECEIVER"
+ },
+ {
+ "acpiName": "\\_SB_.PC00.DES1.CH02.SER2.CAM2", "videoNodeType": "VIDEO_PIXEL_ARRAY"
+ }
+ ]
+ },
+ {
+ "id": 1 ,
+ "configMode": "AUTO",
+ "output": [1920, 1080],
+ "format": "V4L2_PIX_FMT_UYVY",
+ "videonode": [
+ {
+ "name": "Intel IPU7 ISYS Capture 18", "videoNodeType": "VIDEO_GENERIC"
+ },
+ {
+ "name": "Intel IPU7 CSI2 2", "videoNodeType": "VIDEO_ISYS_RECEIVER"
+ },
+ {
+ "acpiName": "\\_SB_.PC00.DES1.CH02.SER2.CAM2", "videoNodeType": "VIDEO_PIXEL_ARRAY"
+ }
+ ]
+ },
+ {
+ "id": 2 ,
+ "configMode": "AUTO",
+ "output": [1280, 720],
+ "format": "V4L2_PIX_FMT_UYVY",
+ "videonode": [
+ {
+ "name": "Intel IPU7 ISYS Capture 18", "videoNodeType": "VIDEO_GENERIC"
+ },
+ {
+ "name": "Intel IPU7 CSI2 2", "videoNodeType": "VIDEO_ISYS_RECEIVER"
+ },
+ {
+ "acpiName": "\\_SB_.PC00.DES1.CH02.SER2.CAM2", "videoNodeType": "VIDEO_PIXEL_ARRAY"
+ }
+ ]
+ }
+ ],
+ "StaticMetadata": {
+ "supportedStreamConfig": [
+ {
+ "format": "V4L2_PIX_FMT_UYVY", "size": [1920, 1536], "field": 0, "mcId": 0
+ },
+ {
+ "format": "V4L2_PIX_FMT_UYVY", "size": [1920, 1080], "field": 0, "mcId": 1
+ },
+ {
+ "format": "V4L2_PIX_FMT_UYVY", "size": [1280, 720], "field": 0, "mcId": 2
+ }
+ ]
+ },
+
+ "supportedISysSizes": [[1280, 720], [1920, 1080], [1920, 1536]],
+ "supportedISysFormat": ["V4L2_PIX_FMT_UYVY"],
+ "enableAIQ": false,
+ "usePSysProcessor": false
+ },
+ {
+ "name": "acpi-8",
+ "description": "acpi GMSL sensor on DES1 Link H",
+ "MediaCtlConfig": [
+ {
+ "id": 0 ,
+ "configMode": "AUTO",
+ "output": [1920, 1536],
+ "format": "V4L2_PIX_FMT_UYVY",
+ "videonode": [
+ {
+ "name": "Intel IPU7 ISYS Capture 19", "videoNodeType": "VIDEO_GENERIC"
+ },
+ {
+ "name": "Intel IPU7 CSI2 2", "videoNodeType": "VIDEO_ISYS_RECEIVER"
+ },
+ {
+ "acpiName": "\\_SB_.PC00.DES1.CH03.SER3.CAM3", "videoNodeType": "VIDEO_PIXEL_ARRAY"
+ }
+ ]
+ },
+ {
+ "id": 1 ,
+ "configMode": "AUTO",
+ "output": [1920, 1080],
+ "format": "V4L2_PIX_FMT_UYVY",
+ "videonode": [
+ {
+ "name": "Intel IPU7 ISYS Capture 19", "videoNodeType": "VIDEO_GENERIC"
+ },
+ {
+ "name": "Intel IPU7 CSI2 2", "videoNodeType": "VIDEO_ISYS_RECEIVER"
+ },
+ {
+ "acpiName": "\\_SB_.PC00.DES1.CH03.SER3.CAM3", "videoNodeType": "VIDEO_PIXEL_ARRAY"
+ }
+ ]
+ },
+ {
+ "id": 2 ,
+ "configMode": "AUTO",
+ "output": [1280, 720],
+ "format": "V4L2_PIX_FMT_UYVY",
+ "videonode": [
+ {
+ "name": "Intel IPU7 ISYS Capture 19", "videoNodeType": "VIDEO_GENERIC"
+ },
+ {
+ "name": "Intel IPU7 CSI2 2", "videoNodeType": "VIDEO_ISYS_RECEIVER"
+ },
+ {
+ "acpiName": "\\_SB_.PC00.DES1.CH03.SER3.CAM3", "videoNodeType": "VIDEO_PIXEL_ARRAY"
+ }
+ ]
+ }
+ ],
+ "StaticMetadata": {
+ "supportedStreamConfig": [
+ {
+ "format": "V4L2_PIX_FMT_UYVY", "size": [1920, 1536], "field": 0, "mcId": 0
+ },
+ {
+ "format": "V4L2_PIX_FMT_UYVY", "size": [1920, 1080], "field": 0, "mcId": 1
+ },
+ {
+ "format": "V4L2_PIX_FMT_UYVY", "size": [1280, 720], "field": 0, "mcId": 2
+ }
+ ]
+ },
+
+ "supportedISysSizes": [[1280, 720], [1920, 1080], [1920, 1536]],
+ "supportedISysFormat": ["V4L2_PIX_FMT_UYVY"],
+ "enableAIQ": false,
+ "usePSysProcessor": false
+ }
+ ]
+ }
+}
diff --git a/config/ar0234/ipu75xa/gcss/AR0234.IPU75XA.bin b/config/ar0234/ipu75xa/gcss/AR0234.IPU75XA.bin
index 018c8f9f..7d4b5983 100644
Binary files a/config/ar0234/ipu75xa/gcss/AR0234.IPU75XA.bin and b/config/ar0234/ipu75xa/gcss/AR0234.IPU75XA.bin differ
diff --git a/config/ar0234/ipu75xa/sensors/ar0234.json b/config/ar0234/ipu75xa/sensors/ar0234.json
index 0f555038..dc7005ee 100644
--- a/config/ar0234/ipu75xa/sensors/ar0234.json
+++ b/config/ar0234/ipu75xa/sensors/ar0234.json
@@ -31,7 +31,7 @@
"videonode": [
{ "name": "Intel IPU7 ISYS Capture 0", "videoNodeType": "VIDEO_GENERIC" },
{ "name": "Intel IPU7 CSI2 0", "videoNodeType": "VIDEO_ISYS_RECEIVER" },
- { "name": "ar0234 28-0010", "videoNodeType": "VIDEO_PIXEL_ARRAY" }
+ { "acpiName": "\\_SB_.PC00.DES0.CH00.SER0.CAM0", "videoNodeType": "VIDEO_PIXEL_ARRAY" }
]
}
],
@@ -223,7 +223,7 @@
"videonode": [
{ "name": "Intel IPU7 ISYS Capture 1", "videoNodeType": "VIDEO_GENERIC" },
{ "name": "Intel IPU7 CSI2 0", "videoNodeType": "VIDEO_ISYS_RECEIVER" },
- { "name": "ar0234 29-0010", "videoNodeType": "VIDEO_PIXEL_ARRAY" }
+ { "acpiName": "\\_SB_.PC00.DES0.CH01.SER1.CAM1", "videoNodeType": "VIDEO_PIXEL_ARRAY" }
]
}
],
@@ -415,7 +415,7 @@
"videonode": [
{ "name": "Intel IPU7 ISYS Capture 2", "videoNodeType": "VIDEO_GENERIC" },
{ "name": "Intel IPU7 CSI2 0", "videoNodeType": "VIDEO_ISYS_RECEIVER" },
- { "name": "ar0234 30-0010", "videoNodeType": "VIDEO_PIXEL_ARRAY" }
+ { "acpiName": "\\_SB_.PC00.DES0.CH02.SER2.CAM2", "videoNodeType": "VIDEO_PIXEL_ARRAY" }
]
}
],
@@ -607,7 +607,7 @@
"videonode": [
{ "name": "Intel IPU7 ISYS Capture 3", "videoNodeType": "VIDEO_GENERIC" },
{ "name": "Intel IPU7 CSI2 0", "videoNodeType": "VIDEO_ISYS_RECEIVER" },
- { "name": "ar0234 31-0010", "videoNodeType": "VIDEO_PIXEL_ARRAY" }
+ { "acpiName": "\\_SB_.PC00.DES0.CH03.SER3.CAM3", "videoNodeType": "VIDEO_PIXEL_ARRAY" }
]
}
],
@@ -799,7 +799,7 @@
"videonode": [
{ "name": "Intel IPU7 ISYS Capture 16", "videoNodeType": "VIDEO_GENERIC" },
{ "name": "Intel IPU7 CSI2 2", "videoNodeType": "VIDEO_ISYS_RECEIVER" },
- { "name": "ar0234 32-0010", "videoNodeType": "VIDEO_PIXEL_ARRAY" }
+ { "acpiName": "\\_SB_.PC00.DES1.CH00.SER0.CAM0", "videoNodeType": "VIDEO_PIXEL_ARRAY" }
]
}
],
@@ -991,7 +991,7 @@
"videonode": [
{ "name": "Intel IPU7 ISYS Capture 17", "videoNodeType": "VIDEO_GENERIC" },
{ "name": "Intel IPU7 CSI2 2", "videoNodeType": "VIDEO_ISYS_RECEIVER" },
- { "name": "ar0234 33-0010", "videoNodeType": "VIDEO_PIXEL_ARRAY" }
+ { "acpiName": "\\_SB_.PC00.DES1.CH01.SER1.CAM1", "videoNodeType": "VIDEO_PIXEL_ARRAY" }
]
}
],
@@ -1183,7 +1183,7 @@
"videonode": [
{ "name": "Intel IPU7 ISYS Capture 18", "videoNodeType": "VIDEO_GENERIC" },
{ "name": "Intel IPU7 CSI2 2", "videoNodeType": "VIDEO_ISYS_RECEIVER" },
- { "name": "ar0234 34-0010", "videoNodeType": "VIDEO_PIXEL_ARRAY" }
+ { "acpiName": "\\_SB_.PC00.DES1.CH02.SER2.CAM2", "videoNodeType": "VIDEO_PIXEL_ARRAY" }
]
}
],
@@ -1375,7 +1375,7 @@
"videonode": [
{ "name": "Intel IPU7 ISYS Capture 19", "videoNodeType": "VIDEO_GENERIC" },
{ "name": "Intel IPU7 CSI2 2", "videoNodeType": "VIDEO_ISYS_RECEIVER" },
- { "name": "ar0234 35-0010", "videoNodeType": "VIDEO_PIXEL_ARRAY" }
+ { "acpiName": "\\_SB_.PC00.DES1.CH03.SER3.CAM3", "videoNodeType": "VIDEO_PIXEL_ARRAY" }
]
}
],
diff --git a/config/ar0234/ipu8/sensors/ar0234.json b/config/ar0234/ipu8/sensors/ar0234.json
index 06375db8..da032cc2 100644
--- a/config/ar0234/ipu8/sensors/ar0234.json
+++ b/config/ar0234/ipu8/sensors/ar0234.json
@@ -31,7 +31,7 @@
"videonode": [
{ "name": "Intel IPU7 ISYS Capture 0", "videoNodeType": "VIDEO_GENERIC" },
{ "name": "Intel IPU7 CSI2 0", "videoNodeType": "VIDEO_ISYS_RECEIVER" },
- { "name": "ar0234 25-0010", "videoNodeType": "VIDEO_PIXEL_ARRAY" }
+ { "acpiName": "\\_SB_.PC00.DES0.CH00.SER0.CAM0", "videoNodeType": "VIDEO_PIXEL_ARRAY" }
]
}
],
@@ -223,7 +223,7 @@
"videonode": [
{ "name": "Intel IPU7 ISYS Capture 1", "videoNodeType": "VIDEO_GENERIC" },
{ "name": "Intel IPU7 CSI2 0", "videoNodeType": "VIDEO_ISYS_RECEIVER" },
- { "name": "ar0234 26-0010", "videoNodeType": "VIDEO_PIXEL_ARRAY" }
+ { "acpiName": "\\_SB_.PC00.DES0.CH01.SER1.CAM1", "videoNodeType": "VIDEO_PIXEL_ARRAY" }
]
}
],
@@ -415,7 +415,7 @@
"videonode": [
{ "name": "Intel IPU7 ISYS Capture 2", "videoNodeType": "VIDEO_GENERIC" },
{ "name": "Intel IPU7 CSI2 0", "videoNodeType": "VIDEO_ISYS_RECEIVER" },
- { "name": "ar0234 27-0010", "videoNodeType": "VIDEO_PIXEL_ARRAY" }
+ { "acpiName": "\\_SB_.PC00.DES0.CH02.SER2.CAM2", "videoNodeType": "VIDEO_PIXEL_ARRAY" }
]
}
],
@@ -607,7 +607,7 @@
"videonode": [
{ "name": "Intel IPU7 ISYS Capture 3", "videoNodeType": "VIDEO_GENERIC" },
{ "name": "Intel IPU7 CSI2 0", "videoNodeType": "VIDEO_ISYS_RECEIVER" },
- { "name": "ar0234 28-0010", "videoNodeType": "VIDEO_PIXEL_ARRAY" }
+ { "acpiName": "\\_SB_.PC00.DES0.CH03.SER3.CAM3", "videoNodeType": "VIDEO_PIXEL_ARRAY" }
]
}
],
@@ -799,7 +799,7 @@
"videonode": [
{ "name": "Intel IPU7 ISYS Capture 16", "videoNodeType": "VIDEO_GENERIC" },
{ "name": "Intel IPU7 CSI2 2", "videoNodeType": "VIDEO_ISYS_RECEIVER" },
- { "name": "ar0234 21-0010", "videoNodeType": "VIDEO_PIXEL_ARRAY" }
+ { "acpiName": "\\_SB_.PC00.DES1.CH00.SER0.CAM0", "videoNodeType": "VIDEO_PIXEL_ARRAY" }
]
}
],
@@ -991,7 +991,7 @@
"videonode": [
{ "name": "Intel IPU7 ISYS Capture 17", "videoNodeType": "VIDEO_GENERIC" },
{ "name": "Intel IPU7 CSI2 2", "videoNodeType": "VIDEO_ISYS_RECEIVER" },
- { "name": "ar0234 22-0010", "videoNodeType": "VIDEO_PIXEL_ARRAY" }
+ { "acpiName": "\\_SB_.PC00.DES1.CH01.SER1.CAM1", "videoNodeType": "VIDEO_PIXEL_ARRAY" }
]
}
],
@@ -1183,7 +1183,7 @@
"videonode": [
{ "name": "Intel IPU7 ISYS Capture 18", "videoNodeType": "VIDEO_GENERIC" },
{ "name": "Intel IPU7 CSI2 2", "videoNodeType": "VIDEO_ISYS_RECEIVER" },
- { "name": "ar0234 23-0010", "videoNodeType": "VIDEO_PIXEL_ARRAY" }
+ { "acpiName": "\\_SB_.PC00.DES1.CH02.SER2.CAM2", "videoNodeType": "VIDEO_PIXEL_ARRAY" }
]
}
],
@@ -1375,7 +1375,7 @@
"videonode": [
{ "name": "Intel IPU7 ISYS Capture 19", "videoNodeType": "VIDEO_GENERIC" },
{ "name": "Intel IPU7 CSI2 2", "videoNodeType": "VIDEO_ISYS_RECEIVER" },
- { "name": "ar0234 24-0010", "videoNodeType": "VIDEO_PIXEL_ARRAY" }
+ { "acpiName": "\\_SB_.PC00.DES1.CH03.SER3.CAM3", "videoNodeType": "VIDEO_PIXEL_ARRAY" }
]
}
],
diff --git a/doc/acpi/kernelspace.md b/doc/acpi/kernelspace.md
index 8b722a44..597aca29 100644
--- a/doc/acpi/kernelspace.md
+++ b/doc/acpi/kernelspace.md
@@ -213,6 +213,7 @@ Serializer-specific defines in ASL are used to specify the serializer configurat
| LI ISX031 | 0x62 | - | - | 4 | - |
| Sensing ISX031| 0x40 | 7 | 1 | 4 | - |
| RS D457 | 0x40 | - | - | 2 | Package () { 0 } for VC0 on Pipe X
Package () { 1 } for VC1 on Pipe Y
Package () { 2 } for VC2 on Pipe Z
Package () { 3 } for VC3 on Pipe U |
+| D3 AR0234 | 0x40 | - | - | 2 | - |
@@ -257,7 +258,8 @@ Make sure the below ASL source files are at least a **subset** of your current h
- [D457 GMSL 3D on MAX96724](../../acpi/ipu7/max96724_rs_d457.asl)
- [LI ISX031 GMSL on MAX96724](../../acpi/ipu7/max96724_li_isx031.asl)
- [Sensing ISX031 GMSL on MAX96724](../../acpi/ipu7/max96724_sensing_isx031.asl)
-- [2D+2D, 2D+3D GMSL mix-and-match on MAX96724](../../acpi/ipu7/max96724_mixed.asl)
+- [2D YUV + 2D YUV, 2D YUV + 3D YUV GMSL mix-and-match on MAX96724](../../acpi/ipu7/max96724_mixed.asl)
+- [2D RAW + 2D YUV, 2D YUV + 2D RAW GMSL mix-and-match on MAX96724](../../acpi/ipu7/max96724_mixed_d3_ar0234_isx031.asl)
- [FrameSync on MAX96724](../../acpi/ipu7/max96724_sensing_isx031_fs.asl)
(Go to Compile and Load)
@@ -274,7 +276,8 @@ Make sure the below ASL source files are at least a **subset** of your current h
- [D457 GMSL 3D on MAX96724](../../acpi/ipu8/max96724_rs_d457.asl)
- [LI ISX031 GMSL on MAX96724](../../acpi/ipu8/max96724_li_isx031.asl)
- [Sensing ISX031 GMSL on MAX96724](../../acpi/ipu8/max96724_sensing_isx031.asl)
-- [2D+2D, 2D+3D GMSL mix-and-match on MAX96724](../../acpi/ipu8/max96724_mixed.asl)
+- [2D YUV + 2D YUV, 2D YUV + 3D YUV GMSL mix-and-match on MAX96724](../../acpi/ipu8/max96724_mixed.asl)
+- [2D RAW + 2D YUV, 2D YUV + 2D RAW GMSL mix-and-match on MAX96724](../../acpi/ipu8/max96724_mixed_d3_ar0234_isx031.asl)
(Go to Compile and Load)
diff --git a/doc/ar0234/userspace-gmsl.md b/doc/ar0234/userspace-gmsl.md
index f903373f..f07dcd29 100644
--- a/doc/ar0234/userspace-gmsl.md
+++ b/doc/ar0234/userspace-gmsl.md
@@ -5,101 +5,108 @@ This document details the configuration settings for the AR0234 GMSL sensor, pro
## Table of Contents
- [Hardware Connection](#hardware-connection)
- - [MAX9296 (REV B) Connection](#max9296-rev-b-connection)
- - [MAX96724 AIC (REV A) Connection](#max96724-aic-rev-a-connection)
- - [MAX96724 AIC (D-PHY) (REV B) Connection](#max96724-aic-d-phy-rev-b-connection)
+ - [MAX9296 AIC (REV B) Connection](#max9296-aic-rev-b-connection)
+ - [MAX96724 AIC (C-PHY) (REV A) Connection](#max96724-aic-c-phy-rev-a-connection)
- [MAX96724 AIC (C-PHY) (REV B) Connection](#max96724-aic-c-phy-rev-b-connection)
+ - [MAX96724 AIC (D-PHY) (REV B) Connection](#max96724-aic-d-phy-rev-b-connection)
- [MAX96724 AIC (C-PHY to D-PHY Adapter) (REV B) Connection](#max96724-aic-c-phy-to-d-phy-adapter-rev-b-connection)
-- [BIOS Configuration Table](#bios-configuration-table)
- - [Disable C States](#disable-c-states)
-- [MIPI Camera Configuration](#mipi-camera-configuration)
- - [Setup for IPU6EPMTL](#setup-for-ipu6epmtl)
- - [Setup for IPU75XA](#setup-for-ipu75xa)
- - [Setup for IPU8](#setup-for-ipu8)
-- [Camera Configuration File Setup](#camera-configuration-file-setup)
- - [Setup for IPU6EPMTL](#setup-for-ipu6epmtl-1)
- - [Setup for IPU75XA](#setup-for-ipu75xa-1)
- - [Setup for IPU8](#setup-for-ipu8-1)
-- [Camera Tuning File Setup](#camera-tuning-file-setup)
- - [Setup for IPU6EPMTL](#setup-for-ipu6epmtl-2)
- - [Setup for IPU75XA](#setup-for-ipu75xa-2)
- - [Setup for IPU8](#setup-for-ipu8-2)
-- [Environment Setup](#environment-setup)
+- [ACPI Setup - BIOS Configuration](#acpi-setup---bios-configuration)
+ - [Sensor ACPI HID](#sensor-acpi-hid)
+ - [BIOS Settings for IPU6EPMTL](#bios-settings-for-ipu6epmtl)
+- [ACPI Setup - ASL Configuration](#acpi-setup---asl-configuration)
+ - [ASL Configuration for IPU6EPMTL](#asl-configuration-for-ipu6epmtl)
+ - [ASL Configuration for IPU75XA](#asl-configuration-for-ipu75xa)
+ - [ASL Configuration for IPU8](#asl-configuration-for-ipu8)
+- [Libcamhal Configuration File Setup (BIOS Configured Systems)](#libcamhal-configuration-file-setup-bios-configured-systems)
+ - [Libcamhal Config for IPU6EPMTL](#libcamhal-config-for-ipu6epmtl)
+- [Libcamhal Configuration File Setup (ASL Configured Systems)](#libcamhal-configuration-file-setup-asl-configured-systems)
+ - [Libcamhal Config for IPU6EPMTL](#libcamhal-config-for-ipu6epmtl-1)
+ - [Libcamhal Config for IPU75XA](#libcamhal-config-for-ipu75xa)
+ - [Libcamhal Config for IPU8](#libcamhal-config-for-ipu8)
+- [Libcamhal Tuning File Setup](#libcamhal-tuning-file-setup)
+ - [Libcamhal Tuning for IPU6EPMTL](#libcamhal-tuning-for-ipu6epmtl)
+ - [Libcamhal Tuning for IPU75XA](#libcamhal-tuning-for-ipu75xa)
+ - [Libcamhal Tuning for IPU8](#libcamhal-tuning-for-ipu8)
+- [Auto Media-Ctl Routing Setup (ASL Configured Systems)](#auto-media-ctl-routing-setup-asl-configured-systems)
- [Sensor Verification](#sensor-verification)
-- [Sample Userspace Command](#sample-userspace-command)
- - [Sensor Device Selection](#sensor-device-selection)
- - [How to relate Sensor Number N with AIC Link Port](#how-to-relate-sensor-number-n-with-aic-link-port)
- - [Frame Buffer Memory Type (IO Mode) Selection](#frame-buffer-memory-type-io-mode-selection)
- - [Sensor Resolution Selection](#sensor-resolution-selection)
- - [Sensor Format Selection](#sensor-format-selection)
- - [Multi-Stream Selection](#multi-stream-selection)
- - [Multiprocessing Multi-Stream](#multiprocessing-multi-stream)
- - [Multithreading Multi-Stream](#multithreading-multi-stream)
+- [Stream Verification](#stream-verification)
+ - [Environment Setup](#environment-setup)
+ - [Stream with GStreamer icamerasrc](#stream-with-gstreamer-icamerasrc)
+ - [Device Name Selection](#device-name-selection)
+ - [Frame Buffer Memory Type (IO Mode) Selection](#frame-buffer-memory-type-io-mode-selection)
+ - [Sensor Resolution Selection](#sensor-resolution-selection)
+ - [Sensor Format Selection](#sensor-format-selection)
+ - [Multi-Stream Selection](#multi-stream-selection)
+ - [Multiprocessing Multi-Stream](#multiprocessing-multi-stream)
+ - [Multithreading Multi-Stream](#multithreading-multi-stream)
- [Streaming Result](#streaming-result)
+ - [Highest Bandwidth Configuration](#highest-bandwidth-configuration)
## Hardware Connection
This section describes the physical AIC (Add-In Card) hardware setup, including link port layout and jumper configurations for MIPI PHY selection.
-#### MAX9296 AIC (REV B) Connection
+### MAX9296 AIC (REV B) Connection
> **Note:** Samtec cables and an external power supply are required to connect the MAX9296 AIC to the baseboard.

-#### MAX96724 AIC (C-PHY) (REV A) Connection
+### MAX96724 AIC (C-PHY) (REV A) Connection
> **Note:** The MAX96724 AIC (REV A) supports only C-PHY connections, selectable via the J14 jumper highlighted in the image below.

-#### MAX96724 AIC (C-PHY) (REV B) Connection
+### MAX96724 AIC (C-PHY) (REV B) Connection
> **Note:** The MAX96724 AIC (REV B) supports both C-PHY and D-PHY connections, selectable via the J14 jumper.
-Image below shows the C-PHY setup.
-
+The image below shows the C-PHY setup.

-#### MAX96724 AIC (D-PHY) (REV B) Connection
+### MAX96724 AIC (D-PHY) (REV B) Connection
> **Note:** Ensure the J14 jumper pins are oriented toward the D-PHY connector, as shown in the image below.
-Image below shows the D-PHY setup.
+The image below shows the D-PHY setup.

+### MAX96724 AIC (C-PHY to D-PHY Adapter) (REV B) Connection
-#### MAX96724 AIC (C-PHY to D-PHY Adapter) (REV B) Connection
-
-Image below shows the C-PHY to D-PHY adapter setup.
+The image below shows the C-PHY to D-PHY adapter setup.

+The following sections show the BIOS settings for each platform. Configure the BIOS for the platform in use.
-## BIOS Configuration Table
+>**Note:** If you want to configure ACPI using ASL, please refer to the [ASL configuration](#acpi-setup---asl-configuration) section below.
-> **Note:** No External Clock required.
+---
+## ACPI Setup - BIOS Configuration
-#### Disable C States
+Using the BIOS configuration exercises the [ipu-acpi](../../drivers/media/platform/intel/) and [max9x](../../drivers/media/i2c/max9x/) drivers.
-Config path: `Intel Advanced Menu`->`Power & Performance`->`CPU - Power Management Control`
+### Sensor ACPI HID
-| | Options |
-|--- |--- |
-| C states | Disabled |
+Use the sensor ACPI HID in the **Custom HID** field.
-> **Note:** This option is only applicable for IPU6EP platforms (ADL, TWL, ASL and RPL).
+| Vendor | Sensor ACPI HID |
+|-----------------|:---------------:|
+| D3 Embedded | INTC0234 |
-## MIPI Camera Configuration
+### BIOS Settings for IPU6EPMTL
-#### Setup for IPU6EPMTL
+
+MAX9296 DPHY + 2x AR0234
+(Back to Hardware Setup)
-Config path: `Intel Advanced Menu`->`System Agent (SA) Configuration`->`MIPI Camera Configuration`
+> **Note:** No control logic or external clock is required.
-
-Click to expand BIOS camera link options
+>**BIOS Camera Option 1 Path:**\
+ `Intel Advanced Menu`->`System Agent (SA) Configuration`->`MIPI Camera Configuration` -> `Camera Option 1` -> **Enabled**
| | Camera1 Link options |
|--- |--- |
@@ -139,134 +146,197 @@ Config path: `Intel Advanced Menu`->`System Agent (SA) Configuration`->`MIPI Cam
-#### Setup for IPU75XA
+---
+## ACPI Setup - ASL Configuration
+
+IMPORTANT: Turn off the BIOS setting to use the ASL method.
+
+>**BIOS Camera Option 1 Path:**\
+ `Intel Advanced Menu`->`System Agent (SA) Configuration`->`MIPI Camera Configuration` -> `Camera Option 1` -> **Disabled**
+
+>**BIOS Camera Option 2 Path:**\
+ `Intel Advanced Menu`->`System Agent (SA) Configuration`->`MIPI Camera Configuration` -> `Camera Option 2` -> **Disabled**
+
+Using the ASL configuration exercises the [maxim-serdes](../../drivers/media/i2c/maxim-serdes/) drivers.
+
+To compile ASL and load an SSDT overlay image, refer to [acpi/kernelspace.md](../acpi/kernelspace.md#compile-and-load).
+
+### ASL Configuration for IPU6EPMTL
+
+
+ MAX9296 DPHY + 2x D3 AR0234 GMSL sensors use case
+(Back to Hardware Setup)
+
+>**ASL:** [max9296_d3_ar0234.asl](../../acpi/ipu6/max9296_d3_ar0234.asl)
+
+
+
+### ASL Configuration for IPU75XA
+
+
+ MAX96724 CPHY + 8x D3 AR0234 GMSL sensors use case
+(Back to Hardware Setup)
+
+>**ASL:** [max96724_d3_ar0234.asl](../../acpi/ipu7/max96724_d3_ar0234.asl)
-> **Note:** Configuration is performed using SSDT ACPI method based on [MAX96724 AIC (C-PHY) (REV A) Connection](#max96724-aic-c-phy-rev-a-connection). Please visit 'Compile and Load ACPI ASL source' in [acpi](../acpi/kernelspace.md) for setup guideline.
+
- cd ../../acpi/ipu7
- ../../script/gen_ssdt.sh max96724_d3_ar0234.asl
+### ASL Configuration for IPU8
-#### Setup for IPU8
+
+ MAX96724 CPHY + 8x D3 AR0234 GMSL sensors use case
+(Back to Hardware Setup)
-> **Note:** Configuration is performed using SSDT ACPI method based on [MAX96724 AIC (C-PHY) (REV A) Connection](#max96724-aic-c-phy-rev-a-connection). Please visit 'Compile and Load ACPI ASL source' in [acpi](../acpi/kernelspace.md) for setup guideline.
+>**ASL:** [max96724_d3_ar0234.asl](../../acpi/ipu8/max96724_d3_ar0234.asl)
- cd ../../acpi/ipu8
- ../../script/gen_ssdt.sh max96724_d3_ar0234.asl
+
-## Camera Configuration File Setup
+---
+## Libcamhal Configuration File Setup (BIOS Configured Systems)
-#### Setup for IPU6EPMTL
+#### Libcamhal Config for IPU6EPMTL
-Replace target system with recommended [ipu6epmtl](../../config/ar0234/ipu6epmtl) setting
+
+2x GMSL sensors use case
-> **Note:** Add config below only if using x2 GMSL sensors.
+Please use recommended config from [ipu6epmtl](../../config/ar0234/ipu6epmtl).
sudo cp -r ../../config/ar0234/ipu6epmtl /etc/camera
sudo sed -i '/availableSensors/c\ ' /etc/camera/ipu6epmtl/libcamhal_profile.xml
-#### Setup for IPU75XA
+
-Replace target system with recommended [ipu75xa](../../config/ar0234/ipu75xa) setting
+---
+## Libcamhal Configuration File Setup (ASL Configured Systems)
+
+#### Libcamhal Config for IPU6EPMTL
+
+
+2x GMSL sensors use case
+
+Please use config from [ipu6epmtl](../../config/ar0234/ipu6epmtl).
+
+ sudo cp -r ../../config/ar0234/ipu6epmtl /etc/camera
+
+
+
+#### Libcamhal Config for IPU75XA
+
+
+8x GMSL sensors use case
+
+Please use recommended config from [ipu75xa](../../config/ar0234/ipu75xa).
sudo cp -r ../../config/ar0234/ipu75xa /etc/camera
- ../../script/acpi/mc-setup.sh
-#### Setup for IPU8
+
+
+#### Libcamhal Config for IPU8
+
+
+8x GMSL sensors use case
-Replace target system with recommended [ipu8](../../config/ar0234/ipu8) setting
+Please use recommended config from [ipu8](../../config/ar0234/ipu8).
sudo cp -r ../../config/ar0234/ipu8 /etc/camera
- ../../script/acpi/mc-setup.sh
-## Camera Tuning File Setup
+
-#### Setup for IPU6EPMTL
+---
+## Libcamhal Tuning File Setup
-Import [AR0234_TGL_10bits.aiqb](https://github.com/intel/ipu6-camera-hal/blob/iotg_ipu6/config/linux/ipu6epmtl/AR0234_TGL_10bits.aiqb) into target system `/etc/camera/ipu6epmtl`
+RAW sensor required respective tuning configuration files below for streaming:
-#### Setup for IPU75XA
+1. Arithmetic Image Quality Binary (AIQB)
+2. Graph Setting Configuration (GCSS)
-> **TODO:** No action needed for now, will revisit once AIQB config available in [ipu7-camera-hal](https://github.com/intel/ipu7-camera-hal/tree/main/config/linux/ipu75xa).
+#### Libcamhal Tuning for IPU6EPMTL
-#### Setup for IPU8
+1. Download [AR0234_TGL_10bits.aiqb](https://github.com/intel/ipu6-camera-hal/blob/iotg_ipu6/config/linux/ipu6epmtl/AR0234_TGL_10bits.aiqb)
+2. Download [graph_settings_ar0234.xml](https://github.com/intel/ipu6-camera-hal/blob/iotg_ipu6/config/linux/ipu6epmtl/gcss/graph_settings_ar0234.xml)
+3. Copy the files into target system:
-> **TODO:** No action needed for now, will revisit once AIQB config available in [ipu7-camera-hal](https://github.com/intel/ipu7-camera-hal/tree/main/config/linux/ipu8).
+ ```
+ sudo cp AR0234_TGL_10bits.aiqb /etc/camera/ipu6epmtl
+ sudo cp graph_settings_ar0234.xml /etc/camera/ipu6epmtl/gcss
+ ```
-## Environment Setup
+#### Libcamhal Tuning for IPU75XA
-> **Note:** PSYS library requires superuser access, please login as root to run the sample commands given below.
+The tuning files are available in [ipu75xa](../../config/ar0234/ipu75xa). In the future, this will be hosted at [here](https://github.com/intel/ipu7-camera-hal/tree/main/config/linux/ipu75xa).
-Export environment variables below
+#### Libcamhal Tuning for IPU8
- unset XDG_RUNTIME_DIR
- export DISPLAY=:0; xhost +
- export GST_PLUGIN_PATH=/usr/lib/gstreamer-1.0
- export LIBVA_DRIVER_NAME=iHD
- export GST_GL_API=gles2
- export GST_GL_PLATFORM=egl
- export LIBVA_DRIVERS_PATH=/usr/lib/x86_64-linux-gnu/dri
- export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:/usr/lib64/pkgconfig:/usr/lib/pkgconfig
- export LD_LIBRARY_PATH=/usr/local/lib/pkgconfig:/usr/local/lib:/usr/lib64:/usr/lib:/usr/lib/x86_64-linux-gnu
- export logSink=terminal
- rm -rf ~/.cache/gstreamer-1.0
+The tuning files are available in [ipu8](../../config/ar0234/ipu8). In the future, this will be hosted at [here](https://github.com/intel/ipu7-camera-hal/tree/main/config/linux/ipu8).
-(Required for IPU6 only) Configure isys_freq value
+---
+## Auto Media-Ctl Routing Setup (ASL Configured Systems)
- sudo bash -c 'echo "options intel-ipu6 isys_freq_override=475" >> /etc/modprobe.d/ipu.conf'
+Please refer to [How to use mc-setup.sh](../acpi/userspace-gmsl.md#how-to-use-mc-setupsh)
+---
## Sensor Verification
-Upon setup completion, verify sensor with:
+After completing the setup, verify that the sensor is probed and registered with the V4L2 framework:
media-ctl -p
+When using the BIOS configuration, the output for a single camera should look like the example below.
+

-## Sample Userspace Command
+---
+## Stream Verification
-> **Note:** PSYS library requires superuser access, please login as root to run the sample commands given below.
+Follow the sections below to verify streaming:
-> **Attention:** If target is setup using BIOS MIPI Camera Configuration, please replace 'device-name' format in sample commands below from 'ar0234_acpi-' to 'ar0234-'. For example, 'ar0234_acpi-1' become 'ar0234-1'.
+- [Environment Setup](#environment-setup)
+- [Stream with GStreamer icamerasrc](#stream-with-gstreamer-icamerasrc)
-#### Sensor Device Selection
+For more details on verification setup guide, please refer to [construct-pipeline](../acpi/userspace-gmsl.md#construct-pipeline) & [stream-verification](../acpi/userspace-gmsl.md#stream-verification).
-| Sensor Number | Command Pipeline |
-|---|---|
-| 1 | gst-launch-1.0 icamerasrc num-buffers=-1 num-vc=1 scene-mode=normal device-name=ar0234_acpi-1 printfps=true io-mode=dma_mode ! 'video/x-raw(memory:DMABuf),drm-format=NV12,width=1280,height=960' ! glimagesink sync=false |
-| 2 | gst-launch-1.0 icamerasrc num-buffers=-1 num-vc=1 scene-mode=normal device-name=ar0234_acpi-2 printfps=true io-mode=dma_mode ! 'video/x-raw(memory:DMABuf),drm-format=NV12,width=1280,height=960' ! glimagesink sync=false |
-| N | gst-launch-1.0 icamerasrc num-buffers=-1 num-vc=1 scene-mode=normal device-name=ar0234_acpi-N printfps=true io-mode=dma_mode ! 'video/x-raw(memory:DMABuf),drm-format=NV12,width=1280,height=960' ! glimagesink sync=false |
+### Environment Setup
-> **Note**: Refer to icamerasrc device-name property for more sensor details.
+Export the environment variables below:
-##### How to relate Sensor Number N with AIC Link Port
+ unset XDG_RUNTIME_DIR
+ export DISPLAY=:0; xhost +
+ export GST_PLUGIN_PATH=/usr/lib/gstreamer-1.0
+ export LIBVA_DRIVER_NAME=iHD
+ export GST_GL_API=gles2
+ export GST_GL_PLATFORM=egl
+ export LIBVA_DRIVERS_PATH=/usr/lib/x86_64-linux-gnu/dri
+ export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:/usr/lib64/pkgconfig:/usr/lib/pkgconfig
+ export LD_LIBRARY_PATH=/usr/local/lib/pkgconfig:/usr/local/lib:/usr/lib64:/usr/lib:/usr/lib/x86_64-linux-gnu
+ export logSink=terminal
+ rm -rf ~/.cache/gstreamer-1.0
-
-Sensor Number N For MAX9296 AIC
+For IPU6 only, configure the `isys_freq` value:
-| Link Port | Sensor Number |
-|---|---|
-| A | 1 |
-| B | 2 |
-| C | 3 |
-| D | 4 |
+ sudo bash -c 'echo "options intel-ipu6 isys_freq_override=475" >> /etc/modprobe.d/ipu.conf'
-
+### Stream with GStreamer icamerasrc
-
-Sensor Number N For MAX96724 AIC
+> **Note:** PSYS library requires superuser access, please login as root to run the sample commands given below.
-| Link Port | Sensor Number |
-|---|---|
-| A | 1 |
-| B | 2 |
-| C | 3 |
-| D | 4 |
-| E | 5 |
-| F | 6 |
-| G | 7 |
-| H | 8 |
+#### Device Name Selection
-
+| AIC Link | Supported Device-name | Command Pipeline |
+|---|---|---|
+| A | ar0234_acpi-1 | gst-launch-1.0 icamerasrc num-buffers=-1 num-vc=1 scene-mode=normal device-name=ar0234_acpi-1 printfps=true io-mode=dma_mode ! 'video/x-raw(memory:DMABuf),drm-format=NV12,width=1280,height=960' ! glimagesink sync=false |
+| B | ar0234_acpi-2 | gst-launch-1.0 icamerasrc num-buffers=-1 num-vc=1 scene-mode=normal device-name=ar0234_acpi-2 printfps=true io-mode=dma_mode ! 'video/x-raw(memory:DMABuf),drm-format=NV12,width=1280,height=960' ! glimagesink sync=false |
+| C | ar0234_acpi-3 | gst-launch-1.0 icamerasrc num-buffers=-1 num-vc=1 scene-mode=normal device-name=ar0234_acpi-3 printfps=true io-mode=dma_mode ! 'video/x-raw(memory:DMABuf),drm-format=NV12,width=1280,height=960' ! glimagesink sync=false |
+| D | ar0234_acpi-4 | gst-launch-1.0 icamerasrc num-buffers=-1 num-vc=1 scene-mode=normal device-name=ar0234_acpi-4 printfps=true io-mode=dma_mode ! 'video/x-raw(memory:DMABuf),drm-format=NV12,width=1280,height=960' ! glimagesink sync=false |
+| E | ar0234_acpi-5 | gst-launch-1.0 icamerasrc num-buffers=-1 num-vc=1 scene-mode=normal device-name=ar0234_acpi-5 printfps=true io-mode=dma_mode ! 'video/x-raw(memory:DMABuf),drm-format=NV12,width=1280,height=960' ! glimagesink sync=false |
+| F | ar0234_acpi-6 | gst-launch-1.0 icamerasrc num-buffers=-1 num-vc=1 scene-mode=normal device-name=ar0234_acpi-6 printfps=true io-mode=dma_mode ! 'video/x-raw(memory:DMABuf),drm-format=NV12,width=1280,height=960' ! glimagesink sync=false |
+| G | ar0234_acpi-7 | gst-launch-1.0 icamerasrc num-buffers=-1 num-vc=1 scene-mode=normal device-name=ar0234_acpi-7 printfps=true io-mode=dma_mode ! 'video/x-raw(memory:DMABuf),drm-format=NV12,width=1280,height=960' ! glimagesink sync=false |
+| H | ar0234_acpi-8 | gst-launch-1.0 icamerasrc num-buffers=-1 num-vc=1 scene-mode=normal device-name=ar0234_acpi-8 printfps=true io-mode=dma_mode ! 'video/x-raw(memory:DMABuf),drm-format=NV12,width=1280,height=960' ! glimagesink sync=false |
+
+> **Attention:** If the target is set up using "ACPI Setup - BIOS Configuration", replace the 'device-name' prefix in the sample commands above from 'ar0234_acpi-' to 'ar0234-'. For example, 'ar0234_acpi-1' becomes 'ar0234-1'.
+
+> **Note:** Link ports E, F, G, and H apply only to the MAX96724 AIC.
+
+> **Note**: Refer to icamerasrc device-name property for more sensor details.
#### Frame Buffer Memory Type (IO Mode) Selection
@@ -293,8 +363,8 @@ Upon setup completion, verify sensor with:
Multi-stream support can be configured using either of the following approaches:
-- Multiprocessing
-- Multithreading
+- [Multiprocessing Multi-Stream](#multiprocessing-multi-stream)
+- [Multithreading Multi-Stream](#multithreading-multi-stream)
##### Multiprocessing Multi-Stream
@@ -318,21 +388,28 @@ Open a terminal window and run the command below, replacing the sensor number as
> **Note**: Known VC limitation (max vc=5) for multi-stream. \
For example, to enable 8 streams, user can launch 2 terminals, with each terminal running x4 streams.
+---
## Streaming Result
-| Number of Stream | IO Mode | FPS Result |
-|--- |--- |--- |
-| x1 | USERPTR | 30 |
-| x1 | DMA MODE | 30 |
-| x2 | USERPTR | 30 |
-| x2 | DMA MODE | 30 |
-| x4 | USERPTR | 30 |
-| x4 | DMA MODE | 30 |
-| x8 | USERPTR | 30 |
-| x8 | DMA MODE | 30 |
+> **Note:** Please ensure your system supports the specified number of streams before testing.
-> **Note:** Please ensure your system enable support for specified number of stream before test.
+| Number of Streams | IO Mode | FPS Result |ipu6ep|ipu6epmtl|ipu75xa|ipu8|
+|:----------------:|:--------:|:----------:|:----:|:-------:|:-----:|:--:|
+| x1 | USERPTR | 30 |❌|✅|✅|✅|
+| x2 | USERPTR | 30 |❌|✅|✅|✅|
+| x4 | USERPTR | 30 |❌|❌|✅|✅|
+| x8 | USERPTR | 30 |❌|❌|✅|❌|
+| x1 | DMA MODE | 30 |❌|✅|✅|✅|
+| x2 | DMA MODE | 30 |❌|✅|✅|✅|
+| x4 | DMA MODE | 30 |❌|❌|✅|✅|
+| x8 | DMA MODE | 30 |❌|❌|✅|❌|
----
+### Highest Bandwidth Configuration
+The highest-bandwidth configurations tested are listed below.
+
+ 1. CPHY 2-lane per MIPI Port
+ - 8x 1280x960 @ 30fps (default)
+
+---
[↑ Back to Top](#description)
diff --git a/doc/ar0234/userspace-mipi.md b/doc/ar0234/userspace-mipi.md
index ce2878f5..55d658a2 100644
--- a/doc/ar0234/userspace-mipi.md
+++ b/doc/ar0234/userspace-mipi.md
@@ -2,48 +2,58 @@
This document details the configuration settings for the AR0234 MIPI CSI-2 sensor, providing essential information for system integration. The table below presents the key parameters and their respective values used during system setup and validation.
-
-
- Table of Contents
-
- - BIOS Configuration Table
- - MIPI Camera Configuration
-
-
- - Camera Configuration File Setup
-
-
- - Camera Tuning File Setup
-
-
- - Environment Setup
- - Sensor Verification
- - Sample Userspace Command
- - Streaming Result
-
-
+## Table of Contents
+
+- [ACPI Setup - BIOS Configuration](#acpi-setup---bios-configuration)
+ - [Sensor ACPI HID](#sensor-acpi-hid)
+ - [BIOS Settings for IPU6EPMTL](#bios-settings-for-ipu6epmtl)
+ - [BIOS Settings for IPU75XA](#bios-settings-for-ipu75xa)
+ - [BIOS Settings for IPU8](#bios-settings-for-ipu8)
+- [Libcamhal Configuration File Setup (BIOS Configured Systems)](#libcamhal-configuration-file-setup-bios-configured-systems)
+ - [Libcamhal Config for IPU6EPMTL](#libcamhal-config-for-ipu6epmtl)
+ - [Libcamhal Config for IPU75XA](#libcamhal-config-for-ipu75xa)
+ - [Libcamhal Config for IPU8](#libcamhal-config-for-ipu8)
+- [Libcamhal Tuning File Setup](#libcamhal-tuning-file-setup)
+ - [Libcamhal Tuning for IPU6EPMTL](#libcamhal-tuning-for-ipu6epmtl)
+ - [Libcamhal Tuning for IPU75XA](#libcamhal-tuning-for-ipu75xa)
+ - [Libcamhal Tuning for IPU8](#libcamhal-tuning-for-ipu8)
+- [Sensor Verification](#sensor-verification)
+- [Stream Verification](#stream-verification)
+ - [Environment Setup](#environment-setup)
+ - [Stream with GStreamer icamerasrc](#stream-with-gstreamer-icamerasrc)
+ - [Device Name Selection](#device-name-selection)
+ - [Frame Buffer Memory Type (IO Mode) Selection](#frame-buffer-memory-type-io-mode-selection)
+ - [Sensor Resolution Selection](#sensor-resolution-selection)
+ - [Sensor Format Selection](#sensor-format-selection)
+ - [Multi-Stream Selection](#multi-stream-selection)
+- [Streaming Result](#streaming-result)
+ - [Highest Bandwidth Configuration](#highest-bandwidth-configuration)
-## BIOS Configuration Table
+---
+## ACPI Setup - BIOS Configuration
-> **Note:** No External Clock required.
+Using the BIOS configuration exercises the [ipu-acpi](../../drivers/media/platform/intel/) and [max9x](../../drivers/media/i2c/max9x/) drivers.
+
+### Sensor ACPI HID
+
+Use the sensor ACPI HID in the **Custom HID** field.
+
+| Vendor | Sensor ACPI HID |
+|-----------------|:---------------:|
+| D3 Embedded | INTC10C0 |
+
+### BIOS Settings for IPU6EPMTL
+
+
+2x AR0234
-## MIPI Camera Configuration
+> **Note:** No External Clock required.
-#### Setup for IPU6EPMTL
+>**BIOS Camera Option 1 Path:**\
+ `Intel Advanced Menu`->`System Agent (SA) Configuration`->`MIPI Camera Configuration` -> `Control Logic 1` -> **Enabled**
-Config path: `Intel Advanced Menu`->`System Agent (SA) Configuration`->`MIPI Camera Configuration`
+ >**BIOS Camera Option 2 Path:**\
+ `Intel Advanced Menu`->`System Agent (SA) Configuration`->`MIPI Camera Configuration` -> `Control Logic 2` -> **Enabled**
| | Control Logic 1 | Control Logic 2 |
|--- |--- | --- |
@@ -56,6 +66,12 @@ Config path: `Intel Advanced Menu`->`System Agent (SA) Configuration`->`MIPI Cam
| Active Value | 1 | 1 |
| Initial Value | 1 | 1 |
+>**BIOS Camera Option 1 Path:**\
+ `Intel Advanced Menu`->`System Agent (SA) Configuration`->`MIPI Camera Configuration` -> `Camera Option 1` -> **Enabled**
+
+ >**BIOS Camera Option 2 Path:**\
+ `Intel Advanced Menu`->`System Agent (SA) Configuration`->`MIPI Camera Configuration` -> `Camera Option 2` -> **Enabled**
+
| | Camera1 Link options | Camera2 Link options |
|--- |--- | --- |
| Sensor Model | User Custom | User Custom |
@@ -86,9 +102,20 @@ Config path: `Intel Advanced Menu`->`System Agent (SA) Configuration`->`MIPI Cam
| Customize Device ID Number | 19 | 19 |
| Flash Driver Selection | Disabled | Disabled |
-#### Setup for IPU75XA
+
+
+### BIOS Settings for IPU75XA
+
+
+2x AR0234
+
+> **Note:** No External Clock required.
+
+>**BIOS Camera Option 1 Path:**\
+ `Intel Advanced Menu`->`System Agent (SA) Configuration`->`MIPI Camera Configuration` -> `Control Logic 1` -> **Enabled**
-Config path: `Intel Advanced Menu`->`System Agent (SA) Configuration`->`MIPI Camera Configuration`
+ >**BIOS Camera Option 2 Path:**\
+ `Intel Advanced Menu`->`System Agent (SA) Configuration`->`MIPI Camera Configuration` -> `Control Logic 2` -> **Enabled**
| | Control Logic 1 | Control Logic 2 |
|--- |--- |--- |
@@ -106,6 +133,12 @@ Config path: `Intel Advanced Menu`->`System Agent (SA) Configuration`->`MIPI Cam
| Initial Value | 0 | 0 |
| Interrupt GPIO | Disabled | Disabled |
+>**BIOS Camera Option 1 Path:**\
+ `Intel Advanced Menu`->`System Agent (SA) Configuration`->`MIPI Camera Configuration` -> `Camera Option 1` -> **Enabled**
+
+ >**BIOS Camera Option 2 Path:**\
+ `Intel Advanced Menu`->`System Agent (SA) Configuration`->`MIPI Camera Configuration` -> `Camera Option 2` -> **Enabled**
+
| | Camera1 Link options | Camera2 Link options |
|--- |--- | --- |
| Sensor Model | User Custom | User Custom |
@@ -137,9 +170,20 @@ Config path: `Intel Advanced Menu`->`System Agent (SA) Configuration`->`MIPI Cam
| Customize Device ID Number | 19 | 19 |
| Flash Driver Selection | Disabled | Disabled |
-#### Setup for IPU8
+
+
+### BIOS Settings for IPU8
+
+
+2x AR0234
+
+> **Note:** No External Clock required.
+
+>**BIOS Camera Option 1 Path:**\
+ `Intel Advanced Menu`->`System Agent (SA) Configuration`->`MIPI Camera Configuration` -> `Control Logic 1` -> **Enabled**
-Config path: `Intel Advanced Menu`->`System Agent (SA) Configuration`->`MIPI Camera Configuration`
+ >**BIOS Camera Option 2 Path:**\
+ `Intel Advanced Menu`->`System Agent (SA) Configuration`->`MIPI Camera Configuration` -> `Control Logic 2` -> **Enabled**
| | Control Logic 1 | Control Logic 2 |
|--- |--- |--- |
@@ -157,6 +201,12 @@ Config path: `Intel Advanced Menu`->`System Agent (SA) Configuration`->`MIPI Cam
| Initial Value | 0 | 0 |
| Interrupt GPIO | Disabled | Disabled |
+>**BIOS Camera Option 1 Path:**\
+ `Intel Advanced Menu`->`System Agent (SA) Configuration`->`MIPI Camera Configuration` -> `Camera Option 1` -> **Enabled**
+
+ >**BIOS Camera Option 2 Path:**\
+ `Intel Advanced Menu`->`System Agent (SA) Configuration`->`MIPI Camera Configuration` -> `Camera Option 2` -> **Enabled**
+
| | Camera1 Link options | Camera2 Link options |
|--- |--- | --- |
| Sensor Model | User Custom | User Custom |
@@ -188,52 +238,94 @@ Config path: `Intel Advanced Menu`->`System Agent (SA) Configuration`->`MIPI Cam
| Customize Device ID Number | 19 | 19 |
| Flash Driver Selection | Disabled | Disabled |
-## Camera Configuration File Setup
+
-#### Setup for IPU6EPMTL
+---
+## Libcamhal Configuration File Setup (BIOS Configured Systems)
+
+#### Libcamhal Config for IPU6EPMTL
-Replace target system with recommended [ipu6epmtl](../../config/ar0234/ipu6epmtl) setting
+
+2x MIPI sensors use case
-> **Note:** Add config below only if using x2 MIPI sensors.
+Please use recommended config from [ipu6epmtl](../../config/ar0234/ipu6epmtl).
sudo cp -r ../../config/ar0234/ipu6epmtl /etc/camera
sudo sed -i '/availableSensors/c\ ' /etc/camera/ipu6epmtl/libcamhal_profile.xml
-#### Setup for IPU75XA
+
+
+#### Libcamhal Config for IPU75XA
-Replace target system with recommended [ipu75xa](../../config/ar0234/ipu75xa) setting
+
+2x MIPI sensors use case
-> **Note:** Add config below only if using x2 MIPI sensors.
+Please use recommended config from [ipu75xa](../../config/ar0234/ipu75xa).
sudo cp -r ../../config/ar0234/ipu75xa /etc/camera
-#### Setup for IPU8
+
-Replace target system with recommended [ipu8](../../config/ar0234/ipu8) setting
+#### Libcamhal Config for IPU8
+
+
+2x MIPI sensors use case
-> **Note:** Add config below only if using x2 MIPI sensors.
+Please use recommended config from [ipu8](../../config/ar0234/ipu8).
sudo cp -r ../../config/ar0234/ipu8 /etc/camera
-## Camera Tuning File Setup
+
+
+---
+## Libcamhal Tuning File Setup
-#### Setup for IPU6EPMTL
+RAW sensor required respective tuning configuration files below for streaming:
-Import [AR0234_TGL_10bits.aiqb](https://github.com/intel/ipu6-camera-hal/blob/iotg_ipu6/config/linux/ipu6epmtl/AR0234_TGL_10bits.aiqb) into target system `/etc/camera/ipu6epmtl`
+1. Arithmetic Image Quality Binary (AIQB)
+2. Graph Setting Configuration (GCSS)
-#### Setup for IPU75XA
+#### Libcamhal Tuning for IPU6EPMTL
-> **TODO:** No action needed for now, will revisit once AIQB config available in [ipu7-camera-hal](https://github.com/intel/ipu7-camera-hal/tree/main/config/linux/ipu75xa).
+1. Download [AR0234_TGL_10bits.aiqb](https://github.com/intel/ipu6-camera-hal/blob/iotg_ipu6/config/linux/ipu6epmtl/AR0234_TGL_10bits.aiqb)
+2. Download [graph_settings_ar0234.xml](https://github.com/intel/ipu6-camera-hal/blob/iotg_ipu6/config/linux/ipu6epmtl/gcss/graph_settings_ar0234.xml)
+3. Copy the files into target system:
-#### Setup for IPU8
+ ```
+ sudo cp AR0234_TGL_10bits.aiqb /etc/camera/ipu6epmtl
+ sudo cp graph_settings_ar0234.xml /etc/camera/ipu6epmtl/gcss
+ ```
-> **TODO:** No action needed for now, will revisit once AIQB config available in [ipu7-camera-hal](https://github.com/intel/ipu7-camera-hal/tree/main/config/linux/ipu8).
+#### Libcamhal Tuning for IPU75XA
-## Environment Setup
+The tuning files are available in [ipu75xa](../../config/ar0234/ipu75xa). In the future, this will be hosted at [here](https://github.com/intel/ipu7-camera-hal/tree/main/config/linux/ipu75xa).
-> **Note:** PSYS library requires superuser access, please login as root to run the sample commands given below.
+#### Libcamhal Tuning for IPU8
+
+The tuning files are available in [ipu8](../../config/ar0234/ipu8). In the future, this will be hosted at [here](https://github.com/intel/ipu7-camera-hal/tree/main/config/linux/ipu8).
+
+---
+## Sensor Verification
+
+After completing the setup, verify that the sensor is probed and registered with the V4L2 framework:
+
+ media-ctl -p
+
+When using the BIOS configuration, the output for a single camera should look like the example below.
+
+
+
+---
+## Stream Verification
+
+Follow the sections below to verify streaming:
+
+- [Environment Setup](#environment-setup)
+- [Stream with GStreamer icamerasrc](#stream-with-gstreamer-icamerasrc)
-Export environment variables below
+### Environment Setup
+
+Export the environment variables below:
unset XDG_RUNTIME_DIR
export DISPLAY=:0; xhost +
@@ -247,28 +339,20 @@ Export environment variables below
export logSink=terminal
rm -rf ~/.cache/gstreamer-1.0
-(Required for IPU6 only) Configure isys_freq value
+For IPU6 only, configure the `isys_freq` value:
sudo bash -c 'echo "options intel-ipu6 isys_freq_override=475" >> /etc/modprobe.d/ipu.conf'
-## Sensor Verification
-
-Upon setup completion, verify sensor with:
-
- media-ctl -p
-
-
-
-## Sample Userspace Command
+### Stream with GStreamer icamerasrc
> **Note:** PSYS library requires superuser access, please login as root to run the sample commands given below.
-#### Sensor Device Selection
+#### Device Name Selection
-| MIPI Port | Command Pipeline |
-|---|---|
-| CRD1 | gst-launch-1.0 icamerasrc num-buffers=-1 scene-mode=normal device-name=ar0234-a printfps=true io-mode=dma_mode ! 'video/x-raw(memory:DMABuf),drm-format=NV12,width=1280,height=960' ! glimagesink sync=false |
-| CRD2 | gst-launch-1.0 icamerasrc num-buffers=-1 scene-mode=normal device-name=ar0234-b printfps=true io-mode=dma_mode ! 'video/x-raw(memory:DMABuf),drm-format=NV12,width=1280,height=960' ! glimagesink sync=false |
+| MIPI Port | Supported Device-name | Command Pipeline |
+|---|---|---|
+| CRD1 | ar0234-a | gst-launch-1.0 icamerasrc num-buffers=-1 scene-mode=normal device-name=ar0234-a printfps=true io-mode=dma_mode ! 'video/x-raw(memory:DMABuf),drm-format=NV12,width=1280,height=960' ! glimagesink sync=false |
+| CRD2 | ar0234-b | gst-launch-1.0 icamerasrc num-buffers=-1 scene-mode=normal device-name=ar0234-b printfps=true io-mode=dma_mode ! 'video/x-raw(memory:DMABuf),drm-format=NV12,width=1280,height=960' ! glimagesink sync=false |
> **Note**: Refer to icamerasrc device-name property for more sensor details.
@@ -293,24 +377,29 @@ Upon setup completion, verify sensor with:
|---|---|
| NV12 | gst-launch-1.0 icamerasrc num-buffers=-1 scene-mode=normal device-name=ar0234-a printfps=true io-mode=dma_mode ! 'video/x-raw(memory:DMABuf),drm-format=NV12,width=1280,height=960' ! glimagesink sync=false |
-#### Number of Stream (Single Stream / Multi Stream) Selection
+#### Multi-Stream Selection
-| Number of Stream | Command Pipeline |
+| Number of Streams | Command Pipeline |
|---|---|
| x1 | gst-launch-1.0 icamerasrc num-buffers=-1 scene-mode=normal device-name=ar0234-a printfps=true io-mode=dma_mode ! 'video/x-raw(memory:DMABuf),drm-format=NV12,width=1280,height=960' ! glimagesink sync=false |
| x2 | gst-launch-1.0 icamerasrc num-buffers=-1 scene-mode=normal device-name=ar0234-a printfps=true io-mode=dma_mode ! 'video/x-raw(memory:DMABuf),drm-format=NV12,width=1280,height=960' ! glimagesink sync=false icamerasrc num-buffers=-1 scene-mode=normal device-name=ar0234-b printfps=true io-mode=dma_mode ! 'video/x-raw(memory:DMABuf),drm-format=NV12,width=1280,height=960' ! glimagesink sync=false |
+---
## Streaming Result
-| Number of Stream | IO Mode | FPS Result |
-|--- |--- |--- |
-| x1 | USERPTR | 30 |
-| x1 | DMA MODE | 30 |
-| x2 | USERPTR | 30 |
-| x2 | DMA MODE | 30 |
+| Number of Streams | IO Mode | FPS Result |ipu6ep|ipu6epmtl|ipu75xa|ipu8|
+|:----------------:|:--------:|:----------:|:----:|:-------:|:-----:|:--:|
+| x1 | USERPTR | 30 |❌|✅|✅|✅|
+| x2 | USERPTR | 30 |❌|✅|✅|✅|
+| x1 | DMA MODE | 30 |❌|✅|✅|✅|
+| x2 | DMA MODE | 30 |❌|✅|✅|✅|
-> **Note**: Refer to [README.md](https://github.com/intel-innersource/drivers.camera.scaling.sensor) for system setup prerequisite.
+### Highest Bandwidth Configuration
----
+The highest-bandwidth configurations tested are listed below.
+ 1. CPHY 2-lane per MIPI Port
+ - 2x 1280x960 @ 30fps (default)
+
+---
[↑ Back to Top](#description)
diff --git a/doc/d4xx/userspace-gmsl.md b/doc/d4xx/userspace-gmsl.md
index 669a3f8e..65dd0446 100644
--- a/doc/d4xx/userspace-gmsl.md
+++ b/doc/d4xx/userspace-gmsl.md
@@ -655,7 +655,7 @@ Hence, pipeline will be configured as UYVY8_1X16 for Depth stream, but Video Nod
>**Note:** This step is only necessary when streaming with the RealSense SDK. If you are using v4l2src or v4l2-ctl, you can skip it and use the video device directly.
-Running the script below creates symlinks for the video devices used by the RealSense SDK. The symlink must be used with librealsense pull request [#15007](https://github.com/IntelRealSense/librealsense/pull/15007).
+Running the script below creates symlinks for the video devices used by the RealSense SDK. The symlink must be used with librealsense pull request [#15636](https://github.com/IntelRealSense/librealsense/pull/15636).
sudo ../../script/d4xx/upstream-rs-enum.sh
@@ -672,7 +672,7 @@ For example, if the Depth and RGB streams from link 0 on DES0 are enabled, the D
##### Sample Subdev Symlink
-The subdev symlink uses the syntax video-rs-{stream-type}-sd-{index}. The stream type and index follow the same rule as the capture-node symlink, except that the target is the subdev node instead of the video capture node. The subdev node is used to configure the sensor, and it is required for librealsense pull request [#15007](https://github.com/IntelRealSense/librealsense/pull/15007).
+The subdev symlink uses the syntax video-rs-{stream-type}-sd-{index}. The stream type and index follow the same rule as the capture-node symlink, except that the target is the subdev node instead of the video capture node. The subdev node is used to configure the sensor, and it is required for librealsense pull request [#15636](https://github.com/IntelRealSense/librealsense/pull/15636).
| Sample Entity | Sample symlink |
| --- | --- |
@@ -688,8 +688,8 @@ There are SDK changes to support Intel IPU that are currently under review.
git clone https://github.com/realsenseai/librealsense.git
cd librealsense
- git fetch origin pull/15007/head:pr-15007
- git checkout pr-15007
+ git fetch origin pull/15636/head:pr-15636
+ git checkout pr-15636
mkdir build && cd build
cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local
make -j2