‹ projects

reverb-m1

Native wired VR on Apple silicon: Reverb G1 display bring-up and stereo demo
git clone https://umhau.org/code/reverb-m1.git
Log | Files | Refs

commit d6819e416cad05b4ffa564aa3a03ac1c516dedd9
parent 36a78784056136bbd61fff6c185d9343c7391fd6
Author: umhau <umhau@example.invalid>
Date:   Wed, 21 Oct 2026 12:00:07 +0000

NOTES: HPD=0 drop without polling; DCP link-rate boot-arg name verified

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

Diffstat:
MNOTES.md | 4+++-
1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/NOTES.md b/NOTES.md @@ -28,6 +28,7 @@ must still be confirmed physically. ## Link reliability (2026-10-20, vr1 + vr0) - Periodic ~70-80 s drops ([time redacted]-[time redacted]) happened while `ioreg -c IOPortTransportStateDisplayPort` was polled at 1 Hz and a 287 s run without polling had none, but causation is UNPROVEN. Signature: sink pulls HPD fully low (DP [HPD=0,IRQ=0]). + Counter-evidence: an HPD=0 drop at [time redacted] with NO polling running, 18.6 s after a 90 Hz mode-set link-up. Still: never poll that class. - Post-DRST transient (2 of 3 trials, +5.05 s after link-up): headset raises IRQ_HPD (DP [HPD=1,IRQ=1]); DCP DCPDP13Service::handleCheckLink reports INTERLANE_ALIGN_DONE=0 -> "link unstable, retraining" -> terminates the video @@ -35,7 +36,8 @@ must still be confirmed physically. the HPD=0 drops. Hypothesis: HBR3 margin through the adapter; 60 Hz fits HBR2 (~15.2 of 17.28 Gbps). - DCP firmware has per-port link limits (max_link_rate, max_link_rate_4_lanes, min_link_rate, max_lane_count) read from boot-args with default prefix "appledptx" (format strings "%s-%s" present, so likely `appledptx-max_link_rate=`); - separator and value encoding NOT yet verified. Parked; would need a reboot. + name format VERIFIED (DCP fw 0x708b0: snprintf(key[0]=='-' ? "-%s%s" : "%s-%s", prefix, key)) => boot-arg is exactly + `appledptx-max_link_rate`; value is 1 byte (encoding not yet verified). Would need a reboot. - Stuck state (headset display gone, adapter reports HPD=0 to the Mac): **recoverable in software** with a USB-PD Data Reset on port 2's controller: `sudo tools/hpmctl 1 cmd DRST` (4CC passed big-endian, see tools/kernel/HPM_RE.md section 8). First success: display back 2.2 s after the command, no replug.