A bit of Context (Can be Skipped): I bought this laptop to use Linux and Windows VM using PCI-passthrough for the GPU, the problem is that Lenovo Doesn’t show IOMMU Option In the BIOS, so I cannot enable it.
The Bios is a InsydeH20, but it seem a different from the one I saw online, as it the one with the mouse support rubbish (
).
I tried all possible key combo to unlock Hidded Feuture, but accordind to the Murphy law this not Worked at all. So after a bit of research I discovered H20UVE and H20EZE, but I’m a bit scared, that these are old compared to my bios and could brick my laptop.
Regarding the option that I want to enable, I found these with UEFITool/IRF Extractor, but I want a confirmation from one with more experience before making damage.
The relevant Part of the IFR is from CbsSetupDxeRN Module:
@AARCH64_EL3 - Yes, setup_var may work, or you may need to dump vars with CMD-line H2OUVE, edit, then flash back (Safest and best way)
For #4 - You may only be looking at CBS IFR, there is also setup module IFR which would have the rest of stuff from normal BIOS area such as the setting you asked about.
Hello @AARCH64_EL3 , thanks for these pointers, I was able to enable IOMMU & DMAR following these steps:
1. Download modGRUBShell.efi from github(.)com/datasone/grub-mod-setup_var/releases (or compile from source) and place it in a bootable usb, assuming your device is /dev/sda:
sudo wipefs -a /dev/sda sudo parted /dev/sda mktable msdos sudo parted /dev/sda mkpart primary fat32 0% 100% sudo mkfs.fat -F 32 /dev/sda1 sudo parted /dev/sda set 1 boot on
hello im new here thanks for help i tried your guide on EUCN31WW and it worked msinfo32 says that kernel DMA protection is on PROTIP on linux you can enable iommu=pt and intel/ amd_iommu=on on the ubuntu livecd by pressing e to edit the command line and put after /vmlinuz.efi
but will this still work for [LENOVO EUCN33WW 23/09/2021] BIOS i reverted my bios to defaults and installed the newest firmware via lenovo vantage to avoid errors after a few reboots i tried it again it says [GUID does not match expected GUID taking it nevertheless] this is the same output as last time when it worked but this time it no longer seems to work strangely the mobilepassthorugh script says that IOMMU VT-D/AMD-Vi is enabled in the uefi but DMAR is off on msinfo32 did the lenovo developers patch this method? it says on the changelog the wakeup sleep issue was fixed surprisingly i never experienced any instability unlike what reddit said
also can i use this method with different variables to increase the radeon iGPU to 2gb VRAM flashing BIOSes is too dangerous for me even though my device is still in warranty 512mb of vram feels bare minimum edge would lag for a second when watching multiple youtube tabs simultaneously and i can notice it going to peak 480mb on task manager
No. It seems this feature is not working in your BIOS.
Don’t know if they did it, but I can check if anything about DMAR has changed if you share a copy of the BIOS. EUCN33WW is currently not available for download on driver download page.
thanks didn’t expect such a quick reply here you go i have an original copy of the bios EXE files itself on C:/drivers/flash will this work for the 1660 2060 models as well? i wanna buy this in the future its a shame that i can’t increase the radeon Vram
ok i managed to enable the advanced menu after using the unlocker script but for some reason IOMMU keeps turning itself off whenever i check with the bios how do i fix this it just keeps on going to AUTO i also turned off [use OS defaults] and set it to uefi manually but it still keeps turning off and the mobilepassthough script hangs when i run it on livecd
however the good news is that i managed to set my igpu Vram to 1gb by poking around the UMA settings
Advanced > Peripheral Configuration > TPM for those who want to avoid win11
AMD CBS > NBIO Common Options > GFX Configuration > UMA IOMMU keeps reverting to auto on every reboot but DMAR says enabled in the bios even though its off msinfo32 strangely PCIe ARI is still enabled
for the graphics set it to UMA specified then enable switchable graphics or the iGPU will be automatically disabled (i have no idea why it does that) AMD PBS > Special Display Features > HybridGraphics the weird part is no matter what i put on UMA frame buffer size it always gives me 1GB even if i set it to 768M but based on what i found most APUs have 1GB of vram with no way of changing so i guess thats normal but would be really nice if i could get it to 2GB
i don’t know if the [OS Optimized Defaults] is causing the bios to revert but it seems to be uefi/legacy related and nothing more another thing i noticed is selecting [Load Default Settings] does not seem to re-lock by bios i dunno if holding power button for 10 seconds will reset it if nothing else works i might try using CMOS deanimator on my winPE maybe something is stuck in the bios? hopefully i dont brick my pc by accident
Resetting to default, doesn’t remove the unlock, because, restoring to default, just load setting from ifr, and not create nor delete efi var, so the variable created by my tool is not deleted, for this I created also the relocker. Is just like the boot order, and boot entry. Look at the how it work, section to see why it work that way. If you want i can create also the version with the fn+d, but then it will relock every time
do you know the original variables there? i think i might have messed up while using that tool hopefully i have not done any permanent damage to my hardware while it worked originally on 31 when i used it on the newer EUCN33WW something else might have been modified which prevented iommu from turning on
is there a way to fully reset all the efivars back to default maybe lenovo has an official reset too for this? i dont wanna dissasemble my laptop to remove the cmos due to warranty if nothing else works i might revert back to back to EUCN31WW also CMOS deanimator didn’t do anything
if needed maybe i can extract by bios and all the efivars edit: i have no idea how to extract the bios from motherboard (not the exe) google does not yield any results maybe there is some kind of low-level efi app to read the firmware and save it to the usb
EUCN33WW, Is a bugged version, that also lenovo reverted, due too many problem, as you can see, from the site you can only download the EUCN31WW. There was something broken with EUCN31WW, that made you update to EUCN33WW? for me the bios "if it ain’t broke, don’t fix it" Regarding setup_var, it should be revert automatically on LOAD Default, or on bios upgrade/downgrade. BTW, you can get the default value from my first post with the IFR, from there both 0xCA and 0xCD, have 0xF as default
Hi, guys! I’ve managed to update the bios to EUCN33WW, which caused some problems, meaning the system could boot up but I couldn’t see anything on the screen. So, after using an HDMI cable to connect it to other display and changing the graphics settings, I’ve managed to boot it up properly. So far, nothing wrong, I’ve just unlocked the advanced settings menu in the bios, I was hoping to find the XMP profile for my RAM.
As far I can tell, EUCN33WW is a bugged version, that was retired by lenovo, as far I can tell EUCN31WW, is the most recent stable version. Regarding XMP, there are no setting regarding that, there are setting regarding manual memory timing, but never tried that, as I was afraid of getting an expensive brick; so I don’t know if these setting do something or not.
I guess, but I’m not downgrading it. So far, so good! I can always go back to a working version of the bios since I have the modded bios and the SPI clip at my disposal. So, I’m waiting for the future updates to see if it works unlocking them with the Windows app. Great work!
BTW, I’ve found the NVMe Raid mode. I’m currently using two NVMe drives, one from Corsair and the other one from ADATA. Do you know it I can enable this mode on these drives without being similar?