This patch series adds support to enable cache during sha-256 verification in purgatory. Until --enable-dcache is passed to kexec(), these patches does not affect existing purgatory functionality. Patches have been tested with Seattle and Mustang for normal kexec and kdump. It took hardly a second to verify SHA256 when kernel and initramfs segment sizes were 0x01030000 and 0x01130000 respectively. Patches are still being sent as RFC, because these are dependent on Geoff's kexec-tools patches. These patches along with other dependent patches are also available here: https://github.com/pratyushanand/kexec-tools.git (HEAD commit 062475cf4f3f) RFC V1 was here: http://lists.infradead.org/pipermail/kexec/2015-May/013678.html Changes since RFC V1: There had been many changes, I would say rather that code has been reimplemented. I am listing some of the significant changes here: -- By default D-cache would be disabled now. -- Most part of implementation has been moved from asm to c code. -- Proper synchronization barrier and tlb invalidation -- Now we can have print during MMU enabled as well, since UART area is also identity mapped. -- Supports 64K and 4K page table. If a HW supports 64K then it uses 64K page implementation, else it checks if 4K is supported and then uses 4K page table. 16K is not yet supported. Pratyush Anand (2): arm64: Add enable/disable d-cache support for purgatory arm64: Pass RAM boundary and enable-dcache flag to purgatory kexec/arch/arm64/include/arch/options.h | 6 +- kexec/arch/arm64/include/types.h | 16 ++ kexec/arch/arm64/kexec-arm64.c | 24 ++- purgatory/arch/arm64/Makefile | 2 + purgatory/arch/arm64/cache-asm.S | 228 ++++++++++++++++++++++ purgatory/arch/arm64/cache.c | 333 ++++++++++++++++++++++++++++++++ purgatory/arch/arm64/cache.h | 83 ++++++++ purgatory/arch/arm64/entry.S | 15 ++ purgatory/arch/arm64/purgatory-arm64.c | 10 +- 9 files changed, 714 insertions(+), 3 deletions(-) create mode 100644 kexec/arch/arm64/include/types.h create mode 100644 purgatory/arch/arm64/cache-asm.S create mode 100644 purgatory/arch/arm64/cache.c create mode 100644 purgatory/arch/arm64/cache.h -- 2.5.0