new cpuid bits
Andriy Gapon
avg at freebsd.org
Fri Nov 19 15:56:54 UTC 2010
Guys,
I would like to add definitions for couple more useful CPUID bits, but I am
greatly confused about how to name them.
I failed to deduce the naming convention from the existing definitions and I am
not sure how to make the names proper and descriptive.
The bits in question are returned by CPUID.6 in EAX and ECX.
CPUID.6 block is described by both AMD and Intel as "Thermal and Power Management
(Leaf)". Bits in EAX are defined only for Intel at present, the bit in ECX is
defined for both.
Description/naming of the bits from the specifications:
EAX[0]: Digital temperature sensor is supported if set
EAX[1]: Intel Turbo Boost Technology Available
EAX[2]: ARAT. APIC-Timer-always-running feature is supported if set.
ECX[0]:
Intel: Hardware Coordination Feedback Capability (Presence of Bits MCNT and ACNT
MSRs).
AMD: EffFreq: effective frequency interface.
How does the following look to you?
I will appreciate suggestions/comments.
Thanks!
Index: sys/amd64/include/specialreg.h
===================================================================
--- sys/amd64/include/specialreg.h (revision 215524)
+++ sys/amd64/include/specialreg.h (working copy)
@@ -136,6 +136,15 @@
#define CPUID2_AESNI 0x02000000
/*
+ * Important bits in the Thermal and Power Management flags
+ * CPUID.6 EAX and ECX.
+ */
+#define CPUTPM1_SENSOR 0x00000001
+#define CPUTPM1_TURBO 0x00000002
+#define CPUTPM1_ARAT 0x00000004
+#define CPUTPM2_EFFREQ 0x00000001
+
+/*
* Important bits in the AMD extended cpuid flags
*/
#define AMDID_SYSCALL 0x00000800
--
Andriy Gapon
More information about the freebsd-hackers
mailing list