Search the Community
Showing results for tags 'error 12'.
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 guys, I need some help from you guys if you wouldn't mind. I'm useless Specs:- Samsung RV520 8gb DDR3 I7 2720qm @2.2ghz 1x HDD 500gb 1x HDD 300gb Nvidia GTX 650 Ti BOOST EXP GDC BEAST 8.5c DIY Setup 1.3 DELL 220w PSU After a lot of messing around I have managed to get this egpu to work when downgrading to 2gb, Which makes me think I just need to change my TOLUD to get it to work. I have read and tried to make a successful DSDT file however I don't really know what I'm doing with these driver edits and haven't been able to get it to work particularly the error fixing on compiling the dsdt. However When I did have it working on 2gb ram. I ran heaven Bench, The GTX 650 under load makes strange noises and crashes the display driver multiple times. Could any of you more knowledgeable individuals give me a hand please Thanks
Ok, a little background. I have a lenovo L420 laptop and bought an EGPU adapter via Express Card. I used a Geforce GTX 1050 TI In order for this to work you need to first disconnect any egpu external device and perfrom DSDT override to your system. Very easy guide thanks to user 'angerthosenear' found here (JAVA MUST BE INSTALLED IN ORDER TO RUN .BAT FILE. Other wise nothing will open) Keep in mind step 5 on his tutorial was a bit off. The correct code should look like this: DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, 0x00000000, // Granularity 0x000A0000, // Range Minimum 0x000BFFFF, // Range Maximum 0x00000000, // Translation Offset 0x00020000, // Length ,, , AddressRangeMemory, TypeStatic) /*above this line is only for reference. only copy below*/ 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) Restart your computer and confirm your DSDT override worked by going to Device Manager -> Resources by Connection -> Memory and you should see a hierarchy for 'Large Memory' When I was at this point I was still getting error 43. I thought it was a driver issue, but ****** via email thought it was a timing issue with clocks so he suggested I 'Jumpered' the powersupply so it would constantly stay on as long as it was plugged in. So when I plugged my expresscard in the laptop, the GPU would already be powered on. I would first plug your EGPU in your system and see if you still get this error. If so, jump the power supply unit by grounding the greenwire with either of the black wires to the right or left of it. This can be done in many ways, be smart about it. Try to make it reversible. Don't be like me and cut it, splice it, and jam in behind the ground wire. It works, but, not very pretty. This should get yours working. Unless you have a 1050 TI, if so, read on. Download driver versions 372.70 and 375.63 and extract them 1:) - Open the INF for 375.63 Extract the drivers you want to modify using something like 7zip. (with 7zip installed, just rightclick and press "Extract to "/File name here"") Inside the extracted driver folder open Display.Driver. The "nv_dispi.inf" in that folder is what we need to modify. If you can't find nv_dispi.inf, look for "nvts.inf", "nv_dispwi.inf", or "nv4_dispi.inf" instead. 2:) - Your GPU string Search (CTRL+F) for your gpu '1050 TI' Copy these lines, should be 3 if I remember correctly 3:) - paste them in the appropriate place on the 372.70 INF file 4:) install 372.70 Drivers and restart 5:) Now, your error 43 should be gone but your GPU will run like dog sh*t. You need to install drivers 375.63 EXPRESS INSTALL ONLY. If done correctly you will not be prompted to restart. Congratulations, you're done. Took me 3 days to figure this out. If an idiot like me can do it, so can you. I will gladly answer any questions
Problem description 1. What's the problem? I have hooked up my eGPU through the ExpressCard Slot. I have installed all drivers. Under Device Manager it shows my eGPU. Sometimes it will show up with an error 12 but most of the time it does not. When I plug in the HDMI port to my TV, my TV acts like to it received a signal and fails displaying no signal. 2. Have you consulted the Troubleshooting FAQ to resolve the issue? I believe I have delved into it thoroughly but nothing has worked. Thank you for getting me this far, I have been at this for days. 3. Have you consulted the Pre-Purchase FAQ --> "2. How can I check if my notebook is compatible with an eGPU?" Yes, I have also seen many videos and posts of people using my exact same laptop with wonderful success. Platform Description Lenovo ThinkPad T420 Windows 7 64bit SP1 8gb Ram XFX Radeon HD 6870 EVGA 400W PSU [+12V Max Current = 30 Amps] PE4C-EC060A V3.0 ( eGPU PCIe x16 interface for ExpressCard) Notes There are two-3 position switches located on the board. I have them set at their default 1 and 1. The legend on the board notes this: SW1 - PERST# Delay - 1 | Disable - 2 | 9.8 seconds - 3 | 14.8 seconds SW2 - CLK Delay - 1 | Disable - 2 | 11.97 seconds - 3 | 16.9 seconds I have tried these in every possible combination. Any help resolving these issues would be greatly appreciated.