]> git.proxmox.com Git - mirror_edk2.git/commitdiff
UefiCpuPkg/Msr: Add CPUID signature check MACROs
authorJeff Fan <jeff.fan@intel.com>
Tue, 7 Mar 2017 03:14:35 +0000 (11:14 +0800)
committerJeff Fan <jeff.fan@intel.com>
Wed, 22 Mar 2017 02:11:34 +0000 (10:11 +0800)
All model-specific MSRs are related to processor signatures that are defined in
each section in Chapter 35 Model-Specific-Registers (MSR), Intel(R) 64 and
IA-32 Architectures Software Developer's Manual, Volume 3, September 2016.

Cc: Feng Tian <feng.tian@intel.com>
Cc: Michael Kinney <michael.d.kinney@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jeff Fan <jeff.fan@intel.com>
Reviewed-by: Feng Tian <feng.tian@intel.com>
20 files changed:
UefiCpuPkg/Include/Register/Msr/AtomMsr.h
UefiCpuPkg/Include/Register/Msr/BroadwellMsr.h
UefiCpuPkg/Include/Register/Msr/Core2Msr.h
UefiCpuPkg/Include/Register/Msr/CoreMsr.h
UefiCpuPkg/Include/Register/Msr/GoldmontMsr.h
UefiCpuPkg/Include/Register/Msr/HaswellEMsr.h
UefiCpuPkg/Include/Register/Msr/HaswellMsr.h
UefiCpuPkg/Include/Register/Msr/IvyBridgeMsr.h
UefiCpuPkg/Include/Register/Msr/NehalemMsr.h
UefiCpuPkg/Include/Register/Msr/P6Msr.h
UefiCpuPkg/Include/Register/Msr/Pentium4Msr.h
UefiCpuPkg/Include/Register/Msr/PentiumMMsr.h
UefiCpuPkg/Include/Register/Msr/PentiumMsr.h
UefiCpuPkg/Include/Register/Msr/SandyBridgeMsr.h
UefiCpuPkg/Include/Register/Msr/SilvermontMsr.h
UefiCpuPkg/Include/Register/Msr/SkylakeMsr.h
UefiCpuPkg/Include/Register/Msr/Xeon5600Msr.h
UefiCpuPkg/Include/Register/Msr/XeonDMsr.h
UefiCpuPkg/Include/Register/Msr/XeonE7Msr.h
UefiCpuPkg/Include/Register/Msr/XeonPhiMsr.h

index c314195820aa0526a7f3af770282a308c01d7291..b2764690f55b47a4cb13dd1d9ec338697d9d65e1 100644 (file)
@@ -6,7 +6,7 @@
   returned is a single 32-bit or 64-bit value, then a data structure is not\r
   provided for that MSR.\r
 \r
-  Copyright (c) 2016, Intel Corporation. All rights reserved.<BR>\r
+  Copyright (c) 2016 - 2017, Intel Corporation. All rights reserved.<BR>\r
   This program and the accompanying materials\r
   are licensed and made available under the terms and conditions of the BSD License\r
   which accompanies this distribution.  The full text of the license may be found at\r
 \r
 #include <Register/ArchitecturalMsr.h>\r
 \r
+/**\r
+  Is Intel(R) Atom(TM) Processor Family?\r
+\r
+  @param   DisplayFamily  Display Family ID\r
+  @param   DisplayModel   Display Model ID\r
+\r
+  @retval  TRUE   Yes, it is.\r
+  @retval  FALSE  No, it isn't.\r
+**/\r
+#define IS_ATOM_PROCESSOR(DisplayFamily, DisplayModel) \\r
+  (DisplayFamily == 0x06 && \\r
+   (                        \\r
+    DisplayModel == 0x1C || \\r
+    DisplayModel == 0x26 || \\r
+    DisplayModel == 0x27 || \\r
+    DisplayModel == 0x35 || \\r
+    DisplayModel == 0x36    \\r
+    )                       \\r
+   )\r
+\r
 /**\r
   Shared. Model Specific Platform ID (R).\r
 \r
index 1c3c2dc474838b341633e925b8e45ffce8a62238..90bd523c99e6b57c66e1b7cc26dbb7287de5512b 100644 (file)
@@ -6,7 +6,7 @@
   returned is a single 32-bit or 64-bit value, then a data structure is not\r
   provided for that MSR.\r
 \r
-  Copyright (c) 2016, Intel Corporation. All rights reserved.<BR>\r
+  Copyright (c) 2016 - 2017, Intel Corporation. All rights reserved.<BR>\r
   This program and the accompanying materials\r
   are licensed and made available under the terms and conditions of the BSD License\r
   which accompanies this distribution.  The full text of the license may be found at\r
 \r
 #include <Register/ArchitecturalMsr.h>\r
 \r
+/**\r
+  Is Intel processors based on the Broadwell microarchitecture?\r
+\r
+  @param   DisplayFamily  Display Family ID\r
+  @param   DisplayModel   Display Model ID\r
+\r
+  @retval  TRUE   Yes, it is.\r
+  @retval  FALSE  No, it isn't.\r
+**/\r
+#define IS_BROADWELL_PROCESSOR(DisplayFamily, DisplayModel) \\r
+  (DisplayFamily == 0x06 && \\r
+   (                        \\r
+    DisplayModel == 0x3D || \\r
+    DisplayModel == 0x47 || \\r
+    DisplayModel == 0x4F || \\r
+    DisplayModel == 0x56    \\r
+    )                       \\r
+   )\r
+\r
 /**\r
   Thread. See Table 35-2. See Section 18.4.2, "Global Counter Control\r
   Facilities.".\r
index 9f0e7900c9c777782a22ea7e3f4672d4843e0a93..9ebca5e9b52ec67c0be25fe9ac9045b1ba88ae74 100644 (file)
@@ -6,7 +6,7 @@
   returned is a single 32-bit or 64-bit value, then a data structure is not\r
   provided for that MSR.\r
 \r
-  Copyright (c) 2016, Intel Corporation. All rights reserved.<BR>\r
+  Copyright (c) 2016 - 2017, Intel Corporation. All rights reserved.<BR>\r
   This program and the accompanying materials\r
   are licensed and made available under the terms and conditions of the BSD License\r
   which accompanies this distribution.  The full text of the license may be found at\r
 \r
 #include <Register/ArchitecturalMsr.h>\r
 \r
+/**\r
+  Is Intel(R) Core(TM) 2 Processor Family?\r
+\r
+  @param   DisplayFamily  Display Family ID\r
+  @param   DisplayModel   Display Model ID\r
+\r
+  @retval  TRUE   Yes, it is.\r
+  @retval  FALSE  No, it isn't.\r
+**/\r
+#define IS_CORE2_PROCESSOR(DisplayFamily, DisplayModel) \\r
+  (DisplayFamily == 0x06 && \\r
+   (                        \\r
+    DisplayModel == 0x0F || \\r
+    DisplayModel == 0x17    \\r
+    )                       \\r
+   )\r
+\r
 /**\r
   Shared. Model Specific Platform ID (R).\r
 \r
index 0902aa94d4b3823b57026e69aa5e09323aa20f41..4897c74d5adde06815c7aa9d7a95865fa75b330e 100644 (file)
@@ -6,7 +6,7 @@
   returned is a single 32-bit or 64-bit value, then a data structure is not\r
   provided for that MSR.\r
 \r
-  Copyright (c) 2016, Intel Corporation. All rights reserved.<BR>\r
+  Copyright (c) 2016 - 2017, Intel Corporation. All rights reserved.<BR>\r
   This program and the accompanying materials\r
   are licensed and made available under the terms and conditions of the BSD License\r
   which accompanies this distribution.  The full text of the license may be found at\r
 \r
 #include <Register/ArchitecturalMsr.h>\r
 \r
+/**\r
+  Is Intel Core Solo and Intel Core Duo Processors?\r
+\r
+  @param   DisplayFamily  Display Family ID\r
+  @param   DisplayModel   Display Model ID\r
+\r
+  @retval  TRUE   Yes, it is.\r
+  @retval  FALSE  No, it isn't.\r
+**/\r
+#define IS_CORE_PROCESSOR(DisplayFamily, DisplayModel) \\r
+  (DisplayFamily == 0x06 && \\r
+   ( \\r
+    DisplayModel == 0x0E \\r
+    ) \\r
+   )\r
+\r
 /**\r
   Unique. See Section 35.22, "MSRs in Pentium Processors," and see Table 35-2.\r
 \r
index 58b9c5709a50042a59a28d924d09d5c6765c1345..5730918ec695210b6dc1886f6881fb67f12bbcf4 100644 (file)
@@ -6,7 +6,7 @@
   returned is a single 32-bit or 64-bit value, then a data structure is not\r
   provided for that MSR.\r
 \r
-  Copyright (c) 2016, Intel Corporation. All rights reserved.<BR>\r
+  Copyright (c) 2016 - 2017, Intel Corporation. All rights reserved.<BR>\r
   This program and the accompanying materials\r
   are licensed and made available under the terms and conditions of the BSD License\r
   which accompanies this distribution.  The full text of the license may be found at\r
 \r
 #include <Register/ArchitecturalMsr.h>\r
 \r
+/**\r
+  Is Intel Atom processors based on the Goldmont microarchitecture?\r
+\r
+  @param   DisplayFamily  Display Family ID\r
+  @param   DisplayModel   Display Model ID\r
+\r
+  @retval  TRUE   Yes, it is.\r
+  @retval  FALSE  No, it isn't.\r
+**/\r
+#define IS_GOLDMONT_PROCESSOR(DisplayFamily, DisplayModel) \\r
+  (DisplayFamily == 0x06 && \\r
+   (                        \\r
+    DisplayModel == 0x5C    \\r
+    )                       \\r
+   )\r
+\r
 /**\r
   Core. Control Features in Intel 64Processor (R/W).\r
 \r
index 7b190b51f18c280bc37329fcd83d716d5e858b29..b737a9e4b8b349910bd584316a08ede49c740fe3 100644 (file)
@@ -6,7 +6,7 @@
   returned is a single 32-bit or 64-bit value, then a data structure is not\r
   provided for that MSR.\r
 \r
-  Copyright (c) 2016, Intel Corporation. All rights reserved.<BR>\r
+  Copyright (c) 2016 - 2017, Intel Corporation. All rights reserved.<BR>\r
   This program and the accompanying materials\r
   are licensed and made available under the terms and conditions of the BSD License\r
   which accompanies this distribution.  The full text of the license may be found at\r
 \r
 #include <Register/ArchitecturalMsr.h>\r
 \r
+/**\r
+  Is Intel processors based on the Haswell-E microarchitecture?\r
+\r
+  @param   DisplayFamily  Display Family ID\r
+  @param   DisplayModel   Display Model ID\r
+\r
+  @retval  TRUE   Yes, it is.\r
+  @retval  FALSE  No, it isn't.\r
+**/\r
+#define IS_HASWELL_E_PROCESSOR(DisplayFamily, DisplayModel) \\r
+  (DisplayFamily == 0x06 && \\r
+   (                        \\r
+    DisplayModel == 0x3F    \\r
+    )                       \\r
+   )\r
+\r
 /**\r
   Package. Configured State of Enabled Processor Core Count and Logical\r
   Processor Count (RO) -  After a Power-On RESET, enumerates factory\r
index 8bf2c38a40616dea60d3a6215bdb0d408082bdee..3cd15846b4fd2e19d8eb64d01c5265589faa52f3 100644 (file)
@@ -6,7 +6,7 @@
   returned is a single 32-bit or 64-bit value, then a data structure is not\r
   provided for that MSR.\r
 \r
-  Copyright (c) 2016, Intel Corporation. All rights reserved.<BR>\r
+  Copyright (c) 2016 - 2017, Intel Corporation. All rights reserved.<BR>\r
   This program and the accompanying materials\r
   are licensed and made available under the terms and conditions of the BSD License\r
   which accompanies this distribution.  The full text of the license may be found at\r
 \r
 #include <Register/ArchitecturalMsr.h>\r
 \r
+/**\r
+  Is Intel processors based on the Haswell microarchitecture?\r
+\r
+  @param   DisplayFamily  Display Family ID\r
+  @param   DisplayModel   Display Model ID\r
+\r
+  @retval  TRUE   Yes, it is.\r
+  @retval  FALSE  No, it isn't.\r
+**/\r
+#define IS_HASWELL_PROCESSOR(DisplayFamily, DisplayModel) \\r
+  (DisplayFamily == 0x06 && \\r
+   (                        \\r
+    DisplayModel == 0x3C || \\r
+    DisplayModel == 0x45 || \\r
+    DisplayModel == 0x46    \\r
+    )                       \\r
+   )\r
+\r
 /**\r
   Package.\r
 \r
index 41cbd2ec610f09b9c42c8aafadb92beb8d77eab4..9eb07994ec404654cda36bc9eb19969e0cfcf4e9 100644 (file)
@@ -6,7 +6,7 @@
   returned is a single 32-bit or 64-bit value, then a data structure is not\r
   provided for that MSR.\r
 \r
-  Copyright (c) 2016, Intel Corporation. All rights reserved.<BR>\r
+  Copyright (c) 2016 - 2017, Intel Corporation. All rights reserved.<BR>\r
   This program and the accompanying materials\r
   are licensed and made available under the terms and conditions of the BSD License\r
   which accompanies this distribution.  The full text of the license may be found at\r
 \r
 #include <Register/ArchitecturalMsr.h>\r
 \r
+/**\r
+  Is Intel processors based on the Ivy Bridge microarchitecture?\r
+\r
+  @param   DisplayFamily  Display Family ID\r
+  @param   DisplayModel   Display Model ID\r
+\r
+  @retval  TRUE   Yes, it is.\r
+  @retval  FALSE  No, it isn't.\r
+**/\r
+#define IS_IVY_BRIDGE_PROCESSOR(DisplayFamily, DisplayModel) \\r
+  (DisplayFamily == 0x06 && \\r
+   (                        \\r
+    DisplayModel == 0x3A    \\r
+    )                       \\r
+   )\r
+\r
 /**\r
   Package. See http://biosbits.org.\r
 \r
index 20e60df2049189c4f0a2bc3bbbe2fe5d588ac8ca..94aebba4d1ecadc3a2d7c5e73416bfff297053d3 100644 (file)
@@ -6,7 +6,7 @@
   returned is a single 32-bit or 64-bit value, then a data structure is not\r
   provided for that MSR.\r
 \r
-  Copyright (c) 2016, Intel Corporation. All rights reserved.<BR>\r
+  Copyright (c) 2016 - 2017, Intel Corporation. All rights reserved.<BR>\r
   This program and the accompanying materials\r
   are licensed and made available under the terms and conditions of the BSD License\r
   which accompanies this distribution.  The full text of the license may be found at\r
 \r
 #include <Register/ArchitecturalMsr.h>\r
 \r
+/**\r
+  Is Intel processors based on the Nehalem microarchitecture?\r
+\r
+  @param   DisplayFamily  Display Family ID\r
+  @param   DisplayModel   Display Model ID\r
+\r
+  @retval  TRUE   Yes, it is.\r
+  @retval  FALSE  No, it isn't.\r
+**/\r
+#define IS_NEHALEM_PROCESSOR(DisplayFamily, DisplayModel) \\r
+  (DisplayFamily == 0x06 && \\r
+   (                        \\r
+    DisplayModel == 0x1A || \\r
+    DisplayModel == 0x1E || \\r
+    DisplayModel == 0x1F || \\r
+    DisplayModel == 0x2E    \\r
+    )                       \\r
+   )\r
+\r
 /**\r
   Package. Model Specific Platform ID (R).\r
 \r
index ef908001c1ea0f7cb5e5cfba653de2e3ff1bd29f..aec2e2c868faf728fd13b6456f454e5f1a4f8091 100644 (file)
@@ -6,7 +6,7 @@
   returned is a single 32-bit or 64-bit value, then a data structure is not\r
   provided for that MSR.\r
 \r
-  Copyright (c) 2016, Intel Corporation. All rights reserved.<BR>\r
+  Copyright (c) 2016 - 2017, Intel Corporation. All rights reserved.<BR>\r
   This program and the accompanying materials\r
   are licensed and made available under the terms and conditions of the BSD License\r
   which accompanies this distribution.  The full text of the license may be found at\r
 \r
 #include <Register/ArchitecturalMsr.h>\r
 \r
+/**\r
+  Is P6 Family Processors?\r
+\r
+  @param   DisplayFamily  Display Family ID\r
+  @param   DisplayModel   Display Model ID\r
+\r
+  @retval  TRUE   Yes, it is.\r
+  @retval  FALSE  No, it isn't.\r
+**/\r
+#define IS_P6_PROCESSOR(DisplayFamily, DisplayModel) \\r
+  (DisplayFamily == 0x06 && \\r
+   (                        \\r
+    DisplayModel == 0x03 || \\r
+    DisplayModel == 0x05 || \\r
+    DisplayModel == 0x07 || \\r
+    DisplayModel == 0x08 || \\r
+    DisplayModel == 0x0A || \\r
+    DisplayModel == 0x0B \\r
+    ) \\r
+   )\r
+\r
 /**\r
   See Section 35.22, "MSRs in Pentium Processors.".\r
 \r
index 6cf68b24b3be7d39d7e32da3a85a99c3f5a51901..8922d56e2f19d764504f77535749689c02d9e5ca 100644 (file)
@@ -6,7 +6,7 @@
   returned is a single 32-bit or 64-bit value, then a data structure is not\r
   provided for that MSR.\r
 \r
-  Copyright (c) 2016, Intel Corporation. All rights reserved.<BR>\r
+  Copyright (c) 2016 - 2017, Intel Corporation. All rights reserved.<BR>\r
   This program and the accompanying materials\r
   are licensed and made available under the terms and conditions of the BSD License\r
   which accompanies this distribution.  The full text of the license may be found at\r
 \r
 #include <Register/ArchitecturalMsr.h>\r
 \r
+/**\r
+  Is Pentium(R) 4 Processors?\r
+\r
+  @param   DisplayFamily  Display Family ID\r
+  @param   DisplayModel   Display Model ID\r
+\r
+  @retval  TRUE   Yes, it is.\r
+  @retval  FALSE  No, it isn't.\r
+**/\r
+#define IS_PENTIUM_4_PROCESSOR(DisplayFamily, DisplayModel) \\r
+  (DisplayFamily == 0x0F \\r
+   )\r
+\r
 /**\r
   3, 4, 6. Shared. See Section 8.10.5, "Monitor/Mwait Address Range\r
   Determination.".\r
index 294a381120db674857d3b8867ffb5810df6d63e2..70d54c81ee53f9b73540c88bf1079e8fd0b2a389 100644 (file)
@@ -6,7 +6,7 @@
   returned is a single 32-bit or 64-bit value, then a data structure is not\r
   provided for that MSR.\r
 \r
-  Copyright (c) 2016, Intel Corporation. All rights reserved.<BR>\r
+  Copyright (c) 2016 - 2017, Intel Corporation. All rights reserved.<BR>\r
   This program and the accompanying materials\r
   are licensed and made available under the terms and conditions of the BSD License\r
   which accompanies this distribution.  The full text of the license may be found at\r
 \r
 #include <Register/ArchitecturalMsr.h>\r
 \r
+/**\r
+  Is Pentium M Processors?\r
+\r
+  @param   DisplayFamily  Display Family ID\r
+  @param   DisplayModel   Display Model ID\r
+\r
+  @retval  TRUE   Yes, it is.\r
+  @retval  FALSE  No, it isn't.\r
+**/\r
+#define IS_PENTIUM_M_PROCESSOR(DisplayFamily, DisplayModel) \\r
+  (DisplayFamily == 0x06 && \\r
+   ( \\r
+    DisplayModel == 0x0D \\r
+    ) \\r
+   )\r
+\r
 /**\r
   See Section 35.22, "MSRs in Pentium Processors.".\r
 \r
index cd846ea373b974cf3e40442905beacb640eb4e94..9b2578bac86f1c397e024239bc1d2061f1b7ab3a 100644 (file)
@@ -6,7 +6,7 @@
   returned is a single 32-bit or 64-bit value, then a data structure is not\r
   provided for that MSR.\r
 \r
-  Copyright (c) 2016, Intel Corporation. All rights reserved.<BR>\r
+  Copyright (c) 2016 - 2017, Intel Corporation. All rights reserved.<BR>\r
   This program and the accompanying materials\r
   are licensed and made available under the terms and conditions of the BSD License\r
   which accompanies this distribution.  The full text of the license may be found at\r
 \r
 #include <Register/ArchitecturalMsr.h>\r
 \r
+/**\r
+  Is Pentium Processors?\r
+\r
+  @param   DisplayFamily  Display Family ID\r
+  @param   DisplayModel   Display Model ID\r
+\r
+  @retval  TRUE   Yes, it is.\r
+  @retval  FALSE  No, it isn't.\r
+**/\r
+#define IS_PENTIUM_PROCESSOR(DisplayFamily, DisplayModel) \\r
+  (DisplayFamily == 0x05 && \\r
+   (                        \\r
+    DisplayModel == 0x01 || \\r
+    DisplayModel == 0x02 || \\r
+    DisplayModel == 0x04    \\r
+    )                       \\r
+   )\r
+\r
 /**\r
   See Section 15.10.2, "Pentium Processor Machine-Check Exception Handling.".\r
 \r
index 1819ecb66ce4e69fe3cfb5672ca0bd9571912523..c8a0b971d39469e0a2be54e21a48bda7fbe3233b 100644 (file)
@@ -6,7 +6,7 @@
   returned is a single 32-bit or 64-bit value, then a data structure is not\r
   provided for that MSR.\r
 \r
-  Copyright (c) 2016, Intel Corporation. All rights reserved.<BR>\r
+  Copyright (c) 2016 - 2017, Intel Corporation. All rights reserved.<BR>\r
   This program and the accompanying materials\r
   are licensed and made available under the terms and conditions of the BSD License\r
   which accompanies this distribution.  The full text of the license may be found at\r
 \r
 #include <Register/ArchitecturalMsr.h>\r
 \r
+/**\r
+  Is Intel processors based on the Sandy Bridge microarchitecture?\r
+\r
+  @param   DisplayFamily  Display Family ID\r
+  @param   DisplayModel   Display Model ID\r
+\r
+  @retval  TRUE   Yes, it is.\r
+  @retval  FALSE  No, it isn't.\r
+**/\r
+#define IS_SANDY_BRIDGE_PROCESSOR(DisplayFamily, DisplayModel) \\r
+  (DisplayFamily == 0x06 && \\r
+   (                        \\r
+    DisplayModel == 0x2A || \\r
+    DisplayModel == 0x2D    \\r
+    )                       \\r
+   )\r
+\r
 /**\r
   Thread. SMI Counter (R/O).\r
 \r
index b3b6b76f580973beb91ea5041282b5d01d0a6cdd..ec09bf3c1314e6986ae196c196ccd283d58be816 100644 (file)
@@ -6,7 +6,7 @@
   returned is a single 32-bit or 64-bit value, then a data structure is not\r
   provided for that MSR.\r
 \r
-  Copyright (c) 2016, Intel Corporation. All rights reserved.<BR>\r
+  Copyright (c) 2016 - 2017, Intel Corporation. All rights reserved.<BR>\r
   This program and the accompanying materials\r
   are licensed and made available under the terms and conditions of the BSD License\r
   which accompanies this distribution.  The full text of the license may be found at\r
 \r
 #include <Register/ArchitecturalMsr.h>\r
 \r
+/**\r
+  Is Intel processors based on the Silvermont microarchitecture?\r
+\r
+  @param   DisplayFamily  Display Family ID\r
+  @param   DisplayModel   Display Model ID\r
+\r
+  @retval  TRUE   Yes, it is.\r
+  @retval  FALSE  No, it isn't.\r
+**/\r
+#define IS_SILVERMONT_PROCESSOR(DisplayFamily, DisplayModel) \\r
+  (DisplayFamily == 0x06 && \\r
+   (                        \\r
+    DisplayModel == 0x37 || \\r
+    DisplayModel == 0x4A || \\r
+    DisplayModel == 0x4D || \\r
+    DisplayModel == 0x5A || \\r
+    DisplayModel == 0x5D    \\r
+    )                       \\r
+   )\r
+\r
 /**\r
   Module. Model Specific Platform ID (R).\r
 \r
index 23ca3e1b85fcf69293b97724cc7ffceeb4dfc81a..7166e5f9e0e814a76d4eee680e2a05119b6ead76 100644 (file)
@@ -6,7 +6,7 @@
   returned is a single 32-bit or 64-bit value, then a data structure is not\r
   provided for that MSR.\r
 \r
-  Copyright (c) 2016, Intel Corporation. All rights reserved.<BR>\r
+  Copyright (c) 2016 - 2017, Intel Corporation. All rights reserved.<BR>\r
   This program and the accompanying materials\r
   are licensed and made available under the terms and conditions of the BSD License\r
   which accompanies this distribution.  The full text of the license may be found at\r
 \r
 #include <Register/ArchitecturalMsr.h>\r
 \r
+/**\r
+  Is Intel processors based on the Skylake microarchitecture?\r
+\r
+  @param   DisplayFamily  Display Family ID\r
+  @param   DisplayModel   Display Model ID\r
+\r
+  @retval  TRUE   Yes, it is.\r
+  @retval  FALSE  No, it isn't.\r
+**/\r
+#define IS_SKYLAKE_PROCESSOR(DisplayFamily, DisplayModel) \\r
+  (DisplayFamily == 0x06 && \\r
+   (                        \\r
+    DisplayModel == 0x4E || \\r
+    DisplayModel == 0x5E    \\r
+    )                       \\r
+   )\r
+\r
 /**\r
   Package. Maximum Ratio Limit of Turbo Mode RO if MSR_PLATFORM_INFO.[28] = 0,\r
   RW if MSR_PLATFORM_INFO.[28] = 1.\r
index ea22e22be946be433b338d69b61b7f9327d5dff3..ad7128ae952b026db6d5e4bab766119bb3eb8996 100644 (file)
@@ -6,7 +6,7 @@
   returned is a single 32-bit or 64-bit value, then a data structure is not\r
   provided for that MSR.\r
 \r
-  Copyright (c) 2016, Intel Corporation. All rights reserved.<BR>\r
+  Copyright (c) 2016 - 2017, Intel Corporation. All rights reserved.<BR>\r
   This program and the accompanying materials\r
   are licensed and made available under the terms and conditions of the BSD License\r
   which accompanies this distribution.  The full text of the license may be found at\r
 \r
 #include <Register/ArchitecturalMsr.h>\r
 \r
+/**\r
+  Is Intel(R) Xeon(R) Processor Series 5600?\r
+\r
+  @param   DisplayFamily  Display Family ID\r
+  @param   DisplayModel   Display Model ID\r
+\r
+  @retval  TRUE   Yes, it is.\r
+  @retval  FALSE  No, it isn't.\r
+**/\r
+#define IS_XEON_5600_PROCESSOR(DisplayFamily, DisplayModel) \\r
+  (DisplayFamily == 0x06 && \\r
+   (                        \\r
+    DisplayModel == 0x25 || \\r
+    DisplayModel == 0x2C    \\r
+    )                       \\r
+   )\r
+\r
 /**\r
   Core. AES Configuration (RW-L) Privileged post-BIOS agent must provide a #GP\r
   handler to handle unsuccessful read of this MSR.\r
index 5e7e13aa8ea1e68e045e260a419d771a212792b0..7b31288a353340f1e72110284068e34404533d9c 100644 (file)
@@ -6,7 +6,7 @@
   returned is a single 32-bit or 64-bit value, then a data structure is not\r
   provided for that MSR.\r
 \r
-  Copyright (c) 2016, Intel Corporation. All rights reserved.<BR>\r
+  Copyright (c) 2016 - 2017, Intel Corporation. All rights reserved.<BR>\r
   This program and the accompanying materials\r
   are licensed and made available under the terms and conditions of the BSD License\r
   which accompanies this distribution.  The full text of the license may be found at\r
 \r
 #include <Register/ArchitecturalMsr.h>\r
 \r
+/**\r
+  Is Intel(R) Xeon(R) Processor D product Family?\r
+\r
+  @param   DisplayFamily  Display Family ID\r
+  @param   DisplayModel   Display Model ID\r
+\r
+  @retval  TRUE   Yes, it is.\r
+  @retval  FALSE  No, it isn't.\r
+**/\r
+#define IS_XEON_D_PROCESSOR(DisplayFamily, DisplayModel) \\r
+  (DisplayFamily == 0x06 && \\r
+   (                        \\r
+    DisplayModel == 0x4F || \\r
+    DisplayModel == 0x56    \\r
+    )                       \\r
+   )\r
+\r
 /**\r
   Package. Protected Processor Inventory Number Enable Control (R/W).\r
 \r
index d14ef21d6f123c5e9f1a9c09a1e5ae7ef6ddc2f6..d509660c527e7fab7a65546c2eb5c4442e95c96d 100644 (file)
@@ -6,7 +6,7 @@
   returned is a single 32-bit or 64-bit value, then a data structure is not\r
   provided for that MSR.\r
 \r
-  Copyright (c) 2016, Intel Corporation. All rights reserved.<BR>\r
+  Copyright (c) 2016 - 2017, Intel Corporation. All rights reserved.<BR>\r
   This program and the accompanying materials\r
   are licensed and made available under the terms and conditions of the BSD License\r
   which accompanies this distribution.  The full text of the license may be found at\r
 \r
 #include <Register/ArchitecturalMsr.h>\r
 \r
+/**\r
+  Is Intel(R) Xeon(R) Processor E7 Family?\r
+\r
+  @param   DisplayFamily  Display Family ID\r
+  @param   DisplayModel   Display Model ID\r
+\r
+  @retval  TRUE   Yes, it is.\r
+  @retval  FALSE  No, it isn't.\r
+**/\r
+#define IS_XEON_E7_PROCESSOR(DisplayFamily, DisplayModel) \\r
+  (DisplayFamily == 0x06 && \\r
+   (                        \\r
+    DisplayModel == 0x2F    \\r
+    )                       \\r
+   )\r
+\r
 /**\r
   Core. AES Configuration (RW-L) Privileged post-BIOS agent must provide a #GP\r
   handler to handle unsuccessful read of this MSR.\r
index 853d83bfc58c7f73428173d8a158363a82d839b6..43354d15c96cb4e01e4996c40ccdba664ebedc7f 100644 (file)
@@ -6,7 +6,7 @@
   returned is a single 32-bit or 64-bit value, then a data structure is not\r
   provided for that MSR.\r
 \r
-  Copyright (c) 2016, Intel Corporation. All rights reserved.<BR>\r
+  Copyright (c) 2016 - 2017, Intel Corporation. All rights reserved.<BR>\r
   This program and the accompanying materials\r
   are licensed and made available under the terms and conditions of the BSD License\r
   which accompanies this distribution.  The full text of the license may be found at\r
 \r
 #include <Register/ArchitecturalMsr.h>\r
 \r
+/**\r
+  Is Intel(R) Xeon(R) Phi(TM) processor Family?\r
+\r
+  @param   DisplayFamily  Display Family ID\r
+  @param   DisplayModel   Display Model ID\r
+\r
+  @retval  TRUE   Yes, it is.\r
+  @retval  FALSE  No, it isn't.\r
+**/\r
+#define IS_XEON_PHI_PROCESSOR(DisplayFamily, DisplayModel) \\r
+  (DisplayFamily == 0x06 && \\r
+   (                        \\r
+    DisplayModel == 0x57    \\r
+    )                       \\r
+   )\r
+\r
 /**\r
   Thread. SMI Counter (R/O).\r
 \r