Skip to content

Option ROM to boot x86 PCs from NVMe drives (legacy BIOS, INT 13h)

License

GPL-2.0 and 2 other licenses found

Licenses found

GPL-2.0
COPYING
Unknown
COPYING.NOTE
Unknown
COPYING.UBDL
Notifications You must be signed in to change notification settings

Manawyrm/nvme-int13h-optionrom

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NVMe INT13h Option ROM

Boot legacy PCs from NVMe storage: YouTube video with ThinkPad T43

T43 showing the NVME BIOS init message T43 Boot Menu showing a NVMe option

This project allows old x86 computers using a classic BIOS to boot from modern NVMe storage attached via PCI(e). It's a heavily modified version of iPXE (which usually allows for booting from the network), but instead of the network, this code uses a port of the SeaBIOS NVMe implementation to talk to a local NVMe drive.

Project status

Works™
Very little fault tolerance and testing on different devices.

Supported hosts

  • IBM ThinkPad T43
  • QEMU VM, i440fx

Supported SSDs

  • Samsung SSD 980
  • Corsair Force MP510

Features

  • Booting from NVMe storage in Legacy/BIOS mode
  • Works on 32bit-only CPUs (Pentium 3, Atom, etc.)
  • Option ROM, USB flash drive, SD card, CD-ROM, chainloading (e.g. from grub) booting supported

Limitations

  • Write support is currently disabled. The code is present, but it's additional danger for no benefit (for my usecase)
  • Only 1 NVMe drive (with 1 namespace) is properly handled at the moment
  • 64bit BARs are probably not handled correctly (untested!)

Similar projects / Alternatives

There are 2 other Option ROMs publicly available:

  • Samsung 950 Pro (exposed by the PCIe device, device-specific)
  • community modded VMWare NVMe ROM (didn't work on my hardware, did work in QEMU)

This project is GPL-licensed, can be freely redistributed (both as binaries and source) and can be instrumented/debugged easily (as it's written in C).

About

Option ROM to boot x86 PCs from NVMe drives (legacy BIOS, INT 13h)

Resources

License

GPL-2.0 and 2 other licenses found

Licenses found

GPL-2.0
COPYING
Unknown
COPYING.NOTE
Unknown
COPYING.UBDL

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published