Setup & Software Discussions
How to Enable Hot plug for PCI-E port using hidden settings in BIOS (example for...
 

How to Enable Hot plug for PCI-E port using hidden settings in BIOS (example for Phoenix SecureCore Tiano) and AMI BIOS  

 of  3
  RSS

xRay
 xRay
(@xray)
Active Member
Joined: 3 years ago
 

Sep-27-2018: nando4>> This thread's solution to Nvidia error 43 has been superceded by a simple script. See:


>>> 
[SCRIPT] Nvidia-error43-fixer  <<<

 



And so you have a Geforce video card and drivers requiring a Hot plug from the PCI-E port. Do you see Error 43 from the driver of your external video card (eGPU)? Then welcome to the club.

The above is done over the Phoenix SecureCore Tiano BIOS which is used in the Lenovo Z570 notebook.

Required Tools

 

PREPARATORY PART

A. Search settings:

  1. If you have the firmware (ROM file) of your BIOS, then skip step 1.
    Run the "Universal BIOS Backup ToolKit" and save (click on the Extract button) a dump of our BIOS. This can not be done if you have a ROM (firmware file) file with your BIOS.

     

  2. Open (In the menu, click File -> Open image file ...) your ROM BIOS file in UEFITool.

     

  3. And look (Ctrl + F mode Text) in it the text Advanced. (Figure 1) A search for us reveals that 4 (you can have another number) place with this text is found. (Figure 2)
    Click the mouse to find the line. (Figure 3) And in the end we see that all found references to the searched text are in the PlatformSetupAdvancedDxe.efi module (in your case, the module name may differ).

     

  4. We select the PE32 image section with our PlatformSetupAdvancedDxe.efi module. Press the right mouse button and select "Extract body ...". (Figure 4) We get the file with the extension efi.

     

  5. This file (efi) is specified in the program "Universal IFR Extractor" and press Extract. We got a txt file.

     

  6. Open this file (txt) in Notepad ++ and look for all occurrences of the string "Hot plug" (look for without quotes and without case sensitivity). (Figure 5) Yes, it did not give out a lot of lines, but we need one connected to our PCI-E port. (I changed for one port number 2).
  7. We find such a piece as I identified in Fig. 6. Green, I highlighted what is relevant, and the red address 0x104 (we'll fill it). Here it is we need. We'll see in Fig. 7. Green, I marked what we need (0x1), and what's red is there by default (there is 0x0 ie disabled).
    And so we found at what address the setting is 0x104. Also have found that there it is necessary to register that it was included.

     

B. USB flash drive:

  1. We take a flash drive, the size is not important

  2. Format it into FAT32

  3. Create the directory structure EFI \ Boot

  4. Take the BOOTX64.EFI file (from EFI Shell) and put it in the Boot folder

 

Camera, motor! Have driven!


CHANGE THE BIOS SETTINGS

C. Modification:

  1. Overloaded in BIOS (enable Legacy and disable Secure Boot).

     

  2. We save and boot through our USB flash drive.

     

  3. After downloading, you should see the yellow text on the black screen. This means you are ready to modify the BIOS setup.

     

  4. Enter setup_var 0x104 (this is the parameter we were looking for in A.7) and click Enter and see that it contains 0.

     

  5. Enter setup_var 0x104 0x1 and press Enter. Reboot.

     

    If all of the OKs (ie, a write to the BIOS settings memory is enabled), then the setting is saved. And it will not be reset if you do not update the BIOS firmware and do not discard the BIOS settings before the default settings.

     

  6. Let's check what happened. Launch HWiNFO64 and see the pic. 8. If the option Hot plug has become active for the port we need, it means the quest is over.

     

    The described actions can be applied not only for the Hot plug option.

     

    When preparing, I used these two articles:  https://habrahabr.ru/post/250611 and https://habrahabr.ru/post/182676

bios 1 num1
bios 2 num2

bios 3 num3
bios 4 num4

bios 5 num5
bios 6 num6

bios 7 num7

bios 8 num8

 

upd:

FOR AMI BIOS

For AMI BIOS needs to extract the module with the settings in a slightly different way
UEFITool.

The instructions from A.3 to A.5 will be:
You need to find a section with the name Setup and extract it by right-clicking on the File (rather than the PE32 image section) and selecting the menu item "Extract as is". See Attached a screenshot.

Get the file with the extension ffs it and open it to Universal IFR Extractor. And then we move on to point A.6.

2011 15" Lenovo Z570 + GTX [email protected] (EXP GDC 8.4x) + Win10 // driver 375.63 + mPCIe hotplug enabled


Nader Hany, 3RYL, OnABudget and 6 people liked
ReplyQuote
wimpzilla
(@wimpzilla)
Honorable Member
Joined: 3 years ago
 

Nice guide, thanks you mate. I saw the same work on UEFI tables on Dell laptops, if i get it well, you could edit a lot of bios settings like this ofter the boot? Do you confirm it? Like the overclocking or the turbo current/time lock? Evrithing without really editin/flashing the bios?

Did this work on non UEFI bios bootmaster record, like on normal MBR prtition?

Maybe this time i should spend time on troubleshooting the whole bios editing using UEFI tables like this. It could remove me the pain to edit the ME or/an unsolder the bios chip.

2012 13-inch Dell Latitude E6320 + R9 [email protected] (EXP GDC 8.4) + Win10
E=Mc²


ReplyQuote
xRay
 xRay
(@xray)
Active Member
Joined: 3 years ago
 

@wimpzilla

I saw the same work on UEFI tables on Dell laptops

Post link please

if i get it well, you could edit a lot of bios settings like this ofter the boot? Do you confirm it? Like the overclocking or the turbo current/time lock? Evrithing without really editin/flashing the bios?

Yes it is. We assign the address of the desired setting and change it. The most important thing is that there would be write access to the BIOS settings memory. If there is no access to write, then only in the BIOS patch.

Did this work on non UEFI bios bootmaster record, like on normal MBR prtition?

This method is suitable for UEFI bios because of the utilities (for UEFI bios) used.

2011 15" Lenovo Z570 + GTX [email protected] (EXP GDC 8.4x) + Win10 // driver 375.63 + mPCIe hotplug enabled


ReplyQuote
wimpzilla
(@wimpzilla)
Honorable Member
Joined: 3 years ago
 
Posted by: xRay

This method is suitable for UEFI bios because of the utilities (for UEFI bios) used.

   

I mean if the bios is UEFI but the actual windows install is on normal MBR, i was too lazy today to build again my usb stick used for installing win 10. Even it should be UEFI boot ready, no way the laptop get it with UEFI mode only enable. So i went on a normal MBR install i think.

You can check this link, i found a couple of these maybe using this trick, i need to find them back: Here

I usually found all these tables looking for intel's datasheet and user manuals. Find the one for your chipset and ME firmware and you will find all the tables with register.

2012 13-inch Dell Latitude E6320 + R9 [email protected] (EXP GDC 8.4) + Win10
E=Mc²


ReplyQuote
survfate
(@survfate)
Eminent Member
Joined: 3 years ago
 

Hmm, just curious did anyone with AMI Bios actually when through with the setup_var step? I ask this because I tried to help a Dell user back then using this method since Dell mess with the original AMI Bios too much to unlock it by manually moding the bios and reflash. Insyde bioses work fine with setup_var method though.

2012 15" Asus K55VJ GT635M i5-3210M + [email protected] (EXP GDC 8.4d) + Win10 // Hot-Plug BIOS mod


ReplyQuote
nando4
(@nando4)
Noble Member Admin
Joined: 3 years ago
 
Posted by: survfate

 

Hmm, just curious did anyone with AMI Bios actually when through with the setup_var step? I ask this because I tried to help a Dell user back then using this method since Dell mess with the original AMI Bios too much to unlock it by manually moding the bios and reflash. Insyde bioses work fine with setup_var method though.

   

Dell Latitudes/Precisions with AMI BIOS allow setup_var UEFI variable changes.  A collection of 2nd-4th Gen Dell Latitude and Precision IFR reference files containing the UEFI variables is available at: https://egpu.io/nando4-shared/Dell_IFR/

eGPU Setup 1.35    •    eGPU Port Bandwidth Reference Table

15" Dell Precision 7510 (Q M1000M) (6th,4C,H) + GTX 1080 Ti @ 32Gbps-M2 (ADT-Link R43SG) + macOS 10.13.6 & Win10


ReplyQuote
Ajayajayaj
(@ajayajayaj)
Trusted Member
Joined: 3 years ago
 

I did it different for the AMI Bios. I just used a program called AMIBCP, which lets you edit the variables like hotplug manually.

2011 15" Asus U57A + GTX1050@4Gbps-mPCIe2 (EXP GDC) + Win10 (no guide)


ReplyQuote
xRay
 xRay
(@xray)
Active Member
Joined: 3 years ago

ReplyQuote
Ajayajayaj
(@ajayajayaj)
Trusted Member
Joined: 3 years ago
 
Posted by: xRay

 

@Ajayajayaj

What version AMIBCP? For Windows or for DOS?

   

For Windows, you can edit bios settings directly in there, then save the file and flash it with either AFUWINGUI, or FPT (Intel Flash Programming Tool) with "fptw64 -f filename.rom -BIOS". You can read the bios with either AFUWINGUI or FPT too, and use that file in AMIBCP to set the options.

Just MAKE SURE not to have AFUWIN and FPT open at the same time. This is probably the reason I bricked my bios and had to reprogram it manually with a physical programmer.

2011 15" Asus U57A + GTX1050@4Gbps-mPCIe2 (EXP GDC) + Win10 (no guide)


ReplyQuote
wimpzilla
(@wimpzilla)
Honorable Member
Joined: 3 years ago
 

I tried the guide, it worked fine with the tool you linked, thanks you. Now i do not want edit the pci-e hotplug but the TDP Turbo lock.

I got only a small issue, some variables have the same hex value. Like my TDP Turbo is 0x40, i have another setting with the same 0x40 hex variable value.

So i have the same hex value for different variables settings in my IFR.txt, when lunch the UEFI tool to edit the values, if i check if Turbo is enable so 0x1, the reported value for the Turbo is 0x0 disable when i read it.

So i'm not sure i'm looking for the right setting to edit. Did you have the same problem in your case? It seems the variables i get back in the yellow form are from another setup config.

Also it throw me an error like "prefix" is not set and another that GUID is not recognized.

2012 13-inch Dell Latitude E6320 + R9 [email protected] (EXP GDC 8.4) + Win10
E=Mc²


ReplyQuote
Ajayajayaj
(@ajayajayaj)
Trusted Member
Joined: 3 years ago
 

Are you using AMI?

2011 15" Asus U57A + GTX1050@4Gbps-mPCIe2 (EXP GDC) + Win10 (no guide)


ReplyQuote
wimpzilla
(@wimpzilla)
Honorable Member
Joined: 3 years ago
 

Dunno, i think the Thinkpad T530i have a phoenix bios. I followed the guide procedure, mixed with the link i posted previously, to find the cpu power settings.

2012 13-inch Dell Latitude E6320 + R9 [email protected] (EXP GDC 8.4) + Win10
E=Mc²


ReplyQuote
Ajayajayaj
(@ajayajayaj)
Trusted Member
Joined: 3 years ago
 

Oh ok, by ami, I mean an ami Bios, which you don't have. I have Ami and know a slightly easier way than this for it.

2011 15" Asus U57A + GTX1050@4Gbps-mPCIe2 (EXP GDC) + Win10 (no guide)


ReplyQuote
wimpzilla
(@wimpzilla)
Honorable Member
Joined: 3 years ago
 

Yes thx, i understand what you did, cleaver, but i think i can't flash my full bios back lie you did, descriptor is locked and the flash too, i think.

2012 13-inch Dell Latitude E6320 + R9 [email protected] (EXP GDC 8.4) + Win10
E=Mc²


ReplyQuote
xRay
 xRay
(@xray)
Active Member
Joined: 3 years ago

ReplyQuote
wimpzilla
(@wimpzilla)
Honorable Member
Joined: 3 years ago
 

When i search for TDP, i found the hit only in one PE32 image and group. It contain also all the other stuff like the pci-e config, hotplug. But not sure the values i read in the .txt file are the real one under UEFI shell. It could be my bios is somehow locked on nvram edit.

IFR;txt

 

2012 13-inch Dell Latitude E6320 + R9 [email protected] (EXP GDC 8.4) + Win10
E=Mc²


ReplyQuote
(@anno2070)
New Member
Joined: 3 years ago
 

I have followed your instructions and successfully enable hotplug.

My laptop is Sony SVE14135CXB with Insyde BIOS

Your EFI Shell didn't work. It only showed black screen. So I used another EFI Shell from  https://www.bios-mods.com/forum/Thread-READ-FIRST-Access-Advanced-settings-through-EFI-shell?page=17

Pending: Add my system information and expected eGPU configuration to my signature to give context to my posts


xRay and itsage liked
ReplyQuote
nando4
(@nando4)
Noble Member Admin
Joined: 3 years ago
 

@xRay, just advising your method to switch on UEFI PCIE Port hotplug variables in the first post worked perfectly for a Dell Inspiron 5559 and a Lenovo G480. Thank you for posting your easy to follow guide to do this 🙂

eGPU Setup 1.35    •    eGPU Port Bandwidth Reference Table

15" Dell Precision 7510 (Q M1000M) (6th,4C,H) + GTX 1080 Ti @ 32Gbps-M2 (ADT-Link R43SG) + macOS 10.13.6 & Win10


ReplyQuote
WHH1314
(@whh1314)
New Member
Joined: 3 years ago
 

I got this error

2017 05 31 20 38 01 8670

My laptop is Lenovo Y50-70 touch Bios is LENOVO-9ECN43WW(V3.03) 

I'm trying to get my laptop work with Nvidia GeForce GTX 1050 Ti 4GB 

Please Help!

Pending: Add my system information and expected eGPU configuration to my signature to give context to my posts


Teddy liked
ReplyQuote
itsage
(@itsage)
Famed Member Admin
Joined: 3 years ago
 
Posted by: Sagamg

Could someone do a tutorial using AMIBCP 4.53.0050

What should edit?

Captura de Tela (19)

 

Best ultrabooks for eGPU use | eGPU enclosure buying guide


ReplyQuote
Ajayajayaj
(@ajayajayaj)
Trusted Member
Joined: 3 years ago
 
Posted by: itsage
Posted by: Sagamg

Could someone do a tutorial using AMIBCP 4.53.0050

What should edit?

Captura de Tela (19)

 

Check the folder under main, and enable the settings called hotplug below the PCIe ports.

2011 15" Asus U57A + GTX1050@4Gbps-mPCIe2 (EXP GDC) + Win10 (no guide)


ReplyQuote
servili007
(@servili007)
New Member
Joined: 2 years ago
 

Tried this on a Lenovo Z580 with no success. UEFI setting changes stuck without issue, but every time I checked within HWinfo, it indicated that hotplug was still disabled.

Pending: Add my system information and expected eGPU configuration to my signature to give context to my posts


ReplyQuote
RocharMoorhis
(@rocharmoorhis)
New Member
Joined: 2 years ago
 

Hey guys, so I tried the hot plug solution by extracting my bios, finding the text advanced and using the uefi converter to find my bios settings. I used the efi shell to change my setting from 0x0 to 0x1 (I had to write 0x10 because when I wrote 0x1, it set the value to 0x01). When windows opened I used HWinfo64 to see that the pcie bus I chose had hot plug enabled.

My problem is that whenever I restart my computer it disables hot plug again. When I use the efi shell, I can still see that the value is set to 0x1, but HWinfo64 detects that hot plug is disabled nevertheless. Has any of you guys dealt with an issue like this, and what would you recommend?

Pending: Add my system information and expected eGPU configuration to my signature to give context to my posts


ReplyQuote
RocharMoorhis
(@rocharmoorhis)
New Member
Joined: 2 years ago
 

Hey guys, so I tried the hot plug solution by extracting my bios, finding the text advanced and using the uefi converter to find my bios settings. I used the efi shell to change my setting from 0x0 to 0x1 (I had to write 0x10 because when I wrote 0x1, it set the value to 0x01). When windows opened I used HWinfo64 to see that the pcie bus I chose had hot plug enabled.

My problem is that whenever I restart my computer it disables hot plug again. When I use the efi shell, I can still see that the value is set to 0x1, but HWinfo64 detects that hot plug is disabled nevertheless. Has any of you guys dealt with an issue like this, and what would you recommend? I've read somewhere that it could be caused by a dead CMOS battery, but I wanted to ask anyways.

I'm trying to connect a 6G GTX 1060 using the EXP GDC through a mini PCIE port if that helps.

Pending: Add my system information and expected eGPU configuration to my signature to give context to my posts


ReplyQuote
IgorGIV
(@igorgiv)
Trusted Member
Joined: 3 years ago
 

You don't need to enable hot plug for GTX1060 6G. It will work perfectly just after doing this instruction.

If you never ask, then you will never learn


ReplyQuote
smartW
(@smartw)
New Member
Joined: 2 years ago
 

@xRay My laptop is Lenovo Y570 ,the BIOS is InsydeH2O Rev3.5 , that BIOS how to modify?

Pending: Add my system information and expected eGPU configuration to my signature to give context to my posts


ReplyQuote
fndpena
(@fndpena)
Active Member
Joined: 2 years ago
 

 Hi everyone, I'm trying to do this on a Dell Inspiron 7559 and I already found the variable that I want to change.

I've formatted a flash drive using rufus and put the bootx64.efi inside EFI\Boot.

So I rebooted my laptop and pressed F12 to choose USB (UEFI - OS) under UEFI boot options. Then I got a screen to type the command (but no yellow text as mentioned in the tutorial).

Then I typed setup_var 0x73f and I got an error. See the attached photo. Anybody knows what I'm doing wrong? I'm new on this stuff... Maybe I'm using the wrong bootx64.efi file?

IMG 20170717 021316

Pending: Add my system information and expected eGPU configuration to my signature to give context to my posts


ReplyQuote
nando4
(@nando4)
Noble Member Admin
Joined: 3 years ago

ReplyQuote
fndpena
(@fndpena)
Active Member
Joined: 2 years ago
 
Posted by: nando4

@fndpena, please try again using the older EFI Shell

EFI Shell (there is http://brains.by/posts/bootx64.7z   &&  older version )

Well, I feel I'm getting very close to do this, but still not working the way it should. Now (with the older version) is booting on a difference interface with yellow text. 

I try to change the variable to 0x10 and it looks like is working but I can only type one command, the shell doesn't let me type anything else and I have to Ctrl+alt+del to reboot (see attachment). But then I boot in Windows and nothing is changed. I check HWiNFO and the hot plug is still disabled.

EDIT: At least this time the shell finds the variable when I type "setup_var 0x73f" and it shows me the current value (0x0). When I reboot again in efi shell, the value is back to 0x0 even after I have changed to 0x1. I guess this is not changing at all.

I should mention that "Universal BIOS Backup Toolkit" shows my BIOS type as: AMI Bios / ACPI 2.0

Maybe I'm still not using the right EFI Shell?

grub

Pending: Add my system information and expected eGPU configuration to my signature to give context to my posts


ReplyQuote
franm
(@franm)
Active Member
Joined: 2 years ago
 

Awesome tutorial!

I can't access the EFI shell, I tried all the /EFI/Boot/BOOTX64.EFI versions here on this thread, but when I boot from my USB pen-drive it says to press any key to reboot and then it starts loading Windows (after pressing a key, without rebooting).

I can't disable "Legacy Support" or else it won't boot from USB (BIOS won't even detect it), and my Insyde BIOS doesn't have "Secure Boot" option, so can't change that either.

I can boot into FreeDos by using Rufus and a pen-drive, is there a way to enter to the EFI shell from there? Any ideas?

Thanks.

 

 

Pending: Add my system information and expected eGPU configuration to my signature to give context to my posts


ReplyQuote
OnABudget
(@onabudget)
Active Member
Joined: 2 years ago
 

Can I use an external display after completion? Assuming the completion is a success.

Pending: Add my system information and expected eGPU configuration to my signature to give context to my posts


ReplyQuote
Ajayajayaj
(@ajayajayaj)
Trusted Member
Joined: 3 years ago
 
Posted by: OnABudget

Can I use an external display after completion? Assuming the completion is a success.

Yes

2011 15" Asus U57A + GTX1050@4Gbps-mPCIe2 (EXP GDC) + Win10 (no guide)


ReplyQuote
maxwell87
(@maxwell87)
Eminent Member
Joined: 2 years ago
 

When I boot into the shell it shows me the var and setting, but it gives me an offset error. Tried the old shell, no difference...Anyone else with this problem? What does the offset mean?

2015 15" Clevo N150RD + [email protected] (EXP GDC 9.0b) + Win10


ReplyQuote
maxwell87
(@maxwell87)
Eminent Member
Joined: 2 years ago
 
Posted by: franm

Awesome tutorial!

I can't access the EFI shell, I tried all the /EFI/Boot/BOOTX64.EFI versions here on this thread, but when I boot from my USB pen-drive it says to press any key to reboot and then it starts loading Windows (after pressing a key, without rebooting).

I can't disable "Legacy Support" or else it won't boot from USB (BIOS won't even detect it), and my Insyde BIOS doesn't have "Secure Boot" option, so can't change that either.

I can boot into FreeDos by using Rufus and a pen-drive, is there a way to enter to the EFI shell from there? Any ideas?

Thanks.

 

 

I had the same problem. Does your BIOS give you an option "launch efi shell from filesystem device"? If so: format your USB to FAT32 and copy the bootx64.efi onto it (with no folders!). Rename it to shellx64.efi, do the BIOS option -> launch efi shell from filesystem device 

2015 15" Clevo N150RD + [email protected] (EXP GDC 9.0b) + Win10


ReplyQuote
OnABudget
(@onabudget)
Active Member
Joined: 2 years ago
 

HELP 

"Operating System Not Found"

>insydeh20 Bios

>GTX 1050 Ti

>Sony Vaio svf15n17cxb

>Windows 8.1

PART A COMPLETED

I know which address to change for my port hot plug setting

PART B COMPLETED

>USB was formated to FAT32 - (quick format)

>Directory in usb created -> EFI/Boot with file bootx64.efi in Boot folder

PART C Error

>Went into bios disabled secure boot and enabled legacy instead of UEFI

>Set boot priority with external device at top (Only usb is plugged in no other external device)

>enabled boot external device

>save and exit

>rebooted

OS not found

Tutorial is great too easy to follow.

Update: I format my USB drive using Rufus and including Ms-Dos. I changed dir to efi\boot then checked dir to see if file bootx64.Efi was there and it was but I'm not sure how to actually boot it any advice?

Pending: Add my system information and expected eGPU configuration to my signature to give context to my posts


ReplyQuote
franm
(@franm)
Active Member
Joined: 2 years ago
 
Posted by: maxwell87
Posted by: franm

Awesome tutorial!

I can't access the EFI shell, I tried all the /EFI/Boot/BOOTX64.EFI versions here on this thread, but when I boot from my USB pen-drive it says to press any key to reboot and then it starts loading Windows (after pressing a key, without rebooting).

I can't disable "Legacy Support" or else it won't boot from USB (BIOS won't even detect it), and my Insyde BIOS doesn't have "Secure Boot" option, so can't change that either.

I can boot into FreeDos by using Rufus and a pen-drive, is there a way to enter to the EFI shell from there? Any ideas?

Thanks.

 

 

I had the same problem. Does your BIOS give you an option "launch efi shell from filesystem device"? If so: format your USB to FAT32 and copy the bootx64.efi onto it (with no folders!). Rename it to shellx64.efi, do the BIOS option -> launch efi shell from filesystem device 

Nope, I don't have that option in my BIOS. Can't enable/disable Secure Boot either, option is not present.

See pictures below:

IMG 28072017 140542
IMG 28072017 140537
IMG 28072017 140530

Pending: Add my system information and expected eGPU configuration to my signature to give context to my posts


ReplyQuote
 of  3