From be868a43185826b02bf6d091019bb779678525bb Mon Sep 17 00:00:00 2001 From: salmonik Date: Mon, 17 Aug 2026 14:53:52 +0200 Subject: USB2/1.1 (EHCI/UHCI) drivers + real-hardware bring-up hardening - Add polled EHCI (USB2) and UHCI (USB1.1) host-controller drivers with HID boot mouse support, wired into cursor polling and the 'usb' shell cmd - Add USB Legacy ownership handoff (claim_usb_legacy) plus config_write_byte - Harden boot: verify the PIT/timer ticks before shell entry, EOI stray interrupts in the LAPIC to stop interrupt storms, bound PS/2 controller waits, and INTx-disable AHCI (polled driver) - Add boot stage markers, klog screen echo, and QR lock; scheduler mark_shell_running; NO_USB stopgap to keep BIOS USB-Legacy input alive - alloc_pages_above for DMA buffers that must avoid low conventional memory - Expand DEBUG_NOTES with EHCI/QEMU bring-up findings --- rsnix/src/cursor.rs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'rsnix/src/cursor.rs') diff --git a/rsnix/src/cursor.rs b/rsnix/src/cursor.rs index d9d97bc..31b919e 100644 --- a/rsnix/src/cursor.rs +++ b/rsnix/src/cursor.rs @@ -50,7 +50,11 @@ fn forward_target() -> Option { fn task_main() { loop { - while let Some(ev) = crate::usb::poll_mouse().or_else(crate::ps2::try_poll_mouse) { + while let Some(ev) = crate::usb::poll_mouse() + .or_else(crate::ehci::poll_mouse) + .or_else(crate::uhci::poll_mouse) + .or_else(crate::ps2::try_poll_mouse) + { crate::gop::cursor_move(ev.dx, ev.dy); crate::gop::cursor_set_buttons(btn_bits(&ev)); if let Some(id) = forward_target() -- cgit v1.2.3