From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [216.205.24.124]) by mx.groups.io with SMTP id smtpd.web08.10125.1620722861218722762 for ; Tue, 11 May 2021 01:47:41 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=X24AWJWc; spf=pass (domain: redhat.com, ip: 216.205.24.124, mailfrom: lersek@redhat.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1620722860; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=YVHwHDwP+ir8ie/5BZdPKGesLWGfUAuU1Owdr9gGSMw=; b=X24AWJWcGYtX32VUV0HR8UzVvb9SPKUw404wwkGtmRHrbRyMGxToJxy3LvLu/xR+azeTU5 4mwtRXkgo6xRuWU/lMX5cZfPImL+jaOS/NQ3kx+kZyZQvPShYFicDHg9ZBY1hgpzpy0MFL Fe3E7rHnmLR6UL9pDaNyrJo5uj1PJvc= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-233-BaPFHCkUO6Kbs1HLohay3w-1; Tue, 11 May 2021 04:47:36 -0400 X-MC-Unique: BaPFHCkUO6Kbs1HLohay3w-1 Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.phx2.redhat.com [10.5.11.16]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 6E5F26D249; Tue, 11 May 2021 08:47:34 +0000 (UTC) Received: from lacos-laptop-7.usersys.redhat.com (ovpn-112-233.ams2.redhat.com [10.36.112.233]) by smtp.corp.redhat.com (Postfix) with ESMTP id 083755C1A3; Tue, 11 May 2021 08:47:30 +0000 (UTC) Subject: Re: [edk2-devel] [PATCH 03/13] MdePkg/Register/Amd: define GHCB macros for hypervisor feature detection To: devel@edk2.groups.io, brijesh.singh@amd.com Cc: James Bottomley , Min Xu , Jiewen Yao , Tom Lendacky , Jordan Justen , Ard Biesheuvel , Erdem Aktas , Michael D Kinney , Liming Gao , Zhiguang Liu References: <20210507203838.23706-1-brijesh.singh@amd.com> <20210507203838.23706-4-brijesh.singh@amd.com> From: "Laszlo Ersek" Message-ID: <88542862-2228-ccec-737a-d48c88ce59bc@redhat.com> Date: Tue, 11 May 2021 10:47:30 +0200 MIME-Version: 1.0 In-Reply-To: <20210507203838.23706-4-brijesh.singh@amd.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.16 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=lersek@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit On 05/07/21 22:38, Brijesh Singh wrote: > BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=3275 > > Version 2 of GHCB introduces advertisement of features that are supported > by the hypervisor. See the GHCB spec section 2.2 for an additional details. > > Cc: James Bottomley > Cc: Min Xu > Cc: Jiewen Yao > Cc: Tom Lendacky > Cc: Jordan Justen > Cc: Ard Biesheuvel > Cc: Laszlo Ersek > Cc: Erdem Aktas > Cc: Michael D Kinney > Cc: Liming Gao > Cc: Zhiguang Liu > Reviewd-by: Laszlo Ersek (1) It's best to use the clipboard for picking up feedback tags -- I didn't mistype my R-b. (I've checked, plus I use keyboard shortcuts to insert them; I don't type them out individually). Anyway I can fix this up upon merge. > Signed-off-by: Brijesh Singh > --- > MdePkg/Include/Register/Amd/Fam17Msr.h | 7 +++++++ > MdePkg/Include/Register/Amd/Ghcb.h | 8 ++++++++ > 2 files changed, 15 insertions(+) > > diff --git a/MdePkg/Include/Register/Amd/Fam17Msr.h b/MdePkg/Include/Register/Amd/Fam17Msr.h > index 7368ce7af02a..cdb8f588ccf8 100644 > --- a/MdePkg/Include/Register/Amd/Fam17Msr.h > +++ b/MdePkg/Include/Register/Amd/Fam17Msr.h > @@ -48,6 +48,11 @@ typedef union { > UINT32 Reserved2:32; > } GhcbTerminate; > > + struct { > + UINT64 Function:12; > + UINT64 Features:52; > + } GhcbHypervisorFeatures; > + > VOID *Ghcb; > > UINT64 GhcbPhysicalAddress; > @@ -57,6 +62,8 @@ typedef union { > #define GHCB_INFO_SEV_INFO_GET 2 > #define GHCB_INFO_CPUID_REQUEST 4 > #define GHCB_INFO_CPUID_RESPONSE 5 > +#define GHCB_HYPERVISOR_FEATURES_REQUEST 128 > +#define GHCB_HYPERVISOR_FEATURES_RESPONSE 129 > #define GHCB_INFO_TERMINATE_REQUEST 256 > > #define GHCB_TERMINATE_GHCB 0 > diff --git a/MdePkg/Include/Register/Amd/Ghcb.h b/MdePkg/Include/Register/Amd/Ghcb.h > index 712dc8e769c0..326b11479779 100644 > --- a/MdePkg/Include/Register/Amd/Ghcb.h > +++ b/MdePkg/Include/Register/Amd/Ghcb.h > @@ -54,6 +54,7 @@ > #define SVM_EXIT_NMI_COMPLETE 0x80000003ULL > #define SVM_EXIT_AP_RESET_HOLD 0x80000004ULL > #define SVM_EXIT_AP_JUMP_TABLE 0x80000005ULL > +#define SVM_EXIT_HYPERVISOR_FEATURES 0x8000FFFDULL > #define SVM_EXIT_UNSUPPORTED 0x8000FFFFULL > > // > @@ -154,4 +155,11 @@ typedef union { > #define GHCB_EVENT_INJECTION_TYPE_EXCEPTION 3 > #define GHCB_EVENT_INJECTION_TYPE_SOFT_INT 4 > > +// > +// Hypervisor features dections > +// (2) The comment style is OK now, but the comment itself has some kind of typo. I can't really guess what "dections" was supposed to be. I guess I can replace the comment with "Hypervisor feature sets". Reviewed-by: Laszlo Ersek Thanks Laszlo > +#define GHCB_HV_FEATURES_SNP BIT0 > +#define GHCB_HV_FEATURES_SNP_AP_CREATE (GHCB_HV_FEATURES_SNP | BIT1) > +#define GHCB_HV_FEATURES_SNP_RESTRICTED_INJECTION (GHCB_HV_FEATURES_SNP_AP_CREATE | BIT2) > +#define GHCB_HV_FEATURES_SNP_RESTRICTED_INJECTION_TIMER (GHCB_HV_FEATURES_SNP_RESTRICTED_INJECTION | BIT3) > #endif >