armv7: fixes for dcache_op_by_mva()

This fixes a couple issues with dcache_op_by_mva():
- Add missing data and instruction sync barriers.
- Removes unneded -1 from loop terminating condition.

Change-Id: I098388614397c1e53079c017d56b1cf3ef273676
Signed-off-by: David Hendricks <dhendrix@chromium.org>
Reviewed-on: http://review.coreboot.org/2913
Tested-by: build bot (Jenkins)
Reviewed-by: Ronald G. Minnich <rminnich@gmail.com>
This commit is contained in:
David Hendricks 2013-03-25 19:50:11 -07:00 committed by Ronald G. Minnich
parent 49675b950f
commit 42f5513d3d
1 changed files with 4 additions and 1 deletions

View File

@ -183,7 +183,9 @@ static void dcache_op_mva(unsigned long addr,
unsigned long line, i; unsigned long line, i;
line = line_bytes(); line = line_bytes();
for (i = addr & ~(line - 1); i < addr + len - 1; i += line) {
dsb();
for (i = addr & ~(line - 1); i < addr + len; i += line) {
switch(op) { switch(op) {
case OP_DCCIMVAC: case OP_DCCIMVAC:
dccimvac(addr); dccimvac(addr);
@ -192,6 +194,7 @@ static void dcache_op_mva(unsigned long addr,
break; break;
} }
} }
isb();
} }
void dcache_clean_by_mva(unsigned long addr, unsigned long len) void dcache_clean_by_mva(unsigned long addr, unsigned long len)