Annotation of sys/arch/hppa/dev/mongoosereg.h, Revision 1.1.1.1
1.1 nbrk 1: /* $OpenBSD: mongoosereg.h,v 1.1 2004/10/29 20:23:37 miod Exp $ */
2:
3: /*
4: * Copyright (c) 1998-2003 Michael Shalayeff
5: * All rights reserved.
6: *
7: * Redistribution and use in source and binary forms, with or without
8: * modification, are permitted provided that the following conditions
9: * are met:
10: * 1. Redistributions of source code must retain the above copyright
11: * notice, this list of conditions and the following disclaimer.
12: * 2. Redistributions in binary form must reproduce the above copyright
13: * notice, this list of conditions and the following disclaimer in the
14: * documentation and/or other materials provided with the distribution.
15: *
16: * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
17: * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
18: * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
19: * IN NO EVENT SHALL THE AUTHOR OR HIS RELATIVES BE LIABLE FOR ANY DIRECT,
20: * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21: * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
22: * SERVICES; LOSS OF MIND, USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
23: * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
24: * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
25: * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
26: * THE POSSIBILITY OF SUCH DAMAGE.
27: */
28:
29: /* EISA Bus Adapter registers definitions */
30: #define MONGOOSE_MONGOOSE 0x10000
31: struct mongoose_regs {
32: u_int8_t version;
33: u_int8_t lock;
34: u_int8_t liowait;
35: u_int8_t clock;
36: u_int8_t reserved[0xf000 - 4];
37: u_int8_t intack;
38: };
39:
40: #define MONGOOSE_CTRL 0x00000
41: #define MONGOOSE_NINTS 16
42: struct mongoose_ctrl {
43: struct dma0 {
44: struct {
45: u_int32_t addr : 8;
46: u_int32_t count: 8;
47: } ch[4];
48: u_int8_t command;
49: u_int8_t request;
50: u_int8_t mask_channel;
51: u_int8_t mode;
52: u_int8_t clr_byte_ptr;
53: u_int8_t master_clear;
54: u_int8_t mask_clear;
55: u_int8_t master_write;
56: u_int8_t pad[8];
57: } dma0;
58:
59: u_int8_t irr0; /* 0x20 */
60: u_int8_t imr0;
61: u_int8_t iack; /* 0x22 -- 2 b2b reads generate
62: (e)isa Iack cycle & returns int level */
63: u_int8_t pad0[29];
64:
65: struct timers {
66: u_int8_t sysclk;
67: u_int8_t refresh;
68: u_int8_t spkr;
69: u_int8_t ctrl;
70: u_int32_t pad;
71: } tmr[2]; /* 0x40 -- timers control */
72: u_int8_t pad1[16];
73:
74: u_int16_t inmi; /* 0x60 NMI control */
75: u_int8_t pad2[30];
76: struct {
77: u_int8_t pad0;
78: u_int8_t ch2;
79: u_int8_t ch3;
80: u_int8_t ch1;
81: u_int8_t pad1;
82: u_int8_t pad2[3];
83: u_int8_t ch0;
84: u_int8_t pad4;
85: u_int8_t ch6;
86: u_int8_t ch7;
87: u_int8_t ch5;
88: u_int8_t pad5[3];
89: u_int8_t pad6[16];
90: } pr; /* 0x80 */
91:
92: u_int8_t irr1; /* 0xa0 */
93: u_int8_t imr1;
94: u_int8_t pad3[30];
95:
96: struct dma1 {
97: struct {
98: u_int32_t addr : 8;
99: u_int32_t pad0 : 8;
100: u_int32_t count: 8;
101: u_int32_t pad1 : 8;
102: } ch[4];
103: u_int8_t command;
104: u_int8_t pad0;
105: u_int8_t request;
106: u_int8_t pad1;
107: u_int8_t mask_channel;
108: u_int8_t pad2;
109: u_int8_t mode;
110: u_int8_t pad3;
111: u_int8_t clr_byte_ptr;
112: u_int8_t pad4;
113: u_int8_t master_clear;
114: u_int8_t pad5;
115: u_int8_t mask_clear;
116: u_int8_t pad6;
117: u_int8_t master_write;
118: u_int8_t pad7;
119: } dma1; /* 0xc0 */
120:
121: u_int8_t master_req; /* 0xe0 master request register */
122: u_int8_t pad4[31];
123:
124: u_int8_t pad5[0x3d0]; /* 0x4d0 */
125: u_int8_t pic0; /* 0 - edge, 1 - level */
126: u_int8_t pic1;
127: u_int8_t pad6[0x460];
128: u_int8_t nmi;
129: u_int8_t nmi_ext;
130: #define MONGOOSE_NMI_BUSRESET 0x01
131: #define MONGOOSE_NMI_IOPORT_EN 0x02
132: #define MONGOOSE_NMI_EN 0x04
133: #define MONGOOSE_NMI_MTMO_EN 0x08
134: #define MONGOOSE_NMI_RES4 0x10
135: #define MONGOOSE_NMI_IOPORT_INT 0x20
136: #define MONGOOSE_NMI_MASTER_INT 0x40
137: #define MONGOOSE_NMI_INT 0x80
138: };
139:
140: #define MONGOOSE_IOMAP 0x100000
CVSweb