From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <leo.duran@amd.com>
Received: from NAM01-SN1-obe.outbound.protection.outlook.com
 (mail-sn1nam01on060d.outbound.protection.outlook.com
 [IPv6:2a01:111:f400:fe40::60d])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits))
 (No client certificate requested)
 by ml01.01.org (Postfix) with ESMTPS id C19C121A18AAC
 for <edk2-devel@ml01.01.org>; Mon, 27 Mar 2017 08:59:19 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=amdcloud.onmicrosoft.com; s=selector1-amd-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version;
 bh=RtExJXHzlhxDgSfavRGasR0JmyiROleDqNvKbiE7VtY=;
 b=piNbxD5Crw07/E1Mf5l+3N28NOyHg+ty1o0xIds/D/zlIHmMuHQU6uMWZYlW0KeHZGnuWx8os2yfpzAluUHoi3klZ5ic+ww6bzmAfcrDbKnlrM4ZIvIlZAWprTnmgTV8iXHjsmXTBkDeCUJwNUtNa1p++43+dahCpNqvvLG4oPg=
Received: from DM5PR12MB1243.namprd12.prod.outlook.com (10.168.237.22) by
 DM5PR12MB1146.namprd12.prod.outlook.com (10.168.236.141) with Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id
 15.1.991.14; Mon, 27 Mar 2017 15:59:17 +0000
Received: from DM5PR12MB1243.namprd12.prod.outlook.com ([10.168.237.22]) by
 DM5PR12MB1243.namprd12.prod.outlook.com ([10.168.237.22]) with mapi id
 15.01.0991.020; Mon, 27 Mar 2017 15:59:16 +0000
From: "Duran, Leo" <leo.duran@amd.com>
To: "'Fan, Jeff'" <jeff.fan@intel.com>, Laszlo Ersek <lersek@redhat.com>,
 Brijesh Singh <brijesh.ksingh@gmail.com>, "Kinney, Michael D"
 <michael.d.kinney@intel.com>, "Justen, Jordan L" <jordan.l.justen@intel.com>, 
 "edk2-devel@ml01.01.org" <edk2-devel@ml01.01.org>, "Gao, Liming"
 <liming.gao@intel.com>
CC: "Singh, Brijesh" <brijesh.singh@amd.com>, "Lendacky, Thomas"
 <Thomas.Lendacky@amd.com>
Thread-Topic: [edk2] [RFC PATCH v2 01/10] OvmfPkg/Include: Define SEV specific
 CPUID and MSR
Thread-Index: AQHSoofoNIOivaeTx0+USJsfq7J4pqGhBruAgAEGK4CAABszAIAGMoiAgACELwA=
Date: Mon, 27 Mar 2017 15:59:16 +0000
Message-ID: <DM5PR12MB12431E25CE30DF6ECC873AA5F9330@DM5PR12MB1243.namprd12.prod.outlook.com>
References: <149013076154.27235.10725020825643505862.stgit@brijesh-build-machine>
 <149013076888.27235.3173588515291478806.stgit@brijesh-build-machine>
 <db2024ff-1bd0-6b70-7bc6-8428398d8a71@redhat.com>
 <542CF652F8836A4AB8DBFAAD40ED192A4C569A29@shsmsx102.ccr.corp.intel.com>
 <dcb6b004-d668-78f4-aca0-c69324c48253@redhat.com>
 <542CF652F8836A4AB8DBFAAD40ED192A4C57C672@shsmsx102.ccr.corp.intel.com>
In-Reply-To: <542CF652F8836A4AB8DBFAAD40ED192A4C57C672@shsmsx102.ccr.corp.intel.com>
Accept-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
authentication-results: intel.com; dkim=none (message not signed)
 header.d=none;intel.com; dmarc=none action=none header.from=amd.com;
x-originating-ip: [165.204.77.1]
x-microsoft-exchange-diagnostics: 1; DM5PR12MB1146;
 7:7UYImSeojhx0HZ/NvBKZE6TWUtGYOquF5BRzBCBNdng4RZPC5z8fwB1Xii5qr0mHfh4T6KtyIrz1n1DEgY57qx0QeHujVBQYk1uwHpYc/Q+WsqqAAqAN01wy/6zu+5ZHc7co8ZWwUCrM2nHPU1rdzYXVB9DyjHVBmQruuoG2s3n51dvnAmUVfrOjwELPCUODEs76h+VdEeYhMwOW6BmBHp9BR2dOQcFPGd7YxvpXPnQzLlqb/uAX6/jRSfSQ/RFEw9lsUQfuVEzov+imZ2MCjNRdfsI8sDwzOqpcEOEuH8VFSIAV9JJHeWf/iNRY+hU7vAjUk+DBYJ0MXcIuZYc5Eg==;
 20:A7TstSDnMyzL5Xv1IjTAt1UudFnii6g+ishvZjUlnZiE7I3rKObRAGtUT1WeHuA0GTiqDfw6aY7dnQENiMNhICYazK+6QlP1tANfG9rROJHXspGtbj1jNEOzFYTDDuUJ4ifwIJY2XWLIxHgxE8GudqkvodcBcp2UK+ON4AWLDONhmDZv6Zpww4KTsixp48BUseuIYXkAN27+qI5nvdLoAUZta37dq+VSniQ41aaEluvhyAWOlhTPB/GMdE+Zjs/N
x-forefront-antispam-report: SFV:SKI; SCL:-1SFV:NSPM;
 SFS:(10009020)(6009001)(39450400003)(39840400002)(39860400002)(39400400002)(39410400002)(39850400002)(24454002)(76104003)(13464003)(377454003)(16799955002)(15188155005)(4326008)(122556002)(6246003)(3280700002)(189998001)(3660700001)(8676002)(74316002)(6116002)(102836003)(2906002)(33656002)(86362001)(5660300001)(7736002)(305945005)(3846002)(966004)(93886004)(76176999)(54356999)(8936002)(50986999)(81166006)(229853002)(7696004)(2950100002)(2501003)(2900100001)(25786009)(53546009)(53376002)(38730400002)(6306002)(53936002)(99286003)(54906002)(55016002)(6436002)(66066001)(77096006)(9686003)(6506006)(39060400002)(921003)(1121003)(217873001);
 DIR:OUT; SFP:1101; SCL:1; SRVR:DM5PR12MB1146;
 H:DM5PR12MB1243.namprd12.prod.outlook.com; FPR:; SPF:None; MLV:ovrnspm;
 PTR:InfoNoRecords; LANG:en; 
x-ms-office365-filtering-correlation-id: 2984ef23-3246-46fd-f04a-08d4752a38ad
x-ms-office365-filtering-ht: Tenant
x-microsoft-antispam: UriScan:; BCL:0; PCL:0;
 RULEID:(22001)(2017030254075)(48565401081)(201703131423047)(201703031133053);
 SRVR:DM5PR12MB1146; 
x-microsoft-antispam-prvs: <DM5PR12MB11465E1DB27550A7BDF42919F9330@DM5PR12MB1146.namprd12.prod.outlook.com>
x-exchange-antispam-report-test: UriScan:(767451399110)(162533806227266)(228905959029699); 
x-exchange-antispam-report-cfa-test: BCL:0; PCL:0;
 RULEID:(6040421)(601004)(2401047)(5005006)(8121501046)(10201501046)(3002001)(6055026)(6041248)(20161123560025)(20161123562025)(20161123564025)(201703131423046)(201702281528046)(201703061421046)(201703061406046)(20161123558025)(20161123555025)(6072148);
 SRVR:DM5PR12MB1146; BCL:0; PCL:0; RULEID:; SRVR:DM5PR12MB1146; 
x-forefront-prvs: 02596AB7DA
spamdiagnosticoutput: 1:99
spamdiagnosticmetadata: NSPM
MIME-Version: 1.0
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-originalarrivaltime: 27 Mar 2017 15:59:16.4791 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR12MB1146
Subject: Re: [RFC PATCH v2 01/10] OvmfPkg/Include: Define SEV specific CPUID and MSR
X-BeenThere: edk2-devel@lists.01.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: EDK II Development  <edk2-devel.lists.01.org>
List-Unsubscribe: <https://lists.01.org/mailman/options/edk2-devel>,
 <mailto:edk2-devel-request@lists.01.org?subject=unsubscribe>
List-Archive: <http://lists.01.org/pipermail/edk2-devel/>
List-Post: <mailto:edk2-devel@lists.01.org>
List-Help: <mailto:edk2-devel-request@lists.01.org?subject=help>
List-Subscribe: <https://lists.01.org/mailman/listinfo/edk2-devel>,
 <mailto:edk2-devel-request@lists.01.org?subject=subscribe>
X-List-Received-Date: Mon, 27 Mar 2017 15:59:20 -0000
Content-Language: en-US
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

Jeff, et al,

Given that:
1) UefiCpuPkg/Include/Register/Cpuid.h... Does reference an Intel SDM
2) UefiCpuPkg/Include/Register/Msr... Includes intel SoC's

I vote for:
1) UefiCpuPkg/Include/Register/Amd/Cpuid.h
2) UefiCpuPkg/Include/Register/Amd/Msr.h + UefiCpuPkg/Include/Register/Amd/=
Msr/XxxMsr.h

Leo.

> -----Original Message-----
> From: Fan, Jeff [mailto:jeff.fan@intel.com]
> Sent: Monday, March 27, 2017 2:58 AM
> To: Laszlo Ersek <lersek@redhat.com>; Brijesh Singh
> <brijesh.ksingh@gmail.com>; Kinney, Michael D
> <michael.d.kinney@intel.com>; Justen, Jordan L
> <jordan.l.justen@intel.com>; edk2-devel@ml01.01.org; Gao, Liming
> <liming.gao@intel.com>
> Cc: Duran, Leo <leo.duran@amd.com>; Singh, Brijesh
> <brijesh.singh@amd.com>; Lendacky, Thomas
> <Thomas.Lendacky@amd.com>
> Subject: RE: [edk2] [RFC PATCH v2 01/10] OvmfPkg/Include: Define SEV
> specific CPUID and MSR
>=20
> Laszlo,
>=20
> One Amd directory under UefiCpuPkg/Include/Register is better.
>=20
> Does Brijesh/Leo have any comments, or have other suggestions?
>=20
> Thanks!
> Jeff
>=20
> -----Original Message-----
> From: Laszlo Ersek [mailto:lersek@redhat.com]
> Sent: Thursday, March 23, 2017 5:20 PM
> To: Fan, Jeff; Brijesh Singh; Kinney, Michael D; Justen, Jordan L; edk2-
> devel@ml01.01.org; Gao, Liming
> Cc: leo.duran@amd.com; brijesh.singh@amd.com;
> Thomas.Lendacky@amd.com
> Subject: Re: [edk2] [RFC PATCH v2 01/10] OvmfPkg/Include: Define SEV
> specific CPUID and MSR
>=20
> On 03/23/17 08:42, Fan, Jeff wrote:
> > Laszlo,
> >
> > UefiCpuPkg/Include/Register/Cpuid.h defined the CPUID only described in
> IA32 SDM.
> > UefiCpuPkg/Include/Register/ArchitecturalMsr.h defined the IA32
> > Architectural MSRs in IA32 SDM
> UefiCpuPkg/Include/Register/Msr/xxxxMsr.h defined the IA32 Model-
> specific MSRs in IA32 SDM.
> >
> > I am not sure if Brijesh/Leo has some idea to place SEV specific
> CPUID/MSRs definitions.
> > I think one new file or new folder is better.
>=20
> I agree, both would work for me. My main point is that this feature depen=
ds
> on physical processor attributes, not on emulated (virtual) hardware or o=
n
> various hypervisors, plus it is defined in a public industry spec, so it =
seems to
> belong under UefiCpuPkg, not OvmfPkg.
>=20
> How about
>=20
>   UefiCpuPkg/Include/AmdRegister/Cpuid.h
>   UefiCpuPkg/Include/AmdRegister/ArchitecturalMsr.h
>   UefiCpuPkg/Include/AmdRegister/Msr/xxxxMsr.h
>=20
> or else:
>=20
>   UefiCpuPkg/Include/Register/Amd/Cpuid.h
>   UefiCpuPkg/Include/Register/Amd/ArchitecturalMsr.h
>   UefiCpuPkg/Include/Register/Amd/Msr/xxxxMsr.h
>=20
> (as appropriate -- I'm not saying that this patch should create all of th=
ese files
> / subdirectories at once).
>=20
> Thanks
> Laszlo
> >
> > -----Original Message-----
> > From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf Of
> > Laszlo Ersek
> > Sent: Thursday, March 23, 2017 12:04 AM
> > To: Brijesh Singh; Kinney, Michael D; Justen, Jordan L;
> > edk2-devel@ml01.01.org; Gao, Liming; Fan, Jeff
> > Cc: leo.duran@amd.com; brijesh.singh@amd.com;
> Thomas.Lendacky@amd.com
> > Subject: Re: [edk2] [RFC PATCH v2 01/10] OvmfPkg/Include: Define SEV
> > specific CPUID and MSR
> >
> > Adding Jeff
> >
> > On 03/21/17 22:12, Brijesh Singh wrote:
> >> The patch defines AMD's Memory Encryption Information CPUID leaf
> (0x8000_001F).
> >> The complete description for this CPUID leaf is available in APM
> >> volume 2 [1] Section 15.34 (Secure Encrypted Virtualization).
> >>
> >> [1] http://support.amd.com/TechDocs/24593.pdf
> >>
> >> Signed-off-by: Brijesh Singh <brijesh.singh@amd.com>
> >> ---
> >>  OvmfPkg/Include/Register/AmdSevMap.h |  133
> >> ++++++++++++++++++++++++++++++++++
> >>  1 file changed, 133 insertions(+)
> >>  create mode 100644 OvmfPkg/Include/Register/AmdSevMap.h
> >>
> >> diff --git a/OvmfPkg/Include/Register/AmdSevMap.h
> >> b/OvmfPkg/Include/Register/AmdSevMap.h
> >> new file mode 100644
> >> index 0000000..de80f39
> >> --- /dev/null
> >> +++ b/OvmfPkg/Include/Register/AmdSevMap.h
> >> @@ -0,0 +1,133 @@
> >> +/** @file
> >> +
> >> +AMD Secure Encrypted Virtualization (SEV) specific CPUID and MSR
> >> +definitions
> >> +
> >> +The complete description for this CPUID leaf is available in APM
> >> +volume 2 (Section 15.34) http://support.amd.com/TechDocs/24593.pdf
> >> +
> >> +Copyright (c) 2017, Advanced Micro Devices. All rights reserved.<BR>
> >> +
> >> +This program and the accompanying materials are licensed and made
> >> +available under the terms and conditions of the BSD License which
> >> +accompanies this distribution.  The full text of the license may be
> >> +found at http://opensource.org/licenses/bsd-license.php
> >> +
> >> +THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS"
> >> +BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND,
> EITHER EXPRESS OR IMPLIED.
> >> +
> >> +**/
> >> +
> >> +#ifndef __AMD_SEV_MAP_H__
> >> +#define __AMD_SEV_MAP_H__
> >> +
> >> +#pragma pack (1)
> >> +
> >> +#define CPUID_MEMORY_ENCRYPTION_INFO             0x8000001F
> >> +
> >> +/**
> >> +  CPUID Memory Encryption support information EAX for CPUID leaf
> >> +  #CPUID_MEMORY_ENCRYPTION_INFO.
> >> +**/
> >> +typedef union {
> >> +  ///
> >> +  /// Individual bit fields
> >> +  ///
> >> +  struct {
> >> +    ///
> >> +    /// [Bit 0] Secure Memory Encryption (Sme) Support
> >> +    ///
> >> +    UINT32  SmeBit:1;
> >> +
> >> +    ///
> >> +    /// [Bit 1] Secure Encrypted Virtualization (Sev) Support
> >> +    ///
> >> +    UINT32  SevBit:1;
> >> +
> >> +    ///
> >> +    /// [Bit 2] Page flush MSR support
> >> +    ///
> >> +    UINT32  PageFlushMsrBit:1;
> >> +
> >> +    ///
> >> +    /// [Bit 3] Encrypted state support
> >> +    ///
> >> +    UINT32  SevEsBit:1;
> >> +
> >> +    ///
> >> +    /// [Bit 4:31] Reserved
> >> +    ///
> >> +    UINT32  ReservedBits:28;
> >> +  } Bits;
> >> +  ///
> >> +  /// All bit fields as a 32-bit value
> >> +  ///
> >> +  UINT32  Uint32;
> >> +} CPUID_MEMORY_ENCRYPTION_INFO_EAX;
> >> +
> >> +/**
> >> +  CPUID Memory Encryption support information EBX for CPUID leaf
> >> +  #CPUID_MEMORY_ENCRYPTION_INFO.
> >> +**/
> >> +typedef union {
> >> +  ///
> >> +  /// Individual bit fields
> >> +  ///
> >> +  struct {
> >> +    ///
> >> +    /// [Bit 0:5] Page table bit number used to enable memory encrypt=
ion
> >> +    ///
> >> +    UINT32  PtePosBits:6;
> >> +
> >> +    ///
> >> +    /// [Bit 6:11] Reduction of system physical address space bits wh=
en
> memory encryption is enabled
> >> +    ///
> >> +    UINT32  ReducedPhysBits:5;
> >> +
> >> +    ///
> >> +    /// [Bit 12:31] Reserved
> >> +    ///
> >> +    UINT32  ReservedBits:21;
> >> +  } Bits;
> >> +  ///
> >> +  /// All bit fields as a 32-bit value
> >> +  ///
> >> +  UINT32  Uint32;
> >> +} CPUID_MEMORY_ENCRYPTION_INFO_EBX;
> >> +
> >> +/**
> >> +  Secure Encrypted Virtualization (SEV) status register
> >> +
> >> +**/
> >> +#define MSR_SEV_STATUS                     0xc0010131
> >> +
> >> +/**
> >> +  MSR information returned for #MSR_SEV_STATUS **/ typedef union {
> >> +  ///
> >> +  /// Individual bit fields
> >> +  ///
> >> +  struct {
> >> +    ///
> >> +    /// [Bit 0] Secure Encrypted Virtualization (Sev) is enabled
> >> +    ///
> >> +    UINT32  SevBit:1;
> >> +
> >> +    ///
> >> +    /// [Bit 1] Secure Encrypted Virtualization Encrypted State (SevE=
s) is
> enabled
> >> +    ///
> >> +    UINT32  SevEsBit:1;
> >> +
> >> +    UINT32  Reserved:30;
> >> +  } Bits;
> >> +  ///
> >> +  /// All bit fields as a 32-bit value
> >> +  ///
> >> +  UINT32  Uint32;
> >> +  ///
> >> +  /// All bit fields as a 64-bit value
> >> +  ///
> >> +  UINT64  Uint64;
> >> +} MSR_SEV_STATUS_REGISTER;
> >> +
> >> +#endif
> >>
> >> _______________________________________________
> >> edk2-devel mailing list
> >> edk2-devel@lists.01.org
> >> https://lists.01.org/mailman/listinfo/edk2-devel
> >>
> >
> > I feel that these definitions should be added to
> "UefiCpuPkg/Include/Register/Cpuid.h", or else to another (new) header fi=
le
> in that directory.
> >
> > Jeff, what do you think?
> >
> > Thanks!
> > Laszlo
> > _______________________________________________
> > edk2-devel mailing list
> > edk2-devel@lists.01.org
> > https://lists.01.org/mailman/listinfo/edk2-devel
> >