On Fri, Aug 25, 2017 at 01:10:09PM +0100, Ard Biesheuvel wrote: > This series is a followup to 'ArmPkg/ArmDmaLib: remove dependency on > UncachedMemoryAllocationLib' sent out yesterday, and removes library > entirely. > > There are two reasons for this: > - UncachedMemoryAllocationLib is often abused by drivers that should > be using DMA abstractions instead. It is up to the platform to decide > whether DMA is cache coherent or not, and the fact that non-cache > coherent DMA may be implemented using uncached allocations should remain > an implementation detail of the DmaLib instance. > > - The code is poorly maintained, only frees its allocations in the destructor, > and misleads by exposing pool allocate/free entry points that are actually > backed by page based allocations. > > Patches #1 and #2 add a DmaAllocateAlignedBuffer() to DmaLib and both > its implementations. This is required for current users of > UncachedMemoryAllocationLib that rely on minimum alignment to be able > to switch the DmaLib. > > Patches #3 and #4 remove a couple of stale references. > > Patch #5 actually removes the library and its single remaining implementation.
For the series: Reviewed-by: Leif Lindholm <[email protected]> However, this breaks a bunch of (edk2-)platforms: juno, fvp, tc2, hikey and armada70x0. Is there a follow-on patch coming for those, and could you hold off on pushing this series until that is ready? Armada has the only non-bogus UncachedMemoryAllocationLib dependency, the others are just trivial deletions. / Leif > Ard Biesheuvel (5): > EmbeddedPkg/DmaLib: add routine to allocate aligned buffers > ArmPkg/ArmDmaLib: implement DmaAllocateAlignedBuffer() > BeagleBoardPkg: remove UncachedMemoryAllocationLib resolutions > Omap35xxPkg: remove bogus UncachedMemoryAllocationLib dependency > ArmPkg: remove UncachedMemoryAllocationLib > > ArmPkg/ArmPkg.dec | > 4 - > ArmPkg/ArmPkg.dsc | > 2 - > ArmPkg/Include/Library/UncachedMemoryAllocationLib.h | > 665 ------------------ > ArmPkg/Library/ArmDmaLib/ArmDmaLib.c | > 42 +- > ArmPkg/Library/UncachedMemoryAllocationLib/UncachedMemoryAllocationLib.c | > 719 -------------------- > ArmPkg/Library/UncachedMemoryAllocationLib/UncachedMemoryAllocationLib.inf | > 50 -- > BeagleBoardPkg/BeagleBoardPkg.dsc | > 2 - > EmbeddedPkg/Include/Library/DmaLib.h | > 30 +- > EmbeddedPkg/Library/NullDmaLib/NullDmaLib.c | > 48 +- > Omap35xxPkg/Library/DebugAgentTimerLib/DebugAgentTimerLib.inf | > 1 + > Omap35xxPkg/Library/OmapDmaLib/OmapDmaLib.inf | > 1 - > Omap35xxPkg/Omap35xxPkg.dsc | > 2 - > 12 files changed, 112 insertions(+), 1454 deletions(-) > delete mode 100644 ArmPkg/Include/Library/UncachedMemoryAllocationLib.h > delete mode 100644 > ArmPkg/Library/UncachedMemoryAllocationLib/UncachedMemoryAllocationLib.c > delete mode 100644 > ArmPkg/Library/UncachedMemoryAllocationLib/UncachedMemoryAllocationLib.inf > > -- > 2.11.0 > _______________________________________________ edk2-devel mailing list [email protected] https://lists.01.org/mailman/listinfo/edk2-devel

