To: linux-m68k@lists.linux-m68k.org Subject: L68K: 2.1.79 X-Yow: My LIBRARY CARD expired... From: Andreas Schwab Date: 16 Jan 1998 10:59:00 +0100 Sender: owner-linux-m68k@phil.uni-sb.de It's time again for a mega patch, but it's only so big because i have moved around some files: has been renamed to (note the new directory level). Btw, `void main' is verboten, it can cause daemons to flow out of your nose. :-) Andreas. table `!"#$%&'()*+,-./0123456789:;<=>? @ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_ diff -urNX exclude linux-2.1.79.orig/arch/m68k/amiga/amiga_ksyms.c linux-2.1.79/arch/m68k/amiga/amiga_ksyms.c --- linux-2.1.79.orig/arch/m68k/amiga/amiga_ksyms.c Mon Mar 24 16:47:18 1997 +++ linux-2.1.79/arch/m68k/amiga/amiga_ksyms.c Thu Jan 15 00:02:49 1998 @@ -2,7 +2,7 @@ #include #include #include -#include +#include extern volatile u_short amiga_audio_min_period; extern u_short amiga_audio_period; diff -urNX exclude linux-2.1.79.orig/arch/m68k/amiga/amiints.c linux-2.1.79/arch/m68k/amiga/amiints.c --- linux-2.1.79.orig/arch/m68k/amiga/amiints.c Tue May 20 17:45:41 1997 +++ linux-2.1.79/arch/m68k/amiga/amiints.c Thu Jan 15 00:03:14 1998 @@ -30,8 +30,8 @@ #include #include #include -#include -#include +#include +#include extern int cia_request_irq(struct ciabase *base,int irq, void (*handler)(int, void *, struct pt_regs *), diff -urNX exclude linux-2.1.79.orig/arch/m68k/amiga/amisound.c linux-2.1.79/arch/m68k/amiga/amisound.c --- linux-2.1.79.orig/arch/m68k/amiga/amisound.c Fri May 30 18:36:37 1997 +++ linux-2.1.79/arch/m68k/amiga/amisound.c Thu Jan 15 00:03:33 1998 @@ -13,7 +13,7 @@ #include #include -#include +#include static u_short *snd_data = NULL; static const signed char sine_data[] = { diff -urNX exclude linux-2.1.79.orig/arch/m68k/amiga/chipram.c linux-2.1.79/arch/m68k/amiga/chipram.c --- linux-2.1.79.orig/arch/m68k/amiga/chipram.c Tue May 20 17:45:42 1997 +++ linux-2.1.79/arch/m68k/amiga/chipram.c Thu Jan 15 00:03:48 1998 @@ -9,7 +9,7 @@ #include #include #include -#include +#include struct chip_desc { unsigned first : 1; diff -urNX exclude linux-2.1.79.orig/arch/m68k/amiga/cia.c linux-2.1.79/arch/m68k/amiga/cia.c --- linux-2.1.79.orig/arch/m68k/amiga/cia.c Tue May 20 17:45:42 1997 +++ linux-2.1.79/arch/m68k/amiga/cia.c Thu Jan 15 00:04:32 1998 @@ -18,8 +18,8 @@ #include #include -#include -#include +#include +#include struct ciabase { volatile struct CIA *cia; diff -urNX exclude linux-2.1.79.orig/arch/m68k/amiga/config.c linux-2.1.79/arch/m68k/amiga/config.c --- linux-2.1.79.orig/arch/m68k/amiga/config.c Fri Jan 9 18:09:45 1998 +++ linux-2.1.79/arch/m68k/amiga/config.c Thu Jan 15 00:04:51 1998 @@ -25,8 +25,8 @@ #include #include #include -#include -#include +#include +#include #include #include #include diff -urNX exclude linux-2.1.79.orig/arch/m68k/amiga/zorro.c linux-2.1.79/arch/m68k/amiga/zorro.c --- linux-2.1.79.orig/arch/m68k/amiga/zorro.c Wed Dec 17 19:48:56 1997 +++ linux-2.1.79/arch/m68k/amiga/zorro.c Thu Jan 15 00:05:04 1998 @@ -15,7 +15,7 @@ #include #include #include -#include +#include #include diff -urNX exclude linux-2.1.79.orig/arch/m68k/apollo/config.c linux-2.1.79/arch/m68k/apollo/config.c --- linux-2.1.79.orig/arch/m68k/apollo/config.c Fri Nov 7 19:13:15 1997 +++ linux-2.1.79/arch/m68k/apollo/config.c Thu Jan 15 00:06:34 1998 @@ -10,7 +10,7 @@ #include #include #include -#include +#include #include #include diff -urNX exclude linux-2.1.79.orig/arch/m68k/apollo/dn_ints.c linux-2.1.79/arch/m68k/apollo/dn_ints.c --- linux-2.1.79.orig/arch/m68k/apollo/dn_ints.c Fri Nov 7 19:13:15 1997 +++ linux-2.1.79/arch/m68k/apollo/dn_ints.c Thu Jan 15 00:07:25 1998 @@ -8,7 +8,7 @@ #include #include #include -#include +#include static irq_handler_t dn_irqs[16]; diff -urNX exclude linux-2.1.79.orig/arch/m68k/atari/ataints.c linux-2.1.79/arch/m68k/atari/ataints.c --- linux-2.1.79.orig/arch/m68k/atari/ataints.c Fri Jan 9 18:09:46 1998 +++ linux-2.1.79/arch/m68k/atari/ataints.c Thu Jan 15 00:08:39 1998 @@ -44,9 +44,9 @@ #include #include -#include -#include -#include +#include +#include +#include #include #include diff -urNX exclude linux-2.1.79.orig/arch/m68k/atari/atakeyb.c linux-2.1.79/arch/m68k/atari/atakeyb.c --- linux-2.1.79.orig/arch/m68k/atari/atakeyb.c Wed Dec 17 19:48:58 1997 +++ linux-2.1.79/arch/m68k/atari/atakeyb.c Thu Jan 15 00:09:06 1998 @@ -25,11 +25,11 @@ #include #include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include #include extern unsigned char mach_keyboard_type; diff -urNX exclude linux-2.1.79.orig/arch/m68k/atari/atari_ksyms.c linux-2.1.79/arch/m68k/atari/atari_ksyms.c --- linux-2.1.79.orig/arch/m68k/atari/atari_ksyms.c Fri Dec 19 18:06:22 1997 +++ linux-2.1.79/arch/m68k/atari/atari_ksyms.c Thu Jan 15 00:09:48 1998 @@ -2,12 +2,12 @@ #include #include #include -#include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include +#include extern void atari_microwire_cmd( int cmd ); extern int atari_MFP_init_done; diff -urNX exclude linux-2.1.79.orig/arch/m68k/atari/atasound.c linux-2.1.79/arch/m68k/atari/atasound.c --- linux-2.1.79.orig/arch/m68k/atari/atasound.c Fri Jan 9 18:09:47 1998 +++ linux-2.1.79/arch/m68k/atari/atasound.c Thu Jan 15 00:10:08 1998 @@ -20,11 +20,11 @@ #include #include -#include +#include #include #include #include -#include +#include /* diff -urNX exclude linux-2.1.79.orig/arch/m68k/atari/config.c linux-2.1.79/arch/m68k/atari/config.c --- linux-2.1.79.orig/arch/m68k/atari/config.c Sat Jan 10 14:44:35 1998 +++ linux-2.1.79/arch/m68k/atari/config.c Thu Jan 15 00:10:38 1998 @@ -33,9 +33,9 @@ #include #include -#include -#include -#include +#include +#include +#include #include #include diff -urNX exclude linux-2.1.79.orig/arch/m68k/atari/debug.c linux-2.1.79/arch/m68k/atari/debug.c --- linux-2.1.79.orig/arch/m68k/atari/debug.c Fri Jan 9 18:09:49 1998 +++ linux-2.1.79/arch/m68k/atari/debug.c Thu Jan 15 00:10:54 1998 @@ -17,8 +17,8 @@ #include #include -#include -#include +#include +#include extern char m68k_debug_device[]; diff -urNX exclude linux-2.1.79.orig/arch/m68k/atari/joystick.c linux-2.1.79/arch/m68k/atari/joystick.c --- linux-2.1.79.orig/arch/m68k/atari/joystick.c Sat Nov 8 01:24:21 1997 +++ linux-2.1.79/arch/m68k/atari/joystick.c Thu Jan 15 00:11:13 1998 @@ -13,9 +13,9 @@ #include #include -#include -#include -#include +#include +#include +#include #include #define MAJOR_NR JOYSTICK_MAJOR diff -urNX exclude linux-2.1.79.orig/arch/m68k/atari/stdma.c linux-2.1.79/arch/m68k/atari/stdma.c --- linux-2.1.79.orig/arch/m68k/atari/stdma.c Fri Jan 9 18:09:49 1998 +++ linux-2.1.79/arch/m68k/atari/stdma.c Thu Jan 15 00:11:30 1998 @@ -33,9 +33,9 @@ #include #include -#include -#include -#include +#include +#include +#include #include #include diff -urNX exclude linux-2.1.79.orig/arch/m68k/atari/stram.c linux-2.1.79/arch/m68k/atari/stram.c --- linux-2.1.79.orig/arch/m68k/atari/stram.c Sat Jan 10 00:56:08 1998 +++ linux-2.1.79/arch/m68k/atari/stram.c Thu Jan 15 00:11:49 1998 @@ -23,8 +23,8 @@ #include #include #include -#include -#include +#include +#include #ifdef CONFIG_STRAM_SWAP diff -urNX exclude linux-2.1.79.orig/arch/m68k/kernel/bios32.c linux-2.1.79/arch/m68k/kernel/bios32.c --- linux-2.1.79.orig/arch/m68k/kernel/bios32.c Fri Jan 9 18:09:53 1998 +++ linux-2.1.79/arch/m68k/kernel/bios32.c Thu Jan 15 00:13:24 1998 @@ -38,8 +38,8 @@ #include #include -#include -#include +#include +#include #include #include #include diff -urNX exclude linux-2.1.79.orig/arch/m68k/kernel/kgdb.c linux-2.1.79/arch/m68k/kernel/kgdb.c --- linux-2.1.79.orig/arch/m68k/kernel/kgdb.c Fri Jan 9 18:09:55 1998 +++ linux-2.1.79/arch/m68k/kernel/kgdb.c Thu Jan 15 00:18:25 1998 @@ -182,12 +182,12 @@ #include #include #ifdef CONFIG_ATARI -#include -#include +#include +#include #endif #ifdef CONFIG_AMIGA -#include -#include +#include +#include #endif diff -urNX exclude linux-2.1.79.orig/arch/m68k/kernel/m68k_defs.c linux-2.1.79/arch/m68k/kernel/m68k_defs.c --- linux-2.1.79.orig/arch/m68k/kernel/m68k_defs.c Mon Jan 12 20:15:46 1998 +++ linux-2.1.79/arch/m68k/kernel/m68k_defs.c Thu Jan 15 08:07:42 1998 @@ -14,9 +14,10 @@ #define DEFINE(sym, val) \ asm volatile("\n#define " #sym " %0" : : "i" (val)) -void main(void) +int main(void) { DEFINE(TS_TSS, offsetof(struct task_struct, tss)); DEFINE(TS_ESP0, offsetof(struct task_struct, tss.esp0)); DEFINE(TS_FPU, offsetof(struct task_struct, tss.fp)); + return 0; } diff -urNX exclude linux-2.1.79.orig/arch/m68k/kernel/setup.c linux-2.1.79/arch/m68k/kernel/setup.c --- linux-2.1.79.orig/arch/m68k/kernel/setup.c Fri Jan 9 18:09:56 1998 +++ linux-2.1.79/arch/m68k/kernel/setup.c Thu Jan 15 00:19:57 1998 @@ -25,10 +25,10 @@ #include #include #ifdef CONFIG_AMIGA -#include +#include #endif #ifdef CONFIG_ATARI -#include +#include #endif #ifdef CONFIG_BLK_DEV_INITRD diff -urNX exclude linux-2.1.79.orig/arch/m68k/mm/fault.c linux-2.1.79/arch/m68k/mm/fault.c --- linux-2.1.79.orig/arch/m68k/mm/fault.c Fri Jul 18 18:12:04 1997 +++ linux-2.1.79/arch/m68k/mm/fault.c Wed Jan 14 20:45:15 1998 @@ -110,8 +110,6 @@ /* Are we prepared to handle this kernel fault? */ if ((fixup = search_exception_table(regs->pc)) != 0) { struct pt_regs *tregs; - printk(KERN_DEBUG "%s: Exception at [<%lx>] (%lx)\n", - tsk->comm, regs->pc, fixup); /* Create a new four word stack frame, discarding the old one. */ regs->stkadj = frame_extra_sizes[regs->format]; diff -urNX exclude linux-2.1.79.orig/arch/m68k/mm/init.c linux-2.1.79/arch/m68k/mm/init.c --- linux-2.1.79.orig/arch/m68k/mm/init.c Wed Dec 17 21:26:29 1997 +++ linux-2.1.79/arch/m68k/mm/init.c Thu Jan 15 00:25:31 1998 @@ -24,7 +24,7 @@ #include #include #ifdef CONFIG_ATARI -#include +#include #endif extern void die_if_kernel(char *,struct pt_regs *,long); @@ -66,6 +66,7 @@ { unsigned long i; int free = 0, total = 0, reserved = 0, nonshared = 0, shared = 0; + int cached = 0; printk("\nMem-info:\n"); show_free_areas(); @@ -75,6 +76,8 @@ total++; if (PageReserved(mem_map+i)) reserved++; + if (PageSwapCache(mem_map+i)) + cached++; else if (!atomic_read(&mem_map[i].count)) free++; else if (atomic_read(&mem_map[i].count) == 1) @@ -87,6 +90,7 @@ printk("%d reserved pages\n",reserved); printk("%d pages nonshared\n",nonshared); printk("%d pages shared\n",shared); + printk("%d pages swap cached\n",cached); show_buffers(); #ifdef CONFIG_NET show_net_buffers(); diff -urNX exclude linux-2.1.79.orig/arch/m68k/mm/memory.c linux-2.1.79/arch/m68k/mm/memory.c --- linux-2.1.79.orig/arch/m68k/mm/memory.c Wed Dec 17 19:49:12 1997 +++ linux-2.1.79/arch/m68k/mm/memory.c Thu Jan 15 00:39:43 1998 @@ -16,7 +16,9 @@ #include #include #include -#include +#ifdef CONFIG_AMIGA +#include +#endif /* Strings for `extern inline' functions in . If put directly into these functions, they are output for every file that @@ -451,12 +453,14 @@ * */ +#ifdef CONFIG_AMIGA /* * if on an amiga and address is in first 16M, move it - * to the ZTWO_ADDR range + * to the ZTWO_VADDR range */ if (MACH_IS_AMIGA && paddr < 16*1024*1024) return ZTWO_VADDR(paddr); +#endif return paddr; } diff -urNX exclude linux-2.1.79.orig/arch/m68k/mvme16x/config.c linux-2.1.79/arch/m68k/mvme16x/config.c --- linux-2.1.79.orig/arch/m68k/mvme16x/config.c Fri Jan 9 18:09:57 1998 +++ linux-2.1.79/arch/m68k/mvme16x/config.c Thu Jan 15 00:41:08 1998 @@ -32,7 +32,7 @@ #include #include #include -#include +#include typedef struct { unsigned char diff -urNX exclude linux-2.1.79.orig/drivers/block/acsi.c linux-2.1.79/drivers/block/acsi.c --- linux-2.1.79.orig/drivers/block/acsi.c Fri Jan 9 18:10:28 1998 +++ linux-2.1.79/drivers/block/acsi.c Thu Jan 15 00:46:25 1998 @@ -69,11 +69,11 @@ #include #include #include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include #define DEBUG diff -urNX exclude linux-2.1.79.orig/drivers/block/acsi_slm.c linux-2.1.79/drivers/block/acsi_slm.c --- linux-2.1.79.orig/drivers/block/acsi_slm.c Fri Jan 9 18:10:29 1998 +++ linux-2.1.79/drivers/block/acsi_slm.c Thu Jan 15 00:48:42 1998 @@ -69,12 +69,12 @@ #include #include #include -#include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include +#include #undef DEBUG diff -urNX exclude linux-2.1.79.orig/drivers/block/amiflop.c linux-2.1.79/drivers/block/amiflop.c --- linux-2.1.79.orig/drivers/block/amiflop.c Thu Sep 18 17:46:13 1997 +++ linux-2.1.79/drivers/block/amiflop.c Thu Jan 15 00:49:47 1998 @@ -66,10 +66,10 @@ #include #include -#include -#include -#include -#include +#include +#include +#include +#include #include #define MAJOR_NR FLOPPY_MAJOR diff -urNX exclude linux-2.1.79.orig/drivers/block/ataflop.c linux-2.1.79/drivers/block/ataflop.c --- linux-2.1.79.orig/drivers/block/ataflop.c Fri Jan 9 19:09:37 1998 +++ linux-2.1.79/drivers/block/ataflop.c Thu Jan 15 00:50:17 1998 @@ -84,12 +84,12 @@ #include #include -#include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include +#include #define MAJOR_NR FLOPPY_MAJOR #include diff -urNX exclude linux-2.1.79.orig/drivers/block/ide.c linux-2.1.79/drivers/block/ide.c --- linux-2.1.79.orig/drivers/block/ide.c Wed Jan 14 21:38:33 1998 +++ linux-2.1.79/drivers/block/ide.c Thu Jan 15 09:56:33 1998 @@ -202,8 +202,8 @@ /* ------------------------- Amiga Gayle IDE Driver ------------------------ */ -#include -#include +#include +#include /* @@ -359,8 +359,8 @@ /* ------------------------ Atari Falcon IDE Driver ------------------------ */ -#include -#include +#include +#include /* @@ -430,8 +430,8 @@ */ #include -#include -#include +#include +#include /* diff -urNX exclude linux-2.1.79.orig/drivers/block/z2ram.c linux-2.1.79/drivers/block/z2ram.c --- linux-2.1.79.orig/drivers/block/z2ram.c Tue May 20 17:46:50 1997 +++ linux-2.1.79/drivers/block/z2ram.c Thu Jan 15 00:52:38 1998 @@ -36,7 +36,7 @@ #include #include -#include +#include #include #define TRUE (1) diff -urNX exclude linux-2.1.79.orig/drivers/char/Makefile linux-2.1.79/drivers/char/Makefile --- linux-2.1.79.orig/drivers/char/Makefile Wed Jan 14 21:38:44 1998 +++ linux-2.1.79/drivers/char/Makefile Wed Jan 14 22:17:44 1998 @@ -38,13 +38,13 @@ endif endif +endif + ifdef CONFIG_FB LX_OBJS += fbmem.o endif -ifdef CONFIG_MAGIC_SYSRQ -L_OBJS += sysrq.o -endif +ifeq ($(ARCH),m68k) ifeq ($(CONFIG_AMIGA_GSP),y) M = y @@ -158,7 +158,7 @@ endif endif -else +else # !m68k ifeq ($(CONFIG_SERIAL),y) ifndef CONFIG_SUN_SERIAL @@ -179,6 +179,10 @@ ifneq ($(ARCH),m68k) L_OBJS += pc_keyb.o +endif + +ifdef CONFIG_MAGIC_SYSRQ +L_OBJS += sysrq.o endif ifdef CONFIG_AMIGA diff -urNX exclude linux-2.1.79.orig/drivers/char/amiga_ser.c linux-2.1.79/drivers/char/amiga_ser.c --- linux-2.1.79.orig/drivers/char/amiga_ser.c Wed Dec 17 19:50:15 1997 +++ linux-2.1.79/drivers/char/amiga_ser.c Thu Jan 15 00:54:40 1998 @@ -37,8 +37,8 @@ #include #include -#include -#include +#include +#include #include #include #include diff -urNX exclude linux-2.1.79.orig/drivers/char/amigamouse.c linux-2.1.79/drivers/char/amigamouse.c --- linux-2.1.79.orig/drivers/char/amigamouse.c Mon Nov 17 18:02:24 1997 +++ linux-2.1.79/drivers/char/amigamouse.c Thu Jan 15 00:55:01 1998 @@ -49,9 +49,9 @@ #include #include #include -#include -#include -#include +#include +#include +#include #define MSE_INT_ON() mouseint_allowed = 1 #define MSE_INT_OFF() mouseint_allowed = 0 diff -urNX exclude linux-2.1.79.orig/drivers/char/amikeyb.c linux-2.1.79/drivers/char/amikeyb.c --- linux-2.1.79.orig/drivers/char/amikeyb.c Fri Nov 7 20:10:04 1997 +++ linux-2.1.79/drivers/char/amikeyb.c Thu Jan 15 00:55:16 1998 @@ -25,8 +25,8 @@ #include #include -#include -#include +#include +#include #include #define AMIKEY_CAPS (0x62) diff -urNX exclude linux-2.1.79.orig/drivers/char/atari_MFPser.c linux-2.1.79/drivers/char/atari_MFPser.c --- linux-2.1.79.orig/drivers/char/atari_MFPser.c Fri Jan 9 18:11:09 1998 +++ linux-2.1.79/drivers/char/atari_MFPser.c Thu Jan 15 00:55:54 1998 @@ -54,8 +54,8 @@ #include #include -#include -#include +#include +#include #include #include "atari_MFPser.h" diff -urNX exclude linux-2.1.79.orig/drivers/char/atari_MIDI.c linux-2.1.79/drivers/char/atari_MIDI.c --- linux-2.1.79.orig/drivers/char/atari_MIDI.c Wed Dec 17 19:50:18 1997 +++ linux-2.1.79/drivers/char/atari_MIDI.c Thu Jan 15 00:56:26 1998 @@ -24,9 +24,9 @@ #include #include -#include -#include -#include +#include +#include +#include #include "atari_MIDI.h" diff -urNX exclude linux-2.1.79.orig/drivers/char/atari_SCC.c linux-2.1.79/drivers/char/atari_SCC.c --- linux-2.1.79.orig/drivers/char/atari_SCC.c Sun Jan 11 09:01:38 1998 +++ linux-2.1.79/drivers/char/atari_SCC.c Thu Jan 15 00:57:04 1998 @@ -52,14 +52,14 @@ #include #include #ifdef CONFIG_MVME162_SCC -#include +#include #endif #ifdef CONFIG_ATARI -#include -#include +#include +#include #endif #include -#include +#include #include "atari_SCC.h" diff -urNX exclude linux-2.1.79.orig/drivers/char/atari_SCC.h linux-2.1.79/drivers/char/atari_SCC.h --- linux-2.1.79.orig/drivers/char/atari_SCC.h Sun Jan 11 09:01:32 1998 +++ linux-2.1.79/drivers/char/atari_SCC.h Thu Jan 15 00:58:36 1998 @@ -15,10 +15,10 @@ #include #ifdef CONFIG_MVME162_SCC -#include +#include #endif #ifdef CONFIG_ATARI -#include +#include #endif #if !defined(CONFIG_ATARI) diff -urNX exclude linux-2.1.79.orig/drivers/char/atarimouse.c linux-2.1.79/drivers/char/atarimouse.c --- linux-2.1.79.orig/drivers/char/atarimouse.c Fri Nov 7 19:13:40 1997 +++ linux-2.1.79/drivers/char/atarimouse.c Thu Jan 15 01:00:01 1998 @@ -23,8 +23,8 @@ #include #include -#include -#include +#include +#include #include static struct mouse_status mouse; diff -urNX exclude linux-2.1.79.orig/drivers/char/dn_keyb.c linux-2.1.79/drivers/char/dn_keyb.c --- linux-2.1.79.orig/drivers/char/dn_keyb.c Fri Nov 7 19:13:42 1997 +++ linux-2.1.79/drivers/char/dn_keyb.c Thu Jan 15 01:01:58 1998 @@ -14,7 +14,7 @@ #include #include -#include +#include #include diff -urNX exclude linux-2.1.79.orig/drivers/char/dsp56k.c linux-2.1.79/drivers/char/dsp56k.c --- linux-2.1.79.orig/drivers/char/dsp56k.c Mon Nov 17 18:02:32 1997 +++ linux-2.1.79/drivers/char/dsp56k.c Thu Jan 15 09:56:47 1998 @@ -37,7 +37,7 @@ #include #include -#include +#include #include #include /* For put_user and get_user */ diff -urNX exclude linux-2.1.79.orig/drivers/char/lp_intern.c linux-2.1.79/drivers/char/lp_intern.c --- linux-2.1.79.orig/drivers/char/lp_intern.c Fri Jan 9 18:11:20 1998 +++ linux-2.1.79/drivers/char/lp_intern.c Thu Jan 15 01:04:38 1998 @@ -23,14 +23,14 @@ #include #include #ifdef CONFIG_AMIGA -#include -#include +#include +#include #endif #ifdef CONFIG_ATARI #include #include -#include -#include +#include +#include #endif #include diff -urNX exclude linux-2.1.79.orig/drivers/char/lp_mfc.c linux-2.1.79/drivers/char/lp_mfc.c --- linux-2.1.79.orig/drivers/char/lp_mfc.c Fri Jan 9 18:11:20 1998 +++ linux-2.1.79/drivers/char/lp_mfc.c Thu Jan 15 09:57:11 1998 @@ -17,10 +17,10 @@ #include #include #include -#include +#include #include #include -#include +#include #include "multiface.h" #include "mc6821.h" diff -urNX exclude linux-2.1.79.orig/drivers/char/nvram.c linux-2.1.79/drivers/char/nvram.c --- linux-2.1.79.orig/drivers/char/nvram.c Thu Dec 18 08:49:20 1997 +++ linux-2.1.79/drivers/char/nvram.c Thu Jan 15 01:07:53 1998 @@ -69,8 +69,8 @@ #if MACH == ATARI /* Special parameters for RTC in Atari machines */ -#include -#include +#include +#include #define RTC_PORT(x) (TT_RTC_BAS + 2*(x)) #define CHECK_DRIVER_INIT() (MACH_IS_ATARI && ATARIHW_PRESENT(TT_CLK)) diff -urNX exclude linux-2.1.79.orig/drivers/char/plip_ioext.c linux-2.1.79/drivers/char/plip_ioext.c --- linux-2.1.79.orig/drivers/char/plip_ioext.c Fri May 30 18:37:10 1997 +++ linux-2.1.79/drivers/char/plip_ioext.c Thu Jan 15 01:08:41 1998 @@ -23,8 +23,8 @@ #include #include -#include -#include +#include +#include #include #include diff -urNX exclude linux-2.1.79.orig/drivers/char/ser_ioext.c linux-2.1.79/drivers/char/ser_ioext.c --- linux-2.1.79.orig/drivers/char/ser_ioext.c Wed Dec 17 19:51:33 1997 +++ linux-2.1.79/drivers/char/ser_ioext.c Thu Jan 15 01:09:48 1998 @@ -100,8 +100,8 @@ #include #include -#include -#include +#include +#include #include #include "ioext.h" diff -urNX exclude linux-2.1.79.orig/drivers/char/ser_mfc.c linux-2.1.79/drivers/char/ser_mfc.c --- linux-2.1.79.orig/drivers/char/ser_mfc.c Wed Dec 17 19:51:35 1997 +++ linux-2.1.79/drivers/char/ser_mfc.c Thu Jan 15 01:10:39 1998 @@ -62,8 +62,8 @@ #include #include -#include -#include +#include +#include #include #include diff -urNX exclude linux-2.1.79.orig/drivers/char/ser_whippet.c linux-2.1.79/drivers/char/ser_whippet.c --- linux-2.1.79.orig/drivers/char/ser_whippet.c Thu Sep 18 17:46:41 1997 +++ linux-2.1.79/drivers/char/ser_whippet.c Thu Jan 15 01:11:00 1998 @@ -25,8 +25,8 @@ #include #include #include -#include -#include +#include +#include #include "ser_whippet.h" diff -urNX exclude linux-2.1.79.orig/drivers/char/serial167.c linux-2.1.79/drivers/char/serial167.c --- linux-2.1.79.orig/drivers/char/serial167.c Fri Jan 9 18:11:26 1998 +++ linux-2.1.79/drivers/char/serial167.c Thu Jan 15 01:11:27 1998 @@ -56,7 +56,7 @@ #include #include #include -#include +#include #include #include diff -urNX exclude linux-2.1.79.orig/drivers/char/tiga.c linux-2.1.79/drivers/char/tiga.c --- linux-2.1.79.orig/drivers/char/tiga.c Mon Jul 28 17:27:01 1997 +++ linux-2.1.79/drivers/char/tiga.c Thu Jan 15 09:57:26 1998 @@ -16,7 +16,7 @@ #include #include #include -#include +#include #define TIGA_MAJOR 63 #define MAX_TIGA 2 /* Maximum number of Tiga boards */ diff -urNX exclude linux-2.1.79.orig/drivers/net/a2065.c linux-2.1.79/drivers/net/a2065.c --- linux-2.1.79.orig/drivers/net/a2065.c Wed Dec 17 19:52:06 1997 +++ linux-2.1.79/drivers/net/a2065.c Thu Jan 15 01:16:12 1998 @@ -54,8 +54,8 @@ #include #include -#include -#include +#include +#include #include #include diff -urNX exclude linux-2.1.79.orig/drivers/net/ariadne.c linux-2.1.79/drivers/net/ariadne.c --- linux-2.1.79.orig/drivers/net/ariadne.c Mon Jul 28 17:27:21 1997 +++ linux-2.1.79/drivers/net/ariadne.c Thu Jan 15 01:16:53 1998 @@ -52,8 +52,8 @@ #include #include -#include -#include +#include +#include #include #include #include diff -urNX exclude linux-2.1.79.orig/drivers/net/atari_bionet.c linux-2.1.79/drivers/net/atari_bionet.c --- linux-2.1.79.orig/drivers/net/atari_bionet.c Tue May 20 17:48:11 1997 +++ linux-2.1.79/drivers/net/atari_bionet.c Thu Jan 15 01:17:18 1998 @@ -107,10 +107,10 @@ #include #include #include -#include -#include -#include -#include +#include +#include +#include +#include extern struct device *init_etherdev(struct device *dev, int sizeof_private); diff -urNX exclude linux-2.1.79.orig/drivers/net/atari_pamsnet.c linux-2.1.79/drivers/net/atari_pamsnet.c --- linux-2.1.79.orig/drivers/net/atari_pamsnet.c Tue May 20 17:48:11 1997 +++ linux-2.1.79/drivers/net/atari_pamsnet.c Thu Jan 15 01:17:55 1998 @@ -95,10 +95,10 @@ #include #include #include -#include -#include -#include -#include +#include +#include +#include +#include #include #include diff -urNX exclude linux-2.1.79.orig/drivers/net/atarilance.c linux-2.1.79/drivers/net/atarilance.c --- linux-2.1.79.orig/drivers/net/atarilance.c Fri Jan 9 18:11:43 1998 +++ linux-2.1.79/drivers/net/atarilance.c Thu Jan 15 01:18:14 1998 @@ -59,8 +59,8 @@ #include #include -#include -#include +#include +#include #include #include diff -urNX exclude linux-2.1.79.orig/drivers/net/hydra.c linux-2.1.79/drivers/net/hydra.c --- linux-2.1.79.orig/drivers/net/hydra.c Fri Nov 7 19:14:13 1997 +++ linux-2.1.79/drivers/net/hydra.c Thu Jan 15 09:57:41 1998 @@ -33,8 +33,8 @@ #include #include -#include -#include +#include +#include #include #include "hydra.h" diff -urNX exclude linux-2.1.79.orig/drivers/scsi/53c7xx.c linux-2.1.79/drivers/scsi/53c7xx.c --- linux-2.1.79.orig/drivers/scsi/53c7xx.c Fri Jan 9 18:12:19 1998 +++ linux-2.1.79/drivers/scsi/53c7xx.c Thu Jan 15 01:24:27 1998 @@ -259,8 +259,8 @@ #ifdef CONFIG_AMIGA #include -#include -#include +#include +#include #include #define BIG_ENDIAN @@ -269,7 +269,7 @@ #ifdef CONFIG_MVME16x #include -#include +#include #define BIG_ENDIAN #define NO_IO_SPACE diff -urNX exclude linux-2.1.79.orig/drivers/scsi/Makefile linux-2.1.79/drivers/scsi/Makefile --- linux-2.1.79.orig/drivers/scsi/Makefile Wed Jan 14 21:40:09 1998 +++ linux-2.1.79/drivers/scsi/Makefile Wed Jan 14 22:20:39 1998 @@ -542,8 +542,7 @@ mv scriptu.h 53c7xx_u.h rm fake.c -53c7xx.o : 53c7xx_d.h 53c7xx.c - $(CC) $(CFLAGS) -c 53c7xx.c +53c7xx.o : 53c7xx_d.h scsi_mod.o: $(MIX_OBJS) hosts.o scsi.o scsi_ioctl.o constants.o \ scsicam.o scsi_proc.o scsi_error.o scsi_obsolete.o scsi_queue.o diff -urNX exclude linux-2.1.79.orig/drivers/scsi/a2091.c linux-2.1.79/drivers/scsi/a2091.c --- linux-2.1.79.orig/drivers/scsi/a2091.c Mon Jul 28 17:28:41 1997 +++ linux-2.1.79/drivers/scsi/a2091.c Thu Jan 15 01:25:03 1998 @@ -8,8 +8,8 @@ #include #include #include -#include -#include +#include +#include #include #include diff -urNX exclude linux-2.1.79.orig/drivers/scsi/a3000.c linux-2.1.79/drivers/scsi/a3000.c --- linux-2.1.79.orig/drivers/scsi/a3000.c Tue May 20 17:49:44 1997 +++ linux-2.1.79/drivers/scsi/a3000.c Thu Jan 15 01:25:25 1998 @@ -8,8 +8,8 @@ #include #include #include -#include -#include +#include +#include #include #include "scsi.h" diff -urNX exclude linux-2.1.79.orig/drivers/scsi/amiga7xx.c linux-2.1.79/drivers/scsi/amiga7xx.c --- linux-2.1.79.orig/drivers/scsi/amiga7xx.c Wed Dec 17 19:54:32 1997 +++ linux-2.1.79/drivers/scsi/amiga7xx.c Thu Jan 15 01:26:22 1998 @@ -17,8 +17,8 @@ #include #include -#include -#include +#include +#include #include #include "scsi.h" diff -urNX exclude linux-2.1.79.orig/drivers/scsi/atari_scsi.c linux-2.1.79/drivers/scsi/atari_scsi.c --- linux-2.1.79.orig/drivers/scsi/atari_scsi.c Thu Dec 18 08:50:48 1997 +++ linux-2.1.79/drivers/scsi/atari_scsi.c Thu Jan 15 09:58:02 1998 @@ -93,8 +93,8 @@ #include #include -#include -#include +#include +#include #include #include #include @@ -106,8 +106,8 @@ #include "atari_scsi.h" #include "NCR5380.h" #include "constants.h" -#include -#include +#include +#include #include #include diff -urNX exclude linux-2.1.79.orig/drivers/scsi/blz1230.c linux-2.1.79/drivers/scsi/blz1230.c --- linux-2.1.79.orig/drivers/scsi/blz1230.c Mon Nov 17 18:03:23 1997 +++ linux-2.1.79/drivers/scsi/blz1230.c Thu Jan 15 01:27:24 1998 @@ -30,8 +30,8 @@ #include #include -#include -#include +#include +#include #include diff -urNX exclude linux-2.1.79.orig/drivers/scsi/blz2060.c linux-2.1.79/drivers/scsi/blz2060.c --- linux-2.1.79.orig/drivers/scsi/blz2060.c Mon Nov 17 18:03:23 1997 +++ linux-2.1.79/drivers/scsi/blz2060.c Thu Jan 15 01:27:47 1998 @@ -30,8 +30,8 @@ #include #include -#include -#include +#include +#include #include diff -urNX exclude linux-2.1.79.orig/drivers/scsi/cyberstorm.c linux-2.1.79/drivers/scsi/cyberstorm.c --- linux-2.1.79.orig/drivers/scsi/cyberstorm.c Mon Nov 17 18:03:24 1997 +++ linux-2.1.79/drivers/scsi/cyberstorm.c Thu Jan 15 01:28:08 1998 @@ -33,8 +33,8 @@ #include #include -#include -#include +#include +#include #include diff -urNX exclude linux-2.1.79.orig/drivers/scsi/cyberstormII.c linux-2.1.79/drivers/scsi/cyberstormII.c --- linux-2.1.79.orig/drivers/scsi/cyberstormII.c Mon Nov 17 18:03:24 1997 +++ linux-2.1.79/drivers/scsi/cyberstormII.c Thu Jan 15 01:28:30 1998 @@ -29,8 +29,8 @@ #include #include -#include -#include +#include +#include #include diff -urNX exclude linux-2.1.79.orig/drivers/scsi/fastlane.c linux-2.1.79/drivers/scsi/fastlane.c --- linux-2.1.79.orig/drivers/scsi/fastlane.c Wed Dec 17 19:54:34 1997 +++ linux-2.1.79/drivers/scsi/fastlane.c Thu Jan 15 01:29:29 1998 @@ -38,8 +38,8 @@ #include #include -#include -#include +#include +#include #include diff -urNX exclude linux-2.1.79.orig/drivers/scsi/gvp11.c linux-2.1.79/drivers/scsi/gvp11.c --- linux-2.1.79.orig/drivers/scsi/gvp11.c Mon Oct 13 18:15:28 1997 +++ linux-2.1.79/drivers/scsi/gvp11.c Thu Jan 15 01:30:00 1998 @@ -8,8 +8,8 @@ #include #include #include -#include -#include +#include +#include #include #include diff -urNX exclude linux-2.1.79.orig/drivers/scsi/mvme16x.c linux-2.1.79/drivers/scsi/mvme16x.c --- linux-2.1.79.orig/drivers/scsi/mvme16x.c Fri Jan 9 18:12:45 1998 +++ linux-2.1.79/drivers/scsi/mvme16x.c Thu Jan 15 01:31:10 1998 @@ -13,14 +13,13 @@ #include #include -#include +#include #include #include "scsi.h" #include "hosts.h" #include "53c7xx.h" #include "mvme16x.h" -#include "asm/mvme16xhw.h" #include diff -urNX exclude linux-2.1.79.orig/drivers/sound/dmasound.c linux-2.1.79/drivers/sound/dmasound.c --- linux-2.1.79.orig/drivers/sound/dmasound.c Fri Jan 9 18:13:39 1998 +++ linux-2.1.79/drivers/sound/dmasound.c Thu Jan 15 01:33:16 1998 @@ -92,13 +92,13 @@ #include #ifdef CONFIG_ATARI -#include -#include -#include +#include +#include +#include #endif /* CONFIG_ATARI */ #ifdef CONFIG_AMIGA -#include -#include +#include +#include #endif /* CONFIG_AMIGA */ #include "dmasound.h" diff -urNX exclude linux-2.1.79.orig/drivers/video/amifb.c linux-2.1.79/drivers/video/amifb.c --- linux-2.1.79.orig/drivers/video/amifb.c Wed Jan 14 21:40:49 1998 +++ linux-2.1.79/drivers/video/amifb.c Thu Jan 15 01:34:40 1998 @@ -56,8 +56,8 @@ #include #include #include -#include -#include +#include +#include #include #include "fbcon-afb.h" diff -urNX exclude linux-2.1.79.orig/drivers/video/atafb.c linux-2.1.79/drivers/video/atafb.c --- linux-2.1.79.orig/drivers/video/atafb.c Wed Jan 14 21:40:51 1998 +++ linux-2.1.79/drivers/video/atafb.c Thu Jan 15 08:52:03 1998 @@ -64,19 +64,31 @@ #include #include -#include -#include -#include +#include +#include +#include #include -#include +#include +#ifdef CONFIG_FBCON_CFB8 #include "fbcon-cfb8.h" +#endif +#ifdef CONFIG_FBCON_CFB16 #include "fbcon-cfb16.h" +#endif +#ifdef CONFIG_FBCON_IPLAN2P2 #include "fbcon-iplan2p2.h" +#endif +#ifdef CONFIG_FBCON_IPLAN2P4 #include "fbcon-iplan2p4.h" +#endif +#ifdef CONFIG_FBCON_IPLAN2P8 #include "fbcon-iplan2p8.h" +#endif +#ifdef CONFIG_FBCON_MFB #include "fbcon-mfb.h" +#endif #define SWITCH_ACIA 0x01 /* modes for switch on OverScan */ @@ -105,11 +117,14 @@ static struct atafb_par { unsigned long screen_base; int yres_virtual; +#if defined ATAFB_TT || defined ATAFB_STE union { struct { int mode; int sync; } tt, st; +#endif +#ifdef ATAFB_FALCON struct falcon_hw { /* Here are fields for storing a video mode, as direct * parameters for the hardware. @@ -129,6 +144,7 @@ short ste_mode; short bpp; } falcon; +#endif /* Nothing needed for external mode */ } hw; } current_par; @@ -138,6 +154,7 @@ * hardware extensions (e.g. ScreenBlaster) */ static int DontCalcRes = 0; +#ifdef ATAFB_FALCON #define HHT hw.falcon.hht #define HBB hw.falcon.hbb #define HBE hw.falcon.hbe @@ -158,6 +175,7 @@ #define VMO_DOUBLE 0x01 #define VMO_INTER 0x02 #define VMO_PREMASK 0x0c +#endif static struct fb_info fb_info; @@ -2461,15 +2479,21 @@ switch (fix.type) { case FB_TYPE_INTERLEAVED_PLANES: switch (var.bits_per_pixel) { +#ifdef CONFIG_FBCON_IPLAN2P2 case 2: display->dispsw = &fbcon_iplan2p2; break; +#endif +#ifdef CONFIG_FBCON_IPLAN2P4 case 4: display->dispsw = &fbcon_iplan2p4; break; +#endif +#ifdef CONFIG_FBCON_IPLAN2P8 case 8: display->dispsw = &fbcon_iplan2p8; break; +#endif default: display->dispsw = NULL; break; @@ -2477,15 +2501,21 @@ break; case FB_TYPE_PACKED_PIXELS: switch (var.bits_per_pixel) { +#ifdef CONFIG_FBCON_MFB case 1: display->dispsw = &fbcon_mfb; break; +#endif +#ifdef CONFIG_FBCON_CFB8 case 8: display->dispsw = &fbcon_cfb8; break; +#endif +#ifdef CONFIG_FBCON_CFB16 case 16: display->dispsw = &fbcon_cfb16; break; +#endif default: display->dispsw = NULL; break; diff -urNX exclude linux-2.1.79.orig/drivers/video/dnfb.c linux-2.1.79/drivers/video/dnfb.c --- linux-2.1.79.orig/drivers/video/dnfb.c Wed Jan 14 21:40:55 1998 +++ linux-2.1.79/drivers/video/dnfb.c Thu Jan 15 01:40:13 1998 @@ -11,7 +11,7 @@ #include #include #include -#include +#include #include #include diff -urNX exclude linux-2.1.79.orig/drivers/video/fbcon.c linux-2.1.79/drivers/video/fbcon.c --- linux-2.1.79.orig/drivers/video/fbcon.c Wed Jan 14 22:29:11 1998 +++ linux-2.1.79/drivers/video/fbcon.c Thu Jan 15 09:02:11 1998 @@ -74,14 +74,14 @@ #include #include #ifdef CONFIG_AMIGA -#include -#include +#include +#include #endif /* CONFIG_AMIGA */ #ifdef CONFIG_ATARI -#include +#include #endif #ifdef CONFIG_MAC -#include +#include #endif #ifdef __mc68000__ #include diff -urNX exclude linux-2.1.79.orig/drivers/video/virgefb.c linux-2.1.79/drivers/video/virgefb.c --- linux-2.1.79.orig/drivers/video/virgefb.c Wed Jan 14 21:41:20 1998 +++ linux-2.1.79/drivers/video/virgefb.c Thu Jan 15 01:42:20 1998 @@ -32,7 +32,7 @@ #include #include #include -#include +#include #include "s3blit.h" #include "fbcon-cfb8.h" diff -urNX exclude linux-2.1.79.orig/fs/fat/inode.c linux-2.1.79/fs/fat/inode.c --- linux-2.1.79.orig/fs/fat/inode.c Wed Jan 14 21:41:36 1998 +++ linux-2.1.79/fs/fat/inode.c Wed Jan 14 22:32:13 1998 @@ -243,7 +243,7 @@ else if (!strcmp(this_char,"showexec")) { opts->showexec = 1; } - else if (!strcmp(this_char,"dotsOK") && value) { + else if (!strcmp(this_char,"dotsOK")) { if (!value || !strcmp(value,"yes")) opts->dotsOK = 1; else if (!strcmp(value,"no")) opts->dotsOK = 0; else ret = 0; diff -urNX exclude linux-2.1.79.orig/fs/fat/mmap.c linux-2.1.79/fs/fat/mmap.c --- linux-2.1.79.orig/fs/fat/mmap.c Wed Jan 14 21:41:36 1998 +++ linux-2.1.79/fs/fat/mmap.c Thu Jan 15 08:03:58 1998 @@ -118,8 +118,10 @@ } -int fat_readpage(struct inode * inode, struct page * page) +int fat_readpage(struct dentry * dentry, struct page * page) { + struct inode *inode = dentry->d_inode; + if(MSDOS_SB(inode->i_sb)->cvf_format) if(MSDOS_SB(inode->i_sb)->cvf_format->cvf_readpage) return MSDOS_SB(inode->i_sb)->cvf_format->cvf_readpage(inode,page); diff -urNX exclude linux-2.1.79.orig/fs/nls/nls_iso8859-1.c linux-2.1.79/fs/nls/nls_iso8859-1.c --- linux-2.1.79.orig/fs/nls/nls_iso8859-1.c Fri Nov 7 19:15:48 1997 +++ linux-2.1.79/fs/nls/nls_iso8859-1.c Thu Jan 15 07:59:03 1998 @@ -135,6 +135,7 @@ page00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, }; +#if 0 static unsigned char charset2upper[256] = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ @@ -169,6 +170,7 @@ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf7, /* 0xf0-0xf7 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xf8-0xff */ }; +#endif static void inc_use_count(void) diff -urNX exclude linux-2.1.79.orig/include/asm-m68k/amifd.h linux-2.1.79/include/asm-m68k/amifd.h --- linux-2.1.79.orig/include/asm-m68k/amifd.h Wed Apr 24 18:17:12 1996 +++ linux-2.1.79/include/asm-m68k/amifd.h Thu Jan 1 01:00:00 1970 @@ -1,57 +0,0 @@ -#ifndef _ASM_M68K_AMIFD_H -#define _ASM_M68K_AMIFD_H - -/* Definitions for the Amiga floppy driver */ - -#include - -#define FD_MAX_UNITS 4 - -struct fd_data_type { - char *name; /* description of data type */ - int sects; /* sectors per track */ -#ifdef __STDC__ - int (*read_fkt)(int, unsigned char *, unsigned long, int); - void (*write_fkt)(int, unsigned long, unsigned char *, int); -#else - int (*read_fkt)(); /* read whole track */ - void (*write_fkt)(); /* write whole track */ -#endif -}; - -#ifndef ASSEMBLER -/* -** Floppy type descriptions -*/ - -struct fd_drive_type { - unsigned long code; /* code returned from drive */ - char *name; /* description of drive */ - unsigned int tracks; /* number of tracks */ - unsigned int heads; /* number of heads */ - unsigned int read_size; /* raw read size for one track */ - unsigned int write_size; /* raw write size for one track */ - unsigned int sect_mult; /* sectors and gap multiplier (HD = 2) */ - unsigned int precomp1; /* start track for precomp 1 */ - unsigned int precomp2; /* start track for precomp 2 */ - unsigned int step_delay; /* time (in ms) for delay after step */ - unsigned int settle_time; /* time to settle after dir change */ - unsigned int side_time; /* time needed to change sides */ -}; - -struct amiga_floppy_struct { - struct fd_drive_type *type; /* type of floppy for this unit */ - struct fd_data_type *dtype; /* type of floppy for this unit */ - int track; /* current track (-1 == unknown) */ - - int blocks; /* total # blocks on disk */ - int sects; /* number of sectors per track */ - - int disk; /* disk in drive (-1 == unknown) */ - int motor; /* true when motor is at speed */ - int busy; /* true when drive is active */ - int status; /* current error code for unit */ -}; -#endif - -#endif diff -urNX exclude linux-2.1.79.orig/include/asm-m68k/amifdreg.h linux-2.1.79/include/asm-m68k/amifdreg.h --- linux-2.1.79.orig/include/asm-m68k/amifdreg.h Wed Apr 24 18:17:12 1996 +++ linux-2.1.79/include/asm-m68k/amifdreg.h Thu Jan 1 01:00:00 1970 @@ -1,81 +0,0 @@ -#ifndef _LINUX_AMIFDREG_H -#define _LINUX_AMIFDREG_H - -/* -** CIAAPRA bits (read only) -*/ - -#define DSKRDY (0x1<<5) /* disk ready when low */ -#define DSKTRACK0 (0x1<<4) /* head at track zero when low */ -#define DSKPROT (0x1<<3) /* disk protected when low */ -#define DSKCHANGE (0x1<<2) /* low when disk removed */ - -/* -** CIAAPRB bits (read/write) -*/ - -#define DSKMOTOR (0x1<<7) /* motor on when low */ -#define DSKSEL3 (0x1<<6) /* select drive 3 when low */ -#define DSKSEL2 (0x1<<5) /* select drive 2 when low */ -#define DSKSEL1 (0x1<<4) /* select drive 1 when low */ -#define DSKSEL0 (0x1<<3) /* select drive 0 when low */ -#define DSKSIDE (0x1<<2) /* side selection: 0 = upper, 1 = lower */ -#define DSKDIREC (0x1<<1) /* step direction: 0=in, 1=out (to trk 0) */ -#define DSKSTEP (0x1) /* pulse low to step head 1 track */ - -/* -** DSKBYTR bits (read only) -*/ - -#define DSKBYT (1<<15) /* register contains valid byte when set */ -#define DMAON (1<<14) /* disk DMA enabled */ -#define DISKWRITE (1<<13) /* disk write bit in DSKLEN enabled */ -#define WORDEQUAL (1<<12) /* DSKSYNC register match when true */ -/* bits 7-0 are data */ - -/* -** ADKCON/ADKCONR bits -*/ - -#ifndef SETCLR -#define ADK_SETCLR (1<<15) /* control bit */ -#endif -#define ADK_PRECOMP1 (1<<14) /* precompensation selection */ -#define ADK_PRECOMP0 (1<<13) /* 00=none, 01=140ns, 10=280ns, 11=500ns */ -#define ADK_MFMPREC (1<<12) /* 0=GCR precomp., 1=MFM precomp. */ -#define ADK_WORDSYNC (1<<10) /* enable DSKSYNC auto DMA */ -#define ADK_MSBSYNC (1<<9) /* when 1, enable sync on MSbit (for GCR) */ -#define ADK_FAST (1<<8) /* bit cell: 0=2us (GCR), 1=1us (MFM) */ - -/* -** DSKLEN bits -*/ - -#define DSKLEN_DMAEN (1<<15) -#define DSKLEN_WRITE (1<<14) - -/* -** INTENA/INTREQ bits -*/ - -#define DSKINDEX (0x1<<4) /* DSKINDEX bit */ - -/* -** Misc -*/ - -#define MFM_SYNC 0x4489 /* standard MFM sync value */ - -/* Values for FD_COMMAND */ -#define FD_RECALIBRATE 0x07 /* move to track 0 */ -#define FD_SEEK 0x0F /* seek track */ -#define FD_READ 0xE6 /* read with MT, MFM, SKip deleted */ -#define FD_WRITE 0xC5 /* write with MT, MFM */ -#define FD_SENSEI 0x08 /* Sense Interrupt Status */ -#define FD_SPECIFY 0x03 /* specify HUT etc */ -#define FD_FORMAT 0x4D /* format one track */ -#define FD_VERSION 0x10 /* get version code */ -#define FD_CONFIGURE 0x13 /* configure FIFO operation */ -#define FD_PERPENDICULAR 0x12 /* perpendicular r/w mode */ - -#endif /* _LINUX_AMIFDREG_H */ diff -urNX exclude linux-2.1.79.orig/include/asm-m68k/amiga/fd.h linux-2.1.79/include/asm-m68k/amiga/fd.h --- linux-2.1.79.orig/include/asm-m68k/amiga/fd.h Thu Jan 1 01:00:00 1970 +++ linux-2.1.79/include/asm-m68k/amiga/fd.h Wed Apr 24 18:17:12 1996 @@ -0,0 +1,57 @@ +#ifndef _ASM_M68K_AMIFD_H +#define _ASM_M68K_AMIFD_H + +/* Definitions for the Amiga floppy driver */ + +#include + +#define FD_MAX_UNITS 4 + +struct fd_data_type { + char *name; /* description of data type */ + int sects; /* sectors per track */ +#ifdef __STDC__ + int (*read_fkt)(int, unsigned char *, unsigned long, int); + void (*write_fkt)(int, unsigned long, unsigned char *, int); +#else + int (*read_fkt)(); /* read whole track */ + void (*write_fkt)(); /* write whole track */ +#endif +}; + +#ifndef ASSEMBLER +/* +** Floppy type descriptions +*/ + +struct fd_drive_type { + unsigned long code; /* code returned from drive */ + char *name; /* description of drive */ + unsigned int tracks; /* number of tracks */ + unsigned int heads; /* number of heads */ + unsigned int read_size; /* raw read size for one track */ + unsigned int write_size; /* raw write size for one track */ + unsigned int sect_mult; /* sectors and gap multiplier (HD = 2) */ + unsigned int precomp1; /* start track for precomp 1 */ + unsigned int precomp2; /* start track for precomp 2 */ + unsigned int step_delay; /* time (in ms) for delay after step */ + unsigned int settle_time; /* time to settle after dir change */ + unsigned int side_time; /* time needed to change sides */ +}; + +struct amiga_floppy_struct { + struct fd_drive_type *type; /* type of floppy for this unit */ + struct fd_data_type *dtype; /* type of floppy for this unit */ + int track; /* current track (-1 == unknown) */ + + int blocks; /* total # blocks on disk */ + int sects; /* number of sectors per track */ + + int disk; /* disk in drive (-1 == unknown) */ + int motor; /* true when motor is at speed */ + int busy; /* true when drive is active */ + int status; /* current error code for unit */ +}; +#endif + +#endif diff -urNX exclude linux-2.1.79.orig/include/asm-m68k/amiga/fdreg.h linux-2.1.79/include/asm-m68k/amiga/fdreg.h --- linux-2.1.79.orig/include/asm-m68k/amiga/fdreg.h Thu Jan 1 01:00:00 1970 +++ linux-2.1.79/include/asm-m68k/amiga/fdreg.h Wed Apr 24 18:17:12 1996 @@ -0,0 +1,81 @@ +#ifndef _LINUX_AMIFDREG_H +#define _LINUX_AMIFDREG_H + +/* +** CIAAPRA bits (read only) +*/ + +#define DSKRDY (0x1<<5) /* disk ready when low */ +#define DSKTRACK0 (0x1<<4) /* head at track zero when low */ +#define DSKPROT (0x1<<3) /* disk protected when low */ +#define DSKCHANGE (0x1<<2) /* low when disk removed */ + +/* +** CIAAPRB bits (read/write) +*/ + +#define DSKMOTOR (0x1<<7) /* motor on when low */ +#define DSKSEL3 (0x1<<6) /* select drive 3 when low */ +#define DSKSEL2 (0x1<<5) /* select drive 2 when low */ +#define DSKSEL1 (0x1<<4) /* select drive 1 when low */ +#define DSKSEL0 (0x1<<3) /* select drive 0 when low */ +#define DSKSIDE (0x1<<2) /* side selection: 0 = upper, 1 = lower */ +#define DSKDIREC (0x1<<1) /* step direction: 0=in, 1=out (to trk 0) */ +#define DSKSTEP (0x1) /* pulse low to step head 1 track */ + +/* +** DSKBYTR bits (read only) +*/ + +#define DSKBYT (1<<15) /* register contains valid byte when set */ +#define DMAON (1<<14) /* disk DMA enabled */ +#define DISKWRITE (1<<13) /* disk write bit in DSKLEN enabled */ +#define WORDEQUAL (1<<12) /* DSKSYNC register match when true */ +/* bits 7-0 are data */ + +/* +** ADKCON/ADKCONR bits +*/ + +#ifndef SETCLR +#define ADK_SETCLR (1<<15) /* control bit */ +#endif +#define ADK_PRECOMP1 (1<<14) /* precompensation selection */ +#define ADK_PRECOMP0 (1<<13) /* 00=none, 01=140ns, 10=280ns, 11=500ns */ +#define ADK_MFMPREC (1<<12) /* 0=GCR precomp., 1=MFM precomp. */ +#define ADK_WORDSYNC (1<<10) /* enable DSKSYNC auto DMA */ +#define ADK_MSBSYNC (1<<9) /* when 1, enable sync on MSbit (for GCR) */ +#define ADK_FAST (1<<8) /* bit cell: 0=2us (GCR), 1=1us (MFM) */ + +/* +** DSKLEN bits +*/ + +#define DSKLEN_DMAEN (1<<15) +#define DSKLEN_WRITE (1<<14) + +/* +** INTENA/INTREQ bits +*/ + +#define DSKINDEX (0x1<<4) /* DSKINDEX bit */ + +/* +** Misc +*/ + +#define MFM_SYNC 0x4489 /* standard MFM sync value */ + +/* Values for FD_COMMAND */ +#define FD_RECALIBRATE 0x07 /* move to track 0 */ +#define FD_SEEK 0x0F /* seek track */ +#define FD_READ 0xE6 /* read with MT, MFM, SKip deleted */ +#define FD_WRITE 0xC5 /* write with MT, MFM */ +#define FD_SENSEI 0x08 /* Sense Interrupt Status */ +#define FD_SPECIFY 0x03 /* specify HUT etc */ +#define FD_FORMAT 0x4D /* format one track */ +#define FD_VERSION 0x10 /* get version code */ +#define FD_CONFIGURE 0x13 /* configure FIFO operation */ +#define FD_PERPENDICULAR 0x12 /* perpendicular r/w mode */ + +#endif /* _LINUX_AMIFDREG_H */ diff -urNX exclude linux-2.1.79.orig/include/asm-m68k/amiga/hardware.h linux-2.1.79/include/asm-m68k/amiga/hardware.h --- linux-2.1.79.orig/include/asm-m68k/amiga/hardware.h Thu Jan 1 01:00:00 1970 +++ linux-2.1.79/include/asm-m68k/amiga/hardware.h Thu Sep 18 17:51:57 1997 @@ -0,0 +1,335 @@ +/* +** asm-m68k/amigahw.h -- This header defines some macros and pointers for +** the various Amiga custom hardware registers. +** The naming conventions used here conform to those +** used in the Amiga Hardware Reference Manual, 3rd Edition +** +** Copyright 1992 by Greg Harp +** +** 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: 9/24/92 by Greg Harp +*/ + +#ifndef _M68K_AMIGAHW_H +#define _M68K_AMIGAHW_H + + /* + * Different Amiga models + */ + +extern u_long amiga_model; + +#define AMI_UNKNOWN (0) +#define AMI_500 (1) +#define AMI_500PLUS (2) +#define AMI_600 (3) +#define AMI_1000 (4) +#define AMI_1200 (5) +#define AMI_2000 (6) +#define AMI_2500 (7) +#define AMI_3000 (8) +#define AMI_3000T (9) +#define AMI_3000PLUS (10) +#define AMI_4000 (11) +#define AMI_4000T (12) +#define AMI_CDTV (13) +#define AMI_CD32 (14) +#define AMI_DRACO (15) + + + /* + * Chipsets + */ + +extern u_long amiga_chipset; + +#define CS_STONEAGE (0) +#define CS_OCS (1) +#define CS_ECS (2) +#define CS_AGA (3) + + + /* + * Miscellaneous + */ + +extern u_long amiga_eclock; /* 700 kHz E Peripheral Clock */ +extern u_long amiga_masterclock; /* 28 MHz Master Clock */ +extern u_long amiga_colorclock; /* 3.5 MHz Color Clock */ +extern u_long amiga_chip_size; /* Chip RAM Size (bytes) */ +extern u_char amiga_vblank; /* VBLANK Frequency */ +extern u_char amiga_psfreq; /* Power Supply Frequency */ + + +#define AMIGAHW_DECLARE(name) unsigned name : 1 +#define AMIGAHW_SET(name) (amiga_hw_present.name = 1) +#define AMIGAHW_PRESENT(name) (amiga_hw_present.name) + +struct amiga_hw_present { + /* video hardware */ + AMIGAHW_DECLARE(AMI_VIDEO); /* Amiga Video */ + AMIGAHW_DECLARE(AMI_BLITTER); /* Amiga Blitter */ + AMIGAHW_DECLARE(AMBER_FF); /* Amber Flicker Fixer */ + /* sound hardware */ + AMIGAHW_DECLARE(AMI_AUDIO); /* Amiga Audio */ + /* disk storage interfaces */ + AMIGAHW_DECLARE(AMI_FLOPPY); /* Amiga Floppy */ + AMIGAHW_DECLARE(A3000_SCSI); /* SCSI (wd33c93, A3000 alike) */ + AMIGAHW_DECLARE(A4000_SCSI); /* SCSI (ncr53c710, A4000T alike) */ + AMIGAHW_DECLARE(A1200_IDE); /* IDE (A1200 alike) */ + AMIGAHW_DECLARE(A4000_IDE); /* IDE (A4000 alike) */ + AMIGAHW_DECLARE(CD_ROM); /* CD ROM drive */ + /* other I/O hardware */ + AMIGAHW_DECLARE(AMI_KEYBOARD); /* Amiga Keyboard */ + AMIGAHW_DECLARE(AMI_MOUSE); /* Amiga Mouse */ + AMIGAHW_DECLARE(AMI_SERIAL); /* Amiga Serial */ + AMIGAHW_DECLARE(AMI_PARALLEL); /* Amiga Parallel */ + /* real time clocks */ + AMIGAHW_DECLARE(A2000_CLK); /* Hardware Clock (A2000 alike) */ + AMIGAHW_DECLARE(A3000_CLK); /* Hardware Clock (A3000 alike) */ + /* supporting hardware */ + AMIGAHW_DECLARE(CHIP_RAM); /* Chip RAM */ + AMIGAHW_DECLARE(PAULA); /* Paula (8364) */ + AMIGAHW_DECLARE(DENISE); /* Denise (8362) */ + AMIGAHW_DECLARE(DENISE_HR); /* Denise (8373) */ + AMIGAHW_DECLARE(LISA); /* Lisa (8375) */ + AMIGAHW_DECLARE(AGNUS_PAL); /* Normal/Fat PAL Agnus (8367/8371) */ + AMIGAHW_DECLARE(AGNUS_NTSC); /* Normal/Fat NTSC Agnus (8361/8370) */ + AMIGAHW_DECLARE(AGNUS_HR_PAL); /* Fat Hires PAL Agnus (8372) */ + AMIGAHW_DECLARE(AGNUS_HR_NTSC); /* Fat Hires NTSC Agnus (8372) */ + AMIGAHW_DECLARE(ALICE_PAL); /* PAL Alice (8374) */ + AMIGAHW_DECLARE(ALICE_NTSC); /* NTSC Alice (8374) */ + AMIGAHW_DECLARE(MAGIC_REKICK); /* A3000 Magic Hard Rekick */ + AMIGAHW_DECLARE(PCMCIA); /* PCMCIA Slot */ + AMIGAHW_DECLARE(ZORRO); /* Zorro AutoConfig */ + AMIGAHW_DECLARE(ZORRO3); /* Zorro III */ +}; + +extern struct amiga_hw_present amiga_hw_present; + +struct CUSTOM { + u_short bltddat; + u_short dmaconr; + u_short vposr; + u_short vhposr; + u_short dskdatr; + u_short joy0dat; + u_short joy1dat; + u_short clxdat; + u_short adkconr; + u_short pot0dat; + u_short pot1dat; + u_short potgor; + u_short serdatr; + u_short dskbytr; + u_short intenar; + u_short intreqr; + u_char *dskptr; + u_short dsklen; + u_short dskdat; + u_short refptr; + u_short vposw; + u_short vhposw; + u_short copcon; + u_short serdat; + u_short serper; + u_short potgo; + u_short joytest; + u_short strequ; + u_short strvbl; + u_short strhor; + u_short strlong; + u_short bltcon0; + u_short bltcon1; + u_short bltafwm; + u_short bltalwm; + u_char *bltcpt; + u_char *bltbpt; + u_char *bltapt; + u_char *bltdpt; + u_short bltsize; + u_char pad2d; + u_char bltcon0l; + u_short bltsizv; + u_short bltsizh; + u_short bltcmod; + u_short bltbmod; + u_short bltamod; + u_short bltdmod; + u_short spare2[4]; + u_short bltcdat; + u_short bltbdat; + u_short bltadat; + u_short spare3[3]; + u_short deniseid; + u_short dsksync; + u_short *cop1lc; + u_short *cop2lc; + u_short copjmp1; + u_short copjmp2; + u_short copins; + u_short diwstrt; + u_short diwstop; + u_short ddfstrt; + u_short ddfstop; + u_short dmacon; + u_short clxcon; + u_short intena; + u_short intreq; + u_short adkcon; + struct { + u_short *audlc; + u_short audlen; + u_short audper; + u_short audvol; + u_short auddat; + u_short audspare[2]; + } aud[4]; + u_char *bplpt[8]; + u_short bplcon0; + u_short bplcon1; + u_short bplcon2; + u_short bplcon3; + u_short bpl1mod; + u_short bpl2mod; + u_short bplcon4; + u_short clxcon2; + u_short bpldat[8]; + u_char *sprpt[8]; + struct { + u_short pos; + u_short ctl; + u_short dataa; + u_short datab; + } spr[8]; + u_short color[32]; + u_short htotal; + u_short hsstop; + u_short hbstrt; + u_short hbstop; + u_short vtotal; + u_short vsstop; + u_short vbstrt; + u_short vbstop; + u_short sprhstrt; + u_short sprhstop; + u_short bplhstrt; + u_short bplhstop; + u_short hhposw; + u_short hhposr; + u_short beamcon0; + u_short hsstrt; + u_short vsstrt; + u_short hcenter; + u_short diwhigh; + u_short spare4[11]; + u_short fmode; +}; + +/* + * DMA register bits + */ +#define DMAF_SETCLR (0x8000) +#define DMAF_AUD0 (0x0001) +#define DMAF_AUD1 (0x0002) +#define DMAF_AUD2 (0x0004) +#define DMAF_AUD3 (0x0008) +#define DMAF_DISK (0x0010) +#define DMAF_SPRITE (0x0020) +#define DMAF_BLITTER (0x0040) +#define DMAF_COPPER (0x0080) +#define DMAF_RASTER (0x0100) +#define DMAF_MASTER (0x0200) +#define DMAF_BLITHOG (0x0400) +#define DMAF_BLTNZERO (0x2000) +#define DMAF_BLTDONE (0x4000) +#define DMAF_ALL (0x01FF) + +struct CIA { + u_char pra; char pad0[0xff]; + u_char prb; char pad1[0xff]; + u_char ddra; char pad2[0xff]; + u_char ddrb; char pad3[0xff]; + u_char talo; char pad4[0xff]; + u_char tahi; char pad5[0xff]; + u_char tblo; char pad6[0xff]; + u_char tbhi; char pad7[0xff]; + u_char todlo; char pad8[0xff]; + u_char todmid; char pad9[0xff]; + u_char todhi; char pada[0x1ff]; + u_char sdr; char padb[0xff]; + u_char icr; char padc[0xff]; + u_char cra; char padd[0xff]; + u_char crb; char pade[0xff]; +}; + +#define zTwoBase (0x80000000) +#define ZTWO_PADDR(x) (((unsigned long)(x))-zTwoBase) +#define ZTWO_VADDR(x) (((unsigned long)(x))+zTwoBase) + +#define CUSTOM_PHYSADDR (0xdff000) +#define custom ((*(volatile struct CUSTOM *)(zTwoBase+CUSTOM_PHYSADDR))) + +#define CIAA_PHYSADDR (0xbfe001) +#define CIAB_PHYSADDR (0xbfd000) +#define ciaa ((*(volatile struct CIA *)(zTwoBase + CIAA_PHYSADDR))) +#define ciab ((*(volatile struct CIA *)(zTwoBase + CIAB_PHYSADDR))) + +#define CHIP_PHYSADDR (0x000000) +#define chipaddr ((unsigned long)(zTwoBase + CHIP_PHYSADDR)) +void amiga_chip_init (void); +void *amiga_chip_alloc (long size); +void amiga_chip_free (void *); +unsigned long amiga_chip_avail( void ); /*MILAN*/ + +struct tod3000 { + unsigned int :28, second2:4; /* lower digit */ + unsigned int :28, second1:4; /* upper digit */ + unsigned int :28, minute2:4; /* lower digit */ + unsigned int :28, minute1:4; /* upper digit */ + unsigned int :28, hour2:4; /* lower digit */ + unsigned int :28, hour1:4; /* upper digit */ + unsigned int :28, weekday:4; + unsigned int :28, day2:4; /* lower digit */ + unsigned int :28, day1:4; /* upper digit */ + unsigned int :28, month2:4; /* lower digit */ + unsigned int :28, month1:4; /* upper digit */ + unsigned int :28, year2:4; /* lower digit */ + unsigned int :28, year1:4; /* upper digit */ + unsigned int :28, cntrl1:4; /* control-byte 1 */ + unsigned int :28, cntrl2:4; /* control-byte 2 */ + unsigned int :28, cntrl3:4; /* control-byte 3 */ +}; +#define TOD3000_CNTRL1_HOLD 0 +#define TOD3000_CNTRL1_FREE 9 +#define TOD_3000 ((struct tod3000 *)(zTwoBase+0xDC0000)) + +struct tod2000 { + unsigned int :28, second2:4; /* lower digit */ + unsigned int :28, second1:4; /* upper digit */ + unsigned int :28, minute2:4; /* lower digit */ + unsigned int :28, minute1:4; /* upper digit */ + unsigned int :28, hour2:4; /* lower digit */ + unsigned int :28, hour1:4; /* upper digit */ + unsigned int :28, day2:4; /* lower digit */ + unsigned int :28, day1:4; /* upper digit */ + unsigned int :28, month2:4; /* lower digit */ + unsigned int :28, month1:4; /* upper digit */ + unsigned int :28, year2:4; /* lower digit */ + unsigned int :28, year1:4; /* upper digit */ + unsigned int :28, weekday:4; + unsigned int :28, cntrl1:4; /* control-byte 1 */ + unsigned int :28, cntrl2:4; /* control-byte 2 */ + unsigned int :28, cntrl3:4; /* control-byte 3 */ +}; + +#define TOD2000_CNTRL1_HOLD (1<<0) +#define TOD2000_CNTRL1_BUSY (1<<1) +#define TOD2000_CNTRL3_24HMODE (1<<2) +#define TOD2000_HOUR1_PM (1<<2) +#define TOD_2000 ((struct tod2000 *)(zTwoBase+0xDC0000)) + +#endif /* __ASMm68k_AMIGAHW_H */ diff -urNX exclude linux-2.1.79.orig/include/asm-m68k/amiga/ints.h linux-2.1.79/include/asm-m68k/amiga/ints.h --- linux-2.1.79.orig/include/asm-m68k/amiga/ints.h Thu Jan 1 01:00:00 1970 +++ linux-2.1.79/include/asm-m68k/amiga/ints.h Mon Mar 24 16:52:33 1997 @@ -0,0 +1,135 @@ +/* +** amigaints.h -- Amiga Linux interrupt handling structs and prototypes +** +** Copyright 1992 by Greg Harp +** +** 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 10/2/92 by Greg Harp +*/ + +#ifndef _ASMm68k_AMIGAINTS_H_ +#define _ASMm68k_AMIGAINTS_H_ + +/* +** Amiga Interrupt sources. +** +*/ + +#define AUTO_IRQS (8) +#define AMI_STD_IRQS (14) +#define CIA_IRQS (5) +#define AMI_IRQS (32) /* AUTO_IRQS+AMI_STD_IRQS+2*CIA_IRQS */ + +/* vertical blanking interrupt */ +#define IRQ_AMIGA_VERTB 0 + +/* copper interrupt */ +#define IRQ_AMIGA_COPPER 1 + +/* Audio interrupts */ +#define IRQ_AMIGA_AUD0 2 +#define IRQ_AMIGA_AUD1 3 +#define IRQ_AMIGA_AUD2 4 +#define IRQ_AMIGA_AUD3 5 + +/* Blitter done interrupt */ +#define IRQ_AMIGA_BLIT 6 + +/* floppy disk interrupts */ +#define IRQ_AMIGA_DSKSYN 7 +#define IRQ_AMIGA_DSKBLK 8 + +/* builtin serial port interrupts */ +#define IRQ_AMIGA_RBF 9 +#define IRQ_AMIGA_TBE 10 + +/* software interrupts */ +#define IRQ_AMIGA_SOFT 11 + +/* interrupts from external hardware */ +#define IRQ_AMIGA_PORTS 12 +#define IRQ_AMIGA_EXTER 13 + +/* CIA interrupt sources */ +#define IRQ_AMIGA_CIAA 14 +#define IRQ_AMIGA_CIAA_TA 14 +#define IRQ_AMIGA_CIAA_TB 15 +#define IRQ_AMIGA_CIAA_ALRM 16 +#define IRQ_AMIGA_CIAA_SP 17 +#define IRQ_AMIGA_CIAA_FLG 18 +#define IRQ_AMIGA_CIAB 19 +#define IRQ_AMIGA_CIAB_TA 19 +#define IRQ_AMIGA_CIAB_TB 20 +#define IRQ_AMIGA_CIAB_ALRM 21 +#define IRQ_AMIGA_CIAB_SP 22 +#define IRQ_AMIGA_CIAB_FLG 23 + +/* auto-vector interrupts */ +#define IRQ_AMIGA_AUTO 24 +#define IRQ_AMIGA_AUTO_0 24 /* This is just a dummy */ +#define IRQ_AMIGA_AUTO_1 25 +#define IRQ_AMIGA_AUTO_2 26 +#define IRQ_AMIGA_AUTO_3 27 +#define IRQ_AMIGA_AUTO_4 28 +#define IRQ_AMIGA_AUTO_5 29 +#define IRQ_AMIGA_AUTO_6 30 +#define IRQ_AMIGA_AUTO_7 31 + +#define IRQ_FLOPPY IRQ_AMIGA_DSKBLK + +/* INTREQR masks */ +#define IRQ1_MASK 0x0007 /* INTREQR mask for IRQ 1 */ +#define IRQ2_MASK 0x0008 /* INTREQR mask for IRQ 2 */ +#define IRQ3_MASK 0x0070 /* INTREQR mask for IRQ 3 */ +#define IRQ4_MASK 0x0780 /* INTREQR mask for IRQ 4 */ +#define IRQ5_MASK 0x1800 /* INTREQR mask for IRQ 5 */ +#define IRQ6_MASK 0x2000 /* INTREQR mask for IRQ 6 */ +#define IRQ7_MASK 0x4000 /* INTREQR mask for IRQ 7 */ + +#define IF_SETCLR 0x8000 /* set/clr bit */ +#define IF_INTEN 0x4000 /* master interrupt bit in INT* registers */ +#define IF_EXTER 0x2000 /* external level 6 and CIA B interrupt */ +#define IF_DSKSYN 0x1000 /* disk sync interrupt */ +#define IF_RBF 0x0800 /* serial receive buffer full interrupt */ +#define IF_AUD3 0x0400 /* audio channel 3 done interrupt */ +#define IF_AUD2 0x0200 /* audio channel 2 done interrupt */ +#define IF_AUD1 0x0100 /* audio channel 1 done interrupt */ +#define IF_AUD0 0x0080 /* audio channel 0 done interrupt */ +#define IF_BLIT 0x0040 /* blitter done interrupt */ +#define IF_VERTB 0x0020 /* vertical blanking interrupt */ +#define IF_COPER 0x0010 /* copper interrupt */ +#define IF_PORTS 0x0008 /* external level 2 and CIA A interrupt */ +#define IF_SOFT 0x0004 /* software initiated interrupt */ +#define IF_DSKBLK 0x0002 /* diskblock DMA finished */ +#define IF_TBE 0x0001 /* serial transmit buffer empty interrupt */ + +struct irq_server { + unsigned short count, reentrance; +}; + +extern void amiga_do_irq(int irq, struct pt_regs *fp); +extern void amiga_do_irq_list(int irq, struct pt_regs *fp, struct irq_server *server); + +/* CIA interrupt control register bits */ + +#define CIA_ICR_TA 0x01 +#define CIA_ICR_TB 0x02 +#define CIA_ICR_ALRM 0x04 +#define CIA_ICR_SP 0x08 +#define CIA_ICR_FLG 0x10 +#define CIA_ICR_ALL 0x1f +#define CIA_ICR_SETCLR 0x80 + +/* to access the interrupt control registers of CIA's use only +** these functions, they behave exactly like the amiga os routines +*/ + +extern struct ciabase ciaa_base, ciab_base; + +extern unsigned char cia_set_irq(struct ciabase *base, unsigned char mask); +extern unsigned char cia_able_irq(struct ciabase *base, unsigned char mask); + +#endif /* asm-m68k/amigaints.h */ diff -urNX exclude linux-2.1.79.orig/include/asm-m68k/amiga/mouse.h linux-2.1.79/include/asm-m68k/amiga/mouse.h --- linux-2.1.79.orig/include/asm-m68k/amiga/mouse.h Thu Jan 1 01:00:00 1970 +++ linux-2.1.79/include/asm-m68k/amiga/mouse.h Wed Apr 24 18:17:13 1996 @@ -0,0 +1,26 @@ +#ifndef _ASMm68k_AMIGAMOUSE_H +#define _ASMm68k_AMIGAMOUSE_H + +/* + * linux/include/asm-m68k/amigamouse.h: header file for Amiga Mouse driver + * by Michael Rausch + */ + +/* +#define MSE_INT_OFF() outb(MSE_DISABLE_INTERRUPTS, MSE_CONTROL_PORT) +#define MSE_INT_ON() outb(MSE_ENABLE_INTERRUPTS, MSE_CONTROL_PORT) +*/ + +struct mouse_status { + unsigned char buttons; + unsigned char latch_buttons; + int dx; + int dy; + int present; + int ready; + int active; + struct wait_queue *wait; + struct fasync_struct *fasyncptr; +}; + +#endif diff -urNX exclude linux-2.1.79.orig/include/asm-m68k/amiga/rdb.h linux-2.1.79/include/asm-m68k/amiga/rdb.h --- linux-2.1.79.orig/include/asm-m68k/amiga/rdb.h Thu Jan 1 01:00:00 1970 +++ linux-2.1.79/include/asm-m68k/amiga/rdb.h Wed Apr 24 18:17:13 1996 @@ -0,0 +1,126 @@ +#ifndef _LINUX_AMIGARDB_H +#define _LINUX_AMIGARDB_H 1 + +#define ULONG u_long +#define LONG long +#define UBYTE u_char + +/* definitions for the Amiga RigidDiskBlock layout, which always starts in + cylinder 0 of a medium. Taken from page 254f of the RKM: Devices */ + +struct RigidDiskBlock { + ULONG rdb_ID; /* 4 character identifier */ + ULONG rdb_SummedLongs; /* size of this checksummed structure */ + LONG rdb_ChkSum; /* block checksum (longword sum to zero) */ + ULONG rdb_HostID; /* SCSI Target ID of host */ + ULONG rdb_BlockBytes; /* size of disk blocks */ + ULONG rdb_Flags; /* see below for defines */ + /* block list heads */ + ULONG rdb_BadBlockList; /* optional bad block list */ + ULONG rdb_PartitionList; /* optional first partition block */ + ULONG rdb_FileSysHeaderList; /* optional file system header block */ + ULONG rdb_DriveInit; /* optional drive-specific init code */ + /* DriveInit(lun,rdb,ior): "C" stk & d0/a0/a1 */ + ULONG rdb_Reserved1[6]; /* set to $ffffffff */ + /* physical drive characteristics */ + ULONG rdb_Cylinders; /* number of drive cylinders */ + ULONG rdb_Sectors; /* sectors per track */ + ULONG rdb_Heads; /* number of drive heads */ + ULONG rdb_Interleave; /* interleave */ + ULONG rdb_Park; /* landing zone cylinder */ + ULONG rdb_Reserved2[3]; + ULONG rdb_WritePreComp; /* starting cylinder: write precompensation */ + ULONG rdb_ReducedWrite; /* starting cylinder: reduced write current */ + ULONG rdb_StepRate; /* drive step rate */ + ULONG rdb_Reserved3[5]; + /* logical drive characteristics */ + ULONG rdb_RDBBlocksLo; /* low block of range reserved for hardblocks */ + ULONG rdb_RDBBlocksHi; /* high block of range for these hardblocks */ + ULONG rdb_LoCylinder; /* low cylinder of partitionable disk area */ + ULONG rdb_HiCylinder; /* high cylinder of partitionable data area */ + ULONG rdb_CylBlocks; /* number of blocks available per cylinder */ + ULONG rdb_AutoParkSeconds; /* zero for no auto park */ + ULONG rdb_HighRDSKBlock; /* highest block used by RDSK */ + /* (not including replacement bad blocks) */ + ULONG rdb_Reserved4; + /* drive identification */ + char rdb_DiskVendor[8]; + char rdb_DiskProduct[16]; + char rdb_DiskRevision[4]; + char rdb_ControllerVendor[8]; + char rdb_ControllerProduct[16]; + char rdb_ControllerRevision[4]; + ULONG rdb_Reserved5[10]; +}; + +#define IDNAME_RIGIDDISK 0x5244534B /* 'RDSK' */ + +#define RDB_LOCATION_LIMIT 16 + +#define RDBFB_LAST 0 /* no disks exist to be configured after */ +#define RDBFF_LAST 0x01L /* this one on this controller */ +#define RDBFB_LASTLUN 1 /* no LUNs exist to be configured greater */ +#define RDBFF_LASTLUN 0x02L /* than this one at this SCSI Target ID */ +#define RDBFB_LASTTID 2 /* no Target IDs exist to be configured */ +#define RDBFF_LASTTID 0x04L /* greater than this one on this SCSI bus */ +#define RDBFB_NORESELECT 3 /* don't bother trying to perform reselection */ +#define RDBFF_NORESELECT 0x08L /* when talking to this drive */ +#define RDBFB_DISKID 4 /* rdb_Disk... identification valid */ +#define RDBFF_DISKID 0x10L +#define RDBFB_CTRLRID 5 /* rdb_Controller... identification valid */ +#define RDBFF_CTRLRID 0x20L + /* added 7/20/89 by commodore: */ +#define RDBFB_SYNCH 6 /* drive supports scsi synchronous mode */ +#define RDBFF_SYNCH 0x40L /* CAN BE DANGEROUS TO USE IF IT DOESN'T! */ + +struct PartitionBlock { + ULONG pb_ID; /* 4 character identifier */ + ULONG pb_SummedLongs; /* size of this checksummed structure */ + LONG pb_ChkSum; /* block checksum (longword sum to zero) */ + ULONG pb_HostID; /* SCSI Target ID of host */ + ULONG pb_Next; /* block number of the next PartitionBlock */ + ULONG pb_Flags; /* see below for defines */ + ULONG pb_Reserved1[2]; + ULONG pb_DevFlags; /* preferred flags for OpenDevice */ + UBYTE pb_DriveName[32]; /* preferred DOS device name: BSTR form */ + /* (not used if this name is in use) */ + ULONG pb_Reserved2[15]; /* filler to 32 longwords */ + ULONG pb_Environment[17]; /* environment vector for this partition */ + ULONG pb_EReserved[15]; /* reserved for future environment vector */ +}; + +#define IDNAME_PARTITION 0x50415254 /* 'PART' */ + +#define PBFB_BOOTABLE 0 /* this partition is intended to be bootable */ +#define PBFF_BOOTABLE 1L /* (expected directories and files exist) */ +#define PBFB_NOMOUNT 1 /* do not mount this partition (e.g. manually */ +#define PBFF_NOMOUNT 2L /* mounted, but space reserved here) */ + +/* this is from */ + +#define DE_TABLESIZE 0 /* minimum value is 11 (includes NumBuffers) */ +#define DE_SIZEBLOCK 1 /* in longwords: standard value is 128 */ +#define DE_SECORG 2 /* not used; must be 0 */ +#define DE_NUMHEADS 3 /* # of heads (surfaces). drive specific */ +#define DE_SECSPERBLK 4 /* not used; must be 1 */ +#define DE_BLKSPERTRACK 5 /* blocks per track. drive specific */ +#define DE_RESERVEDBLKS 6 /* unavailable blocks at start. usually 2 */ +#define DE_PREFAC 7 /* not used; must be 0 */ +#define DE_INTERLEAVE 8 /* usually 0 */ +#define DE_LOWCYL 9 /* starting cylinder. typically 0 */ +#define DE_UPPERCYL 10 /* max cylinder. drive specific */ +#define DE_NUMBUFFERS 11 /* starting # of buffers. typically 5 */ +#define DE_MEMBUFTYPE 12 /* type of mem to allocate for buffers. */ +#define DE_BUFMEMTYPE 12 /* same as above, better name + * 1 is public, 3 is chip, 5 is fast */ +#define DE_MAXTRANSFER 13 /* Max number bytes to transfer at a time */ +#define DE_MASK 14 /* Address Mask to block out certain memory */ +#define DE_BOOTPRI 15 /* Boot priority for autoboot */ +#define DE_DOSTYPE 16 /* ASCII (HEX) string showing filesystem type; + * 0X444F5300 is old filesystem, + * 0X444F5301 is fast file system */ +#define DE_BAUD 17 /* Baud rate for serial handler */ +#define DE_CONTROL 18 /* Control word for handler/filesystem */ +#define DE_BOOTBLOCKS 19 /* Number of blocks containing boot code */ + +#endif /* _LINUX_AMIGARDB_H */ diff -urNX exclude linux-2.1.79.orig/include/asm-m68k/amigahw.h linux-2.1.79/include/asm-m68k/amigahw.h --- linux-2.1.79.orig/include/asm-m68k/amigahw.h Thu Sep 18 17:51:57 1997 +++ linux-2.1.79/include/asm-m68k/amigahw.h Thu Jan 1 01:00:00 1970 @@ -1,335 +0,0 @@ -/* -** asm-m68k/amigahw.h -- This header defines some macros and pointers for -** the various Amiga custom hardware registers. -** The naming conventions used here conform to those -** used in the Amiga Hardware Reference Manual, 3rd Edition -** -** Copyright 1992 by Greg Harp -** -** 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: 9/24/92 by Greg Harp -*/ - -#ifndef _M68K_AMIGAHW_H -#define _M68K_AMIGAHW_H - - /* - * Different Amiga models - */ - -extern u_long amiga_model; - -#define AMI_UNKNOWN (0) -#define AMI_500 (1) -#define AMI_500PLUS (2) -#define AMI_600 (3) -#define AMI_1000 (4) -#define AMI_1200 (5) -#define AMI_2000 (6) -#define AMI_2500 (7) -#define AMI_3000 (8) -#define AMI_3000T (9) -#define AMI_3000PLUS (10) -#define AMI_4000 (11) -#define AMI_4000T (12) -#define AMI_CDTV (13) -#define AMI_CD32 (14) -#define AMI_DRACO (15) - - - /* - * Chipsets - */ - -extern u_long amiga_chipset; - -#define CS_STONEAGE (0) -#define CS_OCS (1) -#define CS_ECS (2) -#define CS_AGA (3) - - - /* - * Miscellaneous - */ - -extern u_long amiga_eclock; /* 700 kHz E Peripheral Clock */ -extern u_long amiga_masterclock; /* 28 MHz Master Clock */ -extern u_long amiga_colorclock; /* 3.5 MHz Color Clock */ -extern u_long amiga_chip_size; /* Chip RAM Size (bytes) */ -extern u_char amiga_vblank; /* VBLANK Frequency */ -extern u_char amiga_psfreq; /* Power Supply Frequency */ - - -#define AMIGAHW_DECLARE(name) unsigned name : 1 -#define AMIGAHW_SET(name) (amiga_hw_present.name = 1) -#define AMIGAHW_PRESENT(name) (amiga_hw_present.name) - -struct amiga_hw_present { - /* video hardware */ - AMIGAHW_DECLARE(AMI_VIDEO); /* Amiga Video */ - AMIGAHW_DECLARE(AMI_BLITTER); /* Amiga Blitter */ - AMIGAHW_DECLARE(AMBER_FF); /* Amber Flicker Fixer */ - /* sound hardware */ - AMIGAHW_DECLARE(AMI_AUDIO); /* Amiga Audio */ - /* disk storage interfaces */ - AMIGAHW_DECLARE(AMI_FLOPPY); /* Amiga Floppy */ - AMIGAHW_DECLARE(A3000_SCSI); /* SCSI (wd33c93, A3000 alike) */ - AMIGAHW_DECLARE(A4000_SCSI); /* SCSI (ncr53c710, A4000T alike) */ - AMIGAHW_DECLARE(A1200_IDE); /* IDE (A1200 alike) */ - AMIGAHW_DECLARE(A4000_IDE); /* IDE (A4000 alike) */ - AMIGAHW_DECLARE(CD_ROM); /* CD ROM drive */ - /* other I/O hardware */ - AMIGAHW_DECLARE(AMI_KEYBOARD); /* Amiga Keyboard */ - AMIGAHW_DECLARE(AMI_MOUSE); /* Amiga Mouse */ - AMIGAHW_DECLARE(AMI_SERIAL); /* Amiga Serial */ - AMIGAHW_DECLARE(AMI_PARALLEL); /* Amiga Parallel */ - /* real time clocks */ - AMIGAHW_DECLARE(A2000_CLK); /* Hardware Clock (A2000 alike) */ - AMIGAHW_DECLARE(A3000_CLK); /* Hardware Clock (A3000 alike) */ - /* supporting hardware */ - AMIGAHW_DECLARE(CHIP_RAM); /* Chip RAM */ - AMIGAHW_DECLARE(PAULA); /* Paula (8364) */ - AMIGAHW_DECLARE(DENISE); /* Denise (8362) */ - AMIGAHW_DECLARE(DENISE_HR); /* Denise (8373) */ - AMIGAHW_DECLARE(LISA); /* Lisa (8375) */ - AMIGAHW_DECLARE(AGNUS_PAL); /* Normal/Fat PAL Agnus (8367/8371) */ - AMIGAHW_DECLARE(AGNUS_NTSC); /* Normal/Fat NTSC Agnus (8361/8370) */ - AMIGAHW_DECLARE(AGNUS_HR_PAL); /* Fat Hires PAL Agnus (8372) */ - AMIGAHW_DECLARE(AGNUS_HR_NTSC); /* Fat Hires NTSC Agnus (8372) */ - AMIGAHW_DECLARE(ALICE_PAL); /* PAL Alice (8374) */ - AMIGAHW_DECLARE(ALICE_NTSC); /* NTSC Alice (8374) */ - AMIGAHW_DECLARE(MAGIC_REKICK); /* A3000 Magic Hard Rekick */ - AMIGAHW_DECLARE(PCMCIA); /* PCMCIA Slot */ - AMIGAHW_DECLARE(ZORRO); /* Zorro AutoConfig */ - AMIGAHW_DECLARE(ZORRO3); /* Zorro III */ -}; - -extern struct amiga_hw_present amiga_hw_present; - -struct CUSTOM { - u_short bltddat; - u_short dmaconr; - u_short vposr; - u_short vhposr; - u_short dskdatr; - u_short joy0dat; - u_short joy1dat; - u_short clxdat; - u_short adkconr; - u_short pot0dat; - u_short pot1dat; - u_short potgor; - u_short serdatr; - u_short dskbytr; - u_short intenar; - u_short intreqr; - u_char *dskptr; - u_short dsklen; - u_short dskdat; - u_short refptr; - u_short vposw; - u_short vhposw; - u_short copcon; - u_short serdat; - u_short serper; - u_short potgo; - u_short joytest; - u_short strequ; - u_short strvbl; - u_short strhor; - u_short strlong; - u_short bltcon0; - u_short bltcon1; - u_short bltafwm; - u_short bltalwm; - u_char *bltcpt; - u_char *bltbpt; - u_char *bltapt; - u_char *bltdpt; - u_short bltsize; - u_char pad2d; - u_char bltcon0l; - u_short bltsizv; - u_short bltsizh; - u_short bltcmod; - u_short bltbmod; - u_short bltamod; - u_short bltdmod; - u_short spare2[4]; - u_short bltcdat; - u_short bltbdat; - u_short bltadat; - u_short spare3[3]; - u_short deniseid; - u_short dsksync; - u_short *cop1lc; - u_short *cop2lc; - u_short copjmp1; - u_short copjmp2; - u_short copins; - u_short diwstrt; - u_short diwstop; - u_short ddfstrt; - u_short ddfstop; - u_short dmacon; - u_short clxcon; - u_short intena; - u_short intreq; - u_short adkcon; - struct { - u_short *audlc; - u_short audlen; - u_short audper; - u_short audvol; - u_short auddat; - u_short audspare[2]; - } aud[4]; - u_char *bplpt[8]; - u_short bplcon0; - u_short bplcon1; - u_short bplcon2; - u_short bplcon3; - u_short bpl1mod; - u_short bpl2mod; - u_short bplcon4; - u_short clxcon2; - u_short bpldat[8]; - u_char *sprpt[8]; - struct { - u_short pos; - u_short ctl; - u_short dataa; - u_short datab; - } spr[8]; - u_short color[32]; - u_short htotal; - u_short hsstop; - u_short hbstrt; - u_short hbstop; - u_short vtotal; - u_short vsstop; - u_short vbstrt; - u_short vbstop; - u_short sprhstrt; - u_short sprhstop; - u_short bplhstrt; - u_short bplhstop; - u_short hhposw; - u_short hhposr; - u_short beamcon0; - u_short hsstrt; - u_short vsstrt; - u_short hcenter; - u_short diwhigh; - u_short spare4[11]; - u_short fmode; -}; - -/* - * DMA register bits - */ -#define DMAF_SETCLR (0x8000) -#define DMAF_AUD0 (0x0001) -#define DMAF_AUD1 (0x0002) -#define DMAF_AUD2 (0x0004) -#define DMAF_AUD3 (0x0008) -#define DMAF_DISK (0x0010) -#define DMAF_SPRITE (0x0020) -#define DMAF_BLITTER (0x0040) -#define DMAF_COPPER (0x0080) -#define DMAF_RASTER (0x0100) -#define DMAF_MASTER (0x0200) -#define DMAF_BLITHOG (0x0400) -#define DMAF_BLTNZERO (0x2000) -#define DMAF_BLTDONE (0x4000) -#define DMAF_ALL (0x01FF) - -struct CIA { - u_char pra; char pad0[0xff]; - u_char prb; char pad1[0xff]; - u_char ddra; char pad2[0xff]; - u_char ddrb; char pad3[0xff]; - u_char talo; char pad4[0xff]; - u_char tahi; char pad5[0xff]; - u_char tblo; char pad6[0xff]; - u_char tbhi; char pad7[0xff]; - u_char todlo; char pad8[0xff]; - u_char todmid; char pad9[0xff]; - u_char todhi; char pada[0x1ff]; - u_char sdr; char padb[0xff]; - u_char icr; char padc[0xff]; - u_char cra; char padd[0xff]; - u_char crb; char pade[0xff]; -}; - -#define zTwoBase (0x80000000) -#define ZTWO_PADDR(x) (((unsigned long)(x))-zTwoBase) -#define ZTWO_VADDR(x) (((unsigned long)(x))+zTwoBase) - -#define CUSTOM_PHYSADDR (0xdff000) -#define custom ((*(volatile struct CUSTOM *)(zTwoBase+CUSTOM_PHYSADDR))) - -#define CIAA_PHYSADDR (0xbfe001) -#define CIAB_PHYSADDR (0xbfd000) -#define ciaa ((*(volatile struct CIA *)(zTwoBase + CIAA_PHYSADDR))) -#define ciab ((*(volatile struct CIA *)(zTwoBase + CIAB_PHYSADDR))) - -#define CHIP_PHYSADDR (0x000000) -#define chipaddr ((unsigned long)(zTwoBase + CHIP_PHYSADDR)) -void amiga_chip_init (void); -void *amiga_chip_alloc (long size); -void amiga_chip_free (void *); -unsigned long amiga_chip_avail( void ); /*MILAN*/ - -struct tod3000 { - unsigned int :28, second2:4; /* lower digit */ - unsigned int :28, second1:4; /* upper digit */ - unsigned int :28, minute2:4; /* lower digit */ - unsigned int :28, minute1:4; /* upper digit */ - unsigned int :28, hour2:4; /* lower digit */ - unsigned int :28, hour1:4; /* upper digit */ - unsigned int :28, weekday:4; - unsigned int :28, day2:4; /* lower digit */ - unsigned int :28, day1:4; /* upper digit */ - unsigned int :28, month2:4; /* lower digit */ - unsigned int :28, month1:4; /* upper digit */ - unsigned int :28, year2:4; /* lower digit */ - unsigned int :28, year1:4; /* upper digit */ - unsigned int :28, cntrl1:4; /* control-byte 1 */ - unsigned int :28, cntrl2:4; /* control-byte 2 */ - unsigned int :28, cntrl3:4; /* control-byte 3 */ -}; -#define TOD3000_CNTRL1_HOLD 0 -#define TOD3000_CNTRL1_FREE 9 -#define TOD_3000 ((struct tod3000 *)(zTwoBase+0xDC0000)) - -struct tod2000 { - unsigned int :28, second2:4; /* lower digit */ - unsigned int :28, second1:4; /* upper digit */ - unsigned int :28, minute2:4; /* lower digit */ - unsigned int :28, minute1:4; /* upper digit */ - unsigned int :28, hour2:4; /* lower digit */ - unsigned int :28, hour1:4; /* upper digit */ - unsigned int :28, day2:4; /* lower digit */ - unsigned int :28, day1:4; /* upper digit */ - unsigned int :28, month2:4; /* lower digit */ - unsigned int :28, month1:4; /* upper digit */ - unsigned int :28, year2:4; /* lower digit */ - unsigned int :28, year1:4; /* upper digit */ - unsigned int :28, weekday:4; - unsigned int :28, cntrl1:4; /* control-byte 1 */ - unsigned int :28, cntrl2:4; /* control-byte 2 */ - unsigned int :28, cntrl3:4; /* control-byte 3 */ -}; - -#define TOD2000_CNTRL1_HOLD (1<<0) -#define TOD2000_CNTRL1_BUSY (1<<1) -#define TOD2000_CNTRL3_24HMODE (1<<2) -#define TOD2000_HOUR1_PM (1<<2) -#define TOD_2000 ((struct tod2000 *)(zTwoBase+0xDC0000)) - -#endif /* __ASMm68k_AMIGAHW_H */ diff -urNX exclude linux-2.1.79.orig/include/asm-m68k/amigaints.h linux-2.1.79/include/asm-m68k/amigaints.h --- linux-2.1.79.orig/include/asm-m68k/amigaints.h Mon Mar 24 16:52:33 1997 +++ linux-2.1.79/include/asm-m68k/amigaints.h Thu Jan 1 01:00:00 1970 @@ -1,135 +0,0 @@ -/* -** amigaints.h -- Amiga Linux interrupt handling structs and prototypes -** -** Copyright 1992 by Greg Harp -** -** 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 10/2/92 by Greg Harp -*/ - -#ifndef _ASMm68k_AMIGAINTS_H_ -#define _ASMm68k_AMIGAINTS_H_ - -/* -** Amiga Interrupt sources. -** -*/ - -#define AUTO_IRQS (8) -#define AMI_STD_IRQS (14) -#define CIA_IRQS (5) -#define AMI_IRQS (32) /* AUTO_IRQS+AMI_STD_IRQS+2*CIA_IRQS */ - -/* vertical blanking interrupt */ -#define IRQ_AMIGA_VERTB 0 - -/* copper interrupt */ -#define IRQ_AMIGA_COPPER 1 - -/* Audio interrupts */ -#define IRQ_AMIGA_AUD0 2 -#define IRQ_AMIGA_AUD1 3 -#define IRQ_AMIGA_AUD2 4 -#define IRQ_AMIGA_AUD3 5 - -/* Blitter done interrupt */ -#define IRQ_AMIGA_BLIT 6 - -/* floppy disk interrupts */ -#define IRQ_AMIGA_DSKSYN 7 -#define IRQ_AMIGA_DSKBLK 8 - -/* builtin serial port interrupts */ -#define IRQ_AMIGA_RBF 9 -#define IRQ_AMIGA_TBE 10 - -/* software interrupts */ -#define IRQ_AMIGA_SOFT 11 - -/* interrupts from external hardware */ -#define IRQ_AMIGA_PORTS 12 -#define IRQ_AMIGA_EXTER 13 - -/* CIA interrupt sources */ -#define IRQ_AMIGA_CIAA 14 -#define IRQ_AMIGA_CIAA_TA 14 -#define IRQ_AMIGA_CIAA_TB 15 -#define IRQ_AMIGA_CIAA_ALRM 16 -#define IRQ_AMIGA_CIAA_SP 17 -#define IRQ_AMIGA_CIAA_FLG 18 -#define IRQ_AMIGA_CIAB 19 -#define IRQ_AMIGA_CIAB_TA 19 -#define IRQ_AMIGA_CIAB_TB 20 -#define IRQ_AMIGA_CIAB_ALRM 21 -#define IRQ_AMIGA_CIAB_SP 22 -#define IRQ_AMIGA_CIAB_FLG 23 - -/* auto-vector interrupts */ -#define IRQ_AMIGA_AUTO 24 -#define IRQ_AMIGA_AUTO_0 24 /* This is just a dummy */ -#define IRQ_AMIGA_AUTO_1 25 -#define IRQ_AMIGA_AUTO_2 26 -#define IRQ_AMIGA_AUTO_3 27 -#define IRQ_AMIGA_AUTO_4 28 -#define IRQ_AMIGA_AUTO_5 29 -#define IRQ_AMIGA_AUTO_6 30 -#define IRQ_AMIGA_AUTO_7 31 - -#define IRQ_FLOPPY IRQ_AMIGA_DSKBLK - -/* INTREQR masks */ -#define IRQ1_MASK 0x0007 /* INTREQR mask for IRQ 1 */ -#define IRQ2_MASK 0x0008 /* INTREQR mask for IRQ 2 */ -#define IRQ3_MASK 0x0070 /* INTREQR mask for IRQ 3 */ -#define IRQ4_MASK 0x0780 /* INTREQR mask for IRQ 4 */ -#define IRQ5_MASK 0x1800 /* INTREQR mask for IRQ 5 */ -#define IRQ6_MASK 0x2000 /* INTREQR mask for IRQ 6 */ -#define IRQ7_MASK 0x4000 /* INTREQR mask for IRQ 7 */ - -#define IF_SETCLR 0x8000 /* set/clr bit */ -#define IF_INTEN 0x4000 /* master interrupt bit in INT* registers */ -#define IF_EXTER 0x2000 /* external level 6 and CIA B interrupt */ -#define IF_DSKSYN 0x1000 /* disk sync interrupt */ -#define IF_RBF 0x0800 /* serial receive buffer full interrupt */ -#define IF_AUD3 0x0400 /* audio channel 3 done interrupt */ -#define IF_AUD2 0x0200 /* audio channel 2 done interrupt */ -#define IF_AUD1 0x0100 /* audio channel 1 done interrupt */ -#define IF_AUD0 0x0080 /* audio channel 0 done interrupt */ -#define IF_BLIT 0x0040 /* blitter done interrupt */ -#define IF_VERTB 0x0020 /* vertical blanking interrupt */ -#define IF_COPER 0x0010 /* copper interrupt */ -#define IF_PORTS 0x0008 /* external level 2 and CIA A interrupt */ -#define IF_SOFT 0x0004 /* software initiated interrupt */ -#define IF_DSKBLK 0x0002 /* diskblock DMA finished */ -#define IF_TBE 0x0001 /* serial transmit buffer empty interrupt */ - -struct irq_server { - unsigned short count, reentrance; -}; - -extern void amiga_do_irq(int irq, struct pt_regs *fp); -extern void amiga_do_irq_list(int irq, struct pt_regs *fp, struct irq_server *server); - -/* CIA interrupt control register bits */ - -#define CIA_ICR_TA 0x01 -#define CIA_ICR_TB 0x02 -#define CIA_ICR_ALRM 0x04 -#define CIA_ICR_SP 0x08 -#define CIA_ICR_FLG 0x10 -#define CIA_ICR_ALL 0x1f -#define CIA_ICR_SETCLR 0x80 - -/* to access the interrupt control registers of CIA's use only -** these functions, they behave exactly like the amiga os routines -*/ - -extern struct ciabase ciaa_base, ciab_base; - -extern unsigned char cia_set_irq(struct ciabase *base, unsigned char mask); -extern unsigned char cia_able_irq(struct ciabase *base, unsigned char mask); - -#endif /* asm-m68k/amigaints.h */ diff -urNX exclude linux-2.1.79.orig/include/asm-m68k/amigamouse.h linux-2.1.79/include/asm-m68k/amigamouse.h --- linux-2.1.79.orig/include/asm-m68k/amigamouse.h Wed Apr 24 18:17:13 1996 +++ linux-2.1.79/include/asm-m68k/amigamouse.h Thu Jan 1 01:00:00 1970 @@ -1,26 +0,0 @@ -#ifndef _ASMm68k_AMIGAMOUSE_H -#define _ASMm68k_AMIGAMOUSE_H - -/* - * linux/include/asm-m68k/amigamouse.h: header file for Amiga Mouse driver - * by Michael Rausch - */ - -/* -#define MSE_INT_OFF() outb(MSE_DISABLE_INTERRUPTS, MSE_CONTROL_PORT) -#define MSE_INT_ON() outb(MSE_ENABLE_INTERRUPTS, MSE_CONTROL_PORT) -*/ - -struct mouse_status { - unsigned char buttons; - unsigned char latch_buttons; - int dx; - int dy; - int present; - int ready; - int active; - struct wait_queue *wait; - struct fasync_struct *fasyncptr; -}; - -#endif diff -urNX exclude linux-2.1.79.orig/include/asm-m68k/amigardb.h linux-2.1.79/include/asm-m68k/amigardb.h --- linux-2.1.79.orig/include/asm-m68k/amigardb.h Wed Apr 24 18:17:13 1996 +++ linux-2.1.79/include/asm-m68k/amigardb.h Thu Jan 1 01:00:00 1970 @@ -1,126 +0,0 @@ -#ifndef _LINUX_AMIGARDB_H -#define _LINUX_AMIGARDB_H 1 - -#define ULONG u_long -#define LONG long -#define UBYTE u_char - -/* definitions for the Amiga RigidDiskBlock layout, which always starts in - cylinder 0 of a medium. Taken from page 254f of the RKM: Devices */ - -struct RigidDiskBlock { - ULONG rdb_ID; /* 4 character identifier */ - ULONG rdb_SummedLongs; /* size of this checksummed structure */ - LONG rdb_ChkSum; /* block checksum (longword sum to zero) */ - ULONG rdb_HostID; /* SCSI Target ID of host */ - ULONG rdb_BlockBytes; /* size of disk blocks */ - ULONG rdb_Flags; /* see below for defines */ - /* block list heads */ - ULONG rdb_BadBlockList; /* optional bad block list */ - ULONG rdb_PartitionList; /* optional first partition block */ - ULONG rdb_FileSysHeaderList; /* optional file system header block */ - ULONG rdb_DriveInit; /* optional drive-specific init code */ - /* DriveInit(lun,rdb,ior): "C" stk & d0/a0/a1 */ - ULONG rdb_Reserved1[6]; /* set to $ffffffff */ - /* physical drive characteristics */ - ULONG rdb_Cylinders; /* number of drive cylinders */ - ULONG rdb_Sectors; /* sectors per track */ - ULONG rdb_Heads; /* number of drive heads */ - ULONG rdb_Interleave; /* interleave */ - ULONG rdb_Park; /* landing zone cylinder */ - ULONG rdb_Reserved2[3]; - ULONG rdb_WritePreComp; /* starting cylinder: write precompensation */ - ULONG rdb_ReducedWrite; /* starting cylinder: reduced write current */ - ULONG rdb_StepRate; /* drive step rate */ - ULONG rdb_Reserved3[5]; - /* logical drive characteristics */ - ULONG rdb_RDBBlocksLo; /* low block of range reserved for hardblocks */ - ULONG rdb_RDBBlocksHi; /* high block of range for these hardblocks */ - ULONG rdb_LoCylinder; /* low cylinder of partitionable disk area */ - ULONG rdb_HiCylinder; /* high cylinder of partitionable data area */ - ULONG rdb_CylBlocks; /* number of blocks available per cylinder */ - ULONG rdb_AutoParkSeconds; /* zero for no auto park */ - ULONG rdb_HighRDSKBlock; /* highest block used by RDSK */ - /* (not including replacement bad blocks) */ - ULONG rdb_Reserved4; - /* drive identification */ - char rdb_DiskVendor[8]; - char rdb_DiskProduct[16]; - char rdb_DiskRevision[4]; - char rdb_ControllerVendor[8]; - char rdb_ControllerProduct[16]; - char rdb_ControllerRevision[4]; - ULONG rdb_Reserved5[10]; -}; - -#define IDNAME_RIGIDDISK 0x5244534B /* 'RDSK' */ - -#define RDB_LOCATION_LIMIT 16 - -#define RDBFB_LAST 0 /* no disks exist to be configured after */ -#define RDBFF_LAST 0x01L /* this one on this controller */ -#define RDBFB_LASTLUN 1 /* no LUNs exist to be configured greater */ -#define RDBFF_LASTLUN 0x02L /* than this one at this SCSI Target ID */ -#define RDBFB_LASTTID 2 /* no Target IDs exist to be configured */ -#define RDBFF_LASTTID 0x04L /* greater than this one on this SCSI bus */ -#define RDBFB_NORESELECT 3 /* don't bother trying to perform reselection */ -#define RDBFF_NORESELECT 0x08L /* when talking to this drive */ -#define RDBFB_DISKID 4 /* rdb_Disk... identification valid */ -#define RDBFF_DISKID 0x10L -#define RDBFB_CTRLRID 5 /* rdb_Controller... identification valid */ -#define RDBFF_CTRLRID 0x20L - /* added 7/20/89 by commodore: */ -#define RDBFB_SYNCH 6 /* drive supports scsi synchronous mode */ -#define RDBFF_SYNCH 0x40L /* CAN BE DANGEROUS TO USE IF IT DOESN'T! */ - -struct PartitionBlock { - ULONG pb_ID; /* 4 character identifier */ - ULONG pb_SummedLongs; /* size of this checksummed structure */ - LONG pb_ChkSum; /* block checksum (longword sum to zero) */ - ULONG pb_HostID; /* SCSI Target ID of host */ - ULONG pb_Next; /* block number of the next PartitionBlock */ - ULONG pb_Flags; /* see below for defines */ - ULONG pb_Reserved1[2]; - ULONG pb_DevFlags; /* preferred flags for OpenDevice */ - UBYTE pb_DriveName[32]; /* preferred DOS device name: BSTR form */ - /* (not used if this name is in use) */ - ULONG pb_Reserved2[15]; /* filler to 32 longwords */ - ULONG pb_Environment[17]; /* environment vector for this partition */ - ULONG pb_EReserved[15]; /* reserved for future environment vector */ -}; - -#define IDNAME_PARTITION 0x50415254 /* 'PART' */ - -#define PBFB_BOOTABLE 0 /* this partition is intended to be bootable */ -#define PBFF_BOOTABLE 1L /* (expected directories and files exist) */ -#define PBFB_NOMOUNT 1 /* do not mount this partition (e.g. manually */ -#define PBFF_NOMOUNT 2L /* mounted, but space reserved here) */ - -/* this is from */ - -#define DE_TABLESIZE 0 /* minimum value is 11 (includes NumBuffers) */ -#define DE_SIZEBLOCK 1 /* in longwords: standard value is 128 */ -#define DE_SECORG 2 /* not used; must be 0 */ -#define DE_NUMHEADS 3 /* # of heads (surfaces). drive specific */ -#define DE_SECSPERBLK 4 /* not used; must be 1 */ -#define DE_BLKSPERTRACK 5 /* blocks per track. drive specific */ -#define DE_RESERVEDBLKS 6 /* unavailable blocks at start. usually 2 */ -#define DE_PREFAC 7 /* not used; must be 0 */ -#define DE_INTERLEAVE 8 /* usually 0 */ -#define DE_LOWCYL 9 /* starting cylinder. typically 0 */ -#define DE_UPPERCYL 10 /* max cylinder. drive specific */ -#define DE_NUMBUFFERS 11 /* starting # of buffers. typically 5 */ -#define DE_MEMBUFTYPE 12 /* type of mem to allocate for buffers. */ -#define DE_BUFMEMTYPE 12 /* same as above, better name - * 1 is public, 3 is chip, 5 is fast */ -#define DE_MAXTRANSFER 13 /* Max number bytes to transfer at a time */ -#define DE_MASK 14 /* Address Mask to block out certain memory */ -#define DE_BOOTPRI 15 /* Boot priority for autoboot */ -#define DE_DOSTYPE 16 /* ASCII (HEX) string showing filesystem type; - * 0X444F5300 is old filesystem, - * 0X444F5301 is fast file system */ -#define DE_BAUD 17 /* Baud rate for serial handler */ -#define DE_CONTROL 18 /* Control word for handler/filesystem */ -#define DE_BOOTBLOCKS 19 /* Number of blocks containing boot code */ - -#endif /* _LINUX_AMIGARDB_H */ diff -urNX exclude linux-2.1.79.orig/include/asm-m68k/apollo/hardware.h linux-2.1.79/include/asm-m68k/apollo/hardware.h --- linux-2.1.79.orig/include/asm-m68k/apollo/hardware.h Thu Jan 1 01:00:00 1970 +++ linux-2.1.79/include/asm-m68k/apollo/hardware.h Fri Nov 7 19:16:08 1997 @@ -0,0 +1,71 @@ +/* apollohw.h : some structures to access apollo HW */ + +#ifndef _ASMm68k_APOLLOHW_H_ +#define _ASMm68k_APOLLOHW_H_ + + +/* + see scn2681 data sheet for more info. + member names are read_write. +*/ + +#define DECLARE_2681_FIELD(x) unsigned char x; unsigned char dummy##x + +struct SCN2681 { + + DECLARE_2681_FIELD(mra); + DECLARE_2681_FIELD(sra_csra); + DECLARE_2681_FIELD(BRGtest_cra); + DECLARE_2681_FIELD(rhra_thra); + DECLARE_2681_FIELD(ipcr_acr); + DECLARE_2681_FIELD(isr_imr); + DECLARE_2681_FIELD(ctu_ctur); + DECLARE_2681_FIELD(ctl_ctlr); + DECLARE_2681_FIELD(mrb); + DECLARE_2681_FIELD(srb_csrb); + DECLARE_2681_FIELD(tst_crb); + DECLARE_2681_FIELD(rhrb_thrb); + DECLARE_2681_FIELD(reserved); + DECLARE_2681_FIELD(ip_opcr); + DECLARE_2681_FIELD(startCnt_setOutBit); + DECLARE_2681_FIELD(stopCnt_resetOutBit); + +}; + +#if 0 +struct mc146818 { + + unsigned int second1:4, second2:4, alarm_second1:4, alarm_second2:4, + minute1:4, minute2:4, alarm_minute1:4, alarm_minute2:4; + unsigned int hours1:4, hours2:4, alarm_hours1:4, alarm_hours2:4, + day_of_week1:4, day_of_week2:4, day_of_month1:4, day_of_month2:4; + unsigned int month1:4, month2:4, year1:4, year2:4, :16; + +}; +#endif + +struct mc146818 { + unsigned char second, alarm_second; + unsigned char minute, alarm_minute; + unsigned char hours, alarm_hours; + unsigned char day_of_week, day_of_month; + unsigned char month, year; +}; + +#define IO_BASE 0x80000000 + +#define SIO01_PHYSADDR 0x10400 +#define SIO23_PHYSADDR 0x10500 +#define RTC_PHYSADDR 0x10900 +#define PICA 0x11000 +#define PICB 0x11100 +#define sio01 ((*(volatile struct SCN2681 *)(IO_BASE + SIO01_PHYSADDR))) +#define sio23 ((*(volatile struct SCN2681 *)(IO_BASE + SIO01_PHYSADDR))) +#define rtc (((volatile struct mc146818 *)(IO_BASE + RTC_PHYSADDR))) + +#define inb(addr) (*((volatile unsigned char *)(addr))) +#define outb(val,addr) (*((volatile unsigned char *)(addr)) = (val)) +#define inw(addr) (*((volatile unsigned short *)(addr))) +#define outw(val,addr) (*((volatile unsigned short *)(addr)) = (val)) + +#endif diff -urNX exclude linux-2.1.79.orig/include/asm-m68k/apollohw.h linux-2.1.79/include/asm-m68k/apollohw.h --- linux-2.1.79.orig/include/asm-m68k/apollohw.h Fri Nov 7 19:16:08 1997 +++ linux-2.1.79/include/asm-m68k/apollohw.h Thu Jan 1 01:00:00 1970 @@ -1,71 +0,0 @@ -/* apollohw.h : some structures to access apollo HW */ - -#ifndef _ASMm68k_APOLLOHW_H_ -#define _ASMm68k_APOLLOHW_H_ - - -/* - see scn2681 data sheet for more info. - member names are read_write. -*/ - -#define DECLARE_2681_FIELD(x) unsigned char x; unsigned char dummy##x - -struct SCN2681 { - - DECLARE_2681_FIELD(mra); - DECLARE_2681_FIELD(sra_csra); - DECLARE_2681_FIELD(BRGtest_cra); - DECLARE_2681_FIELD(rhra_thra); - DECLARE_2681_FIELD(ipcr_acr); - DECLARE_2681_FIELD(isr_imr); - DECLARE_2681_FIELD(ctu_ctur); - DECLARE_2681_FIELD(ctl_ctlr); - DECLARE_2681_FIELD(mrb); - DECLARE_2681_FIELD(srb_csrb); - DECLARE_2681_FIELD(tst_crb); - DECLARE_2681_FIELD(rhrb_thrb); - DECLARE_2681_FIELD(reserved); - DECLARE_2681_FIELD(ip_opcr); - DECLARE_2681_FIELD(startCnt_setOutBit); - DECLARE_2681_FIELD(stopCnt_resetOutBit); - -}; - -#if 0 -struct mc146818 { - - unsigned int second1:4, second2:4, alarm_second1:4, alarm_second2:4, - minute1:4, minute2:4, alarm_minute1:4, alarm_minute2:4; - unsigned int hours1:4, hours2:4, alarm_hours1:4, alarm_hours2:4, - day_of_week1:4, day_of_week2:4, day_of_month1:4, day_of_month2:4; - unsigned int month1:4, month2:4, year1:4, year2:4, :16; - -}; -#endif - -struct mc146818 { - unsigned char second, alarm_second; - unsigned char minute, alarm_minute; - unsigned char hours, alarm_hours; - unsigned char day_of_week, day_of_month; - unsigned char month, year; -}; - -#define IO_BASE 0x80000000 - -#define SIO01_PHYSADDR 0x10400 -#define SIO23_PHYSADDR 0x10500 -#define RTC_PHYSADDR 0x10900 -#define PICA 0x11000 -#define PICB 0x11100 -#define sio01 ((*(volatile struct SCN2681 *)(IO_BASE + SIO01_PHYSADDR))) -#define sio23 ((*(volatile struct SCN2681 *)(IO_BASE + SIO01_PHYSADDR))) -#define rtc (((volatile struct mc146818 *)(IO_BASE + RTC_PHYSADDR))) - -#define inb(addr) (*((volatile unsigned char *)(addr))) -#define outb(val,addr) (*((volatile unsigned char *)(addr)) = (val)) -#define inw(addr) (*((volatile unsigned short *)(addr))) -#define outw(val,addr) (*((volatile unsigned short *)(addr)) = (val)) - -#endif diff -urNX exclude linux-2.1.79.orig/include/asm-m68k/atafd.h linux-2.1.79/include/asm-m68k/atafd.h --- linux-2.1.79.orig/include/asm-m68k/atafd.h Wed Apr 24 18:17:14 1996 +++ linux-2.1.79/include/asm-m68k/atafd.h Thu Jan 1 01:00:00 1970 @@ -1,12 +0,0 @@ -#ifndef _ASM_M68K_FD_H -#define _ASM_M68K_FD_H - -/* Definitions for the Atari Floppy driver */ - -struct atari_format_descr { - int track; /* to be formatted */ - int head; /* "" "" */ - int sect_offset; /* offset of first sector */ -}; - -#endif diff -urNX exclude linux-2.1.79.orig/include/asm-m68k/atafdreg.h linux-2.1.79/include/asm-m68k/atafdreg.h --- linux-2.1.79.orig/include/asm-m68k/atafdreg.h Wed Apr 24 18:17:14 1996 +++ linux-2.1.79/include/asm-m68k/atafdreg.h Thu Jan 1 01:00:00 1970 @@ -1,79 +0,0 @@ -#ifndef _LINUX_FDREG_H -#define _LINUX_FDREG_H - -/* -** WD1772 stuff - */ - -/* register codes */ - -#define FDCSELREG_STP (0x80) /* command/status register */ -#define FDCSELREG_TRA (0x82) /* track register */ -#define FDCSELREG_SEC (0x84) /* sector register */ -#define FDCSELREG_DTA (0x86) /* data register */ - -/* register names for FDC_READ/WRITE macros */ - -#define FDCREG_CMD 0 -#define FDCREG_STATUS 0 -#define FDCREG_TRACK 2 -#define FDCREG_SECTOR 4 -#define FDCREG_DATA 6 - -/* command opcodes */ - -#define FDCCMD_RESTORE (0x00) /* - */ -#define FDCCMD_SEEK (0x10) /* | */ -#define FDCCMD_STEP (0x20) /* | TYP 1 Commands */ -#define FDCCMD_STIN (0x40) /* | */ -#define FDCCMD_STOT (0x60) /* - */ -#define FDCCMD_RDSEC (0x80) /* - TYP 2 Commands */ -#define FDCCMD_WRSEC (0xa0) /* - " */ -#define FDCCMD_RDADR (0xc0) /* - */ -#define FDCCMD_RDTRA (0xe0) /* | TYP 3 Commands */ -#define FDCCMD_WRTRA (0xf0) /* - */ -#define FDCCMD_FORCI (0xd0) /* - TYP 4 Command */ - -/* command modifier bits */ - -#define FDCCMDADD_SR6 (0x00) /* step rate settings */ -#define FDCCMDADD_SR12 (0x01) -#define FDCCMDADD_SR2 (0x02) -#define FDCCMDADD_SR3 (0x03) -#define FDCCMDADD_V (0x04) /* verify */ -#define FDCCMDADD_H (0x08) /* wait for spin-up */ -#define FDCCMDADD_U (0x10) /* update track register */ -#define FDCCMDADD_M (0x10) /* multiple sector access */ -#define FDCCMDADD_E (0x04) /* head settling flag */ -#define FDCCMDADD_P (0x02) /* precompensation off */ -#define FDCCMDADD_A0 (0x01) /* DAM flag */ - -/* status register bits */ - -#define FDCSTAT_MOTORON (0x80) /* motor on */ -#define FDCSTAT_WPROT (0x40) /* write protected (FDCCMD_WR*) */ -#define FDCSTAT_SPINUP (0x20) /* motor speed stable (Type I) */ -#define FDCSTAT_DELDAM (0x20) /* sector has deleted DAM (Type II+III) */ -#define FDCSTAT_RECNF (0x10) /* record not found */ -#define FDCSTAT_CRC (0x08) /* CRC error */ -#define FDCSTAT_TR00 (0x04) /* Track 00 flag (Type I) */ -#define FDCSTAT_LOST (0x04) /* Lost Data (Type II+III) */ -#define FDCSTAT_IDX (0x02) /* Index status (Type I) */ -#define FDCSTAT_DRQ (0x02) /* DRQ status (Type II+III) */ -#define FDCSTAT_BUSY (0x01) /* FDC is busy */ - - -/* PSG Port A Bit Nr 0 .. Side Sel .. 0 -> Side 1 1 -> Side 2 */ -#define DSKSIDE (0x01) - -#define DSKDRVNONE (0x06) -#define DSKDRV0 (0x02) -#define DSKDRV1 (0x04) - -/* step rates */ -#define FDCSTEP_6 0x00 -#define FDCSTEP_12 0x01 -#define FDCSTEP_2 0x02 -#define FDCSTEP_3 0x03 - -#endif diff -urNX exclude linux-2.1.79.orig/include/asm-m68k/atari/SCCserial.h linux-2.1.79/include/asm-m68k/atari/SCCserial.h --- linux-2.1.79.orig/include/asm-m68k/atari/SCCserial.h Thu Jan 1 01:00:00 1970 +++ linux-2.1.79/include/asm-m68k/atari/SCCserial.h Fri Jan 9 18:15:07 1998 @@ -0,0 +1,64 @@ +#ifndef _ATARI_SCCSERIAL_H +#define _ATARI_SCCSERIAL_H + +/* Special configuration ioctls for the Atari SCC5380 Serial + * Communications Controller + */ + +/* ioctl command codes */ + +#define TIOCGATSCC 0x54c0 /* get SCC configuration */ +#define TIOCSATSCC 0x54c1 /* set SCC configuration */ +#define TIOCDATSCC 0x54c2 /* reset configuration to defaults */ + +/* Clock sources */ + +#define CLK_RTxC 0 +#define CLK_TRxC 1 +#define CLK_PCLK 2 + +/* baud_bases for the common clocks in the Atari. These are the real + * frequencies divided by 16. + */ + +#define SCC_BAUD_BASE_TIMC 19200 /* 0.3072 MHz from TT-MFP, Timer C */ +#define SCC_BAUD_BASE_BCLK 153600 /* 2.4576 MHz */ +#define SCC_BAUD_BASE_PCLK4 229500 /* 3.6720 MHz */ +#define SCC_BAUD_BASE_PCLK 503374 /* 8.0539763 MHz */ +#define SCC_BAUD_BASE_NONE 0 /* for not connected or unused + * clock sources */ + +#define SCC_BAUD_BASE_MVME_PCLK 781250 /* 12.5 MHz */ +#define SCC_BAUD_BASE_BVM 460800 /* 7.3728 MHz */ +#define SCC_BAUD_BASE_MVME 625000 /* 10.000 MHz */ + +/* The SCC configuration structure */ + +struct atari_SCCserial { + unsigned RTxC_base; /* base_baud of RTxC */ + unsigned TRxC_base; /* base_baud of TRxC */ + unsigned PCLK_base; /* base_baud of PCLK, for both channels! */ + struct { + unsigned clksrc; /* CLK_RTxC, CLK_TRxC or CLK_PCLK */ + unsigned divisor; /* divisor for base baud, valid values: + * see below */ + } baud_table[17]; /* For 50, 75, 110, 135, 150, 200, 300, + * 600, 1200, 1800, 2400, 4800, 9600, + * 19200, 38400, 57600 and 115200 bps. The + * last two could be replaced by other + * rates > 38400 if they're not possible. + */ +}; + +/* The following divisors are valid: + * + * - CLK_RTxC: 1 or even (1, 2 and 4 are the direct modes, > 4 use + * the BRG) + * + * - CLK_TRxC: 1, 2 or 4 (no BRG, only direct modes possible) + * + * - CLK_PCLK: >= 4 and even (no direct modes, only BRG) + * + */ + +#endif /* _ATARI_SCCSERIAL_H */ diff -urNX exclude linux-2.1.79.orig/include/asm-m68k/atari/SLM.h linux-2.1.79/include/asm-m68k/atari/SLM.h --- linux-2.1.79.orig/include/asm-m68k/atari/SLM.h Thu Jan 1 01:00:00 1970 +++ linux-2.1.79/include/asm-m68k/atari/SLM.h Fri Sep 27 19:24:49 1996 @@ -0,0 +1,28 @@ + +#ifndef _ATARI_SLM_H +#define _ATARI_SLM_H + +/* Atari SLM laser printer specific ioctls */ + +#define SLMIOGSTAT 0xa100 +#define SLMIOGPSIZE 0xa101 +#define SLMIOGMFEED 0xa102 + +#define SLMIORESET 0xa140 + +#define SLMIOSPSIZE 0xa181 +#define SLMIOSMFEED 0xa182 + +/* Status returning structure (SLMIOGSTAT) */ +struct SLM_status { + int stat; /* numeric status code */ + char str[40]; /* status string */ +}; + +/* Paper size structure (SLMIO[GS]PSIZE) */ +struct SLM_paper_size { + int width; + int height; +}; + +#endif /* _ATARI_SLM_H */ diff -urNX exclude linux-2.1.79.orig/include/asm-m68k/atari/acsi.h linux-2.1.79/include/asm-m68k/atari/acsi.h --- linux-2.1.79.orig/include/asm-m68k/atari/acsi.h Thu Jan 1 01:00:00 1970 +++ linux-2.1.79/include/asm-m68k/atari/acsi.h Wed Jul 10 18:14:27 1996 @@ -0,0 +1,37 @@ +#ifndef _ASM_ATARI_ACSI_H +#define _ASM_ATARI_ACSI_H + +/* Functions exported by drivers/block/acsi.c */ + +void acsi_delay_start( void ); +void acsi_delay_end( long usec ); +int acsi_wait_for_IRQ( unsigned timeout ); +int acsi_wait_for_noIRQ( unsigned timeout ); +int acsicmd_nodma( const char *cmd, int enable); +int acsi_getstatus( void ); +int acsi_extstatus( char *buffer, int cnt ); +void acsi_end_extstatus( void ); +int acsi_extcmd( unsigned char *buffer, int cnt ); + +/* The ACSI buffer is guarantueed to reside in ST-RAM and may be used by other + * drivers that work on the ACSI bus, too. It's data are valid only as long as + * the ST-DMA is locked. */ +extern char *acsi_buffer; +extern unsigned long phys_acsi_buffer; + +/* Utility macros */ + +/* Send one data byte over the bus and set mode for next operation + * with one move.l -- Atari recommends this... + */ + +#define DMA_LONG_WRITE(data,mode) \ + do { \ + *((unsigned long *)&dma_wd.fdc_acces_seccount) = \ + ((data)<<16) | (mode); \ + } while(0) + +#define ENABLE_IRQ() atari_turnon_irq( IRQ_MFP_ACSI ) +#define DISABLE_IRQ() atari_turnoff_irq( IRQ_MFP_ACSI ) + +#endif /* _ASM_ATARI_ACSI_H */ diff -urNX exclude linux-2.1.79.orig/include/asm-m68k/atari/fd.h linux-2.1.79/include/asm-m68k/atari/fd.h --- linux-2.1.79.orig/include/asm-m68k/atari/fd.h Thu Jan 1 01:00:00 1970 +++ linux-2.1.79/include/asm-m68k/atari/fd.h Wed Apr 24 18:17:14 1996 @@ -0,0 +1,12 @@ +#ifndef _ASM_M68K_FD_H +#define _ASM_M68K_FD_H + +/* Definitions for the Atari Floppy driver */ + +struct atari_format_descr { + int track; /* to be formatted */ + int head; /* "" "" */ + int sect_offset; /* offset of first sector */ +}; + +#endif diff -urNX exclude linux-2.1.79.orig/include/asm-m68k/atari/fdreg.h linux-2.1.79/include/asm-m68k/atari/fdreg.h --- linux-2.1.79.orig/include/asm-m68k/atari/fdreg.h Thu Jan 1 01:00:00 1970 +++ linux-2.1.79/include/asm-m68k/atari/fdreg.h Wed Apr 24 18:17:14 1996 @@ -0,0 +1,79 @@ +#ifndef _LINUX_FDREG_H +#define _LINUX_FDREG_H + +/* +** WD1772 stuff + */ + +/* register codes */ + +#define FDCSELREG_STP (0x80) /* command/status register */ +#define FDCSELREG_TRA (0x82) /* track register */ +#define FDCSELREG_SEC (0x84) /* sector register */ +#define FDCSELREG_DTA (0x86) /* data register */ + +/* register names for FDC_READ/WRITE macros */ + +#define FDCREG_CMD 0 +#define FDCREG_STATUS 0 +#define FDCREG_TRACK 2 +#define FDCREG_SECTOR 4 +#define FDCREG_DATA 6 + +/* command opcodes */ + +#define FDCCMD_RESTORE (0x00) /* - */ +#define FDCCMD_SEEK (0x10) /* | */ +#define FDCCMD_STEP (0x20) /* | TYP 1 Commands */ +#define FDCCMD_STIN (0x40) /* | */ +#define FDCCMD_STOT (0x60) /* - */ +#define FDCCMD_RDSEC (0x80) /* - TYP 2 Commands */ +#define FDCCMD_WRSEC (0xa0) /* - " */ +#define FDCCMD_RDADR (0xc0) /* - */ +#define FDCCMD_RDTRA (0xe0) /* | TYP 3 Commands */ +#define FDCCMD_WRTRA (0xf0) /* - */ +#define FDCCMD_FORCI (0xd0) /* - TYP 4 Command */ + +/* command modifier bits */ + +#define FDCCMDADD_SR6 (0x00) /* step rate settings */ +#define FDCCMDADD_SR12 (0x01) +#define FDCCMDADD_SR2 (0x02) +#define FDCCMDADD_SR3 (0x03) +#define FDCCMDADD_V (0x04) /* verify */ +#define FDCCMDADD_H (0x08) /* wait for spin-up */ +#define FDCCMDADD_U (0x10) /* update track register */ +#define FDCCMDADD_M (0x10) /* multiple sector access */ +#define FDCCMDADD_E (0x04) /* head settling flag */ +#define FDCCMDADD_P (0x02) /* precompensation off */ +#define FDCCMDADD_A0 (0x01) /* DAM flag */ + +/* status register bits */ + +#define FDCSTAT_MOTORON (0x80) /* motor on */ +#define FDCSTAT_WPROT (0x40) /* write protected (FDCCMD_WR*) */ +#define FDCSTAT_SPINUP (0x20) /* motor speed stable (Type I) */ +#define FDCSTAT_DELDAM (0x20) /* sector has deleted DAM (Type II+III) */ +#define FDCSTAT_RECNF (0x10) /* record not found */ +#define FDCSTAT_CRC (0x08) /* CRC error */ +#define FDCSTAT_TR00 (0x04) /* Track 00 flag (Type I) */ +#define FDCSTAT_LOST (0x04) /* Lost Data (Type II+III) */ +#define FDCSTAT_IDX (0x02) /* Index status (Type I) */ +#define FDCSTAT_DRQ (0x02) /* DRQ status (Type II+III) */ +#define FDCSTAT_BUSY (0x01) /* FDC is busy */ + + +/* PSG Port A Bit Nr 0 .. Side Sel .. 0 -> Side 1 1 -> Side 2 */ +#define DSKSIDE (0x01) + +#define DSKDRVNONE (0x06) +#define DSKDRV0 (0x02) +#define DSKDRV1 (0x04) + +/* step rates */ +#define FDCSTEP_6 0x00 +#define FDCSTEP_12 0x01 +#define FDCSTEP_2 0x02 +#define FDCSTEP_3 0x03 + +#endif diff -urNX exclude linux-2.1.79.orig/include/asm-m68k/atari/hardware.h linux-2.1.79/include/asm-m68k/atari/hardware.h --- linux-2.1.79.orig/include/asm-m68k/atari/hardware.h Thu Jan 1 01:00:00 1970 +++ linux-2.1.79/include/asm-m68k/atari/hardware.h Fri Dec 19 18:39:32 1997 @@ -0,0 +1,798 @@ +/* +** linux/atarihw.h -- This header defines some macros and pointers for +** the various Atari custom hardware registers. +** +** Copyright 1994 by Bj”rn Brauel +** +** 5/1/94 Roman Hodek: +** Added definitions for TT specific chips. +** +** 1996-09-13 lars brinkhoff : +** Finally added definitions for the matrix/codec and the DSP56001 host +** interface. +** +** 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. +** +*/ + +#ifndef _LINUX_ATARIHW_H_ +#define _LINUX_ATARIHW_H_ + +#include +#include + +extern u_long atari_mch_cookie; +extern u_long atari_mch_type; +extern u_long atari_switches; +extern int atari_rtc_year_offset; +extern int atari_dont_touch_floppy_select; + +/* convenience macros for testing machine type */ +#define MACH_IS_ST ((atari_mch_cookie >> 16) == ATARI_MCH_ST) +#define MACH_IS_STE ((atari_mch_cookie >> 16) == ATARI_MCH_STE && \ + (atari_mch_cookie & 0xffff) == 0) +#define MACH_IS_MSTE ((atari_mch_cookie >> 16) == ATARI_MCH_STE && \ + (atari_mch_cookie & 0xffff) == 0x10) +#define MACH_IS_TT ((atari_mch_cookie >> 16) == ATARI_MCH_TT) +#define MACH_IS_FALCON ((atari_mch_cookie >> 16) == ATARI_MCH_FALCON) +#define MACH_IS_MEDUSA (atari_mch_type == ATARI_MACH_MEDUSA) +#define MACH_IS_HADES (atari_mch_type == ATARI_MACH_HADES) +#define MACH_IS_AB40 (atari_mch_type == ATARI_MACH_AB40) + +/* values for atari_switches */ +#define ATARI_SWITCH_IKBD 0x01 +#define ATARI_SWITCH_MIDI 0x02 +#define ATARI_SWITCH_SND6 0x04 +#define ATARI_SWITCH_SND7 0x08 +#define ATARI_SWITCH_OVSC_SHIFT 16 +#define ATARI_SWITCH_OVSC_IKBD (ATARI_SWITCH_IKBD << ATARI_SWITCH_OVSC_SHIFT) +#define ATARI_SWITCH_OVSC_MIDI (ATARI_SWITCH_MIDI << ATARI_SWITCH_OVSC_SHIFT) +#define ATARI_SWITCH_OVSC_SND6 (ATARI_SWITCH_SND6 << ATARI_SWITCH_OVSC_SHIFT) +#define ATARI_SWITCH_OVSC_SND7 (ATARI_SWITCH_SND7 << ATARI_SWITCH_OVSC_SHIFT) +#define ATARI_SWITCH_OVSC_MASK 0xffff0000 + +/* + * Define several Hardware-Chips for indication so that for the ATARI we do + * no longer decide whether it is a Falcon or other machine . It's just + * important what hardware the machine uses + */ + +/* ++roman 08/08/95: rewritten from ORing constants to a C bitfield */ + +#define ATARIHW_DECLARE(name) unsigned name : 1 +#define ATARIHW_SET(name) (atari_hw_present.name = 1) +#define ATARIHW_PRESENT(name) (atari_hw_present.name) + +struct atari_hw_present { + /* video hardware */ + ATARIHW_DECLARE(STND_SHIFTER); /* ST-Shifter - no base low ! */ + ATARIHW_DECLARE(EXTD_SHIFTER); /* STe-Shifter - 24 bit address */ + ATARIHW_DECLARE(TT_SHIFTER); /* TT-Shifter */ + ATARIHW_DECLARE(VIDEL_SHIFTER); /* Falcon-Shifter */ + /* sound hardware */ + ATARIHW_DECLARE(YM_2149); /* Yamaha YM 2149 */ + ATARIHW_DECLARE(PCM_8BIT); /* PCM-Sound in STe-ATARI */ + ATARIHW_DECLARE(CODEC); /* CODEC Sound (Falcon) */ + /* disk storage interfaces */ + ATARIHW_DECLARE(TT_SCSI); /* Directly mapped NCR5380 */ + ATARIHW_DECLARE(ST_SCSI); /* NCR5380 via ST-DMA (Falcon) */ + ATARIHW_DECLARE(ACSI); /* Standard ACSI like in STs */ + ATARIHW_DECLARE(IDE); /* IDE Interface */ + ATARIHW_DECLARE(FDCSPEED); /* 8/16 MHz switch for FDC */ + /* other I/O hardware */ + ATARIHW_DECLARE(ST_MFP); /* The ST-MFP (there should be no Atari + without it... but who knows?) */ + ATARIHW_DECLARE(TT_MFP); /* 2nd MFP */ + ATARIHW_DECLARE(SCC); /* Serial Communications Contr. */ + ATARIHW_DECLARE(ST_ESCC); /* SCC Z83230 in an ST */ + ATARIHW_DECLARE(ANALOG_JOY); /* Paddle Interface for STe + and Falcon */ + ATARIHW_DECLARE(MICROWIRE); /* Microwire Interface */ + /* DMA */ + ATARIHW_DECLARE(STND_DMA); /* 24 Bit limited ST-DMA */ + ATARIHW_DECLARE(EXTD_DMA); /* 32 Bit ST-DMA */ + ATARIHW_DECLARE(SCSI_DMA); /* DMA for the NCR5380 */ + ATARIHW_DECLARE(SCC_DMA); /* DMA for the SCC */ + /* real time clocks */ + ATARIHW_DECLARE(TT_CLK); /* TT compatible clock chip */ + ATARIHW_DECLARE(MSTE_CLK); /* Mega ST(E) clock chip */ + /* supporting hardware */ + ATARIHW_DECLARE(SCU); /* System Control Unit */ + ATARIHW_DECLARE(BLITTER); /* Blitter */ + ATARIHW_DECLARE(VME); /* VME Bus */ + ATARIHW_DECLARE(DSP56K); /* DSP56k processor in Falcon */ +}; + +extern struct atari_hw_present atari_hw_present; + + +/* Reading the MFP port register gives a machine independent delay, since the + * MFP always has a 8 MHz clock. This avoids problems with the varying length + * of nops on various machines. Somebody claimed that the tstb takes 600 ns. + */ +#define MFPDELAY() \ + __asm__ __volatile__ ( "tstb %0" : : "m" (mfp.par_dt_reg) : "cc" ); + +/* Do cache push/invalidate for DMA read/write. This function obeys the + * snooping on some machines (Medusa) and processors: The Medusa itself can + * snoop, but only the '040 can source data from its cache to DMA writes i.e., + * reads from memory). Both '040 and '060 invalidate cache entries on snooped + * DMA reads (i.e., writes to memory). + */ + +#include +#include + +static inline void dma_cache_maintenance( unsigned long paddr, + unsigned long len, + int writeflag ) + +{ + if (writeflag) { + if (!MACH_IS_MEDUSA || CPU_IS_060) + cache_push( paddr, len ); + } + else { + if (!MACH_IS_MEDUSA) + cache_clear( paddr, len ); + } +} + + +/* +** Shifter + */ +#define ST_LOW 0 +#define ST_MID 1 +#define ST_HIGH 2 +#define TT_LOW 7 +#define TT_MID 4 +#define TT_HIGH 6 + +#define SHF_BAS (0xffff8200) +struct SHIFTER + { + u_char pad1; + u_char bas_hi; + u_char pad2; + u_char bas_md; + u_char pad3; + u_char volatile vcounthi; + u_char pad4; + u_char volatile vcountmid; + u_char pad5; + u_char volatile vcountlow; + u_char volatile syncmode; + u_char pad6; + u_char pad7; + u_char bas_lo; + }; +# define shifter ((*(volatile struct SHIFTER *)SHF_BAS)) + +#define SHF_FBAS (0xffff820e) +struct SHIFTER_F030 + { + u_short off_next; + u_short scn_width; + }; +# define shifter_f030 ((*(volatile struct SHIFTER_F030 *)SHF_FBAS)) + + +#define SHF_TBAS (0xffff8200) +struct SHIFTER_TT { + u_char char_dummy0; + u_char bas_hi; /* video mem base addr, high and mid byte */ + u_char char_dummy1; + u_char bas_md; + u_char char_dummy2; + u_char vcount_hi; /* pointer to currently displayed byte */ + u_char char_dummy3; + u_char vcount_md; + u_char char_dummy4; + u_char vcount_lo; + u_short st_sync; /* ST compatible sync mode register, unused */ + u_char char_dummy5; + u_char bas_lo; /* video mem addr, low byte */ + u_char char_dummy6[2+3*16]; + /* $ffff8240: */ + u_short color_reg[16]; /* 16 color registers */ + u_char st_shiftmode; /* ST compatible shift mode register, unused */ + u_char char_dummy7; + u_short tt_shiftmode; /* TT shift mode register */ + + +}; +#define shifter_tt ((*(volatile struct SHIFTER_TT *)SHF_TBAS)) + +/* values for shifter_tt->tt_shiftmode */ +#define TT_SHIFTER_STLOW 0x0000 +#define TT_SHIFTER_STMID 0x0100 +#define TT_SHIFTER_STHIGH 0x0200 +#define TT_SHIFTER_TTLOW 0x0700 +#define TT_SHIFTER_TTMID 0x0400 +#define TT_SHIFTER_TTHIGH 0x0600 +#define TT_SHIFTER_MODEMASK 0x0700 +#define TT_SHIFTER_NUMMODE 0x0008 +#define TT_SHIFTER_PALETTE_MASK 0x000f +#define TT_SHIFTER_GRAYMODE 0x1000 + +/* 256 TT palette registers */ +#define TT_PALETTE_BASE (0xffff8400) +#define tt_palette ((volatile u_short *)TT_PALETTE_BASE) + +#define TT_PALETTE_RED_MASK 0x0f00 +#define TT_PALETTE_GREEN_MASK 0x00f0 +#define TT_PALETTE_BLUE_MASK 0x000f + +/* +** Falcon030 VIDEL Video Controller +** for description see File 'linux\tools\atari\hardware.txt + */ +#define f030_col ((u_long *) 0xffff9800) +#define f030_xreg ((u_short*) 0xffff8282) +#define f030_yreg ((u_short*) 0xffff82a2) +#define f030_creg ((u_short*) 0xffff82c0) +#define f030_sreg ((u_short*) 0xffff8260) +#define f030_mreg ((u_short*) 0xffff820a) +#define f030_linewidth ((u_short*) 0xffff820e) +#define f030_hscroll ((u_char*) 0xffff8265) + +#define VIDEL_BAS (0xffff8260) +struct VIDEL { + u_short st_shift; + u_short pad1; + u_char xoffset_s; + u_char xoffset; + u_short f_shift; + u_char pad2[0x1a]; + u_short hht; + u_short hbb; + u_short hbe; + u_short hdb; + u_short hde; + u_short hss; + u_char pad3[0x14]; + u_short vft; + u_short vbb; + u_short vbe; + u_short vdb; + u_short vde; + u_short vss; + u_char pad4[0x12]; + u_short control; + u_short mode; +}; +#define videl ((*(volatile struct VIDEL *)VIDEL_BAS)) + +/* +** DMA/WD1772 Disk Controller + */ + +#define FWD_BAS (0xffff8604) +struct DMA_WD + { + u_short fdc_acces_seccount; + u_short dma_mode_status; + u_char dma_vhi; /* Some extended ST-DMAs can handle 32 bit addresses */ + u_char dma_hi; + u_char char_dummy2; + u_char dma_md; + u_char char_dummy3; + u_char dma_lo; + u_short fdc_speed; + }; +# define dma_wd ((*(volatile struct DMA_WD *)FWD_BAS)) +/* alias */ +#define st_dma dma_wd +/* The two highest bytes of an extended DMA as a short; this is a must + * for the Medusa. + */ +#define st_dma_ext_dmahi (*((volatile unsigned short *)0xffff8608)) + +/* +** YM2149 Sound Chip +** access in bytes + */ + +#define YM_BAS (0xffff8800) +struct SOUND_YM + { + u_char rd_data_reg_sel; + u_char char_dummy1; + u_char wd_data; + }; +#define sound_ym ((*(volatile struct SOUND_YM *)YM_BAS)) + +/* TT SCSI DMA */ + +#define TT_SCSI_DMA_BAS (0xffff8700) +struct TT_DMA { + u_char char_dummy0; + u_char dma_addr_hi; + u_char char_dummy1; + u_char dma_addr_hmd; + u_char char_dummy2; + u_char dma_addr_lmd; + u_char char_dummy3; + u_char dma_addr_lo; + u_char char_dummy4; + u_char dma_cnt_hi; + u_char char_dummy5; + u_char dma_cnt_hmd; + u_char char_dummy6; + u_char dma_cnt_lmd; + u_char char_dummy7; + u_char dma_cnt_lo; + u_long dma_restdata; + u_short dma_ctrl; +}; +#define tt_scsi_dma ((*(volatile struct TT_DMA *)TT_SCSI_DMA_BAS)) + +/* TT SCSI Controller 5380 */ + +#define TT_5380_BAS (0xffff8781) +struct TT_5380 { + u_char scsi_data; + u_char char_dummy1; + u_char scsi_icr; + u_char char_dummy2; + u_char scsi_mode; + u_char char_dummy3; + u_char scsi_tcr; + u_char char_dummy4; + u_char scsi_idstat; + u_char char_dummy5; + u_char scsi_dmastat; + u_char char_dummy6; + u_char scsi_targrcv; + u_char char_dummy7; + u_char scsi_inircv; +}; +#define tt_scsi ((*(volatile struct TT_5380 *)TT_5380_BAS)) +#define tt_scsi_regp ((volatile char *)TT_5380_BAS) + + +/* +** Falcon DMA Sound Subsystem + */ + +#define MATRIX_BASE (0xffff8930) +struct MATRIX +{ + u_short source; + u_short destination; + u_char external_frequency_divider; + u_char internal_frequency_divider; +}; +#define matrix (*(volatile struct MATRIX *)MATRIX_BASE) + +#define CODEC_BASE (0xffff8936) +struct CODEC +{ + u_char tracks; + u_char input_source; +#define CODEC_SOURCE_ADC 1 +#define CODEC_SOURCE_MATRIX 2 + u_char adc_source; +#define ADC_SOURCE_RIGHT_PSG 1 +#define ADC_SOURCE_LEFT_PSG 2 + u_char gain; +#define CODEC_GAIN_RIGHT 0x0f +#define CODEC_GAIN_LEFT 0xf0 + u_char attenuation; +#define CODEC_ATTENUATION_RIGHT 0x0f +#define CODEC_ATTENUATION_LEFT 0xf0 + u_char unused1; + u_char status; +#define CODEC_OVERFLOW_RIGHT 1 +#define CODEC_OVERFLOW_LEFT 2 + u_char unused2, unused3, unused4, unused5; + u_char gpio_directions; +#define GPIO_IN 0 +#define GPIO_OUT 1 + u_char unused6; + u_char gpio_data; +}; +#define codec (*(volatile struct CODEC *)CODEC_BASE) + +/* +** Falcon Blitter +*/ + +#define BLT_BAS (0xffff8a00) + +struct BLITTER + { + u_short halftone[16]; + u_short src_x_inc; + u_short src_y_inc; + u_long src_address; + u_short endmask1; + u_short endmask2; + u_short endmask3; + u_short dst_x_inc; + u_short dst_y_inc; + u_long dst_address; + u_short wd_per_line; + u_short ln_per_bb; + u_short hlf_op_reg; + u_short log_op_reg; + u_short lin_nm_reg; + u_short skew_reg; + }; +# define blitter ((*(volatile struct BLITTER *)BLT_BAS)) + + +/* +** SCC Z8530 + */ + +#define SCC_BAS (0xffff8c81) +struct SCC + { + u_char cha_a_ctrl; + u_char char_dummy1; + u_char cha_a_data; + u_char char_dummy2; + u_char cha_b_ctrl; + u_char char_dummy3; + u_char cha_b_data; + }; +# define scc ((*(volatile struct SCC*)SCC_BAS)) + +/* The ESCC (Z85230) in an Atari ST. The channels are reversed! */ +# define st_escc ((*(volatile struct SCC*)0xfffffa31)) +# define st_escc_dsr ((*(volatile char *)0xfffffa39)) + +/* TT SCC DMA Controller (same chip as SCSI DMA) */ + +#define TT_SCC_DMA_BAS (0xffff8c00) +#define tt_scc_dma ((*(volatile struct TT_DMA *)TT_SCC_DMA_BAS)) + +/* +** VIDEL Palette Register + */ + +#define FPL_BAS (0xffff9800) +struct VIDEL_PALETTE + { + u_long reg[256]; + }; +# define videl_palette ((*(volatile struct VIDEL_PALETTE*)FPL_BAS)) + + +/* +** Falcon DSP Host Interface + */ + +#define DSP56K_HOST_INTERFACE_BASE (0xffffa200) +struct DSP56K_HOST_INTERFACE { + u_char icr; +#define DSP56K_ICR_RREQ 0x01 +#define DSP56K_ICR_TREQ 0x02 +#define DSP56K_ICR_HF0 0x08 +#define DSP56K_ICR_HF1 0x10 +#define DSP56K_ICR_HM0 0x20 +#define DSP56K_ICR_HM1 0x40 +#define DSP56K_ICR_INIT 0x80 + + u_char cvr; +#define DSP56K_CVR_HV_MASK 0x1f +#define DSP56K_CVR_HC 0x80 + + u_char isr; +#define DSP56K_ISR_RXDF 0x01 +#define DSP56K_ISR_TXDE 0x02 +#define DSP56K_ISR_TRDY 0x04 +#define DSP56K_ISR_HF2 0x08 +#define DSP56K_ISR_HF3 0x10 +#define DSP56K_ISR_DMA 0x40 +#define DSP56K_ISR_HREQ 0x80 + + u_char ivr; + + union { + u_char b[4]; + u_short w[2]; + u_long l; + } data; +}; +#define dsp56k_host_interface ((*(volatile struct DSP56K_HOST_INTERFACE *)DSP56K_HOST_INTERFACE_BASE)) + +/* +** MFP 68901 + */ + +#define MFP_BAS (0xfffffa01) +struct MFP + { + u_char par_dt_reg; + u_char char_dummy1; + u_char active_edge; + u_char char_dummy2; + u_char data_dir; + u_char char_dummy3; + u_char int_en_a; + u_char char_dummy4; + u_char int_en_b; + u_char char_dummy5; + u_char int_pn_a; + u_char char_dummy6; + u_char int_pn_b; + u_char char_dummy7; + u_char int_sv_a; + u_char char_dummy8; + u_char int_sv_b; + u_char char_dummy9; + u_char int_mk_a; + u_char char_dummy10; + u_char int_mk_b; + u_char char_dummy11; + u_char vec_adr; + u_char char_dummy12; + u_char tim_ct_a; + u_char char_dummy13; + u_char tim_ct_b; + u_char char_dummy14; + u_char tim_ct_cd; + u_char char_dummy15; + u_char tim_dt_a; + u_char char_dummy16; + u_char tim_dt_b; + u_char char_dummy17; + u_char tim_dt_c; + u_char char_dummy18; + u_char tim_dt_d; + u_char char_dummy19; + u_char sync_char; + u_char char_dummy20; + u_char usart_ctr; + u_char char_dummy21; + u_char rcv_stat; + u_char char_dummy22; + u_char trn_stat; + u_char char_dummy23; + u_char usart_dta; + }; +# define mfp ((*(volatile struct MFP*)MFP_BAS)) + +/* TT's second MFP */ + +#define TT_MFP_BAS (0xfffffa81) +# define tt_mfp ((*(volatile struct MFP*)TT_MFP_BAS)) + + +/* TT System Control Unit */ + +#define TT_SCU_BAS (0xffff8e01) +struct TT_SCU { + u_char sys_mask; + u_char char_dummy1; + u_char sys_stat; + u_char char_dummy2; + u_char softint; + u_char char_dummy3; + u_char vmeint; + u_char char_dummy4; + u_char gp_reg1; + u_char char_dummy5; + u_char gp_reg2; + u_char char_dummy6; + u_char vme_mask; + u_char char_dummy7; + u_char vme_stat; +}; +#define tt_scu ((*(volatile struct TT_SCU *)TT_SCU_BAS)) + +/* TT real time clock */ + +#define TT_RTC_BAS (0xffff8961) +struct TT_RTC { + u_char regsel; + u_char dummy; + u_char data; +}; +#define tt_rtc ((*(volatile struct TT_RTC *)TT_RTC_BAS)) + + +/* +** ACIA 6850 + */ +/* constants for the ACIA registers */ + +/* baudrate selection and reset (Baudrate = clock/factor) */ +#define ACIA_DIV1 0 +#define ACIA_DIV16 1 +#define ACIA_DIV64 2 +#define ACIA_RESET 3 + +/* character format */ +#define ACIA_D7E2S (0<<2) /* 7 data, even parity, 2 stop */ +#define ACIA_D7O2S (1<<2) /* 7 data, odd parity, 2 stop */ +#define ACIA_D7E1S (2<<2) /* 7 data, even parity, 1 stop */ +#define ACIA_D7O1S (3<<2) /* 7 data, odd parity, 1 stop */ +#define ACIA_D8N2S (4<<2) /* 8 data, no parity, 2 stop */ +#define ACIA_D8N1S (5<<2) /* 8 data, no parity, 1 stop */ +#define ACIA_D8E1S (6<<2) /* 8 data, even parity, 1 stop */ +#define ACIA_D8O1S (7<<2) /* 8 data, odd parity, 1 stop */ + +/* transmit control */ +#define ACIA_RLTID (0<<5) /* RTS low, TxINT disabled */ +#define ACIA_RLTIE (1<<5) /* RTS low, TxINT enabled */ +#define ACIA_RHTID (2<<5) /* RTS high, TxINT disabled */ +#define ACIA_RLTIDSB (3<<5) /* RTS low, TxINT disabled, send break */ + +/* receive control */ +#define ACIA_RID (0<<7) /* RxINT disabled */ +#define ACIA_RIE (1<<7) /* RxINT enabled */ + +/* status fields of the ACIA */ +#define ACIA_RDRF 1 /* Receive Data Register Full */ +#define ACIA_TDRE (1<<1) /* Transmit Data Register Empty */ +#define ACIA_DCD (1<<2) /* Data Carrier Detect */ +#define ACIA_CTS (1<<3) /* Clear To Send */ +#define ACIA_FE (1<<4) /* Framing Error */ +#define ACIA_OVRN (1<<5) /* Receiver Overrun */ +#define ACIA_PE (1<<6) /* Parity Error */ +#define ACIA_IRQ (1<<7) /* Interrupt Request */ + +#define ACIA_BAS (0xfffffc00) +struct ACIA + { + u_char key_ctrl; + u_char char_dummy1; + u_char key_data; + u_char char_dummy2; + u_char mid_ctrl; + u_char char_dummy3; + u_char mid_data; + }; +# define acia ((*(volatile struct ACIA*)ACIA_BAS)) + +#define TT_DMASND_BAS (0xffff8900) +struct TT_DMASND { + u_char int_ctrl; /* Falcon: Interrupt control */ + u_char ctrl; + u_char pad2; + u_char bas_hi; + u_char pad3; + u_char bas_mid; + u_char pad4; + u_char bas_low; + u_char pad5; + u_char addr_hi; + u_char pad6; + u_char addr_mid; + u_char pad7; + u_char addr_low; + u_char pad8; + u_char end_hi; + u_char pad9; + u_char end_mid; + u_char pad10; + u_char end_low; + u_char pad11[12]; + u_char track_select; /* Falcon */ + u_char mode; + u_char pad12[14]; + /* Falcon only: */ + u_short cbar_src; + u_short cbar_dst; + u_char ext_div; + u_char int_div; + u_char rec_track_select; + u_char dac_src; + u_char adc_src; + u_char input_gain; + u_short output_atten; +}; +# define tt_dmasnd ((*(volatile struct TT_DMASND *)TT_DMASND_BAS)) + +#define DMASND_MFP_INT_REPLAY 0x01 +#define DMASND_MFP_INT_RECORD 0x02 +#define DMASND_TIMERA_INT_REPLAY 0x04 +#define DMASND_TIMERA_INT_RECORD 0x08 + +#define DMASND_CTRL_OFF 0x00 +#define DMASND_CTRL_ON 0x01 +#define DMASND_CTRL_REPEAT 0x02 +#define DMASND_CTRL_RECORD_ON 0x10 +#define DMASND_CTRL_RECORD_OFF 0x00 +#define DMASND_CTRL_RECORD_REPEAT 0x20 +#define DMASND_CTRL_SELECT_REPLAY 0x00 +#define DMASND_CTRL_SELECT_RECORD 0x80 +#define DMASND_MODE_MONO 0x80 +#define DMASND_MODE_STEREO 0x00 +#define DMASND_MODE_8BIT 0x00 +#define DMASND_MODE_16BIT 0x40 /* Falcon only */ +#define DMASND_MODE_6KHZ 0x00 /* Falcon: mute */ +#define DMASND_MODE_12KHZ 0x01 +#define DMASND_MODE_25KHZ 0x02 +#define DMASND_MODE_50KHZ 0x03 + + +#define DMASNDSetBase(bufstart) \ + do { \ + tt_dmasnd.bas_hi = (unsigned char)(((bufstart) & 0xff0000) >> 16); \ + tt_dmasnd.bas_mid = (unsigned char)(((bufstart) & 0x00ff00) >> 8); \ + tt_dmasnd.bas_low = (unsigned char) ((bufstart) & 0x0000ff); \ + } while( 0 ) + +#define DMASNDGetAdr() ((tt_dmasnd.addr_hi << 16) + \ + (tt_dmasnd.addr_mid << 8) + \ + (tt_dmasnd.addr_low)) + +#define DMASNDSetEnd(bufend) \ + do { \ + tt_dmasnd.end_hi = (unsigned char)(((bufend) & 0xff0000) >> 16); \ + tt_dmasnd.end_mid = (unsigned char)(((bufend) & 0x00ff00) >> 8); \ + tt_dmasnd.end_low = (unsigned char) ((bufend) & 0x0000ff); \ + } while( 0 ) + + +#define TT_MICROWIRE_BAS (0xffff8922) +struct TT_MICROWIRE { + u_short data; + u_short mask; +}; +# define tt_microwire ((*(volatile struct TT_MICROWIRE *)TT_MICROWIRE_BAS)) + +#define MW_LM1992_ADDR 0x0400 + +#define MW_LM1992_VOLUME(dB) \ + (0x0c0 | ((dB) < -80 ? 0 : (dB) > 0 ? 40 : (((dB) + 80) / 2))) +#define MW_LM1992_BALLEFT(dB) \ + (0x140 | ((dB) < -40 ? 0 : (dB) > 0 ? 20 : (((dB) + 40) / 2))) +#define MW_LM1992_BALRIGHT(dB) \ + (0x100 | ((dB) < -40 ? 0 : (dB) > 0 ? 20 : (((dB) + 40) / 2))) +#define MW_LM1992_TREBLE(dB) \ + (0x080 | ((dB) < -12 ? 0 : (dB) > 12 ? 12 : (((dB) / 2) + 6))) +#define MW_LM1992_BASS(dB) \ + (0x040 | ((dB) < -12 ? 0 : (dB) > 12 ? 12 : (((dB) / 2) + 6))) + +#define MW_LM1992_PSG_LOW 0x000 +#define MW_LM1992_PSG_HIGH 0x001 +#define MW_LM1992_PSG_OFF 0x002 + +#define MSTE_RTC_BAS (0xfffffc21) + +struct MSTE_RTC { + u_char sec_ones; + u_char dummy1; + u_char sec_tens; + u_char dummy2; + u_char min_ones; + u_char dummy3; + u_char min_tens; + u_char dummy4; + u_char hr_ones; + u_char dummy5; + u_char hr_tens; + u_char dummy6; + u_char weekday; + u_char dummy7; + u_char day_ones; + u_char dummy8; + u_char day_tens; + u_char dummy9; + u_char mon_ones; + u_char dummy10; + u_char mon_tens; + u_char dummy11; + u_char year_ones; + u_char dummy12; + u_char year_tens; + u_char dummy13; + u_char mode; + u_char dummy14; + u_char test; + u_char dummy15; + u_char reset; +}; + +#define mste_rtc ((*(volatile struct MSTE_RTC *)MSTE_RTC_BAS)) + +#endif /* linux/atarihw.h */ + diff -urNX exclude linux-2.1.79.orig/include/asm-m68k/atari/ints.h linux-2.1.79/include/asm-m68k/atari/ints.h --- linux-2.1.79.orig/include/asm-m68k/atari/ints.h Thu Jan 1 01:00:00 1970 +++ linux-2.1.79/include/asm-m68k/atari/ints.h Thu Jan 15 01:49:58 1998 @@ -0,0 +1,215 @@ +/* +** atariints.h -- Atari Linux interrupt handling structs and prototypes +** +** Copyright 1994 by Bj”rn Brauel +** +** 5/2/94 Roman Hodek: +** TT interrupt definitions added. +** +** 12/02/96: (Roman) +** Adapted to new int handling scheme (see ataints.c); revised numbering +** +** 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. +** +*/ + +#ifndef _LINUX_ATARIINTS_H_ +#define _LINUX_ATARIINTS_H_ + +#include +#include + +/* +** Atari Interrupt sources. +** +*/ + +#define STMFP_SOURCE_BASE 8 +#define TTMFP_SOURCE_BASE 24 +#define SCC_SOURCE_BASE 40 +#define VME_SOURCE_BASE 56 +#define VME_MAX_SOURCES 16 + +#define NUM_ATARI_SOURCES (VME_SOURCE_BASE+VME_MAX_SOURCES-STMFP_SOURCE_BASE) + +/* convert vector number to int source number */ +#define IRQ_VECTOR_TO_SOURCE(v) ((v) - ((v) < 0x20 ? 0x18 : (0x40-8))) + +/* convert irq_handler index to vector number */ +#define IRQ_SOURCE_TO_VECTOR(i) ((i) + ((i) < 8 ? 0x18 : (0x40-8))) + +/* interrupt service types */ +#define IRQ_TYPE_SLOW 0 +#define IRQ_TYPE_FAST 1 +#define IRQ_TYPE_PRIO 2 + +#define IRQ_SPURIOUS (0) + +/* auto-vector interrupts */ +#define IRQ_AUTO_1 (1) +#define IRQ_AUTO_2 (2) +#define IRQ_AUTO_3 (3) +#define IRQ_AUTO_4 (4) +#define IRQ_AUTO_5 (5) +#define IRQ_AUTO_6 (6) +#define IRQ_AUTO_7 (7) + +/* ST-MFP interrupts */ +#define IRQ_MFP_BUSY (8) +#define IRQ_MFP_DCD (9) +#define IRQ_MFP_CTS (10) +#define IRQ_MFP_GPU (11) +#define IRQ_MFP_TIMD (12) +#define IRQ_MFP_TIMC (13) +#define IRQ_MFP_ACIA (14) +#define IRQ_MFP_FDC (15) +#define IRQ_MFP_ACSI IRQ_MFP_FDC +#define IRQ_MFP_FSCSI IRQ_MFP_FDC +#define IRQ_MFP_IDE IRQ_MFP_FDC +#define IRQ_MFP_TIMB (16) +#define IRQ_MFP_SERERR (17) +#define IRQ_MFP_SEREMPT (18) +#define IRQ_MFP_RECERR (19) +#define IRQ_MFP_RECFULL (20) +#define IRQ_MFP_TIMA (21) +#define IRQ_MFP_RI (22) +#define IRQ_MFP_MMD (23) + +/* TT-MFP interrupts */ +#define IRQ_TT_MFP_IO0 (24) +#define IRQ_TT_MFP_IO1 (25) +#define IRQ_TT_MFP_SCC (26) +#define IRQ_TT_MFP_RI (27) +#define IRQ_TT_MFP_TIMD (28) +#define IRQ_TT_MFP_TIMC (29) +#define IRQ_TT_MFP_DRVRDY (30) +#define IRQ_TT_MFP_SCSIDMA (31) +#define IRQ_TT_MFP_TIMB (32) +#define IRQ_TT_MFP_SERERR (33) +#define IRQ_TT_MFP_SEREMPT (34) +#define IRQ_TT_MFP_RECERR (35) +#define IRQ_TT_MFP_RECFULL (36) +#define IRQ_TT_MFP_TIMA (37) +#define IRQ_TT_MFP_RTC (38) +#define IRQ_TT_MFP_SCSI (39) + +/* SCC interrupts */ +#define IRQ_SCCB_TX (40) +#define IRQ_SCCB_STAT (42) +#define IRQ_SCCB_RX (44) +#define IRQ_SCCB_SPCOND (46) +#define IRQ_SCCA_TX (48) +#define IRQ_SCCA_STAT (50) +#define IRQ_SCCA_RX (52) +#define IRQ_SCCA_SPCOND (54) + + +#define INT_CLK 24576 /* CLK while int_clk =2.456MHz and divide = 100 */ +#define INT_TICKS 246 /* to make sched_time = 99.902... HZ */ + + +#define MFP_ENABLE 0 +#define MFP_PENDING 1 +#define MFP_SERVICE 2 +#define MFP_MASK 3 + +/* Utility functions for setting/clearing bits in the interrupt registers of + * the MFP. 'type' should be constant, if 'irq' is constant, too, code size is + * reduced. set_mfp_bit() is nonsense for PENDING and SERVICE registers. */ + +static inline int get_mfp_bit( unsigned irq, int type ) + +{ unsigned char mask, *reg; + + mask = 1 << (irq & 7); + reg = (unsigned char *)&mfp.int_en_a + type*4 + + ((irq & 8) >> 2) + (((irq-8) & 16) << 3); + return( *reg & mask ); +} + +static inline void set_mfp_bit( unsigned irq, int type ) + +{ unsigned char mask, *reg; + + mask = 1 << (irq & 7); + reg = (unsigned char *)&mfp.int_en_a + type*4 + + ((irq & 8) >> 2) + (((irq-8) & 16) << 3); + __asm__ __volatile__ ( "orb %0,%1" + : : "di" (mask), "m" (*reg) : "memory" ); +} + +static inline void clear_mfp_bit( unsigned irq, int type ) + +{ unsigned char mask, *reg; + + mask = ~(1 << (irq & 7)); + reg = (unsigned char *)&mfp.int_en_a + type*4 + + ((irq & 8) >> 2) + (((irq-8) & 16) << 3); + if (type == MFP_PENDING || type == MFP_SERVICE) + __asm__ __volatile__ ( "moveb %0,%1" + : : "di" (mask), "m" (*reg) : "memory" ); + else + __asm__ __volatile__ ( "andb %0,%1" + : : "di" (mask), "m" (*reg) : "memory" ); +} + +/* + * {en,dis}able_irq have the usual semantics of temporary blocking the + * interrupt, but not loosing requests that happen between disabling and + * enabling. This is done with the MFP mask registers. + */ + +static inline void atari_enable_irq( unsigned irq ) + +{ + if (irq < STMFP_SOURCE_BASE || irq >= SCC_SOURCE_BASE) return; + set_mfp_bit( irq, MFP_MASK ); +} + +static inline void atari_disable_irq( unsigned irq ) + +{ + if (irq < STMFP_SOURCE_BASE || irq >= SCC_SOURCE_BASE) return; + clear_mfp_bit( irq, MFP_MASK ); +} + +/* + * In opposite to {en,dis}able_irq, requests between turn{off,on}_irq are not + * "stored" + */ + +extern inline void atari_turnon_irq( unsigned irq ) + +{ + if (irq < STMFP_SOURCE_BASE || irq >= SCC_SOURCE_BASE) return; + set_mfp_bit( irq, MFP_ENABLE ); +} + +extern inline void atari_turnoff_irq( unsigned irq ) + +{ + if (irq < STMFP_SOURCE_BASE || irq >= SCC_SOURCE_BASE) return; + clear_mfp_bit( irq, MFP_ENABLE ); + clear_mfp_bit( irq, MFP_PENDING ); +} + +extern inline void atari_clear_pending_irq( unsigned irq ) + +{ + if (irq < STMFP_SOURCE_BASE || irq >= SCC_SOURCE_BASE) return; + clear_mfp_bit( irq, MFP_PENDING ); +} + +extern inline int atari_irq_pending( unsigned irq ) + +{ + if (irq < STMFP_SOURCE_BASE || irq >= SCC_SOURCE_BASE) return( 0 ); + return( get_mfp_bit( irq, MFP_PENDING ) ); +} + +unsigned long atari_register_vme_int( void ); +void atari_unregister_vme_int( unsigned long ); + +#endif /* linux/atariints.h */ diff -urNX exclude linux-2.1.79.orig/include/asm-m68k/atari/joystick.h linux-2.1.79/include/asm-m68k/atari/joystick.h --- linux-2.1.79.orig/include/asm-m68k/atari/joystick.h Thu Jan 1 01:00:00 1970 +++ linux-2.1.79/include/asm-m68k/atari/joystick.h Wed Apr 24 18:17:15 1996 @@ -0,0 +1,22 @@ +#ifndef _LINUX_ATARI_JOYSTICK_H +#define _LINUX_ATARI_JOYSTICK_H + +/* + * linux/include/linux/atari_joystick.h + * header file for Atari Joystick driver + * by Robert de Vries (robert@and.nl) on 19Jul93 + */ + +void atari_joystick_interrupt(char*); +int atari_joystick_init(void); +extern int atari_mouse_buttons; + +struct joystick_status { + char fire; + char dir; + int ready; + int active; + struct wait_queue *wait; +}; + +#endif diff -urNX exclude linux-2.1.79.orig/include/asm-m68k/atari/keyboard.h linux-2.1.79/include/asm-m68k/atari/keyboard.h --- linux-2.1.79.orig/include/asm-m68k/atari/keyboard.h Thu Jan 1 01:00:00 1970 +++ linux-2.1.79/include/asm-m68k/atari/keyboard.h Wed May 22 18:03:20 1996 @@ -0,0 +1,40 @@ +/* +** atarikb.h -- This header contains the prototypes of functions of +** the intelligent keyboard of the Atari needed by the +** mouse and joystick drivers. +** +** Copyright 1994 by Robert de Vries +** +** 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: 20 Feb 1994 by Robert de Vries +*/ + +#ifndef _LINUX_ATARIKB_H +#define _LINUX_ATARIKB_H + +void ikbd_write(const char *, int); +void ikbd_mouse_button_action(int mode); +void ikbd_mouse_rel_pos(void); +void ikbd_mouse_abs_pos(int xmax, int ymax); +void ikbd_mouse_kbd_mode(int dx, int dy); +void ikbd_mouse_thresh(int x, int y); +void ikbd_mouse_scale(int x, int y); +void ikbd_mouse_pos_get(int *x, int *y); +void ikbd_mouse_pos_set(int x, int y); +void ikbd_mouse_y0_bot(void); +void ikbd_mouse_y0_top(void); +void ikbd_mouse_disable(void); +void ikbd_joystick_event_on(void); +void ikbd_joystick_event_off(void); +void ikbd_joystick_get_state(void); +void ikbd_joystick_disable(void); + +/* Hook for MIDI serial driver */ +extern void (*atari_MIDI_interrupt_hook) (void); +/* Hook for mouse driver */ +extern void (*atari_mouse_interrupt_hook) (char *); + +#endif /* _LINUX_ATARIKB_H */ diff -urNX exclude linux-2.1.79.orig/include/asm-m68k/atari/mouse.h linux-2.1.79/include/asm-m68k/atari/mouse.h --- linux-2.1.79.orig/include/asm-m68k/atari/mouse.h Thu Jan 1 01:00:00 1970 +++ linux-2.1.79/include/asm-m68k/atari/mouse.h Wed Apr 24 18:17:15 1996 @@ -0,0 +1,20 @@ +#ifndef _LINUX_ATARI_MOUSE_H +#define _LINUX_ATARI_MOUSE_H + +/* + * linux/include/linux/atari_mouse.h + * header file for Atari Mouse driver + * by Robert de Vries (robert@and.nl) on 19Jul93 + */ + +struct mouse_status { + char buttons; + short dx; + short dy; + int ready; + int active; + struct wait_queue *wait; + struct fasync_struct *fasyncptr; +}; + +#endif diff -urNX exclude linux-2.1.79.orig/include/asm-m68k/atari/stdma.h linux-2.1.79/include/asm-m68k/atari/stdma.h --- linux-2.1.79.orig/include/asm-m68k/atari/stdma.h Thu Jan 1 01:00:00 1970 +++ linux-2.1.79/include/asm-m68k/atari/stdma.h Fri Jul 26 17:49:57 1996 @@ -0,0 +1,22 @@ + +#ifndef _atari_stdma_h +#define _atari_stdma_h + + +#include + + +/***************************** Prototypes *****************************/ + +void stdma_lock(void (*handler)(int, void *, struct pt_regs *), void *data); +void stdma_release( void ); +int stdma_others_waiting( void ); +int stdma_islocked( void ); +void *stdma_locked_by( void ); +void stdma_init( void ); + +/************************* End of Prototypes **************************/ + + + +#endif /* _atari_stdma_h */ diff -urNX exclude linux-2.1.79.orig/include/asm-m68k/atari/stram.h linux-2.1.79/include/asm-m68k/atari/stram.h --- linux-2.1.79.orig/include/asm-m68k/atari/stram.h Thu Jan 1 01:00:00 1970 +++ linux-2.1.79/include/asm-m68k/atari/stram.h Wed Dec 17 19:57:07 1997 @@ -0,0 +1,17 @@ +#ifndef _M68K_ATARI_STRAM_H +#define _M68K_ATARI_STRAM_H + +/* + * Functions for Atari ST-RAM management + */ + +/* public interface */ +void *atari_stram_alloc( long size, unsigned long *start_mem, + const char *owner ); +void atari_stram_free( void *); + +/* functions called internally by other parts of the kernel */ +void atari_stram_init( void); +void atari_stram_reserve_pages( unsigned long start_mem ); + +#endif /*_M68K_ATARI_STRAM_H */ diff -urNX exclude linux-2.1.79.orig/include/asm-m68k/atari_SCCserial.h linux-2.1.79/include/asm-m68k/atari_SCCserial.h --- linux-2.1.79.orig/include/asm-m68k/atari_SCCserial.h Fri Jan 9 18:15:07 1998 +++ linux-2.1.79/include/asm-m68k/atari_SCCserial.h Thu Jan 1 01:00:00 1970 @@ -1,64 +0,0 @@ -#ifndef _ATARI_SCCSERIAL_H -#define _ATARI_SCCSERIAL_H - -/* Special configuration ioctls for the Atari SCC5380 Serial - * Communications Controller - */ - -/* ioctl command codes */ - -#define TIOCGATSCC 0x54c0 /* get SCC configuration */ -#define TIOCSATSCC 0x54c1 /* set SCC configuration */ -#define TIOCDATSCC 0x54c2 /* reset configuration to defaults */ - -/* Clock sources */ - -#define CLK_RTxC 0 -#define CLK_TRxC 1 -#define CLK_PCLK 2 - -/* baud_bases for the common clocks in the Atari. These are the real - * frequencies divided by 16. - */ - -#define SCC_BAUD_BASE_TIMC 19200 /* 0.3072 MHz from TT-MFP, Timer C */ -#define SCC_BAUD_BASE_BCLK 153600 /* 2.4576 MHz */ -#define SCC_BAUD_BASE_PCLK4 229500 /* 3.6720 MHz */ -#define SCC_BAUD_BASE_PCLK 503374 /* 8.0539763 MHz */ -#define SCC_BAUD_BASE_NONE 0 /* for not connected or unused - * clock sources */ - -#define SCC_BAUD_BASE_MVME_PCLK 781250 /* 12.5 MHz */ -#define SCC_BAUD_BASE_BVM 460800 /* 7.3728 MHz */ -#define SCC_BAUD_BASE_MVME 625000 /* 10.000 MHz */ - -/* The SCC configuration structure */ - -struct atari_SCCserial { - unsigned RTxC_base; /* base_baud of RTxC */ - unsigned TRxC_base; /* base_baud of TRxC */ - unsigned PCLK_base; /* base_baud of PCLK, for both channels! */ - struct { - unsigned clksrc; /* CLK_RTxC, CLK_TRxC or CLK_PCLK */ - unsigned divisor; /* divisor for base baud, valid values: - * see below */ - } baud_table[17]; /* For 50, 75, 110, 135, 150, 200, 300, - * 600, 1200, 1800, 2400, 4800, 9600, - * 19200, 38400, 57600 and 115200 bps. The - * last two could be replaced by other - * rates > 38400 if they're not possible. - */ -}; - -/* The following divisors are valid: - * - * - CLK_RTxC: 1 or even (1, 2 and 4 are the direct modes, > 4 use - * the BRG) - * - * - CLK_TRxC: 1, 2 or 4 (no BRG, only direct modes possible) - * - * - CLK_PCLK: >= 4 and even (no direct modes, only BRG) - * - */ - -#endif /* _ATARI_SCCSERIAL_H */ diff -urNX exclude linux-2.1.79.orig/include/asm-m68k/atari_SLM.h linux-2.1.79/include/asm-m68k/atari_SLM.h --- linux-2.1.79.orig/include/asm-m68k/atari_SLM.h Fri Sep 27 19:24:49 1996 +++ linux-2.1.79/include/asm-m68k/atari_SLM.h Thu Jan 1 01:00:00 1970 @@ -1,28 +0,0 @@ - -#ifndef _ATARI_SLM_H -#define _ATARI_SLM_H - -/* Atari SLM laser printer specific ioctls */ - -#define SLMIOGSTAT 0xa100 -#define SLMIOGPSIZE 0xa101 -#define SLMIOGMFEED 0xa102 - -#define SLMIORESET 0xa140 - -#define SLMIOSPSIZE 0xa181 -#define SLMIOSMFEED 0xa182 - -/* Status returning structure (SLMIOGSTAT) */ -struct SLM_status { - int stat; /* numeric status code */ - char str[40]; /* status string */ -}; - -/* Paper size structure (SLMIO[GS]PSIZE) */ -struct SLM_paper_size { - int width; - int height; -}; - -#endif /* _ATARI_SLM_H */ diff -urNX exclude linux-2.1.79.orig/include/asm-m68k/atari_acsi.h linux-2.1.79/include/asm-m68k/atari_acsi.h --- linux-2.1.79.orig/include/asm-m68k/atari_acsi.h Wed Jul 10 18:14:27 1996 +++ linux-2.1.79/include/asm-m68k/atari_acsi.h Thu Jan 1 01:00:00 1970 @@ -1,37 +0,0 @@ -#ifndef _ASM_ATARI_ACSI_H -#define _ASM_ATARI_ACSI_H - -/* Functions exported by drivers/block/acsi.c */ - -void acsi_delay_start( void ); -void acsi_delay_end( long usec ); -int acsi_wait_for_IRQ( unsigned timeout ); -int acsi_wait_for_noIRQ( unsigned timeout ); -int acsicmd_nodma( const char *cmd, int enable); -int acsi_getstatus( void ); -int acsi_extstatus( char *buffer, int cnt ); -void acsi_end_extstatus( void ); -int acsi_extcmd( unsigned char *buffer, int cnt ); - -/* The ACSI buffer is guarantueed to reside in ST-RAM and may be used by other - * drivers that work on the ACSI bus, too. It's data are valid only as long as - * the ST-DMA is locked. */ -extern char *acsi_buffer; -extern unsigned long phys_acsi_buffer; - -/* Utility macros */ - -/* Send one data byte over the bus and set mode for next operation - * with one move.l -- Atari recommends this... - */ - -#define DMA_LONG_WRITE(data,mode) \ - do { \ - *((unsigned long *)&dma_wd.fdc_acces_seccount) = \ - ((data)<<16) | (mode); \ - } while(0) - -#define ENABLE_IRQ() atari_turnon_irq( IRQ_MFP_ACSI ) -#define DISABLE_IRQ() atari_turnoff_irq( IRQ_MFP_ACSI ) - -#endif /* _ASM_ATARI_ACSI_H */ diff -urNX exclude linux-2.1.79.orig/include/asm-m68k/atari_joystick.h linux-2.1.79/include/asm-m68k/atari_joystick.h --- linux-2.1.79.orig/include/asm-m68k/atari_joystick.h Wed Apr 24 18:17:15 1996 +++ linux-2.1.79/include/asm-m68k/atari_joystick.h Thu Jan 1 01:00:00 1970 @@ -1,22 +0,0 @@ -#ifndef _LINUX_ATARI_JOYSTICK_H -#define _LINUX_ATARI_JOYSTICK_H - -/* - * linux/include/linux/atari_joystick.h - * header file for Atari Joystick driver - * by Robert de Vries (robert@and.nl) on 19Jul93 - */ - -void atari_joystick_interrupt(char*); -int atari_joystick_init(void); -extern int atari_mouse_buttons; - -struct joystick_status { - char fire; - char dir; - int ready; - int active; - struct wait_queue *wait; -}; - -#endif diff -urNX exclude linux-2.1.79.orig/include/asm-m68k/atari_mouse.h linux-2.1.79/include/asm-m68k/atari_mouse.h --- linux-2.1.79.orig/include/asm-m68k/atari_mouse.h Wed Apr 24 18:17:15 1996 +++ linux-2.1.79/include/asm-m68k/atari_mouse.h Thu Jan 1 01:00:00 1970 @@ -1,20 +0,0 @@ -#ifndef _LINUX_ATARI_MOUSE_H -#define _LINUX_ATARI_MOUSE_H - -/* - * linux/include/linux/atari_mouse.h - * header file for Atari Mouse driver - * by Robert de Vries (robert@and.nl) on 19Jul93 - */ - -struct mouse_status { - char buttons; - short dx; - short dy; - int ready; - int active; - struct wait_queue *wait; - struct fasync_struct *fasyncptr; -}; - -#endif diff -urNX exclude linux-2.1.79.orig/include/asm-m68k/atari_stdma.h linux-2.1.79/include/asm-m68k/atari_stdma.h --- linux-2.1.79.orig/include/asm-m68k/atari_stdma.h Fri Jul 26 17:49:57 1996 +++ linux-2.1.79/include/asm-m68k/atari_stdma.h Thu Jan 1 01:00:00 1970 @@ -1,22 +0,0 @@ - -#ifndef _atari_stdma_h -#define _atari_stdma_h - - -#include - - -/***************************** Prototypes *****************************/ - -void stdma_lock(void (*handler)(int, void *, struct pt_regs *), void *data); -void stdma_release( void ); -int stdma_others_waiting( void ); -int stdma_islocked( void ); -void *stdma_locked_by( void ); -void stdma_init( void ); - -/************************* End of Prototypes **************************/ - - - -#endif /* _atari_stdma_h */ diff -urNX exclude linux-2.1.79.orig/include/asm-m68k/atari_stram.h linux-2.1.79/include/asm-m68k/atari_stram.h --- linux-2.1.79.orig/include/asm-m68k/atari_stram.h Wed Dec 17 19:57:07 1997 +++ linux-2.1.79/include/asm-m68k/atari_stram.h Thu Jan 1 01:00:00 1970 @@ -1,17 +0,0 @@ -#ifndef _M68K_ATARI_STRAM_H -#define _M68K_ATARI_STRAM_H - -/* - * Functions for Atari ST-RAM management - */ - -/* public interface */ -void *atari_stram_alloc( long size, unsigned long *start_mem, - const char *owner ); -void atari_stram_free( void *); - -/* functions called internally by other parts of the kernel */ -void atari_stram_init( void); -void atari_stram_reserve_pages( unsigned long start_mem ); - -#endif /*_M68K_ATARI_STRAM_H */ diff -urNX exclude linux-2.1.79.orig/include/asm-m68k/atarihw.h linux-2.1.79/include/asm-m68k/atarihw.h --- linux-2.1.79.orig/include/asm-m68k/atarihw.h Fri Dec 19 18:39:32 1997 +++ linux-2.1.79/include/asm-m68k/atarihw.h Thu Jan 1 01:00:00 1970 @@ -1,798 +0,0 @@ -/* -** linux/atarihw.h -- This header defines some macros and pointers for -** the various Atari custom hardware registers. -** -** Copyright 1994 by Bj”rn Brauel -** -** 5/1/94 Roman Hodek: -** Added definitions for TT specific chips. -** -** 1996-09-13 lars brinkhoff : -** Finally added definitions for the matrix/codec and the DSP56001 host -** interface. -** -** 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. -** -*/ - -#ifndef _LINUX_ATARIHW_H_ -#define _LINUX_ATARIHW_H_ - -#include -#include - -extern u_long atari_mch_cookie; -extern u_long atari_mch_type; -extern u_long atari_switches; -extern int atari_rtc_year_offset; -extern int atari_dont_touch_floppy_select; - -/* convenience macros for testing machine type */ -#define MACH_IS_ST ((atari_mch_cookie >> 16) == ATARI_MCH_ST) -#define MACH_IS_STE ((atari_mch_cookie >> 16) == ATARI_MCH_STE && \ - (atari_mch_cookie & 0xffff) == 0) -#define MACH_IS_MSTE ((atari_mch_cookie >> 16) == ATARI_MCH_STE && \ - (atari_mch_cookie & 0xffff) == 0x10) -#define MACH_IS_TT ((atari_mch_cookie >> 16) == ATARI_MCH_TT) -#define MACH_IS_FALCON ((atari_mch_cookie >> 16) == ATARI_MCH_FALCON) -#define MACH_IS_MEDUSA (atari_mch_type == ATARI_MACH_MEDUSA) -#define MACH_IS_HADES (atari_mch_type == ATARI_MACH_HADES) -#define MACH_IS_AB40 (atari_mch_type == ATARI_MACH_AB40) - -/* values for atari_switches */ -#define ATARI_SWITCH_IKBD 0x01 -#define ATARI_SWITCH_MIDI 0x02 -#define ATARI_SWITCH_SND6 0x04 -#define ATARI_SWITCH_SND7 0x08 -#define ATARI_SWITCH_OVSC_SHIFT 16 -#define ATARI_SWITCH_OVSC_IKBD (ATARI_SWITCH_IKBD << ATARI_SWITCH_OVSC_SHIFT) -#define ATARI_SWITCH_OVSC_MIDI (ATARI_SWITCH_MIDI << ATARI_SWITCH_OVSC_SHIFT) -#define ATARI_SWITCH_OVSC_SND6 (ATARI_SWITCH_SND6 << ATARI_SWITCH_OVSC_SHIFT) -#define ATARI_SWITCH_OVSC_SND7 (ATARI_SWITCH_SND7 << ATARI_SWITCH_OVSC_SHIFT) -#define ATARI_SWITCH_OVSC_MASK 0xffff0000 - -/* - * Define several Hardware-Chips for indication so that for the ATARI we do - * no longer decide whether it is a Falcon or other machine . It's just - * important what hardware the machine uses - */ - -/* ++roman 08/08/95: rewritten from ORing constants to a C bitfield */ - -#define ATARIHW_DECLARE(name) unsigned name : 1 -#define ATARIHW_SET(name) (atari_hw_present.name = 1) -#define ATARIHW_PRESENT(name) (atari_hw_present.name) - -struct atari_hw_present { - /* video hardware */ - ATARIHW_DECLARE(STND_SHIFTER); /* ST-Shifter - no base low ! */ - ATARIHW_DECLARE(EXTD_SHIFTER); /* STe-Shifter - 24 bit address */ - ATARIHW_DECLARE(TT_SHIFTER); /* TT-Shifter */ - ATARIHW_DECLARE(VIDEL_SHIFTER); /* Falcon-Shifter */ - /* sound hardware */ - ATARIHW_DECLARE(YM_2149); /* Yamaha YM 2149 */ - ATARIHW_DECLARE(PCM_8BIT); /* PCM-Sound in STe-ATARI */ - ATARIHW_DECLARE(CODEC); /* CODEC Sound (Falcon) */ - /* disk storage interfaces */ - ATARIHW_DECLARE(TT_SCSI); /* Directly mapped NCR5380 */ - ATARIHW_DECLARE(ST_SCSI); /* NCR5380 via ST-DMA (Falcon) */ - ATARIHW_DECLARE(ACSI); /* Standard ACSI like in STs */ - ATARIHW_DECLARE(IDE); /* IDE Interface */ - ATARIHW_DECLARE(FDCSPEED); /* 8/16 MHz switch for FDC */ - /* other I/O hardware */ - ATARIHW_DECLARE(ST_MFP); /* The ST-MFP (there should be no Atari - without it... but who knows?) */ - ATARIHW_DECLARE(TT_MFP); /* 2nd MFP */ - ATARIHW_DECLARE(SCC); /* Serial Communications Contr. */ - ATARIHW_DECLARE(ST_ESCC); /* SCC Z83230 in an ST */ - ATARIHW_DECLARE(ANALOG_JOY); /* Paddle Interface for STe - and Falcon */ - ATARIHW_DECLARE(MICROWIRE); /* Microwire Interface */ - /* DMA */ - ATARIHW_DECLARE(STND_DMA); /* 24 Bit limited ST-DMA */ - ATARIHW_DECLARE(EXTD_DMA); /* 32 Bit ST-DMA */ - ATARIHW_DECLARE(SCSI_DMA); /* DMA for the NCR5380 */ - ATARIHW_DECLARE(SCC_DMA); /* DMA for the SCC */ - /* real time clocks */ - ATARIHW_DECLARE(TT_CLK); /* TT compatible clock chip */ - ATARIHW_DECLARE(MSTE_CLK); /* Mega ST(E) clock chip */ - /* supporting hardware */ - ATARIHW_DECLARE(SCU); /* System Control Unit */ - ATARIHW_DECLARE(BLITTER); /* Blitter */ - ATARIHW_DECLARE(VME); /* VME Bus */ - ATARIHW_DECLARE(DSP56K); /* DSP56k processor in Falcon */ -}; - -extern struct atari_hw_present atari_hw_present; - - -/* Reading the MFP port register gives a machine independent delay, since the - * MFP always has a 8 MHz clock. This avoids problems with the varying length - * of nops on various machines. Somebody claimed that the tstb takes 600 ns. - */ -#define MFPDELAY() \ - __asm__ __volatile__ ( "tstb %0" : : "m" (mfp.par_dt_reg) : "cc" ); - -/* Do cache push/invalidate for DMA read/write. This function obeys the - * snooping on some machines (Medusa) and processors: The Medusa itself can - * snoop, but only the '040 can source data from its cache to DMA writes i.e., - * reads from memory). Both '040 and '060 invalidate cache entries on snooped - * DMA reads (i.e., writes to memory). - */ - -#include -#include - -static inline void dma_cache_maintenance( unsigned long paddr, - unsigned long len, - int writeflag ) - -{ - if (writeflag) { - if (!MACH_IS_MEDUSA || CPU_IS_060) - cache_push( paddr, len ); - } - else { - if (!MACH_IS_MEDUSA) - cache_clear( paddr, len ); - } -} - - -/* -** Shifter - */ -#define ST_LOW 0 -#define ST_MID 1 -#define ST_HIGH 2 -#define TT_LOW 7 -#define TT_MID 4 -#define TT_HIGH 6 - -#define SHF_BAS (0xffff8200) -struct SHIFTER - { - u_char pad1; - u_char bas_hi; - u_char pad2; - u_char bas_md; - u_char pad3; - u_char volatile vcounthi; - u_char pad4; - u_char volatile vcountmid; - u_char pad5; - u_char volatile vcountlow; - u_char volatile syncmode; - u_char pad6; - u_char pad7; - u_char bas_lo; - }; -# define shifter ((*(volatile struct SHIFTER *)SHF_BAS)) - -#define SHF_FBAS (0xffff820e) -struct SHIFTER_F030 - { - u_short off_next; - u_short scn_width; - }; -# define shifter_f030 ((*(volatile struct SHIFTER_F030 *)SHF_FBAS)) - - -#define SHF_TBAS (0xffff8200) -struct SHIFTER_TT { - u_char char_dummy0; - u_char bas_hi; /* video mem base addr, high and mid byte */ - u_char char_dummy1; - u_char bas_md; - u_char char_dummy2; - u_char vcount_hi; /* pointer to currently displayed byte */ - u_char char_dummy3; - u_char vcount_md; - u_char char_dummy4; - u_char vcount_lo; - u_short st_sync; /* ST compatible sync mode register, unused */ - u_char char_dummy5; - u_char bas_lo; /* video mem addr, low byte */ - u_char char_dummy6[2+3*16]; - /* $ffff8240: */ - u_short color_reg[16]; /* 16 color registers */ - u_char st_shiftmode; /* ST compatible shift mode register, unused */ - u_char char_dummy7; - u_short tt_shiftmode; /* TT shift mode register */ - - -}; -#define shifter_tt ((*(volatile struct SHIFTER_TT *)SHF_TBAS)) - -/* values for shifter_tt->tt_shiftmode */ -#define TT_SHIFTER_STLOW 0x0000 -#define TT_SHIFTER_STMID 0x0100 -#define TT_SHIFTER_STHIGH 0x0200 -#define TT_SHIFTER_TTLOW 0x0700 -#define TT_SHIFTER_TTMID 0x0400 -#define TT_SHIFTER_TTHIGH 0x0600 -#define TT_SHIFTER_MODEMASK 0x0700 -#define TT_SHIFTER_NUMMODE 0x0008 -#define TT_SHIFTER_PALETTE_MASK 0x000f -#define TT_SHIFTER_GRAYMODE 0x1000 - -/* 256 TT palette registers */ -#define TT_PALETTE_BASE (0xffff8400) -#define tt_palette ((volatile u_short *)TT_PALETTE_BASE) - -#define TT_PALETTE_RED_MASK 0x0f00 -#define TT_PALETTE_GREEN_MASK 0x00f0 -#define TT_PALETTE_BLUE_MASK 0x000f - -/* -** Falcon030 VIDEL Video Controller -** for description see File 'linux\tools\atari\hardware.txt - */ -#define f030_col ((u_long *) 0xffff9800) -#define f030_xreg ((u_short*) 0xffff8282) -#define f030_yreg ((u_short*) 0xffff82a2) -#define f030_creg ((u_short*) 0xffff82c0) -#define f030_sreg ((u_short*) 0xffff8260) -#define f030_mreg ((u_short*) 0xffff820a) -#define f030_linewidth ((u_short*) 0xffff820e) -#define f030_hscroll ((u_char*) 0xffff8265) - -#define VIDEL_BAS (0xffff8260) -struct VIDEL { - u_short st_shift; - u_short pad1; - u_char xoffset_s; - u_char xoffset; - u_short f_shift; - u_char pad2[0x1a]; - u_short hht; - u_short hbb; - u_short hbe; - u_short hdb; - u_short hde; - u_short hss; - u_char pad3[0x14]; - u_short vft; - u_short vbb; - u_short vbe; - u_short vdb; - u_short vde; - u_short vss; - u_char pad4[0x12]; - u_short control; - u_short mode; -}; -#define videl ((*(volatile struct VIDEL *)VIDEL_BAS)) - -/* -** DMA/WD1772 Disk Controller - */ - -#define FWD_BAS (0xffff8604) -struct DMA_WD - { - u_short fdc_acces_seccount; - u_short dma_mode_status; - u_char dma_vhi; /* Some extended ST-DMAs can handle 32 bit addresses */ - u_char dma_hi; - u_char char_dummy2; - u_char dma_md; - u_char char_dummy3; - u_char dma_lo; - u_short fdc_speed; - }; -# define dma_wd ((*(volatile struct DMA_WD *)FWD_BAS)) -/* alias */ -#define st_dma dma_wd -/* The two highest bytes of an extended DMA as a short; this is a must - * for the Medusa. - */ -#define st_dma_ext_dmahi (*((volatile unsigned short *)0xffff8608)) - -/* -** YM2149 Sound Chip -** access in bytes - */ - -#define YM_BAS (0xffff8800) -struct SOUND_YM - { - u_char rd_data_reg_sel; - u_char char_dummy1; - u_char wd_data; - }; -#define sound_ym ((*(volatile struct SOUND_YM *)YM_BAS)) - -/* TT SCSI DMA */ - -#define TT_SCSI_DMA_BAS (0xffff8700) -struct TT_DMA { - u_char char_dummy0; - u_char dma_addr_hi; - u_char char_dummy1; - u_char dma_addr_hmd; - u_char char_dummy2; - u_char dma_addr_lmd; - u_char char_dummy3; - u_char dma_addr_lo; - u_char char_dummy4; - u_char dma_cnt_hi; - u_char char_dummy5; - u_char dma_cnt_hmd; - u_char char_dummy6; - u_char dma_cnt_lmd; - u_char char_dummy7; - u_char dma_cnt_lo; - u_long dma_restdata; - u_short dma_ctrl; -}; -#define tt_scsi_dma ((*(volatile struct TT_DMA *)TT_SCSI_DMA_BAS)) - -/* TT SCSI Controller 5380 */ - -#define TT_5380_BAS (0xffff8781) -struct TT_5380 { - u_char scsi_data; - u_char char_dummy1; - u_char scsi_icr; - u_char char_dummy2; - u_char scsi_mode; - u_char char_dummy3; - u_char scsi_tcr; - u_char char_dummy4; - u_char scsi_idstat; - u_char char_dummy5; - u_char scsi_dmastat; - u_char char_dummy6; - u_char scsi_targrcv; - u_char char_dummy7; - u_char scsi_inircv; -}; -#define tt_scsi ((*(volatile struct TT_5380 *)TT_5380_BAS)) -#define tt_scsi_regp ((volatile char *)TT_5380_BAS) - - -/* -** Falcon DMA Sound Subsystem - */ - -#define MATRIX_BASE (0xffff8930) -struct MATRIX -{ - u_short source; - u_short destination; - u_char external_frequency_divider; - u_char internal_frequency_divider; -}; -#define matrix (*(volatile struct MATRIX *)MATRIX_BASE) - -#define CODEC_BASE (0xffff8936) -struct CODEC -{ - u_char tracks; - u_char input_source; -#define CODEC_SOURCE_ADC 1 -#define CODEC_SOURCE_MATRIX 2 - u_char adc_source; -#define ADC_SOURCE_RIGHT_PSG 1 -#define ADC_SOURCE_LEFT_PSG 2 - u_char gain; -#define CODEC_GAIN_RIGHT 0x0f -#define CODEC_GAIN_LEFT 0xf0 - u_char attenuation; -#define CODEC_ATTENUATION_RIGHT 0x0f -#define CODEC_ATTENUATION_LEFT 0xf0 - u_char unused1; - u_char status; -#define CODEC_OVERFLOW_RIGHT 1 -#define CODEC_OVERFLOW_LEFT 2 - u_char unused2, unused3, unused4, unused5; - u_char gpio_directions; -#define GPIO_IN 0 -#define GPIO_OUT 1 - u_char unused6; - u_char gpio_data; -}; -#define codec (*(volatile struct CODEC *)CODEC_BASE) - -/* -** Falcon Blitter -*/ - -#define BLT_BAS (0xffff8a00) - -struct BLITTER - { - u_short halftone[16]; - u_short src_x_inc; - u_short src_y_inc; - u_long src_address; - u_short endmask1; - u_short endmask2; - u_short endmask3; - u_short dst_x_inc; - u_short dst_y_inc; - u_long dst_address; - u_short wd_per_line; - u_short ln_per_bb; - u_short hlf_op_reg; - u_short log_op_reg; - u_short lin_nm_reg; - u_short skew_reg; - }; -# define blitter ((*(volatile struct BLITTER *)BLT_BAS)) - - -/* -** SCC Z8530 - */ - -#define SCC_BAS (0xffff8c81) -struct SCC - { - u_char cha_a_ctrl; - u_char char_dummy1; - u_char cha_a_data; - u_char char_dummy2; - u_char cha_b_ctrl; - u_char char_dummy3; - u_char cha_b_data; - }; -# define scc ((*(volatile struct SCC*)SCC_BAS)) - -/* The ESCC (Z85230) in an Atari ST. The channels are reversed! */ -# define st_escc ((*(volatile struct SCC*)0xfffffa31)) -# define st_escc_dsr ((*(volatile char *)0xfffffa39)) - -/* TT SCC DMA Controller (same chip as SCSI DMA) */ - -#define TT_SCC_DMA_BAS (0xffff8c00) -#define tt_scc_dma ((*(volatile struct TT_DMA *)TT_SCC_DMA_BAS)) - -/* -** VIDEL Palette Register - */ - -#define FPL_BAS (0xffff9800) -struct VIDEL_PALETTE - { - u_long reg[256]; - }; -# define videl_palette ((*(volatile struct VIDEL_PALETTE*)FPL_BAS)) - - -/* -** Falcon DSP Host Interface - */ - -#define DSP56K_HOST_INTERFACE_BASE (0xffffa200) -struct DSP56K_HOST_INTERFACE { - u_char icr; -#define DSP56K_ICR_RREQ 0x01 -#define DSP56K_ICR_TREQ 0x02 -#define DSP56K_ICR_HF0 0x08 -#define DSP56K_ICR_HF1 0x10 -#define DSP56K_ICR_HM0 0x20 -#define DSP56K_ICR_HM1 0x40 -#define DSP56K_ICR_INIT 0x80 - - u_char cvr; -#define DSP56K_CVR_HV_MASK 0x1f -#define DSP56K_CVR_HC 0x80 - - u_char isr; -#define DSP56K_ISR_RXDF 0x01 -#define DSP56K_ISR_TXDE 0x02 -#define DSP56K_ISR_TRDY 0x04 -#define DSP56K_ISR_HF2 0x08 -#define DSP56K_ISR_HF3 0x10 -#define DSP56K_ISR_DMA 0x40 -#define DSP56K_ISR_HREQ 0x80 - - u_char ivr; - - union { - u_char b[4]; - u_short w[2]; - u_long l; - } data; -}; -#define dsp56k_host_interface ((*(volatile struct DSP56K_HOST_INTERFACE *)DSP56K_HOST_INTERFACE_BASE)) - -/* -** MFP 68901 - */ - -#define MFP_BAS (0xfffffa01) -struct MFP - { - u_char par_dt_reg; - u_char char_dummy1; - u_char active_edge; - u_char char_dummy2; - u_char data_dir; - u_char char_dummy3; - u_char int_en_a; - u_char char_dummy4; - u_char int_en_b; - u_char char_dummy5; - u_char int_pn_a; - u_char char_dummy6; - u_char int_pn_b; - u_char char_dummy7; - u_char int_sv_a; - u_char char_dummy8; - u_char int_sv_b; - u_char char_dummy9; - u_char int_mk_a; - u_char char_dummy10; - u_char int_mk_b; - u_char char_dummy11; - u_char vec_adr; - u_char char_dummy12; - u_char tim_ct_a; - u_char char_dummy13; - u_char tim_ct_b; - u_char char_dummy14; - u_char tim_ct_cd; - u_char char_dummy15; - u_char tim_dt_a; - u_char char_dummy16; - u_char tim_dt_b; - u_char char_dummy17; - u_char tim_dt_c; - u_char char_dummy18; - u_char tim_dt_d; - u_char char_dummy19; - u_char sync_char; - u_char char_dummy20; - u_char usart_ctr; - u_char char_dummy21; - u_char rcv_stat; - u_char char_dummy22; - u_char trn_stat; - u_char char_dummy23; - u_char usart_dta; - }; -# define mfp ((*(volatile struct MFP*)MFP_BAS)) - -/* TT's second MFP */ - -#define TT_MFP_BAS (0xfffffa81) -# define tt_mfp ((*(volatile struct MFP*)TT_MFP_BAS)) - - -/* TT System Control Unit */ - -#define TT_SCU_BAS (0xffff8e01) -struct TT_SCU { - u_char sys_mask; - u_char char_dummy1; - u_char sys_stat; - u_char char_dummy2; - u_char softint; - u_char char_dummy3; - u_char vmeint; - u_char char_dummy4; - u_char gp_reg1; - u_char char_dummy5; - u_char gp_reg2; - u_char char_dummy6; - u_char vme_mask; - u_char char_dummy7; - u_char vme_stat; -}; -#define tt_scu ((*(volatile struct TT_SCU *)TT_SCU_BAS)) - -/* TT real time clock */ - -#define TT_RTC_BAS (0xffff8961) -struct TT_RTC { - u_char regsel; - u_char dummy; - u_char data; -}; -#define tt_rtc ((*(volatile struct TT_RTC *)TT_RTC_BAS)) - - -/* -** ACIA 6850 - */ -/* constants for the ACIA registers */ - -/* baudrate selection and reset (Baudrate = clock/factor) */ -#define ACIA_DIV1 0 -#define ACIA_DIV16 1 -#define ACIA_DIV64 2 -#define ACIA_RESET 3 - -/* character format */ -#define ACIA_D7E2S (0<<2) /* 7 data, even parity, 2 stop */ -#define ACIA_D7O2S (1<<2) /* 7 data, odd parity, 2 stop */ -#define ACIA_D7E1S (2<<2) /* 7 data, even parity, 1 stop */ -#define ACIA_D7O1S (3<<2) /* 7 data, odd parity, 1 stop */ -#define ACIA_D8N2S (4<<2) /* 8 data, no parity, 2 stop */ -#define ACIA_D8N1S (5<<2) /* 8 data, no parity, 1 stop */ -#define ACIA_D8E1S (6<<2) /* 8 data, even parity, 1 stop */ -#define ACIA_D8O1S (7<<2) /* 8 data, odd parity, 1 stop */ - -/* transmit control */ -#define ACIA_RLTID (0<<5) /* RTS low, TxINT disabled */ -#define ACIA_RLTIE (1<<5) /* RTS low, TxINT enabled */ -#define ACIA_RHTID (2<<5) /* RTS high, TxINT disabled */ -#define ACIA_RLTIDSB (3<<5) /* RTS low, TxINT disabled, send break */ - -/* receive control */ -#define ACIA_RID (0<<7) /* RxINT disabled */ -#define ACIA_RIE (1<<7) /* RxINT enabled */ - -/* status fields of the ACIA */ -#define ACIA_RDRF 1 /* Receive Data Register Full */ -#define ACIA_TDRE (1<<1) /* Transmit Data Register Empty */ -#define ACIA_DCD (1<<2) /* Data Carrier Detect */ -#define ACIA_CTS (1<<3) /* Clear To Send */ -#define ACIA_FE (1<<4) /* Framing Error */ -#define ACIA_OVRN (1<<5) /* Receiver Overrun */ -#define ACIA_PE (1<<6) /* Parity Error */ -#define ACIA_IRQ (1<<7) /* Interrupt Request */ - -#define ACIA_BAS (0xfffffc00) -struct ACIA - { - u_char key_ctrl; - u_char char_dummy1; - u_char key_data; - u_char char_dummy2; - u_char mid_ctrl; - u_char char_dummy3; - u_char mid_data; - }; -# define acia ((*(volatile struct ACIA*)ACIA_BAS)) - -#define TT_DMASND_BAS (0xffff8900) -struct TT_DMASND { - u_char int_ctrl; /* Falcon: Interrupt control */ - u_char ctrl; - u_char pad2; - u_char bas_hi; - u_char pad3; - u_char bas_mid; - u_char pad4; - u_char bas_low; - u_char pad5; - u_char addr_hi; - u_char pad6; - u_char addr_mid; - u_char pad7; - u_char addr_low; - u_char pad8; - u_char end_hi; - u_char pad9; - u_char end_mid; - u_char pad10; - u_char end_low; - u_char pad11[12]; - u_char track_select; /* Falcon */ - u_char mode; - u_char pad12[14]; - /* Falcon only: */ - u_short cbar_src; - u_short cbar_dst; - u_char ext_div; - u_char int_div; - u_char rec_track_select; - u_char dac_src; - u_char adc_src; - u_char input_gain; - u_short output_atten; -}; -# define tt_dmasnd ((*(volatile struct TT_DMASND *)TT_DMASND_BAS)) - -#define DMASND_MFP_INT_REPLAY 0x01 -#define DMASND_MFP_INT_RECORD 0x02 -#define DMASND_TIMERA_INT_REPLAY 0x04 -#define DMASND_TIMERA_INT_RECORD 0x08 - -#define DMASND_CTRL_OFF 0x00 -#define DMASND_CTRL_ON 0x01 -#define DMASND_CTRL_REPEAT 0x02 -#define DMASND_CTRL_RECORD_ON 0x10 -#define DMASND_CTRL_RECORD_OFF 0x00 -#define DMASND_CTRL_RECORD_REPEAT 0x20 -#define DMASND_CTRL_SELECT_REPLAY 0x00 -#define DMASND_CTRL_SELECT_RECORD 0x80 -#define DMASND_MODE_MONO 0x80 -#define DMASND_MODE_STEREO 0x00 -#define DMASND_MODE_8BIT 0x00 -#define DMASND_MODE_16BIT 0x40 /* Falcon only */ -#define DMASND_MODE_6KHZ 0x00 /* Falcon: mute */ -#define DMASND_MODE_12KHZ 0x01 -#define DMASND_MODE_25KHZ 0x02 -#define DMASND_MODE_50KHZ 0x03 - - -#define DMASNDSetBase(bufstart) \ - do { \ - tt_dmasnd.bas_hi = (unsigned char)(((bufstart) & 0xff0000) >> 16); \ - tt_dmasnd.bas_mid = (unsigned char)(((bufstart) & 0x00ff00) >> 8); \ - tt_dmasnd.bas_low = (unsigned char) ((bufstart) & 0x0000ff); \ - } while( 0 ) - -#define DMASNDGetAdr() ((tt_dmasnd.addr_hi << 16) + \ - (tt_dmasnd.addr_mid << 8) + \ - (tt_dmasnd.addr_low)) - -#define DMASNDSetEnd(bufend) \ - do { \ - tt_dmasnd.end_hi = (unsigned char)(((bufend) & 0xff0000) >> 16); \ - tt_dmasnd.end_mid = (unsigned char)(((bufend) & 0x00ff00) >> 8); \ - tt_dmasnd.end_low = (unsigned char) ((bufend) & 0x0000ff); \ - } while( 0 ) - - -#define TT_MICROWIRE_BAS (0xffff8922) -struct TT_MICROWIRE { - u_short data; - u_short mask; -}; -# define tt_microwire ((*(volatile struct TT_MICROWIRE *)TT_MICROWIRE_BAS)) - -#define MW_LM1992_ADDR 0x0400 - -#define MW_LM1992_VOLUME(dB) \ - (0x0c0 | ((dB) < -80 ? 0 : (dB) > 0 ? 40 : (((dB) + 80) / 2))) -#define MW_LM1992_BALLEFT(dB) \ - (0x140 | ((dB) < -40 ? 0 : (dB) > 0 ? 20 : (((dB) + 40) / 2))) -#define MW_LM1992_BALRIGHT(dB) \ - (0x100 | ((dB) < -40 ? 0 : (dB) > 0 ? 20 : (((dB) + 40) / 2))) -#define MW_LM1992_TREBLE(dB) \ - (0x080 | ((dB) < -12 ? 0 : (dB) > 12 ? 12 : (((dB) / 2) + 6))) -#define MW_LM1992_BASS(dB) \ - (0x040 | ((dB) < -12 ? 0 : (dB) > 12 ? 12 : (((dB) / 2) + 6))) - -#define MW_LM1992_PSG_LOW 0x000 -#define MW_LM1992_PSG_HIGH 0x001 -#define MW_LM1992_PSG_OFF 0x002 - -#define MSTE_RTC_BAS (0xfffffc21) - -struct MSTE_RTC { - u_char sec_ones; - u_char dummy1; - u_char sec_tens; - u_char dummy2; - u_char min_ones; - u_char dummy3; - u_char min_tens; - u_char dummy4; - u_char hr_ones; - u_char dummy5; - u_char hr_tens; - u_char dummy6; - u_char weekday; - u_char dummy7; - u_char day_ones; - u_char dummy8; - u_char day_tens; - u_char dummy9; - u_char mon_ones; - u_char dummy10; - u_char mon_tens; - u_char dummy11; - u_char year_ones; - u_char dummy12; - u_char year_tens; - u_char dummy13; - u_char mode; - u_char dummy14; - u_char test; - u_char dummy15; - u_char reset; -}; - -#define mste_rtc ((*(volatile struct MSTE_RTC *)MSTE_RTC_BAS)) - -#endif /* linux/atarihw.h */ - diff -urNX exclude linux-2.1.79.orig/include/asm-m68k/atariints.h linux-2.1.79/include/asm-m68k/atariints.h --- linux-2.1.79.orig/include/asm-m68k/atariints.h Wed Jan 15 17:47:08 1997 +++ linux-2.1.79/include/asm-m68k/atariints.h Thu Jan 1 01:00:00 1970 @@ -1,215 +0,0 @@ -/* -** atariints.h -- Atari Linux interrupt handling structs and prototypes -** -** Copyright 1994 by Bj”rn Brauel -** -** 5/2/94 Roman Hodek: -** TT interrupt definitions added. -** -** 12/02/96: (Roman) -** Adapted to new int handling scheme (see ataints.c); revised numbering -** -** 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. -** -*/ - -#ifndef _LINUX_ATARIINTS_H_ -#define _LINUX_ATARIINTS_H_ - -#include -#include - -/* -** Atari Interrupt sources. -** -*/ - -#define STMFP_SOURCE_BASE 8 -#define TTMFP_SOURCE_BASE 24 -#define SCC_SOURCE_BASE 40 -#define VME_SOURCE_BASE 56 -#define VME_MAX_SOURCES 16 - -#define NUM_ATARI_SOURCES (VME_SOURCE_BASE+VME_MAX_SOURCES-STMFP_SOURCE_BASE) - -/* convert vector number to int source number */ -#define IRQ_VECTOR_TO_SOURCE(v) ((v) - ((v) < 0x20 ? 0x18 : (0x40-8))) - -/* convert irq_handler index to vector number */ -#define IRQ_SOURCE_TO_VECTOR(i) ((i) + ((i) < 8 ? 0x18 : (0x40-8))) - -/* interrupt service types */ -#define IRQ_TYPE_SLOW 0 -#define IRQ_TYPE_FAST 1 -#define IRQ_TYPE_PRIO 2 - -#define IRQ_SPURIOUS (0) - -/* auto-vector interrupts */ -#define IRQ_AUTO_1 (1) -#define IRQ_AUTO_2 (2) -#define IRQ_AUTO_3 (3) -#define IRQ_AUTO_4 (4) -#define IRQ_AUTO_5 (5) -#define IRQ_AUTO_6 (6) -#define IRQ_AUTO_7 (7) - -/* ST-MFP interrupts */ -#define IRQ_MFP_BUSY (8) -#define IRQ_MFP_DCD (9) -#define IRQ_MFP_CTS (10) -#define IRQ_MFP_GPU (11) -#define IRQ_MFP_TIMD (12) -#define IRQ_MFP_TIMC (13) -#define IRQ_MFP_ACIA (14) -#define IRQ_MFP_FDC (15) -#define IRQ_MFP_ACSI IRQ_MFP_FDC -#define IRQ_MFP_FSCSI IRQ_MFP_FDC -#define IRQ_MFP_IDE IRQ_MFP_FDC -#define IRQ_MFP_TIMB (16) -#define IRQ_MFP_SERERR (17) -#define IRQ_MFP_SEREMPT (18) -#define IRQ_MFP_RECERR (19) -#define IRQ_MFP_RECFULL (20) -#define IRQ_MFP_TIMA (21) -#define IRQ_MFP_RI (22) -#define IRQ_MFP_MMD (23) - -/* TT-MFP interrupts */ -#define IRQ_TT_MFP_IO0 (24) -#define IRQ_TT_MFP_IO1 (25) -#define IRQ_TT_MFP_SCC (26) -#define IRQ_TT_MFP_RI (27) -#define IRQ_TT_MFP_TIMD (28) -#define IRQ_TT_MFP_TIMC (29) -#define IRQ_TT_MFP_DRVRDY (30) -#define IRQ_TT_MFP_SCSIDMA (31) -#define IRQ_TT_MFP_TIMB (32) -#define IRQ_TT_MFP_SERERR (33) -#define IRQ_TT_MFP_SEREMPT (34) -#define IRQ_TT_MFP_RECERR (35) -#define IRQ_TT_MFP_RECFULL (36) -#define IRQ_TT_MFP_TIMA (37) -#define IRQ_TT_MFP_RTC (38) -#define IRQ_TT_MFP_SCSI (39) - -/* SCC interrupts */ -#define IRQ_SCCB_TX (40) -#define IRQ_SCCB_STAT (42) -#define IRQ_SCCB_RX (44) -#define IRQ_SCCB_SPCOND (46) -#define IRQ_SCCA_TX (48) -#define IRQ_SCCA_STAT (50) -#define IRQ_SCCA_RX (52) -#define IRQ_SCCA_SPCOND (54) - - -#define INT_CLK 24576 /* CLK while int_clk =2.456MHz and divide = 100 */ -#define INT_TICKS 246 /* to make sched_time = 99.902... HZ */ - - -#define MFP_ENABLE 0 -#define MFP_PENDING 1 -#define MFP_SERVICE 2 -#define MFP_MASK 3 - -/* Utility functions for setting/clearing bits in the interrupt registers of - * the MFP. 'type' should be constant, if 'irq' is constant, too, code size is - * reduced. set_mfp_bit() is nonsense for PENDING and SERVICE registers. */ - -static inline int get_mfp_bit( unsigned irq, int type ) - -{ unsigned char mask, *reg; - - mask = 1 << (irq & 7); - reg = (unsigned char *)&mfp.int_en_a + type*4 + - ((irq & 8) >> 2) + (((irq-8) & 16) << 3); - return( *reg & mask ); -} - -static inline void set_mfp_bit( unsigned irq, int type ) - -{ unsigned char mask, *reg; - - mask = 1 << (irq & 7); - reg = (unsigned char *)&mfp.int_en_a + type*4 + - ((irq & 8) >> 2) + (((irq-8) & 16) << 3); - __asm__ __volatile__ ( "orb %0,%1" - : : "di" (mask), "m" (*reg) : "memory" ); -} - -static inline void clear_mfp_bit( unsigned irq, int type ) - -{ unsigned char mask, *reg; - - mask = ~(1 << (irq & 7)); - reg = (unsigned char *)&mfp.int_en_a + type*4 + - ((irq & 8) >> 2) + (((irq-8) & 16) << 3); - if (type == MFP_PENDING || type == MFP_SERVICE) - __asm__ __volatile__ ( "moveb %0,%1" - : : "di" (mask), "m" (*reg) : "memory" ); - else - __asm__ __volatile__ ( "andb %0,%1" - : : "di" (mask), "m" (*reg) : "memory" ); -} - -/* - * {en,dis}able_irq have the usual semantics of temporary blocking the - * interrupt, but not loosing requests that happen between disabling and - * enabling. This is done with the MFP mask registers. - */ - -static inline void atari_enable_irq( unsigned irq ) - -{ - if (irq < STMFP_SOURCE_BASE || irq >= SCC_SOURCE_BASE) return; - set_mfp_bit( irq, MFP_MASK ); -} - -static inline void atari_disable_irq( unsigned irq ) - -{ - if (irq < STMFP_SOURCE_BASE || irq >= SCC_SOURCE_BASE) return; - clear_mfp_bit( irq, MFP_MASK ); -} - -/* - * In opposite to {en,dis}able_irq, requests between turn{off,on}_irq are not - * "stored" - */ - -extern inline void atari_turnon_irq( unsigned irq ) - -{ - if (irq < STMFP_SOURCE_BASE || irq >= SCC_SOURCE_BASE) return; - set_mfp_bit( irq, MFP_ENABLE ); -} - -extern inline void atari_turnoff_irq( unsigned irq ) - -{ - if (irq < STMFP_SOURCE_BASE || irq >= SCC_SOURCE_BASE) return; - clear_mfp_bit( irq, MFP_ENABLE ); - clear_mfp_bit( irq, MFP_PENDING ); -} - -extern inline void atari_clear_pending_irq( unsigned irq ) - -{ - if (irq < STMFP_SOURCE_BASE || irq >= SCC_SOURCE_BASE) return; - clear_mfp_bit( irq, MFP_PENDING ); -} - -extern inline int atari_irq_pending( unsigned irq ) - -{ - if (irq < STMFP_SOURCE_BASE || irq >= SCC_SOURCE_BASE) return( 0 ); - return( get_mfp_bit( irq, MFP_PENDING ) ); -} - -unsigned long atari_register_vme_int( void ); -void atari_unregister_vme_int( unsigned long ); - -#endif /* linux/atariints.h */ diff -urNX exclude linux-2.1.79.orig/include/asm-m68k/atarikb.h linux-2.1.79/include/asm-m68k/atarikb.h --- linux-2.1.79.orig/include/asm-m68k/atarikb.h Wed May 22 18:03:20 1996 +++ linux-2.1.79/include/asm-m68k/atarikb.h Thu Jan 1 01:00:00 1970 @@ -1,40 +0,0 @@ -/* -** atarikb.h -- This header contains the prototypes of functions of -** the intelligent keyboard of the Atari needed by the -** mouse and joystick drivers. -** -** Copyright 1994 by Robert de Vries -** -** 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: 20 Feb 1994 by Robert de Vries -*/ - -#ifndef _LINUX_ATARIKB_H -#define _LINUX_ATARIKB_H - -void ikbd_write(const char *, int); -void ikbd_mouse_button_action(int mode); -void ikbd_mouse_rel_pos(void); -void ikbd_mouse_abs_pos(int xmax, int ymax); -void ikbd_mouse_kbd_mode(int dx, int dy); -void ikbd_mouse_thresh(int x, int y); -void ikbd_mouse_scale(int x, int y); -void ikbd_mouse_pos_get(int *x, int *y); -void ikbd_mouse_pos_set(int x, int y); -void ikbd_mouse_y0_bot(void); -void ikbd_mouse_y0_top(void); -void ikbd_mouse_disable(void); -void ikbd_joystick_event_on(void); -void ikbd_joystick_event_off(void); -void ikbd_joystick_get_state(void); -void ikbd_joystick_disable(void); - -/* Hook for MIDI serial driver */ -extern void (*atari_MIDI_interrupt_hook) (void); -/* Hook for mouse driver */ -extern void (*atari_mouse_interrupt_hook) (char *); - -#endif /* _LINUX_ATARIKB_H */ diff -urNX exclude linux-2.1.79.orig/include/asm-m68k/ide.h linux-2.1.79/include/asm-m68k/ide.h --- linux-2.1.79.orig/include/asm-m68k/ide.h Wed Jan 14 21:42:32 1998 +++ linux-2.1.79/include/asm-m68k/ide.h Thu Jan 15 01:51:44 1998 @@ -38,7 +38,7 @@ #include #ifdef CONFIG_ATARI -#include +#include #endif typedef unsigned char * ide_ioreg_t; diff -urNX exclude linux-2.1.79.orig/include/asm-m68k/io.h linux-2.1.79/include/asm-m68k/io.h --- linux-2.1.79.orig/include/asm-m68k/io.h Wed Dec 17 19:57:09 1997 +++ linux-2.1.79/include/asm-m68k/io.h Thu Jan 15 09:22:42 1998 @@ -6,9 +6,9 @@ #include #ifdef CONFIG_ATARI -#include +#include -#define SLOW_DOWN_IO MFPDELAY() +#define SLOW_DOWN_IO do { if (MACH_IS_ATARI) MFPDELAY(); } while (0) #endif /* @@ -62,8 +62,8 @@ * except on the PCI bus of the Hades. */ #ifdef CONFIG_HADES -#define virt_to_bus(a) (virt_to_phys(a) + (is_hades ? 0x80000000 : 0)) -#define bus_to_virt(a) (phys_to_virt((a) - (is_hades ? 0x80000000 : 0))) +#define virt_to_bus(a) (virt_to_phys(a) + (MACH_IS_HADES ? 0x80000000 : 0)) +#define bus_to_virt(a) (phys_to_virt((a) - (MACH_IS_HADES ? 0x80000000 : 0))) #else #define virt_to_bus virt_to_phys #define bus_to_virt phys_to_virt diff -urNX exclude linux-2.1.79.orig/include/asm-m68k/mvme16x/hardware.h linux-2.1.79/include/asm-m68k/mvme16x/hardware.h --- linux-2.1.79.orig/include/asm-m68k/mvme16x/hardware.h Thu Jan 1 01:00:00 1970 +++ linux-2.1.79/include/asm-m68k/mvme16x/hardware.h Fri Jan 9 18:15:09 1998 @@ -0,0 +1,118 @@ +#ifndef _M68K_MVME16xHW_H_ +#define _M68K_MVME16xHW_H_ + +#include + +/* Board ID data structure - pointer to this retrieved from Bug by head.S */ + +/* Note, bytes 12 and 13 are board no in BCD (0162,0166,0167,0177,etc) */ + +extern long mvme_bdid_ptr; + +typedef struct { + char bdid[4]; + u_char rev, mth, day, yr; + u_short size, reserved; + u_short brdno; + char brdsuffix[2]; + u_long options; + u_short clun, dlun, ctype, dnum; + u_long option2; +} t_bdid, *p_bdid; + + +typedef struct { + u_char ack_icr, + flt_icr, + sel_icr, + pe_icr, + bsy_icr, + spare1, + isr, + cr, + spare2, + spare3, + spare4, + data; +} lpr_ctrl; + +#define LPR_REGS ((volatile lpr_ctrl *)0xfff42030) + +#define I596_BASE 0xfff46000 + +#define SCC_A_ADDR 0xfff45005 +#define SCC_B_ADDR 0xfff45001 + +#define IRQ_MVME162_TYPE_PRIO 0 + +#define IRQ_MVME167_PRN 0x54 +#define IRQ_MVME16x_I596 0x57 +#define IRQ_MVME16x_SCSI 0x55 +#define IRQ_MVME16x_FLY 0x7f +#define IRQ_MVME167_SER_ERR 0x5c +#define IRQ_MVME167_SER_MODEM 0x5d +#define IRQ_MVME167_SER_TX 0x5e +#define IRQ_MVME167_SER_RX 0x5f +#define IRQ_MVME16x_TIMER 0x59 + +/* SCC interrupts, for MVME162 */ +#define IRQ_MVME162_SCC_BASE 0x40 +#define IRQ_MVME162_SCCB_TX 0x40 +#define IRQ_MVME162_SCCB_STAT 0x42 +#define IRQ_MVME162_SCCB_RX 0x44 +#define IRQ_MVME162_SCCB_SPCOND 0x46 +#define IRQ_MVME162_SCCA_TX 0x48 +#define IRQ_MVME162_SCCA_STAT 0x4a +#define IRQ_MVME162_SCCA_RX 0x4c +#define IRQ_MVME162_SCCA_SPCOND 0x4e + +/* MVME162 version register */ + +#define MVME162_VERSION_REG 0xfff4202e + +extern unsigned short mvme16x_config; + +/* Lower 8 bits must match the revision register in the MC2 chip */ + +#define MVME16x_CONFIG_SPEED_32 0x0001 +#define MVME16x_CONFIG_NO_VMECHIP2 0x0002 +#define MVME16x_CONFIG_NO_SCSICHIP 0x0004 +#define MVME16x_CONFIG_NO_ETHERNET 0x0008 +#define MVME16x_CONFIG_GOT_FPU 0x0010 + +#define MVME16x_CONFIG_GOT_LP 0x0100 +#define MVME16x_CONFIG_GOT_CD2401 0x0200 +#define MVME16x_CONFIG_GOT_SCCA 0x0400 +#define MVME16x_CONFIG_GOT_SCCB 0x0800 + +/* Specials for the ethernet driver */ + +#define CA() (((struct i596_reg *)dev->base_addr)->ca = 1) + +#define MPU_PORT(c,x) \ + ((struct i596_reg *)(dev->base_addr))->porthi = ((c) | (u32)(x)) & 0xffff; \ + ((struct i596_reg *)(dev->base_addr))->portlo = ((c) | (u32)(x)) >> 16 + +#define SCP_SYSBUS 0x00000054 + +#define WSWAPrfd(x) ((struct i596_rfd *) (((u32)(x)<<16) | ((((u32)(x)))>>16))) +#define WSWAPrbd(x) ((struct i596_rbd *) (((u32)(x)<<16) | ((((u32)(x)))>>16))) +#define WSWAPiscp(x) ((struct i596_iscp *)(((u32)(x)<<16) | ((((u32)(x)))>>16))) +#define WSWAPscb(x) ((struct i596_scb *) (((u32)(x)<<16) | ((((u32)(x)))>>16))) +#define WSWAPcmd(x) ((struct i596_cmd *) (((u32)(x)<<16) | ((((u32)(x)))>>16))) +#define WSWAPtbd(x) ((struct i596_tbd *) (((u32)(x)<<16) | ((((u32)(x)))>>16))) +#define WSWAPchar(x) ((char *) (((u32)(x)<<16) | ((((u32)(x)))>>16))) + +/* + * The MPU_PORT command allows direct access to the 82596. With PORT access + * the following commands are available (p5-18). The 32-bit port command + * must be word-swapped with the most significant word written first. + */ +#define PORT_RESET 0x00 /* reset 82596 */ +#define PORT_SELFTEST 0x01 /* selftest */ +#define PORT_ALTSCP 0x02 /* alternate SCB address */ +#define PORT_ALTDUMP 0x03 /* Alternate DUMP address */ + +#define ISCP_BUSY 0x00010000 + +#endif /* _M68K_MVME16xHW_H_ */ diff -urNX exclude linux-2.1.79.orig/include/asm-m68k/mvme16xhw.h linux-2.1.79/include/asm-m68k/mvme16xhw.h --- linux-2.1.79.orig/include/asm-m68k/mvme16xhw.h Fri Jan 9 18:15:09 1998 +++ linux-2.1.79/include/asm-m68k/mvme16xhw.h Thu Jan 1 01:00:00 1970 @@ -1,118 +0,0 @@ -#ifndef _M68K_MVME16xHW_H_ -#define _M68K_MVME16xHW_H_ - -#include - -/* Board ID data structure - pointer to this retrieved from Bug by head.S */ - -/* Note, bytes 12 and 13 are board no in BCD (0162,0166,0167,0177,etc) */ - -extern long mvme_bdid_ptr; - -typedef struct { - char bdid[4]; - u_char rev, mth, day, yr; - u_short size, reserved; - u_short brdno; - char brdsuffix[2]; - u_long options; - u_short clun, dlun, ctype, dnum; - u_long option2; -} t_bdid, *p_bdid; - - -typedef struct { - u_char ack_icr, - flt_icr, - sel_icr, - pe_icr, - bsy_icr, - spare1, - isr, - cr, - spare2, - spare3, - spare4, - data; -} lpr_ctrl; - -#define LPR_REGS ((volatile lpr_ctrl *)0xfff42030) - -#define I596_BASE 0xfff46000 - -#define SCC_A_ADDR 0xfff45005 -#define SCC_B_ADDR 0xfff45001 - -#define IRQ_MVME162_TYPE_PRIO 0 - -#define IRQ_MVME167_PRN 0x54 -#define IRQ_MVME16x_I596 0x57 -#define IRQ_MVME16x_SCSI 0x55 -#define IRQ_MVME16x_FLY 0x7f -#define IRQ_MVME167_SER_ERR 0x5c -#define IRQ_MVME167_SER_MODEM 0x5d -#define IRQ_MVME167_SER_TX 0x5e -#define IRQ_MVME167_SER_RX 0x5f -#define IRQ_MVME16x_TIMER 0x59 - -/* SCC interrupts, for MVME162 */ -#define IRQ_MVME162_SCC_BASE 0x40 -#define IRQ_MVME162_SCCB_TX 0x40 -#define IRQ_MVME162_SCCB_STAT 0x42 -#define IRQ_MVME162_SCCB_RX 0x44 -#define IRQ_MVME162_SCCB_SPCOND 0x46 -#define IRQ_MVME162_SCCA_TX 0x48 -#define IRQ_MVME162_SCCA_STAT 0x4a -#define IRQ_MVME162_SCCA_RX 0x4c -#define IRQ_MVME162_SCCA_SPCOND 0x4e - -/* MVME162 version register */ - -#define MVME162_VERSION_REG 0xfff4202e - -extern unsigned short mvme16x_config; - -/* Lower 8 bits must match the revision register in the MC2 chip */ - -#define MVME16x_CONFIG_SPEED_32 0x0001 -#define MVME16x_CONFIG_NO_VMECHIP2 0x0002 -#define MVME16x_CONFIG_NO_SCSICHIP 0x0004 -#define MVME16x_CONFIG_NO_ETHERNET 0x0008 -#define MVME16x_CONFIG_GOT_FPU 0x0010 - -#define MVME16x_CONFIG_GOT_LP 0x0100 -#define MVME16x_CONFIG_GOT_CD2401 0x0200 -#define MVME16x_CONFIG_GOT_SCCA 0x0400 -#define MVME16x_CONFIG_GOT_SCCB 0x0800 - -/* Specials for the ethernet driver */ - -#define CA() (((struct i596_reg *)dev->base_addr)->ca = 1) - -#define MPU_PORT(c,x) \ - ((struct i596_reg *)(dev->base_addr))->porthi = ((c) | (u32)(x)) & 0xffff; \ - ((struct i596_reg *)(dev->base_addr))->portlo = ((c) | (u32)(x)) >> 16 - -#define SCP_SYSBUS 0x00000054 - -#define WSWAPrfd(x) ((struct i596_rfd *) (((u32)(x)<<16) | ((((u32)(x)))>>16))) -#define WSWAPrbd(x) ((struct i596_rbd *) (((u32)(x)<<16) | ((((u32)(x)))>>16))) -#define WSWAPiscp(x) ((struct i596_iscp *)(((u32)(x)<<16) | ((((u32)(x)))>>16))) -#define WSWAPscb(x) ((struct i596_scb *) (((u32)(x)<<16) | ((((u32)(x)))>>16))) -#define WSWAPcmd(x) ((struct i596_cmd *) (((u32)(x)<<16) | ((((u32)(x)))>>16))) -#define WSWAPtbd(x) ((struct i596_tbd *) (((u32)(x)<<16) | ((((u32)(x)))>>16))) -#define WSWAPchar(x) ((char *) (((u32)(x)<<16) | ((((u32)(x)))>>16))) - -/* - * The MPU_PORT command allows direct access to the 82596. With PORT access - * the following commands are available (p5-18). The 32-bit port command - * must be word-swapped with the most significant word written first. - */ -#define PORT_RESET 0x00 /* reset 82596 */ -#define PORT_SELFTEST 0x01 /* selftest */ -#define PORT_ALTSCP 0x02 /* alternate SCB address */ -#define PORT_ALTDUMP 0x03 /* Alternate DUMP address */ - -#define ISCP_BUSY 0x00010000 - -#endif /* _M68K_MVME16xHW_H_ */ diff -urNX exclude linux-2.1.79.orig/include/linux/mc146818rtc.h linux-2.1.79/include/linux/mc146818rtc.h --- linux-2.1.79.orig/include/linux/mc146818rtc.h Thu Dec 18 08:55:09 1997 +++ linux-2.1.79/include/linux/mc146818rtc.h Thu Jan 15 09:58:31 1998 @@ -19,8 +19,8 @@ #ifdef CONFIG_ATARI /* RTC in Atari machines */ -#include -#include +#include +#include #define RTC_HAS_IRQ (ATARIHW_PRESENT(TT_MFP)) #define RTC_IRQ IRQ_TT_MFP_RTC #define RTC_IRQ_FLAGS IRQ_TYPE_FAST diff -urNX exclude linux-2.1.79.orig/include/linux/msdos_fs.h linux-2.1.79/include/linux/msdos_fs.h --- linux-2.1.79.orig/include/linux/msdos_fs.h Wed Jan 14 22:39:27 1998 +++ linux-2.1.79/include/linux/msdos_fs.h Thu Jan 15 08:01:39 1998 @@ -224,7 +224,7 @@ extern void cache_init(void); void cache_lookup(struct inode *inode,int cluster,int *f_clu,int *d_clu); void cache_add(struct inode *inode,int f_clu,int d_clu); -int get_cluster(struct inode *inode,int cluster); +int fat_get_cluster(struct inode *inode,int cluster); /* inode.c */ extern int fat_bmap(struct inode *inode,int block); @@ -258,7 +258,7 @@ /* mmap.c */ extern int fat_mmap(struct file *, struct vm_area_struct *); -extern int fat_readpage(struct inode *, struct page *); +extern int fat_readpage(struct dentry *, struct page *); /* vfat.c */ diff -urNX exclude linux-2.1.79.orig/include/net/neighbour.h linux-2.1.79/include/net/neighbour.h --- linux-2.1.79.orig/include/net/neighbour.h Wed Jan 14 21:43:35 1998 +++ linux-2.1.79/include/net/neighbour.h Thu Jan 15 07:59:34 1998 @@ -249,12 +249,12 @@ return 0; } -extern __inline__ int neigh_table_lock(struct neigh_table *tbl) +extern __inline__ void neigh_table_lock(struct neigh_table *tbl) { atomic_inc(&tbl->lock); } -extern __inline__ int neigh_table_unlock(struct neigh_table *tbl) +extern __inline__ void neigh_table_unlock(struct neigh_table *tbl) { atomic_dec(&tbl->lock); } diff -urNX exclude linux-2.1.79.orig/kernel/fork.c linux-2.1.79/kernel/fork.c --- linux-2.1.79.orig/kernel/fork.c Wed Jan 14 21:43:38 1998 +++ linux-2.1.79/kernel/fork.c Wed Jan 14 23:27:29 1998 @@ -435,7 +435,9 @@ */ int do_fork(unsigned long clone_flags, unsigned long usp, struct pt_regs *regs) { +#ifdef __SMP__ int i; +#endif int nr; int error = -ENOMEM; struct task_struct *p;