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:
parent
898a13418a
commit
f811858422
@ -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)
|
||||||
|
Loading…
Reference in New Issue
Block a user