efi/arm: Pass start and end addresses to cache_clean_flush()
authorArd Biesheuvel <ardb@kernel.org>
Tue, 18 Feb 2020 23:09:48 +0000 (00:09 +0100)
committerArd Biesheuvel <ardb@kernel.org>
Sat, 22 Feb 2020 18:04:57 +0000 (19:04 +0100)
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>
arch/arm/boot/compressed/head.S

index 39f7071..8487221 100644 (file)
@@ -1460,6 +1460,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