Index: branches/ErmaC/Trunk/i386/libsaio/acpi_patcher.c =================================================================== --- branches/ErmaC/Trunk/i386/libsaio/acpi_patcher.c (revision 2050) +++ branches/ErmaC/Trunk/i386/libsaio/acpi_patcher.c (revision 2051) @@ -1,5 +1,6 @@ /* * Copyright 2008 mackerintel + * 2010 mojodojo, 2012 slice */ #include "libsaio.h" @@ -891,7 +892,8 @@ } // Do the same procedure for both versions of ACPI - for (version=0; version<2; version++) { + for (version=0; version<2; version++) + { struct acpi_2_rsdp *rsdp, *rsdp_mod; struct acpi_2_rsdt *rsdt, *rsdt_mod; int rsdplength; @@ -902,9 +904,13 @@ { DBG("No ACPI version %d found. Ignoring\n", version+1); if (version) + { addConfigurationTable(&gEfiAcpi20TableGuid, NULL, "ACPI_20"); + } else + { addConfigurationTable(&gEfiAcpiTableGuid, NULL, "ACPI"); + } continue; } rsdplength=version?rsdp->Length:20; @@ -939,7 +945,9 @@ { char *table=(char *)(rsdt_entries[i]); if (!table) + { continue; + } DBG("TABLE %c%c%c%c,",table[0],table[1],table[2],table[3]); @@ -955,7 +963,9 @@ DBG("DSDT found\n"); if(new_dsdt) + { rsdt_entries[i-dropoffset]=(uint32_t)new_dsdt; + } continue; } @@ -1057,7 +1067,9 @@ { char *table=(char *)((uint32_t)(xsdt_entries[i])); if (!table) + { continue; + } xsdt_entries[i-dropoffset]=xsdt_entries[i]; if (drop_ssdt && tableSign(table, "SSDT")) { @@ -1068,8 +1080,10 @@ { DBG("DSDT found\n"); - if (new_dsdt) + if (new_dsdt) + { xsdt_entries[i-dropoffset]=(uint32_t)new_dsdt; + } DBG("TABLE %c%c%c%c@%x,",table[0],table[1],table[2],table[3],xsdt_entries[i]); Index: branches/ErmaC/Trunk/i386/libsaio/spd.c =================================================================== --- branches/ErmaC/Trunk/i386/libsaio/spd.c (revision 2050) +++ branches/ErmaC/Trunk/i386/libsaio/spd.c (revision 2051) @@ -399,22 +399,31 @@ } static struct smbus_controllers_t smbus_controllers[] = { +// Info from here: http://cateee.net/lkddb/web-lkddb/I2C_I801.html - {0x8086, 0x269B, "ESB2", read_smb_intel }, - {0x8086, 0x25A4, "6300ESB", read_smb_intel }, - {0x8086, 0x24C3, "ICH4", read_smb_intel }, - {0x8086, 0x24D3, "ICH5", read_smb_intel }, - {0x8086, 0x266A, "ICH6", read_smb_intel }, - {0x8086, 0x27DA, "ICH7", read_smb_intel }, - {0x8086, 0x283E, "ICH8", read_smb_intel }, - {0x8086, 0x2930, "ICH9", read_smb_intel }, - {0x8086, 0x3A30, "ICH10R", read_smb_intel }, - {0x8086, 0x3A60, "ICH10B", read_smb_intel }, - {0x8086, 0x3B30, "5 Series", read_smb_intel }, - {0x8086, 0x1C22, "6 Series", read_smb_intel }, - {0x8086, 0x1E22, "7 Series", read_smb_intel }, - {0x8086, 0x1D70, "X79", read_smb_intel }, - {0x8086, 0x5032, "EP80579", read_smb_intel } + {0x8086, 0x1C22, "6 Series", read_smb_intel }, + {0x8086, 0x1D22, "C600/X79 Series", read_smb_intel }, + {0x8086, 0x1D70, "C600/X79 Series", read_smb_intel }, + {0x8086, 0x1D71, "C608/C606/X79 Series", read_smb_intel }, + {0x8086, 0x1D72, "C608", read_smb_intel }, + {0x8086, 0x1E22, "7 Series/C210 Series", read_smb_intel }, + {0x8086, 0x2330, "DH89xxCC", read_smb_intel }, + {0x8086, 0x2413, "82801AA", read_smb_intel }, + {0x8086, 0x2423, "82801BA/BAM", read_smb_intel }, + {0x8086, 0x2443, "82801BA/BAM", read_smb_intel }, + {0x8086, 0x2483, "82801CA/CAM", read_smb_intel }, + {0x8086, 0x24C3, "82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M)", read_smb_intel }, + {0x8086, 0x24D3, "82801EB/ER (ICH5/ICH5R)", read_smb_intel }, + {0x8086, 0x25A4, "6300ESB", read_smb_intel }, + {0x8086, 0x266A, "82801FB/FBM/FR/FW/FRW (ICH6 Family)", read_smb_intel }, + {0x8086, 0x269B, "631xESB/632xESB/3100", read_smb_intel }, + {0x8086, 0x27DA, "N10/ICH 7 Family", read_smb_intel }, + {0x8086, 0x283E, "82801H (ICH8 Family) ", read_smb_intel }, + {0x8086, 0x2930, "82801I (ICH9 Family)", read_smb_intel }, + {0x8086, 0x3A30, "82801JI (ICH10 Family)", read_smb_intel }, + {0x8086, 0x3A60, "82801JD/DO (ICH10 Family)", read_smb_intel }, + {0x8086, 0x3B30, "5 Series/3400 Series", read_smb_intel }, + {0x8086, 0x5032, "EP80579", read_smb_intel } }; Index: branches/ErmaC/Trunk/i386/libsaio/device_inject.c =================================================================== --- branches/ErmaC/Trunk/i386/libsaio/device_inject.c (revision 2050) +++ branches/ErmaC/Trunk/i386/libsaio/device_inject.c (revision 2051) @@ -23,11 +23,11 @@ #define DBG(x...) #endif -uint32_t devices_number = 1; -uint32_t builtin_set = 0; -struct DevPropString *string = 0; -uint8_t *stringdata = 0; -uint32_t stringlength = 0; +uint32_t devices_number = 1; +uint32_t builtin_set = 0; +struct DevPropString *string = 0; +uint8_t *stringdata = 0; +uint32_t stringlength = 0; char *efi_inject_get_devprop_string(uint32_t *len) { @@ -281,6 +281,8 @@ char *devprop_generate_string(struct DevPropString *string) { + int i = 0, x = 0; + char *buffer = (char*)malloc(string->length * 2); char *ptr = buffer; @@ -292,8 +294,7 @@ sprintf(buffer, "%08x%08x%04x%04x", dp_swap32(string->length), string->WHAT2, dp_swap16(string->numentries), string->WHAT3); buffer += 24; - int i = 0, x = 0; - + while(i < string->numentries) { sprintf(buffer, "%08x%04x%04x", dp_swap32(string->entries[i]->length), @@ -397,7 +398,9 @@ verbose("LAN Controller [%04x:%04x] :: %s\n", eth_dev->vendor_id, eth_dev->device_id, devicepath); if (!string) + { string = devprop_create_string(); + } device = devprop_add_device(string, devicepath); if(device) Index: branches/ErmaC/Trunk/i386/libsaio/dram_controllers.c =================================================================== --- branches/ErmaC/Trunk/i386/libsaio/dram_controllers.c (revision 2050) +++ branches/ErmaC/Trunk/i386/libsaio/dram_controllers.c (revision 2051) @@ -531,38 +531,62 @@ { 0, 0, "", NULL, NULL, NULL }, // Intel +// { 0x8086, 0x0100, "2rd Gen Core processor", NULL, NULL, NULL }, +// { 0x8086, 0x0104, "2rd Gen Core processor", NULL, NULL, NULL }, +// { 0x8086, 0x010C, "Xeon E3-1200/2rd Gen Core processor", NULL, NULL, NULL }, +// { 0x8086, 0x0150, "Xeon E3-1200 v2/3rd Gen Core processor", NULL, NULL, NULL }, +// { 0x8086, 0x0154, "3rd Gen Core processor", NULL, NULL, NULL }, +// { 0x8086, 0x0158, "Xeon E3-1200 v2/Ivy Bridge", NULL, NULL, NULL }, +// { 0x8086, 0x015C, "Xeon E3-1200 v2/3rd Gen Core processor", NULL, NULL, NULL }, + +// { 0x8086, 0x0BF0, "Atom Processor D2xxx/N2xxx", NULL, NULL, NULL }, +// { 0x8086, 0x0BF1, "Atom Processor D2xxx/N2xxx", NULL, NULL, NULL }, +// { 0x8086, 0x0BF2, "Atom Processor D2xxx/N2xxx", NULL, NULL, NULL }, +// { 0x8086, 0x0BF3, "Atom Processor D2xxx/N2xxx", NULL, NULL, NULL }, +// { 0x8086, 0x0BF4, "Atom Processor D2xxx/N2xxx", NULL, NULL, NULL }, +// { 0x8086, 0x0BF5, "Atom Processor D2xxx/N2xxx", NULL, NULL, NULL }, +// { 0x8086, 0x0BF6, "Atom Processor D2xxx/N2xxx", NULL, NULL, NULL }, +// { 0x8086, 0x0BF7, "Atom Processor D2xxx/N2xxx", NULL, NULL, NULL }, + +// { 0x8086, 0x0C00, "Haswell", NULL, NULL, NULL }, +// { 0x8086, 0x0C04, "Haswell", NULL, NULL, NULL }, +// { 0x8086, 0x0C08, "Haswell", NULL, NULL, NULL }, + { 0x8086, 0x7190, "VMWare", NULL, NULL, NULL }, - { 0x8086, 0x1A30, "i845", NULL, NULL, NULL }, + { 0x8086, 0x1A30, "82845 845 [Brookdale]", NULL, NULL, NULL }, - { 0x8086, 0x2970, "i946PL/GZ", setup_p35, get_fsb_i965, get_timings_i965 }, - { 0x8086, 0x2990, "Q963/Q965", setup_p35, get_fsb_i965, get_timings_i965 }, + { 0x8086, 0x2970, "82946GZ/PL/GL", setup_p35, get_fsb_i965, get_timings_i965 }, + { 0x8086, 0x2990, "82Q963/Q965", setup_p35, get_fsb_i965, get_timings_i965 }, { 0x8086, 0x29A0, "P965/G965", setup_p35, get_fsb_i965, get_timings_i965 }, { 0x8086, 0x2A00, "GM965/GL960", setup_p35, get_fsb_im965, get_timings_im965 }, { 0x8086, 0x2A10, "GME965/GLE960", setup_p35, get_fsb_im965, get_timings_im965 }, { 0x8086, 0x2A40, "PM/GM45/47", setup_p35, get_fsb_im965, get_timings_im965 }, - { 0x8086, 0x29B0, "Q35", setup_p35, get_fsb_i965, get_timings_p35 }, - { 0x8086, 0x29C0, "P35/G33", setup_p35, get_fsb_i965, get_timings_p35 }, - { 0x8086, 0x29D0, "Q33", setup_p35, get_fsb_i965, get_timings_p35 }, - { 0x8086, 0x29E0, "X38/X48", setup_p35, get_fsb_i965, get_timings_p35 }, + { 0x8086, 0x29B0, "82Q35 Express", setup_p35, get_fsb_i965, get_timings_p35 }, + { 0x8086, 0x29C0, "82G33/G31/P35/P31", setup_p35, get_fsb_i965, get_timings_p35 }, + { 0x8086, 0x29D0, "82Q33 Express", setup_p35, get_fsb_i965, get_timings_p35 }, + { 0x8086, 0x29E0, "82X38/X48 Express", setup_p35, get_fsb_i965, get_timings_p35 }, +// { 0x8086, 0x29F0, "3200/3210 Chipset", NULL, NULL, NULL }, + { 0x8086, 0x2E00, "Eaglelake", setup_p35, get_fsb_i965, get_timings_p35 }, { 0x8086, 0x2E10, "Q45/Q43", setup_p35, get_fsb_i965, get_timings_p35 }, { 0x8086, 0x2E20, "P45/G45", setup_p35, get_fsb_i965, get_timings_p35 }, { 0x8086, 0x2E30, "G41", setup_p35, get_fsb_i965, get_timings_p35 }, +// { 0x8086, 0x2E40, "4 Series Chipset", NULL, NULL, NULL }, +// { 0x8086, 0x2E90, "4 Series Chipset", NULL, NULL, NULL }, { 0x8086, 0xD131, "NHM IMC", setup_nhm, get_fsb_nhm, get_timings_nhm }, { 0x8086, 0xD132, "NHM IMC", setup_nhm, get_fsb_nhm, get_timings_nhm }, - { 0x8086, 0x3400, "NHM IMC", setup_nhm, get_fsb_nhm, get_timings_nhm }, - { 0x8086, 0x3401, "NHM IMC", setup_nhm, get_fsb_nhm, get_timings_nhm }, - { 0x8086, 0x3402, "NHM IMC", setup_nhm, get_fsb_nhm, get_timings_nhm }, - { 0x8086, 0x3403, "NHM IMC", setup_nhm, get_fsb_nhm, get_timings_nhm }, - { 0x8086, 0x3404, "NHM IMC", setup_nhm, get_fsb_nhm, get_timings_nhm }, - { 0x8086, 0x3405, "NHM IMC", setup_nhm, get_fsb_nhm, get_timings_nhm }, - { 0x8086, 0x3406, "NHM IMC", setup_nhm, get_fsb_nhm, get_timings_nhm }, - { 0x8086, 0x3407, "NHM IMC", setup_nhm, get_fsb_nhm, get_timings_nhm }, - + { 0x8086, 0x3400, "5520/5500/X58", setup_nhm, get_fsb_nhm, get_timings_nhm }, + { 0x8086, 0x3401, "5520/5500/X58", setup_nhm, get_fsb_nhm, get_timings_nhm }, + { 0x8086, 0x3402, "5520/5500/X58", setup_nhm, get_fsb_nhm, get_timings_nhm }, + { 0x8086, 0x3403, "5500", setup_nhm, get_fsb_nhm, get_timings_nhm }, + { 0x8086, 0x3404, "5520/5500/X58", setup_nhm, get_fsb_nhm, get_timings_nhm }, + { 0x8086, 0x3405, "5520/5500/X58", setup_nhm, get_fsb_nhm, get_timings_nhm }, + { 0x8086, 0x3406, "5520", setup_nhm, get_fsb_nhm, get_timings_nhm }, + { 0x8086, 0x3407, "5520/5500/X58", setup_nhm, get_fsb_nhm, get_timings_nhm }, }; static const char *memory_channel_types[] = @@ -578,7 +602,7 @@ if ((dram_controllers[i].vendor == dram_dev->vendor_id) && (dram_controllers[i].device == dram_dev->device_id)) { verbose("%s%s DRAM Controller [%4x:%4x] at %02x:%02x.%x\n", - (dram_dev->vendor_id == 0x8086) ? "Intel " : "" , + (dram_dev->vendor_id == 0x8086) ? "Intel Corporation " : "" , dram_controllers[i].name, dram_dev->vendor_id, dram_dev->device_id, dram_dev->dev.bits.bus, dram_dev->dev.bits.dev, dram_dev->dev.bits.func); Index: branches/ErmaC/Trunk/i386/libsaio/nvidia.c =================================================================== --- branches/ErmaC/Trunk/i386/libsaio/nvidia.c (revision 2050) +++ branches/ErmaC/Trunk/i386/libsaio/nvidia.c (revision 2051) @@ -557,7 +557,7 @@ { 0x10DE0618, 0x102802A2, "Dell GeForce GTX 260M" }, { 0x10DE0618, 0x10431A52, "Asus GeForce GTX 260M" }, { 0x10DE0618, 0x10432028, "Asus GeForce GTX 170M" }, - { 0x10DE0618, 0x1043202B, "Asus GTX 680" }, + { 0x10DE0618, 0x1043202B, "Asus GeForce GTX 680" }, { 0x10DE0618, 0x10432033, "Asus GeForce GTX 260M" }, { 0x10DE0618, 0x15580481, "Clevo/Kapok GeForce GTX 260M" }, { 0x10DE0618, 0x15580577, "Clevo/Kapok GeForce GTX 260M" }, @@ -571,13 +571,30 @@ { 0x10DE0622, 0x10621432, "MSi GeForce 9600GT" }, // 0630 - 063F // 0640 - 064F + { 0x10DE0640, 0x101910BD, "Elitegroup GeForge 9500 GT" }, + { 0x10DE0640, 0x101910C0, "Elitegroup GeForge 9500 GT" }, + { 0x10DE0640, 0x1043829A, "Asus GeForge 9500 GT" }, + { 0x10DE0640, 0x104382B4, "Asus GeForge 9500 GT" }, + { 0x10DE0640, 0x104382FD, "Asus GeForge 9500 GT" }, { 0x10DE0640, 0x106B00AD, "Apple GeForge 9500 GT" }, { 0x10DE0640, 0x106B00B3, "Apple GeForge 9500 GT" }, { 0x10DE0640, 0x106B061B, "Apple GeForge 9500 GT" }, + { 0x10DE0640, 0x10B01401, "Gainward GeForge 9500 GT" }, + { 0x10DE0640, 0x10DE0551, "nVidia GeForge 9500 GT" }, + { 0x10DE0640, 0x10DE057D, "nVidia GeForge 9500 GT" }, + { 0x10DE0640, 0x10DE0648, "nVidia GeForge 9500 GT" }, { 0x10DE0640, 0x10DE077F, "Inno3D GeForge 9500GT HDMI" }, + { 0x10DE0640, 0x14583498, "GigaByte GeForge 9500 GT" }, + { 0x10DE0640, 0x145834A9, "GigaByte GeForge 9500 GT" }, { 0x10DE0640, 0x14621290, "MSi GeForge 9500 GT" }, { 0x10DE0640, 0x14621291, "MSi GeForge 9500 GT" }, + { 0x10DE0640, 0x14621575, "MSi GeForge 9500 GT" }, { 0x10DE0640, 0x16423796, "Bitland GeForge 9500 GT" }, + { 0x10DE0640, 0x1682400A, "XFX GeForge 9500 GT" }, + { 0x10DE0640, 0x196E0643, "PNY GeForge 9500GT" }, + { 0x10DE0640, 0x19DA7046, "Zotac GeForge 9500 GT" }, + { 0x10DE0640, 0x1ACC9091, "Point of View GeForge 9500 GT" }, + { 0x10DE0640, 0x3842C958, "EVGA GeForge 9500 GT" }, { 0x10DE0647, 0x106B00A9, "Apple GeForge 9600M GT" }, { 0x10DE0647, 0x106B00B0, "Apple GeForge 9600M GT" }, @@ -775,6 +792,7 @@ { 0x10DE0A20, 0x16423920, "Bitland GeForce GT 220" }, { 0x10DE0A28, 0x10338897, "NEC GeForce GT 230" }, + { 0x10DE0A28, 0x103C1000, "HP GeForce GT 230" }, { 0x10DE0A28, 0x103C2AA7, "HP GeForce GT 230" }, { 0x10DE0A28, 0x103C363C, "HP GeForce GT 230" }, { 0x10DE0A28, 0x103C363E, "HP GeForce GT 230" }, @@ -1523,7 +1541,9 @@ // 1160 - 116F // 1170 - 117F // 1180 - 118F + { 0x10DE1180, 0x00001255, "Afox GTX 680" }, { 0x10DE1180, 0x104383F0, "Asus GTX680-2GD5" }, + { 0x10DE1180, 0x104383F6, "Asus GTX 680 Direct CU II" }, { 0x10DE1180, 0x104383F7, "Asus GTX 680 Direct CU II" }, { 0x10DE1180, 0x10DE0969, "nVidia GTX 680" }, { 0x10DE1180, 0x10DE097A, "nVidia GeForce GTX 680" }, @@ -1538,6 +1558,10 @@ { 0x10DE1180, 0x38422680, "EVGA GTX 680" }, { 0x10DE1180, 0x38422682, "EVGA GTX 680 SC" }, + { 0x10DE1183, 0x10DE1000, "nVidia GTX 660 Ti" }, + { 0x10DE1183, 0x14622843, "MSi GTX 660 Ti" }, + { 0x10DE1183, 0x19DA1280, "Zoac GTX 660 Ti" }, + { 0x10DE1185, 0x174B2260, "PC Partner GeForce GTX 660" }, { 0x10DE1188, 0x10438406, "Asus GeForce GTX 690" }, @@ -1547,6 +1571,7 @@ { 0x10DE1189, 0x10438405, "Asus GTX 670 Direct CU II TOP" }, { 0x10DE1189, 0x10DE097A, "nVidia GeForce GTX 670" }, { 0x10DE1189, 0x14583542, "Gigabyte GeForce GTX 670" }, + { 0x10DE1189, 0x14622840, "MSi GeForce GTX 670" }, { 0x10DE1189, 0x15691189, "Palit GTX 670 JetStream" }, { 0x10DE1189, 0x174B1260, "PC Partner GeForce GTX 670" }, { 0x10DE1189, 0x19DA1255, "Zotac GTX 670 AMP! Edition" }, @@ -1596,12 +1621,14 @@ { 0x10DE1211, 0x15587200, "Clevo GeForce GTX 580M" }, { 0x10DE1212, 0x1028057B, "Dell GeForce GTX 675M" }, + { 0x10DE1212, 0x10DE095D, "nVidia GeForce GTX 675M" }, { 0x10DE1212, 0x144DC0D0, "Samsung GeForce GTX 675M" }, { 0x10DE1212, 0x146210CB, "MSi GeForce GTX 675M" }, { 0x10DE1213, 0x102804BA, "Dell GeForce GTX 670M" }, { 0x10DE1213, 0x10432119, "Dell GeForce GTX 670M" }, { 0x10DE1213, 0x10432120, "Dell GeForce GTX 670M" }, + { 0x10DE1213, 0x10DE095E, "nVidia GeForce GTX 670M" }, { 0x10DE1213, 0x1179FB12, "Toshiba GeForce GTX 670M" }, { 0x10DE1213, 0x1179FB18, "Toshiba GeForce GTX 670M" }, { 0x10DE1213, 0x1179FB1A, "Toshiba GeForce GTX 670M" }, @@ -2623,12 +2650,17 @@ // 1170 - 117F // 1180 - 118F { 0x10DE1180, NV_SUB_IDS, "GeForce GTX 680" }, + { 0x10DE1183, NV_SUB_IDS, "GeForce GTX 660 Ti" }, { 0x10DE1185, NV_SUB_IDS, "GeForce GTX 660" }, { 0x10DE1188, NV_SUB_IDS, "GeForce GTX 690" }, { 0x10DE1189, NV_SUB_IDS, "GeForce GTX 670" }, + { 0x10DE118F, NV_SUB_IDS, "Tesla K10" }, // 1190 - 119F // 11A0 - 11AF // 11B0 - 11BF + { 0x10DE11BC, NV_SUB_IDS, "Quadro K5000M" }, + { 0x10DE11BD, NV_SUB_IDS, "Quadro K4000M" }, + { 0x10DE11BE, NV_SUB_IDS, "Quadro K3000M" }, // 11C0 - 11CF // 11D0 - 11DF // 11E0 - 11EF @@ -2652,7 +2684,7 @@ { 0x10DE1244, NV_SUB_IDS, "GeForce GTX 550 Ti" }, { 0x10DE1245, NV_SUB_IDS, "GeForce GTS 450" }, { 0x10DE1246, NV_SUB_IDS, "GeForce GTX 550M" }, - { 0x10DE1247, NV_SUB_IDS, "GeForce GT 635M" }, + { 0x10DE1247, NV_SUB_IDS, "GeForce GT 635M" }, // 555M ? { 0x10DE1248, NV_SUB_IDS, "GeForce GTX 555M" }, { 0x10DE1249, NV_SUB_IDS, "GeForce GTS 450M" }, // no M? { 0x10DE124B, NV_SUB_IDS, "GeForce GT 640" }, @@ -2678,7 +2710,7 @@ printf("False ROM signature: 0x%02x%02x\n", rom[0], rom[1]); return PATCH_ROM_FAILED; } - + uint16_t dcbptr = READ_LE_SHORT(rom, 0x36); if (!dcbptr) @@ -2689,7 +2721,7 @@ // else // printf("dcb table at offset 0x%04x\n", dcbptr); - uint8_t *dcbtable = &rom[dcbptr]; + uint8_t *dcbtable = &rom[dcbptr]; uint8_t dcbtable_version = dcbtable[0]; uint8_t headerlength = 0; uint8_t numentries = 0; @@ -2829,7 +2861,7 @@ channel1 |= ( 0x1 << entries[i].index); entries[i].type = TYPE_GROUPED; - if ((entries[i-1].type == 0x0)) + if (entries[i-1].type == 0x0) { channel1 |= ( 0x1 << entries[i-1].index); entries[i-1].type = TYPE_GROUPED; @@ -2848,7 +2880,7 @@ channel2 |= ( 0x1 << entries[i].index); entries[i].type = TYPE_GROUPED; - if ((entries[i - 1].type == 0x0)) + if (entries[i - 1].type == 0x0) { channel2 |= ( 0x1 << entries[i-1].index); entries[i-1].type = TYPE_GROUPED; @@ -3092,7 +3124,7 @@ break; } - if (!vram_size) + if (!vram_size) { // Finally, if vram_size still not set do the calculation with our own method if (nvCardType < NV_ARCH_50) @@ -3112,7 +3144,7 @@ vram_size *= REG32(NVC0_MEM_CTRLR_COUNT); } } - + return vram_size; } @@ -3325,7 +3357,7 @@ if (getValueForKey(kNVCAP, &value, &len, &bootInfo->chameleonConfig) && len == NVCAP_LEN * 2) { uint8_t new_NVCAP[NVCAP_LEN]; - + if (hex2bin(value, new_NVCAP, NVCAP_LEN) == 0) { verbose("Using user supplied NVCAP for %s :: %s\n", model, devicepath); @@ -3340,13 +3372,13 @@ if (hex2bin(value, new_dcfg0, DCFG0_LEN) == 0) { memcpy(default_dcfg_0, new_dcfg0, DCFG0_LEN); - + verbose("Using user supplied @0,display-cfg\n"); printf("@0,display-cfg: %02x%02x%02x%02x\n", default_dcfg_0[0], default_dcfg_0[1], default_dcfg_0[2], default_dcfg_0[3]); } } - + if (getValueForKey(kDcfg1, &value, &len, &bootInfo->chameleonConfig) && len == DCFG1_LEN * 2) { uint8_t new_dcfg1[DCFG1_LEN]; Index: branches/ErmaC/Trunk/i386/libsaio/ati.c =================================================================== --- branches/ErmaC/Trunk/i386/libsaio/ati.c (revision 2050) +++ branches/ErmaC/Trunk/i386/libsaio/ati.c (revision 2051) @@ -638,6 +638,7 @@ { 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, 0x174BE164, CHIP_FAMILY_CEDAR, "ATI Radeon HD 5450", kNull }, { 0x68F9, 0x20091787, CHIP_FAMILY_CEDAR, "ATI Radeon HD 5450", kEulemur }, { 0x68F9, 0x21261028, CHIP_FAMILY_CEDAR, "ATI Radeon HD 6350", kNull }, { 0x68F9, 0x2126103C, CHIP_FAMILY_CEDAR, "ATI Radeon HD 6350", kNull }, @@ -869,8 +870,8 @@ { 0x6818, 0x32501682, CHIP_FAMILY_PITCAIRN, "ATI Radeon HD 7870", kNull }, { 0x6818, 0xE217174B, CHIP_FAMILY_PITCAIRN, "ATI Radeon HD 7870", kNull }, - { 0x6819, 0x04311043, CHIP_FAMILY_PITCAIRN, "Asus HD 7850", kNull }, - { 0x6819, 0x04331043, CHIP_FAMILY_PITCAIRN, "Asus HD 7850", kNull }, + { 0x6819, 0x04311043, CHIP_FAMILY_PITCAIRN, "Asus HD 7850", kNull }, // Asus + { 0x6819, 0x04331043, CHIP_FAMILY_PITCAIRN, "Asus HD 7850", kNull }, // Asus { 0x6819, 0x0B041002, CHIP_FAMILY_PITCAIRN, "AMD Radeon HD 7850", kNull }, // ATI { 0x6819, 0x201C1787, CHIP_FAMILY_PITCAIRN, "AMD Radeon HD 7850", kNull }, // HIS { 0x6819, 0x23201787, CHIP_FAMILY_PITCAIRN, "AMD Radeon HD 7850", kNull }, // HIS @@ -1060,36 +1061,44 @@ { 0x940B, 0x00000000, CHIP_FAMILY_R600, "ATI Radeon HD 2900 GT", kNull }, { 0x940F, 0x00000000, CHIP_FAMILY_R600, "ATI Radeon HD 2900 GT", kNull }, - { 0x9440, 0x00000000, CHIP_FAMILY_RV770, "ATI Radeon HD 4800 Series", kMotmot }, - { 0x9441, 0x00000000, CHIP_FAMILY_RV770, "ATI Radeon HD 4870 X2", kMotmot }, - { 0x9442, 0x00000000, CHIP_FAMILY_RV770, "ATI Radeon HD 4800 Series", kMotmot }, + { 0x9440, 0x00000000, CHIP_FAMILY_RV770, "ATI Radeon HD 4800 Series", kMotmot }, + { 0x9441, 0x00000000, CHIP_FAMILY_RV770, "ATI Radeon HD 4870 X2", kMotmot }, + { 0x9442, 0x00000000, CHIP_FAMILY_RV770, "ATI Radeon HD 4800 Series", kMotmot }, { 0x9443, 0x00000000, CHIP_FAMILY_RV770, "ATI Radeon HD 4850 X2", kMotmot }, { 0x9444, 0x00000000, CHIP_FAMILY_RV770, "ATI FirePro V8750 (FireGL)", kMotmot }, - { 0x944A, 0x00000000, CHIP_FAMILY_RV770, "ATI Radeon HD 4800 Series", kMotmot }, - { 0x944C, 0x00000000, CHIP_FAMILY_RV770, "ATI Radeon HD 4800 Series", kMotmot }, - { 0x944E, 0x00000000, CHIP_FAMILY_RV770, "ATI Radeon HD 4700 Series", kMotmot }, + { 0x9446, 0x00000000, CHIP_FAMILY_RV770, "ATI FirePro V7770 (FireGL)", kMotmot }, + { 0x9447, 0x00000000, CHIP_FAMILY_RV770, "ATI FirePro V8700 Duo (FireGL)", kMotmot }, + { 0x944A, 0x00000000, CHIP_FAMILY_RV770, "ATI Mobility Radeon HD 4850", kMotmot }, + { 0x944B, 0x00000000, CHIP_FAMILY_RV770, "ATI Mobility Radeon HD 4850 X2", kMotmot }, + { 0x944C, 0x00000000, CHIP_FAMILY_RV770, "ATI Radeon HD 4830 Series", kMotmot }, + { 0x944E, 0x00000000, CHIP_FAMILY_RV770, "ATI Radeon HD 4810 Series", kMotmot }, - { 0x9450, 0x00000000, CHIP_FAMILY_RV770, "AMD FireStream 9270", kMotmot }, - { 0x9452, 0x00000000, CHIP_FAMILY_RV770, "AMD FireStream 9250", kMotmot }, + { 0x9450, 0x00000000, CHIP_FAMILY_RV770, "AMD FireStream 9270", kMotmot }, + { 0x9452, 0x00000000, CHIP_FAMILY_RV770, "AMD FireStream 9250", kMotmot }, - { 0x9460, 0x00000000, CHIP_FAMILY_RV790, "ATI Radeon HD 4800 Series", kMotmot }, - { 0x9462, 0x00000000, CHIP_FAMILY_RV790, "ATI Radeon HD 4800 Series", kMotmot }, + { 0x9456, 0x00000000, CHIP_FAMILY_RV770, "ATI FirePro V8700 (FireGL)", kMotmot }, + { 0x945A, 0x00000000, CHIP_FAMILY_RV770, "ATI Mobility Radeon HD 4870", kMotmot }, - { 0x9480, 0x00000000, CHIP_FAMILY_RV730, "ATI Mobility Radeon HD 4650 Series", kGliff }, + { 0x9460, 0x00000000, CHIP_FAMILY_RV790, "ATI Radeon HD 4800 Series", kMotmot }, + { 0x9462, 0x00000000, CHIP_FAMILY_RV790, "ATI Radeon HD 4800 Series", kMotmot }, - { 0x9488, 0x00000000, CHIP_FAMILY_RV730, "ATI Radeon HD 4650 Series", kGliff }, + { 0x9480, 0x00000000, CHIP_FAMILY_RV730, "ATI Radeon HD 4650 Series", kGliff }, - { 0x9490, 0x00000000, CHIP_FAMILY_RV730, "ATI Radeon HD 4600 Series", kFlicker }, + { 0x9488, 0x00000000, CHIP_FAMILY_RV730, "ATI Radeon HD 4650 Series", kGliff }, - { 0x9498, 0x00000000, CHIP_FAMILY_RV730, "ATI Radeon HD 4600 Series", kFlicker }, + { 0x9490, 0x00000000, CHIP_FAMILY_RV730, "ATI Radeon HD 4710 Series", kGliff }, + { 0x9491, 0x00000000, CHIP_FAMILY_RV730, "ATI Radeon HD 4600 Series", kGliff }, + { 0x9495, 0x00000000, CHIP_FAMILY_RV730, "ATI Radeon HD 4650 Series", kGliff }, + { 0x9498, 0x00000000, CHIP_FAMILY_RV730, "ATI Radeon HD 4710 Series", kGliff }, + { 0x94B3, 0x00000000, CHIP_FAMILY_RV740, "ATI Radeon HD 4770", kFlicker }, - { 0x94B4, 0x00000000, CHIP_FAMILY_RV740, "ATI Radeon HD 4700 Series", kFlicker }, + { 0x94B4, 0x00000000, CHIP_FAMILY_RV740, "ATI Radeon HD 4700 Series", kFlicker }, { 0x94B5, 0x00000000, CHIP_FAMILY_RV740, "ATI Radeon HD 4770", kFlicker }, { 0x94C1, 0x00000000, CHIP_FAMILY_RV610, "ATI Radeon HD 2400 Series", kIago }, - { 0x94C3, 0x00000000, CHIP_FAMILY_RV610, "ATI Radeon HD 2400 Series", kIago }, + { 0x94C3, 0x00000000, CHIP_FAMILY_RV610, "ATI Radeon HD 2350 Series", kIago }, { 0x94C4, 0x00000000, CHIP_FAMILY_RV610, "ATI Radeon HD 2400 Series", kIago }, { 0x94C5, 0x00000000, CHIP_FAMILY_RV610, "ATI Radeon HD 2400 Series", kIago }, @@ -1102,11 +1111,11 @@ { 0x94CC, 0x00000000, CHIP_FAMILY_RV610, "ATI Radeon HD 2400 Series", kIago }, { 0x9500, 0x00000000, CHIP_FAMILY_RV670, "ATI Radeon HD 3800 Series", kMegalodon }, - { 0x9501, 0x00000000, CHIP_FAMILY_RV670, "ATI Radeon HD 3800 Series", kMegalodon }, + { 0x9501, 0x00000000, CHIP_FAMILY_RV670, "ATI Radeon HD 3690 Series", kMegalodon }, { 0x9505, 0x00000000, CHIP_FAMILY_RV670, "ATI Radeon HD 3800 Series", kMegalodon }, - { 0x9507, 0x00000000, CHIP_FAMILY_RV670, "ATI Radeon HD 3850", kMegalodon }, + { 0x9507, 0x00000000, CHIP_FAMILY_RV670, "ATI Radeon HD 3830", kMegalodon }, { 0x950F, 0x00000000, CHIP_FAMILY_RV670, "ATI Radeon HD 3870 X2", kMegalodon }, @@ -1116,27 +1125,27 @@ { 0x9519, 0x00000000, CHIP_FAMILY_RV670, "AMD FireStream 9170", kMegalodon }, - { 0x9540, 0x00000000, CHIP_FAMILY_RV710, "ATI Radeon HD 4550", kNull }, - { 0x954F, 0x00000000, CHIP_FAMILY_RV710, "ATI Radeon HD 4300/4500 Series", kNull }, + { 0x9540, 0x00000000, CHIP_FAMILY_RV710, "ATI Radeon HD 4550", kFlicker }, + { 0x954F, 0x00000000, CHIP_FAMILY_RV710, "ATI Radeon HD 4350", kFlicker }, - { 0x9552, 0x00000000, CHIP_FAMILY_RV710, "ATI Radeon HD 4300/4500 Series", kShrike }, - { 0x9553, 0x00000000, CHIP_FAMILY_RV710, "ATI Radeon HD 4500M/5100M Series", kShrike }, + { 0x9552, 0x00000000, CHIP_FAMILY_RV710, "ATI Mobility Radeon HD 4300/4500 Series", kShrike }, + { 0x9553, 0x00000000, CHIP_FAMILY_RV710, "ATI Mobility Radeon HD 4500M/5100M Series", kShrike }, { 0x9555, 0x00000000, CHIP_FAMILY_RV710, "ATI Radeon HD4300/HD4500 series", kNull }, - { 0x9581, 0x00000000, CHIP_FAMILY_RV630, "ATI Radeon HD 3600 Series", kNull }, + { 0x9581, 0x00000000, CHIP_FAMILY_RV630, "ATI Radeon HD 3600 Series", kHypoprion }, - { 0x9583, 0x00000000, CHIP_FAMILY_RV630, "ATI Radeon HD 3600 Series", kNull }, + { 0x9583, 0x00000000, CHIP_FAMILY_RV630, "ATI Radeon HD 3600 Series", kHypoprion }, - { 0x9588, 0x00000000, CHIP_FAMILY_RV630, "ATI Radeon HD 2600 XT", kNull }, - { 0x9589, 0x00000000, CHIP_FAMILY_RV630, "ATI Radeon HD 3610 Series", kNull }, + { 0x9588, 0x00000000, CHIP_FAMILY_RV630, "ATI Radeon HD 2600 XT", kHypoprion }, + { 0x9589, 0x00000000, CHIP_FAMILY_RV630, "ATI Radeon HD 3610 Series", kHypoprion }, { 0x958A, 0x00000000, CHIP_FAMILY_RV630, "ATI Radeon HD 2600 X2 Series", kLamna }, { 0x958B, 0x00000000, CHIP_FAMILY_RV630, "ATI Radeon HD 2600 X2 Series", kLamna }, { 0x958C, 0x00000000, CHIP_FAMILY_RV630, "ATI Radeon HD 2600 X2 Series", kLamna }, { 0x958D, 0x00000000, CHIP_FAMILY_RV630, "ATI Radeon HD 2600 X2 Series", kLamna }, { 0x958E, 0x00000000, CHIP_FAMILY_RV630, "ATI Radeon HD 2600 X2 Series", kLamna }, - { 0x9591, 0x00000000, CHIP_FAMILY_RV635, "ATI Radeon HD 3600 Series", kNull }, + { 0x9591, 0x00000000, CHIP_FAMILY_RV635, "ATI Radeon HD 3600 Series", kMegalodon }, { 0x9598, 0x00000000, CHIP_FAMILY_RV630, "ATI Radeon HD 3600 Series", kMegalodon }, @@ -1146,11 +1155,11 @@ /* IGP */ { 0x9610, 0x00000000, CHIP_FAMILY_RS780, "ATI Radeon HD 3200 Graphics", kNull }, - { 0x9611, 0x00000000, CHIP_FAMILY_RS780, "ATI Radeon 3100 Graphics", kNull }, + { 0x9611, 0x00000000, CHIP_FAMILY_RS780, "ATI Radeon 3100 Graphics", kNull }, { 0x9614, 0x00000000, CHIP_FAMILY_RS780, "ATI Radeon HD 3300 Graphics", kNull }, - { 0x9616, 0x00000000, CHIP_FAMILY_RS780, "ATI Radeon 3000 Graphics", kNull }, + { 0x9616, 0x00000000, CHIP_FAMILY_RS780, "ATI Radeon 3000 Graphics", kNull }, { 0x9710, 0x00000000, CHIP_FAMILY_RS880, "ATI Radeon HD 4200 Series", kNull }, @@ -1183,7 +1192,7 @@ { 0x68A9, 0x00000000, CHIP_FAMILY_JUNIPER, "ATI FirePro V5800 (FireGL)", kNull }, - { 0x68B0, 0x00000000, CHIP_FAMILY_CYPRESS, "ATI Mobility Radeon HD 5800 Series", kNull }, // CHIP_FAMILY_BROADWAY ?? + { 0x68B0, 0x00000000, CHIP_FAMILY_CYPRESS, "ATI Mobility Radeon HD 5800 Series", kVervet }, // CHIP_FAMILY_BROADWAY ?? { 0x68B1, 0x00000000, CHIP_FAMILY_JUNIPER, "ATI Radeon HD 5770 Series", kVervet }, { 0x68B8, 0x00000000, CHIP_FAMILY_JUNIPER, "ATI Radeon HD 5700 Series", kVervet }, @@ -1193,12 +1202,12 @@ { 0x68BE, 0x00000000, CHIP_FAMILY_JUNIPER, "ATI Radeon HD 5700 Series", kVervet }, { 0x68BF, 0x00000000, CHIP_FAMILY_JUNIPER, "AMD Radeon HD 6700 Series", kVervet }, - { 0x68C0, 0x00000000, CHIP_FAMILY_REDWOOD, "AMD Radeon HD 6570M/5700 Series", kNull }, - { 0x68C1, 0x00000000, CHIP_FAMILY_REDWOOD, "AMD Radeon HD 6500M/5600/5700 Series", kNull }, + { 0x68C0, 0x00000000, CHIP_FAMILY_REDWOOD, "AMD Radeon HD 6570M/5700 Series", kBaboon }, + { 0x68C1, 0x00000000, CHIP_FAMILY_REDWOOD, "AMD Radeon HD 6500M/5600/5700 Series", kBaboon }, { 0x68C8, 0x00000000, CHIP_FAMILY_REDWOOD, "ATI Radeon HD 5650 Series", kVervet }, - { 0x68C9, 0x00000000, CHIP_FAMILY_REDWOOD, "ATI FirePro V3800 (FireGL)", kNull }, + { 0x68C9, 0x00000000, CHIP_FAMILY_REDWOOD, "ATI FirePro V3800 (FireGL)", kBaboon }, - { 0x68D8, 0x00000000, CHIP_FAMILY_REDWOOD, "ATI Radeon HD 5600 Series", kBaboon }, + { 0x68D8, 0x00000000, CHIP_FAMILY_REDWOOD, "ATI Radeon HD 5670 Series", kBaboon }, { 0x68D9, 0x00000000, CHIP_FAMILY_REDWOOD, "ATI Radeon HD 5500/5600 Series", kBaboon }, { 0x68DA, 0x00000000, CHIP_FAMILY_REDWOOD, "ATI Radeon HD 5500 Series", kBaboon }, @@ -1208,50 +1217,53 @@ { 0x68E0, 0x00000000, CHIP_FAMILY_REDWOOD, "ATI Mobility Radeon HD 5400 Series", kEulemur }, { 0x68E1, 0x00000000, CHIP_FAMILY_REDWOOD, "ATI Mobility Radeon HD 5400 Series", kEulemur }, - { 0x68E4, 0x00000000, CHIP_FAMILY_CEDAR, "ATI Radeon HD 6300M Series", kNull }, - { 0x68E5, 0x00000000, CHIP_FAMILY_CEDAR, "ATI Radeon HD 6300M Series", kNull }, + { 0x68E4, 0x00000000, CHIP_FAMILY_CEDAR, "ATI Radeon HD 6370M Series", kEulemur }, + { 0x68E5, 0x00000000, CHIP_FAMILY_CEDAR, "ATI Radeon HD 6300M Series", kEulemur }, // { 0x68E8, 0x00000000, CHIP_FAMILY_CEDAR, "ATI Radeon HD ??? Series", kNull }, // { 0x68E9, 0x00000000, CHIP_FAMILY_CEDAR, "ATI Radeon HD ??? Series", kNull }, // { 0x68F8, 0x00000000, CHIP_FAMILY_CEDAR, "ATI Radeon HD ??? Series", kNull }, - { 0x68F9, 0x00000000, CHIP_FAMILY_CEDAR, "ATI Radeon HD 5400 Series", kNull }, + { 0x68F9, 0x00000000, CHIP_FAMILY_CEDAR, "ATI Radeon HD 5470 Series", kEulemur }, { 0x68FA, 0x00000000, CHIP_FAMILY_CEDAR, "ATI Radeon HD 7300 Series", kNull }, // { 0x68FE, 0x00000000, CHIP_FAMILY_CEDAR, "ATI Radeon HD ??? Series", kNull }, /* Northen Islands */ - { 0x6718, 0x00000000, CHIP_FAMILY_CAYMAN, "AMD Radeon HD 6970 Series", kNull }, + { 0x6718, 0x00000000, CHIP_FAMILY_CAYMAN, "AMD Radeon HD 6970 Series", kLotus }, { 0x6719, 0x00000000, CHIP_FAMILY_CAYMAN, "AMD Radeon HD 6950 Series", kGibba }, { 0x671C, 0x00000000, CHIP_FAMILY_CAYMAN, "AMD Radeon HD 6970 Series", kLotus }, - { 0x671D, 0x00000000, CHIP_FAMILY_CAYMAN, "AMD Radeon HD 6900 Series", kNull }, + { 0x671D, 0x00000000, CHIP_FAMILY_CAYMAN, "AMD Radeon HD 6950 Series", kLotus }, - { 0x671F, 0x00000000, CHIP_FAMILY_CAYMAN, "AMD Radeon HD 6900 Series", kNull }, + { 0x671F, 0x00000000, CHIP_FAMILY_CAYMAN, "AMD Radeon HD 6930 Series", kLotus }, - { 0x6720, 0x00000000, CHIP_FAMILY_BARTS, "AMD Radeon HD 6900M Series", kNull }, + { 0x6720, 0x00000000, CHIP_FAMILY_BARTS, "AMD Radeon HD 6900M Series", kDuckweed }, + { 0x6722, 0x00000000, CHIP_FAMILY_BARTS, "AMD Radeon HD 6900M Series", kDuckweed }, { 0x6738, 0x00000000, CHIP_FAMILY_BARTS, "AMD Radeon HD 6870 Series", kDuckweed }, { 0x6739, 0x00000000, CHIP_FAMILY_BARTS, "AMD Radeon HD 6850 Series", kDuckweed }, - { 0x673E, 0x00000000, CHIP_FAMILY_BARTS, "AMD Radeon HD 6790 Series", kNull }, + { 0x673E, 0x00000000, CHIP_FAMILY_BARTS, "AMD Radeon HD 6790 Series", kDuckweed }, - { 0x6740, 0x00000000, CHIP_FAMILY_TURKS, "AMD Radeon HD 6700M Series", kNull }, - { 0x6741, 0x00000000, CHIP_FAMILY_TURKS, "AMD Radeon HD 6600M/6700M Series", kNull }, + { 0x6740, 0x00000000, CHIP_FAMILY_TURKS, "AMD Radeon HD 6770M Series", kPithecia }, + { 0x6741, 0x00000000, CHIP_FAMILY_TURKS, "AMD Radeon HD 6600M/6700M Series", kPithecia }, - { 0x6750, 0x00000000, CHIP_FAMILY_TURKS, "AMD Radeon HD 6600A Series", kNull }, + { 0x6745, 0x00000000, CHIP_FAMILY_TURKS, "AMD Radeon HD 6600M Series", kPithecia }, + { 0x6750, 0x00000000, CHIP_FAMILY_TURKS, "AMD Radeon HD 6600A Series", kPithecia }, - { 0x6758, 0x00000000, CHIP_FAMILY_TURKS, "AMD Radeon HD 6670 Series", kBulrushes }, - { 0x6759, 0x00000000, CHIP_FAMILY_TURKS, "AMD Radeon HD 6570/7570 Series", kNull }, + { 0x6758, 0x00000000, CHIP_FAMILY_TURKS, "AMD Radeon HD 6670 Series", kPithecia }, + { 0x6759, 0x00000000, CHIP_FAMILY_TURKS, "AMD Radeon HD 6570/7570 Series", kPithecia }, - { 0x675D, 0x00000000, CHIP_FAMILY_TURKS, "AMD Radeon HD 7500 Series", kNull }, + { 0x675D, 0x00000000, CHIP_FAMILY_TURKS, "AMD Radeon HD 7500 Series", kBulrushes }, - { 0x675F, 0x00000000, CHIP_FAMILY_TURKS, "AMD Radeon HD 5500 Series", kNull }, - { 0x6760, 0x00000000, CHIP_FAMILY_CAICOS, "AMD Radeon HD 6400M Series", kNull }, - { 0x6761, 0x00000000, CHIP_FAMILY_CAICOS, "AMD Radeon HD 6430M Series", kNull }, + { 0x675F, 0x00000000, CHIP_FAMILY_TURKS, "AMD Radeon HD 5500 Series", kBulrushes }, + { 0x6760, 0x00000000, CHIP_FAMILY_CAICOS, "AMD Radeon HD 6400M Series", kBulrushes }, + { 0x6761, 0x00000000, CHIP_FAMILY_CAICOS, "AMD Radeon HD 6430M Series", kBulrushes }, + { 0x6768, 0x00000000, CHIP_FAMILY_CAICOS, "AMD Radeon HD 6400M Series", kBulrushes }, - { 0x6770, 0x00000000, CHIP_FAMILY_CAICOS, "AMD Radeon HD 6400 Series", kNull }, + { 0x6770, 0x00000000, CHIP_FAMILY_CAICOS, "AMD Radeon HD 6400 Series", kBulrushes }, { 0x6772, 0x00000000, CHIP_FAMILY_CAICOS, "AMD Radeon HD 7400A Series", kNull }, Index: branches/ErmaC/Trunk/i386/libsaio/pci.c =================================================================== --- branches/ErmaC/Trunk/i386/libsaio/pci.c (revision 2050) +++ branches/ErmaC/Trunk/i386/libsaio/pci.c (revision 2051) @@ -92,10 +92,11 @@ continue; } bzero(new, sizeof(pci_dt_t)); + new->dev.addr = pci_addr; new->vendor_id = id & 0xffff; new->device_id = (id >> 16) & 0xffff; - new->subsys_id.subsys_id = pci_config_read32(pci_addr, PCI_SUBSYSTEM_VENDOR_ID); + new->subsys_id.subsys_id = pci_config_read32(pci_addr, PCI_SUBSYSTEM_VENDOR_ID); new->class_id = pci_config_read16(pci_addr, PCI_CLASS_DEVICE); new->parent = start;