diff options
author | Mike Frysinger <michael.frysinger@analog.com> | 2007-08-05 05:03:59 -0400 |
---|---|---|
committer | Bryan Wu <bryan.wu@analog.com> | 2007-08-05 05:03:59 -0400 |
commit | f0b5d12f2b3226c85258519d7725e63d9daf5e90 (patch) | |
tree | d64fdcf65cb5f647b544ece5f1727af5153c0a3d /arch/blackfin/mach-common/interrupt.S | |
parent | 0174dd59bb5f343e8981b5ea7a3dc782fad5b644 (diff) |
Blackfin arch: allow people to select the feature that is unavailable to the kernel
- allow people to select the feature that is unavailable to the kernel: NMI, JTAG, or CYCLES.
- change default NMI handler to simply dump hardware trace buffer.
- remove default NMI handler completely as calling into kernel code is not safe
move example handler to wiki so people dont haphazardly copy and paste this stuff thinking its safe
Signed-off-by: Mike Frysinger <michael.frysinger@analog.com>
Signed-off-by: Bryan Wu <bryan.wu@analog.com>
Diffstat (limited to 'arch/blackfin/mach-common/interrupt.S')
-rw-r--r-- | arch/blackfin/mach-common/interrupt.S | 28 |
1 files changed, 8 insertions, 20 deletions
diff --git a/arch/blackfin/mach-common/interrupt.S b/arch/blackfin/mach-common/interrupt.S index 1d5ba5e3d91c..c6b32fe0f6e9 100644 --- a/arch/blackfin/mach-common/interrupt.S +++ b/arch/blackfin/mach-common/interrupt.S | |||
@@ -177,27 +177,15 @@ ENTRY(_evt_ivhw) | |||
177 | jump .Lcommon_restore_context; | 177 | jump .Lcommon_restore_context; |
178 | #endif | 178 | #endif |
179 | 179 | ||
180 | /* interrupt routine for evt2 - 2. This is NMI. */ | 180 | /* Interrupt routine for evt2 (NMI). |
181 | ENTRY(_evt_evt2) | 181 | * We don't actually use this, so just return. |
182 | SAVE_CONTEXT | 182 | * For inner circle type details, please see: |
183 | #ifdef CONFIG_FRAME_POINTER | 183 | * http://docs.blackfin.uclinux.org/doku.php?id=linux:nmi |
184 | fp = 0; | 184 | */ |
185 | #endif | 185 | ENTRY(_evt_nmi) |
186 | #if ANOMALY_05000283 | 186 | .weak _evt_nmi |
187 | cc = r7 == r7; | ||
188 | p5.h = 0xffc0; | ||
189 | p5.l = 0x0014; | ||
190 | if cc jump 1f; | ||
191 | r7.l = W[p5]; | ||
192 | 1: | ||
193 | #endif | ||
194 | r0 = IRQ_NMI; | ||
195 | r1 = sp; | ||
196 | SP += -12; | ||
197 | call _asm_do_IRQ; | ||
198 | SP += 12; | ||
199 | RESTORE_CONTEXT | ||
200 | rtn; | 187 | rtn; |
188 | ENDPROC(_evt_nmi) | ||
201 | 189 | ||
202 | /* interrupt routine for core timer - 6 */ | 190 | /* interrupt routine for core timer - 6 */ |
203 | ENTRY(_evt_timer) | 191 | ENTRY(_evt_timer) |