[Release] Resizable BAR BIOS EFI Module

So, I think this is connected with encryption of DXE volume. The bios doesn’t get corrupted by someone’s changes, but detects it’s been altered and halts on startup.

Don’t know why @bibikalka pointed our other sections being shifted after the module insertion as the culript.
Structurally, the volume condition was still fine.

2 Likes

So we tried replacing the microcode section, and that worked fine as long as the current cpu microcode is present.

So the bios modifications might be checked only for specific areas? Is there a way to disable that?

There is an older v1.62 version that’s out there - link

There was something in those older versions that HP fully deleted them from their ftp site while leaving a few other non-recent versions available. For example, the older versions would boot with a missing microcode, but the latest is no-go. I guess that’s also a function that checks for this now.

With enough ethusiasm the owner could determine which volumes are protected. There’s no ready-made solution I know.
At first the check was just one function, but then the vulnerability was fixed and I stopped monitoring updates on this.

Down below is a list of modules which are present in the new version, but not in 1.62.

29 in total

AmtGbeChecksum
PlatformHardwareHarden
S3SupportSmm
PchSmiRegister
TcgMorLockSmm
TrEEDxe
TrEESmm
TrEEPlatformDxe
HpPwdPresentModule
LoadEFiNetworkStack
MeFirmwareRevisonCheck
SmmCommBuffer
16642314-
c6ebac6-
866e407c-
e3982c12
HpEsrtDxe
AcpiDebugSmm
dab2542b-
HpLibArchiveWorker
HpLibArchiveDriver
HpRemoteDiagnosticsDriver
c3aa909b-
HpCertificateManagerDriver
b9b31089-
83b1d167-
PiSmmCommunicationPei
TrEEConfigPei
TrEEPei

A lot more modules have diferences in size, sometimes very drastic.

Not a complete list, could not handle comparing all of the modules

342395AD-66A2-403C-9985-E82218625715 386 -> 1335
B5B0F67F-50BD-4650-867D-EA27CBDF1BBE 4 -> 401
E6AF66A5-9A57-4E82-BD92-301282A0DC33 1 -> 391
6D33944A-EC75-4855-A54D-809C75241F6C 1 -> 215

and etc.

Im keen, though I’d need some initial guidance to get started

@Planky
You could edit a driver in each volume one by one and see which gets the bios to corruption. If you don’t know how to make edits while leaving a module in valid state, replace modules from the older 1.62 version.
If it turns out that the PEI volume is not protected, try replacing the whole volume from 1.62 bios as there’s a chance the protection code sits just there, provided that 1.62 bios is really unprotected.

I was able to flash it, but I cannot access the “Peripheral” section coz it locks up, everything else works

try this one here.

1 Like

@Planky @Sweet_Kitten

So the approach could be workable, but one needs to establish that 1.62 really did not have those protections!

@Planky - you may want to downgrade to v1.62 using that jumper approach and the official bios package, and then dump the full 16MB of v1.62 bios using the clip. Then you could try to add ReBar to v1.62, and see if that boots.

Once v1.62 is verified to accept modifications, one could try to move the functions from that bios to the latest one.

If v1.62 with ReBar module is still no go, then we’ll need to rethink the approach.

1 Like

@bibikalka @Sweet_Kitten

Thanks both. I’ll give them a try.

Not familiar with editing volumes but will do as sweet_kitten suggests replacing from the older version and testing.

I should note bibikalka, I’m working on an z840 which is a dual CPU workstation vs the z440 single CPU. Will the z440 1.62 bios work here?

Yeah, all of these had the same single package bios. So you do the official downgrade of your Z840 with the jumper, and would have a proper 1.62 on your workstation.

Then we can establish if modding this 1.62 works, and take it from there.

It worked! thanks a lot!

@68k-dude @karfel and other people who can help me
hi everyone.
my English is not very good. let me explain it briefly.
my motherboard is X99-E WS/USB3.1 , Graphic Card is Nvidia RTX A400,i have modified the BIOS, but the resizable bar failed to open successfully
My Bios file in here .

here.

but my gpu is A400 ,Same core as RTX 3050, belonging to the RTX 3000 series.
Is this BIOS applicable?


i get three files ,i see a " fwupdate.bin " ,so first can i flash fwupdate.bin to ME firmware ,second i need to flash bios use " NvStrap3.CAP " or " NvStrap4.CAP " ?

:sweat_smile: here

Thank you, I understand now. I just used the file “X99-E-WS-USB31-SUS-4001-NvStrap4. cap” and added the component “ReBarDex. ffs” inside it, successfully opening the Resizeable Bar.
Thank you. I don’t know how to thank you, this question has been bothering me for a week.

Hi, first of all thanks to all people here sharing their kwoledge, it turns in a very helpfull experience.
Now proceed with the matter:
My system
CPU Ryzen 5 2600
MB Gigabyte B450M-K rev2.0
Bios FDd
GPU Intel Arc A380

GPUz Resizable BAR status window informs all is Ok (YES) but the support from MB (NO)
The BIOS seems have ReBAR support available but it is not possible check to AUTO in the UEFI because the option is not appearing, i.e. 4G decoded is appearing and it is checked YES.
I have tried to use the guide

Confirming the existence for the ReBAR option in the BIOS, even using the Grub tool explained in the guide, I have forced the parameter ReBAR to AUTO without success.
I think the problem is the CPU type and, could be, the bios is not only looking for the parameter in AUTO but also something more still blocking.

I have tried also to modify the BIOS including the ReBAR module, but the bios update tool rejected the MOD indicating something like INVALID BIOS.

Question: In this type of BIOS where the ReBAR support seems to be included would be necessary add the ReBAR module? or could be better try to use the built-in module, overriding the “protections”?

thx

Hello @Gusarapinho

The board does indeed have ReBAR support built in, however the CPU isn’t on the list.

3000 series and above only.

You should be able to force it using the mod.

As for flashing the modified file, you might find info here Flashing Gigabyte while avoiding "Invalid BIOS image"

If you get stuck, send me a PM

best regards,

-68k

Hello, everyone! I had some difficulty trying to enable hidden 4G decoding on the ASRock z97 Pro4 by following the [Enabling hidden 4G Decoding] , i get errors on compiling DSDT and i don’t know how to fix them! :face_with_raised_eyebrow:(Enabling hidden 4G decoding · xCuri0/ReBarUEFI Wiki · GitHub) guide.
https://download.asrock.com/BIOS/1150/Z97%20Pro4(2.50)ROM.zip thank you !

Hello guys, I have been trying this guide from xCuri0 to mod BIOS for my Lenovo M720s.
Problem when I convert bin file to .txt. Inside the txt file there is nothing that mentions “4G Decod” or “Above 4G”. How come uefi tool finds text within bios but then when I extract and convert that from powershell its no where to be found?

Only hotplug and pci system