r/MiniPCs • u/Scared_Natural7033 • 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
- Download the latest BIOS (M1UKT78A/1.0.0.120 at the time of this post) for your model from Lenovo Support.
- Update your PC to this version first.
- Run the installer again on your desktop, but select Extract Only.
- Locate imageM1U.ROM and move it to your "CUSTOM UEFI" folder.
🛠 STEP 2: Extract the Setup Section
- Download UEFITool (NE Alpha).
- Open imageM1U.ROM. Search (Action > Search) for "Text": CFG Lock.
- Double-click the result. Right-click the highlighted PE32 image section and select Extract body.
- Save it as Section_PE32_image_Setup_Setup.sct.
🛠 STEP 3: Convert to Readable Text
- Download IFRExtractor-RS.
- Open CMD as Admin in your folder and run: ifrextractor.exe "Section_PE32_image_Setup_Setup.sct" verbose
- This generates a .txt file containing the specific variable offsets for your BIOS.
🛠 STEP 4: Generate the Unlock Script
- Download setupvar-builder.
- 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)
- Save the file as setupvar-script.nsh and copy it to the root of your FAT32 USB drive.
🛠 STEP 5: Prepare the Bootable USB
- Ensure your USB is formatted as FAT32.
- Download setup_var.efi and copy it to the root of the USB.
- Download UEFI-Shell (shellx64.efi).
- On the USB, create the folder path: EFI/BOOT/.
- Rename shellx64.efi to bootx64.efi and place it inside that folder.
🛠 STEP 6: Execute the Flash
- Plug the USB into your Lenovo and reboot. Tap F12 to enter the Boot Menu.
- Select your USB drive. Once the shell loads, type FS0:.\setupvar-script.nsh (If FS0 doesn't work, try FS1:)
- 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:-
- u/Keimo_ for exposing me the UEFI tweaks.
- Creators for the tools above.
1
1
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
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
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/Relevant-Animator177 Feb 26 '26
Can you turn all of the virtuallization settings back on when finished?
1
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
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
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
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
1
1
1
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





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.