SR-IOV supported BIOS

Question about which tools to use, bugs, the best way to implement a function, etc should go here. Don't forget to see if your question is answered in the wiki first! When in doubt post here.
Post Reply
u9012063
Member
Member
Posts: 26
Joined: Mon Jan 23, 2012 5:00 am
Location: Stony Brook University | ITRI

SR-IOV supported BIOS

Post by u9012063 »

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
Post Reply