MdeModulePkg: PciHostBridgeDxe: don't assume extended config space
The "pc" ("pc-i440fx-*") machine types of QEMU don't support extended config space. Accordingly, OVMF will use the following library instances in connection with the core PciHostBridgeDxe driver: BasePciSegmentLibPci [class: PciSegmentLib] BasePciLibCf8 [class: PciLib] BasePciCf8Lib [class: PciCf8Lib] Add a new field to the PCI_ROOT_BRIDGE structure so that RootBridgeIoCheckParameter() can catch config space offsets above 0xFF on such old (emulated) platforms. Cc: Ruiyu Ni <ruiyu.ni@intel.com> Cc: Jordan Justen <jordan.l.justen@intel.com> Cc: Marcel Apfelbaum <marcel@redhat.com> Cc: Michael Kinney <michael.d.kinney@intel.com> Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Laszlo Ersek <lersek@redhat.com> Reviewed-by: Michael Kinney <michael.d.kinney@intel.com> Reviewed-by: Jordan Justen <jordan.l.justen@intel.com> Reviewed-by: Marcel Apfelbaum <marcel@redhat.com> Reviewed-by: Ruiyu Ni <ruiyu.ni@intel.com>
This commit is contained in:
@ -34,6 +34,10 @@ typedef struct {
|
||||
///< and SetAttributes() in EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL.
|
||||
BOOLEAN DmaAbove4G; ///< DMA above 4GB memory.
|
||||
///< Set to TRUE when root bridge supports DMA above 4GB memory.
|
||||
BOOLEAN NoExtendedConfigSpace; ///< When FALSE, the root bridge supports
|
||||
///< Extended (4096-byte) Configuration Space.
|
||||
///< When TRUE, the root bridge supports
|
||||
///< 256-byte Configuration Space only.
|
||||
UINT64 AllocationAttributes; ///< Allocation attributes.
|
||||
///< Refer to EFI_PCI_HOST_BRIDGE_COMBINE_MEM_PMEM and
|
||||
///< EFI_PCI_HOST_BRIDGE_MEM64_DECODE used by GetAllocAttributes()
|
||||
|
Reference in New Issue
Block a user