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.