I'm looking for clarification on what actually needs to happen in order for a device to support PCIe bifurcation. Some forums say it's motherboard dependent, making me think it's not tied to the processor I choose, but all that is in the realm of PC hardware. My application is on an single board computer (SBC). To clarify, my application is splitting the x4 PCIe 2.1 Lanes from a RK3399 into 2 x2 lanes for 2 SATA adapters. As far as I'm aware, bifurcation is what I want, but even that I'm not completely sure of. Sorry if this is too broad, but nowhere online can I find the information I'm looking for.


1 Answer 1


It’s entirely dependent on the root complex and its capabilities. Bifurcation is a fairly recent development only showing up in non-server x86 motherboards about 1-1/2 years ago (e.g., Intel x299 / AMD x399.) Server motherboards have supported it a bit longer using switches.

Not only that, even if the hardware supports it, the BIOS needs to support it, too.

So it’s a question for Rockchip. My guess is the RK3399 does not support it. (Followup: it doesn't.)

That said, if you’re just doing SATA then you don’t really need bifurcation, the PCIe-SATA bridge takes can take care of that (4-port PCIe - SATA adapters are common and cheap.) You would only need to bifurcate if you wanted direct tie to PCIe / NVMe. Or maybe I’m misunderstanding your question?

  • \$\begingroup\$ My understanding is that SBCs boot very differently that a regular PC with a motherboard. No secure boot or anything that really justifies a BIOS considering they have GPIO access and such straight from the OS. I'm just confused where bifurcation even exists, is it within the motherboard? the chipset? I'm looking to use 2 Marvell 88SE9215's in order to get 8 6gb/s SATA ports from 4 lanes of PCIe. Obviously I could just use 1 controller and a SATA expander but my NAS application would be better served by more bandwidth. \$\endgroup\$
    – ccolton
    Jul 23, 2019 at 1:18
  • 2
    \$\begingroup\$ Bifurcation implies being able to arbitrarily allocate lanes to individual endpoints without an additional switch layer. To my knowledge it’s not found yet in SoCs like the Rockchip one you’re considering, only in switches and newer x86 platforms. As for implementing a NAS, if your 4-channel SATA bridge has 4 upstream connections then PCIe won’t be the bottleneck. \$\endgroup\$ Jul 23, 2019 at 5:32
  • \$\begingroup\$ Thank you very much, that helped clarify a bit. My SATA bridge is only 2 lanes max though, so I guess I'm looking for a way to externally turn the 4 lanes from the Rockchip into 2 2 lane endpoints. Would a PCIe switch be what I'm looking for? Or does PCIe switching have to be supported by the root complex in the Rockchip? \$\endgroup\$
    – ccolton
    Jul 23, 2019 at 12:54
  • \$\begingroup\$ The Rockchip has to be able to enumerate the switch and the devices attached to it and build the device tree. \$\endgroup\$ Jul 23, 2019 at 15:42
  • 1
    \$\begingroup\$ Talk to the folks at Pericom (Diodes Inc) about your application. Their switches are more reasonably priced and their support is good. ASMedia also has lower-end switches but I haven’t tried them. \$\endgroup\$ Jul 24, 2019 at 19:03

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.