svn commit: r186230 - head/sys/powerpc/booke

Rafal Jaworowski raj at FreeBSD.org
Wed Dec 17 15:54:26 UTC 2008


Author: raj
Date: Wed Dec 17 15:54:25 2008
New Revision: 186230
URL: http://svn.freebsd.org/changeset/base/186230

Log:
  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

Modified:
  head/sys/powerpc/booke/locore.S

Modified: head/sys/powerpc/booke/locore.S
==============================================================================
--- head/sys/powerpc/booke/locore.S	Wed Dec 17 15:44:34 2008	(r186229)
+++ head/sys/powerpc/booke/locore.S	Wed Dec 17 15:54:25 2008	(r186230)
@@ -411,6 +411,9 @@ ENTRY(dcache_inval)
 	isync
 	mtspr	SPR_L1CSR0, %r3
 	isync
+1:	mfspr	%r3, SPR_L1CSR0
+	andi.	%r3, %r3, L1CSR0_DCFI
+	bne	1b
 	blr
 
 ENTRY(dcache_disable)
@@ -443,6 +446,9 @@ ENTRY(icache_inval)
 	isync
 	mtspr	SPR_L1CSR1, %r3
 	isync
+1:	mfspr	%r3, SPR_L1CSR1
+	andi.	%r3, %r3, L1CSR1_ICFI
+	bne	1b
 	blr
 
 ENTRY(icache_disable)


More information about the svn-src-head mailing list