diff options
author | Andreas Bießmann <andreas.devel@googlemail.com> | 2014-06-12 22:07:52 +0200 |
---|---|---|
committer | Andreas Bießmann <andreas.devel@googlemail.com> | 2014-06-14 18:06:58 +0200 |
commit | 0e05543576b460afff506a169dfdaa6f02bde5c6 (patch) | |
tree | af1a8f951ff7509d99550bab33ba4a7e3d44eea3 /arch/avr32/cpu | |
parent | 0a26e1d6c394aacbf1153977b7348d1dff85db3f (diff) | |
download | u-boot-imx-0e05543576b460afff506a169dfdaa6f02bde5c6.zip u-boot-imx-0e05543576b460afff506a169dfdaa6f02bde5c6.tar.gz u-boot-imx-0e05543576b460afff506a169dfdaa6f02bde5c6.tar.bz2 |
avr32: migrate cache functions
Unfortunately the avr32 cache implementation has another API than the one
described in common.h. Migrate the flush/invalidate dcache functions to the
common API to be usable in device drivers.
Signed-off-by: Andreas Bießmann <andreas.devel@googlemail.com>
CC: Josh Wu <josh.wu@atmel.com>
Diffstat (limited to 'arch/avr32/cpu')
-rw-r--r-- | arch/avr32/cpu/cache.c | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/arch/avr32/cpu/cache.c b/arch/avr32/cpu/cache.c index ab0374e..b3ffc33 100644 --- a/arch/avr32/cpu/cache.c +++ b/arch/avr32/cpu/cache.c @@ -24,31 +24,31 @@ void dcache_clean_range(volatile void *start, size_t size) sync_write_buffer(); } -void dcache_invalidate_range(volatile void *start, size_t size) +void invalidate_dcache_range(unsigned long start, unsigned long stop) { - unsigned long v, begin, end, linesz; + unsigned long v, linesz; linesz = CONFIG_SYS_DCACHE_LINESZ; /* You asked for it, you got it */ - begin = (unsigned long)start & ~(linesz - 1); - end = ((unsigned long)start + size + linesz - 1) & ~(linesz - 1); + start = start & ~(linesz - 1); + stop = (stop + linesz - 1) & ~(linesz - 1); - for (v = begin; v < end; v += linesz) + for (v = start; v < stop; v += linesz) dcache_invalidate_line((void *)v); } -void dcache_flush_range(volatile void *start, size_t size) +void flush_dcache_range(unsigned long start, unsigned long stop) { - unsigned long v, begin, end, linesz; + unsigned long v, linesz; linesz = CONFIG_SYS_DCACHE_LINESZ; /* You asked for it, you got it */ - begin = (unsigned long)start & ~(linesz - 1); - end = ((unsigned long)start + size + linesz - 1) & ~(linesz - 1); + start = start & ~(linesz - 1); + stop = (stop + linesz - 1) & ~(linesz - 1); - for (v = begin; v < end; v += linesz) + for (v = start; v < stop; v += linesz) dcache_flush_line((void *)v); sync_write_buffer(); |