19 #define XD_DATA (xd_iobase + 0x00)
20 #define XD_RESET (xd_iobase + 0x01)
21 #define XD_STATUS (xd_iobase + 0x01)
22 #define XD_SELECT (xd_iobase + 0x02)
23 #define XD_JUMPER (xd_iobase + 0x02)
24 #define XD_CONTROL (xd_iobase + 0x03)
25 #define XD_RESERVED (xd_iobase + 0x03)
28 #define CMD_TESTREADY 0x00
29 #define CMD_RECALIBRATE 0x01
30 #define CMD_SENSE 0x03
31 #define CMD_FORMATDRV 0x04
32 #define CMD_VERIFY 0x05
33 #define CMD_FORMATTRK 0x06
34 #define CMD_FORMATBAD 0x07
36 #define CMD_WRITE 0x0A
40 #define CMD_DTCSETPARAM 0x0C
41 #define CMD_DTCGETECC 0x0D
42 #define CMD_DTCREADBUF 0x0E
43 #define CMD_DTCWRITEBUF 0x0F
44 #define CMD_DTCREMAPTRK 0x11
45 #define CMD_DTCGETPARAM 0xFB
46 #define CMD_DTCSETSTEP 0xFC
47 #define CMD_DTCSETGEOM 0xFE
48 #define CMD_DTCGETGEOM 0xFF
49 #define CMD_ST11GETGEOM 0xF8
50 #define CMD_WDSETPARAM 0x0C
51 #define CMD_XBSETPARAM 0x0C
54 #define CSB_ERROR 0x02
58 #define STAT_READY 0x01
59 #define STAT_INPUT 0x02
60 #define STAT_COMMAND 0x04
61 #define STAT_SELECT 0x08
62 #define STAT_REQUEST 0x10
63 #define STAT_INTERRUPT 0x20
69 #define XD_MAXDRIVES 2
77 #define DEBUG_OVERRIDE
78 #define DEBUG_READWRITE
102 static int xd_manual_geo_init (
char *
command);
105 static u_char xd_initdrives (
void (*init_drive)(
u_char drive));
110 static void xd_recalibrate (
u_char drive);
115 static void xd_watchdog (
unsigned long unused);
120 static void xd_dtc_init_controller (
unsigned int address);
121 static void xd_dtc5150cx_init_drive (
u_char drive);
122 static void xd_dtc_init_drive (
u_char drive);
123 static void xd_wd_init_controller (
unsigned int address);
124 static void xd_wd_init_drive (
u_char drive);
125 static void xd_seagate_init_controller (
unsigned int address);
126 static void xd_seagate_init_drive (
u_char drive);
127 static void xd_omti_init_controller (
unsigned int address);
128 static void xd_omti_init_drive (
u_char drive);
129 static void xd_xebec_init_controller (
unsigned int address);
130 static void xd_xebec_init_drive (
u_char drive);
132 static void xd_override_init_drive (
u_char drive);