Jump to content

Use NVMe on boards that does not have native support...

maxtch

We all know that ever since P67 we can put a NVMe drive onto the motherboard, and the OS will see it as a storage device. However in order to boot from NVMe you generally need a newer motherboard with UEFI-level NVMe support... Or do you? Do you have any solution to boot from NVMe on an older machine?

 

Currently as my best knowledge, the following models of NVMe drives has a built-in BIOS Option ROM, allowing any machine to boot from that NVMe drive if 1) they have a PCIe slot and 2) they allow execution of Option ROM in BIOS CSM.

  • Intel SSD 750 series
  • Samsung 950 Pro

Those are the first ever NVMe drives of their respective manufacturers, and almost anything subsequent to them lacked that Option ROM.

 

A second way I have used is to hack the BIOS itself. Someone has made a universal Dxe driver for almost any UEFI BIOS based on AMI Aptio, and through adding that driver into the BIOS image and flash it you can get native NVMe support. This is a risky business though as you might brick your board if the hack failed. I have the BIOS on my Z9PE-D16C/2L modified in this way, and my 960 Pro appears to the motherboard UEFI somehow as a PATA device.

 

AFAIK a third way is to use a boot trampoline device, for example a boot partition on the SATA data drive, one of those industrial Disk on Module, a SD to SATA or even a small SATA SSD as a boot trampoline. That boot trampoline device contains either GRUB 2, or Clover bootloader, all of which has NVMe driver as a module. The old BIOS is configured to boot to that trampoline, which in turn chain loads the main OS bootloader (only for Windows, both GRUB 2 and Clover would work) or loads the OS itself (Linux kernel from GRUB 2 trampoline, or Hackintosh from Clover trampoline) from that NVMe drive.

The Fruit Pie: Core i7-9700K ~ 2x Team Force Vulkan 16GB DDR4-3200 ~ Gigabyte Z390 UD ~ XFX RX 480 Reference 8GB ~ WD Black NVMe 1TB ~ WD Black 2TB ~ macOS Monterey amd64

The Warship: Core i7-10700K ~ 2x G.Skill 16GB DDR4-3200 ~ Asus ROG Strix Z490-G Gaming Wi-Fi ~ PNY RTX 3060 12GB LHR ~ Samsung PM981 1.92TB ~ Windows 11 Education amd64
The ThreadStripper: 2x Xeon E5-2696v2 ~ 8x Kingston KVR 16GB DDR3-1600 Registered ECC ~ Asus Z9PE-D16 ~ Sapphire RX 480 Reference 8GB ~ WD Black NVMe 1TB ~ Ubuntu Linux 20.04 amd64

The Question Mark? Core i9-11900K ~ 2x Corsair Vengence 16GB DDR4-3000 @ DDR4-2933 ~ MSI Z590-A Pro ~ Sapphire Nitro RX 580 8GB ~ Samsung PM981A 960GB ~ Windows 11 Education amd64
Home server: Xeon E3-1231v3 ~ 2x Samsung 8GB DDR3-1600 Unbuffered ECC ~ Asus P9D-M ~ nVidia Tesla K20X 6GB ~ Broadcom MegaRAID 9271-8iCC ~ Gigabyte 480GB SATA SSD ~ 8x Mixed HDD 2TB ~ 16x Mixed HDD 3TB ~ Proxmox VE amd64

Laptop 1: Dell Latitude 3500 ~ Core i7-8565U ~ NVS 130 ~ 2x Samsung 16GB DDR4-2400 SO-DIMM ~ Samsung 960 Pro 512GB ~ Samsung 850 Evo 1TB ~ Windows 11 Education amd64
Laptop 2: Apple MacBookPro9.2 ~ Core i5-3210M ~ 2x Samsung 8GB DDR3L-1600 SO-DIMM ~ Intel SSD 520 Series 480GB ~ macOS Catalina amd64

Link to comment
Share on other sites

Link to post
Share on other sites

I don't really care if NVMe is used for boot or just storage. SATA and PCIe SSD boot the system about as fast anyway, apps with heavy I/O operations run after the OS is booted and can use PCIe storage freely.

CPU: i7-2600K 4751MHz 1.44V (software) --> 1.47V at the back of the socket Motherboard: Asrock Z77 Extreme4 (BCLK: 103.3MHz) CPU Cooler: Noctua NH-D15 RAM: Adata XPG 2x8GB DDR3 (XMP: 2133MHz 10-11-11-30 CR2, custom: 2203MHz 10-11-10-26 CR1 tRFC:230 tREFI:14000) GPU: Asus GTX 1070 Dual (Super Jetstream vbios, +70(2025-2088MHz)/+400(8.8Gbps)) SSD: Samsung 840 Pro 256GB (main boot drive), Transcend SSD370 128GB PSU: Seasonic X-660 80+ Gold Case: Antec P110 Silent, 5 intakes 1 exhaust Monitor: AOC G2460PF 1080p 144Hz (150Hz max w/ DP, 121Hz max w/ HDMI) TN panel Keyboard: Logitech G610 Orion (Cherry MX Blue) with SteelSeries Apex M260 keycaps Mouse: BenQ Zowie FK1

 

Model: HP Omen 17 17-an110ca CPU: i7-8750H (0.125V core & cache, 50mV SA undervolt) GPU: GTX 1060 6GB Mobile (+80/+450, 1650MHz~1750MHz 0.78V~0.85V) RAM: 8+8GB DDR4-2400 18-17-17-39 2T Storage: HP EX920 1TB PCIe x4 M.2 SSD + Crucial MX500 1TB 2.5" SATA SSD, 128GB Toshiba PCIe x2 M.2 SSD (KBG30ZMV128G) gone cooking externally, 1TB Seagate 7200RPM 2.5" HDD (ST1000LM049-2GH172) left outside Monitor: 1080p 126Hz IPS G-sync

 

Desktop benching:

Cinebench R15 Single thread:168 Multi-thread: 833 

SuperPi (v1.5 from Techpowerup, PI value output) 16K: 0.100s 1M: 8.255s 32M: 7m 45.93s

Link to comment
Share on other sites

Link to post
Share on other sites

To a large extent, Jurrunio is summarizing everything, SSDs do not use random readings like hard drives, but use mostly sequential readings. The startup process is sequential and both SATA and NVMe PCIe drives can start an OS only a few milliseconds apart. Where SSDs that are PCIe NVMe type have a great advantage is to transfer heavy files like movies due to the number of lanes and maybe the digital media creators will save a lot of time copying from one place to the other but I wouldn't pay much attention if I only need to move boot files.

Seagate Technology | Official Forums Team

IronWolf Drives for NAS Applications - SkyHawk Drives for Surveillance Applications - BarraCuda Drives for PC & Gaming

Link to comment
Share on other sites

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×