alpha: fix objstrip.c compilation warnings
[linux-2.6] / 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, 2003 by Ralf Baechle
7  * Copyright (C) 1995, 1996 Andreas Busse
8  * Copyright (C) 1995, 1996 Stoned Elipot
9  * Copyright (C) 1995, 1996 Paul M. Antoine.
10  */
11 #ifndef _ASM_BOOTINFO_H
12 #define _ASM_BOOTINFO_H
13
14 #include <linux/types.h>
15 #include <asm/setup.h>
16
17 /*
18  * The MACH_GROUP_ IDs are the equivalent to PCI vendor IDs; the remaining
19  * MACH_ values equivalent to product IDs.  As such the numbers do not
20  * necessarily reflect technical relations or similarities between systems.
21  */
22
23 /*
24  * Valid machtype values for group unknown
25  */
26 #define MACH_GROUP_UNKNOWN      0       /* whatever...                  */
27 #define  MACH_UNKNOWN           0       /* whatever...                  */
28
29 /*
30  * Valid machtype values for group JAZZ
31  */
32 #define MACH_GROUP_JAZZ         1       /* Jazz                         */
33 #define  MACH_ACER_PICA_61      0       /* Acer PICA-61 (PICA1)         */
34 #define  MACH_MIPS_MAGNUM_4000  1       /* Mips Magnum 4000 "RC4030"    */
35 #define  MACH_OLIVETTI_M700     2       /* Olivetti M700-10 (-15 ??)    */
36
37 /*
38  * Valid machtype for group DEC
39  */
40 #define MACH_GROUP_DEC          2       /* Digital Equipment            */
41 #define  MACH_DSUNKNOWN         0
42 #define  MACH_DS23100           1       /* DECstation 2100 or 3100      */
43 #define  MACH_DS5100            2       /* DECsystem 5100               */
44 #define  MACH_DS5000_200        3       /* DECstation 5000/200          */
45 #define  MACH_DS5000_1XX        4       /* DECstation 5000/120, 125, 133, 150 */
46 #define  MACH_DS5000_XX         5       /* DECstation 5000/20, 25, 33, 50 */
47 #define  MACH_DS5000_2X0        6       /* DECstation 5000/240, 260     */
48 #define  MACH_DS5400            7       /* DECsystem 5400               */
49 #define  MACH_DS5500            8       /* DECsystem 5500               */
50 #define  MACH_DS5800            9       /* DECsystem 5800               */
51 #define  MACH_DS5900            10      /* DECsystem 5900               */
52
53 /*
54  * Valid machtype for group ARC
55  */
56 #define MACH_GROUP_ARC          3       /* Deskstation                  */
57 #define MACH_DESKSTATION_RPC44  0       /* Deskstation rPC44 */
58 #define MACH_DESKSTATION_TYNE   1       /* Deskstation Tyne */
59
60 /*
61  * Valid machtype for group SNI_RM
62  */
63 #define MACH_GROUP_SNI_RM       4       /* Siemens Nixdorf RM series    */
64 #define  MACH_SNI_RM200_PCI     0       /* RM200/RM300/RM400 PCI series */
65
66 /*
67  * Valid machtype for group ACN
68  */
69 #define MACH_GROUP_ACN          5
70 #define  MACH_ACN_MIPS_BOARD    0       /* ACN MIPS single board        */
71
72 /*
73  * Valid machtype for group SGI
74  */
75 #define MACH_GROUP_SGI          6       /* Silicon Graphics             */
76 #define  MACH_SGI_IP22          0       /* Indy, Indigo2, Challenge S   */
77 #define  MACH_SGI_IP27          1       /* Origin 200, Origin 2000, Onyx 2 */
78 #define  MACH_SGI_IP28          2       /* Indigo2 Impact               */
79 #define  MACH_SGI_IP32          3       /* O2                           */
80 #define  MACH_SGI_IP30          4       /* Octane, Octane2              */
81
82 /*
83  * Valid machtype for group COBALT
84  */
85 #define MACH_GROUP_COBALT       7       /* Cobalt servers               */
86 #define  MACH_COBALT_27         0       /* Proto "27" hardware          */
87
88 /*
89  * Valid machtype for group NEC DDB
90  */
91 #define MACH_GROUP_NEC_DDB      8       /* NEC DDB                      */
92 #define  MACH_NEC_DDB5074       0       /* NEC DDB Vrc-5074 */
93 #define  MACH_NEC_DDB5476       1       /* NEC DDB Vrc-5476 */
94 #define  MACH_NEC_DDB5477       2       /* NEC DDB Vrc-5477 */
95 #define  MACH_NEC_ROCKHOPPER    3       /* Rockhopper base board */
96 #define  MACH_NEC_ROCKHOPPERII  4       /* Rockhopper II base board */
97
98 /*
99  * Valid machtype for group BAGET
100  */
101 #define MACH_GROUP_BAGET        9       /* Baget                        */
102 #define  MACH_BAGET201          0       /* BT23-201 */
103 #define  MACH_BAGET202          1       /* BT23-202 */
104
105 /*
106  * Cosine boards.
107  */
108 #define MACH_GROUP_COSINE      10       /* CoSine Orion                 */
109 #define  MACH_COSINE_ORION      0
110
111 /*
112  * Valid machtype for group MOMENCO
113  */
114 #define MACH_GROUP_MOMENCO      12      /* Momentum Boards              */
115 #define  MACH_MOMENCO_OCELOT    0
116 #define  MACH_MOMENCO_OCELOT_G  1       /* no more supported (may 2007) */
117 #define  MACH_MOMENCO_OCELOT_C  2       /* no more supported (jun 2007) */
118 #define  MACH_MOMENCO_JAGUAR_ATX 3      /* no more supported (may 2007) */
119 #define  MACH_MOMENCO_OCELOT_3  4
120
121 /*
122  * Valid machtype for group PHILIPS
123  */
124 #define MACH_GROUP_PHILIPS     14
125 #define  MACH_PHILIPS_NINO      0       /* Nino */
126 #define  MACH_PHILIPS_VELO      1       /* Velo */
127 #define  MACH_PHILIPS_JBS       2       /* JBS */
128 #define  MACH_PHILIPS_STB810    3       /* STB810 */
129
130 /*
131  * Valid machtype for group SIBYTE
132  */
133 #define MACH_GROUP_SIBYTE       16      /* Sibyte / Broadcom */
134 #define  MACH_SWARM              0
135
136 /*
137  * Valid machtypes for group Toshiba
138  */
139 #define MACH_GROUP_TOSHIBA      17 /* Toshiba Reference Systems TSBREF       */
140 #define  MACH_PALLAS            0
141 #define  MACH_TOPAS             1
142 #define  MACH_JMR               2
143 #define  MACH_TOSHIBA_JMR3927   3       /* JMR-TX3927 CPU/IO board */
144 #define  MACH_TOSHIBA_RBTX4927  4
145 #define  MACH_TOSHIBA_RBTX4937  5
146 #define  MACH_TOSHIBA_RBTX4938  6
147
148 #define GROUP_TOSHIBA_NAMES     { "Pallas", "TopasCE", "JMR", "JMR TX3927", \
149                                   "RBTX4927", "RBTX4937" }
150
151 /*
152  * Valid machtype for group Alchemy
153  */
154 #define MACH_GROUP_ALCHEMY     18       /* AMD Alchemy  */
155 #define  MACH_PB1000            0       /* Au1000-based eval board */
156 #define  MACH_PB1100            1       /* Au1100-based eval board */
157 #define  MACH_PB1500            2       /* Au1500-based eval board */
158 #define  MACH_DB1000            3       /* Au1000-based eval board */
159 #define  MACH_DB1100            4       /* Au1100-based eval board */
160 #define  MACH_DB1500            5       /* Au1500-based eval board */
161 #define  MACH_XXS1500           6       /* Au1500-based eval board */
162 #define  MACH_MTX1              7       /* 4G MTX-1 Au1500-based board */
163 #define  MACH_PB1550            8       /* Au1550-based eval board */
164 #define  MACH_DB1550            9       /* Au1550-based eval board */
165 #define  MACH_PB1200            10       /* Au1200-based eval board */
166 #define  MACH_DB1200            11       /* Au1200-based eval board */
167
168 /*
169  * Valid machtype for group NEC_VR41XX
170  *
171  * Various NEC-based devices.
172  *
173  * FIXME: MACH_GROUPs should be by _MANUFACTURER_ of * the device, not by
174  *        technical properties, so no new additions to this group.
175  */
176 #define MACH_GROUP_NEC_VR41XX  19
177 #define  MACH_NEC_OSPREY        0       /* Osprey eval board */
178 #define  MACH_NEC_EAGLE         1       /* NEC Eagle/Hawk board */
179 #define  MACH_ZAO_CAPCELLA      2       /* ZAO Networks Capcella */
180 #define  MACH_VICTOR_MPC30X     3       /* Victor MP-C303/304 */
181 #define  MACH_IBM_WORKPAD       4       /* IBM WorkPad z50 */
182 #define  MACH_CASIO_E55         5       /* CASIO CASSIOPEIA E-10/15/55/65 */
183 #define  MACH_TANBAC_TB0226     6       /* TANBAC TB0226 (Mbase) */
184 #define  MACH_TANBAC_TB0229     7       /* TANBAC TB0229 (VR4131DIMM) */
185 #define  MACH_NEC_CMBVR4133     8       /* CMB VR4133 Board */
186
187 #define MACH_GROUP_HP_LJ        20      /* Hewlett Packard LaserJet     */
188 #define  MACH_HP_LASERJET       1
189
190 /*
191  * Valid machtype for group TITAN
192  */
193 #define MACH_GROUP_TITAN       22       /* PMC-Sierra Titan             */
194 #define  MACH_TITAN_YOSEMITE    1       /* PMC-Sierra Yosemite          */
195 #define  MACH_TITAN_EXCITE      2       /* Basler eXcite                */
196
197 /*
198  * Valid machtype for group NEC EMMA2RH
199  */
200 #define MACH_GROUP_NEC_EMMA2RH 25       /* NEC EMMA2RH (was 23)         */
201 #define  MACH_NEC_MARKEINS      0       /* NEC EMMA2RH Mark-eins        */
202
203 /*
204  * Valid machtype for group LEMOTE
205  */
206 #define MACH_GROUP_LEMOTE          27
207 #define  MACH_LEMOTE_FULONG        0
208
209 /*
210  * Valid machtype for group PMC-MSP
211  */
212 #define MACH_GROUP_MSP         26       /* PMC-Sierra MSP boards/CPUs    */
213 #define MACH_MSP4200_EVAL       0       /* PMC-Sierra MSP4200 Evaluation */
214 #define MACH_MSP4200_GW         1       /* PMC-Sierra MSP4200 Gateway demo */
215 #define MACH_MSP4200_FPGA       2       /* PMC-Sierra MSP4200 Emulation */
216 #define MACH_MSP7120_EVAL       3       /* PMC-Sierra MSP7120 Evaluation */
217 #define MACH_MSP7120_GW         4       /* PMC-Sierra MSP7120 Residential GW */
218 #define MACH_MSP7120_FPGA       5       /* PMC-Sierra MSP7120 Emulation */
219 #define MACH_MSP_OTHER        255       /* PMC-Sierra unknown board type */
220
221 #define MACH_GROUP_WINDRIVER   28       /* Windriver boards */
222 #define MACH_WRPPMC             1
223
224 #define CL_SIZE                 COMMAND_LINE_SIZE
225
226 const char *get_system_type(void);
227
228 extern unsigned long mips_machtype;
229 extern unsigned long mips_machgroup;
230
231 #define BOOT_MEM_MAP_MAX        32
232 #define BOOT_MEM_RAM            1
233 #define BOOT_MEM_ROM_DATA       2
234 #define BOOT_MEM_RESERVED       3
235
236 /*
237  * A memory map that's built upon what was determined
238  * or specified on the command line.
239  */
240 struct boot_mem_map {
241         int nr_map;
242         struct boot_mem_map_entry {
243                 phys_t addr;    /* start of memory segment */
244                 phys_t size;    /* size of memory segment */
245                 long type;              /* type of memory segment */
246         } map[BOOT_MEM_MAP_MAX];
247 };
248
249 extern struct boot_mem_map boot_mem_map;
250
251 extern void add_memory_region(phys_t start, phys_t size, long type);
252
253 extern void prom_init(void);
254 extern void prom_free_prom_memory(void);
255
256 extern void free_init_pages(const char *what,
257                             unsigned long begin, unsigned long end);
258
259 /*
260  * Initial kernel command line, usually setup by prom_init()
261  */
262 extern char arcs_cmdline[CL_SIZE];
263
264 /*
265  * Registers a0, a1, a3 and a4 as passed to the kernel entry by firmware
266  */
267 extern unsigned long fw_arg0, fw_arg1, fw_arg2, fw_arg3;
268
269 /*
270  * Platform memory detection hook called by setup_arch
271  */
272 extern void plat_mem_setup(void);
273
274 #endif /* _ASM_BOOTINFO_H */