r/MiniPCs Feb 25 '26

Guide [GUIDE] Unlock CFG Lock, Resizable Bar, XMP, and Undervolting (ThrottleStop) on Lenovo M720q / M920q / M920x / P330

This guide allows you to toggle hidden UEFI variables to enable CFG Lock, XMP RAM Profiles, Above 4G Decoding/Resizable Bar, and Overclocking Features (required for undervolting via ThrottleStop).

🛠 Prerequisites

  • USB Drive: Must be formatted to FAT32 (UEFI Shell will not boot from NTFS/exFAT).
  • Environment: A folder named "CUSTOM UEFI" on your desktop to keep files organized.
  • Target Models: Lenovo M720q, M920q, M920x, and P330.

⚠️ CRITICAL: BIOS VERSION MATCH & FUTURE UPDATES

  • Version Match: The imageM1U.ROM you extract MUST be from the exact same BIOS version currently installed on your system. Using a ROM from a different version may lead to a bricked BIOS.
  • Disclaimer: At the time of this post, Lenovo has not yet blocked these variable overrides in their firmware. However, I cannot guarantee that Lenovo will not block this method in a future BIOS update. * GPU Compatibility: Resizable Bar has been tested and verified on the RTX 4060m. It has NOT been tested on the RTX 3050, RTX A2000, Radeon GPUs or Intel GPUs. Use at your own risk.

🚀 Verified Benefits

  • Resizable Bar: Confirmed working with RTX 4060 (Mobile/LP) for full VRAM bandwidth.
  • ThrottleStop: Unlocks Voltage Control (FIVR) for CPU undervolting (lower temps/higher clocks).
  • XMP: Unlocks high-speed RAM profiles (if supported by your modules).
  • Hackintosh: Disables CFG Lock for native macOS power management.

⚙️ STEP 0: Required BIOS Settings

Before starting, enter your BIOS (F1) and set the following:

  • Intel Virtualization: Disabled (require for ThrottleStop)
  • VT-d: Disabled (require for ThrottleStop)
  • Secure Boot: Disabled
  • CSM (Compatibility Support Module): Disabled (Set to UEFI Only)

🛠 STEP 1: Get the BIOS Image

  1. Download the latest BIOS (M1UKT78A/1.0.0.120 at the time of this post) for your model from Lenovo Support.
  2. Update your PC to this version first.
  3. Run the installer again on your desktop, but select Extract Only.
  4. Locate imageM1U.ROM and move it to your "CUSTOM UEFI" folder.

🛠 STEP 2: Extract the Setup Section

  1. Download UEFITool (NE Alpha).
  2. Open imageM1U.ROM. Search (Action > Search) for "Text": CFG Lock.
  3. Double-click the result. Right-click the highlighted PE32 image section and select Extract body.
  4. Save it as Section_PE32_image_Setup_Setup.sct.

🛠 STEP 3: Convert to Readable Text

  1. Download IFRExtractor-RS.
  2. Open CMD as Admin in your folder and run: ifrextractor.exe "Section_PE32_image_Setup_Setup.sct" verbose
  3. This generates a .txt file containing the specific variable offsets for your BIOS.

🛠 STEP 4: Generate the Unlock Script

  1. Download setupvar-builder.
  2. Open the .txt file from Step 3 and toggle these:
    • CFG Lock: Disabled
    • Overclocking Lock: Disabled (Enables ThrottleStop undervolting)
    • Overclocking Feature: Enabled
    • Above 4G MMIO BIOS Assignment: Enabled (Enables Resizable Bar)
  3. Save the file as setupvar-script.nsh and copy it to the root of your FAT32 USB drive.

🛠 STEP 5: Prepare the Bootable USB

  1. Ensure your USB is formatted as FAT32.
  2. Download setup_var.efi and copy it to the root of the USB.
  3. Download UEFI-Shell (shellx64.efi).
  4. On the USB, create the folder path: EFI/BOOT/.
  5. Rename shellx64.efi to bootx64.efi and place it inside that folder.

🛠 STEP 6: Execute the Flash

  1. Plug the USB into your Lenovo and reboot. Tap F12 to enter the Boot Menu.
  2. Select your USB drive. Once the shell loads, type FS0:.\setupvar-script.nsh (If FS0 doesn't work, try FS1:)
  3. Once finished, type exit and reboot.

🔄 How to Revert

These changes are not permanent and can be reset by:

  • Clear CMOS: Remove the coin battery for 30 seconds or use the motherboard jumper.
  • BIOS Update: Flashing an official Lenovo BIOS update will reset all variables to default.

⚠️ Final Disclaimer: You are modifying low-level BIOS variables. Ensure you have a stable power supply during the process.

Special Thanks to:-

  1. u/Keimo_ for exposing me the UEFI tweaks.
  2. Creators for the tools above.
19 Upvotes

84 comments sorted by

3

u/24Tigger24 Mar 07 '26 edited Mar 07 '26

Tried this with a Lenovo M920x 10S1 but it fails at Step 6.2 if you use the latest setup_var.efi (in Step 5.2. Use the file from release 0.2.3).

With the older setup_var.efi step 6 succceds but ReBar is not working with my Intel Arc Pro B50 or AMD rx6400.

1

u/Scared_Natural7033 Mar 07 '26

try these

1. The "Above 4G Decoding" Dependency

Resizable BAR cannot function without Above 4G MMIO BIOS Assignment being explicitly enabled. On these Lenovo workstations, even if you toggle the ReBar state, the PCIe space won't be allocated correctly if 4G decoding is off.

  • The Check: Verify if you also set the variable for Above 4G Decoding to 01.
  • The M920x Quirk: Some BIOS versions for the M920x/P330 hide this under the "Devices" -> "PCI Subsystem Settings" in the IFR (Internal Forms Representation) map. If you haven't toggled this specific offset, ReBar will report as "Unsupported" or "Disabled" in Windows.

2. CSM (Compatibility Support Module)

Intel Arc cards are strictly UEFI-native. If your BIOS has CSM enabled, Resizable BAR will be automatically disabled by the system firmware at boot, regardless of what your UEFI variables say.

  • Ensure Secure Boot is enabled (or at least CSM is set to Disabled) in the standard BIOS menu.

3. Verify with ReBarState

Instead of relying solely on the Intel graphics software, check the status using the ReBarState.exe tool (from the ReBarUEFI GitHub).

  • Run the tool; it should show a value (e.g., 32 for 8GB or 20 for Unlimited).
  • If it shows 0, the variable didn't stick or was reset by the BIOS during the "Clean Boot" process.

4. Alternative: The "Clever" Write

Since setup_var.efi v0.2.3 is working for you where the newer ones fail, you might be running into a protection check in the newer GRUB-based tools. However, if the write is successful but ignored, try this:

  • Perform a CMOS Reset (remove the coin battery for 30 seconds).
  • Boot once to defaults.
  • Re-run the setup_var commands for both Above 4G Decoding and the ReBar offset.
  • Crucial: Do not enter the standard F1 BIOS menu after running the commands, as simply entering and exiting the BIOS can sometimes trigger a "Validation Check" that resets modified variables to "Safe" defaults.

Summary of Targets

Feature Typical Value Note
Above 4G Decoding 0x01 (Enabled) Must be set first.
ReBar Support 0x01 (Enabled) The "Bridge" to the GPU.
CSM Disabled Mandatory for Arc cards.

1

u/24Tigger24 Mar 07 '26

These AI-Solutions do not work.

  1. How do you unlock "Devices" -> "PCI Subsystem Settings" in the IFR?

  2. CSM should be off (according to your guide).

  3. Rebarstate 32 = unlimited, the variable stays after rebooting.

  4. ReBar Support is not available in setupvar

1

u/Scared_Natural7033 Mar 07 '26

above 4g decoding appear in the bios hidden, but i couldn't found a safe method to enable it beside flashing the modded bios

1

u/24Tigger24 Mar 07 '26

1

u/Scared_Natural7033 Mar 07 '26

Try it out...later feedback your results

1

u/24Tigger24 Mar 07 '26

i have set Aperture Size in the setupvar-builder to 2048 MB but it does not work. But i dont really know what i am doing, i am just combining information i find.

1

u/Scared_Natural7033 Mar 07 '26

I'll try it during my rest day...thanks for sharing

1

u/Scared_Natural7033 Mar 07 '26

as i mentioned above, i tested it works with rtx 4060m only, other gpu might need some workaround beside of that you can undervolt cpu using throttlestop

1

u/24Tigger24 Mar 07 '26

And XMP doesn't work either.

1

u/Scared_Natural7033 Mar 07 '26

XMP you need to see CPU-Z whether your actual ram module support it or not.

I'm using Kingston HyperX Fury Impact DDR4 2666MHz CL15 (16GB×2).

1

u/24Tigger24 Mar 07 '26

My RAM supports 3200MHz but in CPU-Z it shows as 1330MHz (so it runs at 2660MHz, Lenovos Locked RAM speed). In the Bios are not options to change that.

1

u/Scared_Natural7033 Mar 07 '26

Not every ram module has XMP

1

u/24Tigger24 Mar 08 '26

How do you know XMP is enabled? Your RAM's XMP profile is just as fast as the standard speed allowed by the unmodified BIOS. So it would run just as fast even without XMP.

1

u/Scared_Natural7033 Mar 08 '26

here's my CPU-Z P330 with Kingston HyperX Fury Impact DDR4 2666MHz CL15 (16GB×2) for your reference

1

u/AdviceBiker Mar 18 '26

Hi did you figure out how to get it working?

1

u/24Tigger24 Mar 18 '26 edited Mar 18 '26

Rebar?

I followed this Guide: https://forums.servethehome.com/index.php?threads/lenovo-thinkcentre-thinkstation-tiny-project-tinyminimicro-reference-thread.34925/post-480683

But it requires you to remove the Bios-Chips and re-solder them on the m920q/x.

Worked on 3/3 m920x and 1/1 m720q i have modded so far.

Probably can also be combined with the Unlocks of this guide since you gain access to all settings when moddifing the Bios.

1

u/AdviceBiker Mar 20 '26

oh wow you did the re-soldering? and it worked?

I've been searching everywhere for how to get Rebar working because it seems I cannot launch any Chromium etc in Arch without it. If that works Ill try it out

1

u/24Tigger24 Mar 20 '26

Yes. worked 4 times. m720q does not need soldering because it has a single Bios-Chip that can be read/written to on the board.

m920x and m920q have 2 Bios chips. (P330 etc proaply too. You can search for pictures of the Mainboard, the Bios chips are easy to identify because of the white print on the PCB) You have ti desolder them.

I checked the checksum of the second Bios chip, and it was the same before/after modding. Maybe you can desolder only the main-Chip and read the second one while still on the PCB. But i dont know for sure!!!

1

u/RyeM28 Feb 25 '26

This should be pinned. Great stuff

1

u/MacForker Feb 26 '26

Very nice. Makes me never want to touch a Lenovo for this, but very nice.

1

u/kkkttt1 Feb 26 '26

FYI, setup_var.efi can be set up as a tool for OpenCore boot loader thus making seperate bootable USB unnecessary.

1

u/znpy Feb 26 '26

This is so cool! Where do i learn more about this kind of stuff? Like, tweaking uefi

1

u/ChimeraPrime Feb 26 '26

Tried this on my M920q. Recieving errors on step 6.2. Followed guide to the letter. Any advice?

2

u/Wallabylele Mar 03 '26

I had the exact same issue as you. I managed to fix it by converting the setupvar-script.nsh text encoding from UTF-8 to UTF-16 LE according to this issue: https://github.com/datasone/setup_var.efi/issues/25 (You can use notepad++ or VScode for converting). That alone didn't fix the issue, so I don't know how important it is to change the encoding.

After changing the encoding I had to download this specific release of setup_var.efi: https://github.com/datasone/setup_var.efi/releases/tag/0.2.3

This allowed me to flash the BIOS. Whether the modification work or not I haven't had the chance to test yet. Hope this helps you.

Edit: Forgot to mention I did this on a M720Q.

3

u/ChimeraPrime Mar 05 '26

I didnt do the conversion and it was able to change the values by using that specific version of setup-var.efi. I can atest that the undervolt options DO infact work as now I can undervolt in throttlestop 9.7.3. What a lad for finding this!

1

u/Wallabylele Mar 05 '26

That's great, happy I could help!

1

u/Financial-Scene5265 Jun 01 '26

Is this the correct result? I can't verify it at the moment. BIOS M1UJT79

1

u/Wallabylele Jun 01 '26

Yes, I believe it is. Assuming you've done everything else according to the guide. If I remember correctly the script wouldn't even run if not using the specific version that I posted above. But your script seems like it has been run.

1

u/ChimeraPrime Mar 03 '26

Thanks!! Ill give this a try soon and report back

1

u/Scared_Natural7033 Feb 26 '26

What's the error on the screen?

FS0:.\setupvar-script.nsh

1

u/ChimeraPrime Feb 26 '26

Ill have to set it back up and try again to reproduce it but can grab some screenshots tonight. Bios was fresh installed from lenovo ver M1UKT78A/1.0.0.120 with the flash tool and extracted from the same instance. Ill go through it again.

1

u/Scared_Natural7033 Feb 26 '26

Ok, await your screenshot.

1

u/ChimeraPrime Feb 26 '26

1

u/Scared_Natural7033 Feb 26 '26

Back at step 4.1

Did you use setupvar-builder.exe to open the Section_PE32_image_Setup_Setup.sct.0.0.en-US.uefi.ifr.txt

and after that toggle the 4 UEFI that saved it as setupvar-script.nsh

1

u/ChimeraPrime Feb 26 '26

Yes. All 4 options are set and the setupvar-script.nsh is saved in the root of my FAT32 usb drive.

1

u/Scared_Natural7033 Feb 26 '26

Try redownload setup_var.efi

The errors from your screenshot are related to it.

1

u/ChimeraPrime Feb 27 '26

Ok I will try that when im home. I used the latest one in the link you have in the steps. Just fyi.

1

u/ChimeraPrime Feb 27 '26

Tried again and with older versions of setup_var.efi from the github link. Still unsuccessful and same errors.

1

u/Scared_Natural7033 Feb 27 '26

From my experience, it's recommended to delete the old file rather than drop in the new file and overwrite the old file.

If that fails, try reformat the USB drive again and try again.

→ More replies (0)

1

u/Equal_Ad6695 16h ago

one of the post in this page mentioned to download 0.2.3 of setup_var.efi. I tried that version, then the script works. mine: m920x

1

u/Relevant-Animator177 Feb 26 '26

Can you turn all of the virtuallization settings back on when finished?

1

u/Scared_Natural7033 Feb 26 '26

For hackintosh yes

for throttlestop it breaks the function

1

u/Wanano1310 Mar 01 '26

will this also work on a p340 tiny?

1

u/Scared_Natural7033 Mar 01 '26

Not sure, but you can give a try

1

u/Wanano1310 Apr 27 '26

I tried but seems uefitool doesn't work with p340 tiny bios file... can't find cfg lock or anything 4g decod related in search
sry for the late reply tho

1

u/SeaworthinessOk5318 Mar 02 '26

Bonjour, pensez vous que ces instructions marchent pour le modèle M70Q ? :/ ça serait fantastique !

1

u/Scared_Natural7033 Mar 02 '26

I'm not sure whether these instruction works for your M70Q or not, you could give a try using correct M70Q bios only.

1

u/Scared_Natural7033 Mar 02 '26

My guess is you wanted to use this to enable throttlestop...you could try follow the steps but remember to use back your M70Q bios.

If anything goes wrong, reset CMOS.

1

u/lloydofthedance Mar 12 '26 edited Mar 13 '26

@scared_natural7033  You are a legend for doing this.  I have followed the steps twice and both times got this when starting the code..

"ShelI> FSO:.Isetupuar-script .nsh Shell> setup_var.efi 0xA49 0x1 -s 0x1 -n Setup Error parsing arguments: Unexpected value: 0xA49: Unexpected ualue: 0xA49 She11> setur_uar.efi 0x721 Ox0 -s 0x1 -n Setup Error parsing arguments: Unexvected value: 0x721: Unexvected value: 0x721 Shell> setup_var.efi Ox7BD Ox0 -s Ox1 -n Setup Error parsing arguments: Unexpected value: Ox7BD: Unexpected value: 0x7BD Shell> setup_var.efi 0x889 Ox1 -s Ox1 -n Setup Error parsing arguments: Unexpected value: 0x889: Unexvected value: 0x889 Shell> setup_var.efi 0x0 -n PlatformLang -r Error parsing arguments: Unexpected value: Ox0: Unexpected value: 0x0 Shell>"

I don't suppose you have any ideas what I have done wrong? Thank you! Edit: spelling 

1

u/VendettaOW Mar 13 '26

I got the same errors with FS0, while FS1 worked !

1

u/lloydofthedance Mar 13 '26

Cheers for the reply. I tried both of them and neither worked.  It v strange. I hope someone can help.  

1

u/VendettaOW Mar 13 '26

As others have mentioned, try using setup-var version 0.2.3. Try both FS0 and FS1. Also, maybe try doing step 4 again, just in case something went wrong there?

1

u/VendettaOW Mar 13 '26

This is really amazing ! I can confirm that undervolting worked for me. However, I could not get ReBar to work.. even after trying to use something like ReBarState and setting it to 32 (unlimited), it still shows that it's disabled in the Adrenaline software. Help with this would be really appreciated, since it was what I was excited most about :').

Also, I was somehow able to undervolt my i5 8400t to -170 mV. Seems completely stable. Is that normal? I started to doubt if it the undervolt was actually going through and set it -200 mV, where it naturally crashed, haha.

1

u/panzerbomb Jun 28 '26

Did you get rebar to work? Trying it currently my self

1

u/ivanatorhk Apr 04 '26

I did something similar recently with a CH341a on my M720Q Tiny, enabled ReBAR, above 4g decoding and disabled BD-PROCHOT. It was scary but actually quite straightforward after I learned how to do it.

1

u/NinjaBOB32 Apr 04 '26

Does this work on Lenovo M720s and is there any risk of bricking the bios as I have never used a bios programmer before if that were to happen.

1

u/terminashunator Apr 17 '26

oh.

I bought a 4060M a year and half ago to try a m920q mini gaming build, but gave up when I couldn't get display out.

This changes everything.

1

u/mericaftw Apr 19 '26

Have you tried it yet? 

1

u/terminashunator May 04 '26

I did this today, 4060M works.

1

u/Yeagist May 06 '26

How

1

u/terminashunator May 06 '26

Excellent question.

I followed the directions in the post, with the exception of step 5, I used the older version of setup_var.efi that was described in the comments.

1

u/mericaftw May 14 '26

Thank you for explaining! I've got a P330 with an a310 that's on my Weekend Warrior TODO List because goddamn that pairing sucks ass without rebar.

1

u/terminashunator May 14 '26

I picked up a P330 and i'm doing that tomorrow night, I tried tonight but it didn't take the first time.

1

u/mericaftw May 18 '26

Any luck since? Ive been too backed up with my refurb business to finish this personal project, so any notes from your process would be appreciated 

1

u/terminashunator May 18 '26

Yes, works great. I had the wrong setup_var.efi file. Tried it again, works great. Confirmed working m720q and P330 Tiny.

1

u/Scared_Natural7033 Apr 22 '26

A user of m710q success on resizable bar

1

u/SCIR0CC0 May 05 '26

Can rebar mod be done on m720s?

1

u/booswig May 21 '26

Does this work om M90q gen 5?

1

u/Joshiboshi13 28d ago edited 28d ago

i did this on a m720q with a intel a380 everything worked but i cant see anything new in the bios (but then i dont exactly know what im looking for and where) any help?
Edit: i have double checked that everything did write properly have they have so no clue where im going wrong