machax



Offline



Posts: 2





NewbiePosts: 2 Force your PCIE slots to 2.0 mode on non-EFI cards! (2010 Mac Pro) « on: November 30, 2016, 07:14:01 AM »



Hello everyone.



You might be interested to know that it is indeed possible to set PCIE 2.0 on ALL slots in your mac pro regardless of EFI drivers. I've only tested this on the mac pro, but it may work on other systems with different PCI memory offsets. This guide is currently only for the bottom two x16 slots.



This is done by directly modifying the PCI root device's memory space before boot. This sounds a LOT more complicated than it really is.



Steps:



1. Install refit

2. Boot into efi shell

3. Run the following commands:



Offsets:

Bottom x16 slot: 00000300c0

Top x16 slot: 00000700c0



For each offset, run:



Code: mm <offset> PCI



This will bring up a prompt similar to this one:

PCI 0x0000000000300c0 : 0x01 >



The 0x01 at the end indicates the target link speed, valid values are 0x01 for pcie 1.1, and 0x02 for pcie 2.0.



Enter '02' then press enter to set pcie 2.0 for that slot.



Exit mm by entering 'q' then enter.



4. Now get back to refit using the following commands:



Code: fs0:

cd efi

cd refit

refit.efi



5. Select your OS and enjoy that sweet PCIE 2.0



Note: This is easily scriptable. I will write a boot script based off this for refit/refind soon that will set pcie 2.0 for all slots on the 2010 mac pro.



EDIT:



Here's the script I made. Install refit and put this script at the root of your EFI volume as "startup.nsh".



Code: for %i in 00000300c0 00000700c0

mm %i 1 ;PCI :2

endfor

fs0:\efi\refit\refit.efi



Now when you select efi shell in refit, your x16 slots will get set to 2.0, then you'll drop back into refit. If you don't do anything, it will try to boot into the efi shell after the timeout, basically looping. You'll have to either edit the last line in the script to point to your chosen OS, or just deal with manually selecting your OS every boot.



Edit 2: Looks like waking the system from sleep resets the registers, I'm working on something to remedy that issue soon. **** YOU DO THIS AT YOUR OWN RISK, I TAKE NO RESPONSIBILITY FOR DAMAGES CAUSED BY FOLLOWING THIS GUIDE****Hello everyone.You might be interested to know that it is indeed possible to set PCIE 2.0 on ALL slots in your mac pro regardless of EFI drivers. I've only tested this on the mac pro, but it may work on other systems with different PCI memory offsets. This guide is currently only for the bottom two x16 slots.This is done by directly modifying the PCI root device's memory space before boot. This sounds a LOT more complicated than it really is.Steps:1. Install refit2. Boot into efi shell3. Run the following commands:Offsets:Bottom x16 slot: 00000300c0Top x16 slot: 00000700c0For each offset, run:This will bring up a prompt similar to this one:PCI 0x0000000000300c0 : 0x01 >The 0x01 at the end indicates the target link speed, valid values are 0x01 for pcie 1.1, and 0x02 for pcie 2.0.Enter '02' then press enter to set pcie 2.0 for that slot.Exit mm by entering 'q' then enter.4. Now get back to refit using the following commands:5. Select your OS and enjoy that sweet PCIE 2.0Note: This is easily scriptable. I will write a boot script based off this for refit/refind soon that will set pcie 2.0 for all slots on the 2010 mac pro.EDIT:Here's the script I made. Install refit and put this script at the root of your EFI volume as "startup.nsh".Now when you select efi shell in refit, your x16 slots will get set to 2.0, then you'll drop back into refit. If you don't do anything, it will try to boot into the efi shell after the timeout, basically looping. You'll have to either edit the last line in the script to point to your chosen OS, or just deal with manually selecting your OS every boot.Edit 2: Looks like waking the system from sleep resets the registers, I'm working on something to remedy that issue soon. « Last Edit: November 30, 2016, 09:00:12 AM by machax » Logged