diff options
author | Greg Ungerer <gerg@snapgear.com> | 2005-11-02 00:12:42 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2005-11-02 00:41:20 -0500 |
commit | 01824853b1991b6ade506ee1b75f103a6eb8f558 (patch) | |
tree | 8533fd4983155854a60598af39a503dff68fab18 /include/asm-m68knommu/system.h | |
parent | 06227039b5eb8ed5965f995e45c8cfee154fb883 (diff) |
[PATCH] m68knommu: add 5208 ColdFire reset/reboot support
Add reset/reboot code to support the ColdFire 5208 family.
Patch originally from Matt Wadell (from code originally written by
Mike Lavender).
Signed-off-by: Greg Ungerer <gerg@uclinux.com>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'include/asm-m68knommu/system.h')
-rw-r--r-- | include/asm-m68knommu/system.h | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/include/asm-m68knommu/system.h b/include/asm-m68knommu/system.h index 53cbbad0f130..6338afc850ba 100644 --- a/include/asm-m68knommu/system.h +++ b/include/asm-m68knommu/system.h | |||
@@ -312,6 +312,19 @@ cmpxchg(volatile int *p, int old, int new) | |||
312 | moveb #0x80, (%a0); \ | 312 | moveb #0x80, (%a0); \ |
313 | "); \ | 313 | "); \ |
314 | }) | 314 | }) |
315 | #elif defined(CONFIG_M520x) | ||
316 | /* | ||
317 | * The MCF5208 has a bit (SOFTRST) in memory (Reset Control Register | ||
318 | * RCR), that when set, resets the MCF5208. | ||
319 | */ | ||
320 | #define HARD_RESET_NOW() \ | ||
321 | ({ \ | ||
322 | unsigned char volatile *reset; \ | ||
323 | asm("move.w #0x2700, %sr"); \ | ||
324 | reset = ((volatile unsigned short *)(MCF_IPSBAR + 0xA0000)); \ | ||
325 | while(1) \ | ||
326 | *reset |= 0x80; \ | ||
327 | }) | ||
315 | #else | 328 | #else |
316 | #define HARD_RESET_NOW() ({ \ | 329 | #define HARD_RESET_NOW() ({ \ |
317 | asm(" \ | 330 | asm(" \ |