more changes on original files
[linux-2.4.git] / include / asm-mips / bootinfo.h
1 /*
2  * This file is subject to the terms and conditions of the GNU General Public
3  * License.  See the file COPYING in the main directory of this archive
4  * for more details.
5  *
6  * Copyright (C) 1995, 1996 by Ralf Baechle, Andreas Busse,
7  *                             Stoned Elipot and Paul M. Antoine.
8  */
9 #ifndef _ASM_BOOTINFO_H
10 #define _ASM_BOOTINFO_H
11
12 #include <linux/types.h>
13
14 /*
15  * Values for machgroup
16  */
17 #define MACH_GROUP_UNKNOWN      0 /* whatever...                            */
18 #define MACH_GROUP_JAZZ         1 /* Jazz                                   */
19 #define MACH_GROUP_DEC          2 /* Digital Equipment                      */
20 #define MACH_GROUP_ARC          3 /* Wreckstation Tyne, rPC44, possibly other */
21 #define MACH_GROUP_SNI_RM       4 /* Siemens Nixdorf RM series              */
22 #define MACH_GROUP_ACN          5
23 #define MACH_GROUP_SGI          6 /* Silicon Graphics                       */
24 #define MACH_GROUP_COBALT       7 /* Cobalt servers                         */
25 #define MACH_GROUP_NEC_DDB      8 /* NEC DDB                                */
26 #define MACH_GROUP_BAGET        9 /* Baget                                  */
27 #define MACH_GROUP_COSINE      10 /* CoSine Orion                           */
28 #define MACH_GROUP_GALILEO     11 /* Galileo Eval Boards                    */
29 #define MACH_GROUP_MOMENCO     12 /* Momentum Boards                        */
30 #define MACH_GROUP_ITE         13 /* ITE Semi Eval Boards                   */
31 #define MACH_GROUP_PHILIPS     14
32 #define MACH_GROUP_GLOBESPAN   15 /* Globespan PVR Referrence Board         */
33 #define MACH_GROUP_SIBYTE      16 /* Sibyte Eval Boards                     */
34 #define MACH_GROUP_TOSHIBA     17 /* Toshiba Reference Systems TSBREF       */
35 #define MACH_GROUP_ALCHEMY     18 /* Alchemy Semi Eval Boards               */
36 #define MACH_GROUP_NEC_VR41XX  19 /* NEC Vr41xx based boards/gadgets        */
37 #define MACH_GROUP_HP_LJ       20 /* Hewlett Packard LaserJet               */
38 #define MACH_GROUP_LASAT       21
39 #define MACH_GROUP_TITAN       22 /* PMC-Sierra Titan                       */
40
41 /*
42  * Valid machtype values for group unknown (low order halfword of mips_machtype)
43  */
44 #define MACH_UNKNOWN            0       /* whatever...                  */
45
46 /*
47  * Valid machtype values for group JAZZ
48  */
49 #define MACH_ACER_PICA_61       0       /* Acer PICA-61 (PICA1)         */
50 #define MACH_MIPS_MAGNUM_4000   1       /* Mips Magnum 4000 "RC4030"    */
51 #define MACH_OLIVETTI_M700      2       /* Olivetti M700-10 (-15 ??)    */
52
53 /*
54  * Valid machtype for group DEC
55  */
56 #define MACH_DSUNKNOWN          0
57 #define MACH_DS23100            1       /* DECstation 2100 or 3100      */
58 #define MACH_DS5100             2       /* DECsystem 5100               */
59 #define MACH_DS5000_200         3       /* DECstation 5000/200          */
60 #define MACH_DS5000_1XX         4       /* DECstation 5000/120, 125, 133, 150 */
61 #define MACH_DS5000_XX          5       /* DECstation 5000/20, 25, 33, 50 */
62 #define MACH_DS5000_2X0         6       /* DECstation 5000/240, 260     */
63 #define MACH_DS5400             7       /* DECsystem 5400               */
64 #define MACH_DS5500             8       /* DECsystem 5500               */
65 #define MACH_DS5800             9       /* DECsystem 5800               */
66 #define MACH_DS5900             10      /* DECsystem 5900               */
67
68 /*
69  * Valid machtype for group ARC
70  */
71 #define MACH_DESKSTATION_RPC44  0       /* Deskstation rPC44 */
72 #define MACH_DESKSTATION_TYNE   1       /* Deskstation Tyne */
73
74 /*
75  * Valid machtype for group SNI_RM
76  */
77 #define MACH_SNI_RM200_PCI      0       /* RM200/RM300/RM400 PCI series */
78
79 /*
80  * Valid machtype for group ACN
81  */
82 #define MACH_ACN_MIPS_BOARD     0       /* ACN MIPS single board        */
83
84 /*
85  * Valid machtype for group SGI
86  */
87 #define MACH_SGI_IP22           0       /* Indy, Indigo2, Challenge S */
88 #define MACH_SGI_IP27           1       /* Origin 200, Origin 2000, Onyx 2 */
89 #define MACH_SGI_IP28           2       /* Indigo2 Impact */
90 #define MACH_SGI_IP32           3       /* O2 */
91
92 /*
93  * Valid machtype for group COBALT
94  */
95 #define MACH_COBALT_27          0       /* Proto "27" hardware */
96
97 /*
98  * Valid machtype for group NEC DDB
99  */
100 #define MACH_NEC_DDB5074        0       /* NEC DDB Vrc-5074 */
101 #define MACH_NEC_DDB5476        1       /* NEC DDB Vrc-5476 */
102 #define MACH_NEC_DDB5477        2       /* NEC DDB Vrc-5477 */
103 #define MACH_NEC_ROCKHOPPER     3       /* Rockhopper base board */
104 #define MACH_NEC_ROCKHOPPERII   4       /* Rockhopper II base board */
105
106 /*
107  * Valid machtype for group BAGET
108  */
109 #define MACH_BAGET201           0       /* BT23-201 */
110 #define MACH_BAGET202           1       /* BT23-202 */
111
112 /*
113  * Cosine boards.
114  */
115 #define MACH_COSINE_ORION       0
116
117 /*
118  * Valid machtype for group GALILEO
119  */
120 #define MACH_EV96100            0       /* EV96100 */
121 #define MACH_EV64120A           1       /* EV64120A */
122
123 /*
124  * Valid machtype for group MOMENCO
125  */
126 #define MACH_MOMENCO_OCELOT             0
127 #define MACH_MOMENCO_OCELOT_G           1
128 #define MACH_MOMENCO_OCELOT_C           2
129 #define MACH_MOMENCO_JAGUAR_ATX         3
130
131 /*
132  * Valid machtype for group ITE
133  */
134 #define MACH_QED_4N_S01B        0       /* ITE8172 based eval board */
135
136 /*
137  * Valid machtype for group Globespan
138  */
139 #define MACH_IVR                0       /* IVR eval board */
140
141 /*
142  * Valid machtype for group PHILIPS
143  */
144 #define MACH_PHILIPS_NINO       0       /* Nino */
145 #define MACH_PHILIPS_VELO       1       /* Velo */
146
147 /*
148  * Valid machtype for group SIBYTE
149  */
150 #define MACH_SWARM              0
151
152 /*
153  * Valid machtypes for group Toshiba
154  */
155 #define MACH_PALLAS             0
156 #define MACH_TOPAS              1
157 #define MACH_JMR                2
158 #define MACH_TOSHIBA_JMR3927    3       /* JMR-TX3927 CPU/IO board */
159 #define MACH_TOSHIBA_RBTX4927   4
160 #define MACH_TOSHIBA_RBTX4937   5
161 #define GROUP_TOSHIBA_NAMES     { "Pallas", "TopasCE", "JMR", "JMR TX3927", \
162                                   "RBTX4927", "RBTX4937" }
163
164 /*
165  * Valid machtype for group LASAT
166  */
167 #define MACH_LASAT_100          0       /* Masquerade II/SP100/SP50/SP25 */
168 #define MACH_LASAT_200          1       /* Masquerade PRO/SP200 */
169
170 /*
171  * Valid machtype for group Alchemy
172  */
173 #define MACH_PB1000             0       /* Au1000-based eval board */
174 #define MACH_PB1100             1       /* Au1100-based eval board */
175 #define MACH_PB1500             2       /* Au1500-based eval board */
176 #define MACH_DB1000             3       /* Au1000-based eval board */
177 #define MACH_DB1100             4       /* Au1100-based eval board */
178 #define MACH_DB1500             5       /* Au1500-based eval board */
179 #define MACH_XXS1500            6       /* Au1500-based eval board */
180 #define MACH_MTX1               7       /* 4G MTX-1 Au1500-based board */
181 #define MACH_CSB250             8       /* Cogent Au1500 */
182 #define MACH_PB1550             9       /* Au1550-based eval board */
183
184 /*
185  * Valid machtype for group NEC_VR41XX
186  */
187 #define MACH_NEC_OSPREY         0       /* Osprey eval board */
188 #define MACH_NEC_EAGLE          1       /* NEC Eagle/Hawk board */
189 #define MACH_ZAO_CAPCELLA       2       /* ZAO Networks Capcella */
190 #define MACH_VICTOR_MPC30X      3       /* Victor MP-C303/304 */
191 #define MACH_IBM_WORKPAD        4       /* IBM WorkPad z50 */
192 #define MACH_CASIO_E55          5       /* CASIO CASSIOPEIA E-10/15/55/65 */
193 #define MACH_TANBAC_TB0226      6       /* TANBAC TB0226 (MBASE) */
194 #define MACH_TANBAC_TB0229      7       /* TANBAC TB0229 (VR4131DIMM) */
195
196 /*
197  * Valid machtype for group TITAN
198  */
199 #define MACH_TITAN_YOSEMITE     1       /* PMC-Sierra Yosemite */
200
201 #define CL_SIZE                 (256)
202
203 const char *get_system_type(void);
204
205 extern unsigned long mips_machtype;
206 extern unsigned long mips_machgroup;
207
208 #define BOOT_MEM_MAP_MAX        32
209 #define BOOT_MEM_RAM            1
210 #define BOOT_MEM_ROM_DATA       2
211 #define BOOT_MEM_RESERVED       3
212
213 /*
214  * A memory map that's built upon what was determined
215  * or specified on the command line.
216  */
217 struct boot_mem_map {
218         int nr_map;
219         struct {
220                 phys_t addr;    /* start of memory segment */
221                 phys_t size;    /* size of memory segment */
222                 long type;              /* type of memory segment */
223         } map[BOOT_MEM_MAP_MAX];
224 };
225
226 extern struct boot_mem_map boot_mem_map;
227
228 extern void add_memory_region(phys_t start, phys_t size, long type);
229
230 #endif /* _ASM_BOOTINFO_H */