]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
arm: mach-omap2: Align image address before cache operations
authorAndrew F. Davis <afd@ti.com>
Wed, 26 Jul 2017 19:53:19 +0000 (14:53 -0500)
committerTom Rini <trini@konsulko.com>
Mon, 31 Jul 2017 16:21:39 +0000 (12:21 -0400)
The image address passed to secure_boot_verify_image() may not be
cacheline aligned, round the address down to the nearest cacheline.

Signed-off-by: Andrew F. Davis <afd@ti.com>
Reviewed-by: Lokesh Vutla <lokeshvutla@ti.com>
arch/arm/mach-omap2/sec-common.c

index 030b36f332a7338db3b9020eedffca8be53a635c..2d54a3165ef3a278b86002e3d1d266c84cfffa97 100644 (file)
@@ -112,8 +112,8 @@ int secure_boot_verify_image(void **image, size_t *size)
 
        /* Perform cache writeback on input buffer */
        flush_dcache_range(
-               (u32)*image,
-               (u32)*image + roundup(*size, ARCH_DMA_MINALIGN));
+               rounddown((u32)*image, ARCH_DMA_MINALIGN),
+               roundup((u32)*image + *size, ARCH_DMA_MINALIGN));
 
        cert_addr = (uint32_t)*image;
        sig_addr = find_sig_start((char *)*image, *size);
@@ -151,8 +151,8 @@ int secure_boot_verify_image(void **image, size_t *size)
 
        /* Perform cache writeback on output buffer */
        flush_dcache_range(
-               (u32)*image,
-               (u32)*image + roundup(*size, ARCH_DMA_MINALIGN));
+               rounddown((u32)*image, ARCH_DMA_MINALIGN),
+               roundup((u32)*image + *size, ARCH_DMA_MINALIGN));
 
 auth_exit:
        if (result != 0) {