]> pilppa.com Git - linux-2.6-omap-h63xx.git/commitdiff
flush I-cache after omap_sram_push()
authorPaul Walmsley <paul@pwsan.com>
Mon, 19 Nov 2007 19:11:43 +0000 (12:11 -0700)
committerTony Lindgren <tony@atomide.com>
Fri, 23 Nov 2007 21:15:14 +0000 (13:15 -0800)
This patch implements a suggestion by Richard Woodruff
<r-woodruff2@ti.com>.  omap_sram_push() copies executable code into
SRAM memory.  Currently this happens before Linux executes anything
from the SRAM, so we don't have to worry about evicting any SRAM lines
from the I-cache.  But at some point in the future, the SRAM might be
used more dynamically, adding and removing code while the system is
running.  So we should ensure that the I-cache is clean or at
least up-to-date after the copy.

Signed-off-by: Paul Walmsley <paul@pwsan.com>
Signed-off-by: Richard Woodruff <r-woodruff2@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
arch/arm/plat-omap/sram.c

index 0df156fdbd0959b5d3beee732ea22d4d7722efcf..a3f9d097cf14859dc22c69722704bfd603857a80 100644 (file)
@@ -216,6 +216,7 @@ void * omap_sram_push(void * start, unsigned long size)
        omap_sram_ceil -= size;
        omap_sram_ceil = ROUND_DOWN(omap_sram_ceil, sizeof(void *));
        memcpy((void *)omap_sram_ceil, start, size);
+       flush_icache_range((unsigned long)start, (unsigned long)(start + size));
 
        return (void *)omap_sram_ceil;
 }