summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSolomon Peachy <pizza@shaftnet.org>2021-04-01 10:52:51 -0400
committerSolomon Peachy <pizza@shaftnet.org>2021-04-01 10:57:29 -0400
commit2f785c7797d0a40a0c797208cbcc753ddfe9193a (patch)
treea982829ef08cabc77b2a630d873fd1f83ef6abff
parent9f7f1a841a11b9eb3c4c356a875c82ed58658a63 (diff)
downloadrockbox-2f785c7797d0a40a0c797208cbcc753ddfe9193a.tar.gz
rockbox-2f785c7797d0a40a0c797208cbcc753ddfe9193a.zip
PP: More cache invalidation fixes
Take into account the size of the pointer in the loop termination condition. Change-Id: Ib4f7625ef143149a0d691a2109bad67aece6241c
-rw-r--r--firmware/target/arm/pp/system-pp502x.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/firmware/target/arm/pp/system-pp502x.c b/firmware/target/arm/pp/system-pp502x.c
index b1e791ec59..d6dfad1b24 100644
--- a/firmware/target/arm/pp/system-pp502x.c
+++ b/firmware/target/arm/pp/system-pp502x.c
@@ -253,15 +253,15 @@ static void ICODE_ATTR cache_invalidate_special(void)
253 if (CURRENT_CORE == CPU) 253 if (CURRENT_CORE == CPU)
254 { 254 {
255 for (p = &CACHE_STATUS_BASE_CPU; 255 for (p = &CACHE_STATUS_BASE_CPU;
256 p < (&CACHE_STATUS_BASE_CPU) + CACHE_SIZE; 256 p < (&CACHE_STATUS_BASE_CPU) + CACHE_SIZE/sizeof(*p);
257 p += CACHEALIGN_BITS) /* sizeof(p) * CACHEALIGN_BITS */ 257 p += CACHEALIGN_SIZE/sizeof(*p))
258 *p = CACHE_LINE_VALID | CACHE_ADDRESS_MASK; 258 *p = CACHE_LINE_VALID | CACHE_ADDRESS_MASK;
259 } 259 }
260 else 260 else
261 { 261 {
262 for (p = &CACHE_STATUS_BASE_COP; 262 for (p = &CACHE_STATUS_BASE_COP;
263 p < (&CACHE_STATUS_BASE_COP) + CACHE_SIZE; 263 p < (&CACHE_STATUS_BASE_COP) + CACHE_SIZE/sizeof(*p);
264 p += CACHEALIGN_BITS) 264 p += CACHEALIGN_SIZE/sizeof(*p))
265 *p = CACHE_LINE_VALID | CACHE_ADDRESS_MASK; 265 *p = CACHE_LINE_VALID | CACHE_ADDRESS_MASK;
266 } 266 }
267} 267}