In this post I will show you how you can install an NVMe SSD into a HP Compaq Elite 8300 Small Form Factor and modify the BIOS so that the machine can boot natively from it. The 8300 SFF does have a UEFI BIOS, but there is no NVMe driver present.
I recently wrote a post on how add NVMe support to a Dell OptiPlex 7010 which has the same Q77 chipset at the HP 8300. I was asked if the the same procedure could be used to upgrade the HP.
It is possible to modify the BIOS on the HP 8300 Elite, but it is much more difficult to do. The completed modification does produce impressive results. Here is my CrystalDiskMark Result from the 8300 using a Samsung 970 EVO Plus:
Why is the HP Compaq 8300 Difficult to modify
On the Dell OptiPlex 7010 I was able to put the machine into service mode and gain full read and write access to the BIOS. The HP 8300 motherboard has a similar function called FDO (Flash Descriptor Override):
Putting a jumper on to these pins allows the Intel Management Tools to fully read the BIOS, but the Intel Flash Programming Tool (fpt.exe) is not able to write back to it, and displays the message:
C:\Intel ME System Tools v8 r3\Flash Programming Tool\Windows64>fptw64.exe -bios -f nvme.bin Intel (R) Flash Programming Tool. Version: 220.127.116.111 Copyright (c) 2007 - 2014, Intel Corporation. All rights reserved. Platform: Intel(R) Q77 Express Chipset Reading HSFSTS register... Flash Descriptor: Valid --- Flash Devices Found --- W25Q128BV ID:0xEF4018 Size: 16384KB (131072Kb) PDR Region does not exist. Error 28: Protected Range Registers are currently set by BIOS, preventing flash access. Please contact the target system BIOS vendor for an option to disable Protected Range Registers.
I tried various methods to enable write access to the BIOS with software solutions, but I was unable to. So I tried using an SPI programmer directly on the BIOS chip, which works, but is not easy to do for the following reasons:
- My CH431a programmer only came with an 8 pin chip connector, but the BIOS chip on the 8300 is 16 pin.
- The BIOS chip is located so close to the RAM slots that it is difficult to access.
If anyone reading this blog finds a way of writing to the BIOS with software tools, please let me know! It must be possible as the HP Firmware updates are able to write to the flash chip.
Here is a top down view of the HP 8300 Elite Motherboard, with an arrow pointing at the BIOS Chip:
and here is a close-up of the BIOS chip, which is a 16Mb Winbond W25Q128BVFG:
The retaining arm for the RAM makes it impossible to attach the SPI Programmer, so to solve that problem, I simply snapped it off. It was not very strong and snapped in half easily. I would love to hear if someone has a more elegant method. The retaining clip still works fine.
Modifying the HP 8300 Elite BIOS
So in order to modify the BIOS, I required the following hardware:
- KeeYees SOP8 SOIC8 Test Clip and CH341A USB Programmer.
- 16 Pin DollaTek SOIC16 SOP16 Test Clip.
- Samsung 970 EVO Plus NVMe SSD.
- Cheap M.2 NVME to PCIe 3.0 x4 Adapter.
- A spare machine with a USB 3 port to read and write from the BIOS chip.
Attaching the chip clip to the BIOS
I attached the 16-Pin chip quite easily once the RAM clip was snapped off:
Note: I did all of this with the machine fully assembled. But it was very difficult to get a good photo, so I took the motherboard out. Notice the red cable on the ribbon of the clip indicates the location of Pin 1, which corresponds to the location of Pin 1 on the BIOS chip.
At the USB Programmer end it looks like this:
For the purposes of clarity, this picture shows:
The 16 pin clip and ribbon, connected to a 8 to 16 Pin Header, which is connected to the CH431a USB Programming tool. The 16 pin clip I ordered came with both a 16 to 16 pin header, and a 16 to 8 pin header.
The ribbon is quite short, so the machine you connect the USB Programmer to has to be quite close by.
Disconnect the HP 8300 from the mains before connecting the USB Programmer to the host computer. You will know when you have got a good connection because a small light between the RAM slots will light up:
Create a BIOS Backup
With the clip successfully connected you can now proceed to backing up and modifying the BIOS. Download and install the following software.
With all the drivers installed and the hardware connected you can run AsProgrammer. The first thing to do is change the hardware settings to CH341a:
Next, you can ensure the chip is properly connected by clicking on the Read-ID Button:
You should get output like the image above. Choose W25Q128BV. If your output is different, do not continue further.
- Select Read IC from the toolbar. This will take a few minutes to execute.
- Select Save File from the toolbar. I saved mine as HP8300.bin
Make sure you keep your backup file safe! If things go horribly wrong, you can use it to restore your machine back to it’s original state.
Leave AS Programmer open as we will be coming back to it, to write the modified BIOS.
Modify the BIOS in UEFITool
Next we will modify the BIOS using UEFI Tool:
- Download, extract and open UEFITool 0.82.
- Open the BIOS backup that you created with ASProgrammer.
- Expand the BIOS Image like this:
- Scroll to the bottom of this section until the final DXE driver, which should be HpDigitalSignatureVerification.
- Download this NVME Driver and save it to your machine.
- Right click on the final DXE driver and choose Insert After.
- Choose the NvmExpressDxe_Small.ffs that you just download and then save the file as NVME.bin.
Write the modified BIOS back to the HP 8300
Now that you have the modified BIOS image complete, go back to ASProgrammer:
- Click the Open File button and open NVME.bin.
- Click the Programm IC button and wait for the flashing process to complete.
- Disconnect the programmer.
Add the NVMe Adapter and Drive
The system will now be able to from an NVMe drive! You can either complete a fresh install of your Operating system or clone your existing installation to the new NVMe SSD
Adding NVMe support the HP Compaq 8300 Elite does provide a massive boost in performance. The machine I upgraded had a mechanical hard drive so the difference was astonishing. Here is the difference in speed results:
You will have to judge if this is the right upgrade for you. A SATA SSD would be much easier to fit and does not require the use of additional hardware to modify the BIOS. This NVMe modification provides greater performance, but at the cost of added complications and the risk of damaging your machine.
If anyone is able to find a method to update the BIOS without using the USB Programmer I would love to hear from you.