[PATCH RFC V2 0/2] kexec: arm64: purgatory: cache support
Pratyush Anand
panand at redhat.com
Mon Jan 11 21:12:49 PST 2016
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
More information about the kexec
mailing list