1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312
|
/*
* This file is subject to the terms and conditions of the GNU General Public
* License. See the file COPYING in the main directory of this archive
* for more details.
*
* Copyright (C) 1995, 1996 by Ralf Baechle, Andreas Busse,
* Stoned Elipot and Paul M. Antoine.
*/
#ifndef _ASM_BOOTINFO_H
#define _ASM_BOOTINFO_H
/*
* Values for machgroup
*/
#define MACH_GROUP_UNKNOWN 0 /* whatever... */
#define MACH_GROUP_JAZZ 1 /* Jazz */
#define MACH_GROUP_DEC 2 /* Digital Equipment */
#define MACH_GROUP_ARC 3 /* Wreckstation Tyne, rPC44, possibly other */
#define MACH_GROUP_SNI_RM 4 /* Siemens Nixdorf RM series */
#define MACH_GROUP_ACN 5
#define MACH_GROUP_SGI 6 /* Silicon Graphics */
#define MACH_GROUP_COBALT 7 /* Cobalt servers */
#define MACH_GROUP_NEC_DDB 8 /* NEC DDB */
#define MACH_GROUP_BAGET 9 /* Baget */
#define MACH_GROUP_COSINE 10 /* CoSine Orion */
#define MACH_GROUP_GALILEO 11 /* Galileo Eval Boards */
#define MACH_GROUP_MOMENCO 12 /* Momentum Boards */
#define MACH_GROUP_ITE 13 /* ITE Semi Eval Boards */
#define MACH_GROUP_PHILIPS 14
#define MACH_GROUP_GLOBESPAN 15 /* Globespan PVR Referrence Board */
#define MACH_GROUP_SIBYTE 16 /* Sibyte Eval Boards */
#define MACH_GROUP_TOSHIBA 17 /* Toshiba Reference Systems TSBREF */
#define MACH_GROUP_ALCHEMY 18 /* Alchemy Semi Eval Boards*/
#define GROUP_NAMES { "unknown", "Jazz", "Digital", "ARC", "SNI", "ACN", \
"SGI", "Cobalt", "NEC DDB", "Baget", "Cosine", "Galileo", "Momentum", \
"ITE", "Philips", "Globepspan", "SiByte", "Toshiba", "Alchemy" }
/*
* Valid machtype values for group unknown (low order halfword of mips_machtype)
*/
#define MACH_UNKNOWN 0 /* whatever... */
#define GROUP_UNKNOWN_NAMES { "unknown" }
/*
* Valid machtype values for group JAZZ
*/
#define MACH_ACER_PICA_61 0 /* Acer PICA-61 (PICA1) */
#define MACH_MIPS_MAGNUM_4000 1 /* Mips Magnum 4000 "RC4030" */
#define MACH_OLIVETTI_M700 2 /* Olivetti M700-10 (-15 ??) */
#define GROUP_JAZZ_NAMES { "Acer PICA 61", "Mips Magnum 4000", "Olivetti M700" }
/*
* Valid machtype for group DEC
*/
#define MACH_DSUNKNOWN 0
#define MACH_DS23100 1 /* DECstation 2100 or 3100 */
#define MACH_DS5100 2 /* DECstation 5100 */
#define MACH_DS5000_200 3 /* DECstation 5000/200 */
#define MACH_DS5000_1XX 4 /* DECstation 5000/120, 125, 133, 150 */
#define MACH_DS5000_XX 5 /* DECstation 5000/20, 25, 33, 50 */
#define MACH_DS5000_2X0 6 /* DECstation 5000/240, 260 */
#define MACH_DS5400 7 /* DECstation 5400 */
#define MACH_DS5500 8 /* DECstation 5500 */
#define MACH_DS5800 9 /* DECstation 5800 */
#define GROUP_DEC_NAMES { "unknown", "DECstation 2100/3100", "DECstation 5100", \
"DECstation 5000/200", "DECstation 5000/1xx", "Personal DECstation 5000/xx", \
"DECstation 5000/2x0", "DECstation 5400", "DECstation 5500", \
"DECstation 5800" }
/*
* Valid machtype for group ARC
*/
#define MACH_DESKSTATION_RPC44 0 /* Deskstation rPC44 */
#define MACH_DESKSTATION_TYNE 1 /* Deskstation Tyne */
#define GROUP_ARC_NAMES { "Deskstation rPC44", "Deskstation Tyne" }
/*
* Valid machtype for group SNI_RM
*/
#define MACH_SNI_RM200_PCI 0 /* RM200/RM300/RM400 PCI series */
#define GROUP_SNI_RM_NAMES { "RM200 PCI" }
/*
* Valid machtype for group ACN
*/
#define MACH_ACN_MIPS_BOARD 0 /* ACN MIPS single board */
#define GROUP_ACN_NAMES { "ACN" }
/*
* Valid machtype for group SGI
*/
#define MACH_SGI_INDY 0 /* R4?K and R5K Indy workstations */
#define MACH_SGI_CHALLENGE_S 1 /* The Challenge S server */
#define MACH_SGI_INDIGO2 2 /* The Indigo2 system */
#define GROUP_SGI_NAMES { "Indy", "Challenge S", "Indigo2" }
/*
* Valid machtype for group COBALT
*/
#define MACH_COBALT_27 0 /* Proto "27" hardware */
#define GROUP_COBALT_NAMES { "Microserver 27" }
/*
* Valid machtype for group NEC DDB
*/
#define MACH_NEC_DDB5074 0 /* NEC DDB Vrc-5074 */
#define MACH_NEC_DDB5476 1 /* NEC DDB Vrc-5476 */
#define MACH_NEC_DDB5477 2 /* NEC DDB Vrc-5477 */
#define GROUP_NEC_DDB_NAMES { "Vrc-5074", "Vrc-5476", "Vrc-5477"}
/*
* Valid machtype for group BAGET
*/
#define MACH_BAGET201 0 /* BT23-201 */
#define MACH_BAGET202 1 /* BT23-202 */
#define GROUP_BAGET_NAMES { "BT23-201", "BT23-202" }
/*
* Cosine boards.
*/
#define MACH_COSINE_ORION 0
#define GROUP_COSINE_NAMES { "Orion" }
/*
* Valid machtype for group GALILEO
*/
#define MACH_EV96100 0 /* EV96100 */
#define MACH_EV64120A 1 /* EV64120A */
#define GROUP_GALILEO_NAMES { "EV96100" , "EV64120A" }
/*
* Valid machtype for group MOMENCO
*/
#define MACH_MOMENCO_OCELOT 0
#define GROUP_MOMENCO_NAMES { "Ocelot" }
/*
* Valid machtype for group ITE
*/
#define MACH_QED_4N_S01B 0 /* ITE8172 based eval board */
#define GROUP_ITE_NAMES { "QED-4N-S01B" } /* the actual board name */
/*
* Valid machtype for group Globespan
*/
#define MACH_IVR 0 /* IVR eval board */
#define GROUP_GLOBESPAN_NAMES { "IVR" } /* the actual board name */
/*
* Valid machtype for group PHILIPS
*/
#define MACH_PHILIPS_NINO 0 /* Nino */
#define MACH_PHILIPS_VELO 1 /* Velo */
#define GROUP_PHILIPS_NAMES { "Nino" , "Velo" }
/*
* Valid machtype for group SIBYTE
*/
#define MACH_SWARM 0
#define GROUP_SIBYTE_NAMES {"SWARM" }
/*
* Valid machtypes for group Toshiba
*/
#define MACH_PALLAS 0
#define MACH_TOPAS 1
#define MACH_JMR 2
#define GROUP_TOSHIBA_NAMES { "Pallas", "TopasCE", "JMR" }
/*
* Valid machtype for group Alchemy
*/
#define MACH_PB1000 0 /* Au1000-based eval board */
#define GROUP_ALCHEMY_NAMES { "PB1000" } /* the actual board name */
/*
* Valid cputype values
*/
#define CPU_UNKNOWN 0
#define CPU_R2000 1
#define CPU_R3000 2
#define CPU_R3000A 3
#define CPU_R3041 4
#define CPU_R3051 5
#define CPU_R3052 6
#define CPU_R3081 7
#define CPU_R3081E 8
#define CPU_R4000PC 9
#define CPU_R4000SC 10
#define CPU_R4000MC 11
#define CPU_R4200 12
#define CPU_R4400PC 13
#define CPU_R4400SC 14
#define CPU_R4400MC 15
#define CPU_R4600 16
#define CPU_R6000 17
#define CPU_R6000A 18
#define CPU_R8000 19
#define CPU_R10000 20
#define CPU_R4300 21
#define CPU_R4650 22
#define CPU_R4700 23
#define CPU_R5000 24
#define CPU_R5000A 25
#define CPU_R4640 26
#define CPU_NEVADA 27 /* RM5230, RM5260 */
#define CPU_RM7000 28
#define CPU_R5432 29
#define CPU_4KC 30
#define CPU_5KC 31
#define CPU_R4310 32
#define CPU_SB1 33
#define CPU_TX3912 34
#define CPU_TX3922 35
#define CPU_TX3927 36
#define CPU_AU1000 37
#define CPU_4KEC 38
#define CPU_4KSC 39
#define CPU_VR41XX 40
#define CPU_LAST 40
#define CPU_NAMES { "unknown", "R2000", "R3000", "R3000A", "R3041", "R3051", \
"R3052", "R3081", "R3081E", "R4000PC", "R4000SC", "R4000MC", \
"R4200", "R4400PC", "R4400SC", "R4400MC", "R4600", "R6000", \
"R6000A", "R8000", "R10000", "R4300", "R4650", "R4700", "R5000", \
"R5000A", "R4640", "Nevada", "RM7000", "R5432", "MIPS 4Kc", \
"MIPS 5Kc", "R4310", "SiByte SB1", "TX3912", "TX3922", "TX3927", \
"Au1000", "MIPS 4KEc", "MIPS 4KSc", "NEC Vr41xx" }
#define COMMAND_LINE_SIZE 256
#define BOOT_MEM_MAP_MAX 32
#define BOOT_MEM_RAM 1
#define BOOT_MEM_ROM_DATA 2
#define BOOT_MEM_RESERVED 3
#ifndef __ASSEMBLY__
/*
* Some machine parameters passed by the bootloaders.
*/
struct drive_info_struct {
char dummy[32];
};
/* This is the same as in Milo but renamed for the sake of kernel's */
/* namespace */
typedef struct mips_arc_DisplayInfo { /* video adapter information */
unsigned short cursor_x;
unsigned short cursor_y;
unsigned short columns;
unsigned short lines;
} mips_arc_DisplayInfo;
/* default values for drive info */
#define DEFAULT_DRIVE_INFO { {0,}}
/*
* These are the kernel variables initialized from
* the tag. And they have to be initialized to dummy/default
* values in setup.c (or whereever suitable) so they are in
* .data section
*/
extern struct mips_cpu mips_cpu;
extern unsigned long mips_machtype;
extern unsigned long mips_machgroup;
extern unsigned long mips_tlb_entries;
/*
* A memory map that's built upon what was determined
* or specified on the command line.
*/
struct boot_mem_map {
int nr_map;
struct {
unsigned long addr; /* start of memory segment */
unsigned long size; /* size of memory segment */
long type; /* type of memory segment */
} map[BOOT_MEM_MAP_MAX];
};
extern struct boot_mem_map boot_mem_map;
extern void add_memory_region(unsigned long start, unsigned long size,
long type);
#endif /* !__ASSEMBLY__ */
#endif /* _ASM_BOOTINFO_H */
|