diff options
Diffstat (limited to 'chips/atmreg.h')
-rw-r--r-- | chips/atmreg.h | 89 |
1 files changed, 89 insertions, 0 deletions
diff --git a/chips/atmreg.h b/chips/atmreg.h new file mode 100644 index 00000000..a8957837 --- /dev/null +++ b/chips/atmreg.h @@ -0,0 +1,89 @@ +/* + * Mach Operating System + * Copyright (c) 1992 Carnegie Mellon University + * All Rights Reserved. + * + * Permission to use, copy, modify and distribute this software and its + * documentation is hereby granted, provided that both the copyright + * notice and this permission notice appear in all copies of the + * software, derivative works or modified versions, and any portions + * thereof, and that both notices appear in supporting documentation. + * + * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS" + * CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR + * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE. + * + * Carnegie Mellon requests users of this software to return to + * + * Software Distribution Coordinator or Software.Distribution@CS.CMU.EDU + * School of Computer Science + * Carnegie Mellon University + * Pittsburgh PA 15213-3890 + * + * any improvements or extensions that they make and grant Carnegie Mellon + * the rights to redistribute these changes. + */ + +/*** FORE TCA-100 Turbochannel ATM computer interface ***/ + +#define RX_COUNT_INTR 0x0001 +#define RX_EOM_INTR 0x0002 +#define RX_TIME_INTR 0x0004 +#define TX_COUNT_INTR 0x0008 +#define RX_CELL_LOST 0x0010 +#define RX_NO_CARRIER 0x0020 +#define CR_RX_ENABLE 0x0040 +#define CR_TX_ENABLE 0x0080 +#define CR_RX_RESET 0x0100 +#define CR_TX_RESET 0x0200 + +#define ATM_READ_REG(reg) ((reg) & 0x3ff) /* 10 bit register mask */ + + +struct atm_device { + unsigned int prom[64 * 1024 / 4]; + volatile unsigned int sreg; + volatile unsigned int creg_set; + volatile unsigned int creg_clr; + volatile unsigned int creg; + volatile unsigned int rxtimer; + unsigned int pad1; + volatile unsigned int rxtimerv; + unsigned int pad2; + volatile unsigned int rxcount; + unsigned int pad3; + volatile unsigned int rxthresh; + unsigned int pad4; + volatile unsigned int txcount; + unsigned int pad5; + volatile unsigned int txthresh; + unsigned int pad6[64*1024/4 - 15]; + volatile unsigned int rxfifo[14]; + unsigned int pad7[64*1024/4 - 14]; + volatile unsigned int txfifo[14]; + unsigned int pad8[64*1024/4 - 14]; +}; +/* MUST BE PAGE ALIGNED OR YOU WILL GET KILLED BELOW WITH ATM_INFO */ + +struct sar_data { + int header; + int payload[12]; + int trailer; +}; + + +/* + * Information for mapped atm device + */ +typedef struct mapped_atm_info { + volatile unsigned int interrupt_count; /* tot interrupts received */ + volatile unsigned short saved_status_reg; /* copy of status reg from last interrupt */ + unsigned int hello_world; + unsigned wait_event; +} *mapped_atm_info_t; + + + +#define ATM_DEVICE(p) (struct atm_device*)(p) +#define ATM_INFO(p) (mapped_atm_info_t)( (p) + sizeof(struct atm_device) ) + |