FreeBSD/Linux Kernel Cross Reference
sys/chips/atmreg.h
1 /*
2 * Mach Operating System
3 * Copyright (c) 1992 Carnegie Mellon University
4 * All Rights Reserved.
5 *
6 * Permission to use, copy, modify and distribute this software and its
7 * documentation is hereby granted, provided that both the copyright
8 * notice and this permission notice appear in all copies of the
9 * software, derivative works or modified versions, and any portions
10 * thereof, and that both notices appear in supporting documentation.
11 *
12 * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
13 * CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
14 * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
15 *
16 * Carnegie Mellon requests users of this software to return to
17 *
18 * Software Distribution Coordinator or Software.Distribution@CS.CMU.EDU
19 * School of Computer Science
20 * Carnegie Mellon University
21 * Pittsburgh PA 15213-3890
22 *
23 * any improvements or extensions that they make and grant Carnegie Mellon
24 * the rights to redistribute these changes.
25 */
26
27 /*
28 * HISTORY
29 * $Log: atmreg.h,v $
30 * Revision 2.2 93/01/21 12:20:34 danner
31 * Created.
32 * [93/01/19 16:29:41 bershad]
33 *
34 * Revision 2.3 92/07/09 22:53:14 rvb
35 * Minimal support for mapping atm fifo's.
36 * [92/05/12 17:10:10 rvb]
37 *
38 * Revision 2.2 92/04/03 12:08:15 rpd
39 * Created
40 * [92/03/23 rvb]
41 *
42 */
43
44
45 /*** FORE TCA-100 Turbochannel ATM computer interface ***/
46
47 #define RX_COUNT_INTR 0x0001
48 #define RX_EOM_INTR 0x0002
49 #define RX_TIME_INTR 0x0004
50 #define TX_COUNT_INTR 0x0008
51 #define RX_CELL_LOST 0x0010
52 #define RX_NO_CARRIER 0x0020
53 #define CR_RX_ENABLE 0x0040
54 #define CR_TX_ENABLE 0x0080
55 #define CR_RX_RESET 0x0100
56 #define CR_TX_RESET 0x0200
57
58 #define ATM_READ_REG(reg) ((reg) & 0x3ff) /* 10 bit register mask */
59
60
61 struct atm_device {
62 unsigned int prom[64 * 1024 / 4];
63 volatile unsigned int sreg;
64 volatile unsigned int creg_set;
65 volatile unsigned int creg_clr;
66 volatile unsigned int creg;
67 volatile unsigned int rxtimer;
68 unsigned int pad1;
69 volatile unsigned int rxtimerv;
70 unsigned int pad2;
71 volatile unsigned int rxcount;
72 unsigned int pad3;
73 volatile unsigned int rxthresh;
74 unsigned int pad4;
75 volatile unsigned int txcount;
76 unsigned int pad5;
77 volatile unsigned int txthresh;
78 unsigned int pad6[64*1024/4 - 15];
79 volatile unsigned int rxfifo[14];
80 unsigned int pad7[64*1024/4 - 14];
81 volatile unsigned int txfifo[14];
82 unsigned int pad8[64*1024/4 - 14];
83 };
84 /* MUST BE PAGE ALIGNED OR YOU WILL GET KILLED BELOW WITH ATM_INFO */
85
86 struct sar_data {
87 int header;
88 int payload[12];
89 int trailer;
90 };
91
92
93 /*
94 * Information for mapped atm device
95 */
96 typedef struct mapped_atm_info {
97 volatile unsigned int interrupt_count; /* tot interrupts received */
98 volatile unsigned short saved_status_reg; /* copy of status reg from last interrupt */
99 unsigned int hello_world;
100 unsigned wait_event;
101 } *mapped_atm_info_t;
102
103
104
105 #define ATM_DEVICE(p) (struct atm_device*)(p)
106 #define ATM_INFO(p) (mapped_atm_info_t)( (p) + sizeof(struct atm_device) )
107
Cache object: 246cb007fdfaa1c6dd6b08deb47ff59c
|