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:
parent
49675b950f
commit
42f5513d3d
|
@ -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)
|
||||||
|
|
Loading…
Reference in New Issue