wip: async BT firmware download attempt — DO NOT MERGE, breaks AX211 bring-up

Deferring the Intel BT firmware download off the boot path made the AX211
bootloader stop answering after the first FC05; even the final synchronous
revert freezes boot, so one of the 'neutral' fixes kept in this diff breaks
the bring-up on its own (candidates: BT-TRACE logging inside TransferCallback,
unconditional interrupt-IN re-queue after error completions on a halted EP,
xHCI interrupt-IN ZLP len fix interacting with HID, InPollContext owner
check).  Full history + next experiments in memory notes, 2026-07-05/06.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
2026-07-06 15:46:06 +02:00
co-authored by Claude Fable 5
parent 6a5eafb4fc
commit 8bf3ceb457
9 changed files with 163 additions and 31 deletions
+7
View File
@@ -189,6 +189,13 @@ extern "C" void kmain() {
// A Bluetooth adapter present at boot enumerates during the xHCI port scan,
// before the ramdisk is mounted. Now that drive 0 is up, finish any
// firmware-dependent bring-up that was deferred (loads ibt-*.sfi/.ddc).
//
// Deliberately synchronous, HERE, pre-Sched/pre-SMP/pre-MSI: deferring
// this to the post-boot idle loop made the AX211 bootloader stop
// answering after the first FC05 (2026-07-05, three attempts: CPU
// reservation, restored pipe timing, event-pipe fixes -- identical
// failure each time; suspected xHCI-MSI-context event processing, see
// memory notes). Boot pays the download cost until that is understood.
Drivers::USB::Bluetooth::ServiceDeferredInit();
Hal::LoadTSS();