From decdd2e001cbee99e5e024476ce27f002f71910f Mon Sep 17 00:00:00 2001 From: Veselin Georgiev Date: Thu, 10 Sep 2009 01:04:10 +0000 Subject: [PATCH] Added detection for Xeon (Gainestown) and Conroe-L (Celeron). Dual-core Conroe-L's are renamed to Conroe-L (Allendale). git-svn-id: https://svn.code.sf.net/p/libcpuid/code/HEAD/libcpuid@61 3b4be424-7ac5-41d7-8526-f4ddcb85d872 --- libcpuid/recog_intel.c | 12 ++- tests/tests_stash.txt | 188 ++++++++++++++++++++++++++++++++++++++++- 2 files changed, 196 insertions(+), 4 deletions(-) diff --git a/libcpuid/recog_intel.c b/libcpuid/recog_intel.c index a0d4263..9d7b6a8 100644 --- a/libcpuid/recog_intel.c +++ b/libcpuid/recog_intel.c @@ -40,6 +40,7 @@ enum _intel_code_t { XEONMP, XEON_POTOMAC, XEON_I7, + XEON_GAINESTOWN, MOBILE_PENTIUM_M, CELERON, MOBILE_CELERON, @@ -218,8 +219,10 @@ const struct match_entry_t cpudb_intel[] = { { 6, 15, -1, -1, -1, 2, 2048, MEROM , 0, "Merom (Core 2 Duo) 2048K" }, { 6, 15, -1, -1, -1, 2, 4096, MEROM , 0, "Merom (Core 2 Duo) 4096K" }, - { 6, 15, -1, -1, 15, 2, -1, CELERON , 0, "Conroe-L (Celeron)" }, - { 6, 6, -1, -1, 22, 2, -1, CELERON , 0, "Conroe-L (Celeron)" }, + { 6, 15, -1, -1, 15, 1, -1, CELERON , 0, "Conroe-L (Celeron)" }, + { 6, 6, -1, -1, 22, 1, -1, CELERON , 0, "Conroe-L (Celeron)" }, + { 6, 15, -1, -1, 15, 2, -1, CELERON , 0, "Conroe-L (Allendale)" }, + { 6, 6, -1, -1, 22, 2, -1, CELERON , 0, "Conroe-L (Allendale)" }, { 6, 6, -1, -1, 22, 1, -1, NO_CODE , 0, "Unknown Core ?" }, @@ -241,6 +244,7 @@ const struct match_entry_t cpudb_intel[] = { { 6, 10, -1, -1, 26, 1, -1, CORE_Ix , 0, "Intel Core i7" }, { 6, 10, -1, -1, 26, 4, -1, CORE_Ix , 0, "Bloomfield (Core i7)" }, { 6, 10, -1, -1, 26, 4, -1, XEON_I7 , 0, "Xeon (Bloomfield)" }, + { 6, 10, -1, -1, 26, 4, -1, XEON_GAINESTOWN , 0, "Xeon (Gainestown)" }, /* Core microarchitecture-based Xeons: */ @@ -562,8 +566,10 @@ static intel_code_t get_brand_code(struct cpu_id_t* data) } } if (code == XEON) { - if (match_pattern(bs, "W####")) + if (match_pattern(bs, "W35##")) code = XEON_I7; + else if (match_pattern(bs, "[ELXW]55##")) + code = XEON_GAINESTOWN; else if (data->l3_cache > 0) code = XEON_IRWIN; } diff --git a/tests/tests_stash.txt b/tests/tests_stash.txt index 51926e6..9db2176 100644 --- a/tests/tests_stash.txt +++ b/tests/tests_stash.txt @@ -1330,7 +1330,7 @@ intel_fn4[3]=00000000 00000000 00000000 00000000 64 64 -1 -Conroe-L (Celeron) +Conroe-L (Allendale) fpu vme de pse tsc msr pae mce cx8 apic mtrr sep pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe pni dts64 monitor ds_cpl est tm2 ssse3 cx16 xtpr pdcm lm lahf_lm -------------------------------------------------------------------------------- basic_cpuid[0]=00000002 756e6547 6c65746e 49656e69 @@ -3121,3 +3121,189 @@ intel_fn11[3]=00000000 00000000 00000003 00000000 Xeon (Bloomfield) fpu vme de pse tsc msr pae mce cx8 apic mtrr sep pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe pni dts64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm dca sse4_1 sse4_2 xd popcnt lm lahf_lm -------------------------------------------------------------------------------- +basic_cpuid[0]=0000000b 756e6547 6c65746e 49656e69 +basic_cpuid[1]=000106a5 01100800 009ce3bd bfebfbff +basic_cpuid[2]=55035a01 00f0b2e4 00000000 09ca212c +basic_cpuid[3]=00000000 00000000 00000000 00000000 +basic_cpuid[4]=1c004121 01c0003f 0000003f 00000000 +basic_cpuid[5]=00000040 00000040 00000003 00001120 +basic_cpuid[6]=00000003 00000002 00000001 00000000 +basic_cpuid[7]=00000000 00000000 00000000 00000000 +basic_cpuid[8]=00000000 00000000 00000000 00000000 +basic_cpuid[9]=00000000 00000000 00000000 00000000 +basic_cpuid[10]=07300403 00000044 00000000 00000603 +basic_cpuid[11]=00000001 00000002 00000100 00000001 +basic_cpuid[12]=00000001 00000002 00000100 00000001 +basic_cpuid[13]=00000001 00000002 00000100 00000001 +basic_cpuid[14]=00000001 00000002 00000100 00000001 +basic_cpuid[15]=00000001 00000002 00000100 00000001 +basic_cpuid[16]=00000001 00000002 00000100 00000001 +basic_cpuid[17]=00000001 00000002 00000100 00000001 +basic_cpuid[18]=00000001 00000002 00000100 00000001 +basic_cpuid[19]=00000001 00000002 00000100 00000001 +basic_cpuid[20]=00000001 00000002 00000100 00000001 +basic_cpuid[21]=00000001 00000002 00000100 00000001 +basic_cpuid[22]=00000001 00000002 00000100 00000001 +basic_cpuid[23]=00000001 00000002 00000100 00000001 +basic_cpuid[24]=00000001 00000002 00000100 00000001 +basic_cpuid[25]=00000001 00000002 00000100 00000001 +basic_cpuid[26]=00000001 00000002 00000100 00000001 +basic_cpuid[27]=00000001 00000002 00000100 00000001 +basic_cpuid[28]=00000001 00000002 00000100 00000001 +basic_cpuid[29]=00000001 00000002 00000100 00000001 +basic_cpuid[30]=00000001 00000002 00000100 00000001 +basic_cpuid[31]=00000001 00000002 00000100 00000001 +ext_cpuid[0]=80000008 00000000 00000000 00000000 +ext_cpuid[1]=00000000 00000000 00000001 28100000 +ext_cpuid[2]=65746e49 2952286c 6f655820 2952286e +ext_cpuid[3]=55504320 20202020 20202020 45202020 +ext_cpuid[4]=30323535 20402020 37322e32 007a4847 +ext_cpuid[5]=00000000 00000000 00000000 00000000 +ext_cpuid[6]=00000000 00000000 01006040 00000000 +ext_cpuid[7]=00000000 00000000 00000000 00000100 +ext_cpuid[8]=00003028 00000000 00000000 00000000 +ext_cpuid[9]=00000001 00000002 00000100 00000001 +ext_cpuid[10]=00000001 00000002 00000100 00000001 +ext_cpuid[11]=00000001 00000002 00000100 00000001 +ext_cpuid[12]=00000001 00000002 00000100 00000001 +ext_cpuid[13]=00000001 00000002 00000100 00000001 +ext_cpuid[14]=00000001 00000002 00000100 00000001 +ext_cpuid[15]=00000001 00000002 00000100 00000001 +ext_cpuid[16]=00000001 00000002 00000100 00000001 +ext_cpuid[17]=00000001 00000002 00000100 00000001 +ext_cpuid[18]=00000001 00000002 00000100 00000001 +ext_cpuid[19]=00000001 00000002 00000100 00000001 +ext_cpuid[20]=00000001 00000002 00000100 00000001 +ext_cpuid[21]=00000001 00000002 00000100 00000001 +ext_cpuid[22]=00000001 00000002 00000100 00000001 +ext_cpuid[23]=00000001 00000002 00000100 00000001 +ext_cpuid[24]=00000001 00000002 00000100 00000001 +ext_cpuid[25]=00000001 00000002 00000100 00000001 +ext_cpuid[26]=00000001 00000002 00000100 00000001 +ext_cpuid[27]=00000001 00000002 00000100 00000001 +ext_cpuid[28]=00000001 00000002 00000100 00000001 +ext_cpuid[29]=00000001 00000002 00000100 00000001 +ext_cpuid[30]=00000001 00000002 00000100 00000001 +ext_cpuid[31]=00000001 00000002 00000100 00000001 +intel_fn4[0]=1c004121 01c0003f 0000003f 00000000 +intel_fn4[1]=1c004122 00c0003f 0000007f 00000000 +intel_fn4[2]=1c004143 01c0003f 000001ff 00000000 +intel_fn4[3]=1c03c163 03c0003f 00001fff 00000002 +intel_fn11[0]=00000001 00000002 00000100 00000001 +intel_fn11[1]=00000004 00000008 00000201 00000001 +intel_fn11[2]=00000000 00000000 00000002 00000001 +intel_fn11[3]=00000000 00000000 00000003 00000001 +-------------------------------------------------------------------------------- +6 +10 +5 +6 +26 +4 +8 +32 +32 +256 +8192 +8 +8 +16 +64 +64 +64 +Xeon (Gainestown) +fpu vme de pse tsc msr pae mce cx8 apic mtrr sep pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe pni dts64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm dca sse4_1 sse4_2 xd popcnt lm lahf_lm +-------------------------------------------------------------------------------- +basic_cpuid[0]=0000000a 756e6547 6c65746e 49656e69 +basic_cpuid[1]=00010661 00010800 0000e31d afebfbff +basic_cpuid[2]=05b0b101 005657f0 00000000 2cb4307f +basic_cpuid[3]=00000000 00000000 00000000 00000000 +basic_cpuid[4]=00000121 01c0003f 0000003f 00000001 +basic_cpuid[5]=00000040 00000040 00000003 00000220 +basic_cpuid[6]=00000001 00000002 00000001 00000000 +basic_cpuid[7]=00000000 00000000 00000000 00000000 +basic_cpuid[8]=00000400 00000000 00000000 00000000 +basic_cpuid[9]=00000000 00000000 00000000 00000000 +basic_cpuid[10]=07280202 00000000 00000000 00000000 +basic_cpuid[11]=07280202 00000000 00000000 00000000 +basic_cpuid[12]=07280202 00000000 00000000 00000000 +basic_cpuid[13]=07280202 00000000 00000000 00000000 +basic_cpuid[14]=07280202 00000000 00000000 00000000 +basic_cpuid[15]=07280202 00000000 00000000 00000000 +basic_cpuid[16]=07280202 00000000 00000000 00000000 +basic_cpuid[17]=07280202 00000000 00000000 00000000 +basic_cpuid[18]=07280202 00000000 00000000 00000000 +basic_cpuid[19]=07280202 00000000 00000000 00000000 +basic_cpuid[20]=07280202 00000000 00000000 00000000 +basic_cpuid[21]=07280202 00000000 00000000 00000000 +basic_cpuid[22]=07280202 00000000 00000000 00000000 +basic_cpuid[23]=07280202 00000000 00000000 00000000 +basic_cpuid[24]=07280202 00000000 00000000 00000000 +basic_cpuid[25]=07280202 00000000 00000000 00000000 +basic_cpuid[26]=07280202 00000000 00000000 00000000 +basic_cpuid[27]=07280202 00000000 00000000 00000000 +basic_cpuid[28]=07280202 00000000 00000000 00000000 +basic_cpuid[29]=07280202 00000000 00000000 00000000 +basic_cpuid[30]=07280202 00000000 00000000 00000000 +basic_cpuid[31]=07280202 00000000 00000000 00000000 +ext_cpuid[0]=80000008 00000000 00000000 00000000 +ext_cpuid[1]=00000000 00000000 00000001 20100000 +ext_cpuid[2]=65746e49 2952286c 6c654320 6e6f7265 +ext_cpuid[3]=20295228 20555043 20202020 20202020 +ext_cpuid[4]=30323420 20402020 30362e31 007a4847 +ext_cpuid[5]=00000000 00000000 00000000 00000000 +ext_cpuid[6]=00000000 00000000 02002040 00000000 +ext_cpuid[7]=00000000 00000000 00000000 00000000 +ext_cpuid[8]=00003024 00000000 00000000 00000000 +ext_cpuid[9]=07280202 00000000 00000000 00000000 +ext_cpuid[10]=07280202 00000000 00000000 00000000 +ext_cpuid[11]=07280202 00000000 00000000 00000000 +ext_cpuid[12]=07280202 00000000 00000000 00000000 +ext_cpuid[13]=07280202 00000000 00000000 00000000 +ext_cpuid[14]=07280202 00000000 00000000 00000000 +ext_cpuid[15]=07280202 00000000 00000000 00000000 +ext_cpuid[16]=07280202 00000000 00000000 00000000 +ext_cpuid[17]=07280202 00000000 00000000 00000000 +ext_cpuid[18]=07280202 00000000 00000000 00000000 +ext_cpuid[19]=07280202 00000000 00000000 00000000 +ext_cpuid[20]=07280202 00000000 00000000 00000000 +ext_cpuid[21]=07280202 00000000 00000000 00000000 +ext_cpuid[22]=07280202 00000000 00000000 00000000 +ext_cpuid[23]=07280202 00000000 00000000 00000000 +ext_cpuid[24]=07280202 00000000 00000000 00000000 +ext_cpuid[25]=07280202 00000000 00000000 00000000 +ext_cpuid[26]=07280202 00000000 00000000 00000000 +ext_cpuid[27]=07280202 00000000 00000000 00000000 +ext_cpuid[28]=07280202 00000000 00000000 00000000 +ext_cpuid[29]=07280202 00000000 00000000 00000000 +ext_cpuid[30]=07280202 00000000 00000000 00000000 +ext_cpuid[31]=07280202 00000000 00000000 00000000 +intel_fn4[0]=00000121 01c0003f 0000003f 00000001 +intel_fn4[1]=00000122 01c0003f 0000003f 00000001 +intel_fn4[2]=00000143 0040003f 00000fff 00000001 +intel_fn4[3]=00000000 00000000 00000000 00000000 +intel_fn11[0]=07280202 00000000 00000000 00000000 +intel_fn11[1]=07280202 00000000 00000000 00000000 +intel_fn11[2]=07280202 00000000 00000000 00000000 +intel_fn11[3]=07280202 00000000 00000000 00000000 +-------------------------------------------------------------------------------- +6 +6 +1 +6 +22 +1 +1 +32 +32 +512 +-1 +8 +2 +-1 +64 +64 +-1 +Conroe-L (Celeron) +fpu vme de pse tsc msr pae mce cx8 apic mtrr sep pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss tm pbe pni dts64 monitor ds_cpl tm2 ssse3 cx16 xtpr pdcm xd lm lahf_lm +--------------------------------------------------------------------------------