Chameleon

Chameleon Svn Source Tree

Root/branches/xZenu/src/arch/ppc/include/sl.h

Source at commit 1406 created 12 years 10 months ago.
By meklort, Revert drivers.c so that kexts are only loaded when OSBundleRequired is set and that value is not safe mode. Added some comments about it too.
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
38Memory Map: assumed 96 MB (temporarily bumping to 112 MB for 4359362)
39
40Physical Address
41
42Open Firmware Version 3x, 4x, ...
4300000000 - 00003FFF : Exception Vectors
4400004000 - 057FFFFF : Free Memory
45// 05800000 - 05FFFFFF : OF Image (top 8 MB reserved) [96 MB map]
4606800000 - 06FFFFFF : OF Image (top 8 MB reserved) [112 MB map]
47
48
49Logical Address
50
51// 96 MB map (currently unused - 4363357 tracks re-adoption)
5200000000 - 00003FFF : Exception Vectors
5300004000 - 03FFFFFF : Kernel Image, Boot Struct and Drivers (~64 MB)
5404000000 - 04FFFFFF : File Load Area (16 MB) [80 MB]
5505000000 - 053FFFFF : FS Cache (4 MB) [84 MB]
5605400000 - 055FFFFF : Malloc Zone (2 MB)[86 MB]
5705600000 - 057FFFFF : BootX Image (2 MB)[88 MB]
5805800000 - 05FFFFFF : Unused/OF (8 MB)[96 MB]
59
60// 112 MB map (per 4359362)
6100000000 - 00003FFF : Exception Vectors
6200004000 - 03FFFFFF : Kernel Image, Boot Struct and Drivers (~64 MB)
6304000000 - 05FFFFFF : File Load Area (32 MB) [96 MB]
6406000000 - 063FFFFF : FS Cache (4 MB) [100 MB]
6506400000 - 065FFFFF : Malloc Zone (2 MB)[102 MB]
6606600000 - 067FFFFF : BootX Image (2 MB)[104 MB]
6706800000 - 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
111enum {
112 kUnknownDeviceType = 0,
113 kNetworkDeviceType,
114 kBlockDeviceType
115};
116
117// File Permissions and Types
118enum {
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
148enum {
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
163extern char *gVectorSaveAddr;
164extern long gKernelEntryPoint;
165extern long gDeviceTreeAddr;
166extern long gDeviceTreeSize;
167extern long gBootArgsAddr;
168extern long gBootArgsSize;
169extern long gSymbolTableAddr;
170extern long gSymbolTableSize;
171
172extern long gBootMode;
173extern long gBootDeviceType;
174extern long gBootFileType;
175extern char gHaveKernelCache;
176extern char gBootDevice[256];
177extern char gBootFile[256];
178
179extern char gTempStr[4096];
180
181extern long *gDeviceTreeMMTmp;
182
183extern long gOFVersion;
184
185extern char *gKeyMap;
186
187extern long gRootAddrCells;
188extern long gRootSizeCells;
189
190extern CICell gChosenPH;
191extern CICell gOptionsPH;
192extern CICell gScreenPH;
193extern CICell gMemoryMapPH;
194extern CICell gStdOutPH;
195
196extern CICell gMMUIH;
197extern CICell gMemoryIH;
198extern CICell gStdOutIH;
199extern CICell gKeyboardIH;
200
201#endif /* ! _BOOTX_SL_H_ */
202

Archive Download this file

Revision: 1406