diff options
author | Akira Takeuchi <takeuchi.akr@jp.panasonic.com> | 2010-10-27 12:28:48 -0400 |
---|---|---|
committer | David Howells <dhowells@redhat.com> | 2010-10-27 12:28:48 -0400 |
commit | 8f19e3daf3fffee9e18a8812067a6a4b538ae6c8 (patch) | |
tree | 854a50f4fae7f35688171cb20874cfddabda99a4 /arch/mn10300/kernel | |
parent | 633171861a3120af011bb1ee8dd40069951dfeac (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.S | 8 |
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: | |||
251 | ENTRY(raw_bus_error) | 251 | ENTRY(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) | |||
282 | ENTRY(__common_exception) | 286 | ENTRY(__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 |