Search the Community
Showing results for tags 'dsdt override'.
no more 4GB+ system RAM issues: use a DSDT override to extend the root bridge into 36-bit space (Windows 7/8/10 only - MacOS/Linux are unaffected) Introduction>>> This problem and solution is only relevant to Windows operating systems. MacOS ignores the root bridge and can allocate in 64-bit space as kizwan found here. Linux has a "noCRS" kernel parameter to ignore the root bridge boundaries so the OS can also also allocate in full 64-bit pci-e space. The this process aims to solve the problem of seeing an error 12 (This device cannot find enough free resources that it can use) issues against a eGPU in Windows Device Manager due to insufficient 32-bit addressing space. By manually adding a memory range outside of this 32-bit space, we can force Windows to operate in 36-bit space instead to host eGPUs. Know systems that will require this process are Dell Latitude Ex410 series, Samsung Series-4, Sony F-Series and MSI CRx20, HP-Elitebook/Probook xx60x/xx70x with AMD GPUs. Those have insufficient free 32-bit PCI space to accomodate a eGPU if have 4GB or more of RAM installed. They can't use Setup 1.30's PCI compaction to create sufficient space because they either have TOLUD=3.5GB, have lower TOLUD like 3.25GB but with an unmovable systemboard device occupying candidate free pci space making it unusable or are using an AMD or GTX650/GTX750 card that requires over 256MB contiguous space. Refer to Pre-Purchase FAQ #2(>> 2. How can I check if my notebook is compatible with an eGPU?) for details on how to check your TOLUD. The same solution can be applied to any 3-gens old PM965 chipsets (2007) or newer system. They have a 64-bit CPU and chipset so are fully PAE-36-bit/64-bit compatible. Dell Inspiron 1440/1525 (core2duo) and Dell Vostro 1015 (core2duo) have BIOS-configured 36-bit root bridges already so don't require this workaround. I happened to run into one of these problematic systems. A Dell E4310 with TOLUD=3.5G which can be maxxed out at 16GB of RAM. It's too nice an ultraportable to be need to downgrade RAM to 3GB of RAM to use an eGPU. I set of in pursuit of how to add a DIY eGPU to it which is documented below. Using Setup 1.30's 36-bit PCI compaction on the eGPU to relocate it in such space will see the eGPU still give an error 12 in Device Manager. Why is that? Avlan confirmed that the 32-bit root bridge definition limited allocation only to 32-bit space. The fix being a modified DSDT loaded as a registry override that extends the root bridge (ACPI PNP0A08 or PNP0A03 device) into 36-bit space. Avlan's fix was cryptic so wasn't attempted on other systems. After a bit of digging from the following references I found the QWORDMemory DSDT static resource entry can be used to easily extend root bridge entry into 36-bit space. Ref: [Qemu-devel] [PATCH 6/6] 64bit PCI range in _CRS table plus two examples at virtualbox and Coreboot. Tools required>>> The iasl and asl tools used are in 2570P-dsdt-override or (older) DELL-36b-root-bridge.rar. Allternatively, can download them from their original sources: The latest Windows Binary Tools (WBT): Download The Windows Driver Kit (WDK), which contains the Windows ASL Compiler: Download Notepad++ (or any other text editor) Step-by-step DSDT override>>> Need a 36-bit root bridge DSDT override The test Dell E4310's root bridge was extended into 36-bit space with the steps below. See also http://forum.techinferno.com/diy-e-g...html#post49833 , user angerthosenear's alternative instructions to those presented below where can use a DSDT Editor to simply the patching process if experience a compilation error: NOTE: kizwan expands steps 1-3 here. Useful if you need more assistance with these steps. Kizwan also provides a video tutorial . 1. Identify the resources used by the PNP0A08 or PNP0A03 devices in Windows. This can be found by perusing Device Manager->Resources by connection->Memory. Then check the last PCI BUS entry. Eg: 2. Capture the DSDT table using command below. This gives a raw dump of the ACPI tables in .dat files. dsdt.dat is the one we will be using. Newer versions of iasl no longer having the "-g" option in which case use acpidump instead. iasl -g acpidump -b 3.Decompile dsdt.dat to get an output dsdt.dsl text file that can be editted: iasl dsdt.dat 4. Open the resultant dsdt.dsl file and look for the PNP0A08/PNP0A03 'DWordMemory' resource entries. Under the last DWordMemory entry in that area, add a 'QWordMemory' (64-bit) entry shown as the second paragraph below. I ensure that I stay in the 36-bit range (< 64GB) so the location is compatible with the PAE-capable Win7 32-bit. I also chose a location above 48GB so we won't have issues with maxxed out memory. The range chosen was 48.5GB to 56.25GB. DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, 0x00000000, // Granularity 0x000A0000, // Range Minimum 0x000BFFFF, // Range Maximum 0x00000000, // Translation Offset 0x00020000, // Length ,, , AddressRangeMemory, TypeStatic) QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, 0x0000000000000000, // Granularity 0x0000000C20000000, // Range Minimum, set it to 48.5GB 0x0000000E0FFFFFFF, // Range Maximum, set it to 56.25GB 0x0000000000000000, // Translation Offset 0x00000001F0000000, // Length calculated by Range Max - Range Min. ,, , AddressRangeMemory, TypeStatic) 5. Create a dsdt.aml file with the 'iasl -oa dsdt.dsl' compiler directive. '-oa' disables all optimizations found necessary to get working solutions. It is unlikely this will succeed first time, as the compiler is very strict. In general warnings are acceptable, but errors may require some fiddling. Those will need to be corrected with common patches in Common DSDT patches for Ivy/Sandy/Haswell laptops, How to fixed DSDT errors? (kizwan). Consider asking for guidance at tonymacx86.com DSDT forums. DSDT editting alone could have it's own forum. Then try compiling your DSDT again. iasl -oa dsdt.dsl 6. Load the dsdt.aml file into into the registry as a DSDT override. You must be an admin user for this to be successful. asl /loadtable dsdt.aml 7. [Windows 8.x/10] Enable test signing mode for the registry override to apply. You must be an admin user for this to be successful. bcdedit -set TESTSIGNING ON An alternative to disabling testsigning in Win8/10 is to do a Win8: Perform a DSDT substitution within Setup 1.30 to overcome TOLUD issues. Win7 users who don't want to do the registry override can also do this DSDT substitution. 8. Check you now have a new Large Memory entry in Device Manager->Resources by Connection->Memory as shown below: 9. The same fix was done on a Dell E4300 and Win7 did automatically allocate the eGPU into the 36-bit space. If you still see error 12 then there are two options to pursue: Re plug'n'play the devices. Go into Device Manager -> Video cards, delete the eGPU. Also go into Device Manager -> System devices and delete the PCI Express Root Port x entries. Upon restarting the system, halt Win7 startup with F8, attach and power on your eGPU and then proceed to load Win7. Win7 should now be clever enough to re-allocate the eGPU into 36-bit space upon realizing there is insufficient 32-bit space to host it. Can go one step further and delete your eGPU NVidia/ATiAMD driver, restart the system and reload it. That may help as well. Hard allocate the eGPU into 36-bit PCI space before booting Win7 using Setup 1.30. Select PCI compaction->Endpoint=56.25GB (36-bit) and then select Run compact. When prompted for the scope select eGPU. The result will be similar to that shown in the spoiler in step 8 above, but with the eGPU rather then the Intel HD iGPU being in 36-bit PCI space. Can then proceed to automate this by editting your %DRV%:\config\startup.bat (or V:\config\startup.bat in windows) so can just select the Automated startup via startup.bat Setup 1.30 bootitem and have it do everything for you: call speedup lbacache call vidwait 300 call vidinit -d %eGPU% call pci call chainload mbr Testing results>>> * Lenovo X230 (jay_dark_dry): SUCCESS! Allocated the eGPU into 36-bit space. * Lenovo T430 (arteart) : SUCCESS! Allocated the eGPU into 36-bit space. * HP 2570P (Tech Inferno Fan): SUCCESS! Allocated the eGPU into 36-bit space. * Dell E4310 (Tech Inferno Fan): SUCCESS! I relocated the Intel HD iGPU into 36-bit space using Setup 1.30 as shown in step 8 above freeing 256MB of contiguous 32-bit space to host an eGPU, so it will definitely work. Plus there is plenty of 36-bit space for the eGPU too. Unfortunately my PE4L 2.1 isn't working so I can't show the iGPU+eGPU both being active but it will work * Dell Studio 1557 (Kizwan): SUCCESS! His HD5870 successfully relocated to 36-bit pci-e space. FAQ>>> 1. When do I need to hotplug my eGPU to overcome the error12 with a DSDT override?(kizwan) 2. How to clean the DSDT override properly? (kizwan) (*We will need to delete DSDT key in registry) HKEY_LOCAL_MACHINE\SYSTEM\ControlSetXXX\services\ACPI\Parameters\DSDT * where XXX are 001, 002, 003 & so on. and HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\ACPI\Parameters\DSDT I didn't really tested whether deleting "DSDT" key in ControlSetXXX (XXX are 001, 002, 003 & so on) really necessary but I will test this when I test your latest Setup 1.30. For sure deleting "DSDT" key in CurrentControlSet is necessary. You can access registry via command line. So, you can put it in .bat file.
Hi, I am trying to run a GTX 970 as eGPU in my Dell XPS L502 and I ampassing through an specific problem. I'll sum up here what I did until now. For those who don't want to know this and go direct to the issue, my problem is with the PCI Compatcion, and yes, I'd already did the DSDT override. Well, back to what I already done (any difficulty to understand my text, it's because of my lack of practice in these kind of topics in english). I bought an EXP GDC Laptop External Independent Video Card Dock w/ PCI-E at DX.com; I am running the DYI eGPU 1.30, everything is installed correctly, etc. Specs/setup: Gigabyte GTX970 Gaming 1 x EXP GDC PCI-E adapter 1 x Mini PCI-E cable (80cm Length) 1 x ATX PSU power cable (11cm Length) Dell XPS L502x i7-2670 QM 16 Gb Ram 1333MHz SSD 480Gb + 750Gb Sata NVidia 540M 2Gb Considerations: If I restart/start my laptop with the eGPU On, I'll get black screen. But it works if I turn on the eGPU when it gives the option to select between the DYU and OS to start. At the DYI eGPU setup screen, I did these steps: call iport dGPU off call iport g1 1 call vidwait 60 10de:11c6 call vidinit -d 10de:11c6 call chainload mbr But when I am going to do the PCI compaction, it is not working, and I have tried a lot of different configurations. I searched what could I do, and I found the comment from andhie133128 in the page techinferno.com/index.php?/forums/topic/5874-guide-dsdt-override-to-fix-error-12/&page=3 talking about the DSDT override and then loading the DSDT.aml updated file at the DOS in the DYI's setup screen with the command "PT MEM writefromfile 1 0xBAFF2000 DSDT.aml". Why 0xBAFF2000? Its what I have found with the RW-Everything software as my DSDT memory. As told in that post, I'd compacted the .aml with a smaller size than the original (from 36kb to 35kb - it's something =p) and then loaded it at the DOS. Everything worked fine, the " large memory showed up, no error at DOS, everything went well. The eGPU is recognized, I am able to stop my dGPU at the DYI setup screen, initialize the eGPU, the large memory is showing in my device manager, I am able to do the DSDT override (note: its easier to compact the file with an older version of the iasl), I'd imported and loaded it at DOS, but the PCI Compaction insists in not work. What I didn't and that may be the problem. I had not installed yet the gtx 970 driver before the PCI Compation and don't know if this have something related to the PCI compaction problem. Why didn't I tried it yet? I am with a huge amount of work now and I am using my laptop everyday and need some GPU to work, then I am keeping my 540M driver and was thinking in uninstall it when the PCI Compation works; or when I get done with my extra work and don't need so much the laptop everyday. One day, in the past (it's not my first time trying to do it), I went able to do the PCI compaction (only one time), and I think I did it when I used a different memory at the "PT MEM writefromfile" command. I think I confused something and used this memory instead: "ACPI -> RSDP -> 0x000F00E0; But few days later I had to format windows OS and lost the configuration. I had done the same steps that I told to be able to do that. But even with the PCI compaction done that time, I had formated the laptop before setting the eGPU to work 100%... Why didn't I have tried it again? Same problem, I am using the laptop everyday and in doubt about what can happen if I use this other memory. I don't even know for what this RSDP is used for. I found this topic from rossysaurus (https://www.techinferno.com/index.php?/forums/topic/6413-17-dell-xps-l702x-gtx9704gbpsc-mpcie2-pe4c-21-win7-rossysaurus/) and I will try the same steps. But in case someone already had the same issues that I'm having, please help me solve this.
Please ask for support in the main DSDT Override or DIY eGPU Experiences Thread. I have been out of the eGPU realm for too long to provide adequate support. Here is a guide to performing a DSDT override with hopefully less misery, and setting up your computer to have your iGPU, dGPU, and eGPU working at the same time! Oh boy this is going to be fun. This is my system specs (Fujitsu T901): i7-2620M 16GB RAM NVS 4200M GTX 660 Ti Windows 7 Enterprise x64 Now it begins.. Disconnect your eGPU until I say so. If you can, you should perform a DSDT override. The method shown in the official thread was really hard at How to perform a DSDT override: Now for the fun part........ Disconnect your eGPU Uninstall ALL (ALL MEANS ALL) (dGPU included!!!) Nvidia drivers (keep the Intel graphics driver) Use Driver Sweeper and check all the Nvidia options, run, reboot, turn off computer -- don't install the driver for the dGPU yet Connect eGPU and go to Setup 1.x Set your eGPU port to G2 (assuming your have an adapter that supports G2, and your computer as well - if not, then skip setting the port to G2) dGPU off 32-bitA compaction for iGPU eGPU chainload to your OS Windows may yell at you to reboot due to hardware changes, don't quite yet Check device manager, you might (I did) have error 43 Attempt to install the latest Nvidia drivers for you eGPU -- still don't install drivers for your dGPU If your lucky, it will install, if not: shutdown/reboot Setup 1.x do the same as before (dGPU off and such) Attempt to install the Nvidia drivers again for your eGPU After a few hours of fiddling around, you should get them installed (keep your dGPU off this whole time) ONLY AFTER YOU GET YOUR eGPU DRIVERS INSTALLED!! (and as such, error 12 in device manager) Go to Setup 1.x Set port G2 on your eGPU port (again, if you support G2) 32-bitA compaction for iGPU dGPU eGPU (or choose 36-bit if you performed a DSDT override) chainload You will probably get the reboot due to new devices again, but before you do, check device manager Might have a generic VGA device or something instead of the NVS 4200M Attempt to install the drivers for you dGPU now If no luck, reboot and do the same Setup 1.x as before (with dGPU on) Attempt to install dGPU drivers again Reboot after you get your dGPU drivers installed Keep the same Setup 1.x method If your lucky you should have your iGPU dGPU and eGPU show up fine in device manager. You can go to the Nvidia control panel and dedicate your dGPU as your PhysX processor, it works really well. (If you play stuff that supports PhysX and have an at least somewhat useful dGPU) ------------------------------------ I hope this helps. ^ over 20 hrs of fiddling around well spent ;-; ------------------------------------ HOW TO: Update drivers (probably): Note: You can check your driver version for both your eGPU and dGPU in the System Information dialogue box under 'Help' in the NVIDIA Control Panel (you can even check your Bus here too (PCI Express x1 Gen2 as shown for my eGPU). Results::::: iGPU + dGPU + eGPU dGPU PhysX dedicated: WEI: ALL THE MONITORS (and all different resolutions too ): Weeee~~~~~~~~~~~~~~ Check out a video here: