[PATCH] ARM: Prevent _ARMV4_Exception_fiq_default from re-enabling FIQs.

Martin Galvan martin.galvan at tallertechnologies.com
Thu Feb 26 17:39:05 UTC 2015


In _ARMV4_Exception_fiq_default, set the F bit of the SPSR so that when it gets loaded back to the CPSR in save_more_context it won't re-enable the FIQs.

Tested on a TMS570LS3137.
---
 cpukit/score/cpu/arm/armv4-exception-default.S | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/cpukit/score/cpu/arm/armv4-exception-default.S b/cpukit/score/cpu/arm/armv4-exception-default.S
index a0ee46c..a10de30 100644
--- a/cpukit/score/cpu/arm/armv4-exception-default.S
+++ b/cpukit/score/cpu/arm/armv4-exception-default.S
@@ -99,6 +99,14 @@ _ARMV4_Exception_fiq_default:
 	stmdb	sp!, {r0-r12}
 	mov	r4, #7

+	/*
+	 * Don't enable FIQs yet. Set the FIQ disable bit in the SPSR
+	 * (which we'll load into the CPSR in save_more_context).
+	 */
+	mrs r2, spsr
+	orr r2, #ARM_PSR_F
+	msr spsr_c, r2
+
 save_more_context:

 	/* Save more context */
--
2.3.0




More information about the devel mailing list