• Become a Premium Member for $25/year with no ads to improve your community experience.

EliteMacx86

Administrator
Staff member
Joined
Jul 22, 2018
Messages
6,637
Motherboard
Supermicro X11SPA-T
CPU
Intel Xeon W-3275 28 Core
Graphics
2xAMD RX 580 8GB
OS X/macOS
13.x
Bootloader
  1. OpenCore (UEFI)
Mac
  1. Mac mini
  2. MacBook Pro
Mobile Phone
  1. Android
  2. iOS

How to Unlock DVMT Pre-alloc on Insyde BIOS

An EliteMacx86 Exclusive Guide - This guide covers unlocking on DVMT Pre-alloc on Insyde BIOS.

Overview


As stated in our previous guide, we mentioned why DVMT is an important requirement when using Intel Graphic and why it matters for Laptops mostly. In previous guide, we also included step about modifying the variable using shell targeting to change some specific var which is DVMT Pre-Allocated Memory. But that method has a drawback that it cannot be used on all Laptops. Laptop manufacturers such as Lenovo, HP, there might be others as well which has encrypted meaning the variable cannot be modified as it's locked.

As always, Laptops having any 4K/UHD/QHD screen, it becomes important and without the DVMT unlock, you'll have Kernel Panic for the Graphics framebuffer depending on the CPU generation or the Codename. Sometimes, a minstolen patch can work but not always.

The method is tested by us on a Lenovo Yoga 4 Pro 900 model which comes with a Skylake CPU.

Downloads


Phoenix Tool
Universal IFR Extractor

Unlocking DVMT Pre-Alloc


⚠️ WARNING:

The following method described below is risky and it may brick your Laptop during this process. The BIOS may be damaged and you may require a programmer to flash the BIOS chip in order to boot your Laptop again. The steps provided here may or may not be accurate or applicable to your particular Laptop. By using this guide, you understand all the risks involved and EliteMacx86 shall not be liable for any of the damages that might occur and takes no responsibility for any of your action. Please proceed with caution!

Now, as you've enough information about DVMT Pre-Alloc and why you need to, you can proceed with the DVMT unlock. To unlock the DVMT, follow the steps below.

Extracting BIOS
The very first step is to extract the BIOS. The BIOS must be in a valid format such as .ROM, .BIN or .fd. The direct BIOS file will not work. The other way is to use Universal BIOS Toolkit. With some manufacturers and laptop models, you can also use the .EXE BIOS file and then extract it directly. For some BIOSes, it's packed and compressed in a different format.

Note:
Laptops with Insyde BIOS, Universal BIOS Toolkit fails to read the BIOS. The best way is to download the BIOS from your manufacturer's site and decompress it to obtain the BIOS file.


Extracting Module from BIOS file
The next step is to get the data from the extracted BIOS file. Follow the steps to extract the module from BIOS.

1. Open the Phoenix Tool. This will open up a new window as shown below.
2. Under the Original BIOS, browse the path to your extracted BIOS.
3. When prompted, select your BIOS file and click on Open.
4. Once the tool reads the BIOS, it will give a pop-up message, just click on “OK” and it will finish running.

Identifying DXE Core
The next step is to identify the BIOS ROM file with the variable that we need to change. Follow the steps below to identify the DXE Core.

1. After clicking the “Structure” button in the Phoenix Tool, a new window will open up as shown below.
2. Expand the modules and look for the line described as “DXE Core"
3. Expand the DXE Core button and select the “PE32+ image section."
4. Select the “Decompress Extracted Modules” check box and then click “Extract
5. For few minutes, it will seem like nothing is going or the process has stopped but you need not to worry.
6. A new folder called “DUMP” in the folder where you saved your extracted BIOS file.
7. Once the process finishes, you will be directed back to the PhoenixTool main menu window. You can close this window by clicking the close button.

Identifying BIOS File
1. The location where you saved your BIOS, you can find a folder named “DUMP”. Inside this folder there will be several files all ending with .ROM extension. Except one ROM, all the other ROM files are of no use.
2. Identify the largest file with the name starting with FE3542FE. For my example, “FE3542FE-C1D3-4EF8-657C-8048606FF670_1513.ROM” was the .ROM file in our case and was about 555KB big. Your ROM file may be of different size but will start with the same FE3542FE name.
3. Copy the identified ROM and place it to another location.

Extracting Settings from the Module
Once you've the module, you can proceed with the next step.

1. Open Universal IFR Extractor, you downloaded above.
2. Browse your Module and click on Extract.
3. A text version of the same module will be saved with the same name with IFR at last on your Desktop. For example, FE3542FE-C1D3-4EF8-657C-8048606FF670_1442 IFR was the text version of the module in my case.

Identify DVMT Variable
1. Open IFR the text file and look for "DVMT".
2. Find the variables for the DVMT Pre-Allocated memory and the related values.
3. In this case, DVMT pre-allocated memory's variable is 0x180. The value of 96MB is 0x3. Record these two values.

Note:
For most of the Laptops, the variable which is set default, will be shown as (default) right to the variable. But in some cases, there will be no sign of it.


Extracting Vars
Now, the next step is to extract the Vars file which will be used to edit the DVMT.

1. Open H2OUVE folder and delete the vars text file from the directory.
2. Run Read parameters.bat as an administrator. It will store a vars text file in the same directory.

Modifying Vars (DVMT Pre-Alloc)
1. Open the vars file. Search for Setup Variable name.
In my case, it was the following.
Code:
[039] Setup
      GUID: A04A27F4-DF00-4D42-B552-39511302113D
      Attributes: 0x7
      DataSize: 0xFA0
      Data:
            00000000: 00 00 00 00 00 00 00 00 00 00 00 03 04 00 00 00
            00000010: 01 03 02 03 00 00 00 00 00 00 00 00 00 00 00 00
            00000020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
            00000030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
            00000040: 00 00 00 02 02 00 00 00 01 00 00 00 00 00 00 00
            00000050: 00 00 00 01 01 00 00 00 00 00 00 00 00 00 00 00
            00000060: 03 FF 00 00 02 00 01 01 00 00 00 00 00 01 01 01
            00000070: 00 00 00 00 00 00 01 01 00 02 01 01 00 02 00 00
            00000080: 03 00 00 00 00 01 00 00 00 00 00 00 01 01 02 03
            00000090: 05 EE 00 00 00 00 00 00 00 00 00 00 00 00 00 01
            000000A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
            000000B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
            000000C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
            000000D0: 00 00 00 00 00 00 00 00 00 00 00 01 00 00 01 00
            000000E0: 00 01 00 02 00 00 00 01 00 00 00 00 00 00 00 00
            000000F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
            00000100: 00 00 00 00 00 00 00 00 00 00 00 00 03 00 00 01
            00000110: 01 00 00 00 01 00 00 01 01 01 01 01 00 00 01 01
            00000120: 01 01 01 01 01 01 01 01 01 01 04 04 04 04 04 04
            00000130: 04 04 04 04 04 04 04 04 04 04 04 04 04 04 00 00
            00000140: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
            00000150: 00 00 01 01 01 01 01 01 01 01 01 01 01 01 01 01
            00000160: 01 01 01 01 01 01 02 00 00 00 00 00 00 00 00 00
            00000170: 00 00 00 00 00 00 00 00 00 00 03 02 01 03 00 01
            00000180: 01 02 00 00 00 02 FF 00 01 00 00 00 77 64 47 4B
180 is the address we need as this was the DVMT variable we found in the IFR in the step.
2. Change the 01 HEX to 03 HEX. 0x1 represents 32MB which was also found in the Shell method. And the 0x3 represents 96MB.
3. Save the vars file
4. Run "Write parameters.bat" as an administrator. You'll see the variables being written into BIOS.

Note:
Some area in the BIOS may not be writable and as a result, it may throw an error. However, there's no harm as long as you can write the setup variable.

Verifying DVMT Unlock
1. After modifying the variable, delete the vars text file.
2. Run Read Parameters.bat and check wether the vars have been changed or not.
Code:
[044] Setup
      GUID: A04A27F4-DF00-4D42-B552-39511302113D
      Attributes: 0x7
      DataSize: 0xFA0
      Data:
            00000000: 00 00 00 00 00 00 00 00 00 00 00 03 04 00 00 00
            00000010: 01 03 02 03 00 00 00 00 00 00 00 00 00 00 00 00
            00000020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
            00000030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
            00000040: 00 00 00 02 02 00 00 00 01 00 00 00 00 00 00 00
            00000050: 00 00 00 01 01 00 00 00 00 00 00 00 00 00 00 00
            00000060: 03 FF 00 00 02 00 01 01 00 00 00 00 00 01 01 01
            00000070: 00 00 00 00 00 00 01 01 00 02 00 01 00 02 00 00
            00000080: 03 00 00 00 00 01 00 00 00 00 00 00 01 01 02 03
            00000090: 05 EE 00 00 00 00 00 00 00 00 00 00 00 00 00 01
            000000A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
            000000B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
            000000C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
            000000D0: 00 00 00 00 00 00 00 00 00 00 00 01 00 00 01 00
            000000E0: 00 01 00 02 00 00 00 01 00 00 00 00 00 00 00 00
            000000F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
            00000100: 00 00 00 00 00 00 00 00 00 00 00 00 03 00 00 01
            00000110: 01 00 00 00 01 00 00 01 01 01 01 01 00 00 01 01
            00000120: 01 01 01 01 01 01 01 01 01 01 04 04 04 04 04 04
            00000130: 04 04 04 04 04 04 04 04 04 04 04 04 04 04 00 00
            00000140: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
            00000150: 00 00 01 01 01 01 01 01 01 01 01 01 01 01 01 01
            00000160: 01 01 01 01 01 01 02 00 00 00 00 00 00 00 00 00
            00000170: 00 00 00 00 00 00 00 00 00 00 03 02 01 03 00 01
            00000180: 03 02 00 00 00 02 FF 00 01 00 00 00 77 64 47 4B

As you can see, the 180 which is a DVMT variable, has been successfully modified and the BIOS reads from 01 to 03.

Now, use the shell method and type the following command and press enter key
Code:
setup_var 0x180

You should have the following.
Code:
offset 0x180 is: 0x3


Problem Reporting


Details:
  1. Laptop Model no.
  2. BIOS version
Screen shots:
  • Shell Output of before and after
Files:
  • BIOS File
  • Setup Module from H2Z0E
  • DUMP folder from Phoenix Tool
Put all files in a folder with your name, compress files as Zip and attach files using site attachments only. Do not use any external links.

Credits:
Guo Pengfei
 
Last edited:
  • Like
Reactions: Stein
Hello,
I'm trying to follow your guide, however, my extracted BIOS doesn't have the line DXE Core. Can you help me with that? What else should I look for?
 
Hello,
I'm trying to follow your guide, however, my extracted BIOS doesn't have the line DXE Core. Can you help me with that? What else should I look for?
Your profile is incomplete. Provide your system specs to assist further.
 
Your profile is incomplete. Provide your system specs to assist further.
Sorry about that, it should say more right now.
To summarize it here too:
Dell XPS 9343
BIOS: A20
i7 5600U with HD Graphics 5500

Weird thing is, I followed this guide about a year ago and it worked fine, so something must have changed. If neede, I can provide a screenshot of my BIOS structure from Phoenix Tool or the bios file itself.
 
Sorry about that, it should say more right now.
To summarize it here too:
Dell XPS 9343
BIOS: A20
i7 5600U with HD Graphics 5500

Weird thing is, I followed this guide about a year ago and it worked fine, so something must have changed. If neede, I can provide a screenshot of my BIOS structure from Phoenix Tool or the bios file itself.
What's the panel refresh rate and the resolution?
 
What's the panel refresh rate and the resolution?
Sorry, I didn't know this information was needed.
It's a QHD 3200x1800 with 60hz refresh rate.
To further confirm, I am trying to change my DVMT to 64 or 128mb from the default 32, which cannot be changed in teh bios.
 
To further confirm, I am trying to change my DVMT to 64 or 128mb from the default 32, which cannot be changed in teh bios.
Yes, very normal for Laptops. Normally, for Dell, you can refer to this guide:
 

Forum statistics

Threads
1,479
Messages
13,997
Members
21,156
Latest member
juantvz50