Chameleon

Chameleon Commit Details

Date:2012-09-11 23:54:45 (11 years 7 months ago)
Author:ErmaC
Commit:2060
Parents: 2059
Message:sync with trunk merge charm boot option http://forge.voodooprojects.org/p/chameleon/source/commit/2052/
Changes:
D/branches/ErmaC/Trunk/i386/md
M/branches/ErmaC/Trunk/i386/libsaio/bootargs.h
M/branches/ErmaC/Trunk/i386/libsaio/spd.c
M/branches/ErmaC/Trunk/i386/boot2/options.c
M/branches/ErmaC/Trunk/package/builddmg.sh
M/branches/ErmaC/Trunk/i386/libsaio/device_inject.h
M/branches/ErmaC/Trunk/i386/libsaio/xml.c
M/branches/ErmaC/Trunk/doc/BootHelp.txt
M/branches/ErmaC/Trunk/i386/Cconfig
M/branches/ErmaC/Trunk/i386/boot2/boot.c
M/branches/ErmaC/Trunk/package/buildpkg.sh
M/branches/ErmaC/Trunk/Make.rules
M/branches/ErmaC/Trunk/i386/Makefile
M/branches/ErmaC/Trunk/i386/libsaio/nvidia.c
M/branches/ErmaC/Trunk/i386/boot2/boot.h
M/branches/ErmaC/Trunk/CHANGES
M/branches/ErmaC/Trunk/i386/libsaio/bootstruct.h
M/branches/ErmaC/Trunk/i386/libsaio/ati.c
M/branches/ErmaC/Trunk/Chameleon.xcodeproj/project.pbxproj

File differences

branches/ErmaC/Trunk/Chameleon.xcodeproj/project.pbxproj
9999
100100
101101
102
102103
103104
104105
......
14631464
14641465
14651466
1466
1467
1468
1469
14701467
14711468
14721469
......
32283225
32293226
32303227
3231
32323228
32333229
32343230
......
33583354
33593355
33603356
3357
33613358
33623359
33633360
......
38523849
38533850
38543851
3855
3856
3857
3858
3859
3860
3861
3862
3863
3864
3865
38663852
38673853
38683854
......
42924278
42934279
42944280
4295
4281
42964282
42974283
42984284
......
51065092
51075093
51085094
5095
51095096
51105097
51115098
......
51205107
51215108
51225109
5110
51235111
51245112
51255113
36AB75E814BD095E005B8045 /* PowerManagement.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = PowerManagement.txt; path = OptionalSettings/PowerManagement.txt; sourceTree = "<group>"; };
36AB75E914BD095E005B8045 /* Resolution.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = Resolution.txt; path = OptionalSettings/Resolution.txt; sourceTree = "<group>"; };
36AB75EA14BD095E005B8045 /* Video.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = Video.txt; path = OptionalSettings/Video.txt; sourceTree = "<group>"; };
36B0F58515FD7E95009E3EF4 /* bootargs.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = bootargs.h; sourceTree = "<group>"; };
65ED53931204B83200B22507 /* disk.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = disk.h; sourceTree = "<group>"; };
6DBAFD1313B0D21E0047ED33 /* modules_support.s */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; path = modules_support.s; sourceTree = "<group>"; };
6DBAFD1413B0D21E0047ED33 /* modules.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = modules.c; sourceTree = "<group>"; };
B45260B4153EFCF60018E994 /* po4a-chameleon.cfg */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = "po4a-chameleon.cfg"; sourceTree = "<group>"; };
B484E1CD15E19F08005E977B /* ld_classic */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.executable"; path = ld_classic; sourceTree = "<group>"; };
B484E1CE15E19F08005E977B /* ld_classic.1 */ = {isa = PBXFileReference; lastKnownFileType = text.man; path = ld_classic.1; sourceTree = "<group>"; };
B484E1E415E19F85005E977B /* Cconfig */ = {isa = PBXFileReference; lastKnownFileType = text; name = Cconfig; path = md/Cconfig; sourceTree = "<group>"; };
B484E1E515E19F85005E977B /* Makefile */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.make; name = Makefile; path = md/Makefile; sourceTree = "<group>"; };
B484E1E615E19F85005E977B /* md.1 */ = {isa = PBXFileReference; lastKnownFileType = text.man; name = md.1; path = md/md.1; sourceTree = "<group>"; };
B484E1E715E19F85005E977B /* md.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = md.c; path = md/md.c; sourceTree = "<group>"; };
B49234A91571906A00F168C2 /* freebsd.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = freebsd.c; sourceTree = "<group>"; };
B49234AA1571906A00F168C2 /* freebsd.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = freebsd.h; sourceTree = "<group>"; };
B49234AB1571906A00F168C2 /* gma.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = gma.c; sourceTree = "<group>"; };
B0056D1611F3868000754B65 /* libsa */,
B0056D2411F3868000754B65 /* libsaio */,
B0056D7611F3868000754B65 /* Makefile */,
B484E1E315E19F6E005E977B /* md */,
A3561CAB1414024C00E9B51E /* modules */,
B0056D7911F3868000754B65 /* util */,
);
B0056D2C11F3868000754B65 /* bios.h */,
B0056D2D11F3868000754B65 /* bios.s */,
B0056D2E11F3868000754B65 /* biosfn.c */,
36B0F58515FD7E95009E3EF4 /* bootargs.h */,
B0056D2F11F3868000754B65 /* bootstruct.c */,
B0056D3011F3868000754B65 /* bootstruct.h */,
B0056D3111F3868000754B65 /* cache.c */,
path = bin;
sourceTree = "<group>";
};
B484E1E315E19F6E005E977B /* md */ = {
isa = PBXGroup;
children = (
B484E1E415E19F85005E977B /* Cconfig */,
B484E1E515E19F85005E977B /* Makefile */,
B484E1E615E19F85005E977B /* md.1 */,
B484E1E715E19F85005E977B /* md.c */,
);
name = md;
sourceTree = "<group>";
};
B4AABE5814C3B8B90055ECD1 /* AddOption */ = {
isa = PBXGroup;
children = (
08FB7793FE84155DC02AAC07 /* Project object */ = {
isa = PBXProject;
attributes = {
LastUpgradeCheck = 0420;
LastUpgradeCheck = 0440;
};
buildConfigurationList = 1DEB919308733D9F0010E9CD /* Build configuration list for PBXProject "Chameleon" */;
compatibilityVersion = "Xcode 3.2";
1DEB919008733D9F0010E9CD /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
COMBINE_HIDPI_IMAGES = YES;
COPY_PHASE_STRIP = NO;
DEBUGGING_SYMBOLS = YES;
GCC_DYNAMIC_NO_PIC = NO;
1DEB919108733D9F0010E9CD /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
COMBINE_HIDPI_IMAGES = YES;
COPY_PHASE_STRIP = YES;
OTHER_CFLAGS = "";
OTHER_LDFLAGS = "";
branches/ErmaC/Trunk/i386/libsaio/xml.c
270270
271271
272272
273
273
274274
275275
276276
int i;
s++;
for ( i = 0; i < sizeof(ents); i++)
for ( i = 0; i < sizeof(ents)/sizeof(ents[0]); i++)
{
if ( strncmp(s, ents[i].name, ents[i].nameLen) == 0 )
{
branches/ErmaC/Trunk/i386/libsaio/bootstruct.h
4242
4343
4444
45
4645
4746
4847
//#define FB_TEXT_MODE 2
/*
* Maximum number of boot drivers that can be loaded.
*/
branches/ErmaC/Trunk/i386/libsaio/bootargs.h
11
22
33
4
54
65
76
......
2322
2423
2524
26
2725
2826
2927
......
4543
4644
4745
48
49
46
47
5048
5149
5250
......
5755
5856
5957
60
58
6159
6260
6361
......
8078
8179
8280
83
81
82
8483
8584
8685
......
9392
9493
9594
96
97
95
96
9897
9998
10099
101100
102101
103
104
102
103
105104
106105
107106
......
109108
110109
111110
112
113
111
112
114113
115
114
115
116116
117117
118
119
120
121
122
118
123119
124
120
125121
126122
127123
128124
129
125
130126
131
127
132128
133129
134
130
135131
136132
137
133
138134
139135
140
141
136
142137
143
144
138
139
140
141
145142
146143
147
148
149
150
151
152
153
154
155
156
144
145
157146
158
147
148
149
150
151
152
153
154
159155
160156
161
157
158
159
160
161
162162
163
163
164164
165165
166166
167167
168
168
169169
170
170
171171
172172
173
173
174174
175175
176
176
177177
178178
179
180
179181
180
181
182
183
182
183
184184
185185
186
187
188
189
190186
187
188
189
190
191
192
193
194
195
196
191197
192198
193199
/*
* Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
*
* @APPLE_OSREFERENCE_LICENSE_HEADER_START@
*
* This file contains Original Code and/or Modifications of Original Code
* as defined in and that are subject to the Apple Public Source License
* Please see the License for the specific language governing rights and
* limitations under the License.
*
* @APPLE_OSREFERENCE_LICENSE_HEADER_END@
*/
#ifndef _PEXPERT_I386_BOOT_H
#define _PEXPERT_I386_BOOT_H
enum {
kEfiReservedMemoryType= 0,
kEfiLoaderCode= 1,
kEfiLoaderData= 2,
kEfiLoaderCode= 1,
kEfiLoaderData= 2,
kEfiBootServicesCode= 3,
kEfiBootServicesData= 4,
kEfiRuntimeServicesCode= 5,
kEfiACPIMemoryNVS= 10,
kEfiMemoryMappedIO= 11,
kEfiMemoryMappedIOPortSpace = 12,
kEfiPalCode= 13,
kEfiPalCode= 13,
kEfiMaxMemoryType= 14
};
* Video information..
*/
struct Boot_Video {
struct Boot_Video
{
uint32_tv_baseAddr;/* Base address of video memory */
uint32_tv_display;/* Display Code (if Applicable */
uint32_tv_rowBytes;/* Number of bytes per pixel row */
/* Values for v_display */
#define GRAPHICS_MODE1
#define FB_TEXT_MODE2
#define GRAPHICS_MODE1
#define FB_TEXT_MODE2
/* Boot argument structure - passed into Mach kernel at boot time.
* "Revision" can be incremented for compatible changes
*/
// Lion
#define kBootArgsRevision0
#define kBootArgsVersion2
#define kBootArgsRevision0
#define kBootArgsVersion2
// Snow Leopard and older
#define kBootArgsPreLionRevision6
/* Snapshot constants of previous revisions that are supported */
#define kBootArgsEfiMode3232
#define kBootArgsEfiMode6464
#define kBootArgsEfiMode3232
#define kBootArgsEfiMode6464
typedef struct boot_args {
typedef struct boot_args_pre_lion
{
uint16_t Revision;/* Revision of boot_args structure */
uint16_t Version;/* Version of boot_args structure */
uint8_t efiMode; /* 32 = 32-bit, 64 = 64-bit */
uint8_t debugMode; /* Bit field with behavior changes */
uint8_t __reserved1[2];
char CommandLine[BOOT_LINE_LENGTH];/* Passed in command line */
uint32_t MemoryMap; /* Physical address of memory map */
uint32_t MemoryMapSize;
uint32_t MemoryMapDescriptorSize;
uint32_t MemoryMapDescriptorVersion;
Boot_VideoVideo;/* Video Information */
uint32_t deviceTreeP; /* Physical address of flattened device tree */
uint32_t deviceTreeLength; /* Length of flattened tree */
uint32_t kaddr; /* Physical address of beginning of kernel text */
uint32_t ksize; /* Size of combined kernel text+data+efi */
uint32_t efiRuntimeServicesPageStart; /* physical address of defragmented runtime pages */
uint32_t efiRuntimeServicesPageCount;
uint64_t efiRuntimeServicesVirtualPageStart; /* virtual address of defragmented runtime pages */
uint32_t efiSystemTable; /* physical address of system table in runtime area */
uint32_t __reserved2;
uint8_t efiMode; /* 32 = 32-bit, 64 = 64-bit */
uint8_t __reserved1[3];
uint32_t __reserved2[1];
uint32_t performanceDataStart; /* physical address of log */
uint32_t performanceDataSize;
uint32_t keyStoreDataStart; /* physical address of key store data */
uint32_t keyStoreDataSize;
uint64_tbootMemStart;
uint64_tbootMemSize;
uint64_t PhysicalMemorySize;
uint64_t FSBFrequency;
uint32_t __reserved4[734];
} boot_args;
uint64_t efiRuntimeServicesVirtualPageStart; /* virtual address of defragmented runtime pages */
uint32_t __reserved3[2];
typedef struct boot_args_pre_lion {
} boot_args_pre_lion;
/* Bitfields for boot_args->flags */
#define kBootArgsFlagRebootOnPanic (1 << 0)
#define kBootArgsFlagHiDPI (1 << 1)
typedef struct boot_args
{
uint16_t Revision;/* Revision of boot_args structure */
uint16_t Version;/* Version of boot_args structure */
uint8_t efiMode; /* 32 = 32-bit, 64 = 64-bit */
uint8_t debugMode; /* Bit field with behavior changes */
uint16_t flags;
char CommandLine[BOOT_LINE_LENGTH];/* Passed in command line */
uint32_t MemoryMap; /* Physical address of memory map */
uint32_t MemoryMapSize;
uint32_t MemoryMapDescriptorSize;
uint32_t MemoryMapDescriptorVersion;
Boot_VideoVideo;/* Video Information */
uint32_t deviceTreeP; /* Physical address of flattened device tree */
uint32_t deviceTreeLength; /* Length of flattened tree */
uint32_t kaddr; /* Physical address of beginning of kernel text */
uint32_t ksize; /* Size of combined kernel text+data+efi */
uint32_t efiRuntimeServicesPageStart; /* physical address of defragmented runtime pages */
uint32_t efiRuntimeServicesPageCount;
uint64_t efiRuntimeServicesVirtualPageStart; /* virtual address of defragmented runtime pages */
uint32_t efiSystemTable; /* physical address of system table in runtime area */
uint8_t efiMode; /* 32 = 32-bit, 64 = 64-bit */
uint8_t __reserved1[3];
uint32_t __reserved2[1];
uint8_t __reserved1[2];
uint32_t __reserved2;
uint32_t performanceDataStart; /* physical address of log */
uint32_t performanceDataSize;
uint64_t efiRuntimeServicesVirtualPageStart; /* virtual address of defragmented runtime pages */
uint32_t __reserved3[2];
} boot_args_pre_lion;
uint32_t keyStoreDataStart; /* physical address of key store data */
uint32_t keyStoreDataSize;
uint64_tbootMemStart;
uint64_tbootMemSize;
uint64_t PhysicalMemorySize;
uint64_t FSBFrequency;
uint32_t __reserved4[734];
} boot_args;
extern char gMacOSVersion[8];
#endif /* _PEXPERT_I386_BOOT_H */
branches/ErmaC/Trunk/i386/libsaio/spd.c
287287
288288
289289
290
291
290
291
292292
293293
294294
/* Read from smbus the SPD content and interpret it for detecting memory attributes */
static void read_smb_intel(pci_dt_t *smbus_dev)
{
int i, speed;
uint8_t spd_size, spd_type;
uint16_t speed;
uint8_t i, spd_size, spd_type;
uint32_t base, mmio, hostc;
//bool dump = false;
RamSlotInfo_t* slot;
branches/ErmaC/Trunk/i386/libsaio/device_inject.h
4747
4848
4949
50
50
5151
52
52
5353
5454
5555
{
uint32_t length;
uint16_t numentries;
uint16_t WHAT2;// 0x0000 ?
uint16_t WHAT2;// 0x0000 ?
struct ACPIDevPath acpi_dev_path;// = 0x02010c00 0xd041030a
struct PCIDevPath pci_dev_path[MAX_PCI_DEV_PATHS]; // = 0x01010600 func dev
struct PCIDevPath pci_dev_path[MAX_PCI_DEV_PATHS];// = 0x01010600 func dev
struct DevicePathEnd path_end;// = 0x7fff0400
uint8_t *data;
branches/ErmaC/Trunk/i386/libsaio/nvidia.c
15471547
15481548
15491549
1550
1550
15511551
1552
15521553
1554
15531555
1556
15541557
15551558
1559
15561560
1561
1562
15571563
15581564
15591565
1566
1567
1568
15601569
15611570
15621571
......
15801589
15811590
15821591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
15831603
15841604
15851605
......
16021622
16031623
16041624
1625
1626
16051627
16061628
16071629
......
28112833
28122834
28132835
2814
2836
28152837
28162838
28172839
......
34303452
34313453
34323454
3455
34333456
34343457
{ 0x10DE1180,0x104383F7,"Asus GTX 680 Direct CU II" },
{ 0x10DE1180,0x10DE0969,"nVidia GTX 680" },
{ 0x10DE1180,0x10DE097A,"nVidia GeForce GTX 680" },
{ 0x10DE1180,0x118010B0,"Gainward GTX 680" },
{ 0x10DE1180,0x10B01180,"Gainward GTX 680" },
{ 0x10DE1180,0x1458353C,"GV-N680OC-2GD WindForce GTX 680 OC" },
{ 0x10DE1180,0x14622820,"MSi N680GTX TwinFrozer" },
{ 0x10DE1180,0x14622830,"MSi GTX 680 Lightning" },
{ 0x10DE1180,0x14622831,"MSi GTX 680 Lightning LN2" },
{ 0x10DE1180,0x15691180,"Palit GTX 680 JetStream" },
{ 0x10DE1180,0x15691181,"Palit GTX 680 JetStream" },
{ 0x10DE1180,0x15691189,"Palit GTX 680 JetStream" },
{ 0x10DE1180,0x174B1255,"PC Partner GeForce GTX 680" },
{ 0x10DE1180,0x196E0969,"PNY GTX 680" },
{ 0x10DE1180,0x19DA1255,"Zotac GTX 680" },
{ 0x10DE1180,0x19DA1260,"Zotac GTX680" },
{ 0x10DE1180,0x1ACC684A,"Point of View GTX 680" },
{ 0x10DE1180,0x38421582,"EVGA GTX 680" },
{ 0x10DE1180,0x38422680,"EVGA GTX 680" },
{ 0x10DE1180,0x38422682,"EVGA GTX 680 SC" },
{ 0x10DE1180,0x38422683,"EVGA GTX 680 SC" },
{ 0x10DE1180,0x38422686,"EVGA GTX 680" },
{ 0x10DE1180,0x38422689,"EVGA GTX 680" },
{ 0x10DE1183,0x10DE1000,"nVidia GTX 660 Ti" },
{ 0x10DE1183,0x14622843,"MSi GTX 660 Ti" },
// 1190 - 119F
// 11A0 - 11AF
// 11B0 - 11BF
{ 0x10DE11BC,0x1028053F,"Dell Quadro K5000M" },
{ 0x10DE11BC,0x1028153F,"Dell Quadro K5000M" },
{ 0x10DE11BC,0x10CF1762,"Fujitsu Quadro K5000M" },
{ 0x10DE11BC,0x15580270,"Clevo Quadro K5000M" },
{ 0x10DE11BC,0x15580371,"Clevo Quadro K5000M" },
{ 0x10DE11BD,0x10CF1761,"Fujitsu Quadro K4000M" },
{ 0x10DE11BE,0x10CF1760,"Fujitsu Quadro K3000M" },
{ 0x10DE11BE,0x15585105,"Clevo Quadro K3000M" },
{ 0x10DE11BE,0x15587102,"Clevo Quadro K3000M" },
// 11C0 - 11CF
// 11D0 - 11DF
// 11E0 - 11EF
{ 0x10DE1206,0x10DE0958,"nVidia GeForce GTX 555" },
{ 0x10DE1207,0x174B0645,"PC Partner GeForce GT 645" },
{ 0x10DE1210,0x10431487,"Asus GeForce GTX 570M" },
{ 0x10DE1210,0x10432104,"Asus GeForce GTX 570M" },
{ 0x10DE1210,0x1179FB12,"Toshiba GeForce GTX 570M" },
int has_lvds = false;
uint8_t channel1 = 0, channel2 = 0;
for (i = 0; i < num_outputs; i++)
{
if (entries[i].type == 3)
memcpy(stringdata, (uint8_t*)devprop_generate_string(string), string->length);
stringlength = string->length;
free(rom);
return true;
}
branches/ErmaC/Trunk/i386/libsaio/ati.c
233233
234234
235235
236
237
238236
239237
240238
......
256254
257255
258256
257
259258
260259
261260
......
488487
489488
490489
490
491491
492492
493493
......
523523
524524
525525
526
526527
527528
528529
......
630631
631632
632633
634
633635
634636
635637
636638
637
638639
639640
640641
......
668669
669670
670671
672
673
671674
672675
673676
......
789792
790793
791794
795
792796
793797
794798
{ 0x94C1,0x11101462, CHIP_FAMILY_RV610,"ATI Radeon HD 2400 XT", kNull},
{ 0x94C3,0x03421002, CHIP_FAMILY_RV610,"ATI Radeon HD 2400 PRO", kNull},
{ 0x94C3,0x94C31002, CHIP_FAMILY_RV610,"ATI Radeon HD 2400 PRO", kNull},
{ 0x94C3,0x01011A93, CHIP_FAMILY_RV610,"Qimonda Radeon HD 2400 PRO",kNull},
{ 0x94C3,0x03021028, CHIP_FAMILY_RV610,"ATI Radeon HD 2400 PRO", kNull},
{ 0x94C3,0x03421002, CHIP_FAMILY_RV610,"ATI Radeon HD 2400 PRO", kNull},
{ 0x94C3,0x3000174B, CHIP_FAMILY_RV610,"ATI Radeon HD 2350", kNull},
{ 0x94C3,0x30001787, CHIP_FAMILY_RV610,"ATI Radeon HD 2350", kNull},
{ 0x94C3,0x37161642, CHIP_FAMILY_RV610,"ATI Radeon HD 2400 PRO", kNull},
{ 0x94C3,0x94C31002, CHIP_FAMILY_RV610,"ATI Radeon HD 2400 PRO", kNull},
{ 0x94C3,0xE370174B, CHIP_FAMILY_RV610,"ATI Radeon HD 2400 PRO", kNull},
{ 0x94C3,0xE400174B, CHIP_FAMILY_RV610,"ATI Radeon HD 2400 PRO", kNull},
{ 0x68BA,0x31531682, CHIP_FAMILY_JUNIPER,"AMD Radeon HD 6770", kVervet},
{ 0x68BA,0xE144174B, CHIP_FAMILY_JUNIPER,"AMD Radeon HD 6770", kVervet},
{ 0x68BE,0x200A1787, CHIP_FAMILY_JUNIPER,"HIS ATI 5750", kVervet},
{ 0x68BE,0x22881787, CHIP_FAMILY_JUNIPER,"ATI Radeon HD 5750", kVervet},
{ 0x68BE,0x3000148C, CHIP_FAMILY_JUNIPER,"ATI Radeon HD 6750", kNull},
{ 0x68BE,0x3000174B, CHIP_FAMILY_JUNIPER,"ATI Radeon HD 6750", kNull},
{ 0x68C1,0x042E1025, CHIP_FAMILY_REDWOOD,"ATI Mobility Radeon HD 5650",kNull},
{ 0x68C1,0x042F1025, CHIP_FAMILY_REDWOOD,"ATI Mobility Radeon HD 5650",kNull},
{ 0x68C1,0x9071104D, CHIP_FAMILY_REDWOOD,"ATI Mobility Radeon HD 5650",kEulemur},
{ 0x68C1,0x1449103C, CHIP_FAMILY_REDWOOD,"ATI Mobility Radeon HD 5650",kEulemur},
{ 0x68C1,0xFD001179, CHIP_FAMILY_REDWOOD,"ATI Mobility Radeon HD 5650",kEulemur},
{ 0x68C1,0xFD121179, CHIP_FAMILY_REDWOOD,"ATI Mobility Radeon HD 5650",kEulemur},
{ 0x68C1,0xFD501179, CHIP_FAMILY_REDWOOD,"ATI Mobility Radeon HD 5650",kEulemur},
{ 0x68F9,0x00021019, CHIP_FAMILY_CEDAR,"ATI Radeon HD 5450", kNull},
{ 0x68F9,0x00191019, CHIP_FAMILY_CEDAR,"ATI Radeon HD 6350", kNull},
{ 0x68F9,0x010E1002, CHIP_FAMILY_CEDAR,"ATI Radeon HD 5450", kEulemur},
{ 0x68F9,0x010E1028, CHIP_FAMILY_CEDAR,"ATI Radeon HD 5450", kNull},
{ 0x68F9,0x03741043, CHIP_FAMILY_CEDAR,"ATI Radeon HD 5450", kEulemur},
{ 0x68F9,0x03CA1043, CHIP_FAMILY_CEDAR,"ATI Radeon HD 5450", kEulemur},
{ 0x68F9,0x05181025, CHIP_FAMILY_CEDAR,"ATI Radeon HD 5450", kNull},
{ 0x68F9,0x05191025, CHIP_FAMILY_CEDAR,"ATI Radeon HD 5450", kNull},
{ 0x68F9,0x010E1028, CHIP_FAMILY_CEDAR,"ATI Radeon HD 5450", kNull},
{ 0x68F9,0x174B3000, CHIP_FAMILY_CEDAR,"ATI Radeon HD 6230", kNull},
{ 0x68F9,0x174B6250, CHIP_FAMILY_CEDAR,"ATI Radeon HD 6250", kNull},
{ 0x68F9,0x174B6290, CHIP_FAMILY_CEDAR,"ATI Radeon HD 6290", kNull},
{ 0x68F9,0x301217AF, CHIP_FAMILY_CEDAR,"ATI Radeon HD 5490", kNull},
{ 0x68F9,0x301317AF, CHIP_FAMILY_CEDAR,"ATI Radeon HD 5470", kNull},
{ 0x68F9,0x301417AF, CHIP_FAMILY_CEDAR,"ATI Radeon HD 6350", kNull},
{ 0x68F9,0x30321682, CHIP_FAMILY_CEDAR,"ATI Radeon HD 5450",kEulemur},
{ 0x68F9,0x303A1682, CHIP_FAMILY_CEDAR,"ATI Radeon HD 5450",kEulemur},
{ 0x68F9,0x3580103C, CHIP_FAMILY_CEDAR,"ATI Radeon HD 5450", kNull},
{ 0x68F9,0x360217AA, CHIP_FAMILY_CEDAR,"ATI Radeon HD 5450", kEulemur},
{ 0x68F9,0x360317AA, CHIP_FAMILY_CEDAR,"ATI Radeon HD 5450", kEulemur},
{ 0x6741,0x9080104D, CHIP_FAMILY_TURKS,"AMD Radeon HD 6630M", kNull},
{ 0x6758,0x00121028, CHIP_FAMILY_TURKS,"AMD Radeon HD 6670", kBulrushes},
{ 0x6758,0x0B0E1002, CHIP_FAMILY_TURKS,"AMD Radeon HD 6670", kPithecia},
{ 0x6758,0x0B0E1028, CHIP_FAMILY_TURKS,"AMD Radeon HD 6670", kBulrushes},
{ 0x6758,0x20121787, CHIP_FAMILY_TURKS,"AMD Radeon HD 6670", kPithecia},
{ 0x6758,0x20141787, CHIP_FAMILY_TURKS,"AMD Radeon HD 6670", kBulrushes},
branches/ErmaC/Trunk/i386/boot2/boot.c
123123
124124
125125
126
126
127127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
128145
129146
130147
......
185202
186203
187204
205
188206
207
189208
209
190210
191
211
192212
193213
194214
......
204224
205225
206226
207
227
228
208229
209230
210231
......
234255
235256
236257
258
237259
238
260
261
262
239263
240264
241265
242266
243267
244268
245
269
270
246271
247272
248273
......
262287
263288
264289
265
290
291
266292
267293
268294
......
272298
273299
274300
275
301
302
276303
277304
305
278306
307
279308
280309
281310
......
297326
298327
299328
329
300330
331
301332
302333
303334
......
307338
308339
309340
341
310342
343
311344
312345
313346
{
intret;
entry_tkernelEntry;
bootArgs->kaddr = bootArgs->ksize = 0;
{
bool KPRebootOption = false;
bool HiDPIOption = false;
getBoolForKey(kRebootOnPanic, &KPRebootOption, &bootInfo->chameleonConfig);
if (KPRebootOption == true)
{
bootArgs->flags |= kBootArgsFlagRebootOnPanic;
}
getBoolForKey(kEnableHiDPI, &HiDPIOption, &bootInfo->chameleonConfig);
if (HiDPIOption == true)
{
bootArgs->flags |= kBootArgsFlagHiDPI;
}
}
execute_hook("ExecKernel", (void*)binary, NULL, NULL, NULL);
ret = DecodeKernel(binary,
// This will draw the boot graphics unless we are in
// verbose mode.
if (gVerboseMode)
{
setVideoMode( GRAPHICS_MODE, 0 );
}
else
{
drawBootGraphics();
}
setupBooterLog();
finalizeBootStruct();
startprog( kernelEntry, bootArgs );
}
else {
else
{
// Notify modules that the kernel is about to be started
execute_hook("Kernel Start", (void*)kernelEntry, (void*)bootArgsPreLion, NULL, NULL);
// Use specify kernel cache file if not empty
if (cacheFile[0] != 0)
{
strlcpy(kernelCacheFile, cacheFile, sizeof(kernelCacheFile));
else {
}
else
{
// Lion and Mountain Lion prelink kernel cache file
if ((checkOSVersion("10.7")) || (checkOSVersion("10.8")))
{
sprintf(kernelCacheFile, "%skernelcache", kDefaultCachePathSnow);
}
// Snow Leopard prelink kernel cache file
else if (checkOSVersion("10.6")) {
else if (checkOSVersion("10.6"))
{
sprintf(kernelCacheFile, "kernelcache_%s", (archCpuType == CPU_TYPE_I386)
? "i386" : "x86_64");
int lnam = strlen(kernelCacheFile) + 9; //with adler32
}
}
}
else {
else
{
// Reset cache name.
bzero(gCacheNameAdler + 64, sizeof(gCacheNameAdler) - 64);
sprintf(gCacheNameAdler + 64, "%s,%s", gRootDevice, bootInfo->bootFile);
}
/* Issue: http://forge.voodooprojects.org/p/chameleon/issues/270/
// kernelCacheFile must start with a /
if (kernelCacheFile[0] != '/') {
if (kernelCacheFile[0] != '/')
{
char *str = strdup(kernelCacheFile);
if (str == NULL)
{
return -1;
}
sprintf(kernelCacheFile, "/%s", str);
free(str);
}
sprintf(kernelCachePath, "com.apple.boot.S%s", kernelCacheFile);
ret = GetFileInfo(NULL, kernelCachePath, &flags, &cachetime);
if ((flags & kFileTypeMask) != kFileTypeFlat)
{
ret = -1;
}
}
}
}
strcpy(kernelCachePath, kernelCacheFile);
ret = GetFileInfo(NULL, kernelCachePath, &flags, &cachetime);
if ((flags & kFileTypeMask) != kFileTypeFlat)
{
ret = -1;
}
}
// Exit if kernel cache file wasn't found
branches/ErmaC/Trunk/i386/boot2/boot.h
163163
164164
165165
166
167
168
169
166170
167171
168172
/* cosmo1: added these keys */
#define kEnableHDMIAudio"EnableHDMIAudio"/*ati.c && nvidia.c */
/* cparm: added these keys */
#define kRebootOnPanic"RebootOnPanic"
#define kEnableHiDPI"EnableHiDPI"// enable High resolution display (aka Retina)
/*
* Flags to the booter or kernel
*/
branches/ErmaC/Trunk/i386/boot2/options.c
210210
211211
212212
213
213
214214
215
216
217
215
216
217
218
219
220
218221
219
222
223
224
220225
221
226
222227
223228
224
225
226
227
229
230
231
232
233
234
235
236
237
228238
229239
230240
......
11301140
11311141
11321142
1133
1134
1143
11351144
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
11451154
1146
1155
11471156
1148
1157
11491158
1150
1159
11511160
1152
1153
1154
1155
1156
1157
1161
1162
1163
1164
1165
1166
1167
1168
1169
11581170
1159
1160
1161
1162
1171
1172
11631173
1164
1165
1174
1175
11661176
1167
1168
1177
11691178
1170
1171
1172
1179
11731180
11741181
11751182
......
13451352
13461353
13471354
1348
1355
1356
13491357
13501358
13511359
13521360
1353
1354
1355
1361
1362
1363
13561364
13571365
13581366
1359
1360
1367
1368
1369
1370
13611371
13621372
13631373
......
13671377
13681378
13691379
1370
1380
1381
13711382
13721383
13731384
1374
1375
1385
1386
1387
1388
13761389
13771390
13781391
13791392
1380
1393
1394
13811395
13821396
1383
1397
1398
13841399
13851400
13861401
13871402
13881403
13891404
1390
1405
1406
13911407
1392
1408
1409
1410
13931411
13941412
13951413
13961414
1397
1415
1416
13981417
13991418
1400
1419
1420
14011421
14021422
1403
1404
1423
1424
1425
1426
14051427
1406
1428
1429
1430
14071431
14081432
14091433
......
14131437
14141438
14151439
1416
1440
1441
14171442
1418
1443
1444
1445
14191446
14201447
14211448
......
14271454
14281455
14291456
1430
1457
1458
14311459
14321460
14331461
14341462
14351463
14361464
1437
1465
1466
14381467
14391468
14401469
......
14611490
14621491
14631492
1464
1493
1494
14651495
1466
1496
1497
14671498
14681499
14691500
......
14721503
14731504
14741505
1475
1506
1507
1508
14761509
14771510
14781511
......
14801513
14811514
14821515
1483
1516
1517
14841518
14851519
14861520
1487
1521
1522
1523
14881524
14891525
14901526
1491
1527
1528
1529
14921530
14931531
14941532
14951533
14961534
14971535
1498
1536
1537
14991538
15001539
1501
1540
1541
1542
15021543
15031544
15041545
......
15111552
15121553
15131554
1514
1555
1556
15151557
1516
1558
1559
1560
15171561
15181562
15191563
clearScreenRows( row, kScreenLastRow );
}
//clearBootArgs();
clearBootArgs();
if (visible) {
if (bootArgs->Video.v_display == VGA_TEXT_MODE) {
if (gEnableCDROMRescan) {
if (visible)
{
if (bootArgs->Video.v_display == VGA_TEXT_MODE)
{
if (gEnableCDROMRescan)
{
printf( bootRescanPrompt );
} else {
}
else
{
printf( bootPrompt );
printf( gBootArgs );
printf( gBootArgs );
}
}
} else {
if (bootArgs->Video.v_display != VGA_TEXT_MODE) {
//clearGraphicBootPrompt();
} else {
}
else
{
if (bootArgs->Video.v_display != VGA_TEXT_MODE)
{
clearGraphicBootPrompt();
}
else
{
printf("Press Enter to start up the foreign OS. ");
}
}
// Maximum config table value size
#define VALUE_SIZE 2048
int
processBootOptions()
int processBootOptions()
{
const char *cp = gBootArgs;
const char *val = 0;
const char *kernel;
int cnt;
int userCnt;
int cntRemaining;
char *argP;
char *configKernelFlags;
char *valueBuffer;
const char *cp = gBootArgs;
const char *val = 0;
const char *kernel;
int cnt;
int userCnt;
int cntRemaining;
char *argP;
char *configKernelFlags;
char *valueBuffer;
valueBuffer = malloc(VALUE_SIZE);
valueBuffer = malloc(VALUE_SIZE);
skipblanks( &cp );
skipblanks( &cp );
// Update the unit and partition number.
// Update the unit and partition number.
if ( gBootVolume )
{
if (!( gBootVolume->flags & kBVFlagNativeBoot ))
{
readBootSector( gBootVolume->biosdev, gBootVolume->part_boff,
(void *) 0x7c00 );
if ( gBootVolume )
{
if (!( gBootVolume->flags & kBVFlagNativeBoot ))
{
readBootSector( gBootVolume->biosdev, gBootVolume->part_boff, (void *) 0x7c00 );
//
// Setup edx, and signal intention to chain load the
// foreign booter.
//
//
// Setup edx, and signal intention to chain load the
// foreign booter.
//
chainbootdev = gBootVolume->biosdev;
chainbootflag = 1;
chainbootdev = gBootVolume->biosdev;
chainbootflag = 1;
return 1;
}
return 1;
}
setRootVolume(gBootVolume);
setRootVolume(gBootVolume);
}
}
// If no boot volume fail immediately because we're just going to fail
// trying to load the config file anyway.
else
intline_offset;
intc;
if (bootArgs->Video.v_display != VGA_TEXT_MODE) {
if (bootArgs->Video.v_display != VGA_TEXT_MODE)
{
showInfoBox( "Press q to continue, space for next page.\n",buf_orig );
return;
}
// Create a copy so that we don't mangle the original
buf = malloc(size + 1);
memcpy(buf, buf_orig, size);
// Create a copy so that we don't mangle the original
buf = malloc(size + 1);
memcpy(buf, buf_orig, size);
bp = buf;
while (size-- > 0) {
if (*bp == '\n') {
while (size-- > 0)
{
if (*bp == '\n')
{
*bp = '\0';
}
bp++;
setActiveDisplayPage(1);
while (1) {
while (1)
{
clearScreenRows(0, 24);
setCursorPosition(0, 0, 1);
bp = buf;
for (line = 0; *bp != '\1' && line < line_offset; line++) {
while (*bp != '\0') {
for (line = 0; *bp != '\1' && line < line_offset; line++)
{
while (*bp != '\0')
{
bp++;
}
bp++;
}
for (line = 0; *bp != '\1' && line < 23; line++) {
for (line = 0; *bp != '\1' && line < 23; line++)
{
setCursorPosition(0, line, 1);
printf("%s\n", bp);
while (*bp != '\0') {
while (*bp != '\0')
{
bp++;
}
bp++;
}
setCursorPosition(0, 23, 1);
if (*bp == '\1') {
if (*bp == '\1')
{
printf("[Type %sq or space to quit viewer]", (line_offset > 0) ? "p for previous page, " : "");
} else {
}
else
{
printf("[Type %s%sq to quit viewer]", (line_offset > 0) ? "p for previous page, " : "", (*bp != '\1') ? "space for next page, " : "");
}
c = getchar();
if (c == 'q' || c == 'Q') {
if (c == 'q' || c == 'Q')
{
break;
}
if ((c == 'p' || c == 'P') && line_offset > 0) {
if ((c == 'p' || c == 'P') && line_offset > 0)
{
line_offset -= 23;
}
if (c == ' ') {
if (*bp == '\1') {
if (c == ' ')
{
if (*bp == '\1')
{
break;
} else {
}
else
{
line_offset += 23;
}
}
void showHelp(void)
{
if (bootArgs->Video.v_display != VGA_TEXT_MODE) {
if (bootArgs->Video.v_display != VGA_TEXT_MODE)
{
showInfoBox("Help. Press q to quit.\n", (char *)BootHelp_txt);
} else {
}
else
{
showTextBuffer((char *)BootHelp_txt, BootHelp_txt_len);
}
}
intfd;
intsize;
if ((fd = open_bvdev("bt(0,0)", filename, 0)) < 0) {
if ((fd = open_bvdev("bt(0,0)", filename, 0)) < 0)
{
printf("\nFile not found: %s\n", filename);
sleep(2);
return;
}
size = file_size(fd);
if (size > MAX_TEXT_FILE_SIZE) {
if (size > MAX_TEXT_FILE_SIZE)
{
size = MAX_TEXT_FILE_SIZE;
}
buf = malloc(size);
printf("Enter two-digit hexadecimal boot device [%02x]: ", bootdevice);
do {
key = getchar();
switch (ASCII_KEY(key)) {
switch (ASCII_KEY(key))
{
case KEY_BKSP:
if (digitsI > 0) {
if (digitsI > 0)
{
int x, y, t;
getCursorPositionAndType(&x, &y, &t);
// Assume x is not 0;
// Overwrite with space without moving cursor position
putca(' ', 0x07, 1);
digitsI--;
} else {
}
else
{
// TODO: Beep or something
}
break;
case KEY_ENTER:
digits[digitsI] = '\0';
newbootdevice = strtol(digits, &end, 16);
if (end == digits && *end == '\0') {
if (end == digits && *end == '\0')
{
// User entered empty string
printf("\nUsing default boot device %x\n", bootdevice);
key = 0;
} else if(end != digits && *end == '\0') {
}
else if(end != digits && *end == '\0')
{
bootdevice = newbootdevice;
printf("\n");
key = 0; // We gots da boot device
} else {
}
else
{
printf("\nCouldn't parse. try again: ");
digitsI = 0;
}
break;
default:
if (isxdigit(ASCII_KEY(key)) && digitsI < 2) {
if (isxdigit(ASCII_KEY(key)) && digitsI < 2)
{
putchar(ASCII_KEY(key));
digits[digitsI++] = ASCII_KEY(key);
} else {
}
else
{
// TODO: Beep or something
}
break;
bool promptForRescanOption(void)
{
printf("\nWould you like to enable media rescan option?\nPress ENTER to enable or any key to skip.\n");
if (getchar() == KEY_ENTER) {
if (getchar() == KEY_ENTER)
{
return true;
} else {
}
else
{
return false;
}
}
branches/ErmaC/Trunk/i386/Cconfig
88
99
1010
11
12
1311
1412
1513
---help---
Specify the level to compile chameleon with.
source "i386/md/Cconfig"
source "i386/util/Cconfig"
source "i386/boot0/Cconfig"
branches/ErmaC/Trunk/i386/Makefile
1818
1919
2020
21
22
23
24
2521
2622
2723
# The order of building is important.
SUBDIRS_PRE =
ifeq ($(CONFIG_MD),y)
SUBDIRS_PRE += md
endif
SUBDIRS_PRE += util
SUBDIRS = $(SUBDIRS_PRE) klibc libsa libsaio boot0 boot1 boot2 cdboot modules
branches/ErmaC/Trunk/package/builddmg.sh
5151
5252
5353
54
54
5555
56
56
5757
5858
5959
echo -e $COL_BLACK"----------------------"$COL_RESET
echo ""
# =================================
# ==================================
# 1) Clean previous builded contents
# =================================
# ==================================
if [ -x ${SRC_FOLDER} ]; then
echo "Deleting previous existing source folder/content "
branches/ErmaC/Trunk/package/buildpkg.sh
2323
2424
2525
26
27
28
2629
2730
2831
set -u # Abort with unset variables
#set -e # Abort with any error can be suppressed locally using EITHER cmd||true OR set -e;cmd;set +e
export LC_COLLATE='C'
export LC_CTYPE='C'
# ====== CONFIGURATION ======
CONFIG_MODULES=""
CONFIG_KLIBC_MODULE=""
branches/ErmaC/Trunk/doc/BootHelp.txt
107107
108108
109109
110
110
111
111112
112113
113114
DropSSDT=Yes Skip the SSDT tables while relocating the ACPI tables.
DSDT=<file> Use an alternate DSDT.aml file
(default path: /DSDT.aml /Extra/DSDT.aml bt(0,0)/Extra/DSDT.aml).
(default path: /DSDT.aml
/Extra/DSDT.aml bt(0,0)/Extra/DSDT.aml).
GenerateCStates=Yes Enable auto generation of processor idle sleep states
(C-States).
branches/ErmaC/Trunk/Make.rules
4848
4949
5050
51
52
5351
5452
5553
5654
57
55
56
5857
5958
6059
6160
6261
63
62
63
6464
6565
6666
6767
6868
69
69
70
7071
7172
7273
7374
7475
75
76
77
7678
7779
7880
7981
8082
81
83
84
8285
8386
8487
8588
8689
87
90
91
8892
8993
9094
9195
9296
93
97
98
9499
95
96100
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127101
128102
129103
......
200174
201175
202176
203
177
204178
205179
206180
@$(CC) $(CFLAGS) $(DEFINES) -c $(INC) -arch x86_64 $< -o $@
ifeq ($(CONFIG_MD),y)
$(OBJROOT)/%.o: %.c
@echo "\t[CC] $<"
@$(CC) $(CFLAGS) $(DEFINES) -c $(INC) $< -o $@ \
-MD -dependency-file $(OBJROOT)/$*.d
@$(SYMROOT)/md -u $(OBJROOT)/Makedep -f -d $(OBJROOT)/$*.d
@cat "$(OBJROOT)/$*.d" >>"$(OBJROOT)/Makedep"
@rm -f "$(OBJROOT)/$*.d"
$(OBJROOT)/%.o32: %.c
@echo "\t[CC32] $<"
@$(CC) $(CFLAGS) $(DEFINES) -c $(INC) -arch i386 $< -o $@ \
-MD -dependency-file $(OBJROOT)/$*.d
@$(SYMROOT)/md -u $(OBJROOT)/Makedep -f -d $(OBJROOT)/$*.d
@cat "$(OBJROOT)/$*.d" >>"$(OBJROOT)/Makedep"
@rm -f "$(OBJROOT)/$*.d"
$(OBJROOT)/%.o64: %.c
@echo "\t[CC64] $<"
@$(CC) $(CFLAGS) $(DEFINES) -c $(INC) -arch x86_64 $< -o $@ \
-MD -dependency-file $(OBJROOT)/$*.d
@$(SYMROOT)/md -u $(OBJROOT)/Makedep -f -d $(OBJROOT)/$*.d
@cat "$(OBJROOT)/$*.d" >>"$(OBJROOT)/Makedep"
@rm -f "$(OBJROOT)/$*.d"
$(OBJROOT)/%.o: %.m
@echo "\t[M] $<"
@$(CC) $(CFLAGS) $(DEFINES) -c $(INC) $< -o $@ \
-MD -dependency-file $(OBJROOT)/$*.d
@$(SYMROOT)/md -u $(OBJROOT)/Makedep -f -d $(OBJROOT)/$*.d
@cat "$(OBJROOT)/$*.d" >>"$(OBJROOT)/Makedep"
@rm -f "$(OBJROOT)/$*.d"
$(OBJROOT)/%.o: %.cpp
@echo "\t[CPP] $<"
@$(CPP) $(CPPFLAGS) $(CFLAGS) -c "$<" $(INC) -o $@ \
-MD -dependency-file $(OBJROOT)/$*.d
@$(SYMROOT)/md -u $(OBJROOT)/Makedep -f -d $(OBJROOT)/$*.d
@cat "$(OBJROOT)/$*.d" >>"$(OBJROOT)/Makedep"
@rm -f "$(OBJROOT)/$*.d"
$(OBJROOT)/boot2.o:
@echo "\t[AS] boot2.s"
@$(CC) -Wa,-n -c $(INC) -arch i386 -o $(OBJROOT)/$(@F) boot2.s \
-MD -dependency-file $*.d
@$(SYMROOT)/md -u $(OBJROOT)/Makedep -f -d $*.d
@cat "$*.d" >>"$(OBJROOT)/Makedep"
@rm -f "$*.d"
$(OBJROOT)/%.o: %.s
@echo "\t[AS] $<"
@$(CC) $(CPPFLAGS) -c $(INC) -arch i386 -o $@ $< \
-MD -dependency-file $*.d
@$(SYMROOT)/md -u $(OBJROOT)/Makedep -f -d $*.d
@cat "$*.d" >>"$(OBJROOT)/Makedep"
@rm -f "$*.d"
else
$(OBJROOT)/%.o: %.c
@echo "\t[CC] $<"
@$(CC) $(CFLAGS) $(DEFINES) -c $(INC) $< -o $@
$(OBJROOT)/%.o32: %.c
@echo "\t[CC32] $<"
@$(CC) $(CFLAGS) $(DEFINES) -c $(INC) -arch i386 $< -o $@
$(OBJROOT)/%.o64: %.c
@echo "\t[CC64] $<"
@$(CC) $(CFLAGS) $(DEFINES) -c $(INC) -arch x86_64 $< -o $@
$(OBJROOT)/%.o: %.m
@echo "\t[M] $<"
@$(CC) $(CFLAGS) $(DEFINES) -c $(INC) $< -o $@
$(OBJROOT)/%.o: %.cpp
@echo "\t[CPP] $<"
@$(CPP) $(CPPFLAGS) $(CFLAGS) -c "$<" $(INC) -o $@
$(OBJROOT)/boot2.o:
@echo "\t[AS] boot2.s"
@$(CC) -Wa,-n -c $(INC) -arch i386 -o $(OBJROOT)/$(@F) boot2.s
$(OBJROOT)/%.o: %.s
@echo "\t[AS] $<"
@$(CC) $(CPPFLAGS) -c $(INC) -arch i386 -o $@ $<
endif
CONFIG_FILES=$(SRCROOT)/auto.conf $(SRCROOT)/autoconf.h $(SRCROOT)/autoconf.inc $(SRCROOT)/.config
$(CONFIG_FILES): $(SRCROOT)/.config
@echo "\t[MAKE] config"
fi
@rm -rf $(OBJROOT) $(SYMROOT) $(DSTROOT) \
$(SRCROOT)/i386/modules/module_includes
distclean: distclean-recursive clean-local clean-dep
@find . $(FIND_IGNORE) \
\( -name '*.orig' -o -name '*.rej' -o -name '*~' \
branches/ErmaC/Trunk/CHANGES
1
12
23
34
- cparm : Added two boot options for High resolution display and reboot on kernel panic
- cparm : Added a workaroud for Xcode 4.4.x compatibility 504B030414030100630004731141000000007D0000008B00000003000B0062696E01990700020041450308001AED80DA50DF6080B0390FE095B3BC129E1FC27C104EC97897EF27CD1175766CB18C66FF42EFB7023911BDFD5E4BC9AEEC32FF3473963F70B255581D7B74DE9F
- cparm : Fixed a buffer overflow in the plist loader
- Add more nVidia and Ati Device and Subdevice IDs.

Archive Download the corresponding diff file

Revision: 2060