1 /*        $NetBSD: sid.h,v 1.22 2017/05/22 17:12:11 ragge Exp $       */
2 
3 /*
4  * Copyright (c) 1994 Ludd, University of Lule}, Sweden.
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 BE LIABLE FOR ANY DIRECT, INDIRECT,
20  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
21  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
22  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
23  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
25  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26  */
27 
28 /*
29  * Board-Type (?_BTYP_?) and Sub-Type (?_STYP_?) are synonima.
30  * Michael Kukat changed this 01/27/2001, STYP is really a subtype now.
31  * other synonima are:
32  */
33 #define cpudata         vax_cpudata
34 #define cputype         vax_cputype
35 #define cpusubtype  vax_boardtype
36 
37 /*
38  * Chip CPU types / chip CPU Subtypes
39  *
40  * The type of a VAX is given by the high-order byte of the System
41  * identification register (SID) and describes families or series of VAXen.
42  * Board-Types/Sub-Types within series are described by the SIED register.
43  */
44 
45 /*
46  * 700 series (1977)
47  */
48 #define VAX_TYP_780 1         /* VAX-11/780, 785, 782 */
49 #define VAX_TYP_750 2         /* VAX-11/750 */
50 #define VAX_TYP_730 3         /* VAX-11/730, 725 */
51 #define VAX_TYP_790 4         /* VAX 8600, 8650 */
52 
53 #define VAX_BTYP_780          0x01000000          /* generic 11/780 */
54 #define VAX_BTYP_750          0x02000000          /* generic 11/750 */
55 #define VAX_BTYP_730          0x03000000          /* generic 11/730 */
56 #define VAX_BTYP_790          0x04000000          /* generic 11/790 */
57 
58 /*
59  * 8000 series (1986)
60  */
61 #define VAX_TYP_8SS 5         /* VAX 8200, 8300, 8250, 8350, VS 8000 */
62 #define VAX_TYP_8NN 6         /* VAX 8530, 8550, 8700, 8800 */
63 
64 #define VAX_BTYP_8000         0x05000000          /* generic VAX 8000 */
65 
66 #define VAX_BTYP_8800         0x06000000          /* generic Nautilus */
67 #define VAX_BTYP_8700         0x06000001
68 #define VAX_BTYP_8550         0x06000006
69 #define VAX_BTYP_8500         0x06000007
70 
71 /*
72  * MicroVAX I (1984)
73  */
74 #define VAX_TYP_UV1 7         /* MicroVAX I, VAXstation I */
75      /* VAX_TYP_610 7 */
76 
77 #define VAX_BTYP_610          0x07000000          /* generic MicroVAX-I */
78 
79 /*
80  * MicroVAX II series (1985)
81  */
82 #define VAX_TYP_UV2 8
83      /* VAX_TYP_78032         8 */
84 
85 #define VAX_BTYP_630          0x08000001          /* MicroVAX II, VAXstation II */
86 #define VAX_BTYP_410          0x08000004          /* MicroVAX 2000, VAXstation 2000 */
87 
88 /*
89  * CVAX chip series (1987)
90  */
91 #define VAX_TYP_CVAX          10
92      /* VAX_TYP_650 10 */
93 
94 
95 #define VAX_BTYP_650          0x0A000001          /* MicroVAX 3500, 3600 */
96      /* VAX_BTYP_65D          0x0A000001             VAXstation 3200, 3500 XXX */
97      /* VAX_BTYP_640          0x0A000001             MicroVAX 3300, 3400 XXX */
98      /* VAX_BTYP_655          0x0A000001             MicroVAX 3800, 3900 XXX */
99 #define VAX_BTYP_9CC          0x0A000002          /* VAX 6000 model 210/310 */
100 #define VAX_BTYP_60 0x0A000003          /* VAXstation 3520, 3540 */
101 #define VAX_BTYP_420          0x0A000004          /* VAXstation 3100 models 10 - 48 */
102 #define   VAX_BTYP_IS1        0x0A000006          /* Infoserver 1000 */
103 #define VAX_BTYP_510          0x0A000007          /* VAXft model 110 */
104      /* VAX_BTYP_520          0x0A000007             VAXft model 310 */
105 
106 /*
107  * SID Extension register definitions for CVAX series
108  */
109 #define   VAX_SIE_KA640       0x2                 /* KA640 MicroVAX 3300, 3400 */
110 #define   VAX_SIE_KA650       0x1                 /* KA650 MicroVAX 3500, 3600 */
111 #define   VAX_SIE_KA655       0x3                 /* KA655 MicroVAX 3800, 3900 */
112 
113 /*
114  * Rigel chip series (1990)
115  */
116 #define VAX_TYP_RIGEL         11
117      /* VAX_TYP_9RR 11 */
118 
119 #define VAX_BTYP_670          0x0B000001          /* VAX 4000 model 300 */
120 #define VAX_BTYP_9RR          0x0B000002          /* VAX 6000 model 410-460 */
121 #define VAX_BTYP_43 0x0B000004          /* VAXstation 3100 model 76 */
122 
123 /*
124  * Aquarius series (1990)
125  */
126 #define VAX_TYP_9000          14
127 
128 #define VAX_BTYP_9AR          0x0E00000?          /* VAX 9000 models 210, 410-440 */
129 #define VAX_BTYP_9AQ          0x0E00000?          /* VAX 9000 models 400-800 */
130 
131 /*
132  * Polarstar series (1988)
133  */
134 #define VAX_TYP_8PS 17
135 
136 #define VAX_BTYP_8PS          0x11000000          /* VAX 8810 to 8840 */
137 
138 /*
139  * Mariah chip series (1991)
140  */
141 #define VAX_TYP_MARIAH        18
142 #define VAX_TYP_V12 18
143 
144 #define VAX_BTYP_1202         0x12000002          /* VAX 6000 model 510-560 */
145 #define VAX_BTYP_46 0x12000004          /* VAXstation 4000/60, 3100/80 */
146 
147 /*
148  * NVAX chip series (1991)
149  */
150 #define VAX_TYP_NVAX          19
151 #define VAX_TYP_V13 19
152 
153 #define VAX_BTYP_680          0x13000001          /* VAX 4000 model [45]00 */
154 #define   VAX_STYP_675        0x0c                /* VAX 4000 model 400 */
155 #define   VAX_STYP_680        0x06                /* VAX 4000 model 500 */
156 #define   VAX_STYP_690        0x07                /* VAX 4000 model 600 */
157 #define VAX_BTYP_1302         0x13000002
158 #define VAX_BTYP_53 0x13000003          /* VAX 4000 model 105x, MV 3100/9x */
159 #define   VAX_STYP_51         0x09                /* MicroVAX 3100 model 90 / 95 */
160 #define   VAX_STYP_52         0x0a                /* VAX 4000 model 100 */
161 #define   VAX_STYP_53         0x0b                /* VAX 4000 model 10[568] */
162 #define   VAX_STYP_55         0x08                /* MicroVAX 3100 model 85 */
163 #define VAX_BTYP_49 0x13000004          /* VAXstation 4000 model 90 */
164 #define   VAX_BTYP_681        0x13000005          /* VAX 4000 model 500A/705A */
165 #define   VAX_STYP_681        0x0e                /* VAX 4000 model 500A */
166 #define   VAX_STYP_691        0x0f                /* VAX 4000 model 605A */
167 #define   VAX_STYP_694        0x10                /* VAX 4000 model 705A */
168 
169 /*
170  * SOC chip series (1991)
171  */
172 #define VAX_TYP_SOC 20
173 #define VAX_TYP_V14 20
174 
175 #define VAX_BTYP_660          0x14000001          /* VAX 4000 model 200 */
176 #define VAX_BTYP_48 0x14000004          /* VAXstation 4000 VLC */
177 #define VAX_BTYP_550          0x14000007          /* VAXft model 410, 610 */
178 #define   VAX_BTYP_VXT        0x14000008          /* VXT 2000 */
179 
180 /*
181  * NVAX+ chip series (1991)
182  */
183 #define VAX_TYP_NVPLUS        23
184 #define VAX_TYP_V17 23
185 
186 #define VAX_BTYP_1701         0x17000001
187 
188 /*
189  * Highest Number supported by NetBSD/VAX
190  */
191 #define VAX_TYP_MAX VAX_TYP_NVAX
192 
193 /*
194  * compatibility with old names:
195  */
196 
197 #define VAX_780               VAX_TYP_780
198 #define VAX_750               VAX_TYP_750
199 #define VAX_730               VAX_TYP_730
200 #define VAX_8600    VAX_TYP_790
201 #define VAX_8200    VAX_TYP_8SS
202 #define VAX_8800    VAX_TYP_8NN
203 #define VAX_610               VAX_TYP_UV1
204 #define VAX_78032   VAX_TYP_UV2
205 #define VAX_650               VAX_TYP_CVAX
206 
207 /*
208  * Some common-used external variables.
209  */
210 extern    int vax_cputype;    /* general, highest byte of the SID-register */
211 extern    int vax_cpudata;    /* general, the contents of the SID-register */
212 extern    int vax_siedata;    /* contents of the SIE register */
213 extern    int vax_bustype;    /* HW-dep., setup at consinit() in ka???.c */
214 extern    int vax_boardtype;  /* HW-dep., msb of SID | SIE (SID-extension) */
215 extern    int vax_confdata;   /* HW-dep., hardware dependent config-data   */
216 
217