diff options
author | Simon Glass <sjg@chromium.org> | 2016-05-05 13:28:07 (GMT) |
---|---|---|
committer | Andreas Bießmann <andreas@biessmann.org> | 2016-06-12 21:49:38 (GMT) |
commit | b4d956f6bc0fe6ff9a5776cbce0fe97a344737a3 (patch) | |
tree | cd9de3476a26a2b3a977fcafd03a80cf3fa3edb5 /common | |
parent | b5bd09820c79dc92b3e5fb5be4b47ce22c731443 (diff) | |
download | u-boot-b4d956f6bc0fe6ff9a5776cbce0fe97a344737a3.tar.xz |
bootm: Align cache flush end address correctly
Flushing part of the cache should be done on cache boundaries. Trying to
flush part of a cache line is not supported and the request may be ignored
or print warnings.
Adjust the bootm code to align the end address to prevent this problem.
Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Heiko Schocher <hs@denx.de>
Tested-on: smartweb, corvus, taurus, axm
Tested-by: Heiko Schocher <hs@denx.de>
Reviewed-by: Joe Hershberger <joe.hershberger@ni.com>
Reviewed-by: Andreas Bießmann <andreas@biessmann.org>
Diffstat (limited to 'common')
-rw-r--r-- | common/bootm.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/common/bootm.c b/common/bootm.c index 4941414..2431019 100644 --- a/common/bootm.c +++ b/common/bootm.c @@ -445,7 +445,7 @@ static int bootm_load_os(bootm_headers_t *images, unsigned long *load_end, bootstage_error(BOOTSTAGE_ID_DECOMP_IMAGE); return err; } - flush_cache(load, *load_end - load); + flush_cache(load, ALIGN(*load_end - load, ARCH_DMA_MINALIGN)); debug(" kernel loaded at 0x%08lx, end = 0x%08lx\n", load, *load_end); bootstage_mark(BOOTSTAGE_ID_KERNEL_LOADED); |