| /* |
| ** asm-ppc/amigappc.h -- This header defines some values and pointers for |
| ** the Phase 5 PowerUp card. |
| ** |
| ** Copyright 1997, 1998 by Phase5, Germany. |
| ** |
| ** This file is subject to the terms and conditions of the GNU General Public |
| ** License. See the file COPYING in the main directory of this archive |
| ** for more details. |
| ** |
| ** Created: 7/22/97 by Jesper Skov |
| */ |
| |
| #ifdef __KERNEL__ |
| #ifndef _M68K_AMIGAPPC_H |
| #define _M68K_AMIGAPPC_H |
| |
| #ifndef __ASSEMBLY__ |
| |
| /* #include <asm/system.h> */ |
| #define mb() __asm__ __volatile__ ("sync" : : : "memory") |
| |
| #define APUS_WRITE(_a_, _v_) \ |
| do { \ |
| (*((volatile unsigned char *)(_a_)) = (_v_)); \ |
| mb(); \ |
| } while (0) |
| |
| #define APUS_READ(_a_, _v_) \ |
| do { \ |
| (_v_) = (*((volatile unsigned char *)(_a_))); \ |
| mb(); \ |
| } while (0) |
| #endif /* ndef __ASSEMBLY__ */ |
| |
| /* Maybe add a [#ifdef WANT_ZTWOBASE] condition to amigahw.h? */ |
| #define zTwoBase (0x80000000) |
| |
| #define APUS_IPL_BASE (zTwoBase + 0x00f60000) |
| #define APUS_REG_RESET (APUS_IPL_BASE + 0x00) |
| #define APUS_REG_WAITSTATE (APUS_IPL_BASE + 0x10) |
| #define APUS_REG_SHADOW (APUS_IPL_BASE + 0x18) |
| #define APUS_REG_LOCK (APUS_IPL_BASE + 0x20) |
| #define APUS_REG_INT (APUS_IPL_BASE + 0x28) |
| #define APUS_IPL_EMU (APUS_IPL_BASE + 0x30) |
| #define APUS_INT_LVL (APUS_IPL_BASE + 0x38) |
| |
| #define REGSHADOW_SETRESET (0x80) |
| #define REGSHADOW_SELFRESET (0x40) |
| |
| #define REGLOCK_SETRESET (0x80) |
| #define REGLOCK_BLACKMAGICK1 (0x40) |
| #define REGLOCK_BLACKMAGICK2 (0x20) |
| #define REGLOCK_BLACKMAGICK3 (0x10) |
| |
| #define REGWAITSTATE_SETRESET (0x80) |
| #define REGWAITSTATE_PPCW (0x08) |
| #define REGWAITSTATE_PPCR (0x04) |
| |
| #define REGRESET_SETRESET (0x80) |
| #define REGRESET_PPCRESET (0x10) |
| #define REGRESET_M68KRESET (0x08) |
| #define REGRESET_AMIGARESET (0x04) |
| #define REGRESET_AUXRESET (0x02) |
| #define REGRESET_SCSIRESET (0x01) |
| |
| #define REGINT_SETRESET (0x80) |
| #define REGINT_ENABLEIPL (0x02) |
| #define REGINT_INTMASTER (0x01) |
| |
| #define IPLEMU_SETRESET (0x80) |
| #define IPLEMU_DISABLEINT (0x40) |
| #define IPLEMU_IPL2 (0x20) |
| #define IPLEMU_IPL1 (0x10) |
| #define IPLEMU_IPL0 (0x08) |
| #define IPLEMU_PPCIPL2 (0x04) |
| #define IPLEMU_PPCIPL1 (0x02) |
| #define IPLEMU_PPCIPL0 (0x01) |
| #define IPLEMU_IPLMASK (IPLEMU_PPCIPL2|IPLEMU_PPCIPL1|IPLEMU_PPCIPL0) |
| |
| #define INTLVL_SETRESET (0x80) |
| #define INTLVL_MASK (0x7f) |
| |
| #endif /* _M68k_AMIGAPPC_H */ |
| #endif /* __KERNEL__ */ |