diff --git a/libcpuid/recog_amd.c b/libcpuid/recog_amd.c index 1ead476..92f305e 100644 --- a/libcpuid/recog_amd.c +++ b/libcpuid/recog_amd.c @@ -75,111 +75,134 @@ enum _amd_code_t { 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, NO_CODE , "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, 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" }, /* 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, 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" }, /* The K6 */ - { 5, 6, -1, -1, -1, NO_CODE , "K6" }, - { 5, 7, -1, -1, -1, NO_CODE , "K6" }, + { 5, 6, -1, -1, -1, NO_CODE , "K6" }, + { 5, 7, -1, -1, -1, NO_CODE , "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, 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+" }, /* 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, 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, 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, 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, 7, -1, -1, -1, NO_CODE , "Unknown Athlon XP" }, - { 6, 7, -1, -1, -1, DURON , "Duron (Morgan)" }, + { 6, 7, -1, -1, -1, NO_CODE , "Unknown Athlon XP" }, + { 6, 7, -1, -1, -1, DURON , "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, 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, 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" }, + { 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, 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)" }, /* 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, NO_CODE , "Unknown K8" }, + { 15, -1, -1, 16, -1, NO_CODE , "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, 0x2c, ATHLON_64_512K , "Athlon 64 (Venice/512K)" }, - { 15, -1, -1, 15, -1, ATHLON_64_X2_512K, "Athlon 64 X2 (512K)" }, - { 15, -1, -1, 15, 0x6b, ATHLON_64_X2_512K, "Athlon 64 X2 (Brisbane/512K)" }, - { 15, -1, -1, 15, -1, ATHLON_64_X2_1M , "Athlon 64 X2 (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, 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, 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 , "A64 Sempron (Dual Core)" }, + { 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, 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, 0x4b, SEMPRON_DUALCORE , "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, 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, 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" }, /* 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, 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)" }, };