public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: Eric Dong <eric.dong@intel.com>
To: edk2-devel@lists.01.org
Cc: Michael D Kinney <michael.d.kinney@intel.com>,
	Ruiyu Ni <ruiyu.ni@intel.com>, Laszlo Ersek <lersek@redhat.com>
Subject: [Patch v2 14/14] UefiCpuPkg/Include/Register/Msr/XeonPhiMsr.h: Change structure definition.
Date: Fri, 21 Sep 2018 15:41:33 +0800	[thread overview]
Message-ID: <20180921074133.9140-15-eric.dong@intel.com> (raw)
In-Reply-To: <20180921074133.9140-1-eric.dong@intel.com>

V2 changes include:
1. Use X in ReservedX fields from totally new value if MSR structure definition changed.
   For example, if in current structure, the max reserved variable is Reserved2, in new
   definition, reserved variable is begin with Reserved3.

V1 Changes:
Changes includes:
  1. Update MSR structure definition, change some reserved fields to useful fields:
     1. MSR_XEON_PHI_PKG_CST_CONFIG_CONTROL_REGISTER
     2. MSR_XEON_PHI_SMM_MCA_CAP_REGISTER
  2. For MSR_XEON_PHI_PMG_IO_CAPTURE_BASE_REGISTER structure, it expand the field range.
     Old definition like below:
       typedef union {
         ///
         /// Individual bit fields
         ///
         struct {
           ///
           /// [Bits 15:0] LVL_2 Base Address (R/W).
           ///
           UINT32  Lvl2Base:16;
           ///
           /// [Bits 18:16] C-state Range (R/W)  Specifies the encoding value of the
           /// maximum C-State code name to be included when IO read to MWAIT
           /// redirection is enabled by MSR_PKG_CST_CONFIG_CONTROL[bit10]: 100b - C4
           /// is the max C-State to include 110b - C6 is the max C-State to include.
           ///
           UINT32  CStateRange:3;
           UINT32  Reserved1:13;
           UINT32  Reserved2:32;
         } Bits;
         ///
         /// All bit fields as a 32-bit value
         ///
         UINT32  Uint32;
         ///
         /// All bit fields as a 64-bit value
         ///
         UINT64  Uint64;
       } MSR_XEON_PHI_PMG_IO_CAPTURE_BASE_REGISTER;
    This patch make below changes for this data structure, it expand "CStateRange" field width.
      old one:
        UINT32  CStateRange:3;
        UINT32  Reserved1:13;
      new one:
        UINT32  CStateRange:7;
        UINT32  Reserved1:9;

Cc: Michael D Kinney <michael.d.kinney@intel.com>
Cc: Ruiyu Ni <ruiyu.ni@intel.com>
Cc: Laszlo Ersek <lersek@redhat.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Eric Dong <eric.dong@intel.com>
---
 UefiCpuPkg/Include/Register/Msr/XeonPhiMsr.h | 59 +++++++++++++++++++++-------
 1 file changed, 45 insertions(+), 14 deletions(-)

diff --git a/UefiCpuPkg/Include/Register/Msr/XeonPhiMsr.h b/UefiCpuPkg/Include/Register/Msr/XeonPhiMsr.h
index da74c2402c..37e2248c57 100644
--- a/UefiCpuPkg/Include/Register/Msr/XeonPhiMsr.h
+++ b/UefiCpuPkg/Include/Register/Msr/XeonPhiMsr.h
@@ -268,18 +268,36 @@ typedef union {
     /// Retention 011b: C6 Retention 111b: No limit.
     ///
     UINT32  Limit:3;
-    UINT32  Reserved1:7;
+    UINT32  Reserved5:7;
     ///
     /// [Bit 10] I/O MWAIT Redirection Enable (R/W).
     ///
     UINT32  IO_MWAIT:1;
-    UINT32  Reserved2:4;
+    UINT32  Reserved6:4;
     ///
     /// [Bit 15] CFG Lock (R/WO).
     ///
     UINT32  CFGLock:1;
-    UINT32  Reserved3:16;
-    UINT32  Reserved4:32;
+    UINT32  Reserved7:10;
+    ///
+    /// [Bit 26] C1 State Auto Demotion Enable (R/W) When set, the processor
+    /// will conditionally demote C3/C6/C7 requests to C1 based on uncore
+    /// auto-demote information.
+    ///
+    UINT32  C1StateAutoDemotionEnable:1;
+    UINT32  Reserved8:1;
+    ///
+    /// [Bit 28] C1 State Auto Undemotion Enable (R/W) When set, enables
+    /// Undemotion from Demoted C1.
+    ///
+    UINT32  C1StateAutoUndemotionEnable:1;
+    ///
+    /// [Bit 29] PKG C-State Auto Demotion Enable (R/W) When set, enables
+    /// Package C state demotion.
+    ///
+    UINT32  PKGC_StateAutoDemotionEnable:1;
+    UINT32  Reserved9:2;
+    UINT32  Reserved10:32;
   } Bits;
   ///
   /// All bit fields as a 32-bit value
@@ -325,14 +343,13 @@ typedef union {
     ///
     UINT32  Lvl2Base:16;
     ///
-    /// [Bits 18:16] C-state Range (R/W)  Specifies the encoding value of the
-    /// maximum C-State code name to be included when IO read to MWAIT
-    /// redirection is enabled by MSR_PKG_CST_CONFIG_CONTROL[bit10]: 100b - C4
-    /// is the max C-State to include 110b - C6 is the max C-State to include.
+    /// [Bits 22:16] C-State Range (R/W) The IO-port block size in which
+    /// IO-redirection will be executed (0-127). Should be programmed based on
+    /// the number of LVLx registers existing in the chipset.
     ///
-    UINT32  CStateRange:3;
-    UINT32  Reserved1:13;
-    UINT32  Reserved2:32;
+    UINT32  CStateRange:7;
+    UINT32  Reserved3:9;
+    UINT32  Reserved4:32;
   } Bits;
   ///
   /// All bit fields as a 32-bit value
@@ -477,8 +494,22 @@ typedef union {
   /// Individual bit fields
   ///
   struct {
-    UINT32  Reserved1:32;
-    UINT32  Reserved2:26;
+    ///
+    /// [Bits 31:0] Bank Support (SMM-RO) One bit per MCA bank. If the bit is
+    /// set, that bank supports Enhanced MCA (Default all 0; does not support
+    /// EMCA).
+    ///
+    UINT32  BankSupport:32;
+    UINT32  Reserved4:24;
+    ///
+    /// [Bit 56] Targeted SMI (SMM-RO) Set if targeted SMI is supported.
+    ///
+    UINT32  TargetedSMI:1;
+    ///
+    /// [Bit 57] SMM_CPU_SVRSTR (SMM-RO) Set if SMM SRAM save/restore feature
+    /// is supported.
+    ///
+    UINT32  SMM_CPU_SVRSTR:1;
     ///
     /// [Bit 58] SMM_Code_Access_Chk (SMM-RO) If set to 1 indicates that the
     /// SMM code access restriction is supported and a host-space interface
@@ -491,7 +522,7 @@ typedef union {
     /// available to SMM handler.
     ///
     UINT32  Long_Flow_Indication:1;
-    UINT32  Reserved3:4;
+    UINT32  Reserved5:4;
   } Bits;
   ///
   /// All bit fields as a 64-bit value
-- 
2.15.0.windows.1



  parent reply	other threads:[~2018-09-21  7:42 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-09-21  7:41 [Patch v2 00/14] Update MSR definitions Eric Dong
2018-09-21  7:41 ` [Patch v2 01/14] UefiCpuPkg/Include/Register/Msr: Update reference spec info Eric Dong
2018-09-21  7:41 ` [Patch v2 02/14] UefiCpuPkg/Include/Register/Msr/GoldmontPlusMsr.h: Add new MSR file for goldmont plus microarchitecture Eric Dong
2018-09-21  7:41 ` [Patch v2 03/14] UefiCpuPkg/Include/Register/Msr/SilvermontMsr.h: Add new MSR Eric Dong
2018-09-21  7:41 ` [Patch v2 04/14] UefiCpuPkg/Include/Register/Msr/*.h: " Eric Dong
2018-09-21  7:41 ` [Patch v2 05/14] UefiCpuPkg/Include/Register/Msr/XeonPhiMsr.h: " Eric Dong
2018-09-21  7:41 ` [Patch v2 06/14] UefiCpuPkg/Include/Register/Msr/SkylakeMsr.h: Add new MSRs Eric Dong
2018-09-21  7:41 ` [Patch v2 07/14] UefiCpuPkg/Include/Register/ArchitecturalMsr.h: Add new MSR Eric Dong
2018-09-21  7:41 ` [Patch v2 08/14] UefiCpuPkg/Include/Register/ArchitecturalMsr.h: Change structure definition Eric Dong
2018-09-21  8:44   ` Ni, Ruiyu
2018-09-21  9:41     ` Laszlo Ersek
2018-09-25  2:08       ` Dong, Eric
2018-09-21  7:41 ` [Patch v2 09/14] UefiCpuPkg/Include/Register/Msr/Core2Msr.h: Remove old MSR Eric Dong
2018-09-21  7:41 ` [Patch v2 10/14] UefiCpuPkg/Include/Register/Msr/P6Msr.h: " Eric Dong
2018-09-21  7:41 ` [Patch v2 11/14] UefiCpuPkg/Include/Register/Msr/CoreMsr.h: " Eric Dong
2018-09-21  7:41 ` [Patch v2 12/14] UefiCpuPkg/Include/Register/Msr/SkylakeMsr.h: Add new MSR name and keep old one Eric Dong
2018-09-21  7:41 ` [Patch v2 13/14] UefiCpuPkg/Include/Register/Msr/GoldmontMsr.h: " Eric Dong
2018-09-21  7:41 ` Eric Dong [this message]
2018-09-21  8:46   ` [Patch v2 14/14] UefiCpuPkg/Include/Register/Msr/XeonPhiMsr.h: Change structure definition Ni, Ruiyu

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-list from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20180921074133.9140-15-eric.dong@intel.com \
    --to=devel@edk2.groups.io \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox