Index: trunk/i386/libsaio/acpi_patcher.c =================================================================== --- trunk/i386/libsaio/acpi_patcher.c (revision 2841) +++ trunk/i386/libsaio/acpi_patcher.c (revision 2842) @@ -16,8 +16,8 @@ #include "state_generator.h" #ifndef DEBUG_ACPI -#define DEBUG_ACPI 0 - #endif + #define DEBUG_ACPI 0 +#endif #if DEBUG_ACPI==2 #define DBG(x...) {printf(x); sleep(1);} Index: trunk/i386/libsaio/hda.c =================================================================== --- trunk/i386/libsaio/hda.c (revision 2841) +++ trunk/i386/libsaio/hda.c (revision 2842) @@ -184,6 +184,8 @@ { HDA_NVIDIA_GK106, "GK106" /*, 0, ? */ }, { HDA_NVIDIA_GK107, "GK107" /*, 0, ? */ }, { HDA_NVIDIA_GK104, "GK104" /*, 0, ? */ }, + { HDA_NVIDIA_GP104_2, "Pascal GP104-200" /*, 0, ? */ }, + { HDA_NVIDIA_GM204_2, "Maxwell GP204-200" /*, 0, ? */ }, //1002 Advanced Micro Devices [AMD] nee ATI Technologies Inc { HDA_ATI_SB450, "SB4x0" /*, 0, 0 */ }, @@ -625,13 +627,13 @@ name_format = "ATI %s HDA Controller (HDMi)"; break; case INTEL_VENDORID: - name_format = "Intel %s High Definition Audio Controller"; break; + name_format = "Intel %s HDA Controller"; break; case NVIDIA_VENDORID: name_format = "nVidia %s HDA Controller (HDMi)"; break; case RDC_VENDORID: - name_format = "RDC %s High Definition Audio Controller"; break; + name_format = "RDC %s HDA Controller"; break; case SIS_VENDORID: name_format = "SiS %s HDA Controller"; break; @@ -656,7 +658,7 @@ } /* Not in table */ - snprintf(desc, sizeof(desc), "Unknown HD Audio device, vendor %04x, model %04x", + snprintf(desc, sizeof(desc), "Unknown HDA device, vendor %04x, model %04x", controller_vendor_id, controller_device_id); return desc; } Index: trunk/i386/libsaio/hda.h =================================================================== --- trunk/i386/libsaio/hda.h (revision 2841) +++ trunk/i386/libsaio/hda.h (revision 2842) @@ -171,6 +171,8 @@ #define HDA_NVIDIA_GK106 HDA_MODEL_CONSTRUCT(NVIDIA, 0x0e0b) #define HDA_NVIDIA_GK110 HDA_MODEL_CONSTRUCT(NVIDIA, 0x0e1a) #define HDA_NVIDIA_GK107 HDA_MODEL_CONSTRUCT(NVIDIA, 0x0e1b) // HDACodec de104200 (10de0042) +#define HDA_NVIDIA_GP104_2 HDA_MODEL_CONSTRUCT(NVIDIA, 0x10f0) // GeForce GTX 1070 +#define HDA_NVIDIA_GM204_2 HDA_MODEL_CONSTRUCT(NVIDIA, 0x0fbb) // GeForce GTX 970 #define HDA_NVIDIA_ALL HDA_MODEL_CONSTRUCT(NVIDIA, 0xffff) /* ATI */ Index: trunk/i386/libsaio/nvidia.c =================================================================== --- trunk/i386/libsaio/nvidia.c (revision 2841) +++ trunk/i386/libsaio/nvidia.c (revision 2842) @@ -821,7 +821,7 @@ { 0x10DE0A2A, "GeForce GT 230M" }, { 0x10DE0A2B, "GeForce GT 330M" }, { 0x10DE0A2C, "NVS 5100M" }, - { 0x10DE0A2D, "GeForce GT 320M" }, + { 0x10DE0A2D, "GeForce GT 320M" }, // 0A30 - 0A3F { 0x10DE0A30, "GeForce GT 330M" }, { 0x10DE0A32, "GeForce GT 415" }, @@ -847,7 +847,7 @@ { 0x10DE0A6A, "NVS 2100M" }, { 0x10DE0A6C, "NVS 3100M" }, { 0x10DE0A6E, "GeForce 305M" }, - { 0x10DE0A6F, "ION" }, + { 0x10DE0A6F, "ION" }, // 0A70 - 0A7F { 0x10DE0A70, "GeForce 310M" }, { 0x10DE0A71, "GeForce 305M" }, @@ -911,7 +911,7 @@ { 0x10DE0CAD, "N10E-ES" }, // SUBIDS { 0x10DE0CAE, "GT215-INT" }, { 0x10DE0CAF, "GeForce GT 335M" }, - // 0CB0 - 0CBF + // 0CB0 - 0CBF { 0x10DE0CB0, "GeForce GTS 350M" }, { 0x10DE0CB1, "GeForce GTS 360M" }, { 0x10DE0CBC, "Quadro FX 1800M" }, @@ -943,7 +943,7 @@ { 0x10DE0DCD, "GeForce GT 555M" }, { 0x10DE0DCE, "GeForce GT 555M" }, // { 0x10DE0DCF, "N12P-GT-B" }, - // 0DD0 - 0DDF + // 0DD0 - 0DDF { 0x10DE0DD0, "N11E-GT" }, { 0x10DE0DD1, "GeForce GTX 460M" }, { 0x10DE0DD2, "GeForce GT 445M" }, @@ -1294,6 +1294,7 @@ { 0x10DE1286, "GeForce GT 720" }, { 0x10DE1287, "GeForce GT 730" }, // GK208 { 0x10DE1288, "GeForce GT 720" }, // GK208 + { 0x10DE128b, "GeForce GT 710" }, // 1290 - 129F { 0x10DE1290, "GeForce GT 730M" }, { 0x10DE1291, "GeForce GT 735M" }, @@ -1319,6 +1320,13 @@ { 0x10DE1341, "GeForce 840M" }, { 0x10DE1346, "GeForce 930M" }, // GM108M { 0x10DE1347, "GeForce 940M" }, // GM108M + { 0x10DE1348, "GeForce 945M/945A" }, // GM108M + { 0x10DE1349, "GeForce 930M" }, // GM108M + { 0x10DE134D, "GeForce 940MX" }, // GM108M + { 0x10DE134E, "GeForce 930MX" }, // GM108M + { 0x10DE134F, "GeForce 920MX" }, // GM108M + { 0x10DE137A, "Quadro K620M/M500M" }, // GM108GLM + { 0x10DE137D, "GeForce 940A" }, // GM108M { 0x10DE1380, "GeForce GTX 750 Ti" }, { 0x10DE1381, "GeForce GTX 750" }, { 0x10DE1382, "GeForce GTX 745" }, @@ -1331,10 +1339,16 @@ { 0x10DE1398, "GeForce 845M" }, // { 0x10DE139A, "GeForce GTX 950M" }, // GM107 { 0x10DE139B, "GeForce GTX 960M" }, // GM107 + { 0x10DE139C, "GeForce 940M" }, // GM107M + { 0x10DE139D, "GeForce GTX 750 Ti" }, // GM107M { 0x10DE13AD, "GM107 INT52" }, // { 0x10DE13AE, "GM107 CS1" }, // // { 0x10DE13AF, "Graphics Device" }, // GM107GLM - { 0x10DE13B3, "Quadro K2200M" }, // + { 0x10DE13B0, "GQuadro M2000M" }, // GM107GLM + { 0x10DE13B1, "Quadro M1000M" }, // GM107GLM + { 0x10DE13B2, "Quadro M600M" }, // GM107GLM + { 0x10DE13B3, "Quadro K2200M" }, // GM107GLM + { 0x10DE13B9, "NVS 810" }, // GM107GL { 0x10DE13BA, "Quadro K2200" }, { 0x10DE13BB, "Quadro K620" }, { 0x10DE13BC, "Quadro K1200" }, @@ -1349,18 +1363,34 @@ { 0x10DE13D7, "GeForce GTX 980M" }, // { 0x10DE13D8, "GeForce GTX 970M" }, // { 0x10DE13D9, "GeForce GTX 965M" }, -// { 0x10DE13F0, "Graphics Device" }, // GM107GLM -// { 0x10DE13F1, "Graphics Device" }, // GM107GLM + { 0x10DE13DA, "GeForce GTX 980" }, // GM204M + { 0x10DE13F0, "Quadro M5000" }, // GM204GL + { 0x10DE13F1, "Quadro M4000" }, // GM204GL + { 0x10DE13F2, "Tesla M60" }, // GM204GL + { 0x10DE13F3, "Tesla M6" }, // GM204GL + { 0x10DE13F8, "Quadro M5000M" }, // GM204GLM + { 0x10DE13F9, "Quadro M4000M" }, // GM204GLM + { 0x10DE13FA, "Quadro M3000M" }, // GM204GLM + { 0x10DE13FB, "Quadro M5500" }, // GM204GLM { 0x10DE1401, "GeForce GTX 960" }, // -// { 0x10DE1402, "Graphics Device" }, // + { 0x10DE1402, "GeForce GTX 950" }, // + { 0x10DE1406, "GeForce GTX 960" }, // GM206 + { 0x10DE1407, "GeForce GTX 750 v2" }, // GM206 + { 0x10DE1427, "GeForce GTX 965M" }, // GM206M + { 0x10DE1430, "Quadro M2000" }, // + { 0x10DE1431, "Tesla M4" }, // GM206GL // { 0x10DE143F, "Graphics Device" }, // // { 0x10DE1600, "Graphics Device" }, // // { 0x10DE1601, "Graphics Device" }, // // { 0x10DE1602, "Graphics Device" }, // // { 0x10DE1603, "Graphics Device" }, // { 0x10DE1617, "GeForce GTX 980M" }, // + { 0x10DE1618, "GeForce GTX 970M" }, // GM204M + { 0x10DE1619, "GeForce GTX 965M" }, // GM204M + { 0x10DE161A, "GeForce GTX 980" }, // GM204M // { 0x10DE1630, "Graphics Device" }, // // { 0x10DE1631, "Graphics Device" }, // + { 0x10DE1667, "GeForce GTX 965M" }, // GM204M // { 0x10DE1780, "Graphics Device" }, // // { 0x10DE1781, "Graphics Device" }, // // { 0x10DE1782, "Graphics Device" }, // @@ -1376,11 +1406,41 @@ { 0x10DE17BE, "GM107 CS1" }, // GM107 // { 0x10DE17C1, "Graphics Device" }, // { 0x10DE17C2, "GeForce GTX Titan X" }, // - { 0x10DE17C8, "GeForce GTX 980 TI" }, + { 0x10DE17C8, "GeForce GTX 980 TI" }, // // { 0x10DE17EE, "Graphics Device" }, // // { 0x10DE17EF, "Graphics Device" }, // - { 0x10DE17F0, "Quadro M6000" } + { 0x10DE17F0, "Quadro M6000" }, // { 0x10DE17FF, "Graphics Device" }, // + { 0x10DE17F1, "Quadro M6000" }, // GM200GL + { 0x10DE17FD, "Tesla M40" }, // GM200GL + // 1B00 - 1CFFF + { 0x10DE1B00, "Titan X Pascal"}, // GP102 +// { 0x10DE1B01, "Graphics Device" }, // GP102 + { 0x10DE1B30, "Quadro P6000" }, // GP102GL +// { 0x10DE1B70, "Graphics Device" }, // GP102GL +// { 0x10DE1B78, "Graphics Device" }, // GP102GL + { 0x10DE1B80, "GeForce GTX 1080"}, // GP104 + { 0x10DE1B81, "GeForce GTX 1070"}, // GP104 +// { 0x10DE1B82, "Graphics Device" }, // GP104 +// { 0x10DE1B83, "Graphics Device" }, // GP104 + { 0x10DE1BA0, "GeForce GTX 1080" }, // GP104M + { 0x10DE1BA1, "GeForce GTX 1070" }, // GP104M + { 0x10DE1BB0, "Quadro P5000" }, // GP104GL +// { 0x10DE1BB1, "Graphics Device" }, // GP104GL +// { 0x10DE1BB4, "Graphics Device" }, // GP104GL + { 0x10DE1BE0, "GeForce GTX 1080" }, //GP104M + { 0x10DE1BE1, "GeForce GTX 1070" }, //GP104M +// { 0x10DE1C00, "Graphics Device" }, // GP106 +// { 0x10DE1C01, "Graphics Device" }, // GP106 + { 0x10DE1C02, "GeForce GTX 1060"}, // GP106 + { 0x10DE1C03, "GeForce GTX 1060"}, // GP106 + { 0x10DE1c20, "GeForce GTX 1060" }, //GP106M +// { 0x10DE1C30, "Graphics Device" }, // GP106GL + { 0x10DE1C60, "GeForce GTX 1060" }, // GP106M +// { 0x10DE1C70, "Graphics Device" }, // GP106GL +// { 0x10DE1C80, "Graphics Device" }, // GP107 +// { 0x10DE1C81, "Graphics Device" }, // GP107 + { 0x10DE1C82, "GeForce GTX 1050 Ti"}, // GP107 }; static nvidia_card_info_t nvidia_card_exceptions[] = { Index: trunk/i386/libsaio/ati.c =================================================================== --- trunk/i386/libsaio/ati.c (revision 2841) +++ trunk/i386/libsaio/ati.c (revision 2842) @@ -63,10 +63,10 @@ {"Galago", 2}, {"Colobus", 2}, {"Mangabey", 2}, - {"Nomascus", 4}, // 5 + {"Nomascus", 5}, {"Orangutan", 2}, /* AMD6000Controller */ - {"Pithecia", 2}, // 3 + {"Pithecia", 3}, {"Bulrushes", 6}, {"Cattail", 4}, {"Hydrilla", 5}, @@ -84,6 +84,8 @@ {"Spikerush", 4}, {"Typha", 5}, /* AMD7000Controller */ + {"Ramen", 6}, + {"Tako", 6}, {"Namako", 4}, {"Aji", 4}, {"Buri", 4}, @@ -93,7 +95,7 @@ {"Gari", 5}, {"Futomaki", 5}, {"Hamachi", 4}, - {"OPM", 6}, + {"OPM", 5}, {"Ikura", 1}, {"IkuraS", 6}, {"Junsai", 6}, @@ -105,10 +107,22 @@ /* AMD8000Controller */ {"Baladi", 6}, /* AMD9000Controller */ - {"Exmoor", 4}, + {"Exmoor", 6}, + {"MalteseS", 1}, + {"Lagotto", 4}, + {"GreyhoundS", 1}, + {"Maltese", 6}, {"Basset", 4}, {"Greyhound", 6}, - {"Labrador", 6} + {"Labrador", 6}, + /* AMD9500Controller */ + {"Elqui", 5}, + {"Acre", 3}, + {"Berbice", 5}, + {"Caroni", 5}, + {"Florin", 6}, + {"Dayman", 6}, + {"Guariba", 6} }; static radeon_card_info_t radeon_cards[] = { @@ -1209,6 +1223,29 @@ // { 0x67BA, 0x00000000, CHIP_FAMILY_HAWAII, "AMD Radeon", kFutomaki }, // { 0x67BE, 0x00000000, CHIP_FAMILY_HAWAII, "AMD Radeon", kFutomaki }, + // Polaris 10 + { 0x67C0, 0x00000000, CHIP_FAMILY_ELLESMERE, "AMD Radeon Polaris 10", kNull }, + { 0x67C1, 0x00000000, CHIP_FAMILY_ELLESMERE, "AMD Radeon Polaris 10", kNull }, + { 0x67C2, 0x00000000, CHIP_FAMILY_ELLESMERE, "AMD Radeon Polaris 10", kNull }, + { 0x67C4, 0x00000000, CHIP_FAMILY_ELLESMERE, "AMD Radeon Polaris 10", kNull }, + { 0x67C7, 0x00000000, CHIP_FAMILY_ELLESMERE, "AMD Radeon Polaris 10", kNull }, + { 0x67C8, 0x00000000, CHIP_FAMILY_ELLESMERE, "AMD Radeon Polaris 10", kNull }, + { 0x67C9, 0x00000000, CHIP_FAMILY_ELLESMERE, "AMD Radeon Polaris 10", kNull }, + { 0x67CA, 0x00000000, CHIP_FAMILY_ELLESMERE, "AMD Radeon Polaris 10", kNull }, + { 0x67CC, 0x00000000, CHIP_FAMILY_ELLESMERE, "AMD Radeon Polaris 10", kNull }, + { 0x67CF, 0x00000000, CHIP_FAMILY_ELLESMERE, "AMD Radeon Polaris 10", kNull }, + { 0x67DF, 0x00000000, CHIP_FAMILY_ELLESMERE, "AMD Radeon RX480", kDayman }, + + // Polaris 11 + { 0x67E0, 0x00000000, CHIP_FAMILY_BAFFIN, "AMD Radeon RX460", kAcre }, + { 0x67E1, 0x00000000, CHIP_FAMILY_BAFFIN, "AMD Radeon Polaris 11", kNull }, + { 0x67E3, 0x00000000, CHIP_FAMILY_BAFFIN, "AMD Radeon Polaris 11", kNull }, + { 0x67E7, 0x00000000, CHIP_FAMILY_BAFFIN, "AMD Radeon Polaris 11", kNull }, + { 0x67E8, 0x00000000, CHIP_FAMILY_BAFFIN, "AMD Radeon Polaris 11", kNull }, + { 0x67E9, 0x00000000, CHIP_FAMILY_BAFFIN, "AMD Radeon Polaris 11", kNull }, + { 0x67EB, 0x00000000, CHIP_FAMILY_BAFFIN, "AMD Radeon Polaris 11", kNull }, + { 0x67EF, 0x00000000, CHIP_FAMILY_BAFFIN, "AMD Radeon RX460", kAcre }, + { 0x67FF, 0x00000000, CHIP_FAMILY_BAFFIN, "AMD Radeon Polaris 11", kNull }, // PITCAIRN { 0x6800, 0x00000000, CHIP_FAMILY_PITCAIRN, "AMD Radeon HD 7970M", kBuri }, // Mobile { 0x6801, 0x00000000, CHIP_FAMILY_PITCAIRN, "AMD Radeon HD 8970M Series", kFutomaki }, // Mobile @@ -1309,7 +1346,7 @@ // CEDAR { 0x68E0, 0x00000000, CHIP_FAMILY_CEDAR, "ATI Radeon HD 5470 Series", kGalago }, - { 0x68E1, 0x00000000, CHIP_FAMILY_CEDAR, "AMD Radeon HD 6230", kGalago }, + { 0x68E1, 0x00000000, CHIP_FAMILY_CEDAR, "AMD Radeon HD 6230/6350/8350", kGalago }, { 0x68E4, 0x00000000, CHIP_FAMILY_CEDAR, "ATI Radeon HD 6370M Series", kGalago }, { 0x68E5, 0x00000000, CHIP_FAMILY_CEDAR, "ATI Radeon HD 6300M Series", kGalago }, // { 0x68E8, 0x00000000, CHIP_FAMILY_CEDAR, "ATI Radeon HD ??? Series", kNull }, @@ -1322,8 +1359,8 @@ // { 0x68FE, 0x00000000, CHIP_FAMILY_CEDAR, "ATI Radeon HD ??? Series", kNull }, // - { 0x6900, 0x00000000, CHIP_FAMILY_TOPAS, "ATI Radeon R7 M260/M265", kExmoor }, - { 0x6901, 0x00000000, CHIP_FAMILY_TOPAS, "ATI Radeon R5 M255", kExmoor }, + { 0x6900, 0x00000000, CHIP_FAMILY_TOPAZ, "ATI Radeon R7 M260/M265", kExmoor }, + { 0x6901, 0x00000000, CHIP_FAMILY_TOPAZ, "ATI Radeon R5 M255", kExmoor }, { 0x6920, 0x00000000, CHIP_FAMILY_AMETHYST, "ATI Radeon R9 M395X", kLabrador }, { 0x6921, 0x00000000, CHIP_FAMILY_AMETHYST, "ATI Radeon R9 M295X", kExmoor }, { 0x692B, 0x00000000, CHIP_FAMILY_TONGA, "ATI Firepro W7100", kBaladi }, @@ -1767,6 +1804,7 @@ "Hemlock", "Juniper", "Redwood", + // "Broadway", /* Northern Islands */ "Barts", "Caicos", @@ -1788,9 +1826,14 @@ "Hawaii", /* ... */ "Mullins", - "Topas", + "Topaz", "Amethyst", "Tonga", + "Fiji", + "Carrizo", + "Tobago", + "Ellesmere", + "Baffin", "" }; Index: trunk/i386/libsaio/ati.h =================================================================== --- trunk/i386/libsaio/ati.h (revision 2841) +++ trunk/i386/libsaio/ati.h (revision 2842) @@ -99,9 +99,14 @@ CHIP_FAMILY_HAWAII, /* ... */ CHIP_FAMILY_MULLINS, - CHIP_FAMILY_TOPAS, + CHIP_FAMILY_TOPAZ, CHIP_FAMILY_AMETHYST, CHIP_FAMILY_TONGA, + CHIP_FAMILY_FIJI, + CHIP_FAMILY_CARRIZO, + CHIP_FAMILY_TOBAGO, + CHIP_FAMILY_ELLESMERE, /* Polaris 10 */ + CHIP_FAMILY_BAFFIN, /* Polaris 11 */ CHIP_FAMILY_LAST } ati_chip_family_t; @@ -172,6 +177,8 @@ kSpikerush, kTypha, /* AMD7000Controller */ + kRamen, + kTako, kNamako, kAji, kBuri, @@ -194,9 +201,21 @@ kBaladi, /* AMD9000Controller */ kExmoor, + kMalteseS, + kLagotto, + kGreyhoundS, + kMaltese, kBasset, kGreyhound, kLabrador, + /* AMD9500Controller */ + kElqui, + kAcre, + kBerbice, + kCaroni, + kFlorin, + kDayman, + kGuariba, kCfgEnd } config_name_t; Index: trunk/i386/libsaio/cpu.c =================================================================== --- trunk/i386/libsaio/cpu.c (revision 2841) +++ trunk/i386/libsaio/cpu.c (revision 2842) @@ -20,7 +20,6 @@ #define DBG(x...) #endif - #define UI_CPUFREQ_ROUNDING_FACTOR 10000000 clock_frequency_info_t gPEClockFrequencyInfo; @@ -590,16 +589,25 @@ case CPUID_MODEL_JAKETOWN: case CPUID_MODEL_SANDYBRIDGE: case CPUID_MODEL_IVYBRIDGE: + case CPUID_MODEL_IVYBRIDGE_XEON: case CPUID_MODEL_HASWELL_U5: case CPUID_MODEL_HASWELL: case CPUID_MODEL_HASWELL_SVR: - //case CPUID_MODEL_HASWELL_H: case CPUID_MODEL_HASWELL_ULT: case CPUID_MODEL_HASWELL_ULX: case CPUID_MODEL_BROADWELL_HQ: + case CPUID_MODEL_BRASWELL: + case CPUID_MODEL_AVOTON: + case CPUID_MODEL_SKYLAKE: case CPUID_MODEL_BRODWELL_SVR: + case CPUID_MODEL_BRODWELL_MSVR: + case CPUID_MODEL_KNIGHT: + case CPUID_MODEL_ANNIDALE: + case CPUID_MODEL_GOLDMONT: + case CPUID_MODEL_VALLEYVIEW: case CPUID_MODEL_SKYLAKE_S: - //case CPUID_MODEL_: + case CPUID_MODEL_SKYLAKE_AVX: + case CPUID_MODEL_CANNONLAKE: msr = rdmsr64(MSR_CORE_THREAD_COUNT); // 0x35 p->CPU.NoCores = (uint32_t)bitfield((uint32_t)msr, 31, 16); p->CPU.NoThreads = (uint32_t)bitfield((uint32_t)msr, 15, 0); @@ -625,21 +633,6 @@ break; } - if (p->CPU.NoCores == 0) - { - p->CPU.NoCores = cores_per_package; - p->CPU.NoThreads = logical_per_package; - } - - // MSR is *NOT* available on the Intel Atom CPU - // workaround for N270. I don't know why it detected wrong - if ((p->CPU.Model == CPUID_MODEL_ATOM) && (strstr(p->CPU.BrandString, "270"))) - { - p->CPU.NoCores = 1; - p->CPU.NoThreads = 2; - } - - // workaround for Xeon Harpertown and Yorkfield if ((p->CPU.Model == CPUID_MODEL_PENRYN) && (p->CPU.NoCores == 0)) @@ -665,6 +658,20 @@ } } + if (p->CPU.NoCores == 0) + { + p->CPU.NoCores = cores_per_package; + p->CPU.NoThreads = logical_per_package; + } + + // MSR is *NOT* available on the Intel Atom CPU + // workaround for N270. I don't know why it detected wrong + if ((p->CPU.Model == CPUID_MODEL_ATOM) && (strstr(p->CPU.BrandString, "270"))) + { + p->CPU.NoCores = 1; + p->CPU.NoThreads = 2; + } + // workaround for Quad if ( strstr(p->CPU.BrandString, "Quad") ) { Index: trunk/i386/libsaio/platform.h =================================================================== --- trunk/i386/libsaio/platform.h (revision 2841) +++ trunk/i386/libsaio/platform.h (revision 2842) @@ -73,12 +73,16 @@ #define CPUID_MODEL_BRODWELL_SVR 0x4F // Broadwell Server **BDX #define CPUID_MODEL_SKYLAKE_AVX 0x55 // Skylake with AVX-512 support. #define CPUID_MODEL_BRODWELL_MSVR 0x56 // Broadwell Micro Server, Future Xeon **BDX-DE -//#define CPUID_MODEL_KNIGHT 0x57 +#define CPUID_MODEL_KNIGHT 0x57 // Knights Landing #define CPUID_MODEL_ANNIDALE 0x5A // Silvermont, Future Atom E3000, Z3000 (Annidale) -//#define CPUID_MODEL_GOLDMONT 0x5C +#define CPUID_MODEL_GOLDMONT 0x5C #define CPUID_MODEL_VALLEYVIEW 0x5D // Silvermont, Future Atom E3000, Z3000 #define CPUID_MODEL_SKYLAKE_S 0x5E // Skylake **SKL -//#define CPUID_MODEL_CANNONLAKE 0x66 +#define CPUID_MODEL_CANNONLAKE 0x66 +#define CPUID_MODEL_DENVERTON 0x5F // Goldmont Microserver +#define CPUID_MODEL_XEON_MILL 0x85 // Knights Mill +#define CPUID_MODEL_KABYLAKE1 0x8E // Kabylake Mobile +#define CPUID_MODEL_KABYLAKE2 0x9E // Kabylake Dektop /* CPUID Vendor */ #define CPUID_VID_INTEL "GenuineIntel" Index: trunk/i386/libsaio/smbios_getters.c =================================================================== --- trunk/i386/libsaio/smbios_getters.c (revision 2841) +++ trunk/i386/libsaio/smbios_getters.c (revision 2842) @@ -20,6 +20,9 @@ #define XEON "Xeon" #define CORE_M "Core(TM) M" +#define CORE_M3 "Core(TM) m3" +#define CORE_M5 "Core(TM) m5" +#define CORE_M7 "Core(TM) m7" #define CORE_I3 "Core(TM) i3" #define CORE_I5 "Core(TM) i5" #define CORE_I7 "Core(TM) i7" @@ -384,7 +387,6 @@ return true; case CPUID_MODEL_HASWELL_U5: // 0x3D - - case CPUID_MODEL_SKYLAKE_S: // 0x5E if (strstr(Platform.CPU.BrandString, CORE_M)) { @@ -424,14 +426,15 @@ value->word = 0xA01; // 2561 - Xeon return true; - case CPUID_MODEL_ATOM_3700: // 0x37 - - case CPUID_MODEL_HASWELL: // 0x3C - - case CPUID_MODEL_HASWELL_SVR: // 0x3F - - case CPUID_MODEL_HASWELL_ULT: // 0x45 - - case CPUID_MODEL_HASWELL_ULX: // 0x46 - + case CPUID_MODEL_ATOM_3700: // 0x37 + case CPUID_MODEL_HASWELL: // 0x3C + case CPUID_MODEL_HASWELL_SVR: // 0x3F + case CPUID_MODEL_HASWELL_ULT: // 0x45 + case CPUID_MODEL_HASWELL_ULX: // 0x46 case CPUID_MODEL_BROADWELL_HQ: // 0x47 - case CPUID_MODEL_SKYLAKE: - case CPUID_MODEL_SKYLAKE_AVX: + case CPUID_MODEL_SKYLAKE: // 0x4E + case CPUID_MODEL_SKYLAKE_AVX: // 0x55 + case CPUID_MODEL_SKYLAKE_S: // 0x5E if (strstr(Platform.CPU.BrandString, XEON)) { @@ -456,6 +459,30 @@ return true; } + if (strstr(Platform.CPU.BrandString, CORE_M)) + { + value->word = 0xB06; // 2822 + return true; + } + + if (strstr(Platform.CPU.BrandString, CORE_M3)) + { + value->word = 0xC05; + return true; + } + + if (strstr(Platform.CPU.BrandString, CORE_M5)) + { + value->word = 0xD05; + return true; + } + + if (strstr(Platform.CPU.BrandString, CORE_M7)) + { + value->word = 0xE05; + return true; + } + if (Platform.CPU.NoCores <= 2) { value->word = 0x904; // - Core i3 Index: trunk/i386/boot2/boot.c =================================================================== --- trunk/i386/boot2/boot.c (revision 2841) +++ trunk/i386/boot2/boot.c (revision 2842) @@ -1120,7 +1120,7 @@ } // OS X El Capitan 10.11 - if ( MacOSVerCurrent >= MacOSVer2Int("10.11") ) // El Capitan and Up! + if ( MacOSVerCurrent >= MacOSVer2Int("10.11") ) // El Capitan and Sierra! { // ErmaC verbose("\n"); Index: branches/ErmaC/Enoch/i386/libsaio/acpi_patcher.c =================================================================== --- branches/ErmaC/Enoch/i386/libsaio/acpi_patcher.c (revision 2841) +++ branches/ErmaC/Enoch/i386/libsaio/acpi_patcher.c (revision 2842) @@ -16,8 +16,8 @@ #include "state_generator.h" #ifndef DEBUG_ACPI -#define DEBUG_ACPI 0 - #endif + #define DEBUG_ACPI 0 +#endif #if DEBUG_ACPI==2 #define DBG(x...) {printf(x); sleep(1);} Index: branches/ErmaC/Enoch/i386/libsaio/hda.c =================================================================== --- branches/ErmaC/Enoch/i386/libsaio/hda.c (revision 2841) +++ branches/ErmaC/Enoch/i386/libsaio/hda.c (revision 2842) @@ -184,6 +184,8 @@ { HDA_NVIDIA_GK106, "GK106" /*, 0, ? */ }, { HDA_NVIDIA_GK107, "GK107" /*, 0, ? */ }, { HDA_NVIDIA_GK104, "GK104" /*, 0, ? */ }, + { HDA_NVIDIA_GP104_2, "Pascal GP104-200" /*, 0, ? */ }, + { HDA_NVIDIA_GM204_2, "Maxwell GP204-200" /*, 0, ? */ }, //1002 Advanced Micro Devices [AMD] nee ATI Technologies Inc { HDA_ATI_SB450, "SB4x0" /*, 0, 0 */ }, @@ -625,13 +627,13 @@ name_format = "ATI %s HDA Controller (HDMi)"; break; case INTEL_VENDORID: - name_format = "Intel %s High Definition Audio Controller"; break; + name_format = "Intel %s HDA Controller"; break; case NVIDIA_VENDORID: name_format = "nVidia %s HDA Controller (HDMi)"; break; case RDC_VENDORID: - name_format = "RDC %s High Definition Audio Controller"; break; + name_format = "RDC %s HDA Controller"; break; case SIS_VENDORID: name_format = "SiS %s HDA Controller"; break; @@ -656,7 +658,7 @@ } /* Not in table */ - snprintf(desc, sizeof(desc), "Unknown HD Audio device, vendor %04x, model %04x", + snprintf(desc, sizeof(desc), "Unknown HDA device, vendor %04x, model %04x", controller_vendor_id, controller_device_id); return desc; } Index: branches/ErmaC/Enoch/i386/libsaio/hda.h =================================================================== --- branches/ErmaC/Enoch/i386/libsaio/hda.h (revision 2841) +++ branches/ErmaC/Enoch/i386/libsaio/hda.h (revision 2842) @@ -171,6 +171,8 @@ #define HDA_NVIDIA_GK106 HDA_MODEL_CONSTRUCT(NVIDIA, 0x0e0b) #define HDA_NVIDIA_GK110 HDA_MODEL_CONSTRUCT(NVIDIA, 0x0e1a) #define HDA_NVIDIA_GK107 HDA_MODEL_CONSTRUCT(NVIDIA, 0x0e1b) // HDACodec de104200 (10de0042) +#define HDA_NVIDIA_GP104_2 HDA_MODEL_CONSTRUCT(NVIDIA, 0x10f0) // GeForce GTX 1070 +#define HDA_NVIDIA_GM204_2 HDA_MODEL_CONSTRUCT(NVIDIA, 0x0fbb) // GeForce GTX 970 #define HDA_NVIDIA_ALL HDA_MODEL_CONSTRUCT(NVIDIA, 0xffff) /* ATI */ Index: branches/ErmaC/Enoch/i386/libsaio/nvidia.c =================================================================== --- branches/ErmaC/Enoch/i386/libsaio/nvidia.c (revision 2841) +++ branches/ErmaC/Enoch/i386/libsaio/nvidia.c (revision 2842) @@ -821,7 +821,7 @@ { 0x10DE0A2A, "GeForce GT 230M" }, { 0x10DE0A2B, "GeForce GT 330M" }, { 0x10DE0A2C, "NVS 5100M" }, - { 0x10DE0A2D, "GeForce GT 320M" }, + { 0x10DE0A2D, "GeForce GT 320M" }, // 0A30 - 0A3F { 0x10DE0A30, "GeForce GT 330M" }, { 0x10DE0A32, "GeForce GT 415" }, @@ -847,7 +847,7 @@ { 0x10DE0A6A, "NVS 2100M" }, { 0x10DE0A6C, "NVS 3100M" }, { 0x10DE0A6E, "GeForce 305M" }, - { 0x10DE0A6F, "ION" }, + { 0x10DE0A6F, "ION" }, // 0A70 - 0A7F { 0x10DE0A70, "GeForce 310M" }, { 0x10DE0A71, "GeForce 305M" }, @@ -911,7 +911,7 @@ { 0x10DE0CAD, "N10E-ES" }, // SUBIDS { 0x10DE0CAE, "GT215-INT" }, { 0x10DE0CAF, "GeForce GT 335M" }, - // 0CB0 - 0CBF + // 0CB0 - 0CBF { 0x10DE0CB0, "GeForce GTS 350M" }, { 0x10DE0CB1, "GeForce GTS 360M" }, { 0x10DE0CBC, "Quadro FX 1800M" }, @@ -943,7 +943,7 @@ { 0x10DE0DCD, "GeForce GT 555M" }, { 0x10DE0DCE, "GeForce GT 555M" }, // { 0x10DE0DCF, "N12P-GT-B" }, - // 0DD0 - 0DDF + // 0DD0 - 0DDF { 0x10DE0DD0, "N11E-GT" }, { 0x10DE0DD1, "GeForce GTX 460M" }, { 0x10DE0DD2, "GeForce GT 445M" }, @@ -1294,6 +1294,7 @@ { 0x10DE1286, "GeForce GT 720" }, { 0x10DE1287, "GeForce GT 730" }, // GK208 { 0x10DE1288, "GeForce GT 720" }, // GK208 + { 0x10DE128b, "GeForce GT 710" }, // 1290 - 129F { 0x10DE1290, "GeForce GT 730M" }, { 0x10DE1291, "GeForce GT 735M" }, @@ -1319,6 +1320,13 @@ { 0x10DE1341, "GeForce 840M" }, { 0x10DE1346, "GeForce 930M" }, // GM108M { 0x10DE1347, "GeForce 940M" }, // GM108M + { 0x10DE1348, "GeForce 945M/945A" }, // GM108M + { 0x10DE1349, "GeForce 930M" }, // GM108M + { 0x10DE134D, "GeForce 940MX" }, // GM108M + { 0x10DE134E, "GeForce 930MX" }, // GM108M + { 0x10DE134F, "GeForce 920MX" }, // GM108M + { 0x10DE137A, "Quadro K620M/M500M" }, // GM108GLM + { 0x10DE137D, "GeForce 940A" }, // GM108M { 0x10DE1380, "GeForce GTX 750 Ti" }, { 0x10DE1381, "GeForce GTX 750" }, { 0x10DE1382, "GeForce GTX 745" }, @@ -1331,10 +1339,16 @@ { 0x10DE1398, "GeForce 845M" }, // { 0x10DE139A, "GeForce GTX 950M" }, // GM107 { 0x10DE139B, "GeForce GTX 960M" }, // GM107 + { 0x10DE139C, "GeForce 940M" }, // GM107M + { 0x10DE139D, "GeForce GTX 750 Ti" }, // GM107M { 0x10DE13AD, "GM107 INT52" }, // { 0x10DE13AE, "GM107 CS1" }, // // { 0x10DE13AF, "Graphics Device" }, // GM107GLM - { 0x10DE13B3, "Quadro K2200M" }, // + { 0x10DE13B0, "GQuadro M2000M" }, // GM107GLM + { 0x10DE13B1, "Quadro M1000M" }, // GM107GLM + { 0x10DE13B2, "Quadro M600M" }, // GM107GLM + { 0x10DE13B3, "Quadro K2200M" }, // GM107GLM + { 0x10DE13B9, "NVS 810" }, // GM107GL { 0x10DE13BA, "Quadro K2200" }, { 0x10DE13BB, "Quadro K620" }, { 0x10DE13BC, "Quadro K1200" }, @@ -1349,18 +1363,34 @@ { 0x10DE13D7, "GeForce GTX 980M" }, // { 0x10DE13D8, "GeForce GTX 970M" }, // { 0x10DE13D9, "GeForce GTX 965M" }, -// { 0x10DE13F0, "Graphics Device" }, // GM107GLM -// { 0x10DE13F1, "Graphics Device" }, // GM107GLM + { 0x10DE13DA, "GeForce GTX 980" }, // GM204M + { 0x10DE13F0, "Quadro M5000" }, // GM204GL + { 0x10DE13F1, "Quadro M4000" }, // GM204GL + { 0x10DE13F2, "Tesla M60" }, // GM204GL + { 0x10DE13F3, "Tesla M6" }, // GM204GL + { 0x10DE13F8, "Quadro M5000M" }, // GM204GLM + { 0x10DE13F9, "Quadro M4000M" }, // GM204GLM + { 0x10DE13FA, "Quadro M3000M" }, // GM204GLM + { 0x10DE13FB, "Quadro M5500" }, // GM204GLM { 0x10DE1401, "GeForce GTX 960" }, // -// { 0x10DE1402, "Graphics Device" }, // + { 0x10DE1402, "GeForce GTX 950" }, // + { 0x10DE1406, "GeForce GTX 960" }, // GM206 + { 0x10DE1407, "GeForce GTX 750 v2" }, // GM206 + { 0x10DE1427, "GeForce GTX 965M" }, // GM206M + { 0x10DE1430, "Quadro M2000" }, // + { 0x10DE1431, "Tesla M4" }, // GM206GL // { 0x10DE143F, "Graphics Device" }, // // { 0x10DE1600, "Graphics Device" }, // // { 0x10DE1601, "Graphics Device" }, // // { 0x10DE1602, "Graphics Device" }, // // { 0x10DE1603, "Graphics Device" }, // { 0x10DE1617, "GeForce GTX 980M" }, // + { 0x10DE1618, "GeForce GTX 970M" }, // GM204M + { 0x10DE1619, "GeForce GTX 965M" }, // GM204M + { 0x10DE161A, "GeForce GTX 980" }, // GM204M // { 0x10DE1630, "Graphics Device" }, // // { 0x10DE1631, "Graphics Device" }, // + { 0x10DE1667, "GeForce GTX 965M" }, // GM204M // { 0x10DE1780, "Graphics Device" }, // // { 0x10DE1781, "Graphics Device" }, // // { 0x10DE1782, "Graphics Device" }, // @@ -1376,11 +1406,41 @@ { 0x10DE17BE, "GM107 CS1" }, // GM107 // { 0x10DE17C1, "Graphics Device" }, // { 0x10DE17C2, "GeForce GTX Titan X" }, // - { 0x10DE17C8, "GeForce GTX 980 TI" }, + { 0x10DE17C8, "GeForce GTX 980 TI" }, // // { 0x10DE17EE, "Graphics Device" }, // // { 0x10DE17EF, "Graphics Device" }, // - { 0x10DE17F0, "Quadro M6000" } + { 0x10DE17F0, "Quadro M6000" }, // { 0x10DE17FF, "Graphics Device" }, // + { 0x10DE17F1, "Quadro M6000" }, // GM200GL + { 0x10DE17FD, "Tesla M40" }, // GM200GL + // 1B00 - 1CFFF + { 0x10DE1B00, "Titan X Pascal"}, // GP102 +// { 0x10DE1B01, "Graphics Device" }, // GP102 + { 0x10DE1B30, "Quadro P6000" }, // GP102GL +// { 0x10DE1B70, "Graphics Device" }, // GP102GL +// { 0x10DE1B78, "Graphics Device" }, // GP102GL + { 0x10DE1B80, "GeForce GTX 1080"}, // GP104 + { 0x10DE1B81, "GeForce GTX 1070"}, // GP104 +// { 0x10DE1B82, "Graphics Device" }, // GP104 +// { 0x10DE1B83, "Graphics Device" }, // GP104 + { 0x10DE1BA0, "GeForce GTX 1080" }, // GP104M + { 0x10DE1BA1, "GeForce GTX 1070" }, // GP104M + { 0x10DE1BB0, "Quadro P5000" }, // GP104GL +// { 0x10DE1BB1, "Graphics Device" }, // GP104GL +// { 0x10DE1BB4, "Graphics Device" }, // GP104GL + { 0x10DE1BE0, "GeForce GTX 1080" }, //GP104M + { 0x10DE1BE1, "GeForce GTX 1070" }, //GP104M +// { 0x10DE1C00, "Graphics Device" }, // GP106 +// { 0x10DE1C01, "Graphics Device" }, // GP106 + { 0x10DE1C02, "GeForce GTX 1060"}, // GP106 + { 0x10DE1C03, "GeForce GTX 1060"}, // GP106 + { 0x10DE1c20, "GeForce GTX 1060" }, //GP106M +// { 0x10DE1C30, "Graphics Device" }, // GP106GL + { 0x10DE1C60, "GeForce GTX 1060" }, // GP106M +// { 0x10DE1C70, "Graphics Device" }, // GP106GL +// { 0x10DE1C80, "Graphics Device" }, // GP107 +// { 0x10DE1C81, "Graphics Device" }, // GP107 + { 0x10DE1C82, "GeForce GTX 1050 Ti"}, // GP107 }; static nvidia_card_info_t nvidia_card_exceptions[] = { Index: branches/ErmaC/Enoch/i386/libsaio/ati.c =================================================================== --- branches/ErmaC/Enoch/i386/libsaio/ati.c (revision 2841) +++ branches/ErmaC/Enoch/i386/libsaio/ati.c (revision 2842) @@ -65,10 +65,10 @@ {"Galago", 2}, {"Colobus", 2}, {"Mangabey", 2}, - {"Nomascus", 4}, // 5 + {"Nomascus", 5}, {"Orangutan", 2}, /* AMD6000Controller */ - {"Pithecia", 2}, // 3 + {"Pithecia", 3}, {"Bulrushes", 6}, {"Cattail", 4}, {"Hydrilla", 5}, @@ -86,6 +86,8 @@ {"Spikerush", 4}, {"Typha", 5}, /* AMD7000Controller */ + {"Ramen", 6}, + {"Tako", 6}, {"Namako", 4}, {"Aji", 4}, {"Buri", 4}, @@ -95,7 +97,7 @@ {"Gari", 5}, {"Futomaki", 5}, {"Hamachi", 4}, - {"OPM", 6}, + {"OPM", 5}, {"Ikura", 1}, {"IkuraS", 6}, {"Junsai", 6}, @@ -107,10 +109,22 @@ /* AMD8000Controller */ {"Baladi", 6}, /* AMD9000Controller */ - {"Exmoor", 4}, + {"Exmoor", 6}, + {"MalteseS", 1}, + {"Lagotto", 4}, + {"GreyhoundS", 1}, + {"Maltese", 6}, {"Basset", 4}, {"Greyhound", 6}, - {"Labrador", 6} + {"Labrador", 6}, + /* AMD9500Controller */ + {"Elqui", 5}, + {"Acre", 3}, + {"Berbice", 5}, + {"Caroni", 5}, + {"Florin", 6}, + {"Dayman", 6}, + {"Guariba", 6} }; static radeon_card_info_t radeon_cards[] = { @@ -284,6 +298,29 @@ // { 0x67BA, 0x00000000, CHIP_FAMILY_HAWAII, "AMD Radeon", kFutomaki }, // { 0x67BE, 0x00000000, CHIP_FAMILY_HAWAII, "AMD Radeon", kFutomaki }, + // Polaris 10 + { 0x67C0, 0x00000000, CHIP_FAMILY_ELLESMERE, "AMD Radeon Polaris 10", kNull }, + { 0x67C1, 0x00000000, CHIP_FAMILY_ELLESMERE, "AMD Radeon Polaris 10", kNull }, + { 0x67C2, 0x00000000, CHIP_FAMILY_ELLESMERE, "AMD Radeon Polaris 10", kNull }, + { 0x67C4, 0x00000000, CHIP_FAMILY_ELLESMERE, "AMD Radeon Polaris 10", kNull }, + { 0x67C7, 0x00000000, CHIP_FAMILY_ELLESMERE, "AMD Radeon Polaris 10", kNull }, + { 0x67C8, 0x00000000, CHIP_FAMILY_ELLESMERE, "AMD Radeon Polaris 10", kNull }, + { 0x67C9, 0x00000000, CHIP_FAMILY_ELLESMERE, "AMD Radeon Polaris 10", kNull }, + { 0x67CA, 0x00000000, CHIP_FAMILY_ELLESMERE, "AMD Radeon Polaris 10", kNull }, + { 0x67CC, 0x00000000, CHIP_FAMILY_ELLESMERE, "AMD Radeon Polaris 10", kNull }, + { 0x67CF, 0x00000000, CHIP_FAMILY_ELLESMERE, "AMD Radeon Polaris 10", kNull }, + { 0x67DF, 0x00000000, CHIP_FAMILY_ELLESMERE, "AMD Radeon RX480", kDayman }, + + // Polaris 11 + { 0x67E0, 0x00000000, CHIP_FAMILY_BAFFIN, "AMD Radeon RX460", kAcre }, + { 0x67E1, 0x00000000, CHIP_FAMILY_BAFFIN, "AMD Radeon Polaris 11", kNull }, + { 0x67E3, 0x00000000, CHIP_FAMILY_BAFFIN, "AMD Radeon Polaris 11", kNull }, + { 0x67E7, 0x00000000, CHIP_FAMILY_BAFFIN, "AMD Radeon Polaris 11", kNull }, + { 0x67E8, 0x00000000, CHIP_FAMILY_BAFFIN, "AMD Radeon Polaris 11", kNull }, + { 0x67E9, 0x00000000, CHIP_FAMILY_BAFFIN, "AMD Radeon Polaris 11", kNull }, + { 0x67EB, 0x00000000, CHIP_FAMILY_BAFFIN, "AMD Radeon Polaris 11", kNull }, + { 0x67EF, 0x00000000, CHIP_FAMILY_BAFFIN, "AMD Radeon RX460", kAcre }, + { 0x67FF, 0x00000000, CHIP_FAMILY_BAFFIN, "AMD Radeon Polaris 11", kNull }, // PITCAIRN { 0x6800, 0x00000000, CHIP_FAMILY_PITCAIRN, "AMD Radeon HD 7970M", kBuri }, // Mobile { 0x6801, 0x00000000, CHIP_FAMILY_PITCAIRN, "AMD Radeon HD 8970M Series", kFutomaki }, // Mobile @@ -384,7 +421,7 @@ // CEDAR { 0x68E0, 0x00000000, CHIP_FAMILY_CEDAR, "ATI Radeon HD 5470 Series", kGalago }, - { 0x68E1, 0x00000000, CHIP_FAMILY_CEDAR, "AMD Radeon HD 6230", kGalago }, + { 0x68E1, 0x00000000, CHIP_FAMILY_CEDAR, "AMD Radeon HD 6230/6350/8350", kGalago }, { 0x68E4, 0x00000000, CHIP_FAMILY_CEDAR, "ATI Radeon HD 6370M Series", kGalago }, { 0x68E5, 0x00000000, CHIP_FAMILY_CEDAR, "ATI Radeon HD 6300M Series", kGalago }, // { 0x68E8, 0x00000000, CHIP_FAMILY_CEDAR, "ATI Radeon HD ??? Series", kNull }, @@ -397,8 +434,8 @@ // { 0x68FE, 0x00000000, CHIP_FAMILY_CEDAR, "ATI Radeon HD ??? Series", kNull }, // - { 0x6900, 0x00000000, CHIP_FAMILY_TOPAS, "ATI Radeon R7 M260/M265", kExmoor }, - { 0x6901, 0x00000000, CHIP_FAMILY_TOPAS, "ATI Radeon R5 M255", kExmoor }, + { 0x6900, 0x00000000, CHIP_FAMILY_TOPAZ, "ATI Radeon R7 M260/M265", kExmoor }, + { 0x6901, 0x00000000, CHIP_FAMILY_TOPAZ, "ATI Radeon R5 M255", kExmoor }, { 0x6920, 0x00000000, CHIP_FAMILY_AMETHYST, "ATI Radeon R9 M395X", kLabrador }, { 0x6921, 0x00000000, CHIP_FAMILY_AMETHYST, "ATI Radeon R9 M295X", kExmoor }, { 0x692B, 0x00000000, CHIP_FAMILY_TONGA, "ATI Firepro W7100", kBaladi }, @@ -842,6 +879,7 @@ "Hemlock", "Juniper", "Redwood", + // "Broadway", /* Northern Islands */ "Barts", "Caicos", @@ -863,9 +901,14 @@ "Hawaii", /* ... */ "Mullins", - "Topas", + "Topaz", "Amethyst", "Tonga", + "Fiji", + "Carrizo", + "Tobago", + "Ellesmere", + "Baffin", "" }; @@ -1289,7 +1332,7 @@ void get_vram_size(void) { ati_chip_family_t chip_family = card->info->chip_family; - + card->vram_size = 0; if (chip_family >= CHIP_FAMILY_CEDAR) Index: branches/ErmaC/Enoch/i386/libsaio/ati.h =================================================================== --- branches/ErmaC/Enoch/i386/libsaio/ati.h (revision 2841) +++ branches/ErmaC/Enoch/i386/libsaio/ati.h (revision 2842) @@ -99,9 +99,14 @@ CHIP_FAMILY_HAWAII, /* ... */ CHIP_FAMILY_MULLINS, - CHIP_FAMILY_TOPAS, + CHIP_FAMILY_TOPAZ, CHIP_FAMILY_AMETHYST, CHIP_FAMILY_TONGA, + CHIP_FAMILY_FIJI, + CHIP_FAMILY_CARRIZO, + CHIP_FAMILY_TOBAGO, + CHIP_FAMILY_ELLESMERE, /* Polaris 10 */ + CHIP_FAMILY_BAFFIN, /* Polaris 11 */ CHIP_FAMILY_LAST } ati_chip_family_t; @@ -172,6 +177,8 @@ kSpikerush, kTypha, /* AMD7000Controller */ + kRamen, + kTako, kNamako, kAji, kBuri, @@ -194,9 +201,21 @@ kBaladi, /* AMD9000Controller */ kExmoor, + kMalteseS, + kLagotto, + kGreyhoundS, + kMaltese, kBasset, kGreyhound, kLabrador, + /* AMD9500Controller */ + kElqui, + kAcre, + kBerbice, + kCaroni, + kFlorin, + kDayman, + kGuariba, kCfgEnd } config_name_t; Index: branches/ErmaC/Enoch/i386/libsaio/cpu.c =================================================================== --- branches/ErmaC/Enoch/i386/libsaio/cpu.c (revision 2841) +++ branches/ErmaC/Enoch/i386/libsaio/cpu.c (revision 2842) @@ -20,7 +20,6 @@ #define DBG(x...) #endif - #define UI_CPUFREQ_ROUNDING_FACTOR 10000000 clock_frequency_info_t gPEClockFrequencyInfo; @@ -590,16 +589,25 @@ case CPUID_MODEL_JAKETOWN: case CPUID_MODEL_SANDYBRIDGE: case CPUID_MODEL_IVYBRIDGE: + case CPUID_MODEL_IVYBRIDGE_XEON: case CPUID_MODEL_HASWELL_U5: case CPUID_MODEL_HASWELL: case CPUID_MODEL_HASWELL_SVR: - //case CPUID_MODEL_HASWELL_H: case CPUID_MODEL_HASWELL_ULT: case CPUID_MODEL_HASWELL_ULX: case CPUID_MODEL_BROADWELL_HQ: + case CPUID_MODEL_BRASWELL: + case CPUID_MODEL_AVOTON: + case CPUID_MODEL_SKYLAKE: case CPUID_MODEL_BRODWELL_SVR: + case CPUID_MODEL_BRODWELL_MSVR: + case CPUID_MODEL_KNIGHT: + case CPUID_MODEL_ANNIDALE: + case CPUID_MODEL_GOLDMONT: + case CPUID_MODEL_VALLEYVIEW: case CPUID_MODEL_SKYLAKE_S: - //case CPUID_MODEL_: + case CPUID_MODEL_SKYLAKE_AVX: + case CPUID_MODEL_CANNONLAKE: msr = rdmsr64(MSR_CORE_THREAD_COUNT); // 0x35 p->CPU.NoCores = (uint32_t)bitfield((uint32_t)msr, 31, 16); p->CPU.NoThreads = (uint32_t)bitfield((uint32_t)msr, 15, 0); @@ -625,21 +633,6 @@ break; } - if (p->CPU.NoCores == 0) - { - p->CPU.NoCores = cores_per_package; - p->CPU.NoThreads = logical_per_package; - } - - // MSR is *NOT* available on the Intel Atom CPU - // workaround for N270. I don't know why it detected wrong - if ((p->CPU.Model == CPUID_MODEL_ATOM) && (strstr(p->CPU.BrandString, "270"))) - { - p->CPU.NoCores = 1; - p->CPU.NoThreads = 2; - } - - // workaround for Xeon Harpertown and Yorkfield if ((p->CPU.Model == CPUID_MODEL_PENRYN) && (p->CPU.NoCores == 0)) @@ -665,6 +658,20 @@ } } + if (p->CPU.NoCores == 0) + { + p->CPU.NoCores = cores_per_package; + p->CPU.NoThreads = logical_per_package; + } + + // MSR is *NOT* available on the Intel Atom CPU + // workaround for N270. I don't know why it detected wrong + if ((p->CPU.Model == CPUID_MODEL_ATOM) && (strstr(p->CPU.BrandString, "270"))) + { + p->CPU.NoCores = 1; + p->CPU.NoThreads = 2; + } + // workaround for Quad if ( strstr(p->CPU.BrandString, "Quad") ) { Index: branches/ErmaC/Enoch/i386/libsaio/platform.h =================================================================== --- branches/ErmaC/Enoch/i386/libsaio/platform.h (revision 2841) +++ branches/ErmaC/Enoch/i386/libsaio/platform.h (revision 2842) @@ -73,12 +73,16 @@ #define CPUID_MODEL_BRODWELL_SVR 0x4F // Broadwell Server **BDX #define CPUID_MODEL_SKYLAKE_AVX 0x55 // Skylake with AVX-512 support. #define CPUID_MODEL_BRODWELL_MSVR 0x56 // Broadwell Micro Server, Future Xeon **BDX-DE -//#define CPUID_MODEL_KNIGHT 0x57 +#define CPUID_MODEL_KNIGHT 0x57 // Knights Landing #define CPUID_MODEL_ANNIDALE 0x5A // Silvermont, Future Atom E3000, Z3000 (Annidale) -//#define CPUID_MODEL_GOLDMONT 0x5C +#define CPUID_MODEL_GOLDMONT 0x5C #define CPUID_MODEL_VALLEYVIEW 0x5D // Silvermont, Future Atom E3000, Z3000 #define CPUID_MODEL_SKYLAKE_S 0x5E // Skylake **SKL -//#define CPUID_MODEL_CANNONLAKE 0x66 +#define CPUID_MODEL_CANNONLAKE 0x66 +#define CPUID_MODEL_DENVERTON 0x5F // Goldmont Microserver +#define CPUID_MODEL_XEON_MILL 0x85 // Knights Mill +#define CPUID_MODEL_KABYLAKE1 0x8E // Kabylake Mobile +#define CPUID_MODEL_KABYLAKE2 0x9E // Kabylake Dektop /* CPUID Vendor */ #define CPUID_VID_INTEL "GenuineIntel" Index: branches/ErmaC/Enoch/i386/libsaio/smbios_getters.c =================================================================== --- branches/ErmaC/Enoch/i386/libsaio/smbios_getters.c (revision 2841) +++ branches/ErmaC/Enoch/i386/libsaio/smbios_getters.c (revision 2842) @@ -20,6 +20,9 @@ #define XEON "Xeon" #define CORE_M "Core(TM) M" +#define CORE_M3 "Core(TM) m3" +#define CORE_M5 "Core(TM) m5" +#define CORE_M7 "Core(TM) m7" #define CORE_I3 "Core(TM) i3" #define CORE_I5 "Core(TM) i5" #define CORE_I7 "Core(TM) i7" @@ -384,7 +387,6 @@ return true; case CPUID_MODEL_HASWELL_U5: // 0x3D - - case CPUID_MODEL_SKYLAKE_S: // 0x5E if (strstr(Platform.CPU.BrandString, CORE_M)) { @@ -424,14 +426,15 @@ value->word = 0xA01; // 2561 - Xeon return true; - case CPUID_MODEL_ATOM_3700: // 0x37 - - case CPUID_MODEL_HASWELL: // 0x3C - - case CPUID_MODEL_HASWELL_SVR: // 0x3F - - case CPUID_MODEL_HASWELL_ULT: // 0x45 - - case CPUID_MODEL_HASWELL_ULX: // 0x46 - + case CPUID_MODEL_ATOM_3700: // 0x37 + case CPUID_MODEL_HASWELL: // 0x3C + case CPUID_MODEL_HASWELL_SVR: // 0x3F + case CPUID_MODEL_HASWELL_ULT: // 0x45 + case CPUID_MODEL_HASWELL_ULX: // 0x46 case CPUID_MODEL_BROADWELL_HQ: // 0x47 - case CPUID_MODEL_SKYLAKE: - case CPUID_MODEL_SKYLAKE_AVX: + case CPUID_MODEL_SKYLAKE: // 0x4E + case CPUID_MODEL_SKYLAKE_AVX: // 0x55 + case CPUID_MODEL_SKYLAKE_S: // 0x5E if (strstr(Platform.CPU.BrandString, XEON)) { @@ -456,6 +459,30 @@ return true; } + if (strstr(Platform.CPU.BrandString, CORE_M)) + { + value->word = 0xB06; // 2822 + return true; + } + + if (strstr(Platform.CPU.BrandString, CORE_M3)) + { + value->word = 0xC05; + return true; + } + + if (strstr(Platform.CPU.BrandString, CORE_M5)) + { + value->word = 0xD05; + return true; + } + + if (strstr(Platform.CPU.BrandString, CORE_M7)) + { + value->word = 0xE05; + return true; + } + if (Platform.CPU.NoCores <= 2) { value->word = 0x904; // - Core i3 Index: branches/ErmaC/Enoch/i386/boot2/boot.c =================================================================== --- branches/ErmaC/Enoch/i386/boot2/boot.c (revision 2841) +++ branches/ErmaC/Enoch/i386/boot2/boot.c (revision 2842) @@ -1116,7 +1116,7 @@ } // OS X El Capitan 10.11 - if ( MacOSVerCurrent >= MacOSVer2Int("10.11") ) // El Capitan and Up! + if ( MacOSVerCurrent >= MacOSVer2Int("10.11") ) // El Capitan and Sierra! { // ErmaC verbose("\n");