[Problem] HP EliteDesk 800 G5 SFF is not compatible with HPE Tesla T4

My pain, that I have great compatibility trouble between HP EliteDesk 800 G5 SFF and HPE Tesla T4 GPU, bought for study bioinformatics and AI technologies in medicine.
Every boot I have black screen, system hang, 3 long beeps, 3 short beeps and BIOS setup inaccessibility, prolonged noisy boot, although Win10x64 works well with Tesla T4 in every application and in Device manager.
But black screen on every boot + system halt - they prevent me from proper installing Red Hat Linux v9 with proper Tesla T4 GPU kernel mods injection during Linux installation.
I wrote to official HP support, but they are silent, as shown:

Absolutely the same configuration (Intel Core i9 + chipset Q370 + embedded Intel UHD 630 + Tesla T4) works perfectly into industrial PC Nuvo-7166gc (I plan to buy modded water cooling or 3D-printed blower).

I upgraded vBIOS of TeslaT4 with new UEFI GOP driver (nvflash64), but without effect (Tesla T4 became more stable in power management, less panic, less hot).
The boot issues were the same.

Thus, in order to solve compatibility issues I dream of job to be done:

  1. Unhide in “Advanced settings” menu with submenus “Primary Video Boot Device” and “Primary Graphics Device” (they are not seen in IFRExtractor, only by listing and viewing).
    GraphicsConfiguration → PE32 image section, GUID: DE35F257-36BF-4F71-8270-51CF5378B86C
    Section_PE32_image_HpSetup_0147_IFR
    0x10BAF4 Advanced (0x28B)
    0x10BECB Var Store: 0x11[2] (HP_GraphicsConfiguration) {24 2F CE 9E 3B FB BA 4A 33 49 B4 9D B4 D6 7D 89 23 51 11 00 02 00 48 50 5F 47 72 61 70 68 69 63 73 43 6F 6E 66 69 67 75 72 61 74 69 6F 6E 00}
    0x10DE52 Form: Built-In Device Options, Form ID: 0x6 {01 86 06 00 91 02}
    0x10DE58 Subtitle: Built-In Device Options {02 87 91 02 00 00 00}
    0x10DF44 Checkbox: Integrated Video 32-bit Support, Variable: 0x0 {06 8E 02 00 BD 00 87 00 02 8F 00 00 00 00}
    0x10DF52 End {29 02}

  2. Inject fresh VBT(228?)+GOP driver (1091?) into stock HP BIOS.

  3. Inject fresh OROM vBIOS (1065?) in order to support embedded Intel UHD 630 + embedded GPU GT2 for error-free boot of VMs and remote desktop support (i.e. check PyMol rendering on my workstation).

The latest HP EliteDesk 800 G5 SFF Bios is v02.18.00 and it includes very very old UEFI drivers:
EC/SIO F/W 8.9.20
Cypress PD FW (CCG5C) 4.4.0
Cypress PD FW (CCG5) 6.8.0
Intel Legacy VBIOS 9.2.1020 (19/03/04)
Intel GOP EFI Driver 9.0.1085 (19/02/21)
GbE Version 0.54 (I219LM)
PXE option ROM 0.1.14
PXE UEFI Driver 0.0.23

And here is the stock HP BIOS v2.18 for modding:
https://ftp.hp.com/pub/softpaq/sp148001-148500/sp148214.exe

As HP BIOSes are partially encrypted - I don’t risk to brick my system, although I had just prepared recovery USB with HP_TOOLS with recent BIOS.
I need a thorough Guru’s help, to mod my desktop BIOS :pray::credit_card:

br>
Edit by Fernando: Thread title shortened

@Serge Enable 4G decoding and disable CSM

It will work then, this issue sounds like CSM being on

Unfortunately, HP BIOS v2.18 is clipped as described:

There is no any “4G decoding option” in BIOS setup.
And CSM support (Legacy) is impossible, as HPE Tesla T4 in this mode won’t boot at all and halts the system before BIOS beep. Maybe due to absence of OROM vBIOS in GPU?
I think, injection of OROM vBIOS into HPE Tesla T4 will not be the best idea (in the absence of proper Graphics boot device selection).

To unlock hidden BIOS features, must I apply pattern Guid: 0F0B1735-87A0-4193-B266-538C38AF48CE {5F 15 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 00 FF FF} to every similar BIOS pattern, or only to HpSetup GUID?
The HEX pattern {5F 15 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 00 FF FF} occurs in my HP BIOS as many as 18 times and is associated with hidden BIOS menus (Graphics boot parameters, Graphics Configuration, Network Device List, add/remove VLAN, etc).
While other HEX patterns {5F 15 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE ?? ?? ??} occur rarely for each variant.
Some rare patterns are associated with menus: iSCSI boot support, Thunderbolt parameters, etc.
Or must I only make double pattern {00 FF FF} in 0x10DFB2 and 0x10DFC7 for bystanding 0x10DF9E Checkbox Integrated Video Variable in “HpSetup A0A3FEC9-FE9D-4CE7-8DB4-9C54F3F19E5A” (as seen lower)?
Does anyone have such experience of unlocking hidden menus due to compatibility issues (or any menu tools for compatibility issues)?
Or does anyone have experience of GPG sign personally modded HP BIOS after warranty period is over or not actual?

GraphicsConfiguration DE35F257-36BF-4F71-8270-51CF5378B86C:

Selects-the-Primary-Video-Boot-Device-Primary-Graphics-Device

0x36D4 en-US
0x3798 da-DA
0x384C de-DE
0x390C es-ES
0x3A0A fi-FI
0x3B1C fr-FR
0x3C1A it-IT
0x3D8E ja-JA
0x3E28 nl-BE
0x3F18 no-NO
0x3FE2 pt-PT
0x40D4 sv-SV
0x417E zh-CN
0x41E0 zh-TW
0x4246 ru-RU

VGA-Boot-Device-Select 4AEE3215-6C88-477E-8BAD-02B0F57CB2C7:

0x2E44 en-US
0x2F32 da-DA
0x302E de-DE
0x314E es-ES
0x3284 fi-FI
0x337C fr-FR
0x34AA it-IT
0x35DA ja-JA
0x3684 nl-BE
0x378E no-NO
0x3874 pt-PT
0x3990 sv-SV
0x3A82 zh-CN
0x3B0A zh-TW
0x3B94 ru-RU

HpSetup A0A3FEC9-FE9D-4CE7-8DB4-9C54F3F19E5A:

0x10BAF8 Form Set: Advanced {0E A7 18 0F F9 61 2D 92 5A 4F BA 21 5D 11 ED 8D D1 D5 8B 02 BD 00 01 D7 91 05 94 74 BF 56 4A AF AC F7 A0 2B EA E0 23}
0x10BB1F Guid: 0F0B1735-87A0-4193-B266-538C38AF48CE {5F 15 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 03 C8 00}
0x10BB34 Guid: 0F0B1735-87A0-4193-B266-538C38AF48CE {5F 15 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 04 00 00}
0x10BB49 Default Store: en-US 0x0 {5C 06 00 00 00 00}
0x10BB4F Default Store: en-US 0x1 {5C 06 00 00 01 00}
0x10BB55 Var Store: 0x10[2] (HP_SetupLanguage) {24 27 CE 9E 3B FB BA 4A 33 49 B4 9D B4 D6 7D 89 23 51 10 00 02 00 48 50 5F 53 65 74 75 70 4C 61 6E 67 75 61 67 65 00}

0x10BE99 Var Store: 0x8F03[5] (PlatformMiscBootOptions) {24 2E CE 9E 3B FB BA 4A 33 49 B4 9D B4 D6 7D 89 23 51 03 8F 05 00 50 6C 61 74 66 6F 72 6D 4D 69 73 63 42 6F 6F 74 4F 70 74 69 6F 6E 73 00}|
0x10BEC7 Var Store: 0x11[2] (HP_GraphicsConfiguration) {24 2F CE 9E 3B FB BA 4A 33 49 B4 9D B4 D6 7D 89 23 51 11 00 02 00 48 50 5F 47 72 61 70 68 69 63 73 43 6F 6E 66 69 67 75 72 61 74 69 6F 6E 00}
0x10BEF6 Var Store: 0x8B01[64] (Thunderbolt) {24 22 CE 9E 3B FB BA 4A 33 49 B4 9D B4 D6 7D 89 23 51 01 8B 40 00 54 68 75 6E 64 65 72 62 6F 6C 74 00}

0x10C712 Form: Advanced, Form ID: 0x1 {01 86 01 00 8B 02}
0x10C718 Ref: Display Language, Variable: 0xFFFF {0F 0F A5 02 BD 00 01 00 00 00 FF FF 00 0D 00}
0x10C727 Ref: Scheduled Power-On, Variable: 0xFFFF {0F 0F 40 02 BD 00 02 00 00 00 FF FF 00 0C 00}
0x10C736 Subtitle: {02 87 BD 00 00 00 00}
0x10C73D End {29 02}

0x10C7E7 Ref: Graphics Configuration, Variable: 0xFFFF {0F 0F A3 02 A4 02 0B 00 00 00 FF FF 00 09 00}
0x10C7F6 End If {29 02}
0x10C7F8 Ref: Power Management Options, Variable: 0xFFFF {0F 0F 03 00 BD 00 0C 00 00 00 FF FF 00 00 9F}

0x10DF44 Checkbox: Integrated Video 32-bit Support, Variable: 0x0 {06 8E 02 00 BD 00 87 00 02 8F 00 00 00 00}
0x10DF52 End {29 02}

0x10DF9E Checkbox: Integrated Video, Variable: 0x0 {06 8E 9B 00 BD 00 88 00 03 83 00 00 00 00}
0x10DFAC End {29 02}
0x10DFAE End If {29 02}
0x10DFB0 End If {29 02}
0x10DFB2 Guid: 0F0B1735-87A0-4193-B266-538C38AF48CE {5F 15 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 00 3F 00}
0x10DFC7 Guid: 0F0B1735-87A0-4193-B266-538C38AF48CE {5F 15 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 00 FF FF}
0x10DFDC Grayout If: {19 82}
0x10DFDE Variable 0x33C equals 0x0 {12 06 3C 03 00 00}
0x10DFE4 Suppress If: {0A 82}
0x10DFE6 Variable 0x33C equals 0x0 {12 86 3C 03 00 00}
0x10DFEC Variable 0x375 equals 0x0 {12 06 75 03 00 00}
0x10DFF2 Or {16 02}
0x10DFF4 Variable 0x374 equals 0x1 {12 06 74 03 01 00}
0x10DFFA Not {17 02}
0x10DFFC Or {16 02}
0x10DFFE End {29 02}

0x11BFA8 Form Set: Security {0E A7 DD D4 E5 D6 37 15 80 46 B8 04 67 6F B7 E3 6D B5 73 04 BD 00 01 D7 91 05 94 74 BF 56 4A AF AC F7 A0 2B EA E0 23}
0x11BFCF Guid: 0F0B1735-87A0-4193-B266-538C38AF48CE {5F 15 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 03 C2 00}
0x11BFE4 Guid: 0F0B1735-87A0-4193-B266-538C38AF48CE {5F 15 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 04 00 00}
0x11BFF9 Default Store: en-US 0x0 {5C 06 00 00 00 00}
0x11BFFF Default Store: en-US 0x1 {5C 06 00 00 01 00}
0x11C005 Var Store: 0x4[16] (HP_SecurityOptions) {24 29 CE 9E 3B FB BA 4A 33 49 B4 9D B4 D6 7D 89 23 51 04 00 10 00 48 50 5F 53 65 63 75 72 69 74 79 4F 70 74 69 6F 6E 73 00}

Hi, guys. I recently modded stock HP Bios (updated GOP driver from 1080 to 1112, tweaked via IntelBMP native 4 copies of OROM vBIOS and 4 copies of VBT). Thus, I thought to upgrade graphical subsystem.
But when I tried to flash modded HP Bios via Bios-setup menu, I had got an error screen: “BIOS signature verification failed. Please download the file again to update system BIOS”.
I spent hours to find the way, how to sign modded HP Bios via GPG tool or to extract SIG-key from stock Bios via hewprsa.exe. Unfortunately, hewprsa.exe didn’t work in my case. And old PhoenixTool didn’t extract several Bios modules seen in recent UEFITool.
I tried to look for more elegant decision.
And I found UEFI Shell (inside Bios setup) at HPE Proliant servers with reach UEFI command line tools.
Here I describe most interesting UEFI Shell commands to study for BIOS modding:
https://techlibrary.hpe.com/docs/iss/proliant-gen10-uefi/v24598036.html

acpiview:
https://techlibrary.hpe.com/docs/iss/proliant-gen10-uefi/GUID-DE51A610-67C4-4CC4-BAD9-32E6EDDD0310.html

bcfg (manages boot and driver options in NVRAM) (absent in HPE library)

dmpstore (manages all UEFI variables):
https://techlibrary.hpe.com/docs/iss/proliant-gen10-uefi/GUID-BB84420D-33A4-48A8-BEFD-21C2079FC863.html

drivers (displays UEFI driver list):
https://techlibrary.hpe.com/docs/iss/proliant-gen10-uefi/v28071320.html
hexedit (hexeditor for files, block devices or memory)

load (loads UEFI driver into memory):
https://techlibrary.hpe.com/docs/iss/proliant-gen10-uefi/v28805790.html

unload (unloads UEFI driver from memory):
https://techlibrary.hpe.com/docs/iss/proliant-gen10-uefi/v28805985.html

reset (warm, cold, shutdown):
https://techlibrary.hpe.com/docs/iss/proliant-gen10-uefi/v28071956.html

secboot (PK, KEK, DB, DBX keys management):
https://techlibrary.hpe.com/docs/iss/proliant-gen10-uefi/s_secboot.html

set (sets UEFI Shell environment variable):
https://techlibrary.hpe.com/docs/iss/proliant-gen10-uefi/v28072026.html

I found the way to boot UEFI Shell directly, without Grub. Here is the decision, how to do it:

To access the UEFI menu, create a bootable USB media:

  1. Format a USB device in FAT32.
  2. Create a directory on the USB device:
    /efi/boot/
  3. Copy the file shell.efi to the directory created above. This file is inside shell.zip.
  4. Rename the file shell.efi to BOOTX64.efi
  5. Restart the system and enter the UEFI menu.
  6. Select the option to Boot from USB.

I’ve made UEFI_Shell USB boot disk as described and it perfectly works!!!
I think, I am on the right way in modding RSA-encrypted HP Bios.


Shell.zip (290.7 KB)

Hi, guys. Here I describe UEFI variable patterns for several hardware configurations:
Embedded Intel UHD 630 / Nvidia GT 730 / Tesla T4.
You may find interesting byte combinations for future study of VGA hardware compatibility:

Embedded Intel UHD 630 only:
VariableInfo,“IgdPolicy2Setup”,“FB3B9ECE-4ABA-4933-B49D-B4D67D892351”,“0x7”,“0x11”,“0100000000000000010001000000000000”
VariableInfo,“HP_DeviceOptions”,“FB3B9ECE-4ABA-4933-B49D-B4D67D892351”,“0x7”,“0x5”,“0100000100
VariableInfo,“MeOptions”,“FB3B9ECE-4ABA-4933-B49D-B4D67D892351”,“0x7”,“0x3B”,“0100000000000100000101000000000100000000000000000000010300000000010100000C0061085C0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF”
VariableInfo,“PciMemIoResourceInfo”,“FB3B9ECE-4ABA-4933-B49D-B4D67D892351”,“0x7”,“0xE”,“00FD000300000000FE0000000000”

Embedded Intel UHD 630 + Nvidia GT 730:
VariableInfo,“IgdPolicy2Setup”,“FB3B9ECE-4ABA-4933-B49D-B4D67D892351”,“0x7”,“0x11”,“0100010000000000010001000000000000”
VariableInfo,“HP_DeviceOptions”,“FB3B9ECE-4ABA-4933-B49D-B4D67D892351”,“0x7”,“0x5”,“0100000102
VariableInfo,“MeOptions”,“FB3B9ECE-4ABA-4933-B49D-B4D67D892351”,“0x7”,“0x3B”,“0100000000000100000101000000000100000000000000000000010300000000010100000C001B095D0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF”
VariableInfo,“PciMemIoResourceInfo”,“FB3B9ECE-4ABA-4933-B49D-B4D67D892351”,“0x7”,“0xE”,“00FD000300000000FE0000000000”

Embedded Intel UHD 630 + Nvidia GT 730 + Tesla T4:
VariableInfo,“IgdPolicy2Setup”,“FB3B9ECE-4ABA-4933-B49D-B4D67D892351”,“0x7”,“0x11”,“0100010100000000010001000000000000”
VariableInfo,“HP_DeviceOptions”,“FB3B9ECE-4ABA-4933-B49D-B4D67D892351”,“0x7”,“0x5”,“0100000102
VariableInfo,“MeOptions”,“FB3B9ECE-4ABA-4933-B49D-B4D67D892351”,“0x7”,“0x3B”,“0100000000000100000101000000000100000000000000000000010300000000010100000C001B095D0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF”
VariableInfo,“PciMemIoResourceInfo”,“FB3B9ECE-4ABA-4933-B49D-B4D67D892351”,“0x7”,“0xE”,“00FC000300000000FE0000000000”

Embedded Intel UHD 630 + Tesla T4:
VariableInfo,“IgdPolicy2Setup”,“FB3B9ECE-4ABA-4933-B49D-B4D67D892351”,“0x7”,“0x11”,“0100010000000000010001000000000000”
VariableInfo,“HP_DeviceOptions”,“FB3B9ECE-4ABA-4933-B49D-B4D67D892351”,“0x7”,“0x5”,“0100000102
VariableInfo,“MeOptions”,“FB3B9ECE-4ABA-4933-B49D-B4D67D892351”,“0x7”,“0x3B”,“0100000000000100000101000000000100000000000000000000010300000000010100000C001B095D0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF”
VariableInfo,“PciMemIoResourceInfo”,“FB3B9ECE-4ABA-4933-B49D-B4D67D892351”,“0x7”,“0xE”,“00FC000300000000FE0000000000”

By combining variable study via Intel_UEFI_shell.efi and arrangement of graphic cards in several hardware slots - it became possible to install HPE Tesla T4 on HP EliteDesk 800G5 SFF.
The next question - is how to prevent desktop from usage of video RAM in Tesla T4 to prevent its overheating in idle (water block is being modded now for cooling)…
May “PciMemIoResourceInfo” variable be useful in this case?

Hi @Serge

I joined this forum after seeing your post. Incredible work, congrats!
I have a HP Elitedesk 800 G4 SFF and I am having the same exact problem you were having with Tesla T4 card. In my case, I am trying to boot with Tesla P4 card and getting the same exact errors. I am not technical guru, is it possible for you to guide me into the right direction? Your config would apply my situation directly with G4 SFF system and Tesla P4 card?

Thanks in advance

Hi. I am not a reverse engineer, or assembler programmer. You may try these described patterns at your own risk. Highly likely, that nothing wrong would happen (if your BIOS VRAM is writeable and FDO jumper on motherboard is activated). The most safe and easy way is to buy Nvidia GT 730 on ebay, install it into HP Elitedesk, save proper BIOS custom configs in BIOS setup, and then to exchange Nvidia GT 730 to Nvidia Tesla T4/P4 in the same slot. And not to change VGA Boot Device options forever. Additionally, be sure, that you have an upgraded HP PSU 400Wts and external blower fan for cooling Tesla T4/P4, to prevent damage of your motherboard

Thanks Serge, much appreciated. I actually sold my Tesla P4 and purchased a NVIDIA RTX A2000. I thought it was not worth the hassle after a while with Tesla P4.

Hi Serge,
please how did you change those UEFI variables? I just need to change similar way - aperturesize on my HP Elitedesk 800 G6 Tower which is default 256MB a I need it increased because of GVT-g / virtualization. The only varstore I was able to find is UmaVideoMemory I understand you used the UEFI Shell, which you booted directly into. Then what commands / tool(s) did you use? dmpstore? I was able to dump selected variables into file, but I don’t know how to modify them. I also tried setup_var.efi ( GitHub - datasone/setup_var.efi: UEFI command-line tool for read/write access of variables ). I tried to write into the UmaVideoMemory varstore but I got ACCESS_DENIED return code back. Did you configure your BIOS any special way to allow writing into the variables? For example did you disable HP Sure start or so? Thanks a lot for your help.

@Serge @Kuri0 @mesencephalon @LucSVK
Since this thread is about a real BIOS modding problem and not a simple request of a modded BIOS, I have moved it into the “BIOS Modding Problems” Category, hoping it is ok for you.
Additionally I have shortened the title a little bit (can be changed at any time by @Serge).