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 wrote a post on how add NVMe support to a Dell OptiPlex 7010 which has the same Q77 chipset at the HP 8300. So I wondered if the the same procedure could be used to upgrade the HP. Although the procedure is quite different, it is easy to do and can be completed in under 20 minutes.
The completed modification produces impressive results. Here is my CrystalDiskMark Result from the 8300 using a Samsung 970 EVO Plus:
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 USB Memory Stick of at least 2Gb.
- A jumper cap/paperclip etc.
- A HP Compaq 8300 computer to modify.
These computers are now really cheap on Amazon and in they are a bargain in my opinion if you just need a basic machine work school or office work.
Best SSD Deals of the Week
The above hardware is what I used for the upgrade, but SSD deals change quickly. Check out my best SSD Deals
The process involves a number of steps:
- Upgrade your current BIOS to the latest version.
- Create a SystemRescue bootable USB Drive.
- Put the machine into service mode.
- Modify the BIOS and inject the NVMe driver.
- Install the new NVMe hardware.
Before proceeding with the rest of the steps. Take a moment to check that you are on the latest BIOS available from HP. At the time of writing that was version 00.03.08 Rev.A.
I’d be interested to know if this BIOS mod also works for the 6300. But I do not have one to try it.
Create the bootable SystemRescue Image
Put the machine into service mode
Once you have created the bootable USB you can shut the machine down and put it into service mode.
To put the machine into service mode you will need to remove the lid and find the FDO (Flash Descriptor Override) jumper, which is here:
Jump the pins with a jumper cap or anything else that you can find (paperclip etc). So it should look like this:
Boot the machine with SystemRescue
With the jumper on the FDO pins, insert your bootable USB into the machine and turn it on.
Press the escape key to access the boot menu and select your USB Stick. You will come to the SystemRescue boot menu, which should look like this:
Press the e key to change the default boot options. Use the cursor keys to move down to the line that says linux and add the following to the end:
setkeymap=uk copytoram dostartx
Change the keymap to be appropriate for your own environment or if you are in the USA, just leave that part out.
Press CTRL-X to proceed with the boot.
Backup and modify the BIOS
The system will boot into a graphical interface. From there open Firefox and come back to this blog post so that you can copy and paste commands.
We have booted the USB drive using the copytoram option, which will enable us to mount the USB drive from within our booted environment to store the backup of the BIOS.
First, open a terminal by clicking on the terminal icon:
Type the following command:
fdisk -l |grep "W95"
The output of the fdisk command should be something like this:
/dev/sda1 * 2048 500118191 500116144 238.5G c W95 FAT32 (LBA)
Make a note of the device, this should be your USB thumb drive, in my case it is /dev/sda1. Then type the following commands:
mkdir /mnt/usb mount -t vfat /dev/sda1 /mnt/usb flashrom -p internal -c MT25QL128 -r /mnt/usb/backup.bin
It should look like this:
The flash chip will now be read and you should get output like this:
Leave the terminal window open as we will be coming back to use it again soon.
Now the backup of the HP BIOS is safely stored on the USB device we can inject the USB driver. Open Firefox and download UEFITool 0.28.0 from here.
Open the downloaded zip file and drag the executable on to the desktop. Then open UEFI Tool. Open backup.bin that was created in the previous step by navigating to Other Locations -> Computer -> mnt – usb.
Modify the BIOS in UEFITool
Next we can modify the BIOS.
- 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 your terminal and use the command:
flashrom -p internal -c MT25Q128 -w /mnt/usb/nvme.bin
The new BIOS image will be flashed to the chip and it should look like this:
Now you can shutdown the system and remove the jumper from the FDO pin headers.
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:
Cold boot time for Windows 10 with the mechanical hard drive was 1 minute and 16 seconds. With the NVMe drive it was 20 seconds.
Google Chrome OS Flex
As the HP Compaq Elite 8300 is a Chrome OS Flex Certified Device I decided to install that on to the NVMe drive and try it out. The installation worked no problem and it booted in 12 seconds. I really like OS Flex for giving older machines a new lease of life. It feel like a brand new machine.
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 any additional hardware. This NVMe modification provides greater performance.
I would like to say a big thanks to Ivan in the comments who found that the BIOS chip could be flashed using the Linux based Flashrom tool. Previously this guide contained a much more complicated procedure.
In the end I actually used this Dual M.2 NVMe and SATA adapter from Amazon:
This allowed me to have the Samsung NVMe drive with a Western Digital SATA drive for additional storage. I used a short right angled SATA cabled which turned out to be a very neat solution. I removed the hard drive completely.