Version 0.1.0 (2008-10-15): * Initial public release Version 0.1.1 (2009-07-06): * Added intel_fn11 fields to cpu_raw_data_t to handle new processor topology enumeration required on Core i7 * Support for Intel Nehalem architecture CPUs (Core i7, Xeon i7) Version 0.1.2 (2009-09-26): * Added support for MSR reading through self-extracting kernel driver on Win32. Version 0.1.3 (2010-04-20): * Added support for greater more accurate CPU clock measurements with cpu_clock_by_ic() Version 0.2.0 (2011-10-11): * Support for AMD Bulldozer CPUs, 128-bit SSE unit size checking. A backwards-incompatible change, since the sizeof cpu_id_t is now different. Version 0.2.1 (2012-05-26): * Support for Ivy Bridge, and detecting the presence of the RdRand instruction. Version 0.2.2 (2015-11-04): * Support for newer processors up to Haswell and Vishera * Fix clock detection in cpu_clock_by_ic() for Bulldozer * Support for detection of AVX/AVX2/BMI1/BMI2 * More entries supported in cpu_msrinfo() * Rename of some CPU codenames, made more consistent * *BSD and Solaris support (unofficial) Version 0.3.0 (2016-07-09): * A backwards-incompatible change, since the sizeof cpu_raw_data_t and cpu_id_t are now different. * Support for processors up to Skylake. * Fix clock detection in cpu_clock_by_ic() for Skylake. * Support up to 8 subleaf entries for CPUID leaf 04 and detection of L4 cache. * MSR functions supported on FreeBSD. * INFO_VOLTAGE request supported by cpu_msrinfo(). Version 0.4.0 (2016-09-30): * A backwards-incompatible change, since the sizeof cpu_raw_data_t and cpu_id_t are now different. * Better detection of AMD clock multiplier with msrinfo. * Support for Intel SGX detection Version 0.4.1 (2019-02-05): * Better support for Skylake Core i5 (#76) * Misdiagnosis microarchitecture for i3-3220T (#81) * Ability to dump MSR values to a file (PR #82) * AMD Ryzen support (#86) * Support for Coffee and Kaby Lake (#104) * Support for Raven Ridge and Threadripper (#106) * Support for Pinnacle Ridge (#111) * Fix P-III Celeron misdetection * Support for Skylake-X (#116) * Support for Zen+ Threadripper Version 0.5.0 (2020-05-23): * A backwards-incompatible change, since the sizeof cpu_raw_data_t and cpu_id_t are now different. * Support for Hygon Dhyana (#123) * Support for Zen 2 (#125, #137) * Stubs for AArch64 (#127) * Support for Intel AVX512VNNI detection (#129) * Typo fixes (#130) * Support for get_total_cpus on Haiku (#131) * Fix build on PPC (#132) * Support for CMake build system (#138) and vcpkg packaging (#140) * Support for Cannon Lake * Support for Coffee Lake-U and Coffee Lake Refresh * Support for Comet Lake * Support for Ice Lake * Support for Renoir * Fix ThreadSanitizer report (#142) * Better support of L1 intruction cache (--l1i-assoc, --l1i-cacheline) * Support for Ivy Bridge-E (Xeon) * Support up to 4 subleaf entries for CPUID leaf 0x8000001D and fix detection of L3 cache on Zen 2 * Support for RDSEED/ADX/SHA_NI detection (AMD) * Support for ABM/AVX512VBMI/AVX512VBMI2 detection (Intel) Version 0.5.1 (2021-03-20): * Convert all python scripts to Python 3 * Support for Kaby Lake Refresh * Support for Kaby Lake-G * Support for Comet Lake-U * Support for Gemini Lake * Support for Vermeer * Support for Whiskey Lake-U * Support for Cezanne * Support for Milan * Support for Rocket Lake Version 0.6.0 (2022-09-23): * Support for Intel Tiger Lake * CPU Family/Model is used as Ext.Family/Model * Use popcount64 from libc when available (#152) * Reduce minimum CMake requirement 3.14 to 3.13 * Do not link with msrdriver.c on non-Windows platform (#159) * Report memory allocation failures without making a segmentation fault (#160) * Support for AMD Lucienne * Support for AMD Rembrandt * Support for AMD Warhol * Remove Debian package from source tree (#165) * Fix build under Clang 15 (#167) * Support for AMD Athlon Godavari * Support for hybrid CPU like Intel Alder Lake (#166) * Detect presence of hypervisor (#169) * Decode deterministic cache info for AMD CPUs (#168) * Add cache instances field in cpu_id_t and system_id_t (#168) * Support AMD Bald Eagle * Support for more AMD Godavari (Athlon) * Rename AMD Bulldozer to Zambezi * Support for AMD Interlagos * Support for AMD Abu Dhabi * Support for AMD Beema * Support for AMD Steppe Eagle * Support for more AMD Kabini (Sempron + Athlon) * Improve msr_serialize_raw_data() * Support for AMD Zen 2 custom APU for Steam Deck Version 0.6.1 (2022-10-23): * Support for AMD Raphael * Support for AMD Dali * Support for AMD Van Gogh * Fix stuck cpuid_tool due to set_cpu_affinity() on Windows (#172) * Remove AMD Warhol from DB (Zen3+ cancelled) * Fix physical core count computed by cpu_identify_all() when HT is disabled (#175) * Fix shared library symlinks with CMake (#174) * Support for Intel Raptor Lake-S Version 0.6.2 (2022-11-11): * Fix segmentation fault in cpu_identify_all() for single-core CPUs * Support for Intel Penryn L * Support for Intel Tremont * Support for AMD Mendocino * Support for Intel Ice Lake (Xeon-D) * Support for AMD Zen 2 Desktop Kit CPUs (4700S + 4800S) * Support for AMD Athlon 64 Sherman Version 0.6.3 (2023-04-02): * Support for Intel Pentium and Celeron for Alder Lake-S * Support for Intel Alder Lake-HX * Support for Intel Alder Lake-X * Fix detection of Intel Alder Lake-P * Fix infinite loop in set_cpu_affinity() on macOS * Fix a misprint of extended CPUID in cpuid_basic_identify() * Restore previous thread CPU affinity before returning from cpuid_get_all_raw_data() (#184) * Query CPU info at least once even if set_cpu_affinity() fails * Support for AMD 19h family MSRs * Fix detection of Intel Core i5 Lynnfield * Rename set_error() to cpuid_set_error() and get_error() to cpuid_get_error() (#188) * Support for Intel Alder Lake-N * Support for AMD Rembrandt with Radeon Graphics * Support for Intel Raptor Lake-S with "Golden Cove" cores * Support for Intel Raptor Lake-P * Support for Intel Raptor Lake-U * Support for Intel Rocket Lake-E Version 0.6.4 (2023-10-08): * Support for AMD Genoa * Support for Intel Sapphire Rapids-WS * Support for Intel Skylake (server) * Support for Intel Cascade Lake * Support for Intel Ice-Lake (server) * Support for Intel Sapphire Rapids-SP * Improve support for Intel Arrandale (Pentium and Celeron) * Fix support for Intel Sandy Bridge-E (Core i7) * Support for AMD Phoenix * Support for Intel Raptor Lake-H/HX * Improve support for Intel Alder-Lake and Raptor-Lake P/U * Fix floating point exception in cpu_identify_all() for unsupported CPU vendor * Initial support for Centaur CPUs (VIA and Zhaoxin) * Support for Intel Apollo Lake * Fix build for NetBSD and DragonFly BSD (#190) * Support for AMD Dragon Range * Support for AMD Ryzen Z1 Version 0.6.5 (2024-04-28): * Support for Intel Bay Trail-M * Support for Intel Bay Trail-T * Support for Intel Bay Trail-D * Support for AMD Storm Peak * Support for Intel Raport Lake Refresh * Support heterogeneous RAW dumps in cpu_identify_all() * Support for Intel Meteor Lake, including detection of LP E-Cores * Support for Intel Emerald Rapids-SP * Support for more AMD Van Gogh Version 0.7.0 (2024-08-26): * Fix handle leaks in rdmsr.c (#199) * Fix cpuid_get_hypervisor when NULL data is provided (#199) * Prevent intel_fn11 array overruns (#199) * Support for AMD Hawk Point * Support for more AMD Phoenix (8000 series) * Add cpu_clock_by_tsc() function to the library (#124) * Check x86 CPUs MSR support (#185) * Add support for ARM CPUs (AArch32 + AArch64) (#200) * Add cpu_feature_level_t enumerated values for x86 CPUs (#177) * Support up to 4 subleaf entries for CPUID leaf 0x80000026 (#189) * Support for Extended CPU topology subleaf in cpuid_identify_purpose_amd() (#189) * Support CPU purpose for AMD x86 CPUs (#189) * Add cpuid Linux and FreeBSD kernel modules for ARM CPUs * Improve errors handling in cpuid_get_all_raw_data() and cpuid_get_raw_data_core() (#202) * Support get_total_cpus() on DragonFly BSD * Improve set_cpu_affinity() on NetBSD * Fix build on OpenBSD * Improve behavior when CPU affinity cannot be set * Fix a regression in cpuid_tool about arguments doing nothing (like --rdmsr or --cpuid) * Fix a segmentation fault when using --quiet in cpuid_tool * Improve error handling in cpu_identify_all() * Add Python bindings (#197) * Support for AMD Granite Ridge * Support for AMD Strix Point * Detect x2APIC and AVX512 features for AMD x86 CPUs Version 0.7.1 (2024-11-30): * Fix cpuid kernel module build on ARM * Return ERR_NO_CPUID when cpuid kernel module cannot be used on AArch32 state * Refactor the build of the bindings (#203) * Fix build error on AArch64 when HWCAP_CPUID is not defined (#205) * Fix build on Windows ARM with MSVC (206) * Fix detection of Intel Meteor Lake * Support for Intel Arrow Lake * Support for AMD Turin