Repository navigation
Releases
R58.7 (v1.0.8.2)
Release Notes β R58.7 (v1.0.8.2) β PRE-RELEASE
- Range: v1.0.7.18 β v1.0.8.2
- Date range: 2026-11-01 β 2026-11-05
- Driver: D4XX / D5XX GMSL MIPI CSI-2 for NVIDIA Jetson
- Status: pre-release β validation still in progress; not recommended for production deployment.
Highlights
- SerDes teardown & probe robustness (RSDEV-15191) β Harden SerDes unbind/rebind paths with deadlock prevention, resource unwinding, and lifecycle fixes across MAX96712/MAX96724 and VI file-close handling. Prevents crashes during unload/rebind testing and serializes control refresh with VI unregister.
- D585 980 kHz I2C DFU (RSDEV-11627) β Enable fast-mode I2C (980 kHz) for D585 DFU on JP5/6 with link preparation, ownership tracking, and automatic restoration. Legacy 400 kHz muxed DFU entry and JP7 behavior preserved.
SerDes & Multi-Camera
| Item | Description | Commit |
|---|---|---|
| Harden SerDes teardown & probe rollback | Fix MAX96712 remove deadlock, balance MAX96724 regulator on removal, drain debugfs on unbind, unwind probe failures. RSDEV-15191. | 0199910 |
| D585 980 kHz I2C DFU | Add fast-mode I2C switching for D585 DFU with link preparation and ownership tracking per physical I2C root on JP5/6. RSDEV-11627. | 72f8d3d |
Platform & Camera Support
| Item | Description | Commit |
|---|---|---|
| VI lifecycle fixes | Fix VI file-close crash on repeated unbind; chan->video cleared on subdevice removal while old V4L2 files still closing. RSDEV-15191. | 0199910 |
Bug Fixes / Stability
| Description | Ticket | Commit |
|---|---|---|
| Fix MAX96712 I2C client deadlock under device lock during recursive unregister. | RSDEV-15191 | 0199910 |
| Fix VI file-close crash on unbind: identify focusers through file-held video_device. | RSDEV-15191 | 0199910 |
| Drain video ioctls under video_lock before unregistering node to prevent control callbacks outliving sensor unbind. | RSDEV-15191 | 0199910 |
| Fix DES power lifecycle: keep DES powered until last physical camera leaves, independent of bind/unbind order. | RSDEV-15191 | 0199910 |
| Fix focuser-open power failures and JP7 bounds failures through proper file/lock cleanup. | RSDEV-15191 | 0199910 |
Upgrade Notes
- Pre-release β this build is published for integration and validation. Do not deploy to production until R58.7 is promoted to a full release.
- Driver version line β moves from
1.0.7.xto1.0.8.x. Driver version continues to be auto-incremented via the Jenkins pipeline (driver_version.sh). - SerDes teardown robustness (RSDEV-15191): fixes critical stability issues during module unload/rebind testing. While these paths are not exercised during normal streaming operation, systems performing frequent module rebinds or debugging SerDes issues should update. The VI lifecycle fixes prevent crashes on repeated unbind. Camera I2C protocol, metadata ABI, stream formats and CSI routing remain unchanged.
- D585 980 kHz I2C DFU (RSDEV-11627): D585 DFU operations now use fast-mode I2C (980 kHz) on JP5/6 for faster firmware updates. Legacy 400 kHz muxed DFU entry is preserved for backward compatibility, and JP7 clock behavior is unchanged. No DT, SDK or kernel adapter ABI changes. Systems performing D585 DFU should verify compatibility; rejected DFU opens preserve state.
- MAX96712/MAX96724 teardown (RSDEV-15191): the MAX96712 remove path prevents deadlock under the device lock, and MAX96724 balances regulator enable on removal. Systems using multi-camera configurations should verify clean module removal and rebind behavior.
- VI control serialization (RSDEV-15191): runtime control refresh is now serialized with VI unregister to prevent use-after-free. This is transparent to userspace but critical for module stability during unbind.
- Focuser lifecycle (RSDEV-15191): focusers are now identified through the file-held video_device instead of the potentially-cleared chan->video. Applications using focuser controls should verify behavior during stream start/stop.
Contributors
zhou, pinquanw, Yogev Modlin, ejgoldik
Full Commit Log (dev branch)
Codebase commits (dev) since v1.0.7.18 (2026-11-01) to v1.0.8.2 (2026-11-05):
0199910 [RSDEV-15191][host][stable] fix: harden SerDes teardown and probe rollback
72f8d3d [RSDEV-11627] Add 980 kHz I2C switching for D585 DFU
R58.6 (v1.0.7.18)
Release Notes β R58.6 (v1.0.7.18) β PRE-RELEASE
- Range: v1.0.6.17 β v1.0.7.18
- Date range: 2026-09-17 β 2026-11-01
- Driver: D4XX / D5XX GMSL MIPI CSI-2 for NVIDIA Jetson
- Status: pre-release β validation still in progress; not recommended for production deployment.
Highlights
- Control descriptor architecture (RSDEV-15375, RSDEV-15373) β V4L2 controls are now parsed from the camera's format descriptor (Β§12.2) and registered at probe, replacing hard-coded control tables. Controls re-sync live after a HW reset or DFU, the REG/HWMC executors return FW results as V4L2 errno, and HW reset readiness is tracked through scratch register 0x400E. Design documented in
docs/camera-control-descriptor.md. - D58x aligned depth control suite (RSDEV-14700, RSDEV-15754, RSDEV-15676) β new Enable Aligned Depth control at FW register 0x4599, settable while 3C color streams and while only the IMU streams.
- D58X 2C Passive Depth Mode control (RSDEV-14783) β new V4L2 control to enable/disable 2C passive depth mode, letting userspace toggle between active and passive depth sensing.
- D500 DPP struct pass-through (RSDEV-15386) β the complete DPP (depth pre-processing) structure is passed between firmware and userspace, with sanity checks on read/write and the full header gated while streaming.
- MinZ runtime updates and accelerometer sensitivity (RSDEV-14893, RSDEV-14851) β supported MinZ fields can update while streaming, and MIPI accelerometer sensitivity is exposed as a V4L2 control.
- Compressed colour over GMSL (RSDEV-13306) β H.264/JPEG compressed colour carried on carrier lines with cleared buffers; each sensor mux now lists its own format table.
- D585 shared RSVL capture and PD distance control (RSDEV-13372, RSDEV-14726) β D585 GMSL_MUX supports shared RSVL capture and programmable PD distance control.
- D585 multi-camera overlays β FG12-16CH and FG12-4CH D585 overlays (RSDEV-14346), FG12-12CH single/dual-camera overlays (RSDSO-21993) and an FG12-4CH D5xx/3D4xx overlay (RSDEV-15311).
- Read-to-clear FW error code (RSDSO-21898) β D4xx GMSL exposes a read-to-clear firmware error code control for polling transient FW errors.
- Format-descriptor library split (RSDEV-14884) β the driver is now a composite kernel module (
d4xx_main.c+d4xx_desc.c) for cleaner separation of core logic and descriptor handling. - JetPack 5.x install robustness β
install_to_kernel.shsupports any JP 5.0.x / 5.1.x, installs MAX96717/MAX96724 when needed and fails early on missing artifacts; UVC metadata PIDs added for L4T 35.4.1/35.6.4.
SerDes & Multi-Camera
| Item | Description | Commit |
|---|---|---|
| D585 shared RSVL capture & PD distance control | Support shared RSVL capture and programmable PD distance control for D585 GMSL_MUX. RSDEV-13372, RSDEV-14726. | 2cbf160 |
| Compressed colour over GMSL | Support compressed colour formats with carrier lines and cleared buffers. RSDEV-13306. | 747ccdc |
| Per-mux sensor format tables | Each d4xx mux lists its own sensor's formats, for proper format discovery and enumeration. RSDEV-13306. | d4464ae |
| Unwind resources after failed stream start | Release GMSL resources correctly when a stream start fails. RSDEV-15212. | 7e7b744 |
| HWMC transaction serialization | Serialize HWMC transactions per camera on D58x. RSDEV-14617. | af283cb |
| D58X remove sync mode master | Remove the sync mode master option for D58X GMSL. RSDEV-14614. | 43c2a4f |
| FG12-16CH / FG12-4CH D585 overlays | Add multi-camera D585 device-tree overlays for FG12-16CH (cams 0-1-2-3) and FG12-4CH (cams 0-1-2-3, cams 0-1). RSDEV-14346. | 929d28b |
| FG12-12CH single/dual-camera overlays | Add FG12-12CH single and dual-camera device-tree overlays. RSDSO-21993. | 0bf2bd7 |
| FG12-12CH enable | Enable fg12-12ch support. | d123336 |
| FG12-4CH D5xx and 3D4xx overlay | New device-tree overlay for FG12-4CH with D5xx and mixed 3D4xx camera configurations. RSDEV-15311. | 735044d |
Platform & Camera Support
| Item | Description | Commit |
|---|---|---|
| MIPI descriptor refresh | Update MIPI format descriptors across JP 5.0.2, 5.1.2, 5.1.6, 6.x, 7.x. RSDEV-14847. | 3502a0e |
| Control descriptor registration | Parse and register controls from the camera descriptor; adds a VI runtime-control-changes patch for every JetPack generation. RSDEV-15375. | c0700f3 |
| D585 256x144 frame-rate limit | Limit D585 256x144 modes to 90 FPS. RSDEV-13487. | ace5639 |
| UVC metadata PIDs for JP 5.1.x | Add UVC metadata PIDs missing from L4T 35.4.1/35.6.4 (JetPack 5.1.x). | 09bf36d |
V4L2 Controls, Metadata & Streaming
| Item | Description | Commit |
|---|---|---|
| D58x Enable Aligned Depth control | Add the Enable Aligned Depth control; move it to FW register 0x4599 and fix default refresh. RSDEV-14700. | 132c580, 402ce1c, 81fce7a |
| Aligned depth with 3C color | Allow aligned depth to be set while 3C color streams. RSDEV-15754. | 223baab |
| Aligned depth with IMU-only | Allow D500 aligned depth to be set while only the IMU streams; extract d500_video_is_idle_locked in the passive-depth harness. RSDEV-15676. |
e8bfe2a, e429a43 |
| D58X 2C Passive Depth Mode control | Add V4L2 control to enable/disable 2C passive depth mode for D58X. RSDEV-14783. | 8d58cf7 |
| D500 DPP struct pass-through | Pass the complete D500 DPP structure between FW and userspace with sanity checks on read/write; gate the full header while streaming. RSDEV-15386. | b025d46, 244081c |
| MinZ runtime updates | Allow supported MinZ fields to update while streaming. RSDEV-14893. | d578fd3 |
| MIPI accelerometer sensitivity | Expose MIPI accelerometer sensitivity control. RSDEV-14851. | f52f4e9 |
| FW error code read-to-clear | Expose the read-to-clear firmware error code control on D4xx GMSL. RSDSO-21898. | e69c17b |
Bug Fixes / Stability
| Description | Ticket | Commit |
|---|---|---|
| Fix aligned-depth register placement and default refresh behavior. | RSDEV-14700 | 402ce1c |
| Clamp D585 256x144 frame rate to 90 FPS. | RSDEV-13487 | ace5639 |
| Fix DFU infinite loop. | β | 865deb7 |
| Fix: unwind resources after failed stream start in the host GMSL driver. | RSDEV-15212 | 7e7b744 |
Build / CI / Tooling
| Description | Commit |
|---|---|
| Split the format-descriptor library out of d4xx.c: the driver is now a composite module (d4xx_main.c + d4xx_desc.c). RSDEV-14884. | 1827086 |
| Document the d4xx.c β d4xx_main.c + d4xx_desc.c split. RSDEV-14884. | bb1feb7 |
Add docs/camera-control-descriptor.md (control descriptor design). RSDEV-15373. |
ec8054d |
| Document D58x IMU record pass-through. RSDEV-14696. | 0321f55 |
| install_to_kernel.sh: support any JetPack 5.0.x / 5.1.x. | 85fb2f4 |
| install_to_kernel.sh: fail JP5 install early on missing artifacts, drop non-JP5 version guard. | 95647dc |
| install_to_kernel.sh: install max96717/max96724 for JP5 when d4xx depends on them. | be771ad |
| install_to_kernel.sh: create the JP5 updates/ module dir before copying. | bc9c031 |
| Update module version to 1.0.7.0. | 3e20c28 |
Upgrade Notes
- Pre-release β this build is published for integration and validation. Do not deploy to production until R58.6 is promoted to a full release.
- Driver version line β moves from
1.0.6.xto1.0.7.x. Driver version continues to be auto-incremented via the Jenkins pipeline (driver_version.sh). - Control descriptor architecture (RSDEV-15375): controls are registered from the camera descriptor instead of hard-coded tables, so the control set follows the connected camera/FW and re-syncs after HW reset/DFU. Control executors return firmware results as V4L2 errno values. Rebuild and deploy the whole module set.
- D58x Enable Aligned Depth control (RSDEV-14700, RSDEV-15754, RSDEV-15676): new control to enable/disable aligned depth, settable with 3C color or IMU-only streams active. Applications using aligned depth should verify compatibility, and host logic that assumed
-EBUSYin those states should be re-checked. - D58X 2C Passive Depth Mode (RSDEV-14783): new V4L2 control to toggle between active and passive depth sensing. Applications using depth streaming should verify compatibility.
- Breaking β D500 DPP struct pass-through (RSDEV-15386): D500 DPP controls now pass the complete structure between FW and userspace. Applications that previously wrote individual DPP fields must now update the entire structure. The driver gates full-header updates while streaming.
- MinZ runtime updates (RSDEV-14893): supported MinZ fields can now be updated while streaming. Applications using MinZ controls should verify compatibility.
- MIPI accelerometer sensitivity (RSDEV-14851): new V4L2 control to adjust accelerometer sensitivity. IMU applications should verify compatibility.
- Read-to-clear FW error code (RSDSO-21898): D4xx GMSL exposes a new read-to-clear firmware error code control. Applications should poll this control to detect and acknowledge transient firmware errors; any read consumes the latched error.
- Compressed colour over GMSL (RSDEV-13306): compressed RGB formats are supported over GMSL with carrier-line configuration and buffer clearing. Each sensor mux now advertises its own format list; re-test RGB streaming and format enumeration.
- D585 shared RSVL capture (RSDEV-13372, RSDEV-14726): D585 GMSL_MUX supports shared RSVL capture and PD distance control. Update userspace applications to leverage these capabilities.
- D585 256x144 frame rate limit (RSDEV-13487): the 256x144 resolution is clamped to a maximum of 90 FPS. Applications that previously set higher frame rates for this resolution will...
R58.5 (v1.0.6.17)
Release Notes β R58.5 (v1.0.6.17)
- Range: v1.0.5.20 (R58.4) β v1.0.6.17
- Date range: 2026-08-06 β 2026-09-17
- Driver: D4XX / D5XX GMSL MIPI CSI-2 for NVIDIA Jetson
Highlights
- Camera-supplied format descriptors (RSDEV-13342) β the per-SKU format tables are read from the camera at probe (versioned blob at I2C
0x6000) instead of being carried in the driver; built-in tables remain the fallback when the blob is absent or invalid. Documented indocs/camera-format-descriptor.md. - DPP control suite β D585 GMSL DPP controls (RSDEV-13973, RSDEV-9182, RSDEV-9184), composite decimation/temporal controls (RSDEV-14843) and GMSL gyro sensitivity (RSDEV-14097).
- D500 control-surface alignment (RSDEV-13639) β CIDs renamed, function names aligned, D58X Device Mode / 2C AE moved onto the XU bridge.
- Variable height buffers (RSDEV-14304) β variable-length data formats with a per-format VI datatype override, JP 6.0 / 6.2 / 7.0 / 7.1 / 7.2.
- D585 GMSL link configuration β tunnel CSI lane rates, MAX96712 4-lane rate raised to 1300 Mbps, D585 external sync on FG12-16CH, prototype recovery after HW reset, MAX96712 instability fix.
- Generic VC mapping (RSDSO-21887) β MAX96717 accepts VC IDs up to 15 and generic VC remapping is enabled on every MAX96712 overlay.
- VI robustness β VI metadata paired per capture descriptor, VI5 recovery teardown lifetime fix, BA10 used exclusively for RGB calibration.
SerDes & Multi-Camera
| Item | Description | Commit |
|---|---|---|
| MAX96712 4-lane rate β 1300 Mbps | Raise the MAX96712 4-lane rate across all MAX96712-based overlays. | 7ec01e3 |
| D585 tunnel CSI lane rates | Configure tunnel CSI lane rates for D585 GMSL, plus review fixes. | 00982c0, 7dba404 |
| D585 external sync | Enable D585 external sync on Fangzhu-12-16CH. RSDEV-13332. | 94f3e88 |
| MAX96717 driver update | Update the MAX96717 serializer driver. | f72a75d |
| MAX96717 VC ID up to 15 | Allow VC ID up to 15. RSDSO-21887. | 481b391 |
| Generic VC mapping | Enable generic VC remapping across MAX96712 overlays. RSDSO-21887. | f155939 |
| D585 MAX96712 instability fix | RSDSO-21902, RSDSO-21903. | f278f31 |
| D5xx compatible string | Use the D5xx compatible string in MAX96712 overlays. | 453a6af |
| Remove unused JP5 SerDes sources | Clean up unused JP5 MAX96717 sources. | b07a7f8 |
Platform & Camera Support
| Item | Description | Commit |
|---|---|---|
| Camera format descriptors | Read format tables from the camera at I2C 0x6000 with built-in fallback; bounded two-byte probing avoids wedging legacy-FW I2C slaves. RSDEV-13342. |
bc4e836 |
| D58x 256x144 profiles | Add 256x144 depth and infrared profiles. RSDEV-13487. | 8381dfa |
| Variable height buffer | Variable-length formats with per-format VI datatype override. RSDEV-14304. | a722fff |
| FG12-16CH cams 0-1 D5xx overlay | New overlay. | ce02956 |
| FG12-16CH cams 0-1-2-3 D5xx/D4xx overlay | New mixed-camera overlay. | 690ad64 |
| D585 NV12 over RAW8 carrier | Receive flat NV12 over a RAW8 carrier via format row. RSDSO-21880. | fcbbf2d |
| D585 RGB+IR calib dt override | Enable vi5_fops dt override for D585 RGB+IR calibration. |
6e181c5 |
| D401 dual-RGB resolution fix | Fix exposed resolutions for D401 dual-RGB. | 772df55 |
| UVC metadata VID wildcard | Add RealSense VID 0x38E5 wildcard to UVC metadata patches; align idVendor indentation in the JP5 patch. | 3a03e46, bc0b7e1 |
V4L2 Controls, Metadata & Streaming
| Item | Description | Commit |
|---|---|---|
| Composite DPP controls | Decimation and temporal as composite U32 array controls matching the USB XU contract. RSDEV-14843. | 23f689c |
| D585 DPP controls | Expose D585 GMSL DPP controls. RSDEV-13973, RSDEV-9182, RSDEV-9184. | 52c0817 |
| Gyro sensitivity | Expose GMSL gyro sensitivity control. RSDEV-14097. | 202c6e8 |
| D500 control CID rename | Rename D500 camera control CIDs and align function names. RSDEV-13639. | 16cf74a, e036af5 |
| D58X XU bridge | Use XU bridge for Device Mode and 2C AE. RSDEV-13639. | 0240dce |
| 2C/3C controls disable | Disable 2C/3C controls when not applicable. RSDEV-14092. | 0b49d88 |
| D5xx RGB gain range | Set RGB gain range to 16β248. | de396fa |
Bug Fixes / Stability
| Description | Ticket | Commit |
|---|---|---|
| Pair VI metadata per capture descriptor (own page-aligned metadata DMA slot per in-flight descriptor). | β | 900eff5 |
| Use BA10 exclusively for RGB calibration (replaces GR16 on the shared RAW16 calibration transport). | β | 0ba17dc |
| Fix D58x GMSL DFU completion and re-enumeration. | RSDEV-13621 | d150cb7 |
| Fix VI5 recovery teardown: kernel thread task lifetime and failed-request buffer cleanup. | β | e73fcb2 |
| Recover D585 prototype after hardware reset. | β | 939087c |
Build / CI / Tooling
| Description | Commit |
|---|---|
| Add missing geometry patch for JP5.1.6. RSDEV-14319. | 837a3a1 |
| Bump driver version to 1.0.6.0. | 6a0dfce |
Upgrade Notes
- Driver version line β moves from
1.0.5.xto1.0.6.x, auto-incremented by the Jenkins pipeline (driver_version.sh). - Camera format descriptors (RSDEV-13342) β the driver prefers the camera-supplied blob over its built-in tables; on a malformed or unversioned blob it falls back. Check
dmesgfor the descriptor-validation message if a SKU advertises an unexpected format set. - Breaking β composite DPP controls (RSDEV-14843) β decimation and temporal are composite U32 array controls; userspace driving the old scalar controls must switch.
- Breaking β variable height buffer (RSDEV-14304) β changes VI datatype handling; verify existing capture pipelines.
- D500 / D58X control changes (RSDEV-13639) β CIDs renamed; D58X Device Mode and 2C AE go through the XU bridge. Update userspace that references them.
- 2C/3C controls disabled (RSDEV-14092) when not applicable.
- D5xx RGB gain range is now 16β248.
- RGB calibration transport now uses BA10 instead of GR16; re-check userspace that pinned the FourCC.
- MAX96712 lane rate / VC mapping β all MAX96712 overlays use 1300 Mbps on 4 lanes and generic VC mapping; re-verify bandwidth and update custom overlays relying on fixed VC assignments.
- New overlays β FG12-16CH
cams-0-1-d5xxandcams-0-1-2-3-d5xx-3d4xx; select the one matching your camera configuration. - JP 5.1.6 β missing geometry patch added; re-apply patches and rebuild.
Contributors
Nir Azkiel, Yogev Modlin, ejgoldik, pinquanw, shuaili2, zhou
Full Commit Log (dev branch)
Codebase commits (dev) since v1.0.5.20 (2026-08-06) to v1.0.6.17 (2026-09-17):
23f689c [RSDEV-14843] Expose composite DPP controls
bc4e836 [RSDEV-13342] MIPI driver descriptors
0ba17dc [D500][gmsl][fix]: use BA10 exclusively for RGB calibration
900eff5 [D500][GMSL][fix]: pair VI metadata per capture descriptor
a722fff [RSDEV-14304] variable height buffer
8381dfa [RSDEV-13487] Add 256x144 D58x depth and infrared profiles
837a3a1 RSDEV-14319 add missing geometry patch for JP5.1.6
0b49d88 RSDEV-14092 2C 3C controls disable
d150cb7 [RSDEV-13621][D58x] Fix GMSL DFU completion and re-enumeration
202c6e8 RSDEV-14097 Expose GMSL gyro sensitivity control
ce02956 Added fg12-16ch-cams-0-1-d5xx overlay
690ad64 Added fg12-16ch-cams-0-1-2-3-d5xx-3d4xx overlay
52c0817 [RSDEV-13973][RSDEV-9182][RSDEV-9184][D585][GMSL] Expose DPP controls
772df55 D401_dual_RGB_fix_exposed_res
481b391 RSDSO-21887_max96717_allow_vc_id_upto_15
bc0b7e1 Align idVendor indentation with surrounding entries in the JP5 patch
3a03e46 Add RealSense VID 0x38E5 wildcard entry to UVC metadata patches
939087c Recover D585 prototype after hardware reset
f278f31 RSDSO 21902 21903 D585 max 96712 instability fix
f155939 RSDSO-21887 enable generic vc mapping
16cf74a [RSDEV-13639] Rename D500 camera control CIDs
e036af5 [RSDEV-13639][D500] Align product-specific function names
0240dce [RSDEV-13639][D58X] Use XU bridge for Device Mode and 2C AE
fcbbf2d [RSDSO-21880][D585] Receive flat NV12 over a RAW8 carrier via format row
6e181c5 Enable vi5_fops dt override for D585 RGB+IR calib
b07a7f8 Remove_unused_JP5_serdes_sources
7dba404 [D585][gmsl] fix: address tunnel lane-rate review
00982c0 [D585][GMSL] Configure tunnel CSI lane rates
f72a75d Update max96717.c
94f3e88 RSDEV-13332 D585 External sync on Fangzhu-12-16CH
7ec01e3 max96712 update 4 lane rate to 1300Mbps
de396fa [D5xx] Set RGB gain range to 16-248
453a6af Use D5xx compatible string for MAX96712 overlays
6a0dfce Bump driver version to 1.0.6.0
e73fcb2 [Jetson][VI5] fix recovery teardown resource lifetime
R58.4 (v1.0.5.20)
Release Notes β R58.4 (v1.0.5.20) β PRE-RELEASE β CUMULATIVE
- Range: v1.0.4.9 β v1.0.5.20
- Date range: 2026-06-30 β 2026-08-06
- Driver: D4XX / D5XX GMSL MIPI CSI-2 for NVIDIA Jetson
- Status: pre-release β validation still in progress; not recommended for production deployment.
Highlights
- D5XX (D585) family bring-up β first release with D58x GMSL support: MAX96712 pixel-mode bring-up, MAX96724 tunnel mode ported into the unified driver, a new MAX96717 serializer driver, D58x pixel-mode FW gating with padded IMU lines, D58x RGB controls + telemetry, and a set of D5xx device-tree overlays (seeed nano, FG24-4CH, joint D5xx/D4xx 4-lane).
- Fangzhu FG12-4CH support β FG12-4CH D457 overlays for AGX Orin, plus a 4-camera FG12-4CH configuration on Orin Nano / Orin NX.
- GMSL link-reset rework β the one-shot link flush moved out of
__max96712_set_pipeinto cold bring-up / HW-reset recovery (RSDEV-12608), then corrected so a multi-camera MAX96712 link is flushed exactly once on cold bring-up (RSDSO-21786). - JetPack 5.x streaming fixes β JP 5.1.6
G_PARMEINVAL and the D457 color-path kernel panic / recovery path fixed; JP 5.1.2 module copy handled in install/deploy; JetPack-mismatched kernels blocked on JP5. - Breaking interface changes β GVD control size enlarged (D4xx 276 B, D5xx 606 B, RSDEV-13118) and metadata payload extended to 255 B for HKR (RSDEV-9250). Userspace/SDK must allocate the larger buffers.
- Timestamp correctness β
BACKEND_TIMESTAMP > TIME_OF_ARRIVALon GMSL fixed across JP 5.0.2 / 5.1.2 / 5.1.6 (RSDSO-20101). - D58x V4L2 control expansion β RGB scalar controls ported to the unified driver, selecting D58x extension offsets by detected device type (RSDEV-12730); D58x manual laser power exposed as 0β540 in steps of 45 (default 225), with control creation gated on device type and legacy metadata preserved for other products (RSDEV-13457).
- Y16I/RGB calib pixel mode for D585 β calib pixel mode enabled for both the Y16I and RGB streams (RSDSO-21787), the now-redundant
vi5_fopsY12I error-ignore removed (RSDEV-13252), and a follow-up rebalanced the Y16I patch hunk context soapply_patches_ext.sh's GNU-patch pipeline applies cleanly on every JetPack. - More FangZhu/JP7 overlays β a JP7 4-camera FG12-16CH overlay (links 0-3) added and the 1-cam overlay renamed to match JP6 naming; a new FG12 4-channel D5xx overlay; every MAX96712-based overlay realigned to 4 MIPI lanes (RSDSO-21762); D5xx video node enumeration order fixed and D585 advertised modes aligned with USB.
- Merge-queue CI gating β a new
merge-queue-gate.ymlworkflow bridges the GitHub merge queue to theD4xx_Kernel_Module_Jetson_JP6Jenkins job, labeling the gated build with every PR batched in the queue. - D401 dual-RGB CSI passthrough (POC) β squashed proof-of-concept for RAW8 dual-RGB CSI passthrough on the OV9782 (FW CSI-PT mode, Bayer RGGBβBGGR correction, 1612x808 @ 60 fps advertised).
New Platform & Camera Support
| Item | Description | Commit |
|---|---|---|
| D585 MAX96712 bring-up (pixel mode) | Initial D585 bring-up over MAX96712 in GMSL pixel mode. | 22e8816 |
| D585 single deserializer pipe | Route D585 through a single deserializer pipe. RSDSO-21670. | 8c75f09 |
| D585 seeed nano overlay | Device-tree overlay for D585 on the seeed nano carrier. | e27a211 |
| D5xx / D4xx joint 4-lane DTS | Joint D5xx + D4xx 4-lane device-tree configuration. | 61f96c8 |
| D585 default address β 0x10 | Update the D585 default I2C address to 0x10. | 69546d5 |
| FG12-4CH D457 support | Fangzhu FG12-4CH overlays for D457. | 2f8bf08 |
| FG12-4CH 4-camera on Orin Nano/NX | 4-camera FangZhu FG12-4CH configuration for Orin Nano / Orin NX. | 04f0069 |
| Seeed 3-camera overlay | Seeed carrier 3-camera (links 0-1-2) overlay configuration. | 49d0564 |
| D436 UVC metadata PID | Add D436 (PID 0x1156) to the JP6.x and JP7.x realsense-metadata patches. | a490229 |
| JP7 4-cam FG12-16CH overlay | New tegra234-camera-d4xx-overlay-fg12-16ch-cams-0-1-2-3.dtso (4x D457, links 0-3, JP7/noble AGX Orin); the 1-cam overlay is renamed ...-cams-0.dtso β ...-fg12-16ch.dtso to match JP6 naming. |
694e2ae |
| FG12 4-channel D5xx overlay | New Fangzhu FG12-4CH device-tree overlay for D5xx. | e95d46e |
| D401 dual-RGB CSI passthrough (POC) | Squashed POC for a RAW8 dual-RGB CSI-passthrough stream on the OV9782: FW CSI-PT mode (DS5_FW_CSI_PT), Bayer RGGBβBGGR correction, and 1612x808 @ 60 fps advertised. |
445d084 |
SerDes & Multi-Camera
| Item | Description | Commit |
|---|---|---|
| MAX96724 tunnel mode in the unified driver | Port the D5xx MAX96724 tunnel-mode driver into the unified driver (new max96724.c/.h), refine its structure, and minimize the tunnel integration surface. |
b485a23, 540ee7e, a871658, 5f7cb81 |
| MAX96717 serializer driver | New max96717.c/.h; unify the pixel and tunnel paths and align tunnel initialization with pixel mode. |
4b67157, 98a6ff0 |
| MAX96717 RX reset when idle | Reset the MAX96717 RX when not streaming. RSDSO-21669. | 85724b7 |
| GMSL one-shot flush β cold bring-up | Move the one-shot GMSL link reset out of __max96712_set_pipe so a stream toggle no longer re-trains a shared link; arm it only on cold bring-up / HW-reset recovery. RSDEV-12608. |
9a93638 |
| Per-link flush on cold bring-up | Follow-up fix: flush the GMSL link line buffer exactly once on cold bring-up so the first stream on an already-served MAX96712 link no longer wedges. RSDSO-21786. | 7e4d223 |
| Align JP5 max96712 patch | Keep the JP5 max96712 patch in step with the unified driver. | e80a1bd |
| D58x NVCSI deskew | Disable NVCSI deskew for D58x Y8 tunnel mode. | 6d352ad |
| Align all 96712 overlays to 4 MIPI lanes | Realign every MAX96712-based overlay (fg12-16ch, fg12-4ch, seeed, advantech, EVB across JP6/JP7) to 4 MIPI lanes. RSDSO-21762. | 135dff3 |
| Y16I/RGB calib pixel mode for D585 | Enable calib pixel mode for the Y16I and RGB streams. RSDSO-21787. | b032d72, 6012b0a |
| Align D585 advertised modes with USB | Match D585 GMSL advertised modes to the USB variant. | 6e9a2d7 |
V4L2 Controls, Metadata & Streaming
| Item | Description | Commit |
|---|---|---|
| Depth AE mode control | Expose depth auto-exposure mode as a single read/write V4L2 control. RSDSO-21763. | 3e058cd |
| D58x RGB controls & telemetry | Expose D58x RGB controls and telemetry. | 4aebb18 |
| D58x pixel-mode flag + padded IMU line | Write the serdes_pixel_mode FW register on pixel-mode SerDes and restrict IMU formats to padded wide lines. RSDSO-21757, RSDSO-21758. |
b552236 |
| Enlarged GVD control size | GVD is 276 B on D4xx and 606 B on D5xx β breaking, the SDK must allocate accordingly. RSDEV-13118. | 2e29ab9 |
| Metadata payload to 255 B | Extend the metadata payload to 255 bytes for HKR usage. RSDEV-9250. | 513851d |
| Y12i calibration via regular overlay | Use the regular overlay for the Y12i (calibration) stream and drop the separate .calib. overlays. RSDEV-12173. |
3b86e99 |
| D585 resolutions | Update the D585 resolution set. | c2a43ba |
| D585 RGB scalar controls | Port the post-July-27 D5xx RGB scalar control work into the unified driver; select D58x extension offsets by detected device type, keeping Hue and the D58x power-line menu SKU-specific. RSDEV-12730. | d7a77c6 |
| D58x laser power range | Expose D58x manual laser power as 0β540 in steps of 45, default 225, preserving legacy metadata for other products; define a dedicated D58x V4L2 control config gated on detected device type. RSDEV-13457. | b2520e1, a2a54e3 |
Bug Fixes / Stability
| Description | Ticket | Commit |
|---|---|---|
Fix BACKEND_TIMESTAMP > TIME_OF_ARRIVAL on GMSL (JP 5.0.2 / 5.1.2 / 5.1.6). |
RSDSO-20101 | 30b11bb |
Fix JetPack 5.1.6 streaming: G_PARM EINVAL plus the D457 color-path kernel panic and error-recovery path. |
β | 0a1c415 |
Flush the GMSL link line buffer on cold bring-up (regression fix for 9a93638). |
RSDSO-21786 | 7e4d223 |
| Gate the GMSL one-shot link reset to cold bring-up / HW-reset recovery. | RSDEV-12608 | 9a93638 |
| Reset the MAX96717 RX when not streaming. | RSDSO-21669 | 85724b7 |
| Fix D5xx video node enumeration order. | β | f2d1f98 |
Remove the vi5_fops Y12I error-ignore now that the underlying issue is fixed. |
RSDEV-13252 | 7497160 |
Fix Y16I patch hunk context rejected by GNU patch, which broke apply_patches_ext.sh on several JetPacks. |
RSDSO-21787 | 4e16f4b |
| Align D585 GMSL advertised modes with USB. | β | 6e9a2d7 |
Build / CI / Tooling
| Description | Commit |
|---|---|
install_to_kernel.sh / deploy_kernel.sh: handle the JP 5.1.2 module copy. |
784cb99 |
install_to_kernel.sh: block a JetPack-mismatched kernel on JP5. |
cabab64 |
CLAUDE.md: correct the GMSL flush invariant and add the model/effort rule. |
9e4b1f2 |
Sync the .claude driver skills for the on-host workflow (adds mipi-bandwidth-check, soak-watch). |
581aacd |
Add utilities/v4l2_capture helpers (depth / IR / NV12 capture). |
4aebb18 |
Fix deploy docs (deploy_kernel.sh vs. the nonexistent deploy_kernel_6.2.sh, missing REMOTE_BOOT_FOLDER argument) and record rig deploy pitfalls (module set, D-state rmmod, DT-modalias autoload). |
e1dd0e5 |
Bridge the GitHub merge queue to the D4xx_Kernel_Module_Jetson_JP6 Jenkins job. |
4e35e82 |
| Label the Jenkins gated build with all PRs batched in the merge queue. | 6b54edf |
Upgrade Notes
- Pre-release β this build is published for integration and validation. Do not deploy to production until R58.4 is promoted to a full release.
- Driver version line β...
R58.3 (v1.0.4.9)
Release Notes β R58.3 (v1.0.4.9) β CUMULATIVE
- Range: v1.0.3.18 β v1.0.4.9
- Date range: 2026-05-26 β 2026-06-26
- Driver: D4XX GMSL MIPI CSI-2 for NVIDIA Jetson
- Commits: 38 (23 substantive + 15 auto-increment version bumps) | 235 files changed | 15,357 insertions / 21,380 deletions
- Versions covered: 1.0.3.13, 1.0.3.14, 1.0.3.15, 1.0.3.16, 1.0.3.17, 1.0.4.0, 1.0.4.1, 1.0.4.2, 1.0.4.3, 1.0.4.4, 1.0.4.5, 1.0.4.6, 1.0.4.7, 1.0.4.8, 1.0.4.9 (the 1.0.3.13β1.0.3.17 revisions were skipped by the manual bump to the v1.0.3.18 tag and are first reported here)
Highlights
- JetPack 7.2 (L4T R39.2) bring-up β JP7.2 support on Advantech AGX Thor GMSL (RSDSO-21610), plus single-camera Fangzhu (FG12-16CH) overlay bring-up on AGX Orin (RSDSO-21616).
- Advantech Thor multi-camera scaling β 6-camera (RSDSO-21522) and 8-camera configurations on Advantech Thor.
- New V4L2 controls β RGB ISP controls exposed on the GMSL stack (RSDEV-5918), AE-type control (RSDSO-21570), and a readout-shaping XU control (RSDSO-21508).
- External sync expansion β external sync enabled for D41X (D415) cameras (RSDSO-21490); sync mode simplified to a 3-value public API (RSDEV-6449);
ext_sync_gen.pyallows re-enable while already enabled. - Reliability fixes β
ds5_hwmc_waitbounded by a wall-clock deadline (RSDEV-12089), MIPI DFU recovery after an interrupted FW upgrade (RSDSO-21588), and a unified YUV422 1X16 Tegra format. - Codebase cleanup β EOL JetPack 4 (4.6.1) tooling removed (RSDSO-21420), unused D46x code dropped (RSDSO-20950), and JP6.x nvidia-oot patches reorganized by subject with embedded-metadata blocker fixes.
New Platform Support
| Item | Description | Commit |
|---|---|---|
| JP7.2 on Advantech Thor GMSL | Support JetPack 7.2 (L4T R39.2) on Advantech AGX Thor GMSL. RSDSO-21610. | 924804c |
| JP7.2 Fangzhu (FG12-16CH) overlay on AGX Orin | Bring-up + single-camera Fangzhu (FG12-16CH) device-tree overlay for AGX Orin. RSDSO-21616. | a47698e |
| JP7 Advantech display CRC | Keep nvidia.ko CRC stable for Advantech display on JP7. |
c2fe560 |
Multi-Camera & SerDes
| Item | Description | Commit |
|---|---|---|
| Advantech Thor β 6 cameras | Enable 6-camera configuration on Advantech Thor. RSDSO-21522. | 2fe8bc7 |
| Advantech Thor β 8 cameras | Extend Advantech Thor to an 8-camera configuration. | 80c5919 |
V4L2 Controls & Streaming
| Item | Description | Commit |
|---|---|---|
| RGB ISP V4L2 controls on GMSL | Expose RGB ISP V4L2 controls on the GMSL stack. RSDEV-5918. | b9c5544 |
| AE-type control | Add auto-exposure type V4L2 control. RSDSO-21570. | 5dda961 |
| Readout-shaping XU control | Add V4L2 readout-shaping XU control. RSDSO-21508. | 31633c7 |
External Sync
| Item | Description | Commit |
|---|---|---|
| External sync for D41X (D415) | Enable external sync for D41X (D415) cameras. RSDSO-21490. | 5882fda |
| 3-value sync-mode public API | Simplify sync mode to a 3-value public API (driver side). RSDEV-6449. | 5152463 |
ext_sync_gen.py re-enable |
Allow enable while already enabled. | 5abbcbd |
Bug Fixes / Stability
| Description | Ticket | Commit |
|---|---|---|
Bound ds5_hwmc_wait by a wall-clock deadline. |
RSDEV-12089 | 613ce43 |
| Fix MIPI DFU recovery after an interrupted FW upgrade. | RSDSO-21588 | 505c1e5 |
Unify YUV422 1X16 Tegra format to T_U8_Y8__V8_Y8. |
β | 3620ab4 |
Build / CI / Tooling / Cleanup
| Description | Commit |
|---|---|
| Reorganize JP6.x nvidia-oot patches by subject + fix embedded-metadata blocker bugs. | e971a92 |
install_to_kernel.sh: accept any rootfs.tar.* compression for JP6/7. |
3d6d8dd |
| Remove EOL JetPack 4 (4.6.1) manual patches and tooling. RSDSO-21420. | f07fd20 |
| Clean unused D46x code. RSDSO-20950. | 40f7450 |
kernel-5.10: add UVC metadata PIDs missing from L4T 35.1 (incl. D436). |
2c56e25 |
Add pdu-control skill; remove stale copilot-instructions. |
4a587ba |
Remove committed __pycache__ build artifacts. |
c819f09 |
| Remove V4L2 On-Device Tests workflow. | 2ceae61 |
Upgrade Notes
- Driver version line β this release moves the driver from the
1.0.3.xseries to1.0.4.x. Driver version continues to be auto-incremented via the Jenkins pipeline (driver_version.sh). - JetPack 7.2 β new platform target (L4T R39.2) on Advantech AGX Thor and AGX Orin (Fangzhu FG12-16CH). Select the matching device-tree overlay and do not rebuild the BSP NVIDIA display stack on JP7.
- JetPack 4.6.1 removed β EOL JetPack 4 manual patches and tooling have been removed (RSDSO-21420); JP4-based deployments are no longer supported by this branch.
- D46x removed β unused D46x code has been dropped (RSDSO-20950).
- External sync β external sync is now available on D41X (D415); the sync-mode interface is simplified to a 3-value public API (RSDEV-6449) β verify userspace against the new contract.
- New V4L2 controls β RGB ISP controls (RSDEV-5918), AE-type (RSDSO-21570), and readout-shaping (RSDSO-21508) are exposed as V4L2 controls; clients should query the control set rather than assuming fixed IDs.
Contributors
ejgoldik, Yogev Modlin, ipilchin1, Nikolai-L, remibettan, pinquanw, Nir Azkiel
Version Progression
v1.0.3.18 β v1.0.3.13 β¦ v1.0.3.17 β v1.0.4.0 β v1.0.4.1 β v1.0.4.2 β v1.0.4.3 β v1.0.4.4 β v1.0.4.5 β v1.0.4.6 β v1.0.4.7 β v1.0.4.8 β v1.0.4.9
R58.2 (v1.0.3.18)
Release Notes β R58.2 (v1.0.3.18) β CUMULATIVE
- Range: v1.0.2.34 β v1.0.3.18
- Date range: 2026-04-13 β 2026-06-04
- Driver: D4XX GMSL MIPI CSI-2 for NVIDIA Jetson
- Net change vs v1.0.2.34: 25 files changed | 6,004 insertions / 846 deletions
Highlights
- Seeed Orin Nano support β new carrier-board platform bring-up (RSDSO-20614).
- On-demand ESYNC GPIO tunneling β on-demand GPIO tunneling for external sync, with a design document; JP5 external-sync configuration aligned (RSDEV-6847).
- Reset / probe robustness β reset and probe path optimized, endless-HW-reset on inaccessible cameras fixed, unnecessary probe-time reset logic removed, and MIPI DFU recovery after an interrupted FW upgrade fixed (RSDSO-21588).
- MAX96712 per-link one-shot reset β one-shot reset issued per link on
set_pipe. - Test & CI β standalone parallel-stream test, quad depth-RGB sync test, auto-increment driver-versioning pipeline, and CI-instability fixes.
New Platform Support
| Item | Description | Commit |
|---|---|---|
| Seeed Orin Nano | Add Seeed Orin Nano carrier-board support, including new device-tree overlays. RSDSO-20614. | 41edd02 |
External Sync / GPIO Tunneling
| Item | Description | Commit |
|---|---|---|
| On-demand ESYNC GPIO tunneling | On-demand ESYNC GPIO tunneling for external sync. RSDEV-6847. | 01f4858 |
| On-demand GPIO tunneling design doc | Design document for on-demand GPIO tunneling (docs/gpio-tunneling-external-sync.md). RSDEV-6847. |
6de6e89 |
| Align JP5 ESYNC configuration | Bring JP5 external-sync configuration in line with the other platforms. | d467803 |
SerDes / Multi-Camera
| Item | Description | Commit |
|---|---|---|
| MAX96712 per-link one-shot reset | Issue a one-shot reset per link on set_pipe. |
b47fba0 |
Bug Fixes / Stability
| Description | Ticket | Commit |
|---|---|---|
| Fix MIPI DFU recovery after an interrupted FW upgrade β keep the device recoverable over MIPI when left in the bootloader. | RSDSO-21588 | 85ab016 |
| Optimize reset and probe path. | β | 54bcf16 |
| Fix endless HW reset when camera is inaccessible. | β | 8e5cdbc |
| Remove unnecessary reset logic from the probe function. | β | 0e86a8e |
Build / CI / Tooling
| Description | Commit |
|---|---|
Add Jenkins directory and driver_version.sh; auto-increment driver-version pipeline; move driver to the 1.0.3.x line. |
046a740, 1d638e3 |
install_to_kernel.sh: add DELAY_SECONDS argument to improve Jenkins reboot handling. |
c26d254 |
| Fix CI instability. | 77d987f |
| Update JP6 README overlay explanations. | b368811 |
Testing
| Description | Commit |
|---|---|
Add standalone parallel-stream test (utilities/.../parallel_stream_test). |
762d0af |
| Add quad depth-RGB sync test. | 8f47251 |
Already delivered in v1.0.2.34
These were released in v1.0.2.34 and remain in the v1.0.3.18 codebase; they are listed here only for completeness and are not new in this release:
- RSDSO-20613 β Fangzhu / MAX96712 full-slave mode and quad D457 camera support
- MAX96712 MFP6 configuration for links BβD
- RSDSO-21407 β external sync via TSC PWM
- MAX96712 lane data rate raised to 2500 Mbps
Upgrade Notes
- Driver version line β this release moves the driver from the
1.0.2.xseries to1.0.3.x. Driver version is auto-incremented via the Jenkins pipeline (driver_version.sh). - DFU recovery β if firmware upgrades may be interrupted, this release keeps the device recoverable over MIPI (RSDSO-21588).
- External sync β JP5 deployments should re-verify external-sync configuration against
d467803; on-demand ESYNC GPIO tunneling is available per RSDEV-6847. - Seeed Orin Nano β new carrier target; select the matching device-tree overlay when deploying.
Contributors
ejgoldik, ipilchin1, Nikolai-L, Uzi Sarel (Uzi), Inessa Chernoguz (cinessa), Yogev Modlin
Version Progression
v1.0.2.34 β v1.0.3.0 β β¦ β v1.0.3.12 β v1.0.3.18
R58.1 (v1.0.2.34)
Release Notes β v1.0.2.34 (CUMULATIVE)
- Range: v1.0.2.23 β v1.0.2.34
- Date range: 2026-03-16 β 2026-05-07
- Driver: D4XX GMSL MIPI CSI-2 for NVIDIA Jetson
- Commits: 33 | 175 files changed | 15,702 insertions / 5,308 deletions
- Versions covered: 1.0.2.24, 1.0.2.25, 1.0.2.26, 1.0.2.27, 1.0.2.30, 1.0.2.31, 1.0.2.32, 1.0.2.33, 1.0.2.34
Highlights
- JetPack 7 on NVIDIA Thor (MIPI) β new platform support tracked under RSDSO-20559.
- JetPack 5.1.6 and JetPack 6.2.2 β additional NVIDIA L4T versions added (RSDSO-21191, RSDSO-21146).
- MAX96712 multi-camera up to quad D457 β multi-camera deserializer support, dual-camera per deserializer on JP6.x, and quad-D457 enablement via MAX96712 full-slave mode (Fangzhu) (RSDSO-20613).
- External sync via TSC PWM β Thor-friendly external sync path using TSC PWM, plus restored MAX9296 GPIO tunneling and consolidated MAX9295 GPIO tunneling for external sync (RSDSO-21407).
- Carrier board support β Advantech (Orin, JP6 and JP7) and AVerMedia (JP6.x) carrier/deserializer boards.
- MAX96712 link tuning β lane data rate raised to 2500 Mbps; MFP6 configuration added for links BβD.
- Driver stability fixes β DS5 reset/detection rework, MAX9296
power_offunderflow fix that caused spurious XCLR during probe, and DTB copy fix for JP6.x deploy.
Known Issues:
- Camera doesn't appear in recovery mode after interrupting the upgrade process
This has been fixed at R58.2 (v1.3.0.18) please update if required [RSDSO-21588] .
New Platform Support
| Item | Description | Commit |
|---|---|---|
| JetPack 7 / NVIDIA Thor (MIPI) | Add Thor MIPI platform bring-up. Tracked-on RSDSO-20559. | 15291ac |
| JetPack 5.1.x and JP 6.2.2 | Add NVIDIA L4T 5.1.6 (RSDSO-21191) and 6.2.2 (RSDSO-21146) version mappings and build pipeline. | f1f0c97 |
Multi-Camera & SerDes
| Item | Description | Commit |
|---|---|---|
| MAX96712 multi-camera | Enable multiple D4XX cameras behind one MAX96712 deserializer. | e9082f1 |
| MAX96712 dual-camera per deserializer (JP6.x) | Two D457 cameras per MAX96712 on JP6.x device trees. | 97b6e7e |
| Quad D457 via MAX96712 full-slave mode | Enable up to four D457 cameras using MAX96712 full-slave mode. RSDSO-20613. | 4947e6b |
| Fangzhu full-slave mode patches | Patch set enabling Fangzhu in MAX96712 full-slave configuration. RSDSO-20613. | c5ef147 |
| MAX96712 lane data rate β 2500 Mbps | Raise per-lane data rate on MAX96712 for higher aggregate bandwidth. | 825a718 |
| MAX96712 MFP6 config (links BβD) | Add MFP6 pin configuration for links B, C, and D. | 16cb925 |
| MAX9295/MAX9296 driver updates | Driver configuration and patch updates for the GMSL SerDes pair. | 180432a |
External Sync / GPIO Tunneling
| Item | Description | Commit |
|---|---|---|
| External sync via TSC PWM | External sync implementation using TSC PWM (Thor-compatible path). RSDSO-21407. | 88c7f7a |
| MAX96712A GPIO tunneling for external sync | Add GPIO tunneling on MAX96712A for external sync trigger distribution. | f304653 |
| Restore MAX9296 GPIO tunneling | Restore MAX9296 GPIO tunneling path for external sync. | 1bedc08 |
| Consolidate MAX9295 GPIO tunneling | Drop legacy patch 0017; MAX9295 GPIO tunneling consolidated into patch 0016. | c2b8ee6, 518bf98 |
Carrier Board Support
| Item | Description | Commit |
|---|---|---|
| Advantech (Orin) | Initial Advantech board support on Orin. | 870da69 |
| Advantech on JP7.x | Enable Advantech board on JP7.x; use left CSI port on Orin. | 9a7985b, e75b5f6 |
| Advantech DTSO fix for JP7 | Fix Advantech device tree overlay source for JP7. | 4f32ea1 |
| AVerMedia deserializer (JP6.x) | Add AVerMedia deserializer board support on JP6.x. | 224bae0 |
Bug Fixes
| Description | Commit |
|---|---|
| DS5 reset and detection rework β fixes camera reset/detection corner cases. | a7ea226 |
Remove unused retry variable in ds5_probe. |
44c7419 |
Fix MAX9296 power_off refcount underflow causing spurious XCLR reset during probe. |
1917489 |
Fix JP6.x DTB copy in build_all.sh β add missing tegra234-p3737-0000+p3701-0000-nv.dtb and tegra234-p3737-0000+p3701-0005-nv.dtb. |
2b748fa |
Update apply_patches_ext.sh for renamed DT patch directories. |
ee7e0ba |
Per-version Summary
| Version | Date | Key changes |
|---|---|---|
1.0.2.24 |
2026-03-25 | JP7/Thor MIPI bring-up (RSDSO-20559); MAX96712 dual-camera per deserializer (JP6.x); MAX96712A GPIO tunneling for external sync; DS5 reset/detection fix; remove stale retry variable. |
1.0.2.25 |
2026-04-06 | MAX9295 GPIO tunneling consolidated (drop 0017); restore MAX9296 GPIO tunneling for external sync; JP 5.1.x / JP 6.2.2 support; MAX96712 multi-camera; MAX9295/MAX9296 driver updates; Advantech Orin support; apply_patches_ext.sh DT path fix; AVerMedia JP6.x; Advantech DTSO fix for JP7. |
1.0.2.26 |
2026-04-06 | Fix JP6.x DTB copy in build_all.sh. |
1.0.2.27 |
2026-04-09 | Enable Advantech board on JP7.x; use left port on Orin; MAX9296 power_off underflow fix preventing spurious XCLR during probe. |
1.0.2.30 |
2026-04-21 | Fangzhu MAX96712 full-slave mode patches (RSDSO-20613). |
1.0.2.31 |
2026-04-23 | Quad D457 camera support via MAX96712 full-slave mode (RSDSO-20613). |
1.0.2.32 |
2026-04-28 | MAX96712 MFP6 configuration for links BβD. |
1.0.2.33 |
2026-05-05 | External sync via TSC PWM (RSDSO-21407). |
1.0.2.34 |
2026-05-07 | MAX96712 lane data rate raised to 2500 Mbps. |
Upgrade Notes
- Patch directory renames β if you maintain external patch overlays, refresh against
apply_patches_ext.shchanges inee7e0ba. - MAX9295 GPIO tunneling β patch 0017 was removed and folded into 0016; downstream forks rebasing manually must drop 0017.
- JP6.x DTB deploy β re-deploy DTBs after upgrading; base platform DTBs are now copied to
rootfs/boot/dtb/. - MAX96712 lane rate β new 2500 Mbps lane rate requires compatible board routing and SerDes calibration; verify on custom carriers before deploying.
- Full-slave / quad-D457 β requires MAX96712 board configured for full-slave mode; review device tree variant selection in
hardware/realsense/.
Contributors
ejgoldik, Uzi (Uzi Sarel), Inga Pilchin (ipilchin1), Nikolai-L, KONTRA
Version Progression
v1.0.2.23 β v1.0.2.24 β v1.0.2.25 β v1.0.2.26 β v1.0.2.27 β v1.0.2.30 β v1.0.2.31 β v1.0.2.32 β v1.0.2.33 β v1.0.2.34
v1.0.2.33
Release Notes β R58.2+ (v1.0.2.33) β PRE-RELEASE
- Range: v1.0.2.23 β v1.0.2.33
- Date range: 2026-03-22 β 2026-05-05
- Driver: D4XX / D5XX GMSL MIPI CSI-2 for NVIDIA Jetson
- Status: pre-release β validation still in progress; not recommended for production deployment.
Highlights
- MAX96712 multi-camera support β initial multi-camera overlay configurations for FG12-16CH (2-camera and 4-camera), enabling quad D457 camera support with MAX96712 full slave mode
- GPIO tunneling for external sync β on-demand ESYNC GPIO tunneling support added for MAX9295 and MAX96712A, enabling external sync support across JetPack 5.x and 6.x platforms
- Expanded platform support β new carrier board support including Advantech (Orin, JP6.x, JP7.x), AVerMedia (JP6.x), Seeed Orin Nano, plus JetPack 5.1.6 and 6.2.2 compatibility
- SerDes driver improvements β MAX9295/MAX9296 regmap cache type changed to
REGCACHE_FLATto prevent initialization delays and improve reliability - Probe and reset optimization β driver probe function optimized to eliminate unnecessary reset logic and reduce spurious XCLR resets, improving camera detection reliability
- Stream restart robustness β stream restart upon capture timeout added across all supported JetPacks (4.6.1, 5.0.2, 5.1.2, 5.1.6, 6.0, 6.1, 6.2.x, 7.0, 7.1)
SerDes & Multi-Camera
| Item | Description | Commit |
|---|---|---|
| Align JP5 esync configuration | Synchronize esync configuration between JetPack 5.0.2 and 5.1.2 | d467803 |
| On-demand ESYNC GPIO tunneling | Add on-demand GPIO tunneling for external sync support (MAX9295, JP5/JP6) | 01f4858 |
| Quad D457 MAX96712 full slave | Enable quad D457 camera support with MAX96712 full slave mode | 477a4d2 |
| Fangzhu full slave mode | Enable Fangzhu full slave mode in SerDes patches | 3a73aa5 |
| MAX96712 multi-camera overlays | FG12-16CH dual and quad camera overlays (cams 0-1, cams 0-1-2-3) | e9082f1 |
| Restore MAX9296 GPIO tunneling | Restore max9296 GPIO tunneling for external sync support | 1bedc08 |
| Consolidate GPIO tunneling patches | Consolidate MAX9295 GPIO tunneling into unified patch 0016 | c2b8ee6, 518bf98 |
| MAX96712A GPIO tunneling | Add GPIO tunneling for MAX96712A external sync support | f304653 |
| Add mfp6 config | Add mfp6 configuration for deserializer links b to d | 6da8282 |
| MAX9295/MAX9296 regmap cache | Change regmap cache type to REGCACHE_FLAT to prevent init delays |
180432a |
Platform & Camera Support
| Item | Description | Commit |
|---|---|---|
| Seeed Orin Nano support | Device-tree overlays for D4xx on Seeed Orin Nano carrier (single, dual, 4-camera configs) | 41edd02 |
| Advantech Orin support | Advantech deserializer board support for Orin JP6.x | 870da69, e75b5f6 |
| Advantech JP7.x support | Enable Advantech board support on JetPack 7.x | 9a7985b, 4f32ea1 |
| AVerMedia JP6.x support | AVerMedia deserializer board support for JetPack 6.x | 224bae0 |
| JetPack 5.1.6 support | Full platform support for NVIDIA JetPack 5.1.6 | f1f0c97 |
| JetPack 6.2.2 support | Full platform support for NVIDIA JetPack 6.2.2 | f1f0c97 |
| Fix dtb copy for JP6.x | Correct device-tree blob copy path for JetPack 6.x builds | 2b748fa |
Bug Fixes / Stability
| Description | Ticket | Commit |
|---|---|---|
| Fix endless HW reset when camera inaccessible | Stop infinite reset loop when camera cannot be accessed | β |
| Fix max9296 power_off underflow | Eliminate spurious XCLR reset during probe caused by power_off underflow | β |
| Remove unnecessary reset logic | Clean up redundant reset logic from probe function | β |
| Fix ds5 reset and detection | Improve camera reset sequence and detection reliability | β |
| Remove unused 'retry' variable | Code cleanup: remove unused variable from ds5_probe function | β |
| Update apply_patches_ext.sh | Fix patch application for renamed device-tree patch directories | β |
Build / CI / Tooling
| Description | Commit |
|---|---|
| Optimize reset and probe | Improve driver probe sequence efficiency and reliability |
Upgrade Notes
- Pre-release β this build is published for integration and validation. Do not deploy to production until promoted to a full release.
- Driver version line β moves from
1.0.2.23to1.0.2.33. Driver version continues to be auto-incremented via the Jenkins pipeline. - External sync support β cameras using external sync should enable GPIO tunneling via device-tree properties or kernel module parameters for MAX9295 and MAX96712A.
- New JetPack versions β JetPack 5.1.6 and 6.2.2 are now supported; ensure you use the correct patch set and device-tree overlays for your target platform.
- Carrier board overlays β new overlays added for Advantech (JP6.x, JP7.x), AVerMedia (JP6.x), and Seeed Orin Nano; select the appropriate overlay for your hardware configuration.
- Multi-camera configurations β FG12-16CH now supports 2-camera and 4-camera configurations via new overlay files (
tegra234-camera-d4xx-overlay-fg12-16ch-cams-0-1.dtsand...-cams-0-1-2-3.dts). - SerDes patches reorganized β GPIO tunneling patches have been consolidated; if you maintain custom patches, review the new patch numbering (GPIO tunneling is now in patch 0016 instead of separate 0017).
Contributors
ejgoldik, ipilchin1, Nikolai-L, Uzi, Uzi Sarel, KONTRA
Full Commit Log (dev branch)
Codebase commits from dev branch (v1.0.2.23 β v1.0.2.33):
d467803 Align JP5 esync configuration (#431)
01f4858 RSDEV-6847: On-demand ESYNC GPIO tunneling for external sync (#429)
6da8282 Add mfp6 config for links b to d (#430)
41edd02 [RSDSO-20614] - Seeed orin nano support (#428)
0e86a8e Remove unnecessary reset logic from probe function (#427)
8e5cdbc Fix endless HW reset when camera inaccessible (#425)
477a4d2 RSDSO-20613: enable quad D457 camera support with MAX96712 full slave mode (#426)
3a73aa5 RSDSO-20613: enable Fangzhu full slave mode in patches (#424)
54bcf16 Optimize reset and probe (#416)
1917489 Fix max9296 power_off underflow causing spurious XCLR reset during probe
e75b5f6 Use left port for Advantech on Orin
9a7985b Enable Advantech board on JP7.x
2b748fa Fixed dtb copy for JP6.x
4f32ea1 Fix Advantech dtso for JP7 (#408)
224bae0 AVerMedia deserializer board support for JP6.x (#410)
ee7e0ba [FIX] Update apply_patches_ext.sh for renamed DT patch directories (#409)
870da69 Advantech board orin support (#406)
180432a Update max9295 and max9296 driver configurations and patches (#405)
e9082f1 Max96712 multicamera (#404)
f1f0c97 Tracked on RSDSO-21191 Support Nvidia JP 5.1.x/RSDSO-21146 Support Nvidia JP6.2.2 (#402)
1bedc08 Restore max9296 GPIO tunneling for external sync (#403)
c2b8ee6 Remove 0017; MAX9295 GPIO tunneling consolidated into 0016
518bf98 Remove 0017; MAX9295 GPIO tunneling consolidated into 0016
44c7419 [FIX] Remove unused variable 'retry' in ds5_probe function
a7ea226 Fix ds5 reset and detection (#400)
f304653 Add GPIO tunneling for MAX96712A external sync support
π€ Generated with Claude Code
v1.0.2.23
Release Notes β v1.0.2.23
Date: 2026-03-16
Previous release: v1.0.1.33 (2026-01-22)
Driver: D4XX GMSL MIPI CSI-2 for NVIDIA Jetson
Diff: 57 commits, 85+ files changed (~1,974 insertions / 881 deletions in d4xx.c alone)
Highlights
- Comprehensive HW-reset recovery for GMSL cameras β the driver now detects hardware resets mid-operation, re-establishes SerDes links, re-probes sensors, and resumes streaming with minimal disruption. This spanned 12+ incremental patches (v1.0.2.5 β v1.0.2.23).
- D401 GMSL support β first-class support for D401 cameras over GMSL with POR-aligned resolutions (up to 60 FPS at 480p) and 5 FPS mode.
- JetPack 6.2.1 support β compilation and patching support added for L4T 36.4.4.
- Fangzhu FG12-16ch support β multi-camera carrier board support extended to JP 5.0.2 and JP 6.0.
New Features
| Area | Description | Commits |
|---|---|---|
| D401 GMSL | Add D401 camera support over GMSL with POR-aligned resolutions (max 60 FPS at 480p); restore 5 FPS mode | a59cd24, 3a04b6d, 445be76, 81248d8 |
| JetPack 6.2.1 | Build, patch, and deploy support for JP 6.2.1 (L4T 36.4.4) | 35e34ed |
| FG12-16ch | Fangzhu FG12-16ch carrier board support for JP 5.0.2 + JP 6.0 | 2d860ad |
| Camera sync XU control | New XU (extension unit) control for camera synchronization mode | 0785890 |
| Software I2C address aliasing | Support I2C address aliasing without HW mux | 0bfa678 |
| Calibration without metadata | Enable calibration workflow without metadata stream | 3cf003d |
| Metadata conditional on DTS | Metadata support is now gated on device-tree configuration | 4a274ac |
| MAX96712 built-in module | MAX96712 deserializer compiled as built-in instead of loadable module | 085a702 |
| V4L2 streaming script | New scripts/stream_frames.py for multi-device V4L2 streaming |
8e91091 |
HW Reset Recovery (major feature, 15+ patches)
A complete hardware-reset recovery mechanism was developed across versions v1.0.2.5 through v1.0.2.23:
- Initial implementation β detect HW reset via generation counters, re-establish GMSL SerDes links, recover streaming state (
bbb0814) - Regression fix β fix recovery regression in initial release (
4fdddfe) - Reset generation tracking β atomic generation counters with lazy cache invalidation across sensor instances (
1a483d4) - Device type polling β poll device-type register after HW reset for proper re-initialization (
c39e16f,1066a30) - Per-stream-instance recovery β fix recovery for the per-stream-instance architecture; register all instances in
serdes_inited[]; fix EBUSY loop (fdba0ec,ebb67d5,1afe702) - IMU probe fix β fix D457 probe failure on 4th instance (IMU) after HW reset (
019d69d) - Post-reset HWMC readiness β add HWMC readiness gate and fix GVD retry logic after reset (
0ecf9a1) - Format table fix β fix wrong format tables when device-type register returns 0 after HW reset (
048d43a) - D401 I2C stability β fix D401 post-reset I2C instability and GMSL link degradation (
a26e6a5) - Stability checks β add stability verification with primary instance handling (
be53fef) - Light path β conditional SERDES recovery (light path), deferred pipe release, remove serializer init from non-critical path (
2012bef,4580502) - Streaming state management β enhanced recovery β streaming interaction, force stop on generation mismatch (
f969628,559ce09,b367c4a,5bf5cea)
Bug Fixes
| Description | Commit |
|---|---|
Fix rmmod/modprobe after camera disconnect (RSDEV-6494) |
9736b6a |
| Fix streaming start/stop regression β no frames after several iterations (RSDSO-21082) | 31af8c4 |
| Fix HW-reset recovery regression | 4fdddfe |
| Revert "Add format YUYV to IR for D405 GMSL" | a024987 |
| Fix nvethernetrm symlink handling for JP 6.x | e22dab3 |
| Enhance I2C communication with retry-logic fixes | 440e6c8 |
Stability & Refactoring
| Description | Commit |
|---|---|
| Refactor ds5 configuration logic β improved data-type handling and retry mechanism | 7f6995a |
| Refactor ds5 sensor configuration and streaming logic | e6ff1f5 |
Define PIPE_NOT_CONFIGURED constant; clarify pipe_id assignments |
b0946f5 |
| Reduce log noise β demote warnings to debug; add 100 ms delay on stop | 1ba7084 |
| Align D401 resolutions to POR | 445be76 |
Infrastructure & CI
| Description | Commit |
|---|---|
| Add V4L2 on-device test workflow with self-hosted Jetson runner | 6b0383c |
| Fix V4L2 test workflow β prevent failure on d4xx module loading | 54db7f1 |
Add MAX96712 to apply_patches_ext.sh |
00f7401 |
| Refactor and enhance V4L2 test suite | 2af4497 |
Documentation
- README links migrated to
realsenseaiGitHub org (1c48909) - README updated to remove Intel references (
0c5c992) - JP6 README minimized (
f3bada8) - README: add initrd deployment step (
a6dc94c) - Added
CLAUDE.md,copilot-instructions.md, hw-reset follow-up plan doc
Contributors
Ejgoldik, Ilya Pilchin, Nikolai L., Nir Azkiel, Uzi Sarel, Yogev Modlin
Version Progression
v1.0.1.33 β v1.0.2.4 β v1.0.2.5 β v1.0.2.6 β v1.0.2.7 β v1.0.2.8 β v1.0.2.9 β v1.0.2.10 β v1.0.2.12 β v1.0.2.13 β (14β22 untagged) β v1.0.2.23
Full Changelog: v1.0.2.13...v1.0.2.23
v1.0.1.33
What's Changed
- Fix Y12I streaming error handling in vi5_capture_dequeue
- CI: testing frame order and fps by @Kontra2B in #331
- Add scripts for kernel module aggregation and deployment by @ymodlin in #336
Full Changelog: v1.0.1.32...v1.0.1.33