Root/
Source at commit 1317 created 12 years 8 months ago. By meklort, Update ppc boot2 file. File now compiles. | |
---|---|
1 | /*␊ |
2 | * Copyright (c) 2000 Apple Computer, Inc. All rights reserved.␊ |
3 | *␊ |
4 | * @APPLE_LICENSE_HEADER_START@␊ |
5 | * ␊ |
6 | * The contents of this file constitute Original Code as defined in and␊ |
7 | * are subject to the Apple Public Source License Version 1.1 (the␊ |
8 | * "License"). You may not use this file except in compliance with the␊ |
9 | * License. Please obtain a copy of the License at␊ |
10 | * http://www.apple.com/publicsource and read it before using this file.␊ |
11 | * ␊ |
12 | * This Original Code and all software distributed under the License are␊ |
13 | * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER␊ |
14 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,␊ |
15 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,␊ |
16 | * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT. Please see the␊ |
17 | * License for the specific language governing rights and limitations␊ |
18 | * under the License.␊ |
19 | * ␊ |
20 | * @APPLE_LICENSE_HEADER_END@␊ |
21 | */␊ |
22 | /*␊ |
23 | * sl.h - Headers for configuring the Secondary Loader␊ |
24 | *␊ |
25 | * Copyright (c) 1998-2005 Apple Computer, Inc.␊ |
26 | *␊ |
27 | * DRI: Josh de Cesare␊ |
28 | */␊ |
29 | ␊ |
30 | #ifndef _BOOTX_SL_H_␊ |
31 | #define _BOOTX_SL_H_␊ |
32 | ␊ |
33 | // i.e. should we put up our failure screen; else back to OF␊ |
34 | #define kFailToBoot (1)␊ |
35 | ␊ |
36 | /*␊ |
37 | ␊ |
38 | Memory Map: assumed 96 MB (temporarily bumping to 112 MB for 4359362)␊ |
39 | ␊ |
40 | Physical Address␊ |
41 | ␊ |
42 | Open Firmware Version 3x, 4x, ...␊ |
43 | 00000000 - 00003FFF : Exception Vectors␊ |
44 | 00004000 - 057FFFFF : Free Memory␊ |
45 | // 05800000 - 05FFFFFF : OF Image (top 8 MB reserved) [96 MB map]␊ |
46 | 06800000 - 06FFFFFF : OF Image (top 8 MB reserved) [112 MB map]␊ |
47 | ␊ |
48 | ␊ |
49 | Logical Address␊ |
50 | ␊ |
51 | // 96 MB map (currently unused - 4363357 tracks re-adoption)␊ |
52 | 00000000 - 00003FFF : Exception Vectors␊ |
53 | 00004000 - 03FFFFFF : Kernel Image, Boot Struct and Drivers (~64 MB)␊ |
54 | 04000000 - 04FFFFFF : File Load Area (16 MB) ␉[80 MB]␊ |
55 | 05000000 - 053FFFFF : FS Cache (4 MB) ␉[84 MB]␊ |
56 | 05400000 - 055FFFFF : Malloc Zone (2 MB)␉[86 MB]␊ |
57 | 05600000 - 057FFFFF : BootX Image (2 MB)␉[88 MB]␊ |
58 | 05800000 - 05FFFFFF : Unused/OF (8 MB)␉[96 MB]␊ |
59 | ␊ |
60 | // 112 MB map (per 4359362)␊ |
61 | 00000000 - 00003FFF : Exception Vectors␊ |
62 | 00004000 - 03FFFFFF : Kernel Image, Boot Struct and Drivers (~64 MB)␊ |
63 | 04000000 - 05FFFFFF : File Load Area (32 MB) ␉[96 MB]␊ |
64 | 06000000 - 063FFFFF : FS Cache (4 MB) ␉[100 MB]␊ |
65 | 06400000 - 065FFFFF : Malloc Zone (2 MB)␉[102 MB]␊ |
66 | 06600000 - 067FFFFF : BootX Image (2 MB)␉[104 MB]␊ |
67 | 06800000 - 06FFFFFF : Unused/OF (8 MB)␉[112 MB]␊ |
68 | */␊ |
69 | ␊ |
70 | #define kVectorAddr (0x00000000)␊ |
71 | #define kVectorSize (0x00004000)␊ |
72 | ␊ |
73 | // OF 3.x␊ |
74 | #define kImageAddr (0x00004000)␊ |
75 | #define kImageSize (0x03FFC000)␊ |
76 | ␊ |
77 | // OF 1.x 2.x␊ |
78 | #define kImageAddr0 (0x00004000)␊ |
79 | #define kImageSize0 (0x002FC000)␊ |
80 | #define kImageAddr1 (0x00300000)␊ |
81 | #define kImageSize1 (0x00200000)␊ |
82 | #define kImageAddr1Phys (0x05800000)␊ |
83 | #define kImageAddr2 (0x00500000)␊ |
84 | #define kImageSize2 (0x03B00000)␊ |
85 | ␊ |
86 | #define kLoadAddr (0x04000000)␊ |
87 | #define kLoadSize (0x02000000)␉// 32 MB @ 64␊ |
88 | #define kMaxMKextSize (0x01000000)␉// only allow 16 MB of drivers␊ |
89 | ␊ |
90 | #define kFSCacheAddr (0x06000000)␊ |
91 | #define kFSCacheSize (0x00400000)␉// 4 MB @ 96␊ |
92 | ␊ |
93 | #define kMallocAddr (0x06400000)␊ |
94 | #define kMallocSize (0x00200000)␉// 2 MB @ 100␊ |
95 | ␊ |
96 | #define kMallocAddr_H (0x06400000)␉// ditto for hibernate␊ |
97 | #define kMallocSize_H (0x00200000)␊ |
98 | #define kImageAddr_H (0x07000000)␉// fallback for hiberate image buffer␊ |
99 | ␊ |
100 | // Default Output Level␊ |
101 | #define kOutputLevelOff (0)␊ |
102 | #define kOutputLevelFull (16)␊ |
103 | ␊ |
104 | // OF versions␊ |
105 | #define kOFVersion1x (0x01000000)␊ |
106 | #define kOFVersion2x (0x02000000)␊ |
107 | #define kOFVersion3x (0x03000000)␊ |
108 | #define kOFVersion4x (0x04000000)␊ |
109 | ␊ |
110 | // Device Types␊ |
111 | enum {␊ |
112 | kUnknownDeviceType = 0,␊ |
113 | kNetworkDeviceType,␊ |
114 | kBlockDeviceType␊ |
115 | };␊ |
116 | ␊ |
117 | // File Permissions and Types␊ |
118 | enum {␊ |
119 | kPermOtherExecute = 1 << 0,␊ |
120 | kPermOtherWrite = 1 << 1,␊ |
121 | kPermOtherRead = 1 << 2,␊ |
122 | kPermGroupExecute = 1 << 3,␊ |
123 | kPermGroupWrite = 1 << 4,␊ |
124 | kPermGroupRead = 1 << 5,␊ |
125 | kPermOwnerExecute = 1 << 6,␊ |
126 | kPermOwnerWrite = 1 << 7,␊ |
127 | kPermOwnerRead = 1 << 8,␊ |
128 | kPermMask = 0x1FF,␊ |
129 | kOwnerNotRoot = 1 << 9,␊ |
130 | kFileTypeUnknown = 0x0 << 16,␊ |
131 | kFileTypeFlat = 0x1 << 16,␊ |
132 | kFileTypeDirectory = 0x2 << 16,␊ |
133 | kFileTypeLink = 0x3 << 16,␊ |
134 | kFileTypeMask = 0x3 << 16␊ |
135 | };␊ |
136 | ␊ |
137 | // Key Numbers␊ |
138 | #define kCommandKey (0x200)␊ |
139 | #define kOptKey (0x201)␊ |
140 | #define kShiftKey (0x202)␊ |
141 | #define kControlKey (0x203)␊ |
142 | #define kDeleteKey (0x204)␊ |
143 | ␊ |
144 | // Mac OS X Booter Signature 'MOSX'␊ |
145 | #define kMacOSXSignature (0x4D4F5358)␊ |
146 | ␊ |
147 | // Boot Modes␊ |
148 | enum {␊ |
149 | kBootModeNormal = 0,␊ |
150 | kBootModeSafe,␊ |
151 | kBootModeSecure␊ |
152 | };␊ |
153 | ␊ |
154 | #include <sys/types.h>␊ |
155 | #include <stdint.h>␊ |
156 | #include <stdio.h>␊ |
157 | ␊ |
158 | #include <ci.h>␊ |
159 | #include <sl_words.h>␊ |
160 | #include <libclite.h>␊ |
161 | ␊ |
162 | // Externs for main.c␊ |
163 | extern char *gVectorSaveAddr;␊ |
164 | extern long gKernelEntryPoint;␊ |
165 | extern long gDeviceTreeAddr;␊ |
166 | extern long gDeviceTreeSize;␊ |
167 | extern long gBootArgsAddr;␊ |
168 | extern long gBootArgsSize;␊ |
169 | extern long gSymbolTableAddr;␊ |
170 | extern long gSymbolTableSize;␊ |
171 | ␊ |
172 | extern long gBootMode;␊ |
173 | extern long gBootDeviceType;␊ |
174 | extern long gBootFileType;␊ |
175 | extern char gHaveKernelCache;␊ |
176 | extern char gBootDevice[256];␊ |
177 | extern char gBootFile[256];␊ |
178 | ␊ |
179 | extern char gTempStr[4096];␊ |
180 | ␊ |
181 | extern long *gDeviceTreeMMTmp;␊ |
182 | ␊ |
183 | extern long gOFVersion;␊ |
184 | ␊ |
185 | extern char *gKeyMap;␊ |
186 | ␊ |
187 | extern long gRootAddrCells;␊ |
188 | extern long gRootSizeCells;␊ |
189 | ␊ |
190 | extern CICell gChosenPH;␊ |
191 | extern CICell gOptionsPH;␊ |
192 | extern CICell gScreenPH;␊ |
193 | extern CICell gMemoryMapPH;␊ |
194 | extern CICell gStdOutPH;␊ |
195 | ␊ |
196 | extern CICell gMMUIH;␊ |
197 | extern CICell gMemoryIH;␊ |
198 | extern CICell gStdOutIH;␊ |
199 | extern CICell gKeyboardIH;␊ |
200 | ␊ |
201 | #endif /* ! _BOOTX_SL_H_ */␊ |
202 |