In this post I will show you how you can easily modify the BIOS of a HP EliteDesk 800 G1 SFF or Mini so that it can support an NVMe SSD drive as a boot device.
Although these machines have a UEFI BIOS, they do not contain the NVMe driver. By adding the driver into the BIOS you can boot from a PCIe NVMe SSD. I achieved these speeds with a Samsung 970 EVO Plus from Amazon:
The speed result above was recorded when the machine was fitted with a Intel Core i7-4790. Originally the machine had a Pentium G3220T which was a bit slower:
But in both cases, the speed increase is huge from either a SATA SSD or mechanical hard drive.
Here is the PCI adapter and the Samsung NVMe SSD from Amazon installed in the HP 800 G1 Small Form Factor:
Warning
This blog post contains instructions on how to modify your BIOS.
You could easily break your machine. Proceed at your own risk!
Table of contents
Required Hardware
In order to carry out this upgrade, you will need a few things:
- An NVMe SSD. I used a 512Gb Samsung 970 EVOPlus
- An NVMe to PCIe Adapter, I used this one from Amazon.
- A HP EliteDesk 800 G1 to upgrade.
Procedure Overview
This process involves the following steps:
- Installing Required Software and drivers.
- Backing up your current BIOS.
- Adding NVMe driver support into the BIOS backup.
- Writing the modified BIOS back to the system.
- Optimising BIOS settings.
Install the Required Drivers and Software
Before being able to read from or write to the BIOS, you need to install the Intel Management Engine Components.
Download the Intel Management Engine System Tools v9.1 r7, which contains the tools required to flash the new bios. Extract the zip file to a directory on your computer.
Also download the NVME Driver which will be injected into the BIOS Image.
Finally you will need UEFI Tool 0.28 to make the actual BIOS modification. Here is a direct link to that version.
Put the machine into Service Mode
Now that you have the machine prepared, you need to put the machine into service mode before you can proceed:
- Shut the machine down.
- Remove the mains power supply.
- Locate the two pin service connector and put a jumper on it.
The FDO (Flash Descriptor Override) is in a different position depending on the model.
For the small form factor the jumper is between the Power Supply and the first PCI port , if you do not have a spare jumper you can borrow the jumper from the Password Header Pins:
For the mini the FDO Jumper is between the audio output and the VGA port:
Reconnect the power and boot the machine again.
Modify and Upgrade the BIOS
Now that you are in service mode, you can continue with the modification.
Backup the existing BIOS
Open a command prompt as an administrator and change to the directory where you extracted the Intel ME System Tools. Then navigate to the subdirectory \Flash Programming Tool\WIN64 (or WIN32 if you are on 32-Bit installation).
Within that directly use the command:
fptw64.exe -A 0x580000 -L 0xA70000 -D backup.bin
Modify the BIOS and Inject the NVMe Driver
Next, open UEFI Tool and open the backup.bin file. Expand the sections as per the following screenshot:
Scroll to the bottom of this section and you should see an area that looks like this:
Next, right click on item with the name CspLibDxe (CD8462C-6864-40A3-A081-C8D35E82B920) and choose Insert After.
Choose the file NvmExpressDxe_Small.ffs that you just downloaded earlier and you will see it appear right after the CspLibDxe section:
Now go to File -> Save Image File and save the file in the same location as the flash tool as nvme.bin. Go back to your command prompt and run the command:
fptw64.exe -A 0x580000 -L 0xA70000 -F nvme.bin
Shut down the machine and remove the jumper from the FDO pins and move it back to the password reset pins if you took it from there.
The BIOS modification is complete and the machine now has NVMe support.
Install the PCI NVMe SSD
If you have not yet installed your SSD into the machine, you can do it now. I used the black PCI slot.
Optimise BIOS Settings
Now that you have written the new BIOS you have some choices to make. The very first thing you need to understand is that you must boot in UEFI mode if you want to use the NVMe drive.
Here are my boot settings:
And here is my Option Rom Policy:
Now you can install an operating system of your choice or clone one of your existing drives to your new NVMe drive and enjoy amazing performance. If you are cloning then you will also have make sure your cloned drive is using the GPT partition system instead of MBR.
The reason I like the Samsung Drives is the data migration software makes this very easy to do.
Conclusion
This modification will bring new life to your HP EliteDesk 800 G1, it’s brilliant value upgrade and easy to perform. Especially if you are upgrading from a mechanical hard drive. I was able to boot from cold to a Windows 10 Desktop in 14 seconds.
Again, here is the PCI adapter that I used from Amazon:
- 512Gb Samsung 970 EVOPlus
- NVMe to PCI Adapter (The adapter comes with a heatsink also)
If you try it, I would love to know how you got on and what your results were.