Session 14 — 2026-03-25a — EDL Timing & qcserial Blacklist

Session 14 — 2026-03-25a

FieldValue
Date2026-03-25
Phase03a — Custom UEFI ABL
Duration~2 h

What Happened

  • Debugged inconsistent EDL connection failures
  • Identified qcserial kernel module claiming 05c6:9008 before edl tool connects
  • Permanently blacklisted qcserial in /etc/modprobe.d/ — eliminates the race
  • Measured PBL Sahara HELLO window: approximately 1–2 seconds after USB enumeration
  • Established procedure: start edl-run first, then plug in cable
  • Created tools/sahara-probe utility to test connection timing
  • Confirmed: competing USB connections (e.g. two edl processes, or qcserial + edl) crash the PBL USB state machine — device must be power-cycled to recover

Key Findings

Correct EDL Connection Procedure

# 1. Ensure qcserial is blacklisted (one-time setup)
echo "blacklist qcserial" | sudo tee /etc/modprobe.d/no-qcserial.conf
sudo modprobe -r qcserial

# 2. Start edl tool BEFORE plugging in
edl --serial /dev/ttyUSB0 ...  # or equivalent

# 3. Plug in EDL cable
# PBL sends HELLO within ~1-2 s; edl tool must already be listening

Competing connections are fatal

If two processes attempt to claim the 9008 device simultaneously, PBL’s USB state machine enters an unrecoverable state. The device becomes unresponsive on USB until power-cycled (battery drain or D+/GND reset). Always ensure only one process has the USB handle.

Artifacts

ArtifactNotes
tools/sahara-probeUtility to test Sahara connection timing
/etc/modprobe.d/no-qcserial.confPermanent qcserial blacklist on host

More posts