From: Ard Biesheuvel <ardb@kernel.org>
Date: Wed, 19 Feb 2020 00:09:48 +0100
Subject: efi/arm: Pass start and end addresses to cache_clean_flush()
Patch-mainline: v5.7-rc1
Git-commit: e951a1f427f2312e17b4e0f485e60068ca1423bb
References: jsc#SLE-16407
In preparation for turning the decompressor's cache clean/flush
operations into proper by-VA maintenance for v7 cores, pass the
start and end addresses of the regions that need cache maintenance
into cache_clean_flush in registers r0 and r1.
Currently, all implementations of cache_clean_flush ignore these
values, so no functional change is expected as a result of this
patch.
Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
Acked-by: Lee, Chun-Yi <jlee@suse.com>
---
arch/arm/boot/compressed/head.S | 6 ++++++
1 file changed, 6 insertions(+)
--- a/arch/arm/boot/compressed/head.S
+++ b/arch/arm/boot/compressed/head.S
@@ -1435,6 +1435,12 @@ ENTRY(efi_stub_entry)
@ Preserve return value of efi_entry() in r4
mov r4, r0
+ add r1, r4, #SZ_2M @ DT end
+ bl cache_clean_flush
+
+ ldr r0, [sp] @ relocated zImage
+ ldr r1, =_edata @ size of zImage
+ add r1, r1, r0 @ end of zImage
bl cache_clean_flush
@ The PE/COFF loader might not have cleaned the code we are