[Guide] Adding Bifurcation Support to ASUS X79 UEFI BIOS

@JackSted
Actually i was changing all ports to bifurcation to see, which IOU it is :smiley: Maybe this could be as mistake as well…
Anyway, i will give it a try and let you know what configuration was working :slight_smile:
Thanks a lot so far :slight_smile:

@jacksted
So I just tried to setup my bios correctly without changing the bios. I wasn’t able to set the first PCIe Lane to 4x4x4x4 nor 8x8. It just nothing happened after reboot.

I change my hyper card from lane 1 to lane 3 (changing hypercard with my graphic card), then I set lane 3 to 8x8 and hwinfo just shows me 3a and 3c.
On 3c I got my m2 bootable drive which is placed on the first slot of the hypercard (looking from top to bottom).
But on 3a I just got nothing. My second m2 is placed in the second slot of my hypercard.
As soon as I set the pci lane 3 to 4x4x4x4 he just won’t boot windows anymore, just return to my bios.

Any idea what could be wrong?

20190809_204702.jpg

20190809_200946.jpg

@3dsmaxer30
The first detected M.2 slot should be the bottom one 3a and the last one detected should be the top one 3d. You’re findings are strange the 3c should be 3d.

Try this please:
1. Put the boot NVME in the bottom NVME (slot labled #4)
2. Disable all bifurcation except for PCIe slot 3 IOU3 on x4x4x4x4
3. Move Asus Hyper M.2 x16 Card to PCIe slot 3 (from top)
4. Put the GPU in the top PCIe slot.

What happens, do all 4 NVME drives show up? Post HWinfo screenshot plz.

@3dsmaxer30
@JackSted
Just for additional information: This is how the Root Port/Slot Layout of my Z9PED8-WS is presented by HW Info.
The last three slots away from cpu direction are those connected to the second cpu (CPU#1) and are directly rooted to one of the latter’s three root Ports.
The aren’t switched so they can be bitfurcated without risk, wich is the option that the vanilla setup already supports.

Screenshot_HWInfo_RootPorts-Z9PED8-WS_1_11aug19.png

This is how the M.2 SSDs on the UltraQuad Card are rooted in the system.

Screenshot_HWInfo_RootPorts-Z9PED8-WS_Ultra-Quad-Card_11aug19.png

@JackSted
@3dsmaxer30

What is displyed as IOH0 in Bios Setup are the Ports from CPU#0 while IOH1 are those from CPU#1.

IOU1 from IOH1 is slot 6 on MB (6th from CPU): ×8 electrically.
IOU2 from IOH1 is slot 5 on MB (5th from CPU): ×16
IOU3 from IOH1 is slot 7 on MB (7th from CPU): ×16

IOU1 (PCIe×8) from IOH0 is located to slots 2 and 4 on MB (both as Root Port1 in HWInfo). It/these cannot be bitfurcated.
IOU2 and IOU3 (PCIe×16 each) from IOH0 are located to Root Port 2a and 3a.
I don’t know which is which in Bios Setup, but in HWInfo Slot1 is rooted to what is labelled Root Port 2a.

If you try to bitfurcate slot 3 on MB, you are using a slot which is auto-switched from ×16 to ×8 when slot 4 is occupied.
This means you could make use of all 16 lanes of slot 3, but in any case it’s a switched slot.
No idea how that could affect several M.2 devices connected to that slot via a Quad M.4 Card.

Sorry if this information might be reduntant but I got the impression that it might not be clear which Root Port is located to which board slot.

@paranoid_android Thanks for the extra info, and for showing us bifurcation can fully work on the Z9PE-D8-WS.
@3dsmaxer30
I can confirm PCIe routing/switching from the manual, sorry I missed it:



So for bifurcating for Asus Hyper M.2 x16 Card on Z9PE-D8-WS
1. Set bifurcation for PCIe slot 5 to x4x4x4x4 (Advanced \ Chipset Configuration \ CPU IIO Bridge Configuration \ IOH1 \ IOU3)
2. Move Asus Hyper M.2 x16 Card to PCIe slot 5 (from top)
3. Post HWinfo screenshot here for what is probably called PCIbus 128 please :).

@JackSted
@paranoid_android
Thanks a lot for your help and infos so far. But currently I ran into another problem. As far as I move my m2 hyper card to pci slot 5,6 or 7, it doesn’t show up as boot drive in my bios anymore.

Oh…
This is interesting for me too, as I want to use Nvme boot on my Z9 machine later.
By the way, how did you incorporate nvme boot option in your z9 bios? I wasn’t able to accomplish this yet as there is a write protection and the Z9 doesn’t offer “Bios Flashback” like the X79 Boards.

@3dsmaxer30
What NVME boot method are you using USB (clover or duet) method or UEFI BIOS mod?
If you used UEFI BIOS mod, can you still set Windows Boot Manager as startup in UEFI BIOS.
Have you tried windows startup repair?

@paranoid_android
You can order an ch341a programmer stick on ebay, put your bios into it and "upload" your new bios directly to the chip. So you got no problems with protection.
If your gonna order an programmer stick, just order a bios chip as well, so you can use your own bios chip as an backup. Thats what I did.
I didn’t found any other way, to get a own bios mod to this chip.

@JackSted
I’m using the UEFI Bios mod. I didn’t tried the windows startup repair so far. I will give it a try tonight.
Is it possible, that the nvme mod on the bios just works with CPU0, so just with pci lane 1 to 3/4 ?
Isn’t it possible to get bifurcation for these lanes?


I can’t see any boot manager, when my hyper card is in pci lane 5 to 7.

So maybe the best and easiest solution would be, to have one m2 card in slot #1 as boot device and the hypercard with all other m2 cards in slot 5 to 7 with bifurcation?

@3dsmaxer30
Since PCIe slot 1 and 3 are shared x16, bifurcation on your motherboard bifurcation probably won’t work there, you will need to use slot 5 or 7. You could try the DUET or Clover boot methods to see if those work. It is possible your current or all boot method’s can’t find the NVME drives on the other CPU. Alternatively if all else fails you could buy a decent 250GB SATA SSD just for windows, you will not notice a speed difference if your software, project data and swap file are all on NVME as I mentioned before, especialy if all 3 are on different NVME drives.

@paranoid_android - without USB Flashback best and safest method is via FPT BIOS region flash (Highly suggested over anything AFU) - otherwise get flash programmer as mentioned then you can do whatever you want (ie unlock FD, and then FPT flash entire BIOS anytime without hassle)
If you do get into doing this, dump your BIOS region, mod that, then flash it back, don’t flash stock BIOS anything with FPT or you can loose serial, UUID and LAN MAC depending on how you flash.
If you need help doing this let me know, I will show you the way.

@3dsmaxer30 Another alternative would be to move the boot NVME drive to one of these https://www.ebay.nl/itm/1-NVMe-M-2-NGFF-…rEAAOSw4ThdED63


Thanks, that is exactly what @Lost_N_BIOS advised also and is what I was planning to do.
I forgot to pay attention to this topic over the last weeks.
I was just wondering if you had mamaged to modify the Bios other than via programmer.


The vanilla bios does support setting bifurcation for these slots or the corresponding root ports (IOU2 and 3).
Slot 1 and 3 are fully ×16 each. But can be switched/shared if slots 2 and(or?) 4 are used.
Could be that I made this unclear before, or more I didn’t think my statement over before posting.
So I am not sure if slots 1 and 3 behave like direct and unswitched ports if slots 2 and 4 are never used.
The presence of the bitfurcation option for Root ports IOU2 & 3 suggests that it could be as I mentioned; but I am not sure if it would work (should better try it out myself if I find the time?).

FPT dump/edit/flash should work, programmer shouldn’t be required.

@paranoid_android @JackSted @Lost_N_BIOS

Hi guys, sorry for the delay.
I was pretty bussy with some jobs and had no time to try some stuff.
What I’ve tried now, moving the bootable drive from the Asus Hypercard to a nother card to fit in the first slot - PCIE#1
Than I moved the Asus Hypercard to PCIE#5 and PCIE#7, but I wasn’t able to see any M2 inserted. I switched on Bifurcation für IOU2 and IOU3, but I think, the nvme driver is just placed for CPU0 and not for CPU1.
Any Idea what I could try next?

So this is probably the reason, why the bootabledrive isn’t even work in PCIE#5 or PCIE#7 at all, because he doesn’t know how to handle this m2 card - because they just don’t know each other…

hwinfo.jpg

CPU- or CPU1?? This board only has one CPU, that’s confusing, not sure what you mean there.
I can’t comment much on this, I have never used these cards, NVME, or bifurcation. But, I do doubt NVME module itself cares or is only coded to be able to use certain slots or CPU’s etc, this kind of thing is all BIOS controlled.

@Lost_N_BIOS , the attached HWInfo screenshot looks like it’s from a dual-socket system. PCI-buses #0,#127#128… and not visible in the image ist PCI-bus #255.
My X79 board appears in HWInfo with buses #0 and #255 only, the Z9 like mentioned before with four buses.