summaryrefslogtreecommitdiff
path: root/chips/atmreg.h
diff options
context:
space:
mode:
authorThomas Bushnell <thomas@gnu.org>1997-02-25 21:28:37 +0000
committerThomas Bushnell <thomas@gnu.org>1997-02-25 21:28:37 +0000
commitf07a4c844da9f0ecae5bbee1ab94be56505f26f7 (patch)
tree12b07c7e578fc1a5f53dbfde2632408491ff2a70 /chips/atmreg.h
Initial source
Diffstat (limited to 'chips/atmreg.h')
-rw-r--r--chips/atmreg.h89
1 files changed, 89 insertions, 0 deletions
diff --git a/chips/atmreg.h b/chips/atmreg.h
new file mode 100644
index 0000000..a895783
--- /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) )
+