summaryrefslogtreecommitdiffstats
path: root/rsnix/src/cursor.rs
diff options
context:
space:
mode:
authorsalmonik <salmonik@tuta.io>2026-08-17 14:53:52 +0200
committersalmonik <salmonik@tuta.io>2026-08-17 14:53:52 +0200
commitbe868a43185826b02bf6d091019bb779678525bb (patch)
tree586988c15f1d700b1621c7f0208584b30878a56c /rsnix/src/cursor.rs
parentv0.5.10: change em-dashes to dashes (diff)
downloadrs-dos-be868a43185826b02bf6d091019bb779678525bb.tar.gz
rs-dos-be868a43185826b02bf6d091019bb779678525bb.zip
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
Diffstat (limited to 'rsnix/src/cursor.rs')
-rw-r--r--rsnix/src/cursor.rs6
1 files changed, 5 insertions, 1 deletions
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<usize> {
50 50
51fn task_main() { 51fn task_main() {
52 loop { 52 loop {
53 while let Some(ev) = crate::usb::poll_mouse().or_else(crate::ps2::try_poll_mouse) { 53 while let Some(ev) = crate::usb::poll_mouse()
54 .or_else(crate::ehci::poll_mouse)
55 .or_else(crate::uhci::poll_mouse)
56 .or_else(crate::ps2::try_poll_mouse)
57 {
54 crate::gop::cursor_move(ev.dx, ev.dy); 58 crate::gop::cursor_move(ev.dx, ev.dy);
55 crate::gop::cursor_set_buttons(btn_bits(&ev)); 59 crate::gop::cursor_set_buttons(btn_bits(&ev));
56 if let Some(id) = forward_target() 60 if let Some(id) = forward_target()