Revision: 16900
          http://sourceforge.net/p/edk2/code/16900
Author:   lersek
Date:     2015-02-23 16:03:21 +0000 (Mon, 23 Feb 2015)
Log Message:
-----------
ArmVirtualizationPkg/PciHostBridgeDxe: IO space is emulated with MMIO

There is no IO space on ARM, and there are no special instructions that
access it. QEMU emulates the IO space for PCI devices with a special MMIO
range. We're ready to use it at this point, we just have to switch the
Io(Read|Write)(8|16|32) primitives to their MMIO counterparts, because in
"MdePkg/Library/BaseIoLibIntrinsic/IoLibArm.c", the IO primitives
correctly ASSERT (FALSE).

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Laszlo Ersek <[email protected]>
Reviewed-by: Olivier Martin <[email protected]>

Modified Paths:
--------------
    
trunk/edk2/ArmPlatformPkg/ArmVirtualizationPkg/PciHostBridgeDxe/PciRootBridgeIo.c

Modified: 
trunk/edk2/ArmPlatformPkg/ArmVirtualizationPkg/PciHostBridgeDxe/PciRootBridgeIo.c
===================================================================
--- 
trunk/edk2/ArmPlatformPkg/ArmVirtualizationPkg/PciHostBridgeDxe/PciRootBridgeIo.c
   2015-02-23 16:03:16 UTC (rev 16899)
+++ 
trunk/edk2/ArmPlatformPkg/ArmVirtualizationPkg/PciHostBridgeDxe/PciRootBridgeIo.c
   2015-02-23 16:03:21 UTC (rev 16900)
@@ -1008,13 +1008,13 @@
     if (Write) {
       switch (OperationWidth) {
         case EfiPciWidthUint8:
-          IoWrite8 ((UINTN)Address, *Uint8Buffer);
+          MmioWrite8 ((UINTN)Address, *Uint8Buffer);
           break;
         case EfiPciWidthUint16:
-          IoWrite16 ((UINTN)Address, *((UINT16 *)Uint8Buffer));
+          MmioWrite16 ((UINTN)Address, *((UINT16 *)Uint8Buffer));
           break;
         case EfiPciWidthUint32:
-          IoWrite32 ((UINTN)Address, *((UINT32 *)Uint8Buffer));
+          MmioWrite32 ((UINTN)Address, *((UINT32 *)Uint8Buffer));
           break;
         default:
           //
@@ -1027,13 +1027,13 @@
     } else {
       switch (OperationWidth) {
         case EfiPciWidthUint8:
-          *Uint8Buffer = IoRead8 ((UINTN)Address);
+          *Uint8Buffer = MmioRead8 ((UINTN)Address);
           break;
         case EfiPciWidthUint16:
-          *((UINT16 *)Uint8Buffer) = IoRead16 ((UINTN)Address);
+          *((UINT16 *)Uint8Buffer) = MmioRead16 ((UINTN)Address);
           break;
         case EfiPciWidthUint32:
-          *((UINT32 *)Uint8Buffer) = IoRead32 ((UINTN)Address);
+          *((UINT32 *)Uint8Buffer) = MmioRead32 ((UINTN)Address);
           break;
         default:
           //


------------------------------------------------------------------------------
Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
from Actuate! Instantly Supercharge Your Business Reports and Dashboards
with Interactivity, Sharing, Native Excel Exports, App Integration & more
Get technology previously reserved for billion-dollar corporations, FREE
http://pubads.g.doubleclick.net/gampad/clk?id=190641631&iu=/4140/ostg.clktrk
_______________________________________________
edk2-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/edk2-commits

Reply via email to