storage: NVMe, so a laptop's SSD is a disk SchOS can boot from
A native driver written from the NVMe 1.4 base specification. It resets the controller the firmware left running, then sets up an admin queue and one I/O queue pair. Completion is polled, with interrupts disabled at the queue, for the same reason AHCI polls: without AML, interrupt routing on real hardware cannot be trusted. Each active namespace with 512-byte to 4 KB sectors and no metadata is registered as nvme<C>n<N>, the name Linux uses, and its GPT is read like any other disk's. Tested under QEMU q35: disk.img on NVMe as the only disk boots through OVMF, roots on nvme0n1p2, and writes read back after sync. A 4 KB-sector namespace registers. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01S1giNvrHTrPMPw7V6x1kQ4
This commit is contained in:
parent
fa7669254e
commit
efb6446f47
5 changed files with 484 additions and 8 deletions
|
|
@ -36,6 +36,7 @@ extern const struct pci_driver ac97_driver;
|
|||
extern const struct pci_driver r8169_driver;
|
||||
extern const struct pci_driver rtl8139_driver;
|
||||
extern const struct pci_driver ahci_driver;
|
||||
extern const struct pci_driver nvme_driver;
|
||||
|
||||
// Order matters here in one respect: virtio-gpu is offered the bus before the
|
||||
// VBE framebuffer driver, so that on a machine with both, the device with real
|
||||
|
|
@ -50,6 +51,7 @@ static const struct pci_driver *drivers[] = {
|
|||
&rtl8139_driver,
|
||||
&xhci_driver,
|
||||
&ahci_driver,
|
||||
&nvme_driver,
|
||||
&ac97_driver,
|
||||
};
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue