86 строки
2.3 KiB
C
86 строки
2.3 KiB
C
/*
|
|
** 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__ */
|