Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

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

[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
Loading
Loading
Loading
Loading
+4 −0
Original line number Original line Diff line number Diff line
@@ -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)
_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)


+4 −0
Original line number Original line Diff line number Diff line
@@ -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)
_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)