[Problem] Modded BIOS for HP Elitedesk 800 G1 DM mini PC

skip step 8. that was for modifying microcode.


Thanks, that was obvious :slight_smile:

Well, looks like something went wrong :slight_smile:
What i did is:
1. dumped bios, modded it by inserting NvmE module, trunked to be 0x98FFFF length
2. disabled write protection as here https://www.bios-mods.com/forum/Thread-M…66545#pid166545
3. flashed the file from p1 with fpt -A 0x580000 -L 0x98FFFF -F modded.rom

flash went well with no error messages but after rebooting i can see black screen only so it is not booting up, just the fan gets high RPM in a minute or so…

@dman79 , any idea on what could go wrong? will start googling for how to recover it…

tried to do cmos reset with battery off, put native firmware file on fat32 USB stick and boot with it - all failed. so look like i would need to go with external hardware flasher…

tried to remove memory to check if it beeps at boot - silence. this means that bootblock is dead… :frowning:

will go to a technican tomorrow to flash it back with external flasher. will try with full stock bios with inserted NvmE module first - it not boots up then get back to stock and use old sata ssd as a boot partition and put windows on m2.

that’s strange mine went ok what did you use to mod the firmware? UEFItool or MMTOOL. I used MMTOOL sine UEFI tool sometimes corrupts the images.

if u have a ur stock and modded bios send them to me so i can check them out.

i used the MMTool 4.50.0.23 to mod the bios. unfortunately i’ve deleted all files (both dumped and modded) to avoid future confusion :slight_smile: but now what i think (was analizing my actions yesterday) might go wrong is that i’ve mixed up the files and instead of making a trunc to 98fffff bytes of a dumped modded bios only, i’ve trunced full/stock modded firmware file and flashed it to the chip. Anyway i can not check this now as i cleared all the evidence of my fault.

Today i will ask technician to flash the full modded bios first and if it boots up - profit! my M2 should be working, if not - then he will flash full stock firmware file.

will post back.

PS. I think i will not stop in my experiments (hands scratchy) but will order a kit from Aliexpress to be able to reflash myself.

spend 1.5 hours with a guy in attempts to flash it - no luck (tried both - stock and modded full firmware file from HP website). He used CH341A flasher and CH341A Programmer software but got an error "chip contents does not match buffer. Chip Secured OTP and buffer are identical". After going home he found out that there is a bug this his version of software and our bios chip which is mx25l12873f (sits under cooling fan near m2 ssd) a different version of neoprogrammer should be used. Maybe try next time on a weekend.

Hi Guys, my mini is up again :slight_smile: flashed full stock firmware file with a nmve module injected with MMTool 4.50.0.23 usine neoprogrammer and ch341A external flasher and it works! boots up perfectly with my Kingston A2000 with no sata attached at all! See the a2000 in BIOS boot order so looks like native support :slight_smile:

However i would still need your cooperation, Gents :slight_smile:

in my failed attempt it seems that i killed the built-in intel network adapter MAC address as it displays as ffffffffff in bios and the device is not able to startup in windows device manager (error code 10). I tried to google for it and it appears that i need to write the new valid MAC into our i217-lm adapter eeprom. Any idea on how to do that? I tried with the ASRock utility to clone mac - but it fails with error "Device in D3 state".

Another bug i found is that i am not able to boot with DOS Usb stick. I could do that easily before i killed my bios but after restore - all fails. It just stops on black screen with blinkin cursor _ but sees the USB stick bootable in BIOS boot order. Tried different options in BIOS but still fail. Any gues on what could be wrong?

Thanks a lot in advance for support!

PS> m2 ssd speed is really awesome and defenetly faster that sata!!!

So guys, i’ve fixed it!

For not bein able to boot a dos/*nix usb stick it was and HP non-documented feature - this happens when NO sata drive is attached. this happened to me :slight_smile: i was not able to boot any non-efi usb but when i returned back sata drive - it booted up perfectly!

After booting dos i used Intel eeupdate.exe /nic=1 /mac=<any valid mac> and it flashed it into eeprom and the device came back up immediately after booting and bios now dispay proper mac.

So i am now happy as my mini has only m2 drive in it, W10 boots fast and i will go for xeon e3 1275L v3 to get the maximum performance from the platform. So probably see you in a month or so for a CPU microcode update if it will not pop uo straight.

Thanks @dman79 for help!

^)

Glad its fixed

Aug 2024 - I’m editing this post I made a few years back, as the feedback from users that tried it, makes me doubt the DeathBringer hack. I will leave it here, however the safest way to do it, is to get the CH341A kit from Amazon/Aliexpress for a few bucks and reprogram the BIOS with Neoprogrammer.
Start by making a backup of the rom/bin file, add the driver with any of the sw tools and flash it back. Safe and sure!

Here is a comprehensive guide on how to update the BIOS on HP Elitedesk 800 G1 DM to boot from the NVME slot.

Update your BIOS first, and there you go:

  1. Make a screenshot of your BIOS system info that contains the MAC address, chasis #, etc. That can be handy later.
  2. Download the corresponding Intel ME System Tools version as described in the first post and unpack it in C:\Temp. You only need the Win64 folder from Flash Programing Tool folder. You can use the Win64.zip file I attached, if you have 9.1. It has all the files you need to succeed.
  3. Enable in BIOS the UEFI boot sources (it won’t boot if you don’t) and run Deathbringer GRUB Shell unlock posted as Part B at the end or on page 3 of this thread.
  4. Boot in Windows 10/7 x64 and open command line with admin rights and point it to C:\Temp\WIN64 folder (or whatever path you have to the Win64 folder)
  5. Dump just the writable BIOS part: fptw64 -A 0x580000 -L 0xA70000 -D bios.rom The file size should be 10,688kB(10,944,512 bytes).
  6. Confirm you can write it back: fptw64 -A 0x580000 -L 0xA70000 -F bios.rom If no go - retry step 3.
  7. Load bios.rom in UEFItool or MMTool, locate the section where dxe drivers are, and insert the NVME driver - NvmExpressDxe_4.ffs - at the end of the section after the Freeform section.
  8. Save the file as modbios.rom & reload to confirm the NVME dxe driver is there. Check the whole section, as MMTool has the habit of moving it up the list. (I prefer UEFITool). Size should be the same 10,944,512 bytes. Extensions .bin and .rom are interchangeable. Rename it as you see fit.
  9. Flash back the modded bin/rom: fptw64 -A 0x580000 -L 0xA70000 -F modbios.rom
  10. Reboot immediately to confirm BIOS is ok. Load BIOS and "apply defaults and exit".

Now your mini should be able to boot from the NVME disk. Depending on some parameters(SSD brand, controller, etc), your NVME disk may show or may NOT in BIOS. Do not re-flash over and over (till you brick it ), just test it, by installing Windows 10 from a USB and see if it boots into it successfully. If it does, you’re all set. You’d see in Boot Order a new item under UEFI sources "Windows Boot Manager" - that’s your NVME disk. Resetting again the BIOS to default and restarting made the NVME to show up in BIOS for me this time.

PART B

Deathbringer unlock - Protection can be disabled in EFI GRUB Shell:
  1. Take a USB stick and format it to FAT32
  2. Create directory structure EFI\Boot
  3. Download and unzip bootx64.7z (it’s in the Win64.zip)
  4. Put BOOTX64.EFI in Boot directory.
  5. Boot from this USB stick
  6. At the prompt, run these commands:
    setup_var 0x96 0x0
    setup_var 0x97 0x0
    setup_var 0x98 0x0
    setup_var 0x99 0x0
    setup_var 0x9a 0x0

Enjoy.

EDIT by Fernando: For better readability I have formatted the guide.

WIN64.zip (4.72 MB)

@Xnet will this method work for elitedesk 800 g1 sff running 2.78 bios?

@elitepc - your HP being from the same family, the steps would be pretty similar - but the numbers may be different. You just have to find out what ME version is, (to download the proper version), then the size of BIOS region, where it starts and the protected range. If you read this thread and the links posted within, you’ll find out how to do all that.

@elitepc

Hi ,
if I flash directly to the bios the one attached to you (bios.rom) would it be ok? Without taking all the steps? Do I put it on a bios.rom stick and flash it directly?

Hi All,

I also have an 800 G1 and would like to boot from NVMe. I have started working on the steps provided by @Xnet , I’m currently unable to write my BIOS back so I will restart from step 2.

Would I be able to use the BIOS provided by @Xnet even though the CPUs are different? If not would someone kindly modify mine?
Update I managed to mod my bios and flash.

HP elitedesktop 800 G1 mini DM
BIOS 2.33
ME v9.0
CPU 4570T

Thanks

bios.rar (3.36 MB)

Hi @Xnet /All,

Thanks for the guide you provided, very helpful.

I’ve hit a wall, all steps have been completed without errors, unless this is an error when flashing: PDR Region does not exist.

I have added NvmExpressDxe_4.ffs to my bois dump and flashed it back.
I see that DXE driver has been added just above the ‘free’ space’ in the DXE section.

I’m still not seeing my NVMe as a bootable drive, have I missed something?

Thanks in advance for any advise.
The-cube

Hi,

After some more reading, “PDR Region does not exist” is to be expected.

I’m still at a loss why my m2 is not showing as a bootable drive, however I will take a 3rd look at this over the coming weekend.

Any progress will be reported along with changes made.

Thanks.