[gPXE] [PATCH] [pciextra] Restore the PCI COMMAND register after writing to the BARs
Stefan Hajnoczi
stefanha at gmail.com
Wed Feb 10 04:57:52 EST 2010
Hi Kevin,
I think you might have some insight from SeaBIOS into this issue.
Bernhard reports that under KVM PCI device passthrough it is necessary
to save the contents of PCI_COMMAND and restore it after sizing a PCI
BAR. Otherwise PCI config space seems to contain junk after BAR
sizing. gPXE currently has this code change applied, but I don't
think it is the root cause of this issue:
http://git.etherboot.org/?p=gpxe.git;a=blob;f=src/drivers/bus/pciextra.c;h=74c40990efa61f9a5fe222ba243c9cbb552da486;hb=master#l62
Note that gPXE is not disabling memory decode in PCI_COMMAND during
BAR sizing (and Linux doesn't either AFAIK). I'm surprised that
restoring an unchanged PCI_COMMAND would have any effect at all.
When gPXE is built to do Type 1 accesses
(gpxe/src/arch/x86/include/gpxe/pcidirect.h) instead of PCI BIOS then
this issue does not appear.
Any idea what is happening?
Full email thread here:
http://etherboot.org/pipermail/gpxe/2010-January/000287.html
Stefan
More information about the gPXE
mailing list