summaryrefslogtreecommitdiffstats
path: root/rsnix/src/klog.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/klog.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/klog.rs')
-rw-r--r--rsnix/src/klog.rs10
1 files changed, 10 insertions, 0 deletions
diff --git a/rsnix/src/klog.rs b/rsnix/src/klog.rs
index 2e1fc82..300a597 100644
--- a/rsnix/src/klog.rs
+++ b/rsnix/src/klog.rs
@@ -95,6 +95,16 @@ pub fn emit(args: core::fmt::Arguments<'_>) {
95 crate::serial::write_raw(line.as_str()); 95 crate::serial::write_raw(line.as_str());
96 crate::serial::write_raw("\r\n"); 96 crate::serial::write_raw("\r\n");
97 append(line.as_str(), ms); 97 append(line.as_str(), ms);
98 // Screen echo: mirror the serial line to the VGA console, so the whole
99 // boot log is visible on real hardware without a serial console. The
100 // last line on screen when the machine freezes is exactly where boot
101 // stopped (far more precise than the stage marker). Skipped while a
102 // fault dump is rendering its own band (row 0 = boot marker, terminal
103 // lives below it).
104 if crate::vt::ready() && !crate::interrupts::in_dump() && !crate::gop::qr_locked() {
105 crate::vt::write_str(line.as_str());
106 crate::vt::write_str("\n");
107 }
98 crate::sched::unlock(); 108 crate::sched::unlock();
99} 109}
100 110