Since the device addresss has been translated in PciRootBridgeIo.c so shuldn't translate it twice in ArmPciCpuIo2Dxe.c Signed-off-by: LiuYu <liuyu@greatwall.com.cn>
Nack. The I/O translation in the I/O domain and the mapping of the I/O window in the physical memory space are two different translations, and they both need to be applied.
PciRootBridgeIo.c deals with the former, whereas this driver deals with the latter.
--- ArmPkg/Drivers/ArmPciCpuIo2Dxe/ArmPciCpuIo2Dxe.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/ArmPkg/Drivers/ArmPciCpuIo2Dxe/ArmPciCpuIo2Dxe.c b/ArmPkg/Drivers/ArmPciCpuIo2Dxe/ArmPciCpuIo2Dxe.c index d8625e1593..8c46a2778b 100644 --- a/ArmPkg/Drivers/ArmPciCpuIo2Dxe/ArmPciCpuIo2Dxe.c +++ b/ArmPkg/Drivers/ArmPciCpuIo2Dxe/ArmPciCpuIo2Dxe.c @@ -399,7 +399,6 @@ CpuIoServiceRead ( return Status; } - Address += PcdGet64 (PcdPciIoTranslation); // // Select loop based on the width of the transfer @@ -485,7 +484,6 @@ CpuIoServiceWrite ( return Status; } - Address += PcdGet64 (PcdPciIoTranslation); // // Select loop based on the width of the transfer