summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArd Biesheuvel <ard.biesheuvel@linaro.org>2019-03-28 13:37:12 +0100
committerArd Biesheuvel <ard.biesheuvel@linaro.org>2019-03-28 13:37:12 +0100
commit93c0c1053ba48e857e645d776391b674f65e70e1 (patch)
tree92b4a8269fc233805135873c3dad0f3fd41b8fb1
parent42e005ed1cfd641a057bb188963d592f4558a265 (diff)
HACK MdeModulePkg/PciBusDxe: avoid 64-bit MMIO readsdeveloper-box-from-hell
The SynQuacer PCIe silicon bug affects 64-bit MMIO reads, so split them up when we can. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
-rw-r--r--MdeModulePkg/Bus/Pci/PciBusDxe/PciIo.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/MdeModulePkg/Bus/Pci/PciBusDxe/PciIo.c b/MdeModulePkg/Bus/Pci/PciBusDxe/PciIo.c
index 910a88c443..cba8ca0d09 100644
--- a/MdeModulePkg/Bus/Pci/PciBusDxe/PciIo.c
+++ b/MdeModulePkg/Bus/Pci/PciBusDxe/PciIo.c
@@ -436,6 +436,11 @@ PciIoMemRead (
return EFI_UNSUPPORTED;
}
+ if (Width == EfiPciIoWidthUint64) {
+ Width = EfiPciIoWidthUint32;
+ Count *= 2;
+ }
+
//
// If request is not aligned, then convert request to EfiPciIoWithXXXUint8
//