u-boot: align cache flushes in load_elf_image_shdr to line boundaries
authorNeil Stainton <nstainton@asl-control.co.uk>
Wed, 19 Sep 2018 09:38:07 +0000 (10:38 +0100)
committerTom Rini <trini@konsulko.com>
Sun, 30 Sep 2018 17:00:34 +0000 (13:00 -0400)
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

index c8e6e7424c647034015de3fa7bd64c45c5de5803..7bad1f80d42f9b23fec595871dc3cb1794bee55c 100644 (file)
--- 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;