X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=include%2Fasm-m68knommu%2Fsystem.h;h=ce3f0b0226df1f07cf5d34e27a7c388ec2dbc43f;hb=6a77f38946aaee1cd85eeec6cf4229b204c15071;hp=e12f9eb46e846245f203c6487ff5a45cfd0b20dc;hpb=87fc8d1bb10cd459024a742c6a10961fefcef18f;p=linux-2.6.git diff --git a/include/asm-m68knommu/system.h b/include/asm-m68knommu/system.h index e12f9eb46..ce3f0b022 100644 --- a/include/asm-m68knommu/system.h +++ b/include/asm-m68knommu/system.h @@ -257,6 +257,19 @@ cmpxchg(volatile int *p, int old, int new) jmp (%a0); \ "); \ }) +#elif defined(CONFIG_M528x) +/* + * The MCF528x has a bit (SOFTRST) in memory (Reset Control Register RCR), + * that when set, resets the MCF528x. + */ +#define HARD_RESET_NOW() \ +({ \ + unsigned char volatile *reset; \ + asm("move.w #0x2700, %sr"); \ + reset = ((volatile unsigned short *)(MCF_IPSBAR + 0x110000)); \ + while(1) \ + *reset |= (0x01 << 7);\ +}) #else #define HARD_RESET_NOW() ({ \ asm(" \