‹ 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 06736ea2d52b122abbcc7cff7674f50cf31761d4
parent be6076811f712b9b9c84cceca072e3cd2dedafd8
Author: umhau <umhau@example.invalid>
Date:   Wed, 21 Oct 2026 12:00:09 +0000

NOTES: appledptx-hot_unplug_delay_ms candidate to ride through HPD blips

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

Diffstat:
MNOTES.md | 14++++++++++++++
1 file changed, 14 insertions(+), 0 deletions(-)

diff --git a/NOTES.md b/NOTES.md @@ -45,3 +45,17 @@ Run `tools/verify.sh` (boot-args + log summaries only; no ioreg/system_profiler) - RETRACTED: "only a physical replug recovers it"; "deeper off state"; "HRST untested/unsupported" claims made before the byte order was fixed. With correct encoding HRST is rejected by the firmware (!CMD), DRST works. - HID screen_off (0x04 0x00) reliably induces the stuck state; screen_on / full wake alone do not undo it. + +## Candidate: ride through brief HPD drops (millisecond-level, no display REMOVE) — static, UNTESTED +DCP firmware (FUD/DCP.img4, t8103) AppleDCPDPTXController config, verified in disassembly: +- 0x56c0c: key `hot_unplug_delay_ms` -> boot-arg `appledptx-hot_unplug_delay_ms` (prefix + "-" + key, see above). +- 0x56c1c-0x56c28: default = (0x4bc5c(this) ? 0 : 200) ms; 0x4bc5c = (port-type vmethod +0x1a0 == 1), true for our + USB-C alt-mode port => default 0 => macOS removes the display the instant HPD drops ("HPD Lost period over"). +- 0x573f0: stores the boot-arg's numeric value if present, else the default. Property `hot-unplug-delay-ms` (8 bytes) + may override afterwards if present (it is not in our device tree). +- handleUnplugEvent (0x55134) logs "HPD Lost, delay = %llu" from this field when non-zero. +The headset's HPD=0 self-heals restored HPD in ~120 ms ([time redacted] -> .997). With +`appledptx-hot_unplug_delay_ms=300` those would not reach macOS at all. Does NOT cover the IRQ_HPD/INTERLANE retrain +mode (that path calls handleRemoveInterfaces directly). Needs a reboot; proposed boot-args: +`amfi_get_out_of_my_way=1 hdcp-fuse-mask=0 appledptx-hot_unplug_delay_ms=300` (optionally `appledptx-max_link_rate=0x14` +for 60 Hz-only operation).