1
0
Fork 0
mirror of https://github.com/anrieff/libcpuid synced 2025-02-22 20:25:04 +00:00

Reorganization of CPU databases, added correct recognition of most Core-based Xeons, fixed a few other misrecognitions

git-svn-id: https://svn.code.sf.net/p/libcpuid/code/HEAD/libcpuid@40 3b4be424-7ac5-41d7-8526-f4ddcb85d872
This commit is contained in:
Veselin Georgiev 2008-12-12 18:56:29 +00:00
parent e3d6f1b6ea
commit f986629b65
6 changed files with 1014 additions and 346 deletions

View file

@ -70,34 +70,35 @@ void debugf(int verboselevel, const char* format, ...)
_warn_fun(buff);
}
static int score(const struct match_entry_t* entry, int family, int model,
int stepping, int xfamily, int xmodel, int code)
static int score(const struct match_entry_t* entry, const struct cpu_id_t* data,
int brand_code, int model_code)
{
int res = 0;
if (entry->family == family ) res += 2;
if (entry->model == model ) res += 2;
if (entry->stepping == stepping) res += 2;
if (entry->ext_family == xfamily ) res += 2;
if (entry->ext_model == xmodel ) res += 2;
if (entry->code == code ) res += 2;
if (entry->family == data->family ) res++;
if (entry->model == data->model ) res++;
if (entry->stepping == data->stepping ) res++;
if (entry->ext_family == data->ext_family) res++;
if (entry->ext_model == data->ext_model ) res++;
if (entry->ncores == data->num_cores ) res++;
if (entry->l2cache == data->l2_cache ) res++;
if (entry->brand_code == brand_code ) res++;
if (entry->model_code == model_code ) res++;
return res;
}
void match_cpu_codename(const struct match_entry_t* matchtable, int count,
struct cpu_id_t* data, int code)
struct cpu_id_t* data, int brand_code, int model_code)
{
int bestscore = -1;
int bestindex = 0;
int i, t;
debugf(3, "Matching cpu f:%d, m:%d, s:%d, xf:%d, xm:%d, code:%d\n",
debugf(3, "Matching cpu f:%d, m:%d, s:%d, xf:%d, xm:%d, ncore:%d, l2:%d, bcode:%d, code:%d\n",
data->family, data->model, data->stepping, data->ext_family,
data->ext_model, code);
data->ext_model, data->num_cores, data->l2_cache, brand_code, model_code);
for (i = 0; i < count; i++) {
t = score(&matchtable[i], data->family, data->model,
data->stepping, data->ext_family,
data->ext_model, code);
t = score(&matchtable[i], data, brand_code, model_code);
debugf(3, "Entry %d, `%s', score %d\n", i, matchtable[i].name, t);
if (t > bestscore) {
debugf(2, "Entry `%s' selected - best score so far (%d)\n", matchtable[i].name, t);

View file

@ -38,12 +38,12 @@ void match_features(const struct feature_map_t* matchtable, int count,
struct match_entry_t {
int family, model, stepping, ext_family, ext_model;
int code;
int ncores, l2cache, brand_code, model_code;
char name[32];
};
void match_cpu_codename(const struct match_entry_t* matchtable, int count,
struct cpu_id_t* data, int code);
struct cpu_id_t* data, int brand_code, int model_code);
void warnf(const char* format, ...)
#ifdef __GNUC__

View file

@ -36,7 +36,6 @@ enum _amd_code_t {
OPTERON_GENERIC,
OPTERON_800,
ATHLON_XP,
ATHLON_XP_BARTON,
ATHLON_XP_M,
ATHLON_XP_M_LV,
ATHLON,
@ -46,163 +45,150 @@ enum _amd_code_t {
DURON,
DURON_MP,
MOBILE_DURON,
SEMPRON,
MOBILE_SEMPRON,
OPTERON_SINGLE,
OPTERON_DUALCORE,
OPTERON_800_DUALCORE,
MOBILE_TURION,
ATHLON_64_512K,
ATHLON_64_1M,
ATHLON_64_X2_512K,
ATHLON_64_X2_1M,
ATHLON_64,
ATHLON_64_X2,
ATHLON_64_FX,
TURION_64_512K,
TURION_64_1M,
TURION_X2_512K,
TURION_X2_1M,
SEMPRON_64_128K,
SEMPRON_64_256K,
SEMPRON_64_512K,
M_SEMPRON_64_256K,
M_SEMPRON_64_512K,
TURION_64,
TURION_X2,
SEMPRON,
M_SEMPRON,
SEMPRON_DUALCORE,
PHENOM,
PHENOM_X2,
PHENOM_X3,
PHENOM_X4,
};
typedef enum _amd_code_t amd_code_t;
const struct match_entry_t cpudb_amd[] = {
{ -1, -1, -1, -1, -1, NO_CODE , "Unknown AMD CPU" },
{ -1, -1, -1, -1, -1, 1, -1, NO_CODE , 0, "Unknown AMD CPU" },
/* 486 and the likes */
{ 4, -1, -1, -1, -1, NO_CODE , "Unknown AMD 486" },
{ 4, 3, -1, -1, -1, NO_CODE , "AMD 486DX2" },
{ 4, 7, -1, -1, -1, NO_CODE , "AMD 486DX2WB" },
{ 4, 8, -1, -1, -1, NO_CODE , "AMD 486DX4" },
{ 4, 9, -1, -1, -1, NO_CODE , "AMD 486DX4WB" },
{ 4, -1, -1, -1, -1, 1, -1, NO_CODE , 0, "Unknown AMD 486" },
{ 4, 3, -1, -1, -1, 1, -1, NO_CODE , 0, "AMD 486DX2" },
{ 4, 7, -1, -1, -1, 1, -1, NO_CODE , 0, "AMD 486DX2WB" },
{ 4, 8, -1, -1, -1, 1, -1, NO_CODE , 0, "AMD 486DX4" },
{ 4, 9, -1, -1, -1, 1, -1, NO_CODE , 0, "AMD 486DX4WB" },
/* Pentia clones */
{ 5, -1, -1, -1, -1, NO_CODE , "Unknown AMD 586" },
{ 5, 0, -1, -1, -1, NO_CODE , "K5" },
{ 5, 1, -1, -1, -1, NO_CODE , "K5" },
{ 5, 2, -1, -1, -1, NO_CODE , "K5" },
{ 5, 3, -1, -1, -1, NO_CODE , "K5" },
{ 5, -1, -1, -1, -1, 1, -1, NO_CODE , 0, "Unknown AMD 586" },
{ 5, 0, -1, -1, -1, 1, -1, NO_CODE , 0, "K5" },
{ 5, 1, -1, -1, -1, 1, -1, NO_CODE , 0, "K5" },
{ 5, 2, -1, -1, -1, 1, -1, NO_CODE , 0, "K5" },
{ 5, 3, -1, -1, -1, 1, -1, NO_CODE , 0, "K5" },
/* The K6 */
{ 5, 6, -1, -1, -1, NO_CODE , "K6" },
{ 5, 7, -1, -1, -1, NO_CODE , "K6" },
{ 5, 6, -1, -1, -1, 1, -1, NO_CODE , 0, "K6" },
{ 5, 7, -1, -1, -1, 1, -1, NO_CODE , 0, "K6" },
{ 5, 8, -1, -1, -1, NO_CODE , "K6-2" },
{ 5, 9, -1, -1, -1, NO_CODE , "K6-III" },
{ 5, 10, -1, -1, -1, NO_CODE , "Unknown K6" },
{ 5, 11, -1, -1, -1, NO_CODE , "Unknown K6" },
{ 5, 12, -1, -1, -1, NO_CODE , "Unknown K6" },
{ 5, 13, -1, -1, -1, NO_CODE , "K6-2+" },
{ 5, 8, -1, -1, -1, 1, -1, NO_CODE , 0, "K6-2" },
{ 5, 9, -1, -1, -1, 1, -1, NO_CODE , 0, "K6-III" },
{ 5, 10, -1, -1, -1, 1, -1, NO_CODE , 0, "Unknown K6" },
{ 5, 11, -1, -1, -1, 1, -1, NO_CODE , 0, "Unknown K6" },
{ 5, 12, -1, -1, -1, 1, -1, NO_CODE , 0, "Unknown K6" },
{ 5, 13, -1, -1, -1, 1, -1, NO_CODE , 0, "K6-2+" },
/* Athlon et al. */
{ 6, 1, -1, -1, -1, NO_CODE , "Athlon (Slot-A)" },
{ 6, 2, -1, -1, -1, NO_CODE , "Athlon (Slot-A)" },
{ 6, 3, -1, -1, -1, NO_CODE , "Duron (Spitfire)" },
{ 6, 4, -1, -1, -1, NO_CODE , "Athlon (ThunderBird)" },
{ 6, 1, -1, -1, -1, 1, -1, NO_CODE , 0, "Athlon (Slot-A)" },
{ 6, 2, -1, -1, -1, 1, -1, NO_CODE , 0, "Athlon (Slot-A)" },
{ 6, 3, -1, -1, -1, 1, -1, NO_CODE , 0, "Duron (Spitfire)" },
{ 6, 4, -1, -1, -1, 1, -1, NO_CODE , 0, "Athlon (ThunderBird)" },
{ 6, 6, -1, -1, -1, NO_CODE , "Unknown Athlon" },
{ 6, 6, -1, -1, -1, ATHLON , "Athlon (Palomino)" },
{ 6, 6, -1, -1, -1, ATHLON_MP , "Athlon MP (Palomino)" },
{ 6, 6, -1, -1, -1, DURON , "Duron (Palomino)" },
{ 6, 6, -1, -1, -1, ATHLON_XP , "Athlon XP" },
{ 6, 6, -1, -1, -1, 1, -1, NO_CODE , 0, "Unknown Athlon" },
{ 6, 6, -1, -1, -1, 1, -1, ATHLON , 0, "Athlon (Palomino)" },
{ 6, 6, -1, -1, -1, 1, -1, ATHLON_MP , 0, "Athlon MP (Palomino)" },
{ 6, 6, -1, -1, -1, 1, -1, DURON , 0, "Duron (Palomino)" },
{ 6, 6, -1, -1, -1, 1, -1, ATHLON_XP , 0, "Athlon XP" },
{ 6, 7, -1, -1, -1, NO_CODE , "Unknown Athlon XP" },
{ 6, 7, -1, -1, -1, DURON , "Duron (Morgan)" },
{ 6, 7, -1, -1, -1, 1, -1, NO_CODE , 0, "Unknown Athlon XP" },
{ 6, 7, -1, -1, -1, 1, -1, DURON , 0, "Duron (Morgan)" },
{ 6, 8, -1, -1, -1, NO_CODE , "Athlon XP" },
{ 6, 8, -1, -1, -1, ATHLON , "Athlon XP" },
{ 6, 8, -1, -1, -1, ATHLON_XP , "Athlon XP" },
{ 6, 8, -1, -1, -1, DURON , "Duron (Applebred)" },
{ 6, 8, -1, -1, -1, SEMPRON , "Sempron (Thoroughbred)" },
{ 6, 8, -1, -1, -1, SEMPRON_64_128K , "Sempron (Thoroughbred)" },
{ 6, 8, -1, -1, -1, SEMPRON_64_256K , "Sempron (Thoroughbred)" },
{ 6, 8, -1, -1, -1, ATHLON_MP , "Athlon MP (Thoroughbred)" },
{ 6, 8, -1, -1, -1, ATHLON_XP_M , "Mobile Athlon (T-Bred)" },
{ 6, 8, -1, -1, -1, ATHLON_XP_M_LV , "Mobile Athlon (T-Bred)" },
{ 6, 8, -1, -1, -1, 1, -1, NO_CODE , 0, "Athlon XP" },
{ 6, 8, -1, -1, -1, 1, -1, ATHLON , 0, "Athlon XP (Thoroughbred)" },
{ 6, 8, -1, -1, -1, 1, -1, ATHLON_XP , 0, "Athlon XP (Thoroughbred)" },
{ 6, 8, -1, -1, -1, 1, -1, DURON , 0, "Duron (Applebred)" },
{ 6, 8, -1, -1, -1, 1, -1, SEMPRON , 0, "Sempron (Thoroughbred)" },
{ 6, 8, -1, -1, -1, 1, 128, SEMPRON , 0, "Sempron (Thoroughbred)" },
{ 6, 8, -1, -1, -1, 1, 256, SEMPRON , 0, "Sempron (Thoroughbred)" },
{ 6, 8, -1, -1, -1, 1, -1, ATHLON_MP , 0, "Athlon MP (Thoroughbred)" },
{ 6, 8, -1, -1, -1, 1, -1, ATHLON_XP_M , 0, "Mobile Athlon (T-Bred)" },
{ 6, 8, -1, -1, -1, 1, -1, ATHLON_XP_M_LV , 0, "Mobile Athlon (T-Bred)" },
{ 6, 10, -1, -1, -1, NO_CODE , "Athlon XP (Barton)" },
{ 6, 10, -1, -1, -1, ATHLON , "Athlon XP (Barton)" },
{ 6, 10, -1, -1, -1, ATHLON_XP_BARTON , "Athlon XP (Barton)" },
{ 6, 10, -1, -1, -1, SEMPRON , "Sempron (Barton)" },
{ 6, 10, -1, -1, -1, SEMPRON_64_256K , "Sempron (Barton)" },
{ 6, 10, -1, -1, -1, ATHLON_XP , "Athlon XP" },
/* ^^ Actually, Thorton, but it's equivallent to Thoroughbred */
{ 6, 10, -1, -1, -1, ATHLON_MP , "Athlon MP (Barton)" },
{ 6, 10, -1, -1, -1, ATHLON_XP_M , "Mobile Athlon (Barton)" },
{ 6, 10, -1, -1, -1, ATHLON_XP_M_LV , "Mobile Athlon (Barton)" },
{ 6, 10, -1, -1, -1, 1, -1, NO_CODE , 0, "Athlon XP (Barton)" },
{ 6, 10, -1, -1, -1, 1, 512, ATHLON_XP , 0, "Athlon XP (Barton)" },
{ 6, 10, -1, -1, -1, 1, 512, SEMPRON , 0, "Sempron (Barton)" },
{ 6, 10, -1, -1, -1, 1, 256, SEMPRON , 0, "Sempron (Thorton)" },
{ 6, 10, -1, -1, -1, 1, 256, ATHLON_XP , 0, "Athlon XP (Thorton)" },
{ 6, 10, -1, -1, -1, 1, -1, ATHLON_MP , 0, "Athlon MP (Barton)" },
{ 6, 10, -1, -1, -1, 1, -1, ATHLON_XP_M , 0, "Mobile Athlon (Barton)" },
{ 6, 10, -1, -1, -1, 1, -1, ATHLON_XP_M_LV , 0, "Mobile Athlon (Barton)" },
/* K8 Architecture */
{ 15, -1, -1, 15, -1, NO_CODE , "Unknown K8" },
{ 15, -1, -1, 16, -1, NO_CODE , "Unknown K9" },
{ 15, -1, -1, 15, -1, 1, -1, NO_CODE , 0, "Unknown K8" },
{ 15, -1, -1, 16, -1, 1, -1, NO_CODE , 0, "Unknown K9" },
{ 15, -1, -1, 15, -1, NO_CODE , "Unknown A64" },
{ 15, -1, -1, 15, -1, OPTERON_SINGLE , "Opteron" },
{ 15, -1, -1, 15, -1, OPTERON_DUALCORE , "Opteron (Dual Core)" },
{ 15, 3, -1, 15, -1, OPTERON_SINGLE , "Opteron" },
{ 15, 3, -1, 15, -1, OPTERON_DUALCORE , "Opteron (Dual Core)" },
{ 15, -1, -1, 15, -1, ATHLON_64_512K , "Athlon 64 (512K)" },
{ 15, -1, -1, 15, -1, ATHLON_64_1M , "Athlon 64 (1024K)" },
{ 15, -1, -1, 15, -1, ATHLON_FX , "Athlon FX" },
{ 15, -1, -1, 15, -1, ATHLON_64_FX , "Athlon 64 FX" },
{ 15, -1, -1, 15, -1, ATHLON_64_X2_512K , "Athlon 64 X2 (512K)" },
{ 15, -1, -1, 15, -1, ATHLON_64_X2_1M , "Athlon 64 X2 (1024K)" },
{ 15, -1, -1, 15, -1, TURION_64_512K , "Turion 64 (512K)" },
{ 15, -1, -1, 15, -1, TURION_64_1M , "Turion 64 (1024K)" },
{ 15, -1, -1, 15, -1, TURION_X2_512K , "Turion 64 X2 (512K)" },
{ 15, -1, -1, 15, -1, TURION_X2_1M , "Turion 64 X2 (1024K)" },
{ 15, -1, -1, 15, -1, SEMPRON_64_128K , "A64 Sempron (128K)" },
{ 15, -1, -1, 15, -1, SEMPRON_64_256K , "A64 Sempron (256K)" },
{ 15, -1, -1, 15, -1, SEMPRON_64_512K , "A64 Sempron (512K)" },
{ 15, -1, -1, 15, 0x4f, ATHLON_64_512K , "Athlon 64 (Orleans/512K)" },
{ 15, -1, -1, 15, 0x5f, ATHLON_64_512K , "Athlon 64 (Orleans/512K)" },
{ 15, -1, -1, 15, 0x2f, ATHLON_64_512K , "Athlon 64 (Venice/512K)" },
{ 15, -1, -1, 15, 0x2c, ATHLON_64_512K , "Athlon 64 (Venice/512K)" },
{ 15, -1, -1, 15, 0x1f, ATHLON_64_512K , "Athlon 64 (Winchester/512K)" },
{ 15, -1, -1, 15, 0x0c, ATHLON_64_512K , "Athlon 64 (Newcastle/512K)" },
{ 15, -1, -1, 15, 0x27, ATHLON_64_512K , "Athlon 64 (San Diego/512K)" },
{ 15, -1, -1, 15, 0x37, ATHLON_64_512K , "Athlon 64 (San Diego/512K)" },
{ 15, -1, -1, 15, 0x04, ATHLON_64_512K , "Athlon 64 (ClawHammer/512K)" },
{ 15, -1, -1, 15, -1, 1, -1, NO_CODE , 0, "Unknown A64" },
{ 15, -1, -1, 15, -1, 1, -1, OPTERON_SINGLE , 0, "Opteron" },
{ 15, -1, -1, 15, -1, 2, -1, OPTERON_DUALCORE , 0, "Opteron (Dual Core)" },
{ 15, 3, -1, 15, -1, 1, -1, OPTERON_SINGLE , 0, "Opteron" },
{ 15, 3, -1, 15, -1, 2, -1, OPTERON_DUALCORE , 0, "Opteron (Dual Core)" },
{ 15, -1, -1, 15, -1, 1, 512, ATHLON_64 , 0, "Athlon 64 (512K)" },
{ 15, -1, -1, 15, -1, 1, 1024, ATHLON_64 , 0, "Athlon 64 (1024K)" },
{ 15, -1, -1, 15, -1, 1, -1, ATHLON_FX , 0, "Athlon FX" },
{ 15, -1, -1, 15, -1, 1, -1, ATHLON_64_FX , 0, "Athlon 64 FX" },
{ 15, -1, -1, 15, -1, 2, 512, ATHLON_64_X2 , 0, "Athlon 64 X2 (512K)" },
{ 15, -1, -1, 15, -1, 2, 1024, ATHLON_64_X2 , 0, "Athlon 64 X2 (1024K)" },
{ 15, -1, -1, 15, -1, 1, 512, TURION_64 , 0, "Turion 64 (512K)" },
{ 15, -1, -1, 15, -1, 1, 1024, TURION_64 , 0, "Turion 64 (1024K)" },
{ 15, -1, -1, 15, -1, 2, 512, TURION_X2 , 0, "Turion 64 X2 (512K)" },
{ 15, -1, -1, 15, -1, 2, 1024, TURION_X2 , 0, "Turion 64 X2 (1024K)" },
{ 15, -1, -1, 15, -1, 1, 128, SEMPRON , 0, "A64 Sempron (128K)" },
{ 15, -1, -1, 15, -1, 1, 256, SEMPRON , 0, "A64 Sempron (256K)" },
{ 15, -1, -1, 15, -1, 1, 512, SEMPRON , 0, "A64 Sempron (512K)" },
{ 15, -1, -1, 15, 0x4f, 1, 512, ATHLON_64 , 0, "Athlon 64 (Orleans/512K)" },
{ 15, -1, -1, 15, 0x5f, 1, 512, ATHLON_64 , 0, "Athlon 64 (Orleans/512K)" },
{ 15, -1, -1, 15, 0x2f, 1, 512, ATHLON_64 , 0, "Athlon 64 (Venice/512K)" },
{ 15, -1, -1, 15, 0x2c, 1, 512, ATHLON_64 , 0, "Athlon 64 (Venice/512K)" },
{ 15, -1, -1, 15, 0x1f, 1, 512, ATHLON_64 , 0, "Athlon 64 (Winchester/512K)" },
{ 15, -1, -1, 15, 0x0c, 1, 512, ATHLON_64 , 0, "Athlon 64 (Newcastle/512K)" },
{ 15, -1, -1, 15, 0x27, 1, 512, ATHLON_64 , 0, "Athlon 64 (San Diego/512K)" },
{ 15, -1, -1, 15, 0x37, 1, 512, ATHLON_64 , 0, "Athlon 64 (San Diego/512K)" },
{ 15, -1, -1, 15, 0x04, 1, 512, ATHLON_64 , 0, "Athlon 64 (ClawHammer/512K)" },
{ 15, -1, -1, 15, 0x5f, ATHLON_64_1M , "Athlon 64 (Orleans/1024K)" },
{ 15, -1, -1, 15, 0x27, ATHLON_64_1M , "Athlon 64 (San Diego/1024K)" },
{ 15, -1, -1, 15, 0x04, ATHLON_64_1M , "Athlon 64 (ClawHammer/1024K)" },
{ 15, -1, -1, 15, 0x5f, 1, 1024, ATHLON_64 , 0, "Athlon 64 (Orleans/1024K)" },
{ 15, -1, -1, 15, 0x27, 1, 1024, ATHLON_64 , 0, "Athlon 64 (San Diego/1024K)" },
{ 15, -1, -1, 15, 0x04, 1, 1024, ATHLON_64 , 0, "Athlon 64 (ClawHammer/1024K)" },
{ 15, -1, -1, 15, 0x4b, SEMPRON_DUALCORE , "Athlon 64 X2 (Windsor/256K)" },
{ 15, -1, -1, 15, 0x4b, 2, 256, SEMPRON_DUALCORE , 0, "Athlon 64 X2 (Windsor/256K)" },
{ 15, -1, -1, 15, 0x23, ATHLON_64_X2_512K , "Athlon 64 X2 (Toledo/512K)" },
{ 15, -1, -1, 15, 0x4b, ATHLON_64_X2_512K , "Athlon 64 X2 (Windsor/512K)" },
{ 15, -1, -1, 15, 0x43, ATHLON_64_X2_512K , "Athlon 64 X2 (Windsor/512K)" },
{ 15, -1, -1, 15, 0x6b, ATHLON_64_X2_512K , "Athlon 64 X2 (Brisbane/512K)" },
{ 15, -1, -1, 15, 0x2b, ATHLON_64_X2_512K , "Athlon 64 X2 (Manchester/512K)"},
{ 15, -1, -1, 15, 0x23, 2, 512, ATHLON_64_X2 , 0, "Athlon 64 X2 (Toledo/512K)" },
{ 15, -1, -1, 15, 0x4b, 2, 512, ATHLON_64_X2 , 0, "Athlon 64 X2 (Windsor/512K)" },
{ 15, -1, -1, 15, 0x43, 2, 512, ATHLON_64_X2 , 0, "Athlon 64 X2 (Windsor/512K)" },
{ 15, -1, -1, 15, 0x6b, 2, 512, ATHLON_64_X2 , 0, "Athlon 64 X2 (Brisbane/512K)" },
{ 15, -1, -1, 15, 0x2b, 2, 512, ATHLON_64_X2 , 0, "Athlon 64 X2 (Manchester/512K)"},
{ 15, -1, -1, 15, 0x23, ATHLON_64_X2_1M , "Athlon 64 X2 (Toledo/1024K)" },
{ 15, -1, -1, 15, 0x43, ATHLON_64_X2_1M , "Athlon 64 X2 (Windsor/1024K)" },
{ 15, -1, -1, 15, 0x23, 2, 1024, ATHLON_64_X2 , 0, "Athlon 64 X2 (Toledo/1024K)" },
{ 15, -1, -1, 15, 0x43, 2, 1024, ATHLON_64_X2 , 0, "Athlon 64 X2 (Windsor/1024K)" },
{ 15, -1, -1, 15, 0x2c, SEMPRON_64_128K , "Sempron 64 (Palermo/128K)" },
{ 15, -1, -1, 15, 0x2c, SEMPRON_64_256K , "Sempron 64 (Palermo/256K)" },
{ 15, -1, -1, 15, 0x2f, SEMPRON_64_128K , "Sempron 64 (Palermo/128K)" },
{ 15, -1, -1, 15, 0x2f, SEMPRON_64_256K , "Sempron 64 (Palermo/256K)" },
{ 15, -1, -1, 15, 0x4f, SEMPRON_64_128K , "Sempron 64 (Manila/128K)" },
{ 15, -1, -1, 15, 0x4f, SEMPRON_64_256K , "Sempron 64 (Manila/256K)" },
{ 15, -1, -1, 15, 0x7f, SEMPRON_64_256K , "Sempron 64 (Sparta/256K)" },
{ 15, -1, -1, 15, 0x7f, SEMPRON_64_512K , "Sempron 64 (Sparta/512K)" },
{ 15, -1, -1, 15, -1, M_SEMPRON_64_256K , "Mobile Sempron 64 (Keene/256K)"},
{ 15, -1, -1, 15, -1, M_SEMPRON_64_512K , "Mobile Sempron 64 (Keene/512K)"},
{ 15, -1, -1, 15, -1, SEMPRON_DUALCORE , "Sempron Dual Core" },
{ 15, -1, -1, 15, 0x2c, 1, 128, SEMPRON , 0, "Sempron 64 (Palermo/128K)" },
{ 15, -1, -1, 15, 0x2c, 1, 256, SEMPRON , 0, "Sempron 64 (Palermo/256K)" },
{ 15, -1, -1, 15, 0x2f, 1, 128, SEMPRON , 0, "Sempron 64 (Palermo/128K)" },
{ 15, -1, -1, 15, 0x2f, 1, 256, SEMPRON , 0, "Sempron 64 (Palermo/256K)" },
{ 15, -1, -1, 15, 0x4f, 1, 128, SEMPRON , 0, "Sempron 64 (Manila/128K)" },
{ 15, -1, -1, 15, 0x4f, 1, 256, SEMPRON , 0, "Sempron 64 (Manila/256K)" },
{ 15, -1, -1, 15, 0x7f, 1, 256, SEMPRON , 0, "Sempron 64 (Sparta/256K)" },
{ 15, -1, -1, 15, 0x7f, 1, 512, SEMPRON , 0, "Sempron 64 (Sparta/512K)" },
{ 15, -1, -1, 15, -1, 1, 256, M_SEMPRON , 0, "Mobile Sempron 64 (Keene/256K)"},
{ 15, -1, -1, 15, -1, 1, 512, M_SEMPRON , 0, "Mobile Sempron 64 (Keene/512K)"},
{ 15, -1, -1, 15, -1, 2, -1, SEMPRON_DUALCORE , 0, "Sempron Dual Core" },
/* K9 Architecture */
{ 15, -1, -1, 16, -1, PHENOM , "Unknown AMD Phenom" },
{ 15, 2, -1, 16, -1, PHENOM , "Phenom" },
{ 15, 2, -1, 16, -1, PHENOM_X3 , "Phenom X3 (Toliman)" },
{ 15, 2, -1, 16, -1, PHENOM_X4 , "Phenom X4 (Agena)" },
{ 15, -1, -1, 16, -1, 1, -1, PHENOM , 0, "Unknown AMD Phenom" },
{ 15, 2, -1, 16, -1, 1, -1, PHENOM , 0, "Phenom" },
{ 15, 2, -1, 16, -1, 3, -1, PHENOM , 0, "Phenom X3 (Toliman)" },
{ 15, 2, -1, 16, -1, 4, -1, PHENOM , 0, "Phenom X4 (Agena)" },
};
@ -315,30 +301,30 @@ static amd_code_t decode_amd_codename_part1(const char *bs)
if (strstr(bs, "Athlon(tm) 64 FX")) return ATHLON_64_FX;
if (strstr(bs, "Athlon(tm) FX")) return ATHLON_FX;
if (strstr(bs, "Athlon(tm) 64")) {
if (strstr(bs, "Dual Core")) return ATHLON_64_X2_512K;
return ATHLON_64_512K;
if (strstr(bs, "Dual Core")) return ATHLON_64_X2;
return ATHLON_64;
}
if (strstr(bs, "Athlon(tm) X2")) {
return ATHLON_64_X2_512K;
return ATHLON_64_X2;
}
if (strstr(bs, "Turion(tm)")) {
if (strstr(bs, "X2"))
return TURION_X2_512K;
return TURION_X2;
else
return TURION_64_512K;
return TURION_64;
}
if (strstr(bs, "mobile") || strstr(bs, "Mobile")) {
if (strstr(bs, "Athlon(tm) XP-M (LV)")) return ATHLON_XP_M_LV;
if (strstr(bs, "Athlon(tm) XP")) return ATHLON_XP_M;
if (strstr(bs, "Sempron(tm)")) return M_SEMPRON_64_256K;
if (strstr(bs, "Sempron(tm)")) return M_SEMPRON;
if (strstr(bs, "Athlon")) return MOBILE_ATHLON64;
if (strstr(bs, "Duron")) return MOBILE_DURON;
} else {
if (strstr(bs, "Athlon(tm) XP")) return ATHLON_XP;
if (strstr(bs, "Athlon(tm) MP")) return ATHLON_MP;
if (strstr(bs, "Sempron(tm)")) return SEMPRON_64_128K;
if (strstr(bs, "Sempron(tm)")) return SEMPRON;
if (strstr(bs, "Duron")) return DURON;
if (strstr(bs, "Athlon")) return ATHLON;
}
@ -350,42 +336,9 @@ static void decode_amd_codename(struct cpu_raw_data_t* raw, struct cpu_id_t* dat
{
amd_code_t code = decode_amd_codename_part1(data->brand_str);
if (code == ATHLON_XP && data->l2_cache == 512)
code = ATHLON_XP_BARTON;
if (code == ATHLON_64_512K && data->l2_cache > 512)
code = ATHLON_64_1M;
if (code == SEMPRON_64_128K && data->l2_cache > 128) {
if (data->l2_cache == 256)
code = SEMPRON_64_256K;
else
code = SEMPRON_64_512K;
}
if (code == M_SEMPRON_64_256K && data->l2_cache > 256)
code = M_SEMPRON_64_512K;
if (code == TURION_64_512K && data->l2_cache > 512)
code = TURION_64_1M;
if (code == TURION_X2_512K && data->l2_cache > 512)
code = TURION_X2_1M;
if (code == ATHLON_64_X2_512K && data->l2_cache > 512)
code = ATHLON_64_X2_1M;
if (code == ATHLON_64_X2_512K && data->l2_cache < 512)
if (code == ATHLON_64_X2 && data->l2_cache < 512)
code = SEMPRON_DUALCORE;
if (code == PHENOM) {
switch (data->num_cores) {
case 2:
code = PHENOM_X2;
break;
case 3:
code = PHENOM_X3;
break;
case 4:
code = PHENOM_X4;
break;
default:
break;
}
}
match_cpu_codename(cpudb_amd, COUNT_OF(cpudb_amd), data, code);
match_cpu_codename(cpudb_amd, COUNT_OF(cpudb_amd), data, code, 0);
}
int cpuid_identify_amd(struct cpu_raw_data_t* raw, struct cpu_id_t* data)

View file

@ -24,6 +24,7 @@
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#include <string.h>
#include <ctype.h>
#include "libcpuid.h"
#include "recog_intel.h"
#include "libcpuid_util.h"
@ -46,17 +47,9 @@ enum _intel_code_t {
MOBILE_CORE_SOLO,
CORE_DUO,
MOBILE_CORE_DUO,
CORE_DUO_512K,
CORE_DUO_1024K,
ALLENDALE,
WOLFDALE_2M,
WOLFDALE_3M,
WOLFDALE_6M,
MEROM_2M,
MEROM_4M,
PENRYN_3M,
PENRYN_6M,
PENRYN_QUAD,
WOLFDALE,
MEROM,
PENRYN,
QUAD_CORE,
DUAL_CORE_HT,
QUAD_CORE_HT,
@ -68,173 +61,199 @@ enum _intel_code_t {
};
typedef enum _intel_code_t intel_code_t;
enum _intel_model_t {
UNKNOWN = -1,
_3000 = 100,
_3100,
_3200,
X3200,
_3300,
X3300,
_5100,
_5200,
_5300,
_5400,
};
typedef enum _intel_model_t intel_model_t;
const struct match_entry_t cpudb_intel[] = {
{ -1, -1, -1, -1, -1, NO_CODE , "Unknown Intel CPU" },
{ -1, -1, -1, -1, -1, 1, -1, NO_CODE , 0, "Unknown Intel CPU" },
/* i486 */
{ 4, -1, -1, -1, -1, NO_CODE , "Unknown i486" },
{ 4, 0, -1, -1, -1, NO_CODE , "i486 DX-25/33" },
{ 4, 1, -1, -1, -1, NO_CODE , "i486 DX-50" },
{ 4, 2, -1, -1, -1, NO_CODE , "i486 SX" },
{ 4, 3, -1, -1, -1, NO_CODE , "i486 DX2" },
{ 4, 4, -1, -1, -1, NO_CODE , "i486 SL" },
{ 4, 5, -1, -1, -1, NO_CODE , "i486 SX2" },
{ 4, 7, -1, -1, -1, NO_CODE , "i486 DX2 WriteBack" },
{ 4, 8, -1, -1, -1, NO_CODE , "i486 DX4" },
{ 4, 9, -1, -1, -1, NO_CODE , "i486 DX4 WriteBack" },
{ 4, -1, -1, -1, -1, 1, -1, NO_CODE , 0, "Unknown i486" },
{ 4, 0, -1, -1, -1, 1, -1, NO_CODE , 0, "i486 DX-25/33" },
{ 4, 1, -1, -1, -1, 1, -1, NO_CODE , 0, "i486 DX-50" },
{ 4, 2, -1, -1, -1, 1, -1, NO_CODE , 0, "i486 SX" },
{ 4, 3, -1, -1, -1, 1, -1, NO_CODE , 0, "i486 DX2" },
{ 4, 4, -1, -1, -1, 1, -1, NO_CODE , 0, "i486 SL" },
{ 4, 5, -1, -1, -1, 1, -1, NO_CODE , 0, "i486 SX2" },
{ 4, 7, -1, -1, -1, 1, -1, NO_CODE , 0, "i486 DX2 WriteBack" },
{ 4, 8, -1, -1, -1, 1, -1, NO_CODE , 0, "i486 DX4" },
{ 4, 9, -1, -1, -1, 1, -1, NO_CODE , 0, "i486 DX4 WriteBack" },
/* All Pentia:
Pentium 1 */
{ 5, -1, -1, -1, -1, NO_CODE , "Unknown Pentium" },
{ 5, 0, -1, -1, -1, NO_CODE , "Pentium A-Step" },
{ 5, 1, -1, -1, -1, NO_CODE , "Pentium 1 (0.8u)" },
{ 5, 2, -1, -1, -1, NO_CODE , "Pentium 1 (0.35u)" },
{ 5, 3, -1, -1, -1, NO_CODE , "Pentium OverDrive" },
{ 5, 4, -1, -1, -1, NO_CODE , "Pentium 1 (0.35u)" },
{ 5, 7, -1, -1, -1, NO_CODE , "Pentium 1 (0.35u)" },
{ 5, 8, -1, -1, -1, NO_CODE , "Pentium MMX (0.25u)" },
{ 5, -1, -1, -1, -1, 1, -1, NO_CODE , 0, "Unknown Pentium" },
{ 5, 0, -1, -1, -1, 1, -1, NO_CODE , 0, "Pentium A-Step" },
{ 5, 1, -1, -1, -1, 1, -1, NO_CODE , 0, "Pentium 1 (0.8u)" },
{ 5, 2, -1, -1, -1, 1, -1, NO_CODE , 0, "Pentium 1 (0.35u)" },
{ 5, 3, -1, -1, -1, 1, -1, NO_CODE , 0, "Pentium OverDrive" },
{ 5, 4, -1, -1, -1, 1, -1, NO_CODE , 0, "Pentium 1 (0.35u)" },
{ 5, 7, -1, -1, -1, 1, -1, NO_CODE , 0, "Pentium 1 (0.35u)" },
{ 5, 8, -1, -1, -1, 1, -1, NO_CODE , 0, "Pentium MMX (0.25u)" },
/* Pentium 2 / 3 / M / Conroe / whatsnext - all P6 based. */
{ 6, -1, -1, -1, -1, NO_CODE , "Unknown P6" },
{ 6, 0, -1, -1, -1, NO_CODE , "Pentium Pro" },
{ 6, 1, -1, -1, -1, NO_CODE , "Pentium Pro" },
{ 6, 3, -1, -1, -1, NO_CODE , "Pentium II (Klamath)" },
{ 6, 5, -1, -1, -1, NO_CODE , "Pentium II (Deschutes)" },
{ 6, 6, -1, -1, -1, NO_CODE , "Pentium II (Dixon)" },
{ 6, -1, -1, -1, -1, 1, -1, NO_CODE , 0, "Unknown P6" },
{ 6, 0, -1, -1, -1, 1, -1, NO_CODE , 0, "Pentium Pro" },
{ 6, 1, -1, -1, -1, 1, -1, NO_CODE , 0, "Pentium Pro" },
{ 6, 3, -1, -1, -1, 1, -1, NO_CODE , 0, "Pentium II (Klamath)" },
{ 6, 5, -1, -1, -1, 1, -1, NO_CODE , 0, "Pentium II (Deschutes)" },
{ 6, 6, -1, -1, -1, 1, -1, NO_CODE , 0, "Pentium II (Dixon)" },
{ 6, 3, -1, -1, -1, XEON , "P-II Xeon" },
{ 6, 5, -1, -1, -1, XEON , "P-II Xeon" },
{ 6, 6, -1, -1, -1, XEON , "P-II Xeon" },
{ 6, 3, -1, -1, -1, 1, -1, XEON , 0, "P-II Xeon" },
{ 6, 5, -1, -1, -1, 1, -1, XEON , 0, "P-II Xeon" },
{ 6, 6, -1, -1, -1, 1, -1, XEON , 0, "P-II Xeon" },
{ 6, 5, -1, -1, -1, CELERON , "P-II Celeron (no L2)" },
{ 6, 6, -1, -1, -1, CELERON , "P-II Celeron (128K)" },
{ 6, 5, -1, -1, -1, 1, -1, CELERON , 0, "P-II Celeron (no L2)" },
{ 6, 6, -1, -1, -1, 1, -1, CELERON , 0, "P-II Celeron (128K)" },
/* -------------------------------------------------- */
{ 6, 7, -1, -1, -1, NO_CODE , "Pentium III (Katmai)" },
{ 6, 8, -1, -1, -1, NO_CODE , "Pentium III (Coppermine)"},
{ 6, 10, -1, -1, -1, NO_CODE , "Pentium III (Coppermine)"},
{ 6, 11, -1, -1, -1, NO_CODE , "Pentium III (Tualatin)" },
{ 6, 7, -1, -1, -1, 1, -1, NO_CODE , 0, "Pentium III (Katmai)" },
{ 6, 8, -1, -1, -1, 1, -1, NO_CODE , 0, "Pentium III (Coppermine)"},
{ 6, 10, -1, -1, -1, 1, -1, NO_CODE , 0, "Pentium III (Coppermine)"},
{ 6, 11, -1, -1, -1, 1, -1, NO_CODE , 0, "Pentium III (Tualatin)" },
{ 6, 7, -1, -1, -1, XEON , "P-III Xeon" },
{ 6, 8, -1, -1, -1, XEON , "P-III Xeon" },
{ 6, 10, -1, -1, -1, XEON , "P-III Xeon" },
{ 6, 11, -1, -1, -1, XEON , "P-III Xeon" },
{ 6, 7, -1, -1, -1, 1, -1, XEON , 0, "P-III Xeon" },
{ 6, 8, -1, -1, -1, 1, -1, XEON , 0, "P-III Xeon" },
{ 6, 10, -1, -1, -1, 1, -1, XEON , 0, "P-III Xeon" },
{ 6, 11, -1, -1, -1, 1, -1, XEON , 0, "P-III Xeon" },
{ 6, 7, -1, -1, -1, CELERON , "P-III Celeron" },
{ 6, 8, -1, -1, -1, CELERON , "P-III Celeron" },
{ 6, 10, -1, -1, -1, CELERON , "P-III Celeron" },
{ 6, 11, -1, -1, -1, CELERON , "P-III Celeron" },
{ 6, 7, -1, -1, -1, 1, -1, CELERON , 0, "P-III Celeron" },
{ 6, 8, -1, -1, -1, 1, -1, CELERON , 0, "P-III Celeron" },
{ 6, 10, -1, -1, -1, 1, -1, CELERON , 0, "P-III Celeron" },
{ 6, 11, -1, -1, -1, 1, -1, CELERON , 0, "P-III Celeron" },
/* -------------------------------------------------- */
{ 6, 9, -1, -1, -1, NO_CODE , "Unknown Pentium M" },
{ 6, 9, -1, -1, -1, MOBILE_PENTIUM_M , "Unknown Pentium M" },
{ 6, 9, -1, -1, -1, PENTIUM , "Pentium M (Banias)" },
{ 6, 9, -1, -1, -1, MOBILE_PENTIUM_M , "Pentium M (Banias)" },
{ 6, 9, -1, -1, -1, CELERON , "Celeron M" },
{ 6, 13, -1, -1, -1, PENTIUM , "Pentium M (Dothan)" },
{ 6, 13, -1, -1, -1, MOBILE_PENTIUM_M , "Pentium M (Dothan)" },
{ 6, 13, -1, -1, -1, CELERON , "Celeron M" },
{ 6, 9, -1, -1, -1, 1, -1, NO_CODE , 0, "Unknown Pentium M" },
{ 6, 9, -1, -1, -1, 1, -1, MOBILE_PENTIUM_M , 0, "Unknown Pentium M" },
{ 6, 9, -1, -1, -1, 1, -1, PENTIUM , 0, "Pentium M (Banias)" },
{ 6, 9, -1, -1, -1, 1, -1, MOBILE_PENTIUM_M , 0, "Pentium M (Banias)" },
{ 6, 9, -1, -1, -1, 1, -1, CELERON , 0, "Celeron M" },
{ 6, 13, -1, -1, -1, 1, -1, PENTIUM , 0, "Pentium M (Dothan)" },
{ 6, 13, -1, -1, -1, 1, -1, MOBILE_PENTIUM_M , 0, "Pentium M (Dothan)" },
{ 6, 13, -1, -1, -1, 1, -1, CELERON , 0, "Celeron M" },
{ 6, 12, -1, -1, -1, NO_CODE , "Unknown Atom" },
{ 6, 12, -1, -1, -1, ATOM_DIAMONDVILLE , "Atom (Diamondville)" },
{ 6, 12, -1, -1, -1, ATOM_DUALCORE , "Atom Dualcore (Diamondville)" },
{ 6, 12, -1, -1, -1, ATOM_SILVERTHORNE , "Atom (Silverthorne)" },
{ 6, 12, -1, -1, -1, 1, -1, NO_CODE , 0, "Unknown Atom" },
{ 6, 12, -1, -1, -1, 1, -1, ATOM_DIAMONDVILLE , 0, "Atom (Diamondville)" },
{ 6, 12, -1, -1, -1, 1, -1, ATOM_DUALCORE , 0, "Atom Dualcore (Diamondville)" },
{ 6, 12, -1, -1, -1, 1, -1, ATOM_SILVERTHORNE , 0, "Atom (Silverthorne)" },
/* -------------------------------------------------- */
{ 6, 14, -1, -1, -1, NO_CODE , "Unknown Yonah" },
{ 6, 14, -1, -1, -1, CORE_SOLO , "Yonah (Core Solo)" },
{ 6, 14, -1, -1, -1, CORE_DUO , "Yonah (Core Duo)" },
{ 6, 14, -1, -1, -1, MOBILE_CORE_SOLO , "Yonah (Core Solo)" },
{ 6, 14, -1, -1, -1, MOBILE_CORE_DUO , "Yonah (Core Duo)" },
{ 6, 14, -1, -1, -1, XEON , "Xeon LV" },
{ 6, 14, -1, -1, -1, CORE_SOLO , "Yonah (Core Solo)" },
{ 6, 14, -1, -1, -1, 1, -1, NO_CODE , 0, "Unknown Yonah" },
{ 6, 14, -1, -1, -1, 1, -1, CORE_SOLO , 0, "Yonah (Core Solo)" },
{ 6, 14, -1, -1, -1, 1, -1, CORE_DUO , 0, "Yonah (Core Duo)" },
{ 6, 14, -1, -1, -1, 1, -1, MOBILE_CORE_SOLO , 0, "Yonah (Core Solo)" },
{ 6, 14, -1, -1, -1, 1, -1, MOBILE_CORE_DUO , 0, "Yonah (Core Duo)" },
{ 6, 14, -1, -1, -1, 1, -1, CORE_SOLO , 0, "Yonah (Core Solo)" },
{ 6, 15, -1, -1, -1, NO_CODE , "Unknown Core 2" },
{ 6, 15, -1, -1, -1, CORE_DUO , "Conroe (Core 2 Duo)" },
{ 6, 15, -1, -1, -1, CORE_DUO_1024K , "Conroe (Core 2 Duo) 1024K" },
{ 6, 15, -1, -1, -1, CORE_DUO_512K , "Conroe (Core 2 Duo) 512K" },
{ 6, 15, -1, -1, -1, QUAD_CORE , "Kentsfield (Core 2 Quad)" },
{ 6, 15, -1, -1, -1, MORE_THAN_QUADCORE, "More than quad-core" },
{ 6, 15, -1, -1, -1, ALLENDALE , "Allendale (Core 2 Duo)" },
{ 6, 15, -1, -1, -1, XEON , "Xeon (Clovertown) Quad" },
{ 6, 15, -1, -1, -1, MOBILE_CORE_DUO , "Merom (Core 2 Duo)" },
{ 6, 15, -1, -1, -1, MEROM_2M , "Merom (Core 2 Duo) 2048K" },
{ 6, 15, -1, -1, -1, MEROM_4M , "Merom (Core 2 Duo) 4096K" },
{ 6, 15, -1, -1, -1, 1, -1, NO_CODE , 0, "Unknown Core 2" },
{ 6, 15, -1, -1, -1, 2, 4096, CORE_DUO , 0, "Conroe (Core 2 Duo)" },
{ 6, 15, -1, -1, -1, 2, 1024, CORE_DUO , 0, "Conroe (Core 2 Duo) 1024K" },
{ 6, 15, -1, -1, -1, 2, 512, CORE_DUO , 0, "Conroe (Core 2 Duo) 512K" },
{ 6, 15, -1, -1, -1, 4, -1, QUAD_CORE , 0, "Kentsfield (Core 2 Quad)" },
{ 6, 15, -1, -1, -1, 400, -1, MORE_THAN_QUADCORE, 0, "More than quad-core" },
{ 6, 15, -1, -1, -1, 2, 2048, CORE_DUO , 0, "Allendale (Core 2 Duo)" },
{ 6, 15, -1, -1, -1, 2, -1, MOBILE_CORE_DUO , 0, "Merom (Core 2 Duo)" },
{ 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, CELERON , "Conroe-L (Celeron)" },
{ 6, 6, -1, -1, 22, CELERON , "Conroe-L (Celeron)" },
{ 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, 6, -1, -1, 22, NO_CODE , "Unknown Core ?" },
{ 6, 7, -1, -1, 23, NO_CODE , "Unknown Core ?" },
{ 6, 6, -1, -1, 22, MORE_THAN_QUADCORE, "More than quad-core" },
{ 6, 7, -1, -1, 23, MORE_THAN_QUADCORE, "More than quad-core" },
{ 6, 6, -1, -1, 22, 1, -1, NO_CODE , 0, "Unknown Core ?" },
{ 6, 7, -1, -1, 23, 1, -1, NO_CODE , 0, "Unknown Core ?" },
{ 6, 6, -1, -1, 22, 400, -1, MORE_THAN_QUADCORE, 0, "More than quad-core" },
{ 6, 7, -1, -1, 23, 400, -1, MORE_THAN_QUADCORE, 0, "More than quad-core" },
{ 6, 7, -1, -1, 23, CORE_SOLO , "Unknown Core 45nm" },
{ 6, 7, -1, -1, 23, CORE_DUO , "Unknown Core 45nm" },
{ 6, 7, -1, -1, 23, WOLFDALE_2M , "Wolfdale (Core 2 Duo) 2M" },
{ 6, 7, -1, -1, 23, WOLFDALE_3M , "Wolfdale (Core 2 Duo) 3M" },
{ 6, 7, -1, -1, 23, WOLFDALE_6M , "Wolfdale (Core 2 Duo) 6M" },
{ 6, 7, -1, -1, 23, XEON , "Xeon (Wolfdale)" },
{ 6, 7, -1, -1, 23, MOBILE_CORE_DUO , "Penryn (Core 2 Duo)" },
{ 6, 7, -1, -1, 23, PENRYN_3M , "Penryn (Core 2 Duo) 3M" },
{ 6, 7, -1, -1, 23, PENRYN_6M , "Penryn (Core 2 Duo) 6M" },
{ 6, 7, -1, -1, 23, QUAD_CORE , "Yorkfield (Core 2 Quad)" },
{ 6, 7, -1, -1, 23, 1, -1, CORE_SOLO , 0, "Unknown Core 45nm" },
{ 6, 7, -1, -1, 23, 1, -1, CORE_DUO , 0, "Unknown Core 45nm" },
{ 6, 7, -1, -1, 23, 2, 2048, WOLFDALE , 0, "Wolfdale (Core 2 Duo) 2M" },
{ 6, 7, -1, -1, 23, 2, 3072, WOLFDALE , 0, "Wolfdale (Core 2 Duo) 3M" },
{ 6, 7, -1, -1, 23, 2, 6144, WOLFDALE , 0, "Wolfdale (Core 2 Duo) 6M" },
{ 6, 7, -1, -1, 23, 1, -1, MOBILE_CORE_DUO , 0, "Penryn (Core 2 Duo)" },
{ 6, 7, -1, -1, 23, 2, 3072, PENRYN , 0, "Penryn (Core 2 Duo) 3M" },
{ 6, 7, -1, -1, 23, 2, 6144, PENRYN , 0, "Penryn (Core 2 Duo) 6M" },
{ 6, 7, -1, -1, 23, 1, 3072, QUAD_CORE , 0, "Yorkfield (Core 2 Quad) 3M"},
{ 6, 7, -1, -1, 23, 1, 6144, QUAD_CORE , 0, "Yorkfield (Core 2 Quad) 6M"},
{ 6, 10, -1, -1, 26, NO_CODE , "Intel Core i7" },
{ 6, 10, -1, -1, 26, QUAD_CORE_HT , "Bloomfield (Core i7)" },
{ 6, 10, -1, -1, 26, 1, -1, NO_CODE , 0, "Intel Core i7" },
{ 6, 10, -1, -1, 26, 4, -1, QUAD_CORE_HT , 0, "Bloomfield (Core i7)" },
/* Core microarchitecture-based Xeons: */
{ 6, 14, -1, -1, 14, 1, -1, XEON , 0, "Xeon LV" },
{ 6, 15, -1, -1, 15, 2, 4096, XEON , _5100, "Xeon (Woodcrest)" },
{ 6, 15, -1, -1, 15, 2, 2048, XEON , _3000, "Xeon (Conroe/2M)" },
{ 6, 15, -1, -1, 15, 2, 4096, XEON , _3000, "Xeon (Conroe/4M)" },
{ 6, 15, -1, -1, 15, 4, 4096, XEON , X3200, "Xeon (Kentsfield)" },
{ 6, 15, -1, -1, 15, 4, 4096, XEON , _5300, "Xeon (Clovertown)" },
{ 6, 7, -1, -1, 23, 2, 6144, XEON , _3100, "Xeon (Wolfdale)" },
{ 6, 7, -1, -1, 23, 2, 6144, XEON , _5200, "Xeon (Wolfdale DP)" },
{ 6, 7, -1, -1, 23, 4, 6144, XEON , _5400, "Xeon (Harpertown)" },
{ 6, 7, -1, -1, 23, 4, 3072, XEON , X3300, "Xeon (Yorkfield/3M)" },
{ 6, 7, -1, -1, 23, 4, 6144, XEON , X3300, "Xeon (Yorkfield/6M)" },
/* Itaniums */
{ 7, -1, -1, -1, -1, NO_CODE , "Itanium" },
{ 15, -1, -1, 16, -1, NO_CODE , "Itanium 2" },
{ 7, -1, -1, -1, -1, 1, -1, NO_CODE , 0, "Itanium" },
{ 15, -1, -1, 16, -1, 1, -1, NO_CODE , 0, "Itanium 2" },
/* Netburst based (Pentium 4 and later)
classic P4s */
{ 15, -1, -1, -1, -1, NO_CODE , "Unknown Pentium 4" },
{ 15, -1, -1, 15, -1, CELERON , "Unknown P-4 Celeron" },
{ 15, -1, -1, 15, -1, XEON , "Unknown Xeon" },
{ 15, -1, -1, -1, -1, 1, -1, NO_CODE , 0, "Unknown Pentium 4" },
{ 15, -1, -1, 15, -1, 1, -1, CELERON , 0, "Unknown P-4 Celeron" },
{ 15, -1, -1, 15, -1, 1, -1, XEON , 0, "Unknown Xeon" },
{ 15, 0, -1, 15, -1, NO_CODE , "Pentium 4 (Willamette)" },
{ 15, 1, -1, 15, -1, NO_CODE , "Pentium 4 (Willamette)" },
{ 15, 2, -1, 15, -1, NO_CODE , "Pentium 4 (Northwood)" },
{ 15, 3, -1, 15, -1, NO_CODE , "Pentium 4 (Prescott)" },
{ 15, 4, -1, 15, -1, NO_CODE , "Pentium 4 (Prescott)" },
{ 15, 6, -1, 15, -1, NO_CODE , "Pentium 4 (Cedar Mill)" },
{ 15, 0, -1, 15, -1, MOBILE_PENTIUM , "Mobile P-4 (Willamette)" },
{ 15, 1, -1, 15, -1, MOBILE_PENTIUM , "Mobile P-4 (Willamette)" },
{ 15, 2, -1, 15, -1, MOBILE_PENTIUM , "Mobile P-4 (Northwood)" },
{ 15, 3, -1, 15, -1, MOBILE_PENTIUM , "Mobile P-4 (Prescott)" },
{ 15, 4, -1, 15, -1, MOBILE_PENTIUM , "Mobile P-4 (Prescott)" },
{ 15, 6, -1, 15, -1, MOBILE_PENTIUM , "Mobile P-4 (Cedar Mill)" },
{ 15, 0, -1, 15, -1, 1, -1, NO_CODE , 0, "Pentium 4 (Willamette)" },
{ 15, 1, -1, 15, -1, 1, -1, NO_CODE , 0, "Pentium 4 (Willamette)" },
{ 15, 2, -1, 15, -1, 1, -1, NO_CODE , 0, "Pentium 4 (Northwood)" },
{ 15, 3, -1, 15, -1, 1, -1, NO_CODE , 0, "Pentium 4 (Prescott)" },
{ 15, 4, -1, 15, -1, 1, -1, NO_CODE , 0, "Pentium 4 (Prescott)" },
{ 15, 6, -1, 15, -1, 1, -1, NO_CODE , 0, "Pentium 4 (Cedar Mill)" },
{ 15, 0, -1, 15, -1, 1, -1, MOBILE_PENTIUM , 0, "Mobile P-4 (Willamette)" },
{ 15, 1, -1, 15, -1, 1, -1, MOBILE_PENTIUM , 0, "Mobile P-4 (Willamette)" },
{ 15, 2, -1, 15, -1, 1, -1, MOBILE_PENTIUM , 0, "Mobile P-4 (Northwood)" },
{ 15, 3, -1, 15, -1, 1, -1, MOBILE_PENTIUM , 0, "Mobile P-4 (Prescott)" },
{ 15, 4, -1, 15, -1, 1, -1, MOBILE_PENTIUM , 0, "Mobile P-4 (Prescott)" },
{ 15, 6, -1, 15, -1, 1, -1, MOBILE_PENTIUM , 0, "Mobile P-4 (Cedar Mill)" },
/* server CPUs */
{ 15, 0, -1, 15, -1, XEON , "Xeon (Foster)" },
{ 15, 1, -1, 15, -1, XEON , "Xeon (Foster)" },
{ 15, 2, -1, 15, -1, XEON , "Xeon (Prestonia)" },
{ 15, 2, -1, 15, -1, XEONMP , "Xeon (Gallatin)" },
{ 15, 3, -1, 15, -1, XEON , "Xeon (Nocona)" },
{ 15, 4, -1, 15, -1, XEON , "Xeon (Nocona)" },
{ 15, 4, -1, 15, -1, XEON_IRWIN , "Xeon (Irwindale)" },
{ 15, 4, -1, 15, -1, XEONMP , "Xeon (Cranford)" },
{ 15, 4, -1, 15, -1, XEON_POTOMAC , "Xeon (Potomac)" },
{ 15, 6, -1, 15, -1, XEON , "Xeon 5000" },
{ 15, 0, -1, 15, -1, 1, -1, XEON , 0, "Xeon (Foster)" },
{ 15, 1, -1, 15, -1, 1, -1, XEON , 0, "Xeon (Foster)" },
{ 15, 2, -1, 15, -1, 1, -1, XEON , 0, "Xeon (Prestonia)" },
{ 15, 2, -1, 15, -1, 1, -1, XEONMP , 0, "Xeon (Gallatin)" },
{ 15, 3, -1, 15, -1, 1, -1, XEON , 0, "Xeon (Nocona)" },
{ 15, 4, -1, 15, -1, 1, -1, XEON , 0, "Xeon (Nocona)" },
{ 15, 4, -1, 15, -1, 1, -1, XEON_IRWIN , 0, "Xeon (Irwindale)" },
{ 15, 4, -1, 15, -1, 1, -1, XEONMP , 0, "Xeon (Cranford)" },
{ 15, 4, -1, 15, -1, 1, -1, XEON_POTOMAC , 0, "Xeon (Potomac)" },
{ 15, 6, -1, 15, -1, 1, -1, XEON , 0, "Xeon (Dempsey)" },
/* Pentium Ds */
{ 15, 4, 4, 15, -1, NO_CODE , "Pentium D" },
{ 15, 4, -1, 15, -1, PENTIUM_D , "Pentium D" },
{ 15, 4, 7, 15, -1, NO_CODE , "Pentium D" },
{ 15, 6, -1, 15, -1, PENTIUM_D , "Pentium D" },
{ 15, 4, 4, 15, -1, 1, -1, NO_CODE , 0, "Pentium D" },
{ 15, 4, -1, 15, -1, 1, -1, PENTIUM_D , 0, "Pentium D" },
{ 15, 4, 7, 15, -1, 1, -1, NO_CODE , 0, "Pentium D" },
{ 15, 6, -1, 15, -1, 1, -1, PENTIUM_D , 0, "Pentium D" },
/* Celeron and Celeron Ds */
{ 15, 1, -1, 15, -1, CELERON , "P-4 Celeron (128K)" },
{ 15, 2, -1, 15, -1, CELERON , "P-4 Celeron (128K)" },
{ 15, 3, -1, 15, -1, CELERON , "Celeron D" },
{ 15, 4, -1, 15, -1, CELERON , "Celeron D" },
{ 15, 6, -1, 15, -1, CELERON , "Celeron D" },
{ 15, 1, -1, 15, -1, 1, -1, CELERON , 0, "P-4 Celeron (128K)" },
{ 15, 2, -1, 15, -1, 1, -1, CELERON , 0, "P-4 Celeron (128K)" },
{ 15, 3, -1, 15, -1, 1, -1, CELERON , 0, "Celeron D" },
{ 15, 4, -1, 15, -1, 1, -1, CELERON , 0, "Celeron D" },
{ 15, 6, -1, 15, -1, 1, -1, CELERON , 0, "Celeron D" },
};
@ -467,18 +486,12 @@ static void decode_intel_number_of_cores(struct cpu_raw_data_t* raw,
}
}
static void decode_intel_codename(struct cpu_raw_data_t* raw, struct cpu_id_t* data)
static intel_code_t get_brand_code(struct cpu_id_t* data)
{
intel_code_t code = NO_CODE;
int i;
int L2 = data->l2_cache;
const char* bs = data->brand_str;
const char* s;
const struct { int cache_size; intel_code_t code; } match_cache[] = {
{ 512, CORE_DUO_512K },
{ 1024, CORE_DUO_1024K },
{ 2048, ALLENDALE },
};
const struct { intel_code_t c; const char *search; } matchtable[] = {
{ XEONMP, "Xeon MP" },
{ XEONMP, "Xeon(TM) MP" },
@ -544,34 +557,69 @@ static void decode_intel_codename(struct cpu_raw_data_t* raw, struct cpu_id_t* d
}
}
if (code == CORE_DUO && L2 != 4096) {
for (i = 0; i < COUNT_OF(match_cache); i++) {
if (match_cache[i].cache_size == L2) {
code = match_cache[i].code;
break;
}
}
}
if (code == CORE_DUO && data->ext_model >= 23) {
if (L2 == 3072 || L2 == 6144)
code = (L2 == 3072) ? WOLFDALE_3M : WOLFDALE_6M;
code = WOLFDALE;
}
if (code == PENTIUM_D && data->ext_model >= 23) {
code = WOLFDALE_2M;
code = WOLFDALE;
}
if (code == MOBILE_CORE_DUO && data->model != 14) {
if (data->ext_model < 23) {
if (L2 == 2048 || L2 == 4096)
code = (L2 == 2048) ? MEROM_2M : MEROM_4M;
code = MEROM;
} else {
if (data->num_cores == 2) {
if (L2 == 3072 || L2 == 6144)
code = (L2 == 3072) ? PENRYN_3M : PENRYN_6M;
} else
code = PENRYN_QUAD;
code = PENRYN;
}
}
match_cpu_codename(cpudb_intel, COUNT_OF(cpudb_intel), data, code);
return code;
}
static intel_model_t get_model_code(struct cpu_id_t* data)
{
int i = 0;
int l = (int) strlen(data->brand_str);
const char *bs = data->brand_str;
int mod_flags = 0, model_no = 0, ndigs = 0;
while (i < l - 3) {
if (bs[i] == 'C' && bs[i+1] == 'P' && bs[i+2] == 'U')
break;
i++;
}
if (i >= l - 3) return UNKNOWN;
i += 3;
while (i < l - 4 && bs[i] == ' ') i++;
if (i >= l - 4) return UNKNOWN;
while (i < l - 4 && !isdigit(bs[i])) {
if (bs[i] >= 'A' && bs[i] <= 'Z')
mod_flags |= (1 << (bs[i] - 'A'));
i++;
}
if (i >= l - 4) return UNKNOWN;
while (isdigit(bs[i])) {
ndigs++;
model_no = model_no * 10 + (int) (bs[i] - '0');
i++;
}
if (ndigs != 4) return UNKNOWN;
#define HAVE(ch, flags) ((flags & (1 << ((int)(ch-'A')))) != 0)
switch (model_no / 100) {
case 30: return _3000;
case 31: return _3100;
case 32:
{
return (HAVE('X', mod_flags)) ? X3200 : _3200;
}
case 33:
{
return (HAVE('X', mod_flags)) ? X3300 : _3300;
}
case 51: return _5100;
case 52: return _5200;
case 53: return _5300;
case 54: return _5400;
default:
return UNKNOWN;
}
#undef HAVE
}
int cpuid_identify_intel(struct cpu_raw_data_t* raw, struct cpu_id_t* data)
@ -584,6 +632,7 @@ int cpuid_identify_intel(struct cpu_raw_data_t* raw, struct cpu_id_t* data)
decode_intel_oldstyle_cache_info(raw, data);
}
decode_intel_number_of_cores(raw, data);
decode_intel_codename(raw, data);
match_cpu_codename(cpudb_intel, COUNT_OF(cpudb_intel), data,
get_brand_code(data), get_model_code(data));
return 0;
}

42
tests/extract_test.py Executable file
View file

@ -0,0 +1,42 @@
#!/usr/bin/python
import os, sys, re
args = sys.argv
if not len(args) in (2, 3):
print "Usage: extract_test.py <test num> [tests stash file]"
print "If the last is not specified, `tests_stash.txt' is assumed"
sys.exit(1)
tnum = int(args[1])
stash = "tests_stash.txt"
if len(args) == 3:
stash = args[2]
f = open(stash, "rt")
data = f.readlines()
f.close()
delimiter = "-" * 80
i = 1
lnum = 0
while i < tnum:
while lnum < len(data) and data[lnum][:3] != '---':
lnum += 1
lnum += 1
while lnum < len(data) and data[lnum][:3] != '---':
lnum += 1
lnum += 1
i += 1
if lnum >= len(data):
print "Test index out of range"
sys.exit(1)
xd = []
while data[lnum][:3] != '---':
xd.append(data[lnum])
lnum += 1
f = open("raw.txt", "wt")
f.writelines(xd)
f.close()
print "Done -- it's in `raw.txt'"

View file

@ -1864,7 +1864,7 @@ intel_fn4[3]=00000000 00000000 00000000 00000000
64
64
-1
Yorkfield (Core 2 Quad)
Yorkfield (Core 2 Quad) 6M
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 smx est tm2 ssse3 cx16 xtpr pdcm sse4_1 xd lm lahf_lm
--------------------------------------------------------------------------------
basic_cpuid[0]=00000002 756e6547 6c65746e 49656e69
@ -2045,3 +2045,626 @@ intel_fn4[3]=00000000 00000000 00000000 00000000
Phenom X4 (Agena)
fpu vme de pse tsc msr pae mce cx8 apic mtrr sep pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht pni monitor cx16 syscall popcnt mmxext 3dnow 3dnowext nx fxsr_opt rdtscp lm lahf_lm cmp_legacy svm abm misalignsse sse4a 3dnowprefetch osvw ibs ts ttp tm_amd stc 100mhzsteps hwpstate constant_tsc
--------------------------------------------------------------------------------
basic_cpuid[0]=0000000a 756e6547 6c65746e 49656e69
basic_cpuid[1]=00010676 05040800 000ce3bd bfebfbff
basic_cpuid[2]=05b0b101 005657f0 00000000 2cb4304e
basic_cpuid[3]=00000000 00000000 00000000 00000000
basic_cpuid[4]=0c000121 01c0003f 0000003f 00000001
basic_cpuid[5]=00000040 00000040 00000003 00002220
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 00000503
basic_cpuid[11]=07280202 00000000 00000000 00000503
basic_cpuid[12]=07280202 00000000 00000000 00000503
basic_cpuid[13]=07280202 00000000 00000000 00000503
basic_cpuid[14]=07280202 00000000 00000000 00000503
basic_cpuid[15]=07280202 00000000 00000000 00000503
basic_cpuid[16]=07280202 00000000 00000000 00000503
basic_cpuid[17]=07280202 00000000 00000000 00000503
basic_cpuid[18]=07280202 00000000 00000000 00000503
basic_cpuid[19]=07280202 00000000 00000000 00000503
basic_cpuid[20]=07280202 00000000 00000000 00000503
basic_cpuid[21]=07280202 00000000 00000000 00000503
basic_cpuid[22]=07280202 00000000 00000000 00000503
basic_cpuid[23]=07280202 00000000 00000000 00000503
basic_cpuid[24]=07280202 00000000 00000000 00000503
basic_cpuid[25]=07280202 00000000 00000000 00000503
basic_cpuid[26]=07280202 00000000 00000000 00000503
basic_cpuid[27]=07280202 00000000 00000000 00000503
basic_cpuid[28]=07280202 00000000 00000000 00000503
basic_cpuid[29]=07280202 00000000 00000000 00000503
basic_cpuid[30]=07280202 00000000 00000000 00000503
basic_cpuid[31]=07280202 00000000 00000000 00000503
ext_cpuid[0]=80000008 00000000 00000000 00000000
ext_cpuid[1]=00000000 00000000 00000001 20100000
ext_cpuid[2]=65746e49 2952286c 6f655820 2952286e
ext_cpuid[3]=55504320 20202020 20202020 45202020
ext_cpuid[4]=30323435 20402020 30352e32 007a4847
ext_cpuid[5]=00000000 00000000 00000000 00000000
ext_cpuid[6]=00000000 00000000 18008040 00000000
ext_cpuid[7]=00000000 00000000 00000000 00000000
ext_cpuid[8]=00003026 00000000 00000000 00000000
ext_cpuid[9]=07280202 00000000 00000000 00000503
ext_cpuid[10]=07280202 00000000 00000000 00000503
ext_cpuid[11]=07280202 00000000 00000000 00000503
ext_cpuid[12]=07280202 00000000 00000000 00000503
ext_cpuid[13]=07280202 00000000 00000000 00000503
ext_cpuid[14]=07280202 00000000 00000000 00000503
ext_cpuid[15]=07280202 00000000 00000000 00000503
ext_cpuid[16]=07280202 00000000 00000000 00000503
ext_cpuid[17]=07280202 00000000 00000000 00000503
ext_cpuid[18]=07280202 00000000 00000000 00000503
ext_cpuid[19]=07280202 00000000 00000000 00000503
ext_cpuid[20]=07280202 00000000 00000000 00000503
ext_cpuid[21]=07280202 00000000 00000000 00000503
ext_cpuid[22]=07280202 00000000 00000000 00000503
ext_cpuid[23]=07280202 00000000 00000000 00000503
ext_cpuid[24]=07280202 00000000 00000000 00000503
ext_cpuid[25]=07280202 00000000 00000000 00000503
ext_cpuid[26]=07280202 00000000 00000000 00000503
ext_cpuid[27]=07280202 00000000 00000000 00000503
ext_cpuid[28]=07280202 00000000 00000000 00000503
ext_cpuid[29]=07280202 00000000 00000000 00000503
ext_cpuid[30]=07280202 00000000 00000000 00000503
ext_cpuid[31]=07280202 00000000 00000000 00000503
intel_fn4[0]=0c000121 01c0003f 0000003f 00000001
intel_fn4[1]=0c000122 01c0003f 0000003f 00000001
intel_fn4[2]=0c004143 05c0003f 00000fff 00000001
intel_fn4[3]=00000000 00000000 00000000 00000000
--------------------------------------------------------------------------------
6
7
6
6
23
4
4
32
32
6144
-1
8
24
-1
64
64
-1
Xeon (Harpertown)
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 xd lm lahf_lm
--------------------------------------------------------------------------------
basic_cpuid[0]=00000001 68747541 444d4163 69746e65
basic_cpuid[1]=00000681 00000000 00000000 0383fbff
basic_cpuid[2]=00000000 00000000 00000000 00000000
basic_cpuid[3]=00000000 00000000 00000000 00000000
basic_cpuid[4]=00000000 00000000 00000000 00000000
basic_cpuid[5]=00000000 00000000 00000000 00000000
basic_cpuid[6]=00000000 00000000 00000000 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]=00000000 00000000 00000000 00000000
basic_cpuid[11]=00000000 00000000 00000000 00000000
basic_cpuid[12]=00000000 00000000 00000000 00000000
basic_cpuid[13]=00000000 00000000 00000000 00000000
basic_cpuid[14]=00000000 00000000 00000000 00000000
basic_cpuid[15]=00000000 00000000 00000000 00000000
basic_cpuid[16]=00000000 00000000 00000000 00000000
basic_cpuid[17]=00000000 00000000 00000000 00000000
basic_cpuid[18]=00000000 00000000 00000000 00000000
basic_cpuid[19]=00000000 00000000 00000000 00000000
basic_cpuid[20]=00000000 00000000 00000000 00000000
basic_cpuid[21]=00000000 00000000 00000000 00000000
basic_cpuid[22]=00000000 00000000 00000000 00000000
basic_cpuid[23]=00000000 00000000 00000000 00000000
basic_cpuid[24]=00000000 00000000 00000000 00000000
basic_cpuid[25]=00000000 00000000 00000000 00000000
basic_cpuid[26]=00000000 00000000 00000000 00000000
basic_cpuid[27]=00000000 00000000 00000000 00000000
basic_cpuid[28]=00000000 00000000 00000000 00000000
basic_cpuid[29]=00000000 00000000 00000000 00000000
basic_cpuid[30]=00000000 00000000 00000000 00000000
basic_cpuid[31]=00000000 00000000 00000000 00000000
ext_cpuid[0]=80000008 68747541 444d4163 69746e65
ext_cpuid[1]=00000781 00000000 00000000 c1c3fbff
ext_cpuid[2]=20444d41 6c687441 74286e6f 5820296d
ext_cpuid[3]=00000050 00000000 00000000 00000000
ext_cpuid[4]=00000000 00000000 00000000 00000000
ext_cpuid[5]=0408ff08 ff20ff10 40020140 40020140
ext_cpuid[6]=00000000 41004100 01008140 00000000
ext_cpuid[7]=00000000 00000000 00000000 00000001
ext_cpuid[8]=00002022 00000000 00000000 00000000
ext_cpuid[9]=00000000 00000000 00000000 00000000
ext_cpuid[10]=00000000 00000000 00000000 00000000
ext_cpuid[11]=00000000 00000000 00000000 00000000
ext_cpuid[12]=00000000 00000000 00000000 00000000
ext_cpuid[13]=00000000 00000000 00000000 00000000
ext_cpuid[14]=00000000 00000000 00000000 00000000
ext_cpuid[15]=00000000 00000000 00000000 00000000
ext_cpuid[16]=00000000 00000000 00000000 00000000
ext_cpuid[17]=00000000 00000000 00000000 00000000
ext_cpuid[18]=00000000 00000000 00000000 00000000
ext_cpuid[19]=00000000 00000000 00000000 00000000
ext_cpuid[20]=00000000 00000000 00000000 00000000
ext_cpuid[21]=00000000 00000000 00000000 00000000
ext_cpuid[22]=00000000 00000000 00000000 00000000
ext_cpuid[23]=00000000 00000000 00000000 00000000
ext_cpuid[24]=00000000 00000000 00000000 00000000
ext_cpuid[25]=00000000 00000000 00000000 00000000
ext_cpuid[26]=00000000 00000000 00000000 00000000
ext_cpuid[27]=00000000 00000000 00000000 00000000
ext_cpuid[28]=00000000 00000000 00000000 00000000
ext_cpuid[29]=00000000 00000000 00000000 00000000
ext_cpuid[30]=00000000 00000000 00000000 00000000
ext_cpuid[31]=00000000 00000000 00000000 00000000
intel_fn4[0]=00000000 00000000 00000000 00000000
intel_fn4[1]=00000000 00000000 00000000 00000000
intel_fn4[2]=00000000 00000000 00000000 00000000
intel_fn4[3]=00000000 00000000 00000000 00000000
--------------------------------------------------------------------------------
6
8
1
6
8
1
1
64
64
256
0
2
16
-1
64
64
-1
Athlon XP (Thoroughbred)
fpu vme de pse tsc msr pae mce cx8 apic mtrr sep pge mca cmov pat pse36 mmx fxsr sse syscall mmxext 3dnow 3dnowext ts
--------------------------------------------------------------------------------
basic_cpuid[0]=0000000a 756e6547 6c65746e 49656e69
basic_cpuid[1]=000006f7 03040800 0004e33d bfebfbff
basic_cpuid[2]=05b0b101 005657f0 00000000 2cb43049
basic_cpuid[3]=00000000 00000000 00000000 00000000
basic_cpuid[4]=0c000121 01c0003f 0000003f 00000001
basic_cpuid[5]=00000040 00000040 00000003 00000020
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 6f655820 2952286e
ext_cpuid[3]=55504320 20202020 20202020 45202020
ext_cpuid[4]=35333335 20402020 30302e32 007a4847
ext_cpuid[5]=00000000 00000000 00000000 00000000
ext_cpuid[6]=00000000 00000000 10008040 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]=0c000121 01c0003f 0000003f 00000001
intel_fn4[1]=0c000122 01c0003f 0000003f 00000001
intel_fn4[2]=0c004143 03c0003f 00000fff 00000001
intel_fn4[3]=00000000 00000000 00000000 00000000
--------------------------------------------------------------------------------
6
15
7
6
15
4
4
32
32
4096
-1
8
16
-1
64
64
-1
Xeon (Clovertown)
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 tm2 ssse3 cx16 xtpr pdcm dca xd lm lahf_lm
--------------------------------------------------------------------------------
basic_cpuid[0]=0000000a 756e6547 6c65746e 49656e69
basic_cpuid[1]=000006f6 01020800 0000e3bd bfebfbff
basic_cpuid[2]=05b0b101 005657f0 00000000 2cb4307d
basic_cpuid[3]=00000000 00000000 00000000 00000000
basic_cpuid[4]=04000121 01c0003f 0000003f 00000001
basic_cpuid[5]=00000040 00000040 00000003 00022220
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 726f4320 4d542865
ext_cpuid[3]=43203229 20205550 20202020 54202020
ext_cpuid[4]=30303635 20402020 33382e31 007a4847
ext_cpuid[5]=00000000 00000000 00000000 00000000
ext_cpuid[6]=00000000 00000000 08006040 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]=04000121 01c0003f 0000003f 00000001
intel_fn4[1]=04000122 01c0003f 0000003f 00000001
intel_fn4[2]=04004143 01c0003f 00000fff 00000001
intel_fn4[3]=00000000 00000000 00000000 00000000
--------------------------------------------------------------------------------
6
15
6
6
15
2
2
32
32
2048
-1
8
8
-1
64
64
-1
Merom (Core 2 Duo) 2048K
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 xd lm lahf_lm
--------------------------------------------------------------------------------
basic_cpuid[0]=0000000a 756e6547 6c65746e 49656e69
basic_cpuid[1]=00010676 00020800 0008e3bd bfebfbff
basic_cpuid[2]=05b0b101 005657f0 00000000 2cb43048
basic_cpuid[3]=00000000 00000000 00000000 00000000
basic_cpuid[4]=04000121 01c0003f 0000003f 00000001
basic_cpuid[5]=00000040 00000040 00000003 03122220
basic_cpuid[6]=00000003 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 00000503
basic_cpuid[11]=07280202 00000000 00000000 00000503
basic_cpuid[12]=07280202 00000000 00000000 00000503
basic_cpuid[13]=07280202 00000000 00000000 00000503
basic_cpuid[14]=07280202 00000000 00000000 00000503
basic_cpuid[15]=07280202 00000000 00000000 00000503
basic_cpuid[16]=07280202 00000000 00000000 00000503
basic_cpuid[17]=07280202 00000000 00000000 00000503
basic_cpuid[18]=07280202 00000000 00000000 00000503
basic_cpuid[19]=07280202 00000000 00000000 00000503
basic_cpuid[20]=07280202 00000000 00000000 00000503
basic_cpuid[21]=07280202 00000000 00000000 00000503
basic_cpuid[22]=07280202 00000000 00000000 00000503
basic_cpuid[23]=07280202 00000000 00000000 00000503
basic_cpuid[24]=07280202 00000000 00000000 00000503
basic_cpuid[25]=07280202 00000000 00000000 00000503
basic_cpuid[26]=07280202 00000000 00000000 00000503
basic_cpuid[27]=07280202 00000000 00000000 00000503
basic_cpuid[28]=07280202 00000000 00000000 00000503
basic_cpuid[29]=07280202 00000000 00000000 00000503
basic_cpuid[30]=07280202 00000000 00000000 00000503
basic_cpuid[31]=07280202 00000000 00000000 00000503
ext_cpuid[0]=80000008 00000000 00000000 00000000
ext_cpuid[1]=00000000 00000000 00000001 20100000
ext_cpuid[2]=65746e49 2952286c 726f4320 4d542865
ext_cpuid[3]=44203229 43206f75 20205550 54202020
ext_cpuid[4]=30303138 20402020 30312e32 007a4847
ext_cpuid[5]=00000000 00000000 00000000 00000000
ext_cpuid[6]=00000000 00000000 0c006040 00000000
ext_cpuid[7]=00000000 00000000 00000000 00000000
ext_cpuid[8]=00003024 00000000 00000000 00000000
ext_cpuid[9]=07280202 00000000 00000000 00000503
ext_cpuid[10]=07280202 00000000 00000000 00000503
ext_cpuid[11]=07280202 00000000 00000000 00000503
ext_cpuid[12]=07280202 00000000 00000000 00000503
ext_cpuid[13]=07280202 00000000 00000000 00000503
ext_cpuid[14]=07280202 00000000 00000000 00000503
ext_cpuid[15]=07280202 00000000 00000000 00000503
ext_cpuid[16]=07280202 00000000 00000000 00000503
ext_cpuid[17]=07280202 00000000 00000000 00000503
ext_cpuid[18]=07280202 00000000 00000000 00000503
ext_cpuid[19]=07280202 00000000 00000000 00000503
ext_cpuid[20]=07280202 00000000 00000000 00000503
ext_cpuid[21]=07280202 00000000 00000000 00000503
ext_cpuid[22]=07280202 00000000 00000000 00000503
ext_cpuid[23]=07280202 00000000 00000000 00000503
ext_cpuid[24]=07280202 00000000 00000000 00000503
ext_cpuid[25]=07280202 00000000 00000000 00000503
ext_cpuid[26]=07280202 00000000 00000000 00000503
ext_cpuid[27]=07280202 00000000 00000000 00000503
ext_cpuid[28]=07280202 00000000 00000000 00000503
ext_cpuid[29]=07280202 00000000 00000000 00000503
ext_cpuid[30]=07280202 00000000 00000000 00000503
ext_cpuid[31]=07280202 00000000 00000000 00000503
intel_fn4[0]=04000121 01c0003f 0000003f 00000001
intel_fn4[1]=04000122 01c0003f 0000003f 00000001
intel_fn4[2]=04004143 02c0003f 00000fff 00000001
intel_fn4[3]=00000000 00000000 00000000 00000000
--------------------------------------------------------------------------------
6
7
6
6
23
2
2
32
32
3072
-1
8
12
-1
64
64
-1
Penryn (Core 2 Duo) 3M
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 sse4_1 xd lm lahf_lm
--------------------------------------------------------------------------------
basic_cpuid[0]=00000002 756e6547 6c65746e 49656e69
basic_cpuid[1]=0000066a 00000000 00000000 0183f9ff
basic_cpuid[2]=03020101 00000000 00000000 0c040842
basic_cpuid[3]=03020101 00000000 00000000 0c040842
basic_cpuid[4]=03020101 00000000 00000000 0c040842
basic_cpuid[5]=03020101 00000000 00000000 0c040842
basic_cpuid[6]=03020101 00000000 00000000 0c040842
basic_cpuid[7]=03020101 00000000 00000000 0c040842
basic_cpuid[8]=03020101 00000000 00000000 0c040842
basic_cpuid[9]=03020101 00000000 00000000 0c040842
basic_cpuid[10]=03020101 00000000 00000000 0c040842
basic_cpuid[11]=03020101 00000000 00000000 0c040842
basic_cpuid[12]=03020101 00000000 00000000 0c040842
basic_cpuid[13]=03020101 00000000 00000000 0c040842
basic_cpuid[14]=03020101 00000000 00000000 0c040842
basic_cpuid[15]=03020101 00000000 00000000 0c040842
basic_cpuid[16]=03020101 00000000 00000000 0c040842
basic_cpuid[17]=03020101 00000000 00000000 0c040842
basic_cpuid[18]=03020101 00000000 00000000 0c040842
basic_cpuid[19]=03020101 00000000 00000000 0c040842
basic_cpuid[20]=03020101 00000000 00000000 0c040842
basic_cpuid[21]=03020101 00000000 00000000 0c040842
basic_cpuid[22]=03020101 00000000 00000000 0c040842
basic_cpuid[23]=03020101 00000000 00000000 0c040842
basic_cpuid[24]=03020101 00000000 00000000 0c040842
basic_cpuid[25]=03020101 00000000 00000000 0c040842
basic_cpuid[26]=03020101 00000000 00000000 0c040842
basic_cpuid[27]=03020101 00000000 00000000 0c040842
basic_cpuid[28]=03020101 00000000 00000000 0c040842
basic_cpuid[29]=03020101 00000000 00000000 0c040842
basic_cpuid[30]=03020101 00000000 00000000 0c040842
basic_cpuid[31]=03020101 00000000 00000000 0c040842
ext_cpuid[0]=03020101 00000000 00000000 0c040842
ext_cpuid[1]=03020101 00000000 00000000 0c040842
ext_cpuid[2]=03020101 00000000 00000000 0c040842
ext_cpuid[3]=03020101 00000000 00000000 0c040842
ext_cpuid[4]=03020101 00000000 00000000 0c040842
ext_cpuid[5]=03020101 00000000 00000000 0c040842
ext_cpuid[6]=03020101 00000000 00000000 0c040842
ext_cpuid[7]=03020101 00000000 00000000 0c040842
ext_cpuid[8]=03020101 00000000 00000000 0c040842
ext_cpuid[9]=03020101 00000000 00000000 0c040842
ext_cpuid[10]=03020101 00000000 00000000 0c040842
ext_cpuid[11]=03020101 00000000 00000000 0c040842
ext_cpuid[12]=03020101 00000000 00000000 0c040842
ext_cpuid[13]=03020101 00000000 00000000 0c040842
ext_cpuid[14]=03020101 00000000 00000000 0c040842
ext_cpuid[15]=03020101 00000000 00000000 0c040842
ext_cpuid[16]=03020101 00000000 00000000 0c040842
ext_cpuid[17]=03020101 00000000 00000000 0c040842
ext_cpuid[18]=03020101 00000000 00000000 0c040842
ext_cpuid[19]=03020101 00000000 00000000 0c040842
ext_cpuid[20]=03020101 00000000 00000000 0c040842
ext_cpuid[21]=03020101 00000000 00000000 0c040842
ext_cpuid[22]=03020101 00000000 00000000 0c040842
ext_cpuid[23]=03020101 00000000 00000000 0c040842
ext_cpuid[24]=03020101 00000000 00000000 0c040842
ext_cpuid[25]=03020101 00000000 00000000 0c040842
ext_cpuid[26]=03020101 00000000 00000000 0c040842
ext_cpuid[27]=03020101 00000000 00000000 0c040842
ext_cpuid[28]=03020101 00000000 00000000 0c040842
ext_cpuid[29]=03020101 00000000 00000000 0c040842
ext_cpuid[30]=03020101 00000000 00000000 0c040842
ext_cpuid[31]=03020101 00000000 00000000 0c040842
intel_fn4[0]=03020101 00000000 00000000 0c040842
intel_fn4[1]=03020101 00000000 00000000 0c040842
intel_fn4[2]=03020101 00000000 00000000 0c040842
intel_fn4[3]=03020101 00000000 00000000 0c040842
--------------------------------------------------------------------------------
6
6
10
6
6
1
1
16
16
256
-1
4
4
-1
32
32
-1
Pentium II (Dixon)
fpu vme de pse tsc msr pae mce cx8 mtrr sep pge mca cmov pat pse36 mmx fxsr syscall
--------------------------------------------------------------------------------
basic_cpuid[0]=00000001 68747541 444d4163 69746e65
basic_cpuid[1]=000006a0 00000000 00000000 0383fbff
basic_cpuid[2]=00000000 00000000 00000000 00000000
basic_cpuid[3]=00000000 00000000 00000000 00000000
basic_cpuid[4]=00000000 00000000 00000000 00000000
basic_cpuid[5]=00000000 00000000 00000000 00000000
basic_cpuid[6]=00000000 00000000 00000000 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]=00000000 00000000 00000000 00000000
basic_cpuid[11]=00000000 00000000 00000000 00000000
basic_cpuid[12]=00000000 00000000 00000000 00000000
basic_cpuid[13]=00000000 00000000 00000000 00000000
basic_cpuid[14]=00000000 00000000 00000000 00000000
basic_cpuid[15]=00000000 00000000 00000000 00000000
basic_cpuid[16]=00000000 00000000 00000000 00000000
basic_cpuid[17]=00000000 00000000 00000000 00000000
basic_cpuid[18]=00000000 00000000 00000000 00000000
basic_cpuid[19]=00000000 00000000 00000000 00000000
basic_cpuid[20]=00000000 00000000 00000000 00000000
basic_cpuid[21]=00000000 00000000 00000000 00000000
basic_cpuid[22]=00000000 00000000 00000000 00000000
basic_cpuid[23]=00000000 00000000 00000000 00000000
basic_cpuid[24]=00000000 00000000 00000000 00000000
basic_cpuid[25]=00000000 00000000 00000000 00000000
basic_cpuid[26]=00000000 00000000 00000000 00000000
basic_cpuid[27]=00000000 00000000 00000000 00000000
basic_cpuid[28]=00000000 00000000 00000000 00000000
basic_cpuid[29]=00000000 00000000 00000000 00000000
basic_cpuid[30]=00000000 00000000 00000000 00000000
basic_cpuid[31]=00000000 00000000 00000000 00000000
ext_cpuid[0]=80000008 68747541 444d4163 69746e65
ext_cpuid[1]=000007a0 00000000 00000000 c1cbfbff
ext_cpuid[2]=20444d41 706d6553 286e6f72 20296d74
ext_cpuid[3]=30303320 00002b30 00000000 00000000
ext_cpuid[4]=00000000 00000000 00000000 00000000
ext_cpuid[5]=0408ff08 ff20ff10 40020140 40020140
ext_cpuid[6]=00000000 41004100 02008140 00000000
ext_cpuid[7]=00000000 00000000 00000000 00000007
ext_cpuid[8]=00002022 00000000 00000000 00000000
ext_cpuid[9]=00000000 00000000 00000000 00000000
ext_cpuid[10]=00000000 00000000 00000000 00000000
ext_cpuid[11]=00000000 00000000 00000000 00000000
ext_cpuid[12]=00000000 00000000 00000000 00000000
ext_cpuid[13]=00000000 00000000 00000000 00000000
ext_cpuid[14]=00000000 00000000 00000000 00000000
ext_cpuid[15]=00000000 00000000 00000000 00000000
ext_cpuid[16]=00000000 00000000 00000000 00000000
ext_cpuid[17]=00000000 00000000 00000000 00000000
ext_cpuid[18]=00000000 00000000 00000000 00000000
ext_cpuid[19]=00000000 00000000 00000000 00000000
ext_cpuid[20]=00000000 00000000 00000000 00000000
ext_cpuid[21]=00000000 00000000 00000000 00000000
ext_cpuid[22]=00000000 00000000 00000000 00000000
ext_cpuid[23]=00000000 00000000 00000000 00000000
ext_cpuid[24]=00000000 00000000 00000000 00000000
ext_cpuid[25]=00000000 00000000 00000000 00000000
ext_cpuid[26]=00000000 00000000 00000000 00000000
ext_cpuid[27]=00000000 00000000 00000000 00000000
ext_cpuid[28]=00000000 00000000 00000000 00000000
ext_cpuid[29]=00000000 00000000 00000000 00000000
ext_cpuid[30]=00000000 00000000 00000000 00000000
ext_cpuid[31]=00000000 00000000 00000000 00000000
intel_fn4[0]=00000000 00000000 00000000 00000000
intel_fn4[1]=00000000 00000000 00000000 00000000
intel_fn4[2]=00000000 00000000 00000000 00000000
intel_fn4[3]=00000000 00000000 00000000 00000000
--------------------------------------------------------------------------------
6
10
0
6
10
1
1
64
64
512
0
2
16
-1
64
64
-1
Sempron (Barton)
fpu vme de pse tsc msr pae mce cx8 apic mtrr sep pge mca cmov pat pse36 mmx fxsr sse syscall mmxext 3dnow 3dnowext ts fid vid
--------------------------------------------------------------------------------