Files
RedBear-OS/drivers/usb
Red Bear OS 2a3b0d4e0a xhcid: per-device USB 2.0 hardware LPM (L1) enablement at attach (P7-A)
Implement the Linux 7.1 xhci.c:4650 xhci_set_usb2_hardware_lpm() enable
path, closing the P7-A gap on top of the P2-B substrate:

- usb/bos.rs: BosUsb2ExtDesc bmAttributes accessors (LPM support, BESL
  support/validity, baseline/deep BESL fields) + 3 unit tests
- xhci/mod.rs:
  - change_max_exit_latency(): MEL update via Evaluate Context (slot
    output context copied, SLOT add flag, DWORD1 low 16 bits = MEL) —
    Linux xhci.c:4520
  - calculate_hird_besl(): HCS_PARAMS3 U2 latency + device BESL
    attributes — Linux xhci.c:4594
  - enable_usb2_hw_lpm(): BESL vs HIRD parameter selection, MEL
    Evaluate Context, PORTHLPMC/PORTPMSC programming via the existing
    Port::enable_lpm — Linux xhci.c:4686-4722
  - BESL_ENCODING_US table, XHCI_L1_TIMEOUT_US=512, XHCI_DEFAULT_BESL=4
- xhci/scheme.rs (get_desc): attach-time gate chain — hw_lpm_support &&
  per-port HLC (USB 2.0 protocol only) && device USB_LPM_SUPPORT in BOS
  && non-hub class && root-hub-direct (get_desc only runs for root-port
  devices). LPM enable failure logs a warning and continues — LPM is
  opportunistic; the device works in U0 regardless.

Verified: cargo check -Z build-std --target x86_64-unknown-redox -p
xhcid clean (no new warnings). Unit tests compile-verified; execution
requires redoxer like the crate's existing test suite. Runtime L1
entry validation requires LPM-capable hardware (QEMU's xHCI does not
advertise HLC) — recorded as hardware-validation debt in the USB plan.
2026-07-20 19:21:01 +09:00
..
2026-03-22 09:45:09 +00:00