Commit a7cb0337 authored by Becky Bruce's avatar Becky Bruce Committed by Paul Mackerras

[PATCH] powerpc/ppc: Add missing isyncs in head_fsl_booke.S

The e500 core reference manual indicates that isync is required
after mtmsr(DE bit) and mtspr DBCR0.  Add isyncs to make the code
conform to the spec.
Signed-off-by: default avatarBecky Bruce <becky.bruce@freescale.com>
Signed-off-by: default avatarKumar Gala <galak@kernel.crashing.org>
Signed-off-by: default avatarPaul Mackerras <paulus@samba.org>
parent fbc94e7c
...@@ -316,6 +316,7 @@ skpinv: addi r6,r6,1 /* Increment */ ...@@ -316,6 +316,7 @@ skpinv: addi r6,r6,1 /* Increment */
*/ */
lis r2,DBCR0_IDM@h lis r2,DBCR0_IDM@h
mtspr SPRN_DBCR0,r2 mtspr SPRN_DBCR0,r2
isync
/* clear any residual debug events */ /* clear any residual debug events */
li r2,-1 li r2,-1
mtspr SPRN_DBSR,r2 mtspr SPRN_DBSR,r2
...@@ -1002,12 +1003,15 @@ _GLOBAL(giveup_fpu) ...@@ -1002,12 +1003,15 @@ _GLOBAL(giveup_fpu)
_GLOBAL(abort) _GLOBAL(abort)
li r13,0 li r13,0
mtspr SPRN_DBCR0,r13 /* disable all debug events */ mtspr SPRN_DBCR0,r13 /* disable all debug events */
isync
mfmsr r13 mfmsr r13
ori r13,r13,MSR_DE@l /* Enable Debug Events */ ori r13,r13,MSR_DE@l /* Enable Debug Events */
mtmsr r13 mtmsr r13
isync
mfspr r13,SPRN_DBCR0 mfspr r13,SPRN_DBCR0
lis r13,(DBCR0_IDM|DBCR0_RST_CHIP)@h lis r13,(DBCR0_IDM|DBCR0_RST_CHIP)@h
mtspr SPRN_DBCR0,r13 mtspr SPRN_DBCR0,r13
isync
_GLOBAL(set_context) _GLOBAL(set_context)
......
...@@ -316,6 +316,7 @@ skpinv: addi r6,r6,1 /* Increment */ ...@@ -316,6 +316,7 @@ skpinv: addi r6,r6,1 /* Increment */
*/ */
lis r2,DBCR0_IDM@h lis r2,DBCR0_IDM@h
mtspr SPRN_DBCR0,r2 mtspr SPRN_DBCR0,r2
isync
/* clear any residual debug events */ /* clear any residual debug events */
li r2,-1 li r2,-1
mtspr SPRN_DBSR,r2 mtspr SPRN_DBSR,r2
...@@ -1002,12 +1003,15 @@ _GLOBAL(giveup_fpu) ...@@ -1002,12 +1003,15 @@ _GLOBAL(giveup_fpu)
_GLOBAL(abort) _GLOBAL(abort)
li r13,0 li r13,0
mtspr SPRN_DBCR0,r13 /* disable all debug events */ mtspr SPRN_DBCR0,r13 /* disable all debug events */
isync
mfmsr r13 mfmsr r13
ori r13,r13,MSR_DE@l /* Enable Debug Events */ ori r13,r13,MSR_DE@l /* Enable Debug Events */
mtmsr r13 mtmsr r13
isync
mfspr r13,SPRN_DBCR0 mfspr r13,SPRN_DBCR0
lis r13,(DBCR0_IDM|DBCR0_RST_CHIP)@h lis r13,(DBCR0_IDM|DBCR0_RST_CHIP)@h
mtspr SPRN_DBCR0,r13 mtspr SPRN_DBCR0,r13
isync
_GLOBAL(set_context) _GLOBAL(set_context)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment