Commit Graph
47 Commits
Author SHA1 Message Date
danielandClaude Fable 5 77940cf896 feat: fully async Intel BT firmware bring-up + HCI multi-packet event reassembly
The BT firmware download now runs from the idle loop after boot (zero boot
stall), completing the async goal.  What made every earlier deferral attempt
fail was a months-latent HCI-layer bug, not the deferred environment:

  WaitCommandComplete returned after the FIRST USB packet of an event, but
  events larger than the 64-byte interrupt max-packet (like the AX211's
  96-byte FC05 TLV version response) span several packets.  Sending the next
  command while the tail of the previous response was still in flight wedges
  the AX211 bootloader into permanently ignoring commands.  Boot-time flanterm
  rendering added milliseconds between commands and accidentally paced the
  protocol past the race -- which is why the synchronous bring-up always
  worked and every log-suppressed (deferred) bring-up went mute at FC05 #2,
  regardless of scheduling/MSI/xHCI fixes.

  Fix: reassemble multi-packet Command Complete/Status events in the
  transfer callback; the mailbox is marked ready only when the declared
  event length has fully arrived.  This inherently paces command flow and,
  as a bonus, the TLV version read now sees the full response (sbe_type
  present -> ECDSA/RSA selection is no longer a guess).

Also: per-slot EP0 completion tracking in the xHCI (a waiting ControlTransfer
can no longer be released early by another device's EP0 completion).

Verified on the AX211: instant boot, background download, real BD_ADDR.

Co-Authored-By: Claude Fable 5 <[email protected]>
2026-07-07 12:31:30 +02:00
danielandClaude Fable 5 8bf3ceb457 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 <[email protected]>
2026-07-06 15:46:06 +02:00
daniel 70702a21b0 feat: HWP scaling, C1E, closed-loop thermal governor for Intel CPUs 2026-07-05 10:51:11 +02:00
daniel fc106e6c71 cleanup: rename Graphics:Cursor => Graphics::Framebuffer 2026-06-21 10:42:27 +02:00
daniel 3f26b8cdb4 feat: introduce bootloader-agnostic Boot Contract, add btlist command to list connected Bluetooth devices 2026-06-20 21:25:24 +02:00
daniel 43d43ac9ea cleanup: namespace Montauk (capital M) => montauk::abi 2026-06-16 09:09:16 +02:00
daniel 0f16785c9f feat: Intel BT firmware download, A2dp & Bluetooth audio progress 2026-06-03 18:05:17 +02:00
daniel 38b1f8a7ef feat: further kernel power and power optimizations 2026-04-21 20:51:12 +02:00
daniel 7d6f001659 feat: various power and thermal optimizations, fix Printers app regression 2026-04-20 16:00:52 +02:00
daniel ec82706c47 refactor: move filesystem discovery code into separate module 2026-04-01 13:15:31 +02:00
daniel fb9885819b feat: implement new IPC layer 2026-04-01 13:11:03 +02:00
daniel 9b4dfe3e0e fix: improve scheduling, memory, timer implementations 2026-03-24 07:40:37 +01:00
daniel 41ad1f6404 feat: Symmetric Multiprocessing, text editor improvements, merge doom libc, implement math functions 2026-03-23 20:09:11 +01:00
daniel 34f350ebf5 feat: add experimental game engine & demo game, fix ACPI events 2026-03-18 14:26:50 +01:00
daniel 39b0424085 feat: multi-user system, bug fixes, security & performance fixes, and more 2026-03-14 13:28:46 +01:00
daniel 9f54e4957d feat: Intel HDA audio driver, audio streaming syscalls, userspace Music app, fixes and improvements, rudimentary Bluetooth support 2026-03-10 17:14:33 +01:00
daniel bcd959b80f feat: ext2 filesystem, installer updates, add update feature, and more 2026-03-08 14:41:36 +01:00
daniel 7617419640 feat: MontaukOS installer app, toml config, app directory with manifests, and more 2026-03-08 12:06:29 +01:00
daniel b540a43f39 feat: GPT, FAT32 driver, disks app, userspace adapted for multiple drives, and more 2026-03-07 15:58:27 +01:00
daniel 663567fbb3 feat: Ahci, ACPI shutdown 2026-03-06 23:39:35 +01:00
daniel 5dded4bda0 feat: graphics/net PnP, keyboard driver improvements 2026-03-04 21:10:34 +01:00
daniel 8bac847fa4 cleanup: remove unnecessary includes from kernel Main.cpp 2026-03-03 20:34:14 +01:00
daniel cd8f756574 cleanup: move some logic out of kernel Main.cpp into separate files/functions 2026-03-03 20:30:59 +01:00
daniel 4ac904e565 feat: rename 'ZenithOS' => 'MontaukOS' and fix build system issues 2026-02-28 12:06:18 +01:00
daniel b01789a1f4 feat: add support for shutdown/reboot via UEFI Runtime Services 2026-02-26 18:08:05 +01:00
daniel 5810306e14 feat(kernel): Add USB devicde and keyboard/mouse support 2026-02-19 23:06:18 +01:00
daniel 9ca51596ea feat: userspace overhaul, Intel GPU driver, and more 2026-02-19 15:46:49 +01:00
daniel 010783429c feat: e100e Ethernet driver, ramdisk reorganization, shell rewrite, web server/client, and more 2026-02-19 01:18:11 +01:00
daniel d0e1542a93 fix: remove kernel mouse cursor demo, +add two future-implemented syscalls for shutdown & reset 2026-02-18 16:52:44 +01:00
daniel fb8d16ee7b feat: expand user mode, add DOOM game, add manpages 2026-02-18 15:13:53 +01:00
daniel f384d4cf75 feat: scheduling, usermode, shell 2026-02-17 19:17:01 +01:00
daniel 20fa8a9be2 feat: add ethernet & TCP/IP stack 2026-02-17 13:19:11 +01:00
daniel f7e6ce70a0 feat: PCI-e, APIC timer 2026-02-17 12:54:31 +01:00
daniel a3859dc3c4 feat: Mouse cursor 2026-02-17 12:45:04 +01:00
daniel 641ec4681b feat: Local/IO APIC, PS/2 keyboard & mouse 2026-02-17 12:44:31 +01:00
daniel 18ab628682 feat(Terminal): Enhance terminal UI with panel updates and new BoxUI utility functions
feat(Timekeeping): Implement time initialization and month string representation
refactor(Panic): Improve panic output formatting and add boxed UI elements
refactor(UEFI): Expand UEFI header and structure definitions for better clarity
refactor(IoPort): Comment out unimplemented IO functions for future work
2025-08-14 12:36:56 +02:00
Daniel Hammer 0874aa8784 feat(ACPI): Add rudimentary ACPI support 2025-05-08 19:20:19 +02:00
Daniel Hammer d63addfb64 fix(vmm): Fix crash on CR3 loading 2025-04-18 14:20:17 +02:00
Daniel Hammer 2515149f28 feat(vmm): Add Paging support 2025-04-17 21:54:25 +02:00
Daniel Hammer 0b77abfc23 feat(io): IoPort 2025-04-16 18:54:48 +02:00
Daniel Hammer fcd81be1c5 feat: Various improvements 2025-04-16 10:32:11 +02:00
Daniel Hammer ff347b1da5 feat(heap): Create new HeapAllocator implementation 2025-03-15 11:29:05 +01:00
Daniel Hammer 2b6c2fa827 feat(kcp, pfa): Add kcp::Spinlock class 2025-03-12 19:55:05 +01:00
Daniel Hammer bd8a1fdbca feat(pfa, kcp): Add kcp::NoMallocVector and realloc in PFA 2025-03-12 17:18:31 +01:00
Daniel Hammer bf2cf6a59e feat(pfa): Add PageFrameAllocator class 2025-03-12 14:34:48 +01:00
Daniel Hammer 164e7734b3 feat(readme): revamp readme 2025-03-11 20:12:12 +01:00
Daniel Hammer cc094a9172 fix(kcp, IDT, Heap, kernel): Various fixes, scrap broken memory allocator 2025-03-11 20:00:04 +01:00