For a re cap you can head to the previous posts about adding the 950 pro and the resulting investigation into figuring out why the full performance was not realized.
NVMe Performance Capped at PCIe 2.0 Speeds
A Quick Recap
It was found that the DMI link was set to PCIe 2.0 speeds by examining the setup form decoded from the BIOS, The Insyde H2O Ver 5.0 BIOS includes some hidden menu's, the one of interest in this case is "Advanced". The advanced menu includes a section for setting the DMI link speed, by default this is set to 2 which yields PCIe 2.0 speeds.
0x782F5 Setting: DMI Max Link Speed, Variable: 0xC10 {05 91 69 0E 6A 0E 44 07 34 12 10 0C 10 10 00 03 00}
0x78306 Option: Auto, Value: 0x0 {09 07 C3 0B 00 00 00}
0x7830D Option: Gen1, Value: 0x1 {09 07 2F 03 00 00 01}
0x78314 Option: Gen2, Value: 0x2 {09 07 30 03 30 00 02}
0x7831B Option: Gen3, Value: 0x3 {09 07 31 03 00 00 03}
0x78322 End of Options {29 02}
It was confirmed that it was set to Gen2 using a EFI Shell, it just couldn't be changed with the tools at hand.
One of the senior members over at MDL came across this Insyde H2O UEFI Variable Editor and kindly sent me a PM with a link to give this one a try.
Now that looks more promising.
We know the variable that we want to change is 0xC10 and it's value is 02.
Step 1: dump the variables to a file for editing (open a Command Prompt run as Administrator from Windows 10)
H2OUVE.exe -gv vars.txt
Step 2: edit the variable file
Using notepad search for "00000C10: 02" verify that it is located in the setup section.
"Setup"
GUID: A04A27F4-DF00-4D42-B552-39511302113D
Attributes: 0x7
DataSize: 0xFA0
This section is near the end of the extracted variable file.
Edit so that it reads "00000C10: 03" DO NOT CHANGE ANYTHING ELSE you have been warned.
save the file
Step 3: Update the variables
H2OUVE.exe -sv vars.txt
Some warnings will be show that not all variables could be updated (no choice but to ignore them) lucky that the setup variables was not one of them.
Step 4: Dump the variables to confirm that it was updated.
H2OUVE.exe -gv vars2.txt
Check that setup variable C10 is now 03, Reboot and enjoy the full performance of your NVMe drive.
All of the above are performed in an administrative command prompt below.
Before (256GB 950pro)
After (256GB 950pro)
This is a 600MB/s increase over the capped performance for my 256GB 950 Pro and very close to rated 2200MB/s read.
500GB 960 EVO
512GB 960 Pro
Double the read performance which is an awesome result for 960 owners.
512GB 970Evo
This change is permanent across reboots as the variable has been updated in NVRAM.
This change was made on the following model:
System SKU LENOVO_MT_80NV_BU_idea_FM_Lenovo ideapad Y700-15ISK
as displayed by msinfo32.exe
BIOS version was: "CDCN52WW" the bios is Insyde H2O ver 5
Confirmed with CDCN54WW also
Insyde H2OUVE (UEFI Variable Editor) Version 100.00.16.08
Also works for the Y700-17ISK
Finally no more performance CAP! enjoy.