1
2
3
4
5
6
7
8
9
10
11
12
13
14 #ifndef __ASM_MIPS_BOOTINFO_H
15 #define __ASM_MIPS_BOOTINFO_H
16
17
18
19
20 #define MACH_UNKNOWN 0
21 #define MACH_DESKSTATION_RPC44 1
22 #define MACH_DESKSTATION_TYNE 2
23 #define MACH_ACER_PICA_61 3
24 #define MACH_MIPS_MAGNUM_4000 4
25 #define MACH_OLIVETTI_M700 5
26 #define MACH_LAST 5
27
28 #define MACH_NAMES { "unknown", "Deskstation rPC44", "Deskstation Tyne", \
29 "Acer PICA 61", "Mips Magnum 4000", "Olivetti M700" }
30
31
32
33
34 #define CPU_UNKNOWN 0
35 #define CPU_R2000 1
36 #define CPU_R3000 2
37 #define CPU_R3000A 3
38 #define CPU_R3041 4
39 #define CPU_R3051 5
40 #define CPU_R3052 6
41 #define CPU_R3081 7
42 #define CPU_R3081E 8
43 #define CPU_R4000PC 9
44 #define CPU_R4000SC 10
45 #define CPU_R4000MC 11
46 #define CPU_R4200 12
47 #define CPU_R4400PC 13
48 #define CPU_R4400SC 14
49 #define CPU_R4400MC 15
50 #define CPU_R4600 16
51 #define CPU_R6000 17
52 #define CPU_R6000A 18
53 #define CPU_R8000 19
54 #define CPU_R10000 20
55 #define CPU_LAST 20
56
57 #define CPU_NAMES { "unknown", "R2000", "R3000", "R3000A", "R3041", "R3051", \
58 "R3052", "R3081", "R3081E", "R4000PC", "R4000SC", "R4000MC", \
59 "R4200", "R4400PC", "R4400SC", "R4400MC", "R4600", "R6000", \
60 "R6000A", "R8000", "R10000" }
61
62 #define CL_SIZE (80)
63
64 #ifndef __LANGUAGE_ASSEMBLY__
65
66
67
68
69
70
71
72 struct drive_info_struct {
73 char dummy[32];
74 };
75
76 struct bootinfo {
77
78
79
80 unsigned long machtype;
81
82
83
84
85 unsigned long cputype;
86
87
88
89
90 unsigned long memlower;
91 unsigned long memupper;
92
93
94
95
96 unsigned long icache_size;
97 unsigned long icache_linesize;
98 unsigned long dcache_size;
99 unsigned long dcache_linesize;
100 unsigned long scache_size;
101 unsigned long scache_linesize;
102
103
104
105
106 unsigned long tlb_entries;
107
108
109
110
111 unsigned long dma_cache_size;
112 unsigned long dma_cache_base;
113
114
115
116
117 unsigned long ramdisk_flags;
118 unsigned long ramdisk_base;
119
120
121
122
123 unsigned long mount_root_rdonly;
124 struct drive_info_struct drive_info;
125
126
127
128
129 unsigned long vram_base;
130
131 char command_line[CL_SIZE];
132
133 };
134
135 #if 0
136
137
138
139
140
141
142 enum bi_tag {
143
144
145
146 dummy,
147
148
149
150
151 machtype,
152
153
154
155
156 cputype,
157
158
159
160
161 memlower,
162 memupper,
163
164
165
166
167 icache_size,
168 icache_linesize,
169 dcache_size,
170 dcache_linesize,
171 scache_size,
172 scache_linesize,
173
174
175
176
177 tlb_entries,
178
179
180
181
182 dma_cache_size,
183 dma_cache_base,
184
185
186
187
188 ramdisk_size,
189 ramdisk_base,
190
191
192
193
194 mount_root_rdonly,
195 drive_info,
196
197
198
199
200 vram_base,
201
202 command_line
203
204 };
205
206 typedef struct {
207 bi_tag tag;
208 unsigned long size;
209 } tag;
210 #endif
211
212 extern struct bootinfo boot_info;
213
214
215
216
217
218
219
220 #define BOOT_INFO { 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, {{0,}}, 0, "" }
221 #define SCREEN_INFO {0, 0, {0, }, 52, 3, 80, 4626, 3, 9, 50}
222
223 #else
224
225
226
227
228
229
230 #define OFFSET_BOOTINFO_MACHTYPE 0
231 #define OFFSET_BOOTINFO_CPUTYPE 4
232 #define OFFSET_BOOTINFO_MEMLOWER 8
233 #define OFFSET_BOOTINFO_MEMUPPER 12
234 #define OFFSET_BOOTINFO_ICACHE_SIZE 16
235 #define OFFSET_BOOTINFO_ICACHE_LINESIZE 20
236 #define OFFSET_BOOTINFO_DCACHE_SIZE 24
237 #define OFFSET_BOOTINFO_DCACHE_LINESIZE 28
238 #define OFFSET_BOOTINFO_SCACHE_SIZE 32
239 #define OFFSET_BOOTINFO_SCACHE_LINESIZE 36
240 #define OFFSET_BOOTINFO_TLB_ENTRIES 40
241 #define OFFSET_BOOTINFO_DMA_CACHE_SIZE 44
242 #define OFFSET_BOOTINFO_DMA_CACHE_BASE 48
243 #define OFFSET_BOOTINFO_RAMDISK_SIZE 52
244 #define OFFSET_BOOTINFO_RAMDISK_BASE 56
245 #define OFFSET_BOOTINFO_MOUNT_RD_ONLY 60
246 #define OFFSET_BOOTINFO_DRIVE_INFO 64
247 #define OFFSET_BOOTINFO_VRAM_BASE 96
248 #define OFFSET_BOOTINFO_COMMAND_LINE 100
249
250 #endif
251
252 #endif