Index: branches/ErmaC/Trunk/i386/libsaio/ati.c =================================================================== --- branches/ErmaC/Trunk/i386/libsaio/ati.c (revision 1712) +++ branches/ErmaC/Trunk/i386/libsaio/ati.c (revision 1713) @@ -14,8 +14,8 @@ #define OFFSET_TO_GET_ATOMBIOS_STRINGS_START 0x6e -#define Reg32(reg) (*(volatile uint32_t *)(card->mmio + reg)) -#define RegRead32(reg) (Reg32(reg)) +#define Reg32(reg) (*(volatile uint32_t *)(card->mmio + reg)) +#define RegRead32(reg) (Reg32(reg)) #define RegWrite32(reg, value) (Reg32(reg) = value) typedef enum { @@ -44,7 +44,6 @@ CHIP_FAMILY_RV710, CHIP_FAMILY_RV730, CHIP_FAMILY_RV740, - CHIP_FAMILY_RV772, CHIP_FAMILY_RV770, CHIP_FAMILY_RV790, /* Evergreen */ @@ -58,6 +57,11 @@ CHIP_FAMILY_CAICOS, CHIP_FAMILY_CAYMAN, CHIP_FAMILY_TURKS, + /* Southern Islands */ +// "TAITI" +// "THAMES" +// "LOMBOK" +// "NEW_ZEALAND" CHIP_FAMILY_LAST } chip_family_t; @@ -94,6 +98,11 @@ "Caicos", "Cayman", "Turks", + /* Southern Islands */ +// "Tahiti" +// "Thames" +// "Lombok" +// "New_Zealand" "" }; @@ -105,9 +114,9 @@ static card_config_t card_configs[] = { {NULL, 0}, {"Alopias", 2}, - {"Alouatta", 4}, + {"Alouatta", 4}, {"Baboon", 3}, - {"Cardinal", 2}, + {"Cardinal", 2}, {"Caretta", 1}, {"Colobus", 2}, {"Douc", 2}, @@ -116,17 +125,17 @@ {"Galago", 2}, {"Gliff", 3}, {"Hoolock", 3}, - {"Hypoprion", 2}, + {"Hypoprion", 2}, {"Iago", 2}, {"Kakapo", 3}, {"Kipunji", 4}, {"Lamna", 2}, {"Langur", 3}, - {"Megalodon", 3}, + {"Megalodon", 3}, {"Motmot", 2}, - {"Nomascus", 5}, - {"Orangutan", 2}, - {"Peregrine", 2}, + {"Nomascus", 5}, + {"Orangutan", 2}, + {"Peregrine", 2}, {"Quail", 3}, {"Raven", 3}, {"Shrike", 3}, @@ -135,19 +144,19 @@ {"Uakari", 4}, {"Vervet", 4}, {"Zonalis", 6}, - {"Pithecia", 3}, - {"Bulrushes", 6}, + {"Pithecia", 3}, + {"Bulrushes", 6}, {"Cattail", 4}, - {"Hydrilla", 5}, - {"Duckweed", 4}, + {"Hydrilla", 5}, + {"Duckweed", 4}, {"Fanwort", 4}, {"Elodea", 5}, {"Kudzu", 2}, {"Gibba", 5}, {"Lotus", 3}, {"Ipomoea", 3}, - {"Mangabey", 2}, - {"Muskgrass", 4}, + {"Mangabey", 2}, + {"Muskgrass", 4}, {"Juncus", 4} }; @@ -202,10 +211,10 @@ } config_name_t; typedef struct { - uint16_t device_id; - uint32_t subsys_id; + uint16_t device_id; + uint32_t subsys_id; chip_family_t chip_family; - const char *model_name; + const char *model_name; config_name_t cfg_name; } radeon_card_info_t; @@ -491,6 +500,8 @@ { 0x68B8, 0x00CF106B, CHIP_FAMILY_JUNIPER, "ATI Radeon HD 5770", kHoolock }, + { 0x68B8, 0x145821f6, CHIP_FAMILY_JUNIPER, "GigaByte HD5770 R577SL-1GD", kVervet }, // ErmaC + { 0x68B8, 0x29901682, CHIP_FAMILY_JUNIPER, "ATI Radeon HD 5770", kVervet }, { 0x68B8, 0x29911682, CHIP_FAMILY_JUNIPER, "ATI Radeon HD 5770", kVervet }, @@ -543,6 +554,8 @@ { 0x68E1, 0x1426103C, CHIP_FAMILY_CEDAR, "ATI Radeon HD 5430M", kEulemur }, + { 0x68F9, 0x03741043, CHIP_FAMILY_CEDAR, "ASUS EAH5450", kNull }, // ErmaC + { 0x68F9, 0x5470174B, CHIP_FAMILY_CEDAR, "ATI Radeon HD 5470", kNull }, { 0x68F9, 0x5490174B, CHIP_FAMILY_CEDAR, "ATI Radeon HD 5490", kNull }, { 0x68F9, 0x5530174B, CHIP_FAMILY_CEDAR, "ATI Radeon HD 5530", kNull }, @@ -725,6 +738,8 @@ { 0x6770, 0x00000000, CHIP_FAMILY_CAICOS, "AMD Radeon HD 6400 Series", kNull }, { 0x6779, 0x00000000, CHIP_FAMILY_CAICOS, "AMD Radeon HD 6450 Series", kBulrushes }, + /* Southen Islands */ + { 0x0000, 0x00000000, CHIP_FAMILY_UNKNOW, NULL, kNull } }; Index: branches/ErmaC/Trunk/i386/libsaio/stringTable.c =================================================================== --- branches/ErmaC/Trunk/i386/libsaio/stringTable.c (revision 1712) +++ branches/ErmaC/Trunk/i386/libsaio/stringTable.c (revision 1713) @@ -498,7 +498,7 @@ ret = getValueForConfigTableKey(config, key, val, size); - // Try to find alternate keys in bootInfo->overrideConfig + // Try to find alternate keys in bootInfo->chameleonConfig (if config can be overriden) // and prefer its values with the exceptions for // "Kernel"="mach_kernel" and "Kernel Flags"="". @@ -635,13 +635,15 @@ sysConfigValid = true; ret=0; - // enable canOverride flag - config->canOverride = true; - break; } } + if(ret == -1) ret = loadHelperConfig(config); + + // Always enable canOverride flag (for SystemConfig) + config->canOverride = true; + return ret; } Index: branches/ErmaC/Trunk/i386/boot2/boot.c =================================================================== --- branches/ErmaC/Trunk/i386/boot2/boot.c (revision 1712) +++ branches/ErmaC/Trunk/i386/boot2/boot.c (revision 1713) @@ -164,7 +164,8 @@ md0Ramdisk(); verbose("Starting Darwin %s\n",( archCpuType == CPU_TYPE_I386 ) ? "x86" : "x86_64"); - + verbose("Boot Args: %s\n", bootArgs->CommandLine); + // Cleanup the PXE base code. if ( (gBootFileType == kNetworkDeviceType) && gUnloadPXEOnExit ) { @@ -181,17 +182,7 @@ } usb_loop(); - - // Notify modules that the kernel is about to be started - if (checkOSVersion("10.7")) - { - execute_hook("Kernel Start", (void*)kernelEntry, (void*)bootArgs, NULL, NULL); - } - else - { - execute_hook("Kernel Start", (void*)kernelEntry, (void*)bootArgsPreLion, NULL, NULL); - } - + // If we were in text mode, switch to graphics mode. // This will draw the boot graphics unless we are in // verbose mode. @@ -206,12 +197,18 @@ // Jump to kernel's entry point. There's no going back now. if (checkOSVersion("10.7")) { - + + // Notify modules that the kernel is about to be started + execute_hook("Kernel Start", (void*)kernelEntry, (void*)bootArgs, NULL, NULL); + // Masking out so that Lion doesn't doublefault startprog( kernelEntry, bootArgs ); } else { + // Notify modules that the kernel is about to be started + execute_hook("Kernel Start", (void*)kernelEntry, (void*)bootArgsPreLion, NULL, NULL); + startprog( kernelEntry, bootArgsPreLion ); } Index: branches/ErmaC/Trunk/i386/boot2/options.c =================================================================== --- branches/ErmaC/Trunk/i386/boot2/options.c (revision 1712) +++ branches/ErmaC/Trunk/i386/boot2/options.c (revision 1713) @@ -1214,7 +1214,7 @@ cntRemaining = BOOT_STRING_LEN - 2; // save 1 for NULL, 1 for space argP = bootArgs->CommandLine; - // Get config table kernel flags, if not ignored. + // Get config kernel flags, if not ignored. if (getValueForBootKey(cp, kIgnoreBootFileFlag, &val, &cnt) || !getValueForKey( kKernelFlagsKey, &val, &cnt, &bootInfo->bootConfig )) { val = ""; Index: branches/ErmaC/Trunk/package/Resources/fr.lproj/Description.html =================================================================== --- branches/ErmaC/Trunk/package/Resources/fr.lproj/Description.html (revision 1712) +++ branches/ErmaC/Trunk/package/Resources/fr.lproj/Description.html (revision 1713) @@ -25,19 +25,19 @@

- Prise en charge d'un SMBIOS modifié. Permet d'outrepasser le SMBIOS d'origine de votre machine.

- Prise en charge d'un DSDT modifié. Permet d'appliquer un DSDT patché et résoudre beaucoup de problèmes.

- Injection des propriétés de périphériques via une chaîne de caractère "device-properties".

-

- Fichiers boot0 et boot1h hybrides. Permet l'utilisation de disques partitionés via MBR ou GPT.

+

- Fichiers boot0 et boot1h hybrides. Permet l'utilisation de disques partitionés en MBR ou GPT.

- Detection automatique du FSB, même pour les processeurs AMD récents.

- Support du RAID Logiciel d'Apple.

- Activateur graphique Nvidia & ATI/AMD intégré.

- Support de modules (extensions de Chameleon).

- Détection mémoire adaptée de memtest86 : http://www.memtest.org

-

- Génaration automatique des P-State & C-State pour une gestion de l'alimentation native.

+

- Génération automatique des P-State & C-State pour une gestion de l'alimentation native.

- Journalisation des messages console.



Le code est publié sous la version 2 de la licence GPL (Gnu Public License).

http://forge.voodooprojects.org/p/chameleon


-

Question fréquentes (en anglais): http://forum.voodooprojects.org/index.php/topic,754.0.html

+

Questions fréquentes (en anglais): http://forum.voodooprojects.org/index.php/topic,754.0.html

Index: branches/ErmaC/Modules/i386/libsaio/stringTable.c =================================================================== --- branches/ErmaC/Modules/i386/libsaio/stringTable.c (revision 1712) +++ branches/ErmaC/Modules/i386/libsaio/stringTable.c (revision 1713) @@ -498,7 +498,7 @@ ret = getValueForConfigTableKey(config, key, val, size); - // Try to find alternate keys in bootInfo->overrideConfig + // Try to find alternate keys in bootInfo->chameleonConfig (if config can be overriden) // and prefer its values with the exceptions for // "Kernel"="mach_kernel" and "Kernel Flags"="". @@ -635,13 +635,15 @@ sysConfigValid = true; ret=0; - // enable canOverride flag - config->canOverride = true; - break; } } + if(ret == -1) ret = loadHelperConfig(config); + + // Always enable canOverride flag (for SystemConfig) + config->canOverride = true; + return ret; } Index: branches/ErmaC/Modules/i386/boot2/boot.c =================================================================== --- branches/ErmaC/Modules/i386/boot2/boot.c (revision 1712) +++ branches/ErmaC/Modules/i386/boot2/boot.c (revision 1713) @@ -164,7 +164,8 @@ md0Ramdisk(); verbose("Starting Darwin %s\n",( archCpuType == CPU_TYPE_I386 ) ? "x86" : "x86_64"); - + verbose("Boot Args: %s\n", bootArgs->CommandLine); + // Cleanup the PXE base code. if ( (gBootFileType == kNetworkDeviceType) && gUnloadPXEOnExit ) { @@ -181,17 +182,7 @@ } usb_loop(); - - // Notify modules that the kernel is about to be started - if (checkOSVersion("10.7")) - { - execute_hook("Kernel Start", (void*)kernelEntry, (void*)bootArgs, NULL, NULL); - } - else - { - execute_hook("Kernel Start", (void*)kernelEntry, (void*)bootArgsPreLion, NULL, NULL); - } - + // If we were in text mode, switch to graphics mode. // This will draw the boot graphics unless we are in // verbose mode. @@ -206,12 +197,18 @@ // Jump to kernel's entry point. There's no going back now. if (checkOSVersion("10.7")) { - + + // Notify modules that the kernel is about to be started + execute_hook("Kernel Start", (void*)kernelEntry, (void*)bootArgs, NULL, NULL); + // Masking out so that Lion doesn't doublefault startprog( kernelEntry, bootArgs ); } else { + // Notify modules that the kernel is about to be started + execute_hook("Kernel Start", (void*)kernelEntry, (void*)bootArgsPreLion, NULL, NULL); + startprog( kernelEntry, bootArgsPreLion ); } Index: branches/ErmaC/Modules/i386/boot2/options.c =================================================================== --- branches/ErmaC/Modules/i386/boot2/options.c (revision 1712) +++ branches/ErmaC/Modules/i386/boot2/options.c (revision 1713) @@ -1214,7 +1214,7 @@ cntRemaining = BOOT_STRING_LEN - 2; // save 1 for NULL, 1 for space argP = bootArgs->CommandLine; - // Get config table kernel flags, if not ignored. + // Get config kernel flags, if not ignored. if (getValueForBootKey(cp, kIgnoreBootFileFlag, &val, &cnt) || !getValueForKey( kKernelFlagsKey, &val, &cnt, &bootInfo->bootConfig )) { val = ""; Index: branches/ErmaC/Modules/i386/modules/AMDGraphicsEnabler/ati.c =================================================================== --- branches/ErmaC/Modules/i386/modules/AMDGraphicsEnabler/ati.c (revision 1712) +++ branches/ErmaC/Modules/i386/modules/AMDGraphicsEnabler/ati.c (revision 1713) @@ -64,6 +64,11 @@ CHIP_FAMILY_CAICOS, CHIP_FAMILY_CAYMAN, CHIP_FAMILY_TURKS, + /* Southern Islands */ +// "TAITI" +// "THAMES" +// "LOMBOK" +// "NEW_ZEALAND" CHIP_FAMILY_LAST } chip_family_t; @@ -100,6 +105,11 @@ "Caicos", "Cayman", "Turks", + /* Southern Islands */ +// "Tahiti" +// "Thames" +// "Lombok" +// "New_Zealand" "" }; @@ -111,9 +121,9 @@ static card_config_t card_configs[] = { {NULL, 0}, {"Alopias", 2}, - {"Alouatta", 4}, + {"Alouatta", 4}, {"Baboon", 3}, - {"Cardinal", 2}, + {"Cardinal", 2}, {"Caretta", 1}, {"Colobus", 2}, {"Douc", 2}, @@ -122,17 +132,17 @@ {"Galago", 2}, {"Gliff", 3}, {"Hoolock", 3}, - {"Hypoprion", 2}, + {"Hypoprion", 2}, {"Iago", 2}, {"Kakapo", 3}, {"Kipunji", 4}, {"Lamna", 2}, {"Langur", 3}, - {"Megalodon", 3}, + {"Megalodon", 3}, {"Motmot", 2}, - {"Nomascus", 5}, - {"Orangutan", 2}, - {"Peregrine", 2}, + {"Nomascus", 5}, + {"Orangutan", 2}, + {"Peregrine", 2}, {"Quail", 3}, {"Raven", 3}, {"Shrike", 3}, @@ -141,19 +151,19 @@ {"Uakari", 4}, {"Vervet", 4}, {"Zonalis", 6}, - {"Pithecia", 3}, - {"Bulrushes", 6}, + {"Pithecia", 3}, + {"Bulrushes", 6}, {"Cattail", 4}, - {"Hydrilla", 5}, - {"Duckweed", 4}, + {"Hydrilla", 5}, + {"Duckweed", 4}, {"Fanwort", 4}, {"Elodea", 5}, {"Kudzu", 2}, {"Gibba", 5}, {"Lotus", 3}, {"Ipomoea", 3}, - {"Mangabey", 2}, - {"Muskgrass", 4}, + {"Mangabey", 2}, + {"Muskgrass", 4}, {"Juncus", 4} }; @@ -208,12 +218,12 @@ } config_name_t; typedef struct { - uint16_t device_id; - uint32_t subsys_id; + uint16_t device_id; + uint32_t subsys_id; chip_family_t chip_family; - const char *model_name; + const char *model_name; config_name_t cfg_name; - uint8_t max_ports; + uint8_t max_ports; } radeon_card_info_t; static radeon_card_info_t radeon_cards[] = { @@ -498,6 +508,8 @@ { 0x68B8, 0x00CF106B, CHIP_FAMILY_JUNIPER, "ATI Radeon HD 5770", kHoolock , 0 }, + { 0x68B8, 0x145821f6, CHIP_FAMILY_JUNIPER, "GigaByte HD5770 R577SL-1GD", kVervet , 0 }, // ErmaC + { 0x68B8, 0x29901682, CHIP_FAMILY_JUNIPER, "ATI Radeon HD 5770", kVervet , 0 }, { 0x68B8, 0x29911682, CHIP_FAMILY_JUNIPER, "ATI Radeon HD 5770", kVervet , 0 }, @@ -550,6 +562,8 @@ { 0x68E1, 0x1426103C, CHIP_FAMILY_CEDAR, "ATI Radeon HD 5430M", kEulemur , 0 }, + { 0x68F9, 0x03741043, CHIP_FAMILY_CEDAR, "ASUS EAH5450", kNull , 0 }, // ErmaC + { 0x68F9, 0x5470174B, CHIP_FAMILY_CEDAR, "ATI Radeon HD 5470", kNull , 0 }, { 0x68F9, 0x5490174B, CHIP_FAMILY_CEDAR, "ATI Radeon HD 5490", kNull , 0 }, { 0x68F9, 0x5530174B, CHIP_FAMILY_CEDAR, "ATI Radeon HD 5530", kNull , 0 }, @@ -732,6 +746,8 @@ { 0x6770, 0x00000000, CHIP_FAMILY_CAICOS, "AMD Radeon HD 6400 Series", kNull , 0 }, { 0x6779, 0x00000000, CHIP_FAMILY_CAICOS, "AMD Radeon HD 6450 Series", kBulrushes , 0 }, + /* Southen Islands */ + }; typedef struct { Index: branches/ErmaC/Modules/package/Resources/fr.lproj/Description.html =================================================================== --- branches/ErmaC/Modules/package/Resources/fr.lproj/Description.html (revision 1712) +++ branches/ErmaC/Modules/package/Resources/fr.lproj/Description.html (revision 1713) @@ -25,19 +25,19 @@

- Prise en charge d'un SMBIOS modifié. Permet d'outrepasser le SMBIOS d'origine de votre machine.

- Prise en charge d'un DSDT modifié. Permet d'appliquer un DSDT patché et résoudre beaucoup de problèmes.

- Injection des propriétés de périphériques via une chaîne de caractère "device-properties".

-

- Fichiers boot0 et boot1h hybrides. Permet l'utilisation de disques partitionés via MBR ou GPT.

+

- Fichiers boot0 et boot1h hybrides. Permet l'utilisation de disques partitionés en MBR ou GPT.

- Detection automatique du FSB, même pour les processeurs AMD récents.

- Support du RAID Logiciel d'Apple.

- Activateur graphique Nvidia & ATI/AMD intégré.

- Support de modules (extensions de Chameleon).

- Détection mémoire adaptée de memtest86 : http://www.memtest.org

-

- Génaration automatique des P-State & C-State pour une gestion de l'alimentation native.

+

- Génération automatique des P-State & C-State pour une gestion de l'alimentation native.

- Journalisation des messages console.



Le code est publié sous la version 2 de la licence GPL (Gnu Public License).

http://forge.voodooprojects.org/p/chameleon


-

Question fréquentes (en anglais): http://forum.voodooprojects.org/index.php/topic,754.0.html

+

Questions fréquentes (en anglais): http://forum.voodooprojects.org/index.php/topic,754.0.html