In this post I will show you how you can modify the BIOS of a Dell OptiPlex 790 or 990 so that it can support an NVMe SSD drive as a boot device.
Although these machines have a UEFI BIOS, they do not contain an NVMe driver. By adding the driver into the BIOS you can boot from a PCIe NVMe SSD. I managed to achieve these speeds with a 256 Gb Western Digital Blue from Amazon.
As the machine only has PCIe 2.0 it is not able to reach the full speed of the NVMe drive, but it still represents a significant boost in speed over a SATA SSD.
Here is the PCI adapter and the Western Digital SSD installed in an OptiPlex 790 Small Form Factor:
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
In order to carry out this upgrade, you will need a few things:
- An NVMe SSD. I used a 256Gb Western Digital Blue NVMe SSD.
- An NVMe to PCIe Adapter, I used this one from Amazon.
- A Dell OptiPlex 790 or 990 to upgrade.
The procedure is slightly different depending on the model and form factor, but mostly the same. I have not tried this on an OptiPlex 390, so I have no idea if it will work.
This process involves the following steps:
- Upgrade to the most recent BIOS from Dell:
- 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 Intel Management Engine drivers. But instead of installing them from Dell, get these more up to date drivers from Lenovo.
Next, download the Intel Management Engine System Tools v7 r2, which contains the tools required to flash the new bios.
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.
If you are upgrading a Small Form Factor machine, the service jumper is in an awkward position which will require you to remove the Optical Drive and Hard Drive cage to access it. Once those are out of the way, you can find near the RAM slots. Here is an image of the motherboard from a 790 SFF:
If you do not have a spare jumper, you can borrow the one from the Password reset jumper. Simply shift the jumper from the password pins to the service mode pins as shown below:
You can now boot the machine again in service mode, but you will receive a couple of warning messages:
You will then receive a message informing you that the machine is in Service Mode:
If you do not put the machine into service mode you will not be able to backup or update the BIOS properly.
Modify and Upgrade the BIOS
Now that you are in service mode, you can continue with the backup and 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 -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 E0364FEE-1440-4A41-AD3E-50E0B106A83D and choose Insert After.
Choose the file NvmExpressDxe_Small.ffs that you just downloaded earlier and you will see it appear right after the DellDaBfa section:
Now go to File -> Save Image File and save the file as nvme.bin and put it in the same location as the flash tool. Go back to your command prompt and run the command:
fptw64.exe -bios -f nvme.bin
Shut down the machine and remove the jumper from the service pins and move it back to the password reset pins if you took it from there.
The BIOS modification is complete!
Install the PCI NVMe SSD
If you have not yet installed your SSD into the machine, you can do it now.
Optimise BIOS Settings
Now that you have written the new BIOS, restart the machine. If you do not have any SATA drives connected you will receive a warning on start-up that says:
Alert! Hard Drive not found
You can fix this by going into the BIOS Setup and then System Configuration -> Drives. Untick all the SATA ports which do not have drives connected:
Finally, if you want the maximum possible speed from your new drive, consider disabling C-States in the BIOS. This makes it marginally faster, but I doubt you would notice much difference:
Enjoy your NVMe Enabled OptiPlex 790 / 990
Now you can install an operating system of your choice or clone one of your existing drives to your new NVMe drive and enjoy a decent performance increase.
In my opinion, upgrading the Dell OptiPlex 790 or 990 with PCI NVMe Solid State drive is a brilliant value upgrade. If an old machine can be given a new lease of life, then that is a great win. The performance boost if you are upgrading from a mechanical hard drive will be huge.
On my machine I can boot to the Windows 10 Desktop in 11 seconds. The configuration of my machine is:
- Intel Core i5-2400
- 16Gb Ram (4 x 4Gb)
Again, here is the PCI adapter that I used:
- Western Digital Blue SN570
- NVMe to PCI Adapter (The adapter comes with a heatsink also)
If you upgrade your OptiPlex 790 or 990, please let me know your results in the comments.
Is it possible to do the Optiplex 3040 Micro, yes I knew that, there is no PCIe but there is M.2 SSD Slot Mini available (For Wifi & BT ) maybe this question silly one but curiosity, thanks in advance.
sam ito says
Please tell me about optiplex 980 bios modification.
and when I try to optiplex 780 with same procdure, but I didnot read orig. BIOS.
So great it’s working
Great it’s working
John K Peterson says
Hey Paul. Thank you so much for posting. I bought a 990 with no HD or os. I assume this method won’t work
Why don’t you think it will work?
It worked for me on Dell OptiPlex 990 but can you explain how you can boot straight from an NVME as it is not seen at bootup and In the bios I use opencore and the NVME.efi driver before!!
The whole post is about how to do this. Which part is unclear? You can boot directly from NVMe if you have made the modification described in the blog post and have your BIOS set to UEFI mode.
Please let me thank you for your efforts on enabling NVME booting straight from bios, once I enabled UEFI booting from the OptiPlex 990 bios Iwas able to add an entry from Windows Boot Manager and was able to boot the NVME from start without an sata or usb stick into windows, great job and thanks again.
Cool – glad you got a good result.
Thanks for your guide. but… no joy. Windows 10 recognizes the PCIe SSD once the OS is booted from a SATA drive, but evidently the bios on my machine does not.
Optiplex 790 Desktop (DT)
The bios install and flash works as per your guide, but even a windows install usb can’t recognize the PCIe. I’ve tried the SSD in both the PCIe16 & the PCIe4 slots.
Did you remember to enabled UEFI booting from the OptiPlex 790 bios?
Yes, Steve. And I cloned the SATA OS to the PCIe once with it formatted MBR and once as GPT (like the SATA).
After surrendering I added a boot option with bcdedit for the PCIe and a timeout of 0. I imagine the system starts from the SATA then jumps to the PCIe at some point, There’s only a savings of 3 seconds (boot in 32.02) but other monsters like Photoshop & Visual Studio load dramatically faster
Hi Bob, Once I used used this guide I noticed that the PCIe drive light would flash to indicate that the drive was recognised. As for your boot options I would try booting with only the PCIe drive and as long as your windows installed PCIe is formated to GPT and you have changed the bios to boot from UEFI after a reboot an entry appeared for Windows Boot Manager, But you can also go into the Bios and add an entry for it as seen in this link. The path should be \EFI\BOOT|BOOTX64.EFI
Hope this helps
Thanx again, Steve. Added a boot entry, but suspect it’s the same as the SATA (not the Windows Boot Manager) I tried disabling all the SATA drives (unchecking in bios) but the bios then reports no bootable device found. I don’t want to try deleting the other boot options because the only way to get them back is to return to Service Mode & reflashing the bios.
My SSD doesn’t have an onboard access led
Hi Bob, I am not sure why you are not able to boot from your NVMe but I found this video that might help you fix it.
Hope this helps
Success. The problem lay in wanting to keep my current Windows 10 setup.
Solution: unplugged all SATA’s & performed USB Windows install on top of the already cloned OS on PCIe, plugged all back in, rebooted but had to go back to bios to uncheck the SATA’s & boot again. After that, re-checked the SATA’s in bios and the machine will now allow setting priority to either OS without the dreaded “No Hard Disk Found” mesasge (I got that several times while the USB was re-installing but advanced via the F1 key.)
Evidently the install USB wriote something to UEFI that no amount of my tinkering did.
Well done Bob – great to hear these success stories.
Richard Sittig says
Paul, You took the risk and created a success! I praise you for that.
I have Optiplex 790 and 990, running well on SATAs with MBR. I tried a MBR to GPT, but it failed and messed up both drives. Have since reinstalled Win10 MBR on them.
Do you have a favorite way to do a Windows 10 MBR to GPT conversion? I had used command line MBR-GPT command. I have a blank Samsung NVMe in a Sabrent 4 lane PCIe adapter. It reads at 1660MB/s. Would like to make that my UEFI boot drive.
Is it too roundabout to convert one Win10 MBR disk to GPT. then clone it to the Samsung NVMe in order to be ready with 2 possible UEFi Boot drives, when the BIOS entry is done
Thankyou. It works. My 790 now boots with nvme drive. Also is there a way to modify bios that at uefi mode windows logo doesn’t appear like with newer motherboards windows loading happens at motherboard logo itself, it doesn’t show windows logo. Is there a way to do that in 790?
Hello. Thank you very much for the detailed and clear tutorial. I have a problem though when switching the jumper from password to service, the PC just doesn’t boot. When I put the jumper back on password, it boots normally… Any idea on how to fix it ? Maybe using a second jumper ? Thx for your help. Fabien
Thank you so much! This is amazing speed and still giving life to my Optiplex 990.
Do you think you could do the same with a Dell Optiplex 760 Tower? I would like to get a little more speed and efficiency. Thanks
i have an old 790 i3-2105 (Intel HD 3000) with a SSSD PCIe Nvme, works great with Windows 11 or Linux, EFI Boot both.
I use cheap PCIe Nvme Adapters x4, everything works.
I also upgraded a 3020 and xe2, works.
Great work from you, thanks, greetings from Germany, Oliver
Hi I am trying to mode Optiplex 790. I updated bios as per instruction and installed Intel management engine driver. After booting in service mode I am getting flowing error..
C:\Opt790>fptw64.exe -d backup.bin
Intel (R) Flash Programming Tool. Version: 22.214.171.1241
Copyright (c) 2007 – 2014, Intel Corporation. All rights reserved.
Error 201: [FPTw64.exe] cannot be run on the current platform.
Please contact your vendor.
Sorry found problem .. need to use older version of fptw.exe
Thanks for great instruction …..
Just hacked my OptiPlex 990. Magic happend and my system recived wings! Thanks for comprehensive guide.
Jay Graham says
Just patched my Optiplex 790 following your instructions, worked like a charm.
No issues whatsoever. Installed Win10 right after and getting 1647 write / 1200 read on a 512 gig Silicon Power nvme drive.
Jim van Keulen says
Tried to patch my Optiflex 9020 (bios A25). Saved bios backup succesful. However, after opening the backup.bin in UEFITool I got a message “unaligned file”. I could not find the insertion point mentioned. My structure looked different. I can insert the nvme driver after the last dxe driver and before the following PEI-module (S3–).
BUt I’m unsure of the result. Should I rebuild?
I don’t think it’ll work on my Dell Optiplex 390 Desktop since it doesn’t have service mode pins (only meclr1, cmosctr1 and pswclr1 pins), but the good news is that it worked on my Dell 3020 and 9010. I’m very happy about that. Thank you!
Muchas gracias, excelente articulo, me funciono perfecto!!, si vienes por Chile, yo invito las cervezas, Saludos!
Thank yoy very mucho, excelente post, it’s work perfectly!!, if you visit Chile, I invite the beers!, best regards
Great Tutorial. Does anyone know if this will work on a 790 usff with the Mini Pcie Slot?
Hello Pauli, this is a good tutorial, but you should have mentioned your source regarding the BIOS modification and where you got the NVMe BIOS module named NvmExpressDxe_Small.ffs.
Thanks – I don’t remember where I got it from – Winraid forum probably.
It is hard to believe, that you don’t remember your source. It was me, who detected the method in June 2015. My detailed step-by-step Guide can be found here: https://winraid.level1techs.com/t/howto-get-full-nvme-support-for-all-systems-with-an-ami-uefi-bios/30901
Well done, it’s a good guide.
It was a great contribution by you
I could understand your documentation and procedure
which is well supported by video as well.
Thanks once again Paul for great article and making things crystal clear.
HI Paul, is it possible to use the same method for Dell 980? Its recent BIOS is A18.
No idea as I don’t have one to try it on. If the machine is important to you then I would advise you not to try.
But if you do try, I would be interested to hear your results. You will probably need a different version of the Intel tools.
Ok I have successfully upgrade my 3010 and was amazed with its performance, so i will take risk to try to my 980. Regarding the intel ME system tools, how to decide which version i need for my 980 (A18)?
Hi, I need a litle help here. I have a Opltiplex 790
Did you get this error ?
Error 104: The 2 SPI flash devices do not have compatible command sets.
when I run
fptw.exe -D backup.bin
maybe a older version than
Intel Management Engine System Tools v7 r2
It has not been me, who had written the last post.
Hi Paul, great job.
I have an DELL Precision T3600. Can the BIOS modification also be done with this machine in the same way ?
Yes, I think someone in the comments did it to a T3600. Perhaps the comment was on YouTube or here. If you can confirm it works I’d love it if you could get a photo of the service pin header for me.
Hi Paul. Thanks for the hint. I will try it shortly. Photos cannot be posted on these platform.
Leave an email-adress for it.
sorry there was a typo in the email-address
Just upload them to imgbb
For me it was not working on a 990. During flashing the nvme.bin the pc completly frooze during the flash erase at 20%. i had to hard reboot it. and now it only displays 3 and does not boot anymore. Any ideas?
The only thing you could do is restore the BIOS with the backup that you made using a hardware programmer, like this one from Amazon. You could take a look at this guide I did on a similar subject:
Luckily i already have one of those flash programming adapters from another project.
The 990 has 2 flash chips on the mainboard:
MX25L6406 64mbit nor flash spi 16pin
MX25L1608E 16mbit cmos flash spi 8pin
which one is used for what?
It’s possible the bios image could be divided across two chips. But I would guess that the one you want is the 8 pin 16mbit one. 64 is too big for a normal bios image.
at least the size of my backup.bin is 10240KB
your area15.bin has 16384KB
will give it a try later on. the 8pin package is the only one to connect easily to.
Connecting to the 16 pin ones is very tricky. I bought an adapter that makes it much easier to do. The clip on ones are super challenging to get locked on.