Chameleon

Chameleon Svn Source Tree

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

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
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: 1317