aboutsummaryrefslogtreecommitdiffstats
path: root/arch/mn10300/kernel
diff options
context:
space:
mode:
authorAkira Takeuchi <takeuchi.akr@jp.panasonic.com>2010-10-27 12:28:48 -0400
committerDavid Howells <dhowells@redhat.com>2010-10-27 12:28:48 -0400
commit8f19e3daf3fffee9e18a8812067a6a4b538ae6c8 (patch)
tree854a50f4fae7f35688171cb20874cfddabda99a4 /arch/mn10300/kernel
parent633171861a3120af011bb1ee8dd40069951dfeac (diff)
MN10300: AM34 erratum requires MMUCTR read and write on exception entry
An AM34 erratum requires MMUCTR read and write on entry to certain exceptions, prior to EPSW.NMID being cleared to allow NMIs to happen. Signed-off-by: Akira Takeuchi <takeuchi.akr@jp.panasonic.com> Signed-off-by: Kiyoshi Owada <owada.kiyoshi@jp.panasonic.com> Signed-off-by: David Howells <dhowells@redhat.com>
Diffstat (limited to 'arch/mn10300/kernel')
-rw-r--r--arch/mn10300/kernel/entry.S8
1 files changed, 8 insertions, 0 deletions
diff --git a/arch/mn10300/kernel/entry.S b/arch/mn10300/kernel/entry.S
index b82ce7b47fcb..355f68176771 100644
--- a/arch/mn10300/kernel/entry.S
+++ b/arch/mn10300/kernel/entry.S
@@ -251,6 +251,10 @@ double_fault_loop:
251ENTRY(raw_bus_error) 251ENTRY(raw_bus_error)
252 add -4,sp 252 add -4,sp
253 mov d0,(sp) 253 mov d0,(sp)
254#if defined(CONFIG_ERRATUM_NEED_TO_RELOAD_MMUCTR)
255 mov (MMUCTR),d0
256 mov d0,(MMUCTR)
257#endif
254 mov (BCBERR),d0 # what 258 mov (BCBERR),d0 # what
255 btst BCBERR_BEMR_DMA,d0 # see if it was an external bus error 259 btst BCBERR_BEMR_DMA,d0 # see if it was an external bus error
256 beq __common_exception_aux # it wasn't 260 beq __common_exception_aux # it wasn't
@@ -282,6 +286,10 @@ ENTRY(nmi_handler)
282ENTRY(__common_exception) 286ENTRY(__common_exception)
283 add -4,sp 287 add -4,sp
284 mov d0,(sp) 288 mov d0,(sp)
289#if defined(CONFIG_ERRATUM_NEED_TO_RELOAD_MMUCTR)
290 mov (MMUCTR),d0
291 mov d0,(MMUCTR)
292#endif
285 293
286__common_exception_aux: 294__common_exception_aux:
287 mov (TBR),d0 295 mov (TBR),d0