#ifndef _DRACO_HARDWARE
#define _DRACO_HARDWARE
#define DRCIABASE 0x02800000
#define DRCIATOP 0x02802000
#define NDRCIAPG ((DRCIATOP - DRCIABASE) / PAGE_SIZE)
#define NDRCCPG (8+1+1)
#define DRCCBASE 0x01000000
#define DRCCSTRIDE 0x00400000
#define DRZ2BASE 0x03000000
#define DRSCSIBASE 0x04000000
#define DR_INTENA (DRCCBASE+0x1)
#define DR_INTPEN (DRCCBASE+0x00400001)
#define DR_INTFRC (DRCCBASE+0x00800001)
#define DRIRQ_GLOBAL 1
#define DRIRQ_SOFT DRIRQ_GLOBAL
#define DRIRQ_SCSI 2
#define DRIRQ_INT2 4
#define DRIRQ_INT6 8
#define DRMISCPG 3
#define DRIOCTLPG 4
#define DRSUPIOPG 5
#define DRCIAPG 6
#define DRKICKPG 7
#define DRSCSIPG 8
#ifdef _KERNEL
#ifndef _LOCORE
extern vaddr_t DRCCADDR;
extern volatile u_int8_t *draco_intena, *draco_intpen, *draco_intfrc;
extern volatile u_int8_t *draco_misc;
extern volatile struct drioct *draco_ioct;
struct drioct {
u_int8_t dum0;
volatile u_int8_t io_control;
#define DRCNTRL_FDCINTENA 1
#define DRCNTRL_KBDDATOUT 2
#define DRCNTRL_KBDCLKOUT 4
#define DRCNTRL_WDOGDIS 8
#define DRCNTRL_WDOGDAT 16
#define DRCNTRL_KBDINTENA 32
#define DRCNTRL_KBDKBDACK 64
#define DRCNTRL_SCSITERM 128
u_int8_t dum1;
volatile u_int8_t io_status;
#define DRSTAT_CLKDAT 1
#define DRSTAT_KBDDATIN 2
#define DRSTAT_KBDCLKIN 4
#define DRSTAT_KBDRECV 8
#define DRSTAT_CLKBUSY 16
#define DRSTAT_BUSTIMO 32
#define DRSTAT_SCSILED 64
u_int8_t dum2;
volatile u_int8_t io_kbddata;
u_int8_t dum3;
volatile u_int8_t io_status2;
#define DRSTAT2_KBDBUSY 1
#define DRSTAT2_PARIRQPEN 4
#define DRSTAT2_PARIRQENA 8
#define DRSTAT2_TMRINTENA 16
#define DRSTAT2_TMRIRQPEN 32
u_int8_t dum4;
volatile u_int8_t io_chiprev;
#define io_timerrst io_chiprev
u_int8_t dum5;
volatile u_int8_t io_timerhi;
u_int8_t dum6;
volatile u_int8_t io_timerlo;
u_int8_t dum7[3];
volatile u_int8_t io_clockw0;
u_int8_t dum8;
volatile u_int8_t io_clockw1;
u_int8_t dum9;
volatile u_int8_t io_clockrst;
u_int8_t dum10;
volatile u_int8_t io_kbdrst;
u_int8_t dum11;
volatile u_int8_t io_bustimeoutrst;
u_int8_t dum12;
volatile u_int8_t io_scsiledrst;
u_int8_t dum13;
volatile u_int8_t io_fdcread;
u_int8_t dum14;
volatile u_int8_t io_parrst;
};
#endif
#endif
#endif