git.cappig.dev / apheleiaOS.git master

9e7bf44ec6024bc396381542f8490086db6794f5 master
cappig <[email protected]> ยท 4 months ago
Add USB/xHCI boot storage and rootfs hinting

* Add a USB core with host-controller registration, queued enumeration, descriptor/std-request helpers, and boot-time enumeration settling.

* Implement a full xHCI stack (init, command/event/transfer paths, port handling, MSI or legacy IRQ, and watchdog-based recovery).

* Add USB Mass Storage class support (BOT/CBI probing plus SCSI capacity/read/write) and register USB-backed disks through the common disk layer.

* Carry boot root hints from BIOS/UEFI into the kernel and rework rootfs selection to honor UUID/transport hints before broader fallback probing.

* Harden storage and low-level plumbing with MMIO-safe physical mapping flags, safer PCI/MCFG probing, common time helpers, and lock/scheduler cleanup around new boot paths.
43 files changed, 8698 insertions, 129 deletions
kernel/arch/arch.h +5 -2
kernel/arch/x86/ahci.c +14 -17
kernel/arch/x86/arch.c +80 -4
kernel/arch/x86/ata.c +4 -13
kernel/arch/x86/boot.h +37 -0
kernel/arch/x86/boot/bios/disk.c +53 -4
kernel/arch/x86/boot/bios/disk.h +2 -0
kernel/arch/x86/boot/bios/main.c +1 -0
kernel/arch/x86/boot/uefi/main.c +43 -0
kernel/arch/x86/boot/uefi/util.c +11 -2
kernel/arch/x86/mm/phys_window.c +180 -9
kernel/arch/x86/usb_hcd_common.c created
kernel/arch/x86/usb_hcd_common.h created
kernel/arch/x86/usb_xhci.h created
kernel/arch/x86/usb_xhci_cmd.c created
kernel/arch/x86/usb_xhci_event.c created
kernel/arch/x86/usb_xhci_init.c created
kernel/arch/x86/usb_xhci_internal.h created
kernel/arch/x86/usb_xhci_port.c created
kernel/arch/x86/usb_xhci_xfer.c created
kernel/main.c +1 -11
kernel/sched/scheduler.c +76 -19
kernel/sys/cpu.c +6 -0
kernel/sys/cpu.h +1 -0
kernel/sys/disk.c +517 -19
kernel/sys/disk.h +39 -0
kernel/sys/lock.h +11 -0
kernel/sys/pci.c +222 -26
kernel/sys/pci.h +1 -0
kernel/sys/procfs.c +3 -3
kernel/sys/time.c created
kernel/sys/time.h created
kernel/sys/usb.h created
kernel/sys/usb_core.c created
kernel/sys/usb_desc.c created
kernel/sys/usb_desc.h created
kernel/sys/usb_enum.c created
kernel/sys/usb_internal.h created
kernel/sys/usb_msc.c created
kernel/sys/usb_msc.h created
kernel/sys/usb_stdreq.c created
kernel/sys/usb_stdreq.h created
makefile +4 -0