[Guide] - How to Bifurcate a PCI-E slot

Thank you :smiley: I’m glad I got this working so far and will look into the BIOS mod more closely as RU shows it’s not a board limitation and proof of concept.

I’m using this card: Pcie 4.0 X16 to M.2 M-key NVMEx4SSD RAID Expansion Card Adapter 4 x 32Gbps | eBay with 4x Samsung PCIe 4.0 (running at 3.0 of course on X99) 512GB NVME drives

How can I change the BIOS to make pciex16 work in x4x4x4x4 mode?

Hi folks!
I finally get this thing to work!
With this bios:

As it turns out the BIOS was good from the start.
Bifurcation was working by default.
The reason it wouldn’t work for me was because I had an M.2 card in the M.2 slot all along.
When I was browsing the motherboard description I noticed that even with a 40 lane cpu the PCI-E 3 slot can’t work in 16x mode. (If the onboard m.2 slot is occupied)
So I removed the ssd from the motherboard M.2 slot and put it into the HYPER V2 card, put the Hyper V2 card to the PCI-E slot and voila!
The system saw all 4 M.2 SSDs at once!
And the resizable bar still work as it should.
So, important notification for those who want to use this bios with 4x M.2 pci-e card:
The bifurcation only work in the PCI-E 3 slot, and with empty onboard M.2 slot.
And no further bios settings needed.
Thank you for the support all of you guys!

I have Asus X99 Deluxe II, 6950x, Asus Hyper M.2 x16 card with 4 different ssd (one system bootable)

Thanks so much everyone for the information here!

@superyin really appreciate your guide to modding the BIOS. The copy of the BIOS you uploaded back in 2023 is no longer available from the link. Can you reupload that please?

If anyone else has a copy of the modded BIOS that would be great too, for the ASROCK Rack D1541 board. Thank you!!

Did you ever find a solution to enable bifurcation on the X99-E WS?

Sorry for exhuming this post. I have an x9dre-ln4f I have been working on enabling bifurcation and this thread has been great.

My bios (latest v3.3) has the IIO bifurcation sections but the settings are statically set to what supermicro deemed they needed, a mixture of x8, x8x8, and x16. When I extract the data and parse with IFR, only the existing options exist, there are no options for the other combinations (i.e. x4x4x4x4)

I have not use RU to change the value yet, the feeling I get from others who have tried similar on different boards is that it didn’t work. I started to go down the path of reading the intel register specifications and came across your thread.

I can use setpci to read the values for pcie_iou_bif_ctrl in the pci config and those values match what i see in the bios and the specification. However, I noticed in the spec at bit 3 there is a ‘bifurcation enable’ bit that needs set to 1 in addition to bits 3:0 to set the channels. I wonder if when people have tested modifying the bios settings in situations like mine where bifurcation is not fully supported in the bios if this bit is not getting set to 1. I also can’t tell if its being set to 1, the spec states it always read 0b - https://www.intel.com/content/dam/www/public/us/en/documents/datasheets/xeon-e5-v2-datasheet-vol-2.pdf pg.235

If I may ask,
Have you ever attempted to write to this register directly?
Do you know how to see what registers/bits the bios is setting based on the selected bios options?

any input welcome!
Thanks,