The current vgabios images shipped with qemu violate the PCI Firmware Specification by having a PCIR data structure at offset 0x10f, which is not DWORD-aligned.
If I relax the check in OVMF, it works fine with SeaBIOS-as-CSM and I can initialise the VGA ROM then use INT 10h services for display in EFI. I've submitted a patch to *fix* the vgabios images, of course, but perhaps it's worth being lenient in OVMF? Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: David Woodhouse <david.woodho...@intel.com> diff --git a/IntelFrameworkModulePkg/Csm/LegacyBiosDxe/LegacyPci.c b/IntelFrameworkModulePkg/Csm/LegacyBiosDxe/LegacyPci.c index 910ed41..f5e647d 100644 --- a/IntelFrameworkModulePkg/Csm/LegacyBiosDxe/LegacyPci.c +++ b/IntelFrameworkModulePkg/Csm/LegacyBiosDxe/LegacyPci.c @@ -305,7 +305,6 @@ GetPciLegacyRom ( RomHeader.Raw = *Rom; while (RomHeader.Generic->Signature == PCI_EXPANSION_ROM_HEADER_SIGNATURE) { if (RomHeader.Generic->PcirOffset == 0 || - (RomHeader.Generic->PcirOffset & 3) !=0 || *ImageSize < RomHeader.Raw - (UINT8 *) *Rom + RomHeader.Generic->PcirOffset + sizeof (PCI_DATA_STRUCTURE)) { break; } @@ -2919,8 +2918,7 @@ LegacyBiosInstallPciRom ( LocalRomImage = *RomImage; if (((PCI_EXPANSION_ROM_HEADER *) LocalRomImage)->Signature != PCI_EXPANSION_ROM_HEADER_SIGNATURE || - ((PCI_EXPANSION_ROM_HEADER *) LocalRomImage)->PcirOffset == 0 || - (((PCI_EXPANSION_ROM_HEADER *) LocalRomImage)->PcirOffset & 3 ) != 0) { + ((PCI_EXPANSION_ROM_HEADER *) LocalRomImage)->PcirOffset == 0) { mVgaInstallationInProgress = FALSE; return EFI_UNSUPPORTED; } diff --git a/MdeModulePkg/Bus/Pci/PciBusDxe/PciOptionRomSupport.c b/MdeModulePkg/Bus/Pci/PciBusDxe/PciOptionRomSupport.c index 33dbfa4..21a522c 100644 --- a/MdeModulePkg/Bus/Pci/PciBusDxe/PciOptionRomSupport.c +++ b/MdeModulePkg/Bus/Pci/PciBusDxe/PciOptionRomSupport.c @@ -420,7 +420,6 @@ LoadOpRomImage ( // The PCI Data Structure must be DWORD aligned. // if (OffsetPcir == 0 || - (OffsetPcir & 3) != 0 || RomImageSize + OffsetPcir + sizeof (PCI_DATA_STRUCTURE) > RomSize) { break; } -- David Woodhouse Open Source Technology Centre david.woodho...@intel.com Intel Corporation
smime.p7s
Description: S/MIME cryptographic signature
------------------------------------------------------------------------------ Master Visual Studio, SharePoint, SQL, ASP.NET, C# 2012, HTML5, CSS, MVC, Windows 8 Apps, JavaScript and much more. Keep your skills current with LearnDevNow - 3,200 step-by-step video tutorials by Microsoft MVPs and experts. ON SALE this month only -- learn more at: http://p.sf.net/sfu/learnmore_123012
_______________________________________________ edk2-devel mailing list edk2-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/edk2-devel