rockchip: misc: protect serial# from getting overwritten
[oweals/u-boot.git] / cmd / elf.c
index 7bad1f80d42f9b23fec595871dc3cb1794bee55c..32f12a72b9be4bb07f81ffb66207af40a1965b18 100644 (file)
--- a/cmd/elf.c
+++ b/cmd/elf.c
@@ -15,8 +15,9 @@
 
 #include <common.h>
 #include <command.h>
+#include <cpu_func.h>
 #include <elf.h>
-#include <environment.h>
+#include <env.h>
 #include <net.h>
 #include <vxworks.h>
 #ifdef CONFIG_X86
@@ -53,7 +54,8 @@ static unsigned long load_elf64_image_phdr(unsigned long addr)
                if (phdr->p_filesz != phdr->p_memsz)
                        memset(dst + phdr->p_filesz, 0x00,
                               phdr->p_memsz - phdr->p_filesz);
-               flush_cache((unsigned long)dst, phdr->p_filesz);
+               flush_cache(rounddown((unsigned long)dst, ARCH_DMA_MINALIGN),
+                           roundup(phdr->p_memsz, ARCH_DMA_MINALIGN));
                ++phdr;
        }
 
@@ -167,7 +169,8 @@ static unsigned long load_elf_image_phdr(unsigned long addr)
                if (phdr->p_filesz != phdr->p_memsz)
                        memset(dst + phdr->p_filesz, 0x00,
                               phdr->p_memsz - phdr->p_filesz);
-               flush_cache((unsigned long)dst, phdr->p_filesz);
+               flush_cache(rounddown((unsigned long)dst, ARCH_DMA_MINALIGN),
+                           roundup(phdr->p_memsz, ARCH_DMA_MINALIGN));
                ++phdr;
        }