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.
pop says
I Have the HP 800 G1 mini and the motherboard doesn’t have the service mode jumpers. SO how can I achieve this MOD?
Paulie says
Wow – you found this post quick. I only just pressed publish! I have no idea. I don’t have access to a mini.
Jim G says
@pop
I don’t believe the HP 800 G1 mini will work for this. I see no mention of a PCIe slot in the specs for it. The minis are almost like laptops really, no expansion other than ports really…
https://support.hp.com/us-en/document/c04266271
pop says
The mini has slot for a pcie m.2 card and many people in the past have tried to boot NVME drive but failed. If this becomes possible with the help of this tutorial Mod then a lot of people who still own this model will be very happy.
Jim G says
@Paulie Well done! Very nice. Thanks for sharing. I’m surprised the Intel ME tools work for the 800 G1, where as they would not for the HP Elite 8300 series when you tried it.
Before you posted this, I was getting ready to ask you about rom IC types for this 800 G1 and for the 800 G2 series to do those machines with Linux. But this will be much easier.
Will try this later, hopefully it works good. 🙂 The G2 would be great as it has an i5 6500 cpu, similar to the 800 G3 which has an M.2 slot already on the board…
Jim G says
@pop have you tried a M.2 PCIe NVMe in it already?
looks like you should be able to use a Samsung 950 pro in that machine natively without any mods…
https://h30434.www3.hp.com/t5/Desktops-Archive-Read-Only/HP-ProDesk-600-G1-mini-doesn-t-detect-SSD-on-M-2-slot/td-p/4099900/page/2
As for the bios mod, in theory Paulie’s mods should work with any PCIe x4 or x16 slot. How that translates to PCIe NVMe? unknown.
Maybe the board itself only supports certain revisions of NVMe? Again, unknown.
I would try the Samsung 950 pro and see if that works first, and find out what revision of NVMe it is. Perhaps the mini only likes a specific version of NVMe.
Since the mod makes a backup of the bios, you may as well just try it on the mini, and revert back if things don’t work out.
Kaz says
Another fantastic guide. Very clear and concise ?? Your guide has been invaluable. Have done this on all my DELL 7020/9020 machines with great results.
One cautionary note is regarding the PCIE card. There are compatibility issues so make sure you buy the exact one shown here or make sure you are able to return it. I learnt the hard way when I randomly purchased a card based on delivery speed and to my dismay, it didn’t work. Had to return and order one that I know works.
Paulie says
Thanks Kaz! Got a bit of a formula going. I need to film videos for the HP 800 and the 8300 and then I will move on to the 800 G2
Duncan says
Very interesting, Paulie and thank you. I did this a while ago with my 3rd generation Intel motherboard, but I pushed the NVME driver into my rEFInd bootloader and it works perfectly ever since.
With your method, can you flash any UEFI BIOS?
Paulie says
There’s many motherboards that you can do it to and there are lots of generic guides. But it does seem to be slightly different per machine – which is why I like to write a separate guide for each one to remove doubt and give confidence to the reader. I found a lot of the generic guides to be difficult to follow.
Cosmo says
i think the 800 G2 supports nvme with stock bios
siliconbeaver says
after BIOS mod, can HP still run hard drive. i.e. mix of SSD and hard drive.
If possible, I would re-use hard drive for data storage.
I am going to try my old HP 8300/800 G1. If working, that’s would be cool.
Paulie says
Yep, you can still use any drives connected to the SATA ports for data.
Paulie says
I would advise you to seek specific instructions for your motherboard. This guide is specific to this machine.
lutra says
good day, I can confirm that it also works on the 800 g1 mini, the FDO jumper is on the right side when the audio is output, used drive Patriot 310 240gb nvme gen3, excuse my English, translator
Paulie says
Thanks for letting me know – I’ve added an image of the FDO jumper on the mini to the post.
pop says
@paulie this is a good news. i will find sometime to try this on my Mini soon.
Thanh Alex says
Thank you so much!
My HP 800 mini G1 is ready to boot from nvme ssd. it took me 10 minutes to edit and install bios.
Paulie says
Beautiful! Is it fast?
David says
I find it amazing how many people have used this mod to add nvme support. Afterall I was patient zero to use this technique.
john says
OMG!! I’M THE GUY STUCK ON A LINUX MACHINE AND HAVEN’T USED WINDOSE.. Z.. Z….. (OH, sorry lol) SINCE XP PRO WAS DROPPED!! Can’t imagine a good idea to try and run through WINE or that other program for windows progs on linux?
Any idea?
Paulie says
Check out my guide on the EliteDesk 8300 if you combine that guide with this one, it should give you everything you need to do it in Linux.
Miguel says
any other brand of pci nvme adapter can be used
Miguel says
you can use any brand of nvme pci adapter and nvme hard drive sorry for my english
Tom says
Paulie, nice article and video.
I’m a novice regarding computers (probably a major understatement), bought a used HP EliteDesk 800 G1 SFF a while back to run some software and equipment offline that is only supported by Windows 7, and after seeing your YouTube video, I am interested in adding NVMe soon.
Regarding the UEFI Tool 0.28. You have a link to a GitHub page for this and a “direct” download link (https://github.com/LongSoft/UEFITool/releases/download/0.28.0/UEFITool_0.28.0_win32.zip)
If I am interpreting this correctly(?), the direct download file seems to be for a Windows running 32 bit.
Two (2) questions:
1. My machine is 64 bit, so is the correct file for me to download the one listed below?
UEFITool_NE_A65_win64.zip. (6.83 MB Feb 25)
(https://github.com/LongSoft/UEFITool/releases/download/A65/UEFITool_NE_A65_win64.zip)
2. Any problems doing the NVMe update/upgrade for people running Windows 7 (Pro), and/or does it change any of the suggested hardware/software/driver or instructions?
Paulie says
Hi Tom,
Windows 7 does not support NVMe natively, so this won’t be such an easy upgrade for you. It is possible to add NVMe support, but for the sake of simplicity I would use a SATA SSD.
Paulie
Tom says
Paulie,
Thank you for taking the time reply and your advice. Very kind of you and I sincerely appreciate it.
Ironically, immediately after I bought the HP EliteDesk 800 G1, I did add a Samsung SATA SSD as the boot drive. I realize in hindsight that this was not particularly difficult, but I was proud of myself nonetheless:).
Ultimately, I may just stay with the SATA SSD solution as NVMe may not be worth the effort or possible headaches. I’ll have to research ways to add NVMe to Windows 7 and see if there are instructions/videos that are comprehensive and easy to follow for a person with my computer skill level.
If you are aware of one/any, feel free to point me in that direction and I’ll check them out.
Since you are an IT guy, do you have advice (in general) about the trustworthiness and “safety” (spyware, malware…) of sourcing software/drivers, etc. that are not downloaded directly from the hardware manufacturer/Intel/Microsoft/etc. websites; but rather, come from third party developer sources and websites such as GitHub, etc.? I guess to put it another way, even as a computer expert trained in the field, how do you personally decide whether you are comfortable using certain third party sourced software, sometimes required for example, in upgrades such as this NVMe one?
SK MD IMRAN says
Hi Paul,
I’m using HP motherboard 406 G1 MT, can please tell me what is the backup bios command “fptw64.exe -A 0x580000 -L 0xA70000 -D backup.bin” and restore command.
Thanks,
Imran
Zack H says
hi Paul,
I had previously done 3 mods (2 Dell Optiplex 9020, one 7010). Today I am trying to do a EliteDesk 800 G1 Tower (not sff or mini). The backup.bin shows slightly different structures:
^ UEFI image
Padding
^8c8ce578-*****
but inside it I do see the CD84562C….CspLibDxe.
The question is whether I could write this modified bios back or not? since they looked different from you screen capture.
In the other machines I had to update the BIOS first, which this article does not say.
Many thanks,
Zack
Paulie says
I would suggest that you update the BIOS first.
Zack H says
ok I watched your video and it shows the same bios file…I flashed the modified bios and then the computer has no network (it had it working even after the bios jumper)….but it turned out the Netgear router chose this rebooting moment to kill itself….now computer works fine with the modified bios (with a back up router), but have not bought the board and nvme to test it yet.
Miki says
hi paul
It would be possible to plug the adapter into another pci slot I have the black one busy with the graphics I hope for a prompt response thanks
Paulie says
You can put it in another slot. You might not get the same speeds though.
Miki says
would settle for it being faster than my kingston ssd which would surely be faster
jcardenasch says
Unfortunately, I am getting the following error when I open the backup file
parseFile: invalid data checksum 5Ah, should be AAh
Dan Lewis says
Hi Paul,
‘Just wanted to let you know that I finally fixed my Dell Precision T3610 by purchasing two new BIOS chips, flashing them from the backup.bin file, and soldering them onto the motherboard. It booted right away, and all I had to do was set the BIOS clock. Then I (carefully) proceeded to do the BIOS mod and this time without bricking the motherboard!
Thanks for all your help!
Dan
Paulie says
Wow – that would have made a great video – I bet you learned loads. Well done!
Fernando says
Hi Paul
I have tried your procedure with my HP Prodesk 400 G1 SFF, but I obtain an error with the command:
c:\>fptw64.exe -A 0x580000 -L 0x7A0000
Warning: The length of data to read from flash extends past the end
of flash memory!
Start Address: 0x00580000
Read Length: 10944512
Total Flash Size: 8388608KB
Do you want to truncate the data and continue? Y/ or q to quit : n
I did the backup with the command:
c:\>fptw64.exe -BIOS -D backup.bin. I add the NVME driver and I apparently everything is correct, but I don’t dare dump the bios, not knowing if I’m doing the right thing.
What range of values ??should I take for the -A and -L parameters in my Prodesk 400G1 SFF?
Thanks
Paulie says
No idea, I do not have a 400 to try it on. I would advise you not to use these instructions for a 400 as they are written specifically for this machine. Only consider moving forward if you have a hardware based flash writer so you can revert your changes safely. It is likely to be a different flash chip.
Fernando González Macías says
Hi Paul.
Where did you get the information to know that the parameters for fptw64.exe on the 800 G1, were -A 0x580000 -L 0x7A0000?
How can I know the equivalent parameters for the Prodesk 400 G1 SFF?
On the other hand, how can I know the correct version of Intel Management Engine System Tools for the 400 G1?
Tranks
Raf says
Hey Paulie, I hope you’re well mate.
Thank you very much for putting together this great tutorial. I’ve been trying for ages to implement this on my old but reliable G1, and this is only great news.
Just one thing to add: initially, I installed the NVMe adapter in the white PCI port and was only getting half of the speeds you reported. I did a bit of research and found that the white PCI is v.2 and the black one is v.3. So, I moved the adapter to the black port and now I’m achieving read and write speeds above 3Gb/s.
I hope this helps.
Again, thank you very much for such a great and detailed tutorial.
Cheers,
Raf
siliconbeaver says
It also works on HP 800 EliteDesk G1 tower.
OS install. this time, I did ghost disk-to-disk rather than clean-install.
Under original OS Windows 7, installed Microsoft hotfix Windows6.1-KB2990941-v3-x64.msu (V3 NOT V2), reboot to finish Microsoft hotfix install, then shut-down.
next, boot from ghost, image disk-to-disk. when done, shut-down then disconnected the original OS disk (SATA SSD, to boot easy and safe).
now boot, Windows 7 started and is up.
the G1 mod is similar to HP Elite 8300 mod but much easier. all completed under Windows. I think, G1 mod is best worth. More important, after BIOS mod, all CSM feature intact on G1, I can still boot an run those CSM-boot GPT tools. but on HP Elite 8300 after BIOS mod, those tools failed to work.
Thank Paul,
siliconbeaver says
Here is Crystal report
(again, the CrystalDiskInfo cannot detect the NVMe SSD. hence no CrystalDiskInfo. per shipping slip, it’s TOSHIBA 512 GB).
——————————————————————————
CrystalDiskMark 8.0.4 x64 (C) 2007-2021 hiyohiyo
Crystal Dew World: https://crystalmark.info/
——————————————————————————
* MB/s = 1,000,000 bytes/s [SATA/600 = 600,000,000 bytes/s]
* KB = 1000 bytes, KiB = 1024 bytes
[Read]
SEQ 1MiB (Q= 8, T= 1): 3121.891 MB/s [ 2977.3 IOPS]
SEQ 1MiB (Q= 1, T= 1): 2208.103 MB/s [ 2105.8 IOPS]
RND 4KiB (Q= 32, T= 1): 795.108 MB/s [ 194118.2 IOPS]
RND 4KiB (Q= 1, T= 1): 51.478 MB/s [ 12567.9 IOPS]
[Write]
SEQ 1MiB (Q= 8, T= 1): 1145.681 MB/s [ 1092.6 IOPS]
SEQ 1MiB (Q= 1, T= 1): 1119.156 MB/s [ 1067.3 IOPS]
RND 4KiB (Q= 32, T= 1): 737.064 MB/s [ 179947.3 IOPS]
RND 4KiB (Q= 1, T= 1): 266.784 MB/s [ 65132.8 IOPS]
Profile: Default
Test: 1 GiB (x5) [C: 9% (42/477GiB)]
Mode: [Admin]
Time: Measure 5 sec / Interval 5 sec
Date: 2023/05/06 17:28:44
OS: Windows 7 Professional SP1 [6.1 Build 7601] (x64)
miki says
You could make a configuration to be able to activate the xmp profile in the bios for the memories that I can’t find any modified for that option and update to 2.78 and it doesn’t have that option, what a disaster my g.skill is no longer worth it, they stay at 1333, I didn’t do it old bios backup
Damián R. says
Good night,
I have hp 800 g1 SFF and after looking for options I found this thread.
Comment that it has worked perfectly for me cloning SSD to nvme in pcie x4 with m.2 to pcie adapter.
Outstanding performance of 1min 20s has passed to 30s of loading win10 and note that it is in legacy mode that is working, I have a PC like new and for several years of use.
Thanks for sharing your knowledge.
Zach B says
hi Paulie,
I have one white (16x downgraded to 4x) and a 16x PCI slot. which one is faster? right now inside the white one.
siliconbeaver says
@Zach, your 1st choice is the black PCIe slot (v3).
If not, then 2nd choice is the 4X slot one.
@Navi says
Hi Paul, first I apologize for my English. I followed carefully what you posted, I managed to install a ssd samsung 970 Evo Plus 500GB in Hp Prodesk 600 g1 mini, but before that I updated BIOS to the latest version and it works 10 out of 10. Thank you very much for your contribution!