SchOS/kernel
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Nexoniarz f6c4b6377f GMMOS: USB keyboards on xHCI
The third micro driver: xhci.c with everything but finding a keyboard and
reading it taken out. It does not take over the live driver's state --
the kernel may have died inside that driver -- so each controller is
halted, reset and enumerated from nothing. Of the live driver it uses
the register mapping and the scratchpad pages the controller was lent
(DCBAA entry 0, read before the reset).

Root ports, and USB 2 hubs up to two deep (power, reset, route string,
transaction translator for a slow device behind a high-speed hub). A
boot-protocol keyboard interface gets Set Configuration, Set Protocol
boot, Set Idle, one interrupt IN endpoint and a Normal TRB, re-queued
after every report. No interrupts, no hot-plug, nothing that is not a
keyboard or a hub. A static 256 KB pool instead of the DMA allocator.

Checked under QEMU with the PS/2 controller switched off (i8042=off): a
USB keyboard on a root port, and one behind a hub, both type into the
GMMOS terminal. QEMU's hub is full speed, so the transaction-translator
path is not exercised.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01S1giNvrHTrPMPw7V6x1kQ4
2026-10-25 01:23:14 +02:00
..
acpi GMMOS: I2C keyboards, and every keyboard at once 2026-10-25 01:15:50 +02:00
arch/x86_64 panic stops every other processor 2026-10-25 00:50:50 +02:00
core GMMOS: the Guru Meditation Micro OS, alive under the PSOGM 2026-10-25 01:11:04 +02:00
dev display: confirm a resolution change, and size the console font to the screen 2026-10-24 23:11:22 +02:00
drivers GMMOS: USB keyboards on xHCI 2026-10-25 01:23:14 +02:00
fs kernel: syscalls get the whole kernel stack 2026-10-24 21:17:02 +02:00
gmmos GMMOS: USB keyboards on xHCI 2026-10-25 01:23:14 +02:00
net kernel: HTTPS through wget, half-close, and /proc/<pid>/fd 2026-10-24 20:28:03 +02:00
proc GMMOS: the Guru Meditation Micro OS, alive under the PSOGM 2026-10-25 01:11:04 +02:00
scff SCFF: the live root ships compressed, with Xorg and Window Maker 2026-10-24 21:17:31 +02:00
sys X gets a VT: keyboard, terminal switching, and a way out 2026-10-24 21:45:50 +02:00
kernel.ld kernel: load at 16 MB, clear of what firmware keeps low 2026-10-24 00:13:53 +02:00