On 23 September 2016 at 09:02, Ard Biesheuvel ard.biesheuvel@linaro.org wrote:
On 23 September 2016 at 00:49, Daniil Egranov daniil.egranov@arm.com wrote:
Added NullDmaLib needed for ArmJunoPkg/Drivers/PciHostBridgeDxe with the fix for PCI DMA issue on Juno.
Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Daniil Egranov daniil.egranov@arm.com
Platforms/ARM/Juno/ArmJuno.dsc | 2 ++ 1 file changed, 2 insertions(+)
diff --git a/Platforms/ARM/Juno/ArmJuno.dsc b/Platforms/ARM/Juno/ArmJuno.dsc index 751225a..4456ff6 100644 --- a/Platforms/ARM/Juno/ArmJuno.dsc +++ b/Platforms/ARM/Juno/ArmJuno.dsc @@ -52,6 +52,8 @@ # USB Requirements UefiUsbLib|MdePkg/Library/UefiUsbLib/UefiUsbLib.inf
- NullDmaLib|EmbeddedPkg/Library/NullDmaLib/NullDmaLib.inf
Is the PCI host bridge driver the only user of DmaLib on Juno? If not, are all other PCI bus masters coherent as well?
Looking at ArmJunoDxe, it seems that the PCI emulation for USB also uses this library. Are those DMA coherent on Juno?
If not, we should add this DmaLib resolution for the PCI root complex driver as
diff --git a/Platforms/ARM/Juno/ArmJuno.dsc b/Platforms/ARM/Juno/ArmJuno.dsc index 751225ab112d..3913bd7caeae 100644 --- a/Platforms/ARM/Juno/ArmJuno.dsc +++ b/Platforms/ARM/Juno/ArmJuno.dsc @@ -277,7 +277,10 @@ # PCI Support # MdeModulePkg/Bus/Pci/PciBusDxe/PciBusDxe.inf - ArmPlatformPkg/ArmJunoPkg/Drivers/PciHostBridgeDxe/PciHostBridgeDxe.inf + ArmPlatformPkg/ArmJunoPkg/Drivers/PciHostBridgeDxe/PciHostBridgeDxe.inf { + <LibraryClasses> + DmaLib|EmbeddedPkg/Library/NullDmaLib/NullDmaLib.inf + }
# # SATA Controller
Also, the reference to UefiCpuPkg/CpuIo2Dxe/CpuIo2Dxe.inf does not make sense, given that it ASSERT()s on all I/O range accesses.