From 18f201ea207a28aa79d7a485a2dc7b643ec36a31 Mon Sep 17 00:00:00 2001
From: Neil Stainton <nstainton@asl-control.co.uk>
Date: Wed, 19 Sep 2018 10:38:07 +0100
Subject: [PATCH] u-boot: align cache flushes in load_elf_image_shdr to line
 boundaries

Prevent cache warning messages when using the 'bootelf' command on an
Arm target. Round down each section start address and round up the
respective section end to the nearest cache line.

Signed-off-by: Neil Stainton <nstainton@asl-control.co.uk>
[trini: Manually apply, rework whitespace]
Signed-off-by: Tom Rini <trini@konsulko.com>
---
 cmd/elf.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/cmd/elf.c b/cmd/elf.c
index c8e6e7424c..7bad1f80d4 100644
--- a/cmd/elf.c
+++ b/cmd/elf.c
@@ -219,7 +219,10 @@ static unsigned long load_elf_image_shdr(unsigned long addr)
 			memcpy((void *)(uintptr_t)shdr->sh_addr,
 			       (const void *)image, shdr->sh_size);
 		}
-		flush_cache(shdr->sh_addr, shdr->sh_size);
+		flush_cache(rounddown(shdr->sh_addr, ARCH_DMA_MINALIGN),
+			    roundup((shdr->sh_addr + shdr->sh_size),
+				    ARCH_DMA_MINALIGN) -
+			    rounddown(shdr->sh_addr, ARCH_DMA_MINALIGN));
 	}
 
 	return ehdr->e_entry;
-- 
2.39.5