/[gxemul]/upstream/0.4.4/src/include/dec_5100.h
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Annotation of /upstream/0.4.4/src/include/dec_5100.h

Parent Directory Parent Directory | Revision Log Revision Log


Revision 35 - (hide annotations)
Mon Oct 8 16:21:26 2007 UTC (16 years, 7 months ago) by dpavlin
File MIME type: text/plain
File size: 7634 byte(s)
0.4.4
1 dpavlin 4 /* gxemul: $Id: dec_5100.h,v 1.3 2005/03/05 12:34:02 debug Exp $ */
2     #ifndef DEC_5100_H
3     #define DEC_5100_H
4    
5     /* $NetBSD: kn230.h,v 1.2 1999/03/25 01:17:52 simonb Exp $ */
6    
7     /*
8     * Copyright (c) 1997,1998 Jonathan Stone.
9     * All rights reserved.
10     *
11     * Redistribution and use in source and binary forms, with or without
12     * modification, are permitted provided that the following conditions
13     * are met:
14     * 1. Redistributions of source code must retain the above copyright
15     * notice, this list of conditions and the following disclaimer.
16     * 2. Redistributions in binary form must reproduce the above copyright
17     * notice, this list of conditions and the following disclaimer in the
18     * documentation and/or other materials provided with the distribution.
19     * 3. All advertising materials mentioning features or use of this software
20     * must display the following acknowledgement:
21     * This product includes software developed by Jonathan Stone for
22     * the NetBSD Project.
23     * 4. The name of the author may not be used to endorse or promote products
24     * derived from this software without specific prior written permission.
25     *
26     * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND
27     * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
28     * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
29     * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE
30     * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
31     * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
32     * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
33     * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
34     * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
35     * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
36     * SUCH DAMAGE.
37     */
38    
39    
40     /*
41     * Physical addresses of baseboard devices and registers on the
42     * the DECstation 5100 motherboard (also known as the kn230).
43     *
44     * The only options on the kn230 are two slots for daughterboards.
45     * Each slot can contain an extra four-port dc708x DZ11 clone chip.
46     * Most baseborad chips are the same hardware and at the same
47     * address as the DECstation 3100 (kn01), except:
48     *
49     * The kn230 has more devices than the 3100, so instead
50     * of hardwiring each device to a CPU interrupt line,
51     * the kn230 provides an interrupt-request register (ICSR).
52     * Devices are mapped onto CPU interrupt lines as below:
53     * hardint 5: fpu
54     * hardint 4: reset switch
55     * hardint 3: memory error (write to nonexistent memory)
56     * hardint 2: clock
57     * hardint 1: sii, lance
58     * hardint 0: baseboard DZ, I/O option cards
59     *
60     * the ICSR only indicates which devices are requesting interrupts.
61     * there is no interrupt mask register.
62     *
63     * There is no framebuffer, pcc (cursor), colormap or vdac on a 5100.
64     */
65    
66     #define KN230_SYS_LANCE 0x18000000 /* Lance chip */
67     #define KN230_SYS_LANCE_B_START 0x19000000 /* 64 Kb Lance Buffer */
68     #define KN230_SYS_LANCE_B_END 0x19010000
69    
70     #define KN230_SYS_SII 0x1a000000 /* scsi SII chip */
71     #define KN230_SYS_SII_B_START 0x1b000000 /* 128 Kb SCSI buffer */
72     #define KN230_SYS_SII_B_END 0x1b020000
73    
74     #define KN230_SYS_DZ0 0x1c000000 /* baseboard DZ serial chip */
75    
76     #define KN230_SYS_CLOCK 0x1d000000 /* mc146818 rtc chip */
77    
78     #define KN230_SYS_ICSR 0x1e000000 /* System control register */
79    
80     /*
81     * Interrupt-request bitmasks in the low-order 16 bits of the CSR.
82     * If a bit is set, the corresponding device has an interrupt condition.
83     * There is no equivalent per-device interrupt masking register.
84     * (note: these were LED control bits in the kn01).
85     */
86     #define KN230_CSR_INTR_RESET 0x00004000 /* reset button */
87     #define KN230_CSR_INTR_WMERR 0x00002000 /* badaddr() or write error */
88     #define KN230_CSR_INTR_LANCE 0x00001000 /* lance interrupt */
89     #define KN230_CSR_INTR_SII 0x00000800 /* scsi interrupt */
90     #define KN230_CSR_INTR_OPT1 0x00000400 /* second option DZ */
91     #define KN230_CSR_INTR_OPT0 0x00000200 /* first option DZ */
92     #define KN230_CSR_INTR_DZ0 0x00000100 /* baseboard DZ */
93    
94     /*
95     * kn230 LED control register.
96     * Writing a 1 bit to any bit turns off the corresponding LED.
97     * low bits are or'ed to control registers which have side effects.
98     *
99     * This is sort of like the 3100 CSR only at a different address, and
100     * with the same external-logic hack as the 5000/200 to enable 38.4
101     * baud mode on the baseboard DZ chip.
102     */
103     #define KN230_SYS_CTL_LED 0x14000000 /* LED register */
104     #define KN230_LED7 0x00008000 /* no side effect */
105     #define KN230_LED6 0x00004000 /* no side effect */
106     #define KN230_LED5 0x00002000 /* no side effect */
107     #define KN230_LED4 0x00001000 /* no side effect */
108    
109     #define KN230_LED3 0x00000800 /* Turns off led 3.
110     * Also disables main memory.
111     * enables writes to EEPROM.
112     */
113    
114     #define KN230_LED2 0x00000400 /* Turns off led 2.
115     * 0: forces DZ to run at
116     * 38.4 when 19.2 is selected
117     * 1: is 19.2 means 19.2.
118     */
119    
120     #define KN230_LED1 0x00000200 /* read-only
121     * 0: 8M memory in bank 1
122     * 1: 32M in bank1
123     */
124     #define KN230_LED0 0x00000100
125    
126     /*
127     * Option slot addresses.
128     * dc7084 registers appear here, if present.
129     */
130     #define KN230_SYS_DZ1 0x15000000 /* DZ1 Control and status */
131     #define KN230_SYS_DZ2 0x15200000 /* DZ2 Control and status */
132    
133     /*
134     * Write error address.
135     * Same address as the KN01_SYS_MERR, but with a presence bit for a
136     * PrestoServe option and a secure console-mode the low-order bits.
137     */
138     #define KN230_SYS_WEAR 0x17000000 /* Write-error address reg */
139     #define KN230_WEAR_OPTIONMASK 0x00000001 /* 1 if no card present */
140     #define KN230_WEAR_OPTION_FALSE KN230_WEAR_OPTIONMASK
141     #define KN230_WEAR_OPTION_TRUE 0
142    
143     #define KN230_WEAR_SECUREMASK 0x00000002 /* "1": system is insecure */
144     #define KN230_WEAR_INSECURE KN230_WEAR_SECUREMASK
145     #define KN230_WEAR_SECURE 0
146    
147     /*
148     * various leftover stuff....
149     */
150    
151     /*
152     * Option ID register. Indicates whether options are present.
153     */
154     #define KN230_SYS_OID 0x1f00020c /* option slot ID register */
155     #define KN230_OID_MASK 0x000000ff /* ID number mask */
156     #define KN230_ERRCNT_MASK 0x0000ff00 /* hardware failure count */
157    
158    
159     #define KN230_SYS_PASSWD 0x1f000244 /* password location */
160    
161     /*
162     * NVRAM state defintions.
163     * Used under Ultrix for PrestoServe.
164     */
165     #define KN230_SYS_NVRAM_DIAG 0x1f000300 /* NVRAM diagnostic register */
166     #define KN230_NVRAM_PRESENT 0x00000001
167     #define KN230_NVRAM_TESTFAIL_RO 0x00000002
168     #define KN230_NVRAM_TESTFAIL_RW 0x00000004
169     #define KN230_NVRAM_FAILURE 0x00000008 /* ran out of power anyway? */
170     #define KN230_NVRAM_SIZEMASK 0x000000f0
171    
172     #define KN230_SYS_NVRAM_ADDR 0x1f000304 /* holds addr of NVRAM bank */
173     /*
174     * NVRAM has separete control and status registers for each of
175     * the two motherboard SIMM banks (even and odd),
176     * located at offsets from the value at value at SYS_NVRAM_ADDR.
177     */
178     # define KN230_SYS_NVRAM_EVENBNK_STATUS_OFFSET (0x200000)
179     # define KN230_SYS_NVRAM_ODDBNK_STATUS_OFFSET (0x200000 +4)
180     # define KN230_SYS_NVRAM_EVENBNK_CONTROL_OFFSET (-0x200000)
181     # define KN230_SYS_NVRAM_ODDNK_STATUS_OFFSET (-0x200000+4)
182    
183     /* flags in nvram per-bank status register */
184     #define KN230_NVRAM_BATFAIL 0x00000001 /* battery failure */
185     #define KN230_NVRAM_BATKILL 0x00000002 /* battery kill */
186     /*
187     * To enable the battery, write 0x00 to each nvram control reg.
188     * To disable the battery, write the sequence
189     * 0x01, 0x01, 0x00, 0x00, 0x01
190     * to both per-bank control registers (do banks in parallel, not in sequence).
191     */
192    
193     #endif /* DEC_5100_H */
194    

  ViewVC Help
Powered by ViewVC 1.1.26