From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from NAM04-DM6-obe.outbound.protection.outlook.com (NAM04-DM6-obe.outbound.protection.outlook.com []) by mx.groups.io with SMTP id smtpd.web09.26.1616599956611292901 for ; Wed, 24 Mar 2021 08:32:37 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@amd.com header.s=selector1 header.b=jbihWG/I; spf=permerror, err=parse error for token &{10 18 %{i}._ip.%{h}._ehlo.%{d}._spf.vali.email}: invalid domain name (domain: amd.com, ip: , mailfrom: brijesh.singh@amd.com) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=bjlZ4wAu/csQYWn7It6BSAUPe808y3z4y8+zNgBZ9VCQHLu+tR/5PBM+cHJBZ9Ne/OyzQYKuTM9xM70VheJwRpebJ06qxLA2gnDwn2SXG12EpQuNriE7mBhR04KCGf7mk78+f4A0XLIsc8YbFaQTb1yS2JTMhzvEQUW0Bozp56M3T3GsAYnP+LyFiNy2pwXYmx1bKKYklAp7igyuJewXYBcbIqhsq8Q4fmxZvhTIe1Py1Kq03vvHhFjnbd4XbeZnLZjbfhTu6zq/yekQAO3KafXV3x6RNDe7vI5Q/WzrqonIEEuAyNtVTYRckbXkE9wBGrj+efDA3ltEsLkyROT+vw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=qJphL8lax2byb2ECbn+UEXIL4c+3c7klq+og4a0928w=; b=KSGqPd3+E9A5jlZ3OgbilsOjdl5V4mlFJmnCjNdvLM0GkGwe+ABtJEKzoZpeCo7LCYDvZjVaMAijfHUmzW578M1nQPvNTn6EW2KeKkLeBvSoB+D9YSgfcQDYq/Ro03ziY1gBG/pmaNwtbO8KjvlSci110CpsHSE50sCRJlNIQM7q8wQ69+7WJ3XqnKpDdmc08W20z1DV7miq5nNL+/9RI7vF3VMs0JCmINcgKYVQLSyCHdrm/s8RoWtjeViVcx7e6qQbWqrPuvF3dO2v6Ek2rIFWw736SnqNyjXnjxV9tZtaWWgvckzCITKhbq3dOrCtj0y3xbaQGHcmC1srPL5Q+Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass header.d=amd.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=qJphL8lax2byb2ECbn+UEXIL4c+3c7klq+og4a0928w=; b=jbihWG/In8iWCtdbsZVkU/mnN6wycus+Jd+IjUdtgArwtzhi6lvZXeMQezUV9tcf6QsR4hA2GnDEJp26d+e8TeIjobU77uhdfW5HTTOOJc4RCDYnHw8R1V48COm5ZooXyx/qnvjk+v3kCER2RRoZs8VnRKKSTatkKat38MxnsZU= Authentication-Results: edk2.groups.io; dkim=none (message not signed) header.d=none;edk2.groups.io; dmarc=none action=none header.from=amd.com; Received: from SN6PR12MB2718.namprd12.prod.outlook.com (2603:10b6:805:6f::22) by SA0PR12MB4430.namprd12.prod.outlook.com (2603:10b6:806:70::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3955.18; Wed, 24 Mar 2021 15:32:35 +0000 Received: from SN6PR12MB2718.namprd12.prod.outlook.com ([fe80::30fb:2d6c:a0bf:2f1d]) by SN6PR12MB2718.namprd12.prod.outlook.com ([fe80::30fb:2d6c:a0bf:2f1d%3]) with mapi id 15.20.3955.027; Wed, 24 Mar 2021 15:32:35 +0000 From: "Brijesh Singh" To: devel@edk2.groups.io Cc: Brijesh Singh , James Bottomley , Min Xu , Jiewen Yao , Tom Lendacky , Jordan Justen , Ard Biesheuvel , Laszlo Ersek Subject: [RFC PATCH 10/19] OvmfPkg: Define the Page State Change VMGEXIT structures Date: Wed, 24 Mar 2021 10:32:06 -0500 Message-Id: <20210324153215.17971-11-brijesh.singh@amd.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20210324153215.17971-1-brijesh.singh@amd.com> References: <20210324153215.17971-1-brijesh.singh@amd.com> X-Originating-IP: [165.204.77.1] X-ClientProxiedBy: SA9PR11CA0006.namprd11.prod.outlook.com (2603:10b6:806:6e::11) To SN6PR12MB2718.namprd12.prod.outlook.com (2603:10b6:805:6f::22) Return-Path: brijesh.singh@amd.com MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from sbrijesh-desktop.amd.com (165.204.77.1) by SA9PR11CA0006.namprd11.prod.outlook.com (2603:10b6:806:6e::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3955.18 via Frontend Transport; Wed, 24 Mar 2021 15:32:34 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 8b2c9bc5-8049-49fe-d111-08d8eeda0c08 X-MS-TrafficTypeDiagnostic: SA0PR12MB4430: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:8882; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: pyd8lmnQ+HiWFYj6Ah9u9uleS3snjHKQnA0WizvytzewJP1tUo+A/i+lw/WnOSzFpGka7yk+VVjkBz7inkksWZ/ovwluwaBQiQCxtrZX79H4xW3sKAipDke5NNplXpD9E5MaH+gqPML+Xt2UUkTyHZXx/P7e9WhV797iNH6DyhPAdaMqnHqx47A18IyG0VIUJlmGX8zDZrgMMrHqAx/Wo7bRT9AzQXWYTm6yef8kyuxhMfGByU+aCsu6SfGOYqocMJYjpGic+2gC+P5AXlXiWqW5AVsqcSoOP7p+0Y+Qqd3aTervl4s3Up10OpxR8vn7hTMFAAAGtUiEPq9hK7EGjsmJzH0NlAIXDqwumEPXQqH9ZIAxZDlN8UZYpVEHCnREImwQMVE7ayG+N+fr3kvBcCsFd7qiidAPzk/6GcpUIU9jSB4K4XdcnEWG0emPaGj9+JqWAYQZqVRmlf1hS6BaHt0CEITXIR6OSoPnzmQwUZWEQrpcOHGKSTyoy8GQmtrABQGKD5C9PE9dpxLYjBGzkahiPJfPlhjjpOzIOJ6u0MhQCHJ8r0N8sKVGAjldTuCfGv+5cG3ksp/8MTtYCfHwtWPyINX0E2wfPmtfv8OT9XcphEbtm0Gu/vvZbr3UM/Yv96ZtchUfdxWPk4S4YvkMQrGndIeMyGAmlpWHYdrx5CrVFzbivas3GxuyLZURd9TR54gxtmjbduGMDkV8miADRuqgiQnPA2CVGhf/0sBPMbkg0DHjbY20vEhEsrbegTL/ X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN6PR12MB2718.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(39860400002)(136003)(376002)(346002)(396003)(2616005)(83380400001)(66476007)(4326008)(44832011)(1076003)(6486002)(2906002)(86362001)(66946007)(478600001)(316002)(66556008)(966005)(16526019)(6666004)(26005)(54906003)(19627235002)(6916009)(186003)(5660300002)(8676002)(7696005)(956004)(8936002)(38100700001)(36756003)(52116002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData: =?us-ascii?Q?2+y11+Ia2z5T8bp0srhbVk/hxmjUo/JB0CBOQ1biqNqn4u2eoKYkz6WcuzC5?= =?us-ascii?Q?F3PdZIaW16fp1dRov0Kb36LkIuCmwWuJfyzBYFZkHKd9a1RLM5dXu6yuBWLf?= =?us-ascii?Q?mGBjm5bTJYL+5ZHC20rJGz7Wwg1WQPr1Y+IMgJLIZulF83ZiNW1dLqlHJ96S?= =?us-ascii?Q?QkSXZvjt65qRaUfniXrYtig29/MCkQ5ys3ad6yCrNpfoxErIuGobZ2RmMO0F?= =?us-ascii?Q?KpKS4No6CYOcBWdriN5xhQVel/zNt6Md0CfFqdLJ3XgA2He+jBQfDa9AWbcS?= =?us-ascii?Q?Lv2p2gR/VD9hJFmrciMielKO8p4VFxIOI0hYTyj/AzDcjwg6rKWtAbZV3U5n?= =?us-ascii?Q?Js50indi3GxZP998mZ13qjj0Q22X0N/qoYq1g8zeSe2DTqc/i7tI+6ZQN0fq?= =?us-ascii?Q?nLf4Xvwqs8GJxOTdP+94db6KW9epi1B4hdhoHWeV2gADR44eD2rUTipIXHgK?= =?us-ascii?Q?bNA5fV9sCDbWonhS2KwumaO3j0WLCciac5IbAWBui8ZR71ey0Hfrr/NXodum?= =?us-ascii?Q?sTBUrBLuZ9g3ByAdnNaAAZnFNZq0/CdTM3ilTnDW+N58swMlusoHoUROFojo?= =?us-ascii?Q?9fx5S2QUZngJbn4OqLSTA+42Ten8hAhlXqsRs161cxTd7esPf0pallx/Rscg?= =?us-ascii?Q?el8etc5a6touVKZ/UyoQt3SpI0AHm9FZNo3cErBK9szjSeyi0b0uAKr/0TAy?= =?us-ascii?Q?D1hJhsg0C6uOrXT/Qw0sQ4Y+EiO3nuhwt62Sa5APWTkG48LiipVlu2C847B7?= =?us-ascii?Q?lw7q9N6aFnx9dt042368OhPS2jZCP17Asa3DCcpi65OgGB/+f1zZ57ZTOvT2?= =?us-ascii?Q?DJAh717o1gJf7SiazNXrIK5diMlhyRe3AV8Gdqp3rZa0GAJX2aA7KxQCeFxV?= =?us-ascii?Q?BumI4zMKpoRfqGIsP2KHkuFCXJSBVAN6gJrlmY3lAlADZUp6bXfwGoKXa4D3?= =?us-ascii?Q?8hBBBqrrmi60cqMB6WqJXBqanD8Tp6Eszqth0dJHWrRe54JvOpfqaId300s1?= =?us-ascii?Q?nFFMuYEDtSJ/abAUoyV0DZEMVMGVp2Fu96CL17/C1qEYdTtZ2viY9hA5sbhr?= =?us-ascii?Q?aDob6kXNcppgeu8hnJ+J5WYJ+hpfC8B8ZXVZ36Ls+KVJZ+8Nf70g5g8jEXsT?= =?us-ascii?Q?5r0FmIXvvX88EVBl0AfxxBxB2hnkWLv5/gpQdWVbk/0QawAhcJY9eTWoMxNv?= =?us-ascii?Q?q7ACCv1QIr60MRIriKohT6ciiDzRf3a32P5AH5PuvAygLgJx9SYmnhpa3Ncs?= =?us-ascii?Q?R/jQr1/SOghO+b7GzYolvLT55BzrCwWCOALFjIM/y7tAKTHR3L55K6yrzTav?= =?us-ascii?Q?MpG6pI5RdTZDiX3ml4768cIi?= X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8b2c9bc5-8049-49fe-d111-08d8eeda0c08 X-MS-Exchange-CrossTenant-AuthSource: SN6PR12MB2718.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Mar 2021 15:32:34.6539 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: roJUTQ5/iM4vrgD9V1U+f/z08SrklXjsCusLLpl+Dfr+dzNVrR6EpRHs36VFPvGUtdzdnif0w4bKUcuWNOjASw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA0PR12MB4430 Content-Type: text/plain BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=3275 The Page State Change NAE exit will be used by the SEV-SNP guest to request a page state change using the GHCB protocol. See the GHCB spec section 4.1.6 and 2.3.1 for more detail on the structure definitions. Cc: James Bottomley Cc: Min Xu Cc: Jiewen Yao Cc: Tom Lendacky Cc: Jordan Justen Cc: Ard Biesheuvel Cc: Laszlo Ersek Signed-off-by: Brijesh Singh --- MdePkg/Include/Register/Amd/Fam17Msr.h | 17 +++++++++ MdePkg/Include/Register/Amd/Ghcb.h | 39 +++++++++++++++++--- 2 files changed, 50 insertions(+), 6 deletions(-) diff --git a/MdePkg/Include/Register/Amd/Fam17Msr.h b/MdePkg/Include/Register/Amd/Fam17Msr.h index c074e871a7..084e7fb63a 100644 --- a/MdePkg/Include/Register/Amd/Fam17Msr.h +++ b/MdePkg/Include/Register/Amd/Fam17Msr.h @@ -53,6 +53,19 @@ typedef union { UINT64 GuestFrameNumber:52; } GhcbGpaRegister; + struct { + UINT64 Function:12; + UINT64 GuestFrameNumber:40; + UINT64 Operation:4; + UINT64 Reserved:8; + } SnpPageStateChangeRequest; + + struct { + UINT32 Function:12; + UINT32 Reserved:20; + UINT32 ErrorCode; + } SnpPageStateChangeResponse; + VOID *Ghcb; UINT64 GhcbPhysicalAddress; @@ -65,6 +78,10 @@ typedef union { #define GHCB_INFO_TERMINATE_REQUEST 256 #define GHCB_INFO_GHCB_GPA_REGISTER_REQUEST 18 #define GHCB_INFO_GHCB_GPA_REGISTER_RESPONSE 19 +#define GHCB_INFO_SNP_PAGE_STATE_CHANGE_REQUEST 20 +#define GHCB_INFO_SNP_PAGE_STATE_CHANGE_RESPONSE 21 +#define SNP_PAGE_STATE_PRIVATE 1 +#define SNP_PAGE_STATE_SHARED 2 #define GHCB_TERMINATE_GHCB 0 #define GHCB_TERMINATE_GHCB_GENERAL 0 diff --git a/MdePkg/Include/Register/Amd/Ghcb.h b/MdePkg/Include/Register/Amd/Ghcb.h index ccdb662af7..f3c719e70e 100644 --- a/MdePkg/Include/Register/Amd/Ghcb.h +++ b/MdePkg/Include/Register/Amd/Ghcb.h @@ -49,12 +49,13 @@ // // VMG Special Exit Codes // -#define SVM_EXIT_MMIO_READ 0x80000001ULL -#define SVM_EXIT_MMIO_WRITE 0x80000002ULL -#define SVM_EXIT_NMI_COMPLETE 0x80000003ULL -#define SVM_EXIT_AP_RESET_HOLD 0x80000004ULL -#define SVM_EXIT_AP_JUMP_TABLE 0x80000005ULL -#define SVM_EXIT_UNSUPPORTED 0x8000FFFFULL +#define SVM_EXIT_MMIO_READ 0x80000001ULL +#define SVM_EXIT_MMIO_WRITE 0x80000002ULL +#define SVM_EXIT_NMI_COMPLETE 0x80000003ULL +#define SVM_EXIT_AP_RESET_HOLD 0x80000004ULL +#define SVM_EXIT_AP_JUMP_TABLE 0x80000005ULL +#define SVM_EXIT_SNP_PAGE_STATE_CHANGE 0x80000010ULL +#define SVM_EXIT_UNSUPPORTED 0x8000FFFFULL // // IOIO Exit Information @@ -154,4 +155,30 @@ typedef union { #define GHCB_EVENT_INJECTION_TYPE_EXCEPTION 3 #define GHCB_EVENT_INJECTION_TYPE_SOFT_INT 4 +#define SNP_PAGE_STATE_MAX_NPAGES 4095 +#define SNP_PAGE_STATE_MAX_ENTRY 253 +#define SNP_PAGE_STATE_PRIVATE 1 +#define SNP_PAGE_STATE_SHARED 2 +#define SNP_PAGE_STATE_PSMASH 3 +#define SNP_PAGE_STATE_UNSMASH 4 + +typedef PACKED struct { + UINT64 CurrentPage:12; + UINT64 GuestFrameNumber:40; + UINT64 Op:4; + UINT64 PageSize:1; + UINT64 Rsvd: 7; +} SNP_PAGE_STATE_ENTRY; + +typedef PACKED struct { + UINT16 CurrentEntry; + UINT16 EndEntry; + UINT32 Rsvd; +} SNP_PAGE_STATE_HEADER; + +typedef struct { + SNP_PAGE_STATE_HEADER Header; + SNP_PAGE_STATE_ENTRY Entry[SNP_PAGE_STATE_MAX_ENTRY]; +} SNP_PAGE_STATE_CHANGE_INFO; + #endif -- 2.17.1