tianocore / edk2

EDK II
https://github.com/tianocore/tianocore.github.io/wiki/EDK-II
Other
4.54k stars 2.45k forks source link

OVMF 64MMIO / "above 4G decoding" for Tesla pass through #59

Closed ThomasLamprecht closed 8 years ago

ThomasLamprecht commented 8 years ago

Hi,

what is the state when I'd try to "PCI - pass-trough" a powerful graphic card (like the nvidia tesla K80) to qemu with OVMF as UEFI/BIOS?

On a physical machine I may have to enable 64-bit MMIO (or like it's often called "above 4G decoding"), how is that with OVMF, as far as I have seen there is no such option in OVMF also I'm currently not sure what the state in qemu itself is I only found an old mailing post [1] regarding this issue and posted a week ago on there user/discuss list but received sadly no response yet.

So I'm hoping someone could point me in the right direction. If this is the wrong place to ask I'm glad to move the question to an more appropriate one, but I did not found any mailing/discuss list for OVMF.

[1] https://lists.nongnu.org/archive/html/qemu-devel/2010-02/msg01106.html

lersek commented 8 years ago

Hello @GamerSource, this is the right place -- or one right place anyway -- to ask.

QEMU definitely supports 64-bit MMIO for the x86_64 target.

The PCI host bridge / root bridge driver that OVMF uses at the moment lacks support for 64-bit PCI MMIO however. This is a known limitation, and it should be resolved after OVMF is ported to the new, central PCI host bridge / root bridge driver in edk2. (It won't happen automatically with the port, but when the port is complete, it shouldn't take much work on top.)

I started to work on that port recently, but ran into some issues with the central driver that OVMF should use. We've been discussing those topics recently on the mailing list, with @marcel-apf and @niruiyu .

Please refer to these (sub)threads in the list archive:

ThomasLamprecht commented 8 years ago

Hello @lersek thanks for the response, really appreciate it!

Ok cool, good to know, I guessed it had the capabilities but did not found that much info on it and I'm not (yet) that sound on skimming through qemu code to see what's there.

Thanks for the write up and the thread links, I guess I found a new interesting mailing list to subscribe.

As this is then really an "issue" with OVMF I feel that its probably correct to not close this here on github yet, for sake of documenting and helping maybe someone other to find out the cause why it's not working yet, feel free to do otherwise.

Thanks again!

lersek commented 8 years ago

This is a genuine, although likely not too urgent, shortcoming in OVMF, at the moment, so we should certainly keep this item open.

lersek commented 8 years ago

Posted series

http://thread.gmane.org/gmane.comp.bios.edk2.devel/9030

lersek commented 8 years ago

@GamerSource: I CC'd you on the patches and the cover letter (googling a combination of your name and your employer's name, taken from your github profile page, for your email). In case the emails don't reach you for any reason, I'm asking you here too to please test the patches with your hardware. Thanks!

lersek commented 8 years ago

The patch series for this issue is now "wave 2" in a larger work:

http://thread.gmane.org/gmane.comp.bios.edk2.devel/9150

ThomasLamprecht commented 8 years ago

Thanks! I'm following your posts on the edk2 mailing list closely. I'll rebuild and send it out to test, we have the K80 currently not available so I'm dependent of an other tester...

And sorry for not providing my email address, nice detective work, though! :) Thanks for the work!

lersek commented 8 years ago

Fixed by commits 8f35eb92c419..4f5eff819309.

lersek commented 8 years ago

This (closed) item has been manually migrated to https://tianocore.acgmultimedia.com/show_bug.cgi?id=80