[Linux开发][多媒体][RDK X5] MAX96724+4×MAX96717 GMSL2 聚合 4 路相机的驱动编写与每路 CSI 支持的 VC 数量咨询

## 一、问题简述

在 RDK X5 上使用 **MAX96724(四路 GMSL2 解串器)+ 4×MAX96717(串行器)** 聚合

**4 颗 Deptrum Libra2000 深度相机**,通过 **两路 4-lane MIPI CSI-2 D-PHY** 接入 X5,

每路 CSI 用 Virtual Channel 承载 2 颗相机。现就 **驱动接入方式**

**单路 CSI 的 VC 支持能力** 咨询官方,恳请指导。

## 二、软硬件环境

| 项目 | 内容 |

| :— | :— |

| 板卡型号 | RDK X5 |

| 系统版本 | RDK OS(Ubuntu) |

| 内核版本 | Linux 6.1.83 |

| 采集框架 | HBN(VIN / SIF / ISP / VSE),V4L2 sif-isp-vse 模式 |

| 解串器 | Maxim / ADI MAX96724(Quad GMSL2 → CSI-2) |

| 串行器 | Maxim / ADI MAX96717 ×4 |

| 相机模组 | Deptrum Libra2000 ×4(内置 ISP,2-lane D-PHY,UYVY,1080×2912@30fps) |

| 相机参数 | link-freq 648MHz,pixel_rate 162MHz,CSI-2 DT=0x1e(YUV422-8bit) |

## 三、系统架构

```text

Cam0 Libra2000 ─2lane DPHY─ MAX96717(A) ─LinkA─┐

Cam1 Libra2000 ─2lane DPHY─ MAX96717(B) ─LinkB─┼─ CSI OUT0 (VC0/VC1) ─→ X5 CSI0

Cam2 Libra2000 ─2lane DPHY─ MAX96717(C) ─LinkC─┤

Cam3 Libra2000 ─2lane DPHY─ MAX96717(D) ─LinkD─┴─ CSI OUT1 (VC0/VC1) ─→ X5 CSI1

                                MAX96724

```

- MAX96724 输出配置为 **2×4-lane D-PHY**,每路 CSI 承载 2 颗相机,用 **VC0 / VC1** 区分。

- X5 仅用 **一条 I2C** 控制 MAX96724;4 颗 MAX96717 与 4 颗 Libra2000 均通过

**GMSL 反向通道 + I2C 地址翻译** 访问。

## 四、咨询问题

**Q1|单路 CSI 支持多少个 VC**

RDK X5 单个 MIPI CSI RX(CSI0 / CSI1)在 HBN / SIF 层最多能同时接收并分离几个

Virtual Channel?是否支持同一路 CSI 上将 VC0 / VC1 拆分为 2 个独立采集通道?

**Q2|VC 分流后的设备节点映射**

当一路 CSI 进入 2 个 VC 时,SIF / ISP / VSE 会各自生成独立的 `/dev/videoX` 节点吗?

还是需要在 sensor driver 或 DTS 中显式声明每个 VC?能否提供

**4 相机(CSI0=2VC + CSI1=2VC)** 对应的 `media-ctl -p` 拓扑示例?

**Q3|第三方 GMSL 解串器的接入方式**

MAX96724 对 X5 而言是一个 CSI-2 bridge(非标准 Bayer sensor),建议采用哪种方式接入:

- (a) 写成标准 **V4L2 sub-device sensor driver**(sif-isp-vse 模式);

- (b) HBN 常规模式下用 **vnode / vflow** 自定义。

官方是否已有 **MAX96724 / MAX9296 或其它 GMSL 解串器** 的参考 driver 或 DTS 模板可供参考?

**Q4|相机内置 ISP 时能否绕过 X5 ISP**

Libra2000 已内置 ISP,输出 **UYVY(DT=0x1e)** 与 depth **RAW16**。X5 能否直接

SIF → DDR 抓取 UYVY,绕过 X5 ISP tuning?若同一颗相机同时输出 UYVY 与 RAW16 多

stream,VC / Data Type 在 X5 侧应如何配置?

**Q5|DTS 端点绑定**

MAX96724 的两路 4-lane D-PHY 输出接 CSI0 / CSI1,X5 侧 CSI 接收端的正确节点名与

endpoint 写法能否提供官方示例?(`&mipi_csi0` / `&csi0` / VIN cam0 等命名在不同

BSP 版本似乎不一致。)

## 五、已做的工作与参考

- 已研读官方文档《V4L2 使用》:VIN / SIF / ISP / VSE 说明、`/dev/videoX` 映射表、

`media-ctl` 拓扑导出方法。

- 已确认 Libra2000 为 2-lane D-PHY,link-freq 648MHz,pixel_rate 162MHz,格式 UYVY8。

- 已参考 mainline `max96717.c` 与 MAX96724 datasheet,完成初版 bridge driver;

目前主要卡点为 **单路 CSI 的 VC 分流数量上限****X5 CSI RX 对多 VC 的支持能力**

## 六、期望结果

4 颗 Libra2000 通过 **2 路 CSI(每路 2 个 VC)** 在 X5 上同时出图,得到

**4 个独立 `/dev/videoX`** 节点,供后续 ROS2 + YOLO 使用。

> 感谢版主与各位工程师抽空解答,如需补充原理图、`dmesg` 日志或 `media-ctl -p`

> 输出,我可随时提供。

Q1|单路 CSI 的 VC 上限:X5 官方公开文档没有写「单路 CSI 最多分离几个 VC」。而且从官方软件栈现状看,X5 的公开链路是「一路 CSI = 一颗 sensor = 一个 SIF 节点」——官方双目相机 GS130W/GS130WI 也是左右目各占一路物理 MIPI,不是 VC 复用。所以「一路 CSI 拆 VC0/VC1 成 2 个独立通道」目前没有现成官方方案和示例,需要看 X5 内核 hobot VIN/SIF 驱动是否暴露 vc 配置,建议向官方 FAE 确认后再定硬件方案(风险点,值得先确认)。

Q2|节点映射sif-isp-vse 模式下每路 CSI 固定生成 1 个 SIF + 1 个 ISP + 6 个 VSE 节点(CSI0 → /dev/video0/4/8-13,CSI1 → /dev/video1/5/14-19),文档拓扑里没有「一路 CSI 按 VC 出多个 videoX」的形态。参考:V4L2 使用

Q3|GMSL 接入:X5 上没有公开的 MAX96724/MAX9296 参考驱动。官方唯一的 GMSL bringup 资料在 S100/S600 平台(max96712 + 加串器,HBN 模式,含 i2c 地址重映射、emode 编码规则),架构思路可借鉴但代码不通用:Camera 点亮(含 gmsl sensor 驱动编写说明)。在 X5 上走 (a) 标准 V4L2 sub-device sensor driver 是对应 sif-isp-vse 模式的正规路径。

Q4|绕过 ISP:SIF 架构上支持数据不经 ISP 直接写 DDR,UYVY(DT=0x1e)也是文档明确列出的支持 datatype,单流 UYVY 直通理论可行,但 X5 公开文档没有 YUV sensor bypass ISP 的现成配置示例,建议实测确认。同一相机 UYVY+RAW16 双流要靠 VC/DT 区分,这就又回到 Q1 的 VC 能力问题。

Q5|DTS 写法:X5 的 CSI 端点节点名官方文档没有公开示例页,最可靠的方式是直接看 X5 内核源码里已适配 sensor(imx219 等)的 dts 和驱动,照现有节点命名写,不要跨 BSP 版本抄。

一句话总结:4 相机聚合方案的最大不确定点是 Q1(单路 CSI 多 VC 分离在 X5 公开软件栈里没有支持证据),建议先把这个问题抛给官方 FAE / 在本帖等官方回复,再投入 bridge driver 的完整开发。

这套 MAX96724 + MAX96717 + Libra2000 四路聚合属于第三方相机的二次开发适配,目前我们没有可提供的该组合在 X5 上验证过的驱动、DTS 或四路采集拓扑。接入请参考官方 X5 V4L2 使用说明(sif-isp-vse 路线)和 X5 Camera 调试指南(HBN Camera 适配路线),结合所用版本自行适配,不能将两套配置直接混用。

单路 CSI 可同时分离多少个 VC、能否形成四个独立 video 节点,仍需结合具体 BSP/驱动确认;文档中的节点表并不是这套多 VC 方案的验证结论。建议补充完整 RDK OS/BSP 版本,并向对接的 FAE 确认这一平台能力,再继续驱动开发;目前不能据此承诺该组合可用,也不能直接判定 X5 硬件不支持。

完整链接(方便复制):

X5 V4L2 使用说明:
https://developer.d-robotics.cc/rdk_x_doc/Advanced_development/hardware_development/rdk_x5/V4l2

X5 Camera 调试指南:
https://developer.d-robotics.cc/x5_sdk_doc/multimedia_development/isp_tuning_guide/Camera_sensor_bringup.html