How to Enable Hot plug for PCI-E port using hidden settings in BIOS (example for...
 
Notifications
Clear all

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

 of  10
  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 Ideapad Z570 [2nd,2C,M] + GTX 1050 Ti @ 4Gbps-mPCIe2 (EXP GDC 8.4) + Win10 [build link]  

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²

 
2012 15" Lenovo Thinkpad T530 [2nd,4C,Q] + R9 270X @ 4Gbps-mPCIe2 (EXP GDC 8.4) + Win10 [build link]  


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 Ideapad Z570 [2nd,2C,M] + GTX 1050 Ti @ 4Gbps-mPCIe2 (EXP GDC 8.4) + Win10 [build link]  

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²

 
2012 15" Lenovo Thinkpad T530 [2nd,4C,Q] + R9 270X @ 4Gbps-mPCIe2 (EXP GDC 8.4) + Win10 [build link]  


ReplyQuote
survfate
(@survfate)
Eminent Member
Joined: 4 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) [3rd,2C,M] + GTX 1050 Ti @ 4Gbps-mPCIe2 (EXP GDC 8.4) + Win10 [build link]  

ReplyQuote
nando4
(@nando4)
Noble Member Admin
Joined: 4 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

 
2015 15" Dell Precision 7510 (Q M1000M) [6th,4C,H] + GTX 1080 Ti @32Gbps-M2 (ADT-Link R43SG) + Win10 1803 [build link]  


ReplyQuote
Ajayajayaj
(@ajayajayaj)
Estimable 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
 

@Ajayajayaj

What version AMIBCP? For Windows or for DOS?

2011 15" Lenovo Ideapad Z570 [2nd,2C,M] + GTX 1050 Ti @ 4Gbps-mPCIe2 (EXP GDC 8.4) + Win10 [build link]  

ReplyQuote
Ajayajayaj
(@ajayajayaj)
Estimable 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²

 
2012 15" Lenovo Thinkpad T530 [2nd,4C,Q] + R9 270X @ 4Gbps-mPCIe2 (EXP GDC 8.4) + Win10 [build link]  


ReplyQuote
 of  10