1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712
|
Tue Oct 6 2020 Todd Allen <todd.allen@etallen.com>
* Made new release.
Tue Oct 6 2020 Todd Allen <todd.allen@etallen.com>
* cpuid.c: Added 6/eax enhanced hardware feedback interface.
* cpuid.c: Added 6/ecx number of enh hardware feedback classes.
* cpuid.c: Added 7/0/ecx KL: key locker.
* cpuid.c: Added 7/0/edx UINTR: user interrupts.
* cpuid.c: Added 7/0/edx AVX512_FP16: fp16 support.
* cpuid.c: Added 7/1/eax AVX-VNNI: AVX VNNI neural network instrs.
* cpuid.c: Added 7/1/eax zero-length MOVSB.
* cpuid.c: Added 7/1/eax fast short STOSB.
* cpuid.c: Added 7/1/eax fast short CMPSB, SCASB.
* cpuid.c: Added 7/1/eax HRESET: history reset support.
* cpuid.c: Added 0xa/ecx fixed counter support enumeration.
* cpuid.c: Added 0xd/0/eax IA32_XSS UINTR state.
* cpuid.c: Added 0xd/n UINTR feature.
* cpuid.c: Added 0x19 key locker features.
* cpuid.c: Added 0x20 HRESET features.
Mon Oct 5 2020 Todd Allen <todd.allen@etallen.com>
* cpuid.c: Added (7,5),(2,6) AMD Cato (synth) decoding based on
instlatx64 example (possibly an engr sample).
Sun Oct 4 2020 Todd Allen <todd.allen@etallen.com>
* cpuid.c: Corrected 6/edx size field to use minus-one notation.
* cpuid.c: Added 7/0/edx AMX flags.
* cpuid.c: Added 0xd XTILECFG & XTILEDATA features.
* cpuid.c: Added 0xd/1/eax XFD: extended feature disable supported flag.
* cpuid.c: Added 0xd/n/ecx XFD: faulting supported flag.
* cpuid.c: Added 0x18/0/edx: load-only TLB & store-only TLB encodings.
* cpuid.c: Added 0x1d leaf (Tile info) decoding.
* cpuid.c: Added 0x1e leaf (TMUL) decoding.
* cpuid.c: Added 0x1c leaf (architectural LBR) decoding.
* cpuid.c: Added 0xd LBR features.
Sun Oct 4 2020 Todd Allen <todd.allen@etallen.com>
* cpuid.c: Added (synth) steppings for Comet Lake (0,6),(10,6) CPUs.
For the first time in a long time, Intel actually provided this in
the revision guide (615213)!
* cpuid.c: Corrected (synth) decoding for AMD (8,15),(2,0) Dali CPUs.
* cpuid.c: Added (synth) decoding for AMD Dali A1 stepping.
* cpuid.c: Added (synth) decoding for AMD Picasso A1 stepping.
* cpuid.c: Added (synth) decoding for AMD Renoir A1 stepping.
Sat Oct 3 2020 Todd Allen <todd.allen@etallen.com>
* cpuid.c: Added 7/0/ecx PKS flag.
* cpuid.c: Added 7/0/edx SRBDS flag, from Linux kernel.
* cpuid.c: Added 7/0/edx LBR flag.
* cpuid.c: Added 0xd/0/eax IA322_XSS HWP state flag.
* cpuid.c: Added synth decoding for Rocket Lake.
* cpuid.c: Added synth decoding for Elkhart Lake B0.
* cpuid.c: Added synth decoding for Alder Lake [Golden Cove].
* cpuid.c: Clarified synth decoding for (0,6),(8,10) Lakefield.
* cpuid.c: Added KVM interrupt-based page-ready APF event flag.
Sat Aug 8 2020 Todd Allen <todd.allen@etallen.com>
* cpuid.c: Corrected 0x20000001/edx header.
* cpuid.c: Detect bogus 0x20000000 leaf values and cap the maximum
valid register for the 0x2xxxxxxx range to avoid absurdly long dumps
on old CPUs.
Mon Aug 3 2020 Todd Allen <todd.allen@etallen.com>
* cpuid.c: Added bzero before cpuid instruction, in case the cpuid
instruction quietly fails. This mostly is paranoia, but I don't see
how this ever could cause harm.
Mon Jun 8 2020 Todd Allen <todd.allen@etallen.com>
* cpuid.c: Added Tiger Lake-U B0 stepping, from coreboot.
* cpuid.c: Added AMD (8,15),(2,0) Picasso model synth & uarch decoding.
Sun May 24 2020 Todd Allen <todd.allen@etallen.com>
* cpuid.c: Added Zhaoxin KX-6000 decoding that still claims the vendor
CentaurHauls. Later Zhaoxin CPUs were supposed to use their own
vendor, but instlat64x showed an example that still used the old one.
Sat May 16 2020 Todd Allen <todd.allen@etallen.com>
* cpuid.c: Added better (synth) decoding for Intel Comet Lake-H/S
Core i*-10000 CPUs, based on instlatx64 example and listings in
ark.intel.com.
Tue Apr 28 2020 Todd Allen <todd.allen@etallen.com>
* cpuid.c: Added 0x8000000a/edx INVLPGB/TLBSYNC hypervisor intercept
enable flag.
Mon Apr 27 2020 Todd Allen <todd.allen@etallen.com>
* Made new release.
Wed Apr 22 2020 Todd Allen <todd.allen@etallen.com>
* cpuid.c: Added synth decoding for AMD Steppe Eagle/Crowned Eagle
(Puma 2014 G-Series), based on instlatx64 sample.
Thu Apr 16 2020 Todd Allen <todd.allen@etallen.com>
* cpuid.c: Added 7/0/edx SERIALIZE & TSXLDTRK bit descriptions.
* cpuid.c: Added 0xf/1/eax Counter width & overflow flag.
* cpuid.c: Added 0x10/3/ecx per-thread MBA controls flag.
* cpuid.c: Added 0x8000001f fields.
* cpuid.man: Added AMD 24594 & 40332 docs.
Tue Mar 3 2020 Todd Allen <todd.allen@etallen.com>
* cpuid.c: Corrected field lengths in 14/0 and 14/1 subleafs so that
columns line up.
Thu Feb 27 2020 Todd Allen <todd.allen@etallen.com>
* cpuid.c: Added CC150 (Coffee Lake R0) synth decoding, based on
instlatx64 example.
Wed Feb 26 2020 Todd Allen <todd.allen@etallen.com>
* cpuid.c: Added Jasper Lake A0 stepping (from Coreboot*).
* cpuid.c: Updated 1/ebx "cpu count" to modern terminology: "maximum
addressible IDs for CPUs in pkg" to avoid user confusion. It was a
reliable count of the number of CPUs for only a split second some time
around 2002. Maybe.
* cpuid.c: Updated 4/eax CPU & core count terminology in the same way.
Tue Feb 11 2020 Todd Allen <todd.allen@etallen.com>
* Made new release.
Mon Feb 10 2020 Todd Allen <todd.allen@etallen.com>
* cpuid.c: Clarified Intel NNP-I (Spring Hill).
* cpuid.c: In decode_vendor(), report "Zhaoxin" even with VENDOR_VIA,
if the brand string indicates so.
* cpuid.c: In 0xc0000004/ebx, make current voltage use the shift-4 + 700
encoding used for other VIA voltages.
Fri Feb 7 2020 Todd Allen <todd.allen@etallen.com>
* cpuid.man: Use both Intel doc numbers for 329671/600827.
* cpuid.man: Added missing 329901/600834 Intel doc.
Thu Feb 6 2020 Todd Allen <todd.allen@etallen.com>
* cpuid.c: Added VIA 0xc0000004 leaf decoding.
* cpuid.c: Added X2_IMAGES special flag to pretty-print values in the
2X encoding.
* cpuid.c: Added MINUS1_IMAGES special flag to pretty-print values with
the "- 1" encoding. (I finally got turned around about this being
better than the older "raw" values.)
Wed Feb 5 2020 Todd Allen <todd.allen@etallen.com>
* cpuid.c: Add VIA C7-D and Eden brands to (0,6),(0,10) (synth).
* cpuid.c: Differentiate VIA (0,6),(0,13) (synth) based on brand strings.
* cpuid.c: Overhaul of VIA 0xc0000002 leaf decoding.
* cpuid.c: Updated VIA Nano steppings (synth).
* cpuid.c: Removed extraneous WinChip & core words from C3 and later
VIA CPUs (synth).
Wed Feb 5 2020 Todd Allen <todd.allen@etallen.com>
* cpuid.c: Changed mp_synth fields to use '=' separator instead of ':',
like every other value.
* cpuid.c: Changed processor serial number to use '=' separator instead
of ':', like every other value.
Tue Feb 4 2020 Todd Allen <todd.allen@etallen.com>
* cpuid.man: Added 336907 doc with 7/0/ecx/TME bit description.
* cpuid.c: Removed LX* comment from 7/0/ecx/TME bit description. It's
documented after all.
Tue Feb 4 2020 Todd Allen <todd.allen@etallen.com>
* cpuid.c: Clarified (0,6),(10,6) Comet Lake-U (synth).
Mon Feb 3 2020 Todd Allen <todd.allen@etallen.com>
* Made new release.
Mon Feb 3 2020 Todd Allen <todd.allen@etallen.com>
* cpuid.c: Removed comments about (0,6),(8,14),10 contradiction.
Coreboot* removed the incorrect code claiming it was Coffee Lake D0.
The actual code already reflected this resolution.
* cpuid.c: Removed now-redundant lines from decode_uarch_intel() for
the individual (0,6),(8,14) steppings. They all say Kaby Lake now,
so they aren't necessary.
* cpuid.c: Added (0,6),(4,14),8 Kaby Lake G0 and (0,6),(5,14),8
Kaby Lake-H A0 steppings to both (synth) and (uarch synth) that I found
in Coreboot*. I realized I was worrying too much about them. They are
at least wholly distinct steppings, so they don't constitute the
intra-stepping blurring that I saw with {Kaby,Amber,Whiskey,Comet}
Lake. They are more akin to the already-existing Cascade Lake &
Cooper Lake steppings. Perhaps those two new entries were just early
engineering samples for Kaby Lake.
* cpuid.c: Added (0,6),(9,14),13 stepping to decode_uarch_intel. The
fallback without a stepping is weak, and it should be avoided for
any actual known stepping. (Added a comment too.)
* Makefile: Changed my own Todd's Development rules to build on very old
systems, so that the executables will run at all on very old systems.
* Makefile: Changed -Wextra to -W. That isn't recommended on modern
gcc versions, but still works. And it is necessary on really old
gcc versions, because -Wextra produces a hard error.
Sun Feb 2 2020 Todd Allen <todd.allen@etallen.com>
* Made new release.
Sun Feb 2 2020 Todd Allen <todd.allen@etallen.com>
* Makefile, cpuid.proto.spec: Added FAMILY.NOTES to the list of files to
be included in tarball & rpm doc directory. That file still is messy,
but I reference it a lot, so maybe it will be useful to others too.
Sun Feb 2 2020 Todd Allen <todd.allen@etallen.com>
* cpuid.c: Added old (synth) models from sandpile.org: AMD Elan SC400,
NSC Geode LX.
* cpuid.c: Added some old (synth) and (uarch synth) die process numbers
from sandpile.org.
* cpuid.c: Added stepping values from sandpile.org.
* cpuid.c: sandpile.org calls (0,6),(4,6) "Crystalwell". Arguably, that
is just the name of the L4 cache. But even Intel's ARK calls these
CPUs "Crystal Well". So I'm changing the name to "Crystal Well". The
uarch still is Haswell, so that should clarify any confusion.
* cpuid.c: sandpile.org calls (0,6),(4,7) "Brystalwell". The situation
is similar, but Intel does not use that name at all. I'm not renaming
these cores.
Sun Feb 2 2020 Todd Allen <todd.allen@etallen.com>
* cpuid.c: Added leaf walking of the 0x20000000 (Intel Phi) range and
decoding of a single bit in 0x20000001, based on information in
sandpile.org. I found only a vague hint about this in the Intel Xeon
Phi Coprocessor System Developers Guide, but no details.
* cpuid.c: For the (0,11) family of Phi processors, placing them within
a K1OM family. The (0,6) Phi cores are just Airmont-derived, so left
them alone.
Sat Feb 1 2020 Todd Allen <todd.allen@etallen.com>
* cpuid.c: Reverted Cedar Trail back to Cedarview. (Atom uArch name vs.
Core name vs. Platform name vs. SoC name is very confusing.)
Sat Feb 1 2020 Todd Allen <todd.allen@etallen.com>
* cpuid.c: Added Broadwell (0,6),(3,13) steppings based on Coreboot*.
* cpuid.c: Added Haswell (0,6),(3,12) steppings based on Coreboot*.
* cpuid.c: Added Haswell-ULT (0,6),(4,5),0 stepping based on Coreboot*.
* cpuid.c: Added some Skylake (0,6),(4,14) steppings based on Coreboot*.
* cpuid.c: Added some Skylake (0,6),(5,14) steppings based on Coreboot*.
* cpuid.c: Added Kaby Lake-H (0,6),(9,14),9 stepping based on Coreboot*.
* cpuid.c: Added Cannon Lake (0,6),(6,6) steppings based on Coreboot*.
* cpuid.c: Added Apollo Lake (0,6),(5,12) A0 stepping based on Coreboot*.
* cpuid.c: Added Gemini Lake (0,6),(7,10) A0 stepping, and corrected
R0 stepping, based on Coreboot*.
* cpuid.c: Added Ice Lake-U/Y (0,6),(7,14) A0 stepping based on
Coreboot*, and disregarding inconsistent info from spec update.
* cpuid.c: Added Tiger Lake (0,6),(8,12) A0 stepping based on Coreboot*.
* cpuid.c: Added Elkhart Lake (0,6),(9,6) A0 stepping based on Coreboot*.
* cpuid.c: Added Comet Lake (0,6),(10,6) steppings based on Coreboot*.
* cpuid.c: Added Comet Lake-H/S (0,6),(10,5) steppings based on
Coreboot*.
Sat Feb 1 2020 Todd Allen <todd.allen@etallen.com>
* cpuid.c: Added (uarch synth) decoding for (6,15),(0,0) Bulldozer,
based on engineering sample.
* cpuid.c: Added (uarch synth) & (synth) (6,15),(6,0) Excavator Carrizo
and Toronto, based on instlatx64 samples.
* cpuid.c: Added (uarch synth) decoding for (8,15),(0,0) Zen, based on
engineering sample.
* cpuid.c: Added Zhaoxin (0,7),(1,15) based on example.
* cpuid.c: Differentiate Zhaoxin ZhangJiang from VIA Isaiah [C7] in
(synth) and (uarch synth). Sadly, this implies a need to use brand
information for (uarch synth).
* cpuid.c: Addedd (synth) for VIA version of Zhaoxin ZhangJaing at
(0,7),(0,11).
* cpuid.c: Added Westmere-EP A0 & B0 stepping (synth) based on instlatx64
sample & wikipedia article.
* cpuid.c: Fixed bogus stepping in Centerton fallback (synth).
* cpuid.c: Added (0,6),(5,5),10 Cooper Lake (synth) & (uarch synth),
based on Qemu.
* cpuid.c: Added "AMD PRO A" as a 2nd string to detect AMD A-Series.
* cpuid.c: Differentiate Raven Ridge from Great Horned Owl/
Banded Kestrel (synth), based on "Embedded" string in brand.
* cpuid.c: Added Merlin Falcon as R-Series alternative everywhere
G-Series Brown Falcon appears.
* cpuid.c: Added rules for EPYC Embedded to differentiate (synth) for
Snowy Owl and Naples, based on EPYC 3000 series. Untested, because I
have no examples.
Fri Jan 31 2020 Todd Allen <todd.allen@etallen.com>
* cpuid.man: Added instlatx64.atw.hu.
* cpuid.man: Added -l and -s options.
Fri Jan 31 2020 Todd Allen <todd.allen@etallen.com>
* cpuid.c: Added rudimentary (10,15) (synth) for AMD Zen 3.
Fri Jan 31 2020 Todd Allen <todd.allen@etallen.com>
* cpuid.man: Added linux kernel note about intel-family.h.
* cpuid.c: Added rudimentary Tremont (synth) & (uarch synth).
* cpuid.c: Added tentative Ice Lake NNPI (synth) & (uarch synth).
* cpuid.c: Added rudimentary (0,6),(10,6) Comet Lake [Coffee Lake]
(synth) & (uarch synth).
Fri Jan 31 2020 Todd Allen <todd.allen@etallen.com>
* cpuid.man: Added Intel Microcode Update Guidance document.
* cpuid.c: Removed br.generic check from dc (Core) query. It was useful
in the Yonah era, but has been problematic since. Instead, add a dG
(Generic) query and use that where needed for the Yonah CPUs. And a
few other users of dc now use dG.
* cpuid.c: Added (synth) for Apollo Lake D0 (collision with B0/B1?) & E0.
* cpuid.c: Generalized P4500 & U4500 (Arrandale/Clarkdale) (synth) names.
* cpuid.c: Added Broadwell-DE V3 (synth) alternate stepping.
* cpuid.c: Added Broadwell H 43e (synth).
* cpuid.c: Added Pentium 3700U / 3800U (synth).
* cpuid.c: Added Apollo Lake (Broxton) (synth).
* cpuid.c: Added Atom x5-E8000 (synth).
* cpuid.c: Added Pentium G6900 (Clarkdale K0) (synth).
* cpuid.c: Added Core i*-900 (Clarksfield) (query dc) (synth).
* cpuid.c: Added E5-4600 (Ivy Bridge) (synth) names.
* cpuid.c: Prefixed E to Jasper Forest Xeon (synth) names.
* cpuid.c: Added Xeon E3-1200 (Kaby Lake) (synth) specific line.
* cpuid.c: Added Xeon 6500 names to Beckon (synth).
* cpuid.c: Generalized Pentium 900 (Sandy Bridge) (synth) names.
* cpuid.c: Added Celeron T3000 / 900 / SU2300 (Wolfdale) (synth) names.
* cpuid.c: Added Pentium T4000 (Wolfdale) (synth) names.
* cpuid.c: Added Celeron M ULV 700 (Penryn) (synth).
* cpuid.c: Correct query to dc for Sandy Bridge-E Core (synth).
* cpuid.c: Added Pentium 1405 (Sandy Bridge-E) (synth).
* cpuid.c: Added Xeon D-2100 (Skylake stepping 4) (synth) names.
* cpuid.c: Added Core i9-7000X (Skylake-X) (synth).
* cpuid.c: Changed case of x for SoFIA (synth).
* cpuid.c: Simplified Westmere-EP Xeon (synth) names.
* cpuid.c: Added Atom x*-A3900 (Apollo Lake) (synth) names.
* cpuid.c: Added Rangeley core name to Atom C2000 (synth) names.
* cpuid.c: Clarified that all (0,6),(4,15) CPUs are Broadwell-{E,EX}
in (synth) lines.
* cpuid.c: Clarified that (0,6),(3,13) is Broadwell-U.
* cpuid.c: For (0,6),(4,6) (synth), MRG* 2018-08-31 shows stepping 1,
so that must be the only known stepping: G0.
* cpuid.c: Corrected Broadwell-Y Core M (synth).
* cpuid.c: Added (0,6),(9,14),11 Coffee Lake Pentium & Celeron (synth).
* cpuid.c: Corrected (0,6),(9,14),11 fallback (synth).
* cpuid.c: Clarified transition from i*-8000 to i*-9000 at
(0,6),(9,14),12 stepping in (synth) lines.
* cpuid.c: Added Puma 7 (synth).
* cpuid.c: Generalized Pentium B900C (Ivy Bridge) (synth).
* cpuid.c: Added Celeron G2000 (Haswell) (synth).
* cpuid.c: Clarified Haswell-E (synth).
* cpuid.c: Aded -4000 series to (0,6),(4,6) Core (synth) names.
* cpuid.c: Added (0,6),(3,14) Ivy Bridge Celeron (synth).
* cpuid.c: Corrected (0,6),(3,14) Cores as Ivy Bridge-E (synth).
* cpuid.c: Differentiate i*-8700 and i*-7700 Kaby Lake (synth).
* cpuid.c: Added (0,6),(8,14),9 Kaby Lake Pentium & Celeron (synth).
* cpuid.c: Differentiate (0,6),(8,14),9 Kaby Lake-Y and Amber Lake-Y
(synth) with test for -8000 Series in brand name, because there seems
to be no other way to tell.
* cpuid.c: Added XMM 7272 (SoFIA) (synth).
* cpuid.c: Added Coffee Lake R0 Xeon (synth).
* cpuid.c: Added Whiskey Lake W0 Pentium & Celeron (synth).
* cpuid.c: Correct (8,14) (uarch synth) to just Kaby Lake once all
instances of Coffee lake had been eliminated from that family. The
(9,14) family continues to include both Kaby Lake & Coffee Lake.
Fri Jan 31 2020 Todd Allen <todd.allen@etallen.com>
* cpuid.man: Added Intel 600827 spec update.
* cpuid.c: Generalized Bay Trail-M/D (synth) names and expanded them.
* cpuid.c: Added Bay Trail-M/D D0/D1 (synth).
Thu Jan 30 2020 Todd Allen <todd.allen@etallen.com>
* cpuid.c: Added VIA die processes for as many uarchs/cores as I could
find.
Wed Jan 29 2020 Todd Allen <todd.allen@etallen.com>
* cpuid.c: Added comments about various Intel spec updates.
* cpuid.man: Removed extra "315593" garbage line.
* cpuid.c: Added (synth) for Broadwell-E R0 stepping.
* cpuid.c: Added stepping number for Apollo Lake B0/B1.
* cpuid.c: Differentiate (synth) between Core & Xeon (0,6),(3,15)
Haswell.
* cpuid.c: Differentiate (synth) between Core & Xeon (0,6),(2,12)
Westmere/Gulftown.
* cpuid.c: Simplified more (synth) i*-*000 combinations.
* cpuid.c: Removed duplicate slash in one Haswell (synth) line.
* cpuid.c: Correct Itanium Merced model/stepping confusion.
* cpuid.c: Added KX-5000 & KH-20000 to Zhaoxin WuDaoKou (synth).
* cpuid.c: Added die proess to Zhaoxin WuDaoKou (uarch synth).
* cpuid.c: Added Zhaoxin LuJiaZiu (0,7),(3,11) model (synth) &
(uarch synth).
Tue Jan 28 2020 Todd Allen <todd.allen@etallen.com>
* cpuid.c: Differentiate (synth) between Bay Trail Pentiums, Celerons
& Atoms.
* cpuid.c: Differentiate (synth) between Braswell Pentiums & Celerons.
* cpuid.c: Corrected (synth) steppings for Braswell.
* cpuid.c: Add J3000 series to (synth) for Braswell.
* cpuid.c: Remove Pentium & Celeron items from {Kaby,Coffee,Comet} Lake
Core (synth). I'd already created separate items for those, but
missed removing the names from the Core-specific line.
Mon Jan 27 2020 Todd Allen <todd.allen@etallen.com>
* Made new release.
Mon Jan 27 2020 Todd Allen <todd.allen@etallen.com>
* cpuid.c: Changed 0x8000001e/ecx to display nodes per processor in N-1
notation, after receiving confirmation from AMD that this is correct.
Sat Jan 25 2020 Todd Allen <todd.allen@etallen.com>
* cpuid.c: Fixed spelling of (size synth). I meant to always have
"synth" at the end of synthesized fields, and had that one flipped
around.
* cpuid.c: Clarified AVX512_VNNI: neural network instructions.
* cpuid.c: Clarified AVX512_VBMI2: byte VPCOMPRESS, VPEXPAND.
* cpuid.c: Clarified AVX512_BF16: bfloat16 is a data format, not an
instruction.
* cpuid.c: Added 7/0/edx md-clear feature, found from Xen & Qemu
hypervisors.
* cpuid.c: Added 0x80000008/ebx ppin feature, found from Xen hypervisor.
* cpuid.c: Added 0x40000001/eax (KVM) flags.
* cpuid.c: Got rid of the Transmeta 0x80860001/eax family description,
which I missed when I got rid of all 1/eax families. It wasn't so
egregious, but it wasn't very valuable either. The Transmeta Crusoe
name already was in the (synth) leaf.
* cpuid.c: Wrote a version of bits_needed() that uses __builtin_clz
with gcc 3.4 and later.
* cpuid.c: Fixed bug with old asm-based bits_needed() function when the
input value was 0.
Sat Jan 25 2020 Todd Allen <todd.allen@etallen.com>
* cpuid.c: Further clarified descriptions in 0x8000001f leaf, based on
text in AMD64 Architecture Programmer's Manual, Vol 3, 3.28. I had
missed these new fields in my earlier pass through the manual.
* cpuid.c: Added comments for more undocumented fields, noting where
the information came from, particularly SKC*, LX*, and sandpile.org.
* cpuid.c: Changed case of new descriptions.
* cpuid.c: Created Synth_Family() & Synth_Model() macros based on
print_1_eax & SKC's AMD_Family() macro.
* cpuid.c: Added (family synth) and (model synth) to 0x80000001/eax,
(AMD and Hygon variants), just like for 1/eax.
* cpuid.c: Added Castle Peak B0 stepping (synth), now that I know the
stepping name.
* cpuid.c: Changed 0x80000008/ebx "RDPRU instruction" field.
* cpuid.c: Clarified 0x80000020 leaf descriptions based on AMD 55803 PPR.
* cpuid.c: Modified print_apic_synth's bit width computations to reflect
change in terminology (core => thread, CU => core) in AMD Family 17h.
* cpuid.man: Updated 54945 PPR name, using newer doc from
developer.amd.com.
* cpuid.man: Added 55803 PPR, found by URL provided by AMD.
* cpuid.man: Updated sandpile.org URL.
Sat Jan 25 2020 Todd Allen <todd.allen@etallen.com>
* cpuid.c: Selectively applied changes from Smita Koralahalli
Channabasappa's patch: "Add PQoS feature to CPUID utility and display
subleaf 1 for leaf 0x80000020 in the raw CPUID data."
* cpuid.c: Renamed fields which no longer are Intel-specific:
RDT-CMT/PQoS cache monitoring and RDT-CAT/PQE cache allocation.
Fri Jan 24 2020 Todd Allen <todd.allen@etallen.com>
* cpuid.c: Shortened 0x8000001f leaf descriptions to <= 40 chars.
Fri Jan 24 2020 Smita Koralahalli Channabasappa <Smita.KoralahalliChannabasappa@amd.com>
* cpuid.c: Add AMD Secure Encryption feature bits to CPUID utility.
* cpuid.c: Update CPUID utility with additional AMD specific features.
* cpuid.c: Handle naming issues of cores->threads at register
80000008_ecx and compute unit->core at register 8000001e_ebx for
families greater than 16h. Retains previously assigned names if
families are lesser than or equal to 16h. Family values are
determined by adding family number and extended family
number(80000001_eax[8:11] + 80000001_eax[20:27]) as described in PPR
under CPUID_Fn00000001_eax.
Wed Jan 22 2020 Todd Allen <todd.allen@etallen.com>
* Made new release.
Wed Jan 22 2020 Todd Allen <todd.allen@etallen.com>
* cpuid.c: In print_80000001_ebx_amd, removed two checks for
__M(val_1_eax) >= _XM(0) + _M(0). Yes, gcc, I know that "comparison
of unsigned expression >= 0 is always true", and I also know even a
half-assed optimizer will get rid of it, so I preferred clarity. But
people freak out if the compiler emits any warnings, no matter what
crazy -W options the've chosen. So I'm removing them.
* cpuid.c: Changed a bunch of ccstring return types to cstring. The
extra const in ccstring was meaningless for return types, but it
caused a ton of additional -Wignored-qualifiers warnings. No grousing
about those warnings; they seem legit.
* Makefile: Added -Wextra, so I'll see these before people complain
about them in the future.
Tue Jan 21 2020 Todd Allen <todd.allen@etallen.com>
* cpuid.c: Changed Cannon Lake to Palm Cove when talking about uarch.
* cpuid.c: Added extra (0,6),(8,14),12 (unknown type) fallback.
* cpuid.c: Fixed (0,6),(8,14) Whiskey Lake typo.
* cpuid.c: Added i*-9000 names to (0,6),(9,14) Coffee Lake CPUs.
Mon Jan 20 2020 Todd Allen <todd.allen@etallen.com>
* Made new release.
Sun Jan 19 2020 Todd Allen <todd.allen@etallen.com>
* cpuid.c: Fixed (synth) decoding of Kaby Lake vs. Coffee Lake (and
their myriad "optimizations").
* cpuid.c: Correctly (synth) decoding of Comet Lake, which was wildly
wrong.
* cpuid.c: Treating Whiskey Lake, Amber Lake, and Comet Lake as distinct
uarchs just causes absurd "Coffee Lake / Whiskey Lake / Amber Lake /
Comet Lake" uarch strings. Instead, call all of them Coffee Lake, but
turn off the core_is_uarch flag. This ends up treating the other 3 as
core names within the Coffee Lake uarch, which seems clearer.
* cpuid.c: Renamed Ice Lake to Sunny Cove when talking about uarch.
* cpuid.c: Renamed Tiger Lake to Willow Cove when talking about uarch.
* cpuid.c: Added (synth) differentiation between Whiskey Lake (U line)
& and Amber Lake (Y line).
* cpuid.c: Added (synth) differentiation between Whiskey Lake (8000
Series) and Comet Lake (10000 Series).
* cpuid.c: Separated (synth) for Goldmont Plus into Pentium & Celeron.
* cpuid.c: Fixed Moorefield (synth) to say Z3500 instead of Z3400.
* cpuid.c: Fixed (0,6),(5,5),7 to Cascade Lake-X. Core names should be
as specific as possible (in contrast to uarch names).
* cpuid.c: added (0,6),(2,7) Atom Z2000 Medfield (synth) based on
example found on instlatx64.
* cpuid.c: Renamed Cedarview (SoC name) to Cedar Trail (core name).
* cpuid.c: Added (0,6),(1,15) Havendale/Auburndale (synth).
* cpuid.c: Added VIA (0,6),(0,15) Esther C5J (synth).
* cpuid.c: Added VIA Nano steppings to (synth).
* cpuid.c: Added AMD Ryzen vs. EPYC (synth) differentiation to
Castle Peak / Rome.
* cpuid.c: Separated Mullins into Mullins (tablets) and Beema (desktop).
* cpuid.c: Separated Kabini into Kabini (desktop) and Kyoto (servers).
Also added Temash for A-Series, although they're all mixed up with
Kabini.
* cpuid.c: Added AMD (6,15),(3,8) Godavari (synth) decoding.
* cpuid.c: Added AMD (2,15),(0,3) Griffin (synth) decodings.
* cpuid.c: Removed duplicate junk code for AMD (1,15),(0,2) which
prevented the 3 and 10 steppings from being used.
* cpuid.c: Corrected some AMD (0,6),(0,8) Duron Applebred (synth) names.
* cpuid.c: Added AMD DG02SRTBP4MFA based on example found on instlatx64.
Fri Jan 17 2020 Todd Allen <todd.allen@etallen.com>
* cpuid.c: Merged 0xb and 0x1f leaf code, much like what Len Brown of
Intel suggested a year ago. I don't know why I didn't just do that in
the first place. Merged field names look more like the 0x1f names,
because I thought they were clearer.
* cpuid.c: Removed type descriptions from "--- level ---" sub-headers.
Intel docs clarify the levels and types are not related.
* cpuid.c: Got rid of the ridiculously overloaded 1/eax family
descriptions. That information is nearly useless in isolation and
described much better in the new (uarch synth) field.
* cpuid.c: Also got rid of 0x80000001/eax family descriptions. It
wasn't nearly as bad, but still better to use the (uarch synth) field.
* cpuid.c: Because I removed that family information, also updated the
decode_uarch* functions with information about older CPU makers'
information.
* cpuid.c: Added vendor name to (uarch synth).
* cpuid.c: Fixed 4 and 0x8000001d leaf descriptions to say that the
values are in "minus 1" notation. Steven Noonan hinted that there was
something to check here, and there was.
* cpuid.c: Added (synth size) field to the 4 and 0x8000001d leaves to
compute the cache size, also based on a hint from Steven Noonan.
* cpuid.c: Added preliminary Zhaoxin decoding based on limited
information I could find.
* cpuid.c: Added missing uarch names to decode_uarch_intel().
* cpuid.c: Added note about P5 Tillamook CPUs.
* cpuid.c: Added some more die process values.
Thu Jan 16 2020 Todd Allen <todd.allen@etallen.com>
* Made new release.
Thu Jan 16 2020 Todd Allen <todd.allen@etallen.com>
* cpuid.c: Added decode_uarch*() and moved the uarch suffixes there from
print_synth*(). print_synth_intel() and print_synth_amd() now call
that function to get the suffixes.
* cpuid.c: Added print_uarch_synth() to display just those suffixes.
* cpuid.c: Added (synth) decoding for Itanium Poulson & Kittson.
* cpuid.c: Correct (synth) decoding for Itanium Montecito, Millington,
Montvale, Tukwila.
* cpuid.c: Cleaned up AMD [Excavator] core names.
* cpuid.man: Added some missing Intel spec updates.
Wed Jan 15 2020 Todd Allen <todd.allen@etallen.com>
* cpuid.c: Added "(family synth)" and "(model synth)" to do the combined
values used by the linux kernel and AMD. That is:
Family = XF + F
Model = (XM << 4) + M
* cpuid.c: Hunt down the fallback (synth) decodings that just list tons
of different possible meanings, all copied from the more specific
lines above them. They almost always are wrong; if they were right,
the more specific tests would've detected them. So, they're pure
guesswork. Replace them with "(unknown type)", which is more honest.
* cpuid.c: Simplified Intel Xeon Scalable descriptions.
* cpuid.c: Eliminated reiteration of i3-XXXX, i5-XXXX, i7-XXXX CPUs,
using i*-XXXX instead.
* cpuid.c: Added (synth) decoding for Core i*-4000U seen in the wild.
* cpuid.c: Correct missing = symbol in 0x80000001/eax transmeta leaf.
* cpuid.c: Added [K6], [K7], [K8] (synth) clarifications for AMD K8 CPUs.
* cpuid.c: Added (6,15),(6,5) (synth) based on sample from Alexandros
Couloumbis.
* cpuid.c: Added AMD "*-Series" queries for the various latters and
(synth) rules to use them. Added more rules for AMD architectures
that used this nomenclature.
* cpuid.c: Changed dO query to sO.
Wed Jan 15 2020 Todd Allen <todd.allen@etallen.com>
* cpuid.c: Clarified (synth) for each microarchitecture to include
process-neutral microarchitecture names too:
{P6} = (Pentium Pro, Klamath, Deschutes, Katmai, Coppermine,
Tualatin, Mendocino, Cascades)
{Netburst} = [Willamette, Northwood, Prescott, Cedar Mill]
{P6 Pentium M} = (Banias), [Dothan, Yonah]
{Core} = [Merom, Penryn]
{Nehalem} = [Nehalem, Westmere]
{Sandy Bridge} = (Sandy Bridge, Ivy Bridge)
{Haswell} = (Haswell, Broadwell)
{Skylake} = (Skylake, Kaby Lake, Coffee Lake, Whiskey Lake,
Amber Lake, Cascade Lake, Comet Lake, Cooper Lake,
Cannon Lake)
{Sunny Cove} = (Ice Lake, Tiger Lake)
The similarities are hazy in places. But this seems useful to help
people who, for example, don't know "Cedar Mill", but do know
"Netburst". Also the number of Skylake-related architecture names
exploded, and not all "Lake" names belong to Skylake, so this helps to
clarify.
* cpuid.c: Corrected (synth) for Tolapai to 90nm process.
Tue Jan 14 2020 Todd Allen <todd.allen@etallen.com>
* cpuid.c: Clarified Arrandale & Clarkdale as [Westmere].
* cpuid.c: Clarified Bloomfield, Gainestown & Beckton as [Nehalem].
* cpuid.c: Added [Merom] clarification to a couple CPUs that missed it.
* cpuid.c: Added [Cedar Mill] clarification to a couple CPUs that missed
it.
* cpuid.c: Clarified Dothan, Stealey, Crofton & Tolopai as [Dothan].
* cpuid.c: Clarified Yonah, Sossaman as [Yonah].
* cpuid.c: Did not clarify Banias as [Banias] because it appears there
are no non-Banias chips based on it.
* cpuid.man: Added handy wiki pages about microarchitectures.
Mon Jan 13 2020 Todd Allen <todd.allen@etallen.com>
* cpuid.c: Added 6/eax HW_FEEDBACK flag.
* cpuid.c: Added 7/0/ecx ENQCMD flag.
* cpuid.c: Added 7/0/edx AVX512_VP2INTERSECT flag.
* cpuid.c: Added 7/1/eax AVX512_BF16 flag.
* cpuid.c: Added 0xd/0/eax flags for CET_U & CET_S state.
* cpuid.c: Added 0x80000008/ebx WBNOINVD flag.
* cpuid.c: Added 0x80000008/ebx SSBD flags from AMD white paper.
* cpuid.c: In 7/0/edx leaf, clarified PCONFIG as an instruction.
* cpuid.c: Added synth detection for Cyrix MediaGX (circa 1997 SoC).
* cpuid.c: Added 7/0/ecx TME flag, discovered in the linux-5.5-rc6
kernel source.
* cpuid.c: Added 0x80000008/ebx additional STIBP always on flag,
discovered in the linux-5.5-rc6 kernel source.
* cpuid.man: Added AMD SSBD white paper.
* cpuid.man: Added linux kernel note and clue on what to look for.
Sun Jan 12 2020 Todd Allen <todd.allen@etallen.com>
* cpuid.c: Added Matisse B0 stepping based on sample from Steven Noonan.
* cpuid.c: Removed redundant dR lines from Pinnacle Ridge. (They could
come back if I see an EPYC based on Pinnacle Ridge, but they're
redundant now.)
Sun Jan 12 2020 Todd Allen <todd.allen@etallen.com>
* Made new release.
Sun Jan 12 2020 Todd Allen <todd.allen@etallen.com>
* Makefile, cpuid.proto.spec: Added INSTALL_STRIP to allow disabling the
install -s option. This makes rpmbuild & find-debuginfo.sh happy,
because they can find the cpuid debug information and create the
cpuid-debuginfo rpm.
* Makefile: Updated release target to move debugsource rpms too.
Sun Jan 12 2020 Todd Allen <todd.allen@etallen.com>
* cpuid.c: Added 0x40000004 leaf for Xen hypervisor.
* cpuid.c: Added 0x40000005 leaf for Xen hypervisor.
* cpuid.c: Fixed errors with static ccstring arrays that were not large
enough to hold NULLs for all reserved bit field values.
* cpuid.c: Added AMD's CMT "compute unit" concept to print_apic_synth
by adding that architectural level above the "cores" level, which
relects AMD's portrayal. This level is displayed only if it is
present.
* cpuid.c: Added some undocumented synth decodings found on
https://en.wikichip.org/wiki/amd/cpuid. Not everything there makes
sense, so I didn't take everything. Marked with comments.
* cpuid.c: Added architecture tags to Intel synth decodings:
[Willamette], [Northwood], [Prescott], [Merom], [Penryn], [Nehalem],
[Westmere]. After that, Intel dropped the hyper-specific code names
in favor of suffix letters.
* cpuid.c: Added architecture tags to Intel synth decodings: [Bonnell],
[Saltwell], [Silvermont], [Airmont], [Goldmont], [Goldmont Plus].
Intel continues to use hyper-specific names for Atom CPUs.
Sat Jan 11 2020 Todd Allen <todd.allen@etallen.com>
* Makefile: Added -Wimplicit-fallthrough -Wunused-parameter options.
* cpuid.c: Clarified 4/edx WBINV/INVD flag.
* cpuid.c: Added new 7/edx flags, especially including new features to
mitigate speculative execution exploits.
* cpuid.c: Cleaned up output of 0x10 subleaves.
* cpuid.c: Added 0x12/0/ebx CPINFO for #CP exceptions in enclave.
* cpuid.c: Properly display 0x18 sub-leaf number.
* cpuid.c: Added leaf 0x1f V2 Topology logic to decode_mp_synth() and
print_apic_synth(). I have no physical examples, so I only could test
with artificial input files.
* cpuid.c: Added 3-way and 6-way associativity to 0x80000006 and
0x80000019 leaves.
* cpuid.c: Fixed incorrect fallthrough in switch for "41322 3.74:
table 16".
* cpuid.c: Fixed incorrect fallthrough's in switch for Family 12h tables.
* cpuid.c: Added UNUSED macro to make newer gcc's shut up about unused
formals. (They have one complaint if the name is omitted, and another
complaint if it's specified but unused. There's just no pleasing gcc.)
* cpuid.c: Added break after usage() to make gcc shut up about a
nonexistent fallthrough (even though it was marked with NOTREACHED).
* cpuid.c: Added missing newlines to all the print_2_byte Cyrix/VIA
special cases.
* cpuid.c: Fixed print_f_0_edx: QoS monitoring was in 0xf/0 bit 1, not
bit 0.
* cpuid.c: Added print_40000001_edx_kvm and appropriate call.
* cpuid.c: For 0x80000001/ebx amd, display PkgType for all family 16h
or higher systems, even if no specific BrandId breakdown is known.
Added encodings from AMD BKDG and PPR documents.
Sat Jan 11 2020 Todd Allen <todd.allen@etallen.com>
* cpuid.c: Added proper synth decoding for Atom C3000 (Denverton).
* cpuid.c: Clarified Goldmont into eithe Apollo Lake or Denverton.
* cpuid.c: Corrected (0,6),(9,14) synth decoding to be Coffee Lake.
* cpuid.c: Added (0,6),(9,14) Coffee Lake synth decoding steppings.
* cpuid.c: Added (0,6),(9,14) Coffee Lake synth decoding for Xeon E-2100
& E-2200.
* cpuid.c: Added (0,6),(5,5),7 synth decoding for Xeon 2nd Gen Scalable.
* cpuid.c: Added (0,6),(5,5),7 synth decoding for Xeon D-2100.
* cpuid.c: Added synth decoding for Gemini Lake R0 stepping (same as B0).
* cpuid.c: Added vague synth decoding for (0,6),(6,6) Cannon Lake.
* cpuid.c: Added vague synth decoding for (0,6),(6,10) Ice Lake.
* cpuid.c: Added vague synth decoding for (0,6),(6,12) Ice Lake.
* cpuid.c: Added vague synth decoding for (0,6),(7,13) Ice Lake.
* cpuid.c: Added additional synth decodings for AMD Ryzen, including
Pinnacle Ridge.
* cpuid.c: Differentiate Ryzen from EPYC using brand string and new
query functions.
* cpuid.man: Added new spec updates, revision guides, etc.
Sat Jan 11 2020 Todd Allen <todd.allen@etallen.com>
* Prettification of Masanori Misono's 0x40000001/eax KVM fields.
* Formatting changes & URL removal from Jeffrey Walton's SunOS patch.
* Prettification of Thomas Friebel's 0x40000003 leaf fix: while loop.
* Reverted print_header() to use !raw (personal preference of mine).
* Format changes to & rearrangement of fanjinke's Hygon patch.
Fri Jan 3 2020 Thomas Friebel <friebelt@amazon.de>
* Fixed bug that skipped half the subleaves in the 0x40000003 hypervisor
leaf.
* Fixed contradictory try logic in print_header() for leaf 0x40000003.
* Fixed to use 0x40000003/ebx for high 32 bits of vtsc_offset,
instead of using eax for both high & low 32 bits.
Mon May 13 2019 fanjinke <fanjinke@hygon.cn>
* Added Hygon support.
Wed May 8 2019 Jeffrey Walton <noloader@gmail.com>
* cpuid.c: Added support for SunOS build.
Sat Mar 2 2019 Masanori Misonoc <m.misono760@gmail.com>
* cpuid.c: Added 0x40000001/eax KVM bit fields.
Fri Jun 1 2018 Tony Luck <tony.luck@intel.com>
* cpuid.c: Added decoding of 0x10/3 subleaf.
Sat May 26 2018 Todd Allen <todd.allen@etallen.com>
* cpuid.c: Fixed 7/ecx spelling error: intruction.
* cpuid.c: Fixed main spelling error: unrecogized.
Sat May 19 2018 Todd Allen <todd.allen@etallen.com>
* Made new release.
Sat May 19 2018 Todd Allen <todd.allen@etallen.com>
* cpuid.c: Added some more fields reported by Stefan Kanthak, after
tracking down some documentation that explains them:
* cpuid.c: Added 7/ecx bit 7: CET_SS and 7/edx bit 20: CET_IBT fields.
So far, the only documentation for these is Control-flow Enforcement
Technology Preview (334525), section 8.2 Feature Enumeration.
* cpuid.c: Added 7/ecx bit 16: 5-level paging. So far, the only
documentation for this is 5-Level Paging and 5-Level EPT White Paper
(335252).
* cpuid.c: Improved 14/0/ecx descriptions.
* cpuid.c: Added hypervisor leaf descriptions from Microsoft's
Hypervisor Top Level Functional Specification (Released Version 5.0b).
* cpuid.man: Added the above mentioned docs.
Thu May 17 2018 Todd Allen <todd.allen@etallen.com>
* cpuid.c: Added CPUID features documented in PPR for AMD Family 17h
Model 01h B1 (54945 Rev 1.14):
* cpuid.c: Added PCOMMIT to 7/ebx: PCOMMIT instruction (a deprecated
instruction).
* cpuid.c: Added bits to 80000001/ecx (amd).
* cpuid.c: Added 80000007/ebx.
* cpuid.c: Added 80000007/ecx.
* cpuid.c: Added bits to 80000007/edx.
* cpuid.c: Added 80000008/ebx.
* cpuid.c: Added bits to 8000000a/edx.
* cpuid.c: Added bits to 8000001a/eax.
* cpuid.c: Added bits to 8000001b/eax.
* cpuid.c: Added tentative 8000001f descriptions. Information obtained
from Linux kernel 4.17-rc5 arch/x86/kernel/cpu/scattered.c (as patched
by Tom Lendacky of AMD on 18-Apr-2017 via LKML), and from Secure
Encrypted Virtualization API Version 0.16 Technical Preview
(55766 Rev 3.06).
* cpuid.man: Added 54945 & 55766 docs.
Thu Apr 19 2018 Todd Allen <todd.allen@etallen.com>
* Made new release.
Wed Apr 19 2018 Todd Allen <todd.allen@etallen.com>
* cpuid.c: Fixed various bugs reported by Stefan Kanthak:
* cpuid.c: Fixed bug in print_2_meaning: 0x49 normal & special cases.
* cpuid.c: Fixed bug in print_2_meaning: 0x63 additional 2M/4M, 4-way,
32 entries item.
* cpuid.c: Collapsed print_2_meaning into print_2_byte so that the
prefix and CONT are known in one place.
* cpuid.c: Fixed bug in print_2_byte: 0x7d is not sectored.
* cpuid.c: Fixed bug in print_2_byte: 0xc2 is 4K, not 4M.
* cpuid.c: Changed 6/ecx bit 0 to "hardware coordination feedback".
* cpuid.c; Changed 7/ebx bit 3 to "BMI1 instructions".
* cpuid.c: Change 7/ebx bit 12 to RDT-M.
* cpuid.c: Change 7/ebx bit 15 to RDT-A.
* cpuid.c: Corrected "0x40000003/ecx" label.
* cpuid.c; print_40000003_edx_microsoft: corrected "idle" spelling.
Wed Apr 19 2018 Todd Allen <todd.allen@etallen.com>
* cpuid.c: Added mnemonic letters for some 1/ecx, 1/edx, and 7/ebx leaf
fields.
* cpuid.c: Fixed bug with 4/ecx: field name should be "number of sets".
* cpuid.c: Fixed bug with 4/ecx leaf: pass ECX to it!
* cpuid.c; Fixed bug with 0x10/ecx: pass ECX to it!
* cpuid.c: Fixed bug with 0x10/edx: pass EDX to it!
Sun Apr 8 2018 Todd Allen <todd.allen@etallen.com>
* cpuid.c: Added 2 leaf 0xfe encoding: TLB data in leaf 0x18.
* cpuid.c: Added new Intel 6/eax bit fields.
* cpuid.c: Added new Intel a/edx bit field: anythread deprecation.
* cpuid.c: Added new Intel d/0/eax bit field: IA32_XSS HDC state.
* cpuid.c: Added new Intel 10/0/ebx bit field: memory bandwidth alloc.
* cpuid.c: Added new Intel 12/0/eax bit fields
* cpuid.c: Added new Intel 18 leaf: deterministic address translation.
* cpuid.c: Added new Intel 7/ecx bit fields from Intel Architecture
Instruction Set Extensions and Future Features Programming Reference.
* cpuid.c: Added new Intel 1b leaf from Intel Architecture
Instruction Set Extensions and Future Features Programming Reference.
* cpuid.c: Added synth decoding for Avoton C0 stepping (same as B0).
* cpuid.c: Corrected synth decoding for Bay Trail-M C0 steppings.
* cpuid.c: Added synth decoding for Bay Trail-I (E3800).
* cpuid.c: Added synth decoding for Xeon D-1500N (Broadwell-DE A1).
* cpuid.c: Added synth decoding for Xeon E7-4800/8800 (Broadwell-EX B0).
* cpuid.c: Correct synth decoding for Bay Trail A0.
* cpuid.c: Added synth decoding for Bay Trail D0.
* cpuid.c: Added synth decoding for Core X-Series (Skylake-X).
* cpuid.c: Added synth decoding for Xeon Scalable (Bronze, Silver, Gold,
Platinium) (Skylake).
* cpuid.c: Added synth decoding for Pentium Silver (Gemini Lake).
* cpuid.c: Added synth decoding for AMD Zen.
* cpuid.man: Added new spec updates & PPR.
Fri Nov 3 2017 Todd Allen <todd.allen@etallen.com>
* cpuid.c, cpuid.man: Attribute whitepaper to Shih Kuo.
Wed Jun 22 2017 Lars Wendler <polynomial-c@gentoo.org>
* cpuid.c: recent glibc versions no longer automagically include
sysmacros.h headers. This needs to be done by the source files itself
now.
Fri Mar 3 2017 Todd Allen <todd.allen@etallen.com>
* cpuid.c: Added missing SDBG bit to 1/ecx leaf.
Sun Jan 22 2017 Todd Allen <todd.allen@etallen.com>
* Made new release.
* cpuid.c: Use __cpuid_count macro for "cpuid" instruction if possible.
This macro is present in gcc 4.3.0 and later, and works around the fact
that the cpuid instruction writes on the PIC register. This is only
important when compiling PIC/PIE.
* cpuid.c: Added synth decoding for Intel Knights Landing B0. The Intel
docs still don't specify the stepping numbers, but all examples seen
so far have stepping number 1, and so far B0 is the only stepping.
* cpuid.c: Added new synth decodings for Intel Kaby Lake.
* cpuid.c: Fixed synth decodings for AMD Steamroller.
* cpuid.c: Fixed synth decodings for AMD Jaguar.
* cpuid.c: Added synth decodings for AMD Puma.
* cpuid.c: Added synth decodings for AMD Excavator.
* cpuid.c: For (6,15),(0,2) Piledriver processors, detect FX series
and report it as Vishera instead of Abu Dhabi/Seoul/Delhi.
* cpuid.c: Added general microarchitecure names for AMD (e.g.
Piledriver) in addition to specific core names (e.g. Trinity) for
later generation processors. If I have trouble remembering these,
it seems likely other people do too.
* cpuid.c: Added synth decoding for Quark X1000.
* cpuid.c: Added Intel Atom Z2760 (Clover Trail).
* cpuid.c: Added extra synth decodings for some Sandy Bridge processors.
* cpuid.c: Added extra synth decodings for some Ivy Bridge processors.
* cpuid.man: Added new & missing spec updates & revision guides.
* FUTURE: Cleaned this up somewhat.
Mon Dec 5 2016 Todd Allen <todd.allen@etallen.com>
* cpuid.c: Removed stale len variable from do_file().
Thu Dec 1 2016 Todd Allen <todd.allen@etallen.com>
* Made new release.
Wed Nov 30 2016 Todd Allen <todd.allen@etallen.com>
* cpuid.c: Fixed bugs in the subleaf walks for 0x8000001d (AMD cache
information) and 0x40000003 (Xen hypervisor information) because the
code for them was under wholly the wrong loops. Thanks to Brice
Goglin for detecting this and working out the cause of the bug.
Wed Nov 16 2016 Todd Allen <todd.allen@etallen.com>
* cpuid.c: Updated comments referencing 325462 Table 35-1 to also
specify Volume 3.
* cpuinfo2cpuid: Added grep commands to EXAMPLES.
Mon Nov 14 2016 Todd Allen <todd.allen@etallen.com>
* Made new release.
* cpuid.man: Added 334663 & 334820 spec updates.
Sun Nov 13 2016 Todd Allen <todd.allen@etallen.com>
* cpuid.c: Fixed bug reported by Andrew Cooper where, in do_real, for
the 0xd leaf, the lower half of the valid bit set for XSS should've
used 0xd/1/ecx instead of 0xd/1/eax. Sadly, this bug affects raw
dumps too.
* cpuid.c: Added -l/--leaf and -s/--subleaf options to cause cpuid
to dump just the specified leaf and subleaf. If -s/--subleaf is not
specified, it is assumed to be 0. The intended purpose for this is
to display raw dumps of not-yet-supported leaves, or to workaround
bugs like the above.
Sat Nov 12 2016 Todd Allen <todd.allen@etallen.com>
* cpuid.c: In bits_needed, add a further check for !defined(__ILP32__),
which should help with building a 32-bit version of cpuid on a 64-bit
system.
Sat Nov 12 2016 Todd Allen <todd.allen@etallen.com>
* cpuid.c: Made editorial changes to Piotr Luc's patches (spelling,
capitalization, register order, comments, etc.).
* cpuid.c: Added AVX512DQ, AVX512IFMA, AVX512BW, AVX512VL, and CLWB
decoding to 7/ebx.
* cpuid.c: Added AVX512VBMI to 7/ecx.
* cpuid.c: Added print_f_0_edx to show L3 cache QoS monitoring support.
* cpuid.c: Added total & local bandwidth monitoring to 0xf/1/edx.
* cpuid.c: Added 0x15/ecx nominal core crystal clock decoding.
* cpuid.c: In print_17_0_ebx, corrected reversed scheme encodings.
* cpuid.c: Added synth decoding for Xeon D-1500 (Broadwell-DE) Y0
stepping.
* cpuid.c: Added synth decoding comment about Braswell D1 stepping, but
its stepping number isn't documented.
* cpuid.c: Added synth decoding for (0,6),(8,14) Kaby Lake processors.
* cpuid.c: Added synth decoding for Apollo Lake processors.
* cpuid.c: Added vague synth decoding for (0,6),(9,14) Kaby Lake
processors.
* cpuid.c: Re-sorted (0,6),(5,7) Knights Landing to correct position.
* cpuid.c: Re-sorted (0,6),(5,15) Goldmont to correct position.
Sat Oct 27 2016 Piotr Luc <Piotr.Luc@intel.com>
* cpuid.c: Add AVX512_4VNNIW & AVX512_4FMAPS flags.
* cpuid.c: Add Knights Mill (KNM) CPUID.
Sun Aug 14 2016 Todd Allen <todd.allen@etallen.com>
* Made new release.
* Makefile: Added clean rules to remove tarballs & rpm's with other
version numbers.
Sun Aug 14 2016 Todd Allen <todd.allen@etallen.com>
* cpuinfo2cpuid: Added a script that takes input from a /proc/cpuinfo
file and converts it into suitable input to cpuid. The information
that cpuid is capable of producing based on this very limited input
information is slight, but apparently there is interest in getting the
synthesized (synth) leaf from this. There isn't much value in using
it with an actual /proc/cpuinfo file on the local system, because just
allowing cpuid to read the local cpuid info will provide better
output. But it could be useful for interpreted saved /proc/cpuinfo
files from another system. I slapped together the basic logic, and
Jirka Hladky turned it into a proper perl script, with actual options,
a help screen, and even documentation. I then made some changes to
give it some more uniform indentation, whitespace, and such. And to
give Jirka Hladky more credit, since his contribution to the script is
larger than my own.
* Makefile: Added rules to generate cpuinfo2cpuid.man from the =pod data
in the script.
* Makefile: Added cpuinfo2cpuid & cpuinfo2cpuid.man to the released
materials.
* cpuid.proto.spec: Added cpuinfo2cpuid & cpuinfo2cpuid.1.gz to released
materials.
Sun Aug 14 2016 Todd Allen <todd.allen@etallen.com>
* cpuid.c: Changed instances of Kb to KB. In print_2_meaning, changed
an instance of 4k to 4K.
Sat Aug 13 2016 Todd Allen <todd.allen@etallen.com>
* cpuid.c: Added 7/ebx SGX & FDP_EXCPTN_ONLY flags.
* cpuid.c: Added 7/ecx BNDLDX/BNDSTX MAWAU value field, RDPID & SGX_LC.
* cpuid.c: Added d/0/eax MPX state field.
* cpuid.c: In print_d_0_eax, split MPX and AVX-512 all_or_none fields
into their component parts. Also added IA32_XSS PT state.
* cpuid.c: In print_d_n_ecx, clarify XCR0 as user state and IA32_CXX as
supervisor state.
* cpuid.c: In print_d_n, add MPX and PT features.
* cpuid.c: Renamed leaf 0x10 to Intel's new name. Corrected totally
bogus interpretation of subleaf 0.
* cpuid.c: Generalize subleaf 0x10/1 to also include 0x10/2, and
provide new Intel correct names for each.
* cpuid.c: Added 0x14/0 PTWRITE & power event trace.
* cpuid.c: Added description for leaf 0x12 (SGX Capability) and all its
subleaves.
* cpuid.c: Added descriptionf or leaf 0x17 (SoC vendor) and its
subleaves.
* cpuid.c: Decode new leaf 2 cache descriptors: 0x64 & 0xc4.
* cpuid.c: Updated Atom C2000 (Avoton) with A0/A1 steppings.
* cpuid.c: Added Atom Z3n00 (Bay Trail-T B2/B3) specific stepping 1.
* cpuid.c: Added Xeon D-1500 (Broadwell-DE) V2 stepping.
* cpuid.c: Corrected Atom Z8000 (Cherry Trail) with correct model, per
changes in its spec update.
* cpuid.c: Change the (0,6),(5,14) Skylake descriptions to be more vague
to reflect the larger set of existing processors now.
* cpuid.c: Add actual information for the (0,6),(4,14) Skylake
processors.
* cpuid.c: Add actual information for the (0,6),(5,14) Broadwell-E
processors.
* cpuid.c: Add actual information for the (0,6),(4,15) Broadwell and
Broadwell-EX processors.
* cpuid.c: Added vague mentions of Goldmont (0,6),(5,12) and (0,6),(5,15)
based on 325462 Table 35-1.
* cpuid.c: Add Atom S1200 (Centerton) under (0,6),(3,6) thanks to an
example provided by Jirka Hladky.
* cpuid.c: Added Eden to the list of possible meanings of VIA
(0,6),(6,13). An example provided by Daniel Wyatt shows that they
sometimes use the simple Eden brand for this architecture.
* cpuid.man: Added various new Intel documents used while making the
above changes.
* cpuid.c: Made -f - operate on stdin.
Wed Jun 22 2016 Alan Cox <alan@lxorguk.ukuu.org.uk>
* cpuid.c: Added out-of-memory checks to strregexp.
Mon Oct 19 2015 Todd Allen <todd.allen@etallen.com>
* Updated cpuid.man's list of information sources with new sources used
in the 20151017 release (and one renamed source).
Sat Oct 17 2015 Todd Allen <todd.allen@etallen.com>
* Made new release.
* cpuid.c: Updated synth decoding for Broadwell processors.
* cpuid.c: Added 0xd leaf field.
* cpuid.c: Updated and expanded 0x14 leaf fields.
* cpuid.c: Added synth decoding for Intel Xeon E7 v2 (Ivy Bridge-EX).
* cpuid.c: Added synth decoding for Intel Core i5/i7 (Skylake).
* cpuid.c: Added vague synth decodings for a few more future processor
models from Intel 64 and IA-32 Architectures Software Developer's
Manual (325462), Table 35-1.
Thu Oct 15 2015 Hubert Chrzaniuk <hubert.chrzaniuk@intel.com>
* cpuid.c: Decode new leaf 2 cache descriptors: 6a, 6b, 6c, 6d.
* cpuid.c: added synth decoding for Knights Landing.
[NOTE FROM Todd Allen: There is no datasheet or spec update for
Knights Landing yet, but Intel 64 and IA-32 Architectures Software
Developer's Manual (325462), Table 35-1 mentions that it will have the
family & model (0,6),(5,7).
Sat Jun 6 2015 Todd Allen <todd.allen@etallen.com>
* Made new release.
* cpuid.man: Added 325462 manual.
* cpuid.c: Added new & missing decodings for: 4/ecx, 6/eax, 7/ebx, 7/ecx.
* cpuid.c: Overhauled handling of 0xd leaf, based on new and more
extensive information in the Intel CPUID documentation, particularly
on how to decide which leaves are valid. The approach functions
correctly for the subset described in the AMD documentation, too.
This overhaul includes information on the XSAVEC, XGETBV, and
XSAVES/XRSTORS instructions.
* cpuid.c: Renamed 0xf leaves to include "Monitoring".
* cpuid.c: Added 0x10 leaves for QoS Enforcement.
* cpuid.c: Added new leaf 2 cache meanings: 0x1d, 0x24, 0xa0, 0xc3.
* cpuid.c: Added missing i7 synth decoding for (0,6),(3,14).
* cpuid.c: Corrected Atom Z3000 model & stepping which were bafflingly
wrong: (0,6)(3,5),1 -> (0,6)(3,7),8.
* cpuid.c: Corrected other Bay Trail stepping names for Celeron/Pentium
N and J series.
* cpuid.man: Added references to a bunch of new Intel manuals.
* cpuid.c: Added synth decoding for Intel Xeon Phi (Knights Corner).
* cpuid.c: Added synth decoding for Intel Atom C2000 (Avoton).
* cpuid.c: Added synth decoding for Intel Xeon E5-x600 (Haswell-EP).
* cpuid.c: Added synth decoding for Intel Xeon E5-[48]800 (Haswell-EP).
* cpuid.c: Added synth decoding for Intel Core M (Broadwell-Y).
* cpuid.c: Added synth decoding for Intel Xeon D-1500 (Broadwell-DE).
* cpuid.c: Added synth decoding for Intel i7-5000 Extreme (Haswell R2).
* cpuid.c: Added synth decoding for Intel Atom Z8000 (Cherry Trail).
* cpuid.c: Added synth decoding for Intel Pentium/Celeron N3000
(Braswell).
* cpuid.c: Added synth decoding for Intel i7 5th gen (Broadwell).
* cpuid.c: Added synth decoding for Intel E3-1200 v4 (Broadwell).
* cpuid.c: Added Xeon E5-4600 to synth decoding for other Sandy Bridge
E5 processors (it was omitted accidentally).
* cpuid.c: Added Pentium D 9xx Processor to synth decoding for Presler
D0 (it was omitted accidentally).
Fri Mar 21 2014 Todd Allen <todd.allen@etallen.com>
* cpuid.c: Deal with 0-width PKG_width fields in print_apic_synth(),
for CPUs where the SMT_width + CORE_width >= 8. This happens on
Xeon Phi chips.
Wed Feb 12 2014 Todd Allen <todd.allen@etallen.com>
* cpuid.c: Added CLFLUSHOPT instruction field to leaf 7, ebx.
* cpuid.c: Added Processor Frequency Information leaf (0x16).
Tue Feb 11 2014 Todd Allen <todd.allen@etallen.com>
* Makefile: Added src_tar rule.
Tue Feb 11 2014 Todd Allen <todd.allen@etallen.com>
* cpuid.c: Made changes to allow building and running on kFreeBSD. This
started out as a patch from Andrey Rahmatullin, but I refactored it.
The changes to disable the cpuid kernel support are protected by a
USE_CPUID_MODULE definition. And there's an additional sanity check
to reject -k in that case. The changes to use the library versions of
sched_setaffinity are protected by USE_KERNEL_SCHED_SETAFFINITY. I
continue to go straight to the kernel on linux, though.
Tue Feb 11 2014 Todd Allen <todd.allen@etallen.com>
* Makefile: Reorganized Andrey Rahmatullin's changes a bit and used
them in my development build rules (make todd) too.
Tue Feb 11 2014 Andrey Rahmatullin <wrar@wrar.name>
* Makefile: Honor CPPFLAGS, CFLAGS and LDFLAGS from the environment.
Mon Jan 27 2014 Todd Allen <todd.allen@etallen.com>
* Makefile: Change to my development build rules (make todd) to use ld's
--hash-style=both to avoid a SIGFPE when running on very old 32-bit
systems. It has no effect on the tool for anyone else.
Thu Jan 23 2014 Todd Allen <todd.allen@etallen.com>
* Made new release.
Thu Jan 23 2014 Todd Allen <todd.allen@etallen.com>
* cpuid.c: Stop displaying raw hex for 0xc and 0xe leaves, because they
are reserved and just contain zeroes.
* cpuid.c: Fixed missing leaf 0xf subleaf 1 in do_real().
* cpuid.man: Added reference to Intel Architecture Instruction Set
Extensions Programming Reference (319433).
* cpuid.c: Added new feature flags from that document.
Sun Jan 12 2014 Todd Allen <todd.allen@etallen.com>
* Made new release.
Sun Jan 12 2014 Todd Allen <todd.allen@etallen.com>
* cpuid.c: Added Celeron B800 synth decoding.
* cpuid.c: Added Pentium G3000 & Celeron G1800 synth decoding.
* cpuid.c: Added 4th Gen Core family mobile processors synth decoding.
* cpuid.c: Added information about E5 v2 processors (no longer just
engineering samples) and related Ivy Bridge-EP processors.
* cpuid.c: Added Bay Trail (Atom Z3000, etc.) processors synth decoding.
Sun Jan 12 2014 Todd Allen <todd.allen@etallen.com>
* cpuid.man: Added reference to Intel decoding from Intel 64 and IA-32
Architectures Software Developer's Manual Volume 2A: Instruction Set
Reference, A-M (253666).
* cpuid.c: Added new Intel decodings from that document.
Sun Jan 12 2014 Todd Allen <todd.allen@etallen.com>
* cpuid.c: Added new (instruction supported synth) field to report on
instruction support when knowledge of that is scattered across
multiple CPUID leaves. PREFETCH/PREFETCHW is the weirdest example.
* cpuid.c: Clarified the raw PREFETCH/PREFETCHW field in 80000001 edx
leaf with the 3DNow! prefix, similar to the description in the AMD
CPUID docs. Thanks to Chris Orgill for reporting these two issues.
Fri Sep 27 2013 Todd Allen <todd.allen@etallen.com>
* cpuid.c: Added missing break to decode_amd_model(), family (0,15),
model (4,0), case 0x18. Thanks to David Binderman for reporting this.
Mon Jun 10 2013 Todd Allen <todd.allen@etallen.com>
* Made new release.
Mon Jun 10 2013 Todd Allen <todd.allen@etallen.com>
* cpuid.c: Added mention of Opteron 3200 (Zurich) chips, accidentally
omitted from yesterday's updates.
Sun Jun 9 2013 Todd Allen <todd.allen@etallen.com>
* Made new release.
Sun Jun 9 2013 Todd Allen <todd.allen@etallen.com>
* cpuid.c: Updated 14h Model 00h-0Fh AMD model tables.
* cpuid.c: Added synth decoding for Opteron x300 (Piledriver) chips.
* cpuid.c: Added synth decoding for family 16h processors, tentatively
identified as Steamroller.
* cpuid.man: Added new AMD 15h Model 10h-1Fh, and AMD 16h Model 00h-0Fh
manuals.
Sat Jun 8 2013 Todd Allen <todd.allen@etallen.com>
* cpuid.c: Added sanity check to 0xCxxxxxxx leaves to check for an
unreasonably large indicated maximum leaf number. If found, further
walk of them is halted.
* cpuid.c: Skip 0x4xxxxxxx leaves if cpuid does not indicate that the
environment is a guest. This was suggested by Steven Levine, although
I implemented it differently.
Sat Jun 8 2013 Todd Allen <todd.allen@etallen.com>
* cpuid.c: Clarified some KVM hypervisor leaf feature flags that Eduardo
Habkost pointed out. Added a couple new flags.
Sat Jun 8 2013 Todd Allen <todd.allen@etallen.com>
* cpuid.c: Extended Eduardo Habkost's stash separation to include the
0x80000008 leaf, and the leaves that inform transmeta_info.
Sat Jun 8 2013 Eduardo Habkost <ehabkost@raisama.net>
* cpuid.c: This patch separates the code that changes fields in the
'stash' struct from the code that prints that information. This way,
the stash struct will get updated even when in raw mode, so other
parts of the code can use that information.
[NOTE FROM Todd Allen: It used to be that the stash was only set and
used in cooked mode, but some uses dealing with the hypervisor snuck
out and were used all the time. This new separation is only really
necessary for the hypervisor fields, but it's good practice to do all
the fields this way, so I'm accepting the patch as is.]
Sat Jun 8 2013 Todd Allen <todd.allen@etallen.com>
* cpuid.c: Added synth decoding for Celeron G400/G500.
* cpuid.c: Added synth decoding for Cedarview B3.
* cpuid.c: Added synth decoding for Ivy Bridge i3 processors.
* cpuid.c: Added synth decoding for Ivy Bridge Pentium G1600/G2000/G2100.
* cpuid.c: Added synth decoding for Ivy Bridge Pentium
900/1000/2000/2100.
* cpuid.c: Clarified that Ivy Bridge Xeon E3-1200 is actually E3-1200 v2.
* cpuid.c: Added vague synth decoding for Haswell, but spec updates
show no specific chips or steppings yet.
* cpuid.c: Expanded A100/A110 synth decoding to include semi-official
Pentium M (Crofton) processors in Apple TV boxes.
* cpuid.c: Added Xeon E5-2600 v2 engineering sample. Perhaps this will
be the final synth decoding for them, but for now it's just marked as
an engineering sample.
* cpuid.man: Added new Intel manuals.
Fri Aug 24 2012 Todd Allen <todd.allen@etallen.com>
* cpuid.c: Added sanity check to 0x4xxxxxxx leaves to check for an
unrecognized hypervisor and an unreasonably large indicated maximum
leaf number. If found, further walk of them is halted.
Tue Aug 21 2012 Todd Allen <todd.allen@etallen.com>
* cpuid.c: Cleaned up printf(name) statements that were admonished by
clang.
Fri Jun 1 2012 Todd Allen <todd.allen@etallen.com>
* Made new release.
Thu May 31 2012 Todd Allen <todd.allen@etallen.com>
* cpuid.c: Updated CPUID feature flags.
* cpuid.c: Updated CPUID function 7 to support sub-leaves (mostly for
future functionality that might be added to them).
* cpuid.c: Updated synth decoding for Intel Dothan C0 because some use
65nm process now.
* cpuid.c: Updated Intel EP80579 synth to mention 65nm process.
* cpuid.c: Added synth decoding for Intel Atom E600 series.
* cpuid.c: Updated synth decoding for Intel Sandy Bridge D2 to include J1
and Q0, which have the same CPUID.
* cpuid.c: Added synth decoding for Intel Atom D2000/N2000 (Cedarview).
* cpuid.c: Added synth decoding for Intel Sandy Bridge-E.
* cpuid.c: Added synth decoding for AMD Llano.
* cpuid.c: Improved distinction between AMD Interlagos & Zambezi.
* cpuid.c: Added synth decoding for RDC IAD 100.
* cpuid.c: Fixed some formatting bugs for Transmeta-specific leaves.
* cpuid.c: Added synth decoding for some of VIA's versions of WinChips.
* cpuid.man: Added mentions of spec updates for several Atoms, i7 for
LGA-2011, and Xeon E5; and AMD 12h family.
Wed May 30 2012 Todd Allen <todd.allen@etallen.com>
* cpuid.c: Fixed ancient bug in distinguishing Irwindale from Nocona
(they differ only by L2 cache size).
* cpuid.c: Added synth decoding for desktop and mobile Ivy Bridge.
Sat Feb 25 2012 Todd Allen <todd.allen@etallen.com>
* Made new release.
* cpuid.c: Cleaned up hypervisor-specific leaves for KVM.
* cpuid.man: Added mention of KVM cpuid documentation.
Fri Feb 24 2012 Todd Allen <todd.allen@etallen.com>
* cpuid.c: Added synth decoding for Intel Westmere-EX processors.
* cpuid.c: Added synth decoding for AMD family 15h chips: AMD FX
(Zambezi), Opteron 6200 (Interlagos), and Opteron 4200 (Valencia).
* cpuid.c: Added synth decoding for AMD Z-Series and other Fusion
chip ON-C0 steppings.
* cpuid.c: Added synth decoding for Atom Z600 (Lincroft).
* cpuid.c: Updated AMD model decoding for family 10h processors.
* cpuid.man: Added mention of AMD family 14h and 15h documents, and
Intel Westmere-EX & Lincroft documents.
* cpuid.man: Removed obsolete limitation about 0x8000001b.
* cpuid.c: Added support for hypervisor leaves (0x4000000 and after).
Interpreted known generic leaves. Interpreted hypervisor-specific
leaves for Xen (deduced from source, as no documentation on them
exists). Interpreted hypervisor-specific leaves for KVM. Interpreted
hypervisor-specific leaves for Microsoft.
Tue Jan 3 2012 Todd Allen <todd.allen@etallen.com>
* cpuid.c: Added synth decoding for Athlon 64 (Venice DH-E6) chips.
Wed Nov 2 2011 Todd Allen <todd.allen@etallen.com>
* cpuid.c: Added saw_4 and saw_b stash flags to deal with chips that
report 0xc codes but still omit 0xb codes. This way, a maximum code
of 0xc no longer implies the presence of 0xb codes for things like
APIC decoding.
Mon Mar 28 2011 Todd Allen <todd.allen@etallen.com>
* cpuid.c: Added APIC synth decoding for AMD, deduced by analogy to Intel
code and the multiprocessor synth logic.
Mon Mar 7 2011 Todd Allen <todd.allen@etallen.com>
* cpuid.c: Added some decoding for VIA 0xc0000002 codes, based on
information from Juerg Haefliger. Very incomplete because VIA
doesn't document their functions well.
* cpuid.c: Fixed output of 0xc0000001 raw dump to conform to new style.
Sat Mar 5 2011 Todd Allen <todd.allen@etallen.com>
* Made new release.
Fri Mar 4 2011 Todd Allen <todd.allen@etallen.com>
* cpuid.c,cpuid.man: Added Celeron T1000 series, previously missing.
* cpuid.c,cpuid.man: Added Celeron Mobile P4000, U3000 series.
* cpuid.c,cpuid.man: Added current Sandy Bridge processors.
Thu Mar 3 2011 Todd Allen <todd.allen@etallen.com>
* cpuid.c: Added detection of PCIDs & TSC-DEADLINE.
* cpuid.c: Verified Mike Stroyan CPUID 2 cache meanings from Intel CPUID
document (241618-037). Added 0x76 meaning.
* cpuid.c: Added various new flags from Intel 241618-037.
* cpuid.c,cpuid.man: Added AMD family 14h processors.
* cpuid.c,cpuid.man: Updated Intel process id table, mostly as just
generalizations.
Tue Nov 9 2010 Todd Allen <todd.allen@etallen.com>
* cpuid.c: Update the usage() screen, since some of its -i and -1
comments are incorrect now.
Mon Oct 4 2010 Todd Allen <todd.allen@etallen.com>
* cpuid.c, cpuid.man: Added AMD Geode LX.
* cpuid.c: Added NSC Geode GX2 and AMD Geode GX.
* cpuid.c, cpuid.man: Added AMD Geode NX.
Sat Oct 2 2010 Todd Allen <todd.allen@etallen.com>
* Made new release.
* cpuid.c,cpuid.man: Added Intel Atom N500.
Thu Sep 30 2010 Todd Allen <todd.allen@etallen.com>
* cpuid.c,cpuid.man: Added support for Intel Tolapai (SoC).
* cpuid.c,cpuid.man: Added support for Intel Clarkdale chips from
specification update 323179.
* cpuid.c: Generalized decode_amd_model by adding full brand tables for
AMD chips. If a BIOS doesn't recognize a chip it writes
"model unknown" into its brand string via MSR's.
decode_override_brand detects that and uses the decode_amd_model brand
to differentiate CPUs.
* cpuid.c: Corrected 80000001/ebx PkgType, BrandId, and str1 bit fields.
* cpuid.c: Corrected problems with brand field decoding because its bit
field with differs from architecture to architecture.
* cpuid.c: decode_amd_model: the partialmodel decrement special case
applies only to XF=1,F=15; and not to XF=2,F=15.
Mon Sep 27 2010 Todd Allen <todd.allen@etallen.com>
* cpuid.c: Added support for NSC/AMD Geode GX1.
Wed Sep 8 2010 Todd Allen <todd.allen@etallen.com>
* cpuid.c: Corrected the Transmeta processor revisions, which should've
been in hex instead of octal.
Thu Sep 2 2010 Todd Allen <todd.allen@etallen.com>
* cpuid.c: Added a couple vague steppings for Transmeta Efficeon TM8000
processors. Updated some transmeta bitfields. This is all done
blind, as I have no examples of these chips, little documentation, and
the company is long defunct.
Thu Sep 2 2010 Todd Allen <todd.allen@etallen.com>
* Made new release.
* cpuid.c: Fixed a few header strings that had incorrect function hex
codes or registers.
Wed Sep 1 2010 Todd Allen <todd.allen@etallen.com>
* Made new release.
* cpuid.c: Fixed buffer size in do_file() to be able to read new
raw dumps with ecx information. It needed a couple more characters.
* cpuid.c: Added Celeron M (Yonah D0) & Celeron M (Merom-L1 A1) synth
entries.
* cpuid.c: added Xeon Processor LV (Sossaman D0).
* cpuid.c: Update Itanium chips in the synth tables. Sadly, this all
still is being done blind, as I have no access to any Itanium chips.
* cpuid.c: Wrote an x86_64 counterpart to the assembly code for
bits_needed().
* Makefile, cpuid.proto.spec: Changed to support building for both i386
and x86_64.
Tue Aug 31 2010 Todd Allen <todd.allen@etallen.com>
* Made new release.
* cpuid.c: Rearranged synth rules and substantially simplified query
macros into something like the form I was hoping for when I started
this redesign.
* cpuid.c: Added changes from the new AMD CPUID document that claims to
have been released in September 2010!
* cpuid.c: Changed raw dump to include %ecx values to accomodate CPUID
functions with gaps in the useful %ecx range (e.g. 0xd). The file
parser accepts either the old or new forms.
* Makefile, cpuid.proto.spec: Updated build scheme for my current
systems.
* LICENSE: Changed to a GPL license.
Mon Aug 30 2010 Todd Allen <todd.allen@etallen.com>
* cpuid.c: Semi-mechanically eliminated the codes used to
disambiguate in the synth string and replaced them with queries,
which I think will be more general-purpose and will allow me to
eliminate a lot of the problem with codes appropriate for one
model being a problem for subsequent models (e.g. the Core Solo
vs. Core Duo distinction). There still are general-purpose
queries like there were general-purpose codes, but the
special-case queries will only matter for those families that
care about them. This does mean that it's possible for multiple
queries to register as true, so I have to be more careful with
the order of chips in the synth tables.
Fri Aug 27 2010 Todd Allen <todd.allen@etallen.com>
* Tested on a variety of CPUs.
* cpuid.c: Corrected Mobile Turion checking in decode_brand.
* cpuid.c: Added synth entries for 6/15/4 pre-production
Conroe B0/Woodcrest B0.
* cpuid.c: Added synth entries for Santa Rosa F3 stepping
(undocumented).
* cpuid.c: Fixed synth entries for Brisbane, Toledo, and Windsor to
expect code DA (for dual-core Athlons).
* cpuid.c: Generalized the check for Intel Extreme Edition chips.
* cpuid.c: Added synth entries Core 2 Quad (Conroe) chips.
* cpuid.c: Added synth entry for VIA 6/13/0 chip. Unfortunately, there
is no documentation and very little anecdotal evidence of this chip,
so the description is vague.
* cpuid.c: Added addition CPUID function 2 cache codes from Mike
Stroyan.
* cpuid.c: Fixed some cut&paste errors that had EAX where it should
have been EBX, as reported by Mike Stroyan
* cpuid.c: Added very short synth table for SiS chips. I found no
documentation on these, so I just have the one case.
* cpuid.c: Fixed the (synth) strings for oddball chips, which suffered
from a cut&paste error.
* cpuid.c: Simplified some of the fallback strings that had grown
ridiculously long.
Thu Aug 26 2010 Todd Allen <todd.allen@etallen.com>
* Tested on a variety of CPUs.
* cpuid.c: Added more logic for Woodcrest pre-production chips.
* cpuid.c: Corrected synth logic for VIA Antaur chips.
* cpuid.c: Added synth for plain vanilla Thoroughbred Athlon.
Wed Aug 25 2010 Todd Allen <todd.allen@etallen.com>
* Tested on a variety of CPUs.
* cpuid.c: Fixed a couple bugs with decoding processor numbers in
print_synth_amd_model.
Tue Aug 24 2010 Todd Allen <todd.allen@etallen.com>
* cpuid.c: Further changes to mp_synth decoding, including tracking
of the decoding method used (there are around 4 major approaches,
depending on how you count).
* cpuid.c: Added apic_synth decoding to find the appropriate field
widths and decode the process local APIC physical ID. This is useful
in its own right, but also helps convince me that many Intel chips
really do claim to have hyperthreads even though they don't.
* cpuid.c: Added support for direct instruction (-i) functionality to
report on all CPUs by calling sched_setaffinity to reschedule the
process on each CPU. This is now the default behavior for -i, but
it can be overridden with the -1 option.
* cpuid.c: added Barcelona B1 (undocumented chip) synth decoding.
Mon Aug 23 2010 Todd Allen <todd.allen@etallen.com>
* cpuid.c: Made real_get pass the requested ecx values even when
using -k. Modern linux kernel expect the ecx values in the upper
32 bits of the file offset (i.e. lseek64).
* cpuid.c: Worked out a fallback for determining mp_synth information
for Intel chips which lack CPUID function 4.
* cpuid.c: Added mechanism for determining mp_synth information from
CPUID function 11 information if it's available (because if it's
present on Intel chips, it's the only reliable way; the older
mechanisms return gibberish).
Fri Aug 20 2010 Todd Allen <todd.allen@etallen.com>
* cpuid.c, cpuid.man: Added to synth even more Nehalem chips.
* cpuid.c: Added 6/15 model for VIA Nano, but there's very little
detailed information on this chip, so that's it.
* cpuid.c: Corrected some AMD codename confusion from 2006:
Dublin->ClawHammer/Odessa, Sonora->Dublin,
Palermo(mobile)->Georgetown/Sonora, Lancaster->Lancaster/Richmond,
Richmond->Taylor/Trinidad.
* cpuid.c: Overhauled the AMD model dumping code to understand new
families.
* cpuid.c: Tweaked decode_mp_synth to use ApicIdCoreIdSize, per AMD's
CPUID recommendations.
Thu Aug 19 2010 Todd Allen <todd.allen@etallen.com>
* cpuid.c, cpuid.man: Updated synth tables for Intel Xeons.
* cpuid.c: Removed all the "How to distinguish" comments, since
it seems to be very common for Intel to have indistinguishable
processors nowadays (the old cache-checking tricks are unreliable
now).
* cpuid.c, cpuid.man: Added to synth additional Nehalem chips as I'm
able to hunt them down.
Wed Aug 18 2010 Todd Allen <todd.allen@etallen.com>
* cpuid.c, cpuid.man: Updated synth tables for Intel Core 2, Atom,
Celeron, and Pentium chips based on the same cores.
Tue Aug 17 2010 Todd Allen <todd.allen@etallen.com>
* cpuid.c, cpuid.man: Updated synth tables for AMD family 10h (K10)
and family 11h processors.
* cpuid.c: simplified print_x_synth_amd by pruning its table down to
just the three families that differ from normal 1/eax simple synth,
and falling back on 1/eax simple synth otherwise.
Mon Aug 16 2010 Todd Allen <todd.allen@etallen.com>
* cpuid.c: Added new steppings to synth tables using latest spec
updates for all AMD processor families already in them.
* cpuid.c, cpuid.man: Updated synth tables for AMD family 0Fh (K8)
processors.
Fri Aug 13 2010 Todd Allen <todd.allen@etallen.com>
* cpuid.c: Updated raw data dump based on latest CPUID documentation
from Intel & AMD.
* cpuid.c: Fixed dump of function 4 to iterate over all caches.
Thu Aug 12 2010 Todd Allen <todd.allen@etallen.com>
* cpuid.c: Reorganized synth tables to always use extended family
and extended model numbers since they are so prevalent on modern
chips.
* cpuid.c: Added new steppings to synth tables using latest spec
updates for all Intel processor families already in them.
Sun Nov 26 2006 Todd Allen <todd.allen@etallen.com>
* cpuid.c: Recognize Intel Core 2 Extreme Edition from brand string.
Thanks to Tony Freitas for explaining that Ennnn means desktop while
Xnnnn means Extreme Edition for those processors.
Wed Nov 22 2006 Todd Allen <todd.allen@etallen.com>
* cpuid.c: Recognize Itanium2 Montecito C2.
* cpuid.c: Recognize Intel Core 2 Duo Mobile (Conroe B2).
* cpuid.c: Recognize Intel Quad-Core Xeon Processor 5300 (Woodcrest B3)
and Intel Core 2 Extreme Quad-Core Processor QX6700 (Woodcrest B3).
* cpuid.c: Recognize Intel Celeron D Processor 36x (Cedar Mill D0).
* cpuid.c: Distinguish Core 2 Duo from Core 2 Extreme Edition based on
presence or absence of hyperthreading. Thanks to Tony Seacow for
providing output for numerous processors and the advice about
hyperthreading.
Thu Nov 2 2006 Todd Allen <todd.allen@etallen.com>
* cpuid.c: Changed "number of logical CPU cores - 1" to "number of CPU
cores - 1".
Sun Sep 17 2006 Todd Allen <todd.allen@etallen.com>
* Made new release.
* cpuid.c: Made the cpuid instruction (-i, --inst options) the default.
* cpuid.c: Added -k, --kernel option to cause the kernel module to be
used.
* cpuid.c: Removed confusing CPU number from output when using
the cpuid instruction.
* cpuid.man: Updated with new options.
* cpuid.c, Makefile: Changed i386 _llseek kludge to workaround
offsets >= 0x80000000. Now using -D_FILE_OFFSET_BITS=64 in the
Makefile instead. This should allow the i386 cpuid to work on
an x86_64 system.
* cpuid.c: Added knowledge of CPU modules to synthesized field: Tulsa,
Woodcrest B1 (pre-production)
* cpuid.c: In synthesized model field, properly distinguish between
Intel Pentium D Processor 8x0 and Intel Pentium Extreme Edition
Processor 840 (both Smithfields).
* cpuid.man: Added mention of new 7100 series spec updates.
* cpuid.spec: Changed Copyright to License.
Thu Aug 23 2006 Todd Allen <todd.allen@etallen.com>
* cpuid.c: Removed unnecessary one_cpu argument from do_file.
* cpuid.c: Added -v option to display version number.
Wed Aug 23 2006 Todd Allen <todd.allen@etallen.com>
* Made new release.
Tue Aug 22 2006 Todd Allen <todd.allen@etallen.com>
* cpuid.c, cpuid.man: Added -i option to use the CPUID instruction
directly instead of the CPUID kernel module.
* cpuid.c: Change Pentium Processor 9x0 to 9xx because of 9x5
processors.
* cpuid.man: Updated information about determining synthesized model
information, and added information about determining synthesized
multiprocessor information.
Mon Aug 7 2006 Todd Allen <todd.allen@etallen.com>
* cpuid.proto.spec: Change URL to cpuid-specific page.
Sun Aug 6 2006 Todd Allen <todd.allen@etallen.com>
* Made new release.
Sat Aug 5 2006 Todd Allen <todd.allen@etallen.com>
* cpuid.c: Added support for differentiating Core 2 Duo CPUs from Xeon
5100 CPUs based on the brand string.
* cpuid.c: Clarified that CPUID 4 ECX contains one less than the
number of sets.
* cpuid.c: Added support for CPUID 5 ecx & edx.
* cpuid.c: Added support for CPUID 6 ecx.
* cpuid.c: Added support for CPUID 0xa eax & ebx.
* cpuid.c: Made CPUID functions 7, 8, and 9 reserved (i.e. say nothing
until and unless they are defined).
* cpuid.c: Corrected CPUID 1 ecx xTPR disabnle.
Wed Aug 2 2006 Todd Allen <todd.allen@etallen.com>
* cpuid.c: Corrected bug with Core 2 Duo recognition.
* cpuid.c: Distinguish between Allendale and Conroe cores based on
L2 cache size.
* cpuid.c: Added VIA C7 & C7-M names to Esther WinChip C5J core CPUs.
* cpuid.man: Mention wikipedia pages for CPUs.
Tue Aug 1 2006 Todd Allen <todd.allen@etallen.com>
* cpuid.c: On help screen, clarified that -f option reads output from
-r option.
* cpuid.proto.spec: Used %{} macros for external command invocations.
Mon Jul 31 2006 Todd Allen <todd.allen@etallen.com>
* Makefile: Removed install -o 0 -g 0 options. For installations
from the tarball, the user will have to be root anyway. And for
rpm, the %defattr() attribute in the spec is handling this more
cleanly. Finally, those options are causing some non-root
installations to have to be done by the root user, which is
undesirable.
* cpuid.c: Improved identification for VIA C3 (Samuel WinChip C5A core).
* cpuid.c: Loosened up check for "Mobile AMD Athlon(tm) XP" by
removing "-M" suffix.
* cpuid.c: Recognize mobile Athlon XP (Thoroughbred).
Sun Jul 30 2006 Todd Allen <todd.allen@etallen.com>
* Made new release.
* cpuid.c: Fixed "deterministic cache parameters (4)", so that its
children aren't staggered.
* cpuid.c: Corrected Venice and Palermo processors with DH-E3 and
DH-E6 steppings that had been reported as Toledo processors
incorrectly.
* cpuid.c: Corrected codename for the Athlon Thoroughbred's Duron
counterpart: Applebred.
* cpuid.c: Added code to distinguish Athlon XP Thortons from Bartons,
based on L2 cache size.
* cpuid.c: Added code to distinguish Athlon 64 X2 Manchester E6 from
Athlon 64 X2 Toledo.
* cpuid.c: Added Celeron Yonah C0.
* cpuid.c: Added Core Yonah D0.
* cpuid.c: Added Xeon Nocona R0 / Irwindale R0 stepping.
* cpuid.c: Added Pentium 4 Cedar Mill C1, Pentium D Presler C1, and
Xeon Dempsey C1.
* cpuid.c: Added Xeon Woodcrest B2.
* cpuid.c: Added Core 2 Conroe B1 & B2 & Core 2 Extreme Processor B1 &
B2.
* cpuid.c: Updated Itanium2 processors.
* cpuid.man: Added Intel specification updates for new CPUs.
Wed Jul 26 2006 Todd Allen <todd.allen@etallen.com>
* cpuid.c: In decode_brand, added check for "Athlon(TM) XP", equivalent
to "Athlon(tm) XP".
* cpuid.c: Fixed "80000002" typo in print_80860002_eax().
Mon Jul 24 2006 Todd Allen <todd.allen@etallen.com>
* cpuid.c: Distinguish properly between Core Solo, Core Duo, and
Xeon Processor LV. Reorganized multi-processor decoding to
support that.
Sun Jul 23 2006 Todd Allen <todd.allen@etallen.com>
* cpuid.c: Fixed emission of raw values for cpuid code 2.
* cpuid.c: Added -f file option to read raw hexadecimal input from a
file and parse it instead of executing the cpuid instruction, and
code reorganization to support this.
Mon May 22 2006 Todd Allen <todd.allen@etallen.com>
* cpuid.c: Fixed "unrecogninzed" typo in error.
Fri Apr 7 2006 Todd Allen <todd.allen@etallen.com>
* cpuid.proto.spec: Added %defattr so that the files in the rpm's are
owned by "root" and not "todd". (Why did no one scream bloody murder
about this before?)
Mon Apr 3 2006 Todd Allen <todd.allen@etallen.com>
* Made new release.
* cpuid.c: Added code to distinguish between the two different Dual-Core
Xeon (Paxville A0) and Dual-Core Xeon Processor 7000 (Paxville A0).
Empirically, the significant differences are the VMX flag and the
"execution disable" flag. The VMX flag is in an Intel-defined
CPUID function, so it's used. Thanks to Jason Nicholls for providing
the Dual-Core Xeon (Paxville A0) output that made this possible.
* cpuid.c: Added detection for Xeon Processor LV (Sossaman C0).
Mon Mar 13 2006 Todd Allen <todd.allen@etallen.com>
* Made new release.
* cpuid.c: Fixed code that distinguished processors based on
presence or absence of L3 cache. Some of the cache codes weren't
being recognized as L3 cache.
Sun Feb 26 2006 Todd Allen <todd.allen@etallen.com>
* Made new release.
Wed Feb 22 2006 Todd Allen <todd.allen@etallen.com>
* cpuid.c: Added VMX: virtual machine extensions to CPUID function 1,
register ecx.
* cpuid.c: Added SVM LBR virtualization to CPUID function 8000000a,
register edx.
* cpuid.c: Fixed cut & paste header error in print_8000000a_eax.
Tue Feb 21 2006 Todd Allen <todd.allen@etallen.com>
* cpuid.c: Renamed "hyper-threading technology" field to
"hyper-threading / multi-core supported" to eliminate some confusing
situations, such as Northwood chips which nominally support hyper-
threading, but where it is disabled in the chip; or where hyper-
threading is disabled in the BIOS; or AMD multi-core chips, which
indicate TRUE here, but all of which lack hyper-threading at present.
* cpuid.c: Updated family 15 description, which had grown very stale.
* cpuid.c: Generalized Intel Pentium D Processor 900 to 9x0.
* cpuid.c: Added Processor Number info to Smithfield processors.
Wed Feb 8 2006 Todd Allen <todd.allen@etallen.com>
* Made new release.
* cpuid.c: Use defined(i386) instead of __LONG_MAX__ to determine
whether or not it's necessary to use _llseek(). Fixes handling of
functions >= 2**31 on some build systems, like the one I used to
build the binary rpm. (D'oh!) And also indirectly affects the
(synth) field.
* cpuid.c: Fix a busted error check in read_reg() that caused it to
return success if the read() failed and quiet was true.
* LICENSE: Created LICENSE file (using content straight out of the
man page).
Tue Feb 7 2006 Todd Allen <todd.allen@etallen.com>
* Made new release.
* cpuid.c: Correctly distinguish Egypt/Italy processors.
* cpuid.c: Fixed minor problems in error checking in open_file().
* cpuid.spec: Fixed bad Packager field.
* cpuid.spec: Include ChangeLog.
* cpuid.man: Added -r/--raw description.
* cpuid.man: Clarified info used for (synth) field.
* cpuid.man: Fixed version number & date.
* Makefile: Reworked to make it easy for people other than me to build
and install.
* cpuid.spec: Used new Makefile organization
* Makefile: Fixed production of spec file so that it's possible to
rebuild with the srpm without having to specify %version and
%release.
Mon Feb 6 2006 Todd Allen <todd.allen@etallen.com>
* Initial public release.
|