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

Reply via email to