OpenCores
URL https://opencores.org/ocsvn/or1k/or1k/trunk

Subversion Repositories or1k

[/] [or1k/] [trunk/] [rc203soc/] [sw/] [uClinux/] [include/] [asm-mips/] [bootinfo.h] - Blame information for rev 1765

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 1633 jcastillo
/*
2
 * bootinfo.h -- Definition of the Linux/MIPS boot information structure
3
 *
4
 * Copyright (C) 1994 by Waldorf Electronics
5
 * Written by Ralf Baechle and Andreas Busse
6
 *
7
 * Based on Linux/68k linux/include/linux/bootstrap.h
8
 * Copyright (C) 1992 by Greg Harp
9
 *
10
 * This file is subject to the terms and conditions of the GNU General Public
11
 * License.  See the file README.legal in the main directory of this archive
12
 * for more details.
13
 */
14
#ifndef __ASM_MIPS_BOOTINFO_H
15
#define __ASM_MIPS_BOOTINFO_H
16
 
17
/*
18
 * Valid machtype values
19
 */
20
#define MACH_UNKNOWN            0                /* whatever...               */
21
#define MACH_DESKSTATION_RPC44  1               /* Deskstation rPC44         */
22
#define MACH_DESKSTATION_TYNE   2               /* Deskstation Tyne          */
23
#define MACH_ACER_PICA_61       3               /* Acer PICA-61 (PICA1)      */
24
#define MACH_MIPS_MAGNUM_4000   4               /* Mips Magnum 4000 "RC4030" */
25
#define MACH_OLIVETTI_M700      5               /* Olivetti M700 */
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
 * Valid cputype values
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
 * Some machine parameters passed by MILO. Note that bootinfo
68
 * *must* be in the data segment since the kernel clears the
69
 * bss segment directly after startup.
70
 */
71
 
72
struct drive_info_struct {
73
        char dummy[32];
74
        };
75
 
76
struct bootinfo {
77
        /*
78
         * machine type
79
         */
80
        unsigned long machtype;
81
 
82
        /*
83
         * system CPU & FPU
84
         */
85
        unsigned long cputype;
86
 
87
        /*
88
         * Installed RAM
89
         */
90
        unsigned long memlower;
91
        unsigned long memupper;
92
 
93
        /*
94
         * Cache Sizes (0xffffffff = unknown)
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
         * TLB Info
105
         */
106
        unsigned long tlb_entries;
107
 
108
        /*
109
         * DMA buffer size (Deskstation only)
110
         */
111
        unsigned long dma_cache_size;
112
        unsigned long dma_cache_base;
113
 
114
        /*
115
         * Ramdisk Info
116
         */
117
        unsigned long ramdisk_flags;            /* ramdisk flags */
118
        unsigned long ramdisk_base;             /* address of the ram disk in mem */
119
 
120
        /*
121
         * Boot flags for the kernel
122
         */
123
        unsigned long mount_root_rdonly;
124
        struct drive_info_struct drive_info;
125
 
126
        /*
127
         * Video ram info (not in tty.h)
128
         */
129
        unsigned long vram_base;                /* video ram base address */
130
 
131
        char command_line[CL_SIZE];             /* kernel command line parameters */
132
 
133
};
134
 
135
#if 0
136
/*
137
 * New style bootinfo
138
 *
139
 * Add new tags only at the end of the enum; *never* remove any tags
140
 * or you'll break compatibility!
141
 */
142
enum bi_tag {
143
        /*
144
         * not a real tag
145
         */
146
        dummy,
147
 
148
        /*
149
         * machine type
150
         */
151
        machtype,
152
 
153
        /*
154
         * system CPU & FPU
155
         */
156
        cputype,
157
 
158
        /*
159
         * Installed RAM
160
         */
161
        memlower,
162
        memupper,
163
 
164
        /*
165
         * Cache Sizes (0xffffffff = unknown)
166
         */
167
        icache_size,
168
        icache_linesize,
169
        dcache_size,
170
        dcache_linesize,
171
        scache_size,
172
        scache_linesize,
173
 
174
        /*
175
         * TLB Info
176
         */
177
        tlb_entries,
178
 
179
        /*
180
         * DMA buffer size (Deskstation only)
181
         */
182
        dma_cache_size,
183
        dma_cache_base,
184
 
185
        /*
186
         * Ramdisk Info
187
         */
188
        ramdisk_size,           /* ramdisk size in 1024 byte blocks */
189
        ramdisk_base,           /* address of the ram disk in mem */
190
 
191
        /*
192
         * Boot flags for the kernel
193
         */
194
        mount_root_rdonly,
195
        drive_info,
196
 
197
        /*
198
         * Video ram info (not in tty.h)
199
         */
200
        vram_base,              /* video ram base address */
201
 
202
        command_line            /* kernel command line parameters */
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
 * Defaults, may be overwritten by milo. We initialize
216
 * them to make sure that both boot_info and screen_info
217
 * are in the .data segment since the .bss segment is
218
 * cleared during startup.
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 /* !__LANGUAGE_ASSEMBLY__ */
224
 
225
/*
226
 * Same structure, but as offsets for usage within assembler source.
227
 * Don't mess with struct bootinfo without changing offsets too!
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 /* __LANGUAGE_ASSEMBLY__ */
251
 
252
#endif /* __ASM_MIPS_BOOTINFO_H */

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.