SR-IOV supported BIOS
Posted: Sun Sep 30, 2012 3:07 pm
Hi Folks,
I have a question about BIOS (sorry I don't know whether this topic is appropriate to post here or not).
My question is when applying an SR-IOV device to a system, why do we need BIOS's support? What does the BIOS being modified compared with the original one in order to support SR-IOV devices?
My understanding is that BIOS is doing device probing before the OS boots up. When detecting a PCIe device, BIOS allocates the physical address to the device according to the device's BAR (Base Address Register) size. Without have an SR-IOV device, the total address range of the PCIe devices is pretty much predictable (I guess?). BIOS could make an assumption that ALL pci devices occupy addresses range between 3G-4G. However, in the case of SR-IOV, BIOS needs to be more flexible: an SR-IOV device (such as Intel's 82599) is able to create up to 128 VFs, each requires its own BAR0 csr configuration space. So the address allocation mechanism in BIOS needs to be modified to handle this situation. (This is just my speculation...)
Regards,
William Tu
I have a question about BIOS (sorry I don't know whether this topic is appropriate to post here or not).
My question is when applying an SR-IOV device to a system, why do we need BIOS's support? What does the BIOS being modified compared with the original one in order to support SR-IOV devices?
My understanding is that BIOS is doing device probing before the OS boots up. When detecting a PCIe device, BIOS allocates the physical address to the device according to the device's BAR (Base Address Register) size. Without have an SR-IOV device, the total address range of the PCIe devices is pretty much predictable (I guess?). BIOS could make an assumption that ALL pci devices occupy addresses range between 3G-4G. However, in the case of SR-IOV, BIOS needs to be more flexible: an SR-IOV device (such as Intel's 82599) is able to create up to 128 VFs, each requires its own BAR0 csr configuration space. So the address allocation mechanism in BIOS needs to be modified to handle this situation. (This is just my speculation...)
Regards,
William Tu