OK, so revisiting this after deciding ARM9 has already been broken for months (at least, possibly always) without anyone complaining.
On Tue, Nov 03, 2015 at 11:16:25AM +0100, Ard Biesheuvel wrote: > This is a followup to the single patch I sent out yesterday. Of course, it > was just the tip of the iceberg, and you know what happens when you make a > clean spot :-) > > Anyway, this is a first pass at cleaning up the cache maintenance in the > various ARM packages. > > Patch #1 is Mark Rutland's patch he sent out yesterday as well, I only > cleaned up the commitlog to refer to ArmPkg rather than ArmVirtPkg, and > mention AArch64 explicitly. > > Patch #2 fixes a typo 'ArmDataSyncronizationBarrier' across all the > packages where it occurred. > > Patch #3 removes the ARM9 version of ArmLib. There are no users, nor are > there likely to be new ones since ARM9 is so old. Can you roll in the deletion of ArmPkg/Include/Chipset/ARM926EJ-S.h into this one? Also, can you move this one before #2, so we don't get the state with ArmDataSyncronizationBarrier misspelt in ArmLib/Arm9 but fixed elsewhere? > Patch #4 removes the 'clean to PoU by set/way' routines. > > Patch #5 removes the ARM_CACHE_INFO routines that mostly infer cache geometry > from CCSIDR which is explicitly forbidden by the architecture. Since there are > no users anyway, I just removed all of it. Previous objections I raised on this was on the differing CTR format between pre-v7 and v7+. Since we now no longer support pre-v7, I'm happy with this. > Patch #6 fixes another illegal use of CCSIDR: cache maintenance by virtual > address needs to use the stride reported in CTR not CCSIDR > > Patch #7 is based on the patch 'ArmPkg/ArmLib: remove pointless sync barriers > after each cache op' I sent out yesterday. As Mark Rutland and Leif pointed > out, > the MVA outer loop (unlike the set/way outer loop) did not have the barriers > yet > at the end, so this version adds those as well, and updates the ARMv7 side > too. > > Patch #8 updates the ArmCacheMaintenanceLib whole-cache maintenance routines > to > ASSERT() rather than silently invoke the data cache maintenance by set/way > routines which we know are not appropriate at runtime. > > Patch #9 and #10 remove some other uses of ArmInvalidateDataCache() at startup > time which are not appropriate at the UEFI firmware level. > > Ard Biesheuvel (9): > ArmPkg BeagleBoardPkg Omap35xxPkg: fix typo > 'ArmDataSyncronizationBarrier' > ArmPkg/ArmLib: remove unused ARM9 support > ArmPkg/ArmLib: remove unused ArmCleanDataCacheToPoU() > ArmPkg/ArmLib: remove CCSIDR based cache info routines > ArmPkg/ArmLib: retrieve cache line length from CTR not CCSIDR > ArmPkg/ArmLib: move cache maintenance sync barriers out of loop > ArmCacheMaintenanceLib: disallow whole D-cache maintenance operations > ArmVirtPkg/PrePi: do not invalidate the entire data cache at startup > ArmPlatformPkg: do not invalidate the entire data cache at startup With the above addressed, for the series: Reviewed-by: Leif Lindholm <leif.lindh...@linaro.org> > Mark Rutland (1): > ArmPkg/ArmLib: fix barriers in AArch64 ArmEnableMmu > > ArmPkg/Include/Library/ArmLib.h | 86 > +-------- > ArmPkg/Library/ArmCacheMaintenanceLib/ArmCacheMaintenanceLib.c | 10 +- > ArmPkg/Library/ArmLib/AArch64/AArch64Lib.c | 196 > ------------------- > ArmPkg/Library/ArmLib/AArch64/AArch64Lib.h | 6 - > ArmPkg/Library/ArmLib/AArch64/AArch64Support.S | 36 +--- > ArmPkg/Library/ArmLib/Arm9/Arm9ArmLib.inf | 43 ----- > ArmPkg/Library/ArmLib/Arm9/Arm9ArmLibPrePi.inf | 43 ----- > ArmPkg/Library/ArmLib/Arm9/Arm9CacheInformation.c | 165 > ---------------- > ArmPkg/Library/ArmLib/Arm9/Arm9Lib.c | 134 > ------------- > ArmPkg/Library/ArmLib/Arm9/Arm9Support.S | 153 > --------------- > ArmPkg/Library/ArmLib/Arm9/Arm9Support.asm | 153 > --------------- > ArmPkg/Library/ArmLib/ArmV7/ArmV7Lib.c | 199 > -------------------- > ArmPkg/Library/ArmLib/ArmV7/ArmV7Lib.h | 6 - > ArmPkg/Library/ArmLib/ArmV7/ArmV7Support.S | 66 +------ > ArmPkg/Library/ArmLib/ArmV7/ArmV7Support.asm | 66 +------ > ArmPkg/Library/ArmLib/Common/ArmLib.c | 38 ++-- > ArmPkg/Library/ArmLib/Null/NullArmCacheInformation.c | 106 > ----------- > ArmPkg/Library/ArmLib/Null/NullArmLib.inf | 1 - > ArmPlatformPkg/PrePeiCore/PrePeiCore.c | 2 - > ArmPlatformPkg/PrePi/PrePi.c | 2 - > ArmVirtPkg/PrePi/PrePi.c | 2 - > BeagleBoardPkg/Library/BeagleBoardLib/BeagleBoard.c | 4 +- > Omap35xxPkg/InterruptDxe/HardwareInterrupt.c | 6 +- > Omap35xxPkg/Library/DebugAgentTimerLib/DebugAgentTimerLib.c | 2 +- > 24 files changed, 41 insertions(+), 1484 deletions(-) > delete mode 100644 ArmPkg/Library/ArmLib/Arm9/Arm9ArmLib.inf > delete mode 100644 ArmPkg/Library/ArmLib/Arm9/Arm9ArmLibPrePi.inf > delete mode 100644 ArmPkg/Library/ArmLib/Arm9/Arm9CacheInformation.c > delete mode 100644 ArmPkg/Library/ArmLib/Arm9/Arm9Lib.c > delete mode 100644 ArmPkg/Library/ArmLib/Arm9/Arm9Support.S > delete mode 100644 ArmPkg/Library/ArmLib/Arm9/Arm9Support.asm > delete mode 100644 ArmPkg/Library/ArmLib/Null/NullArmCacheInformation.c > > -- > 1.9.1 > _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel