Fix E500 cache invalidation routines.

When invalidating the i/d-cache we need to wait until the core complex is
really finished with the operation.

Obtained from:	Semihalf
This commit is contained in:
raj 2008-12-17 15:54:25 +00:00
parent 898a13418a
commit f811858422

View File

@ -411,6 +411,9 @@ ENTRY(dcache_inval)
isync isync
mtspr SPR_L1CSR0, %r3 mtspr SPR_L1CSR0, %r3
isync isync
1: mfspr %r3, SPR_L1CSR0
andi. %r3, %r3, L1CSR0_DCFI
bne 1b
blr blr
ENTRY(dcache_disable) ENTRY(dcache_disable)
@ -443,6 +446,9 @@ ENTRY(icache_inval)
isync isync
mtspr SPR_L1CSR1, %r3 mtspr SPR_L1CSR1, %r3
isync isync
1: mfspr %r3, SPR_L1CSR1
andi. %r3, %r3, L1CSR1_ICFI
bne 1b
blr blr
ENTRY(icache_disable) ENTRY(icache_disable)