From nobody Sat Nov 2 16:37:03 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zoho.com; spf=none (zoho.com: 198.145.21.10 is neither permitted nor denied by domain of lists.01.org) smtp.mailfrom=edk2-devel-bounces@lists.01.org; Return-Path: Received: from ml01.01.org (ml01.01.org [198.145.21.10]) by mx.zohomail.com with SMTPS id 1487278958879335.79366704957147; Thu, 16 Feb 2017 13:02:38 -0800 (PST) Received: from [127.0.0.1] (localhost [IPv6:::1]) by ml01.01.org (Postfix) with ESMTP id 237948210B; Thu, 16 Feb 2017 13:02:36 -0800 (PST) Received: from NAM03-BY2-obe.outbound.protection.outlook.com (mail-by2nam03on0626.outbound.protection.outlook.com [IPv6:2a01:111:f400:fe4a::626]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 23E3F82105 for ; Thu, 16 Feb 2017 13:02:34 -0800 (PST) Received: from leduran-Precision-WorkStation-T5400.amd.com (165.204.77.1) by BN6PR12MB1236.namprd12.prod.outlook.com (10.168.227.22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.888.16; Thu, 16 Feb 2017 21:02:29 +0000 X-Original-To: edk2-devel@ml01.01.org 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=YmB+UAT8reJ8NkEpGZczzXy6Cg00wmbSp/e1RDLkT/s=; b=a9X4e5LbW6xeEhwVSDXWY+SaU/2g/1HYw7nEx2Q4pJn6nKd9FOxTYiz1LFmLs7anGoMS+vx9ti1EWsxeutrlqTqrcKShrsAhnOGn/fYXqkWrlle9tg0sNf/P4tdarpWhruYcasG/ZjYIHstONCCgkaMBqslbi4Iz1rXe/6QtX5Y= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=leo.duran@amd.com; From: Leo Duran To: Date: Thu, 16 Feb 2017 15:02:06 -0600 Message-ID: <1487278926-14303-5-git-send-email-leo.duran@amd.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1487278926-14303-1-git-send-email-leo.duran@amd.com> References: <1487278926-14303-1-git-send-email-leo.duran@amd.com> MIME-Version: 1.0 X-Originating-IP: [165.204.77.1] X-ClientProxiedBy: DM5PR13CA0037.namprd13.prod.outlook.com (10.168.240.151) To BN6PR12MB1236.namprd12.prod.outlook.com (10.168.227.22) X-MS-Office365-Filtering-Correlation-Id: 11b264d2-de14-4ae9-c9d9-08d456af1edf X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(48565401081); SRVR:BN6PR12MB1236; X-Microsoft-Exchange-Diagnostics: 1; BN6PR12MB1236; 3:zKSqto4JA+pJRiSZ7R67+hVklOrdBWtqeLs6gqtpxQLQeXP7Fx+KmleWo238rjTOTsZZz9eOY8VjpDfTbhdoB2rTnnX9cV1XGrB4pfGQjuRBC30DyLs4AJXfHbCBuRzGMQMjZtxq2jRD44rWhDSiA9ezIu7l870S5yzoIv4VHwQL683tqJlxKViXKiwZh4A7JCgZ17TOiXK2+g2aYcx4ORpCOjaXr7p1c8Wxt7QGzl3pelCP5Tdk7x7BtFCAOqMIFJONhOc/qg/QDCP4ml0uQd5oFv0W4fPxrjsoj4/bT78=; 25:a0bS8XuCXEnN55bhE1xpfcdm7wbpbMZbwlxhV3Q7UUcrHr5LmjV5HmfXUj+Kv/UhRYoUfPnDl7oWZIhFhcOycnjw91l+SftEYqbYBrdVyVESjD+pI8BzxZ5sVRIhmqJEKohjoHFBQwHNTaWaLW2fYInHwQbRiJaZCLzHvvGcJphT9PKDFLTvzAdco9CWWJkIx9Gv+FPMs6PbZwcwHVtcWA0LoPWb4JrSXwJv8UG8HhHjnL8kel5/HoAS2L+9oW8GVYZ2jky3qm9yB4RjyP3DMkAOkBhxzRWzeALeYmVUP9qB0v4t6vD03Q53WbzX0HFOpj3/+k3NhCDv9dP4Mt0dO+pTtxaSyzKqNEliIK9wWyadbcQDpPEw7SDQVZ+nt1seJSbqa1yoOQirdhESbebpAi5Z+RduBOpoqqWdpGGGmM5PpqPX2CLp05kcARKN8X73UU0UXTTI3b+qChNM/nzblg== X-Microsoft-Exchange-Diagnostics: 1; BN6PR12MB1236; 31:3MOgTIDHlxHYqWs3zungedT9esOqfDzzmhYaWWyau75+bItMfYBot0OsP1EiR1rQDWm/ewp1UEJnKXYmAoGXRCilgGCK+CM5EdVxish87j8f73mZX0kQot2r+fdI+Y6w20iEhAqL3y0MAeuZz7+ya1NN0joZP0GlHAKpA//jQSIpU/xyMbjWD1ommPgFRC5ULyTftZm/CZeLUrHvMvZVLP0URs2a6EhHYeOMd0wULmw=; 20:pGhdwQRbtThDIKMpS7f/j6QD94izvfol+p/Uzueh30ap2snp7hejVhUH9l0jl6T+IZEdZzsCAsnDBqMSEJ/QDDoGNmVubZsxF8N/ATIQIKgCtoAoXTkHoxRmIpGl+jz4uCfROQHCBzxCHZOAXFn4won5Jw+k5nMPbQ+b5aBtG5dSUtfgupbj+/0IsxVz+kaAVsMhbjOEtHEcM/t8Sry020vzfhD2iIDG6mHHr3HOHhUf7SnBZER0AeR9GzEQFNVORi8ZaPSRWiDaKDgDfhbGZM1/F3qkt7qg5FZ993t4yoEGNqO3JwoThLCJRuylFyn82rUh8GrTlLYTOsffykFzQc375lcqHh89qudUJCFi3yh4DkCjl4JYbgxVWCjy6tJ9Is6I/k5DN0ERa9MqFdPOI00Eo6wsNNJGb7HM2fE0N+A16nLDTpi5YO7kavDov3RcL+JikSF7DX4l1XEYPj3xNs1c2ZGzLr+z39x3okWXH+pSfkhXaa4e8MNCg6HAYxHq X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(767451399110)(228905959029699); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040375)(601004)(2401047)(5005006)(8121501046)(3002001)(10201501046)(6055026)(6041248)(20161123564025)(20161123560025)(20161123555025)(20161123558025)(20161123562025)(6072148); SRVR:BN6PR12MB1236; BCL:0; PCL:0; RULEID:; SRVR:BN6PR12MB1236; X-Microsoft-Exchange-Diagnostics: 1; BN6PR12MB1236; 4:DaD/30qMBZR9xwxlNQhX2GDoJNMIo4Xmv8q10poymLgeckYW//c5vFC0xkthiEoIkuhawFp/RxeBEGEnN6h4EiC3pwYL2OppbWHGwP/PzsAEKYmgcsJ3u11SuefTonDBZRg0ZeK/1XsOADkUYhdDTAcc+vYsdyoZ0EF07DxvSuLWdKrIzFTl7A5dCota3ydM+kjZe60Q2/EgvHTuhUQ5Z8qM63mUujYgpMw2BO4ZqCii8qOwpY9Ii1bcVJ3MxklAzii1CB7f73NXy4XSMiTwew4se73zBdiEYLD78N7sSkWau0A11JtqEM7tlK+TuinwGMfbGNIFU2jr6umVI0++NEBIoudw54ej9Rsg1OzAY4Vfx/PHRCtGnK6jSotZyOHd/XOkU/pIx2b3a6AikSkzkz7CYRGpt3MFhs7c4weStkhf9tEwVVlvfUEBoaqWIVVHn2RUG1g1czS4lTdTTQunnaa2SLezbJHJwBf5e6Hnb9cLRV+HjxlnlEFJI7yldjoZu+FdkUXzWEjdx9afKdVlQv0G0QaJhYBuVCO0hBB6HMTqZs1NeEHVEYDsSmqgHFytxJaIqhbCNDJug/nzaX2FzPVfsZpvcCMp2DFGRoBqfMBKbjntjQs/U6ybQjMcrJW2oJNxBS06YGVJz79FgT/dLQs/zmILmSRyu+4JY6mndPbBMtPEvsCK2zET4iMqzB9P X-Forefront-PRVS: 0220D4B98D X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4630300001)(6009001)(6029001)(7916002)(39840400002)(39410400002)(39450400003)(39860400002)(39850400002)(199003)(189002)(54906002)(8676002)(36756003)(6916009)(68736007)(38730400002)(6666003)(6486002)(97736004)(53936002)(50986999)(110136004)(66066001)(76176999)(101416001)(5003940100001)(50466002)(81166006)(50226002)(92566002)(81156014)(6116002)(106356001)(53416004)(42186005)(33646002)(48376002)(189998001)(305945005)(2950100002)(7736002)(5660300001)(105586002)(4326007)(2351001)(2906002)(86362001)(3846002)(25786008)(47776003)(389900003)(213903007)(19627235001); DIR:OUT; SFP:1101; SCL:1; SRVR:BN6PR12MB1236; H:leduran-Precision-WorkStation-T5400.amd.com; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; Received-SPF: none (zoho.com: 198.145.21.10 is neither permitted nor denied by domain of lists.01.org) client-ip=198.145.21.10; envelope-from=edk2-devel-bounces@lists.01.org; helo=ml01.01.org; Received-SPF: None (protection.outlook.com: amd.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BN6PR12MB1236; 23:T0ZI8NEltZioEiU3FaSp5EfBBI8yImxZt8vbSMRUN?= =?us-ascii?Q?k4y9TbYBvkTxLWxzINE0s3OjVNJjQj2BNo4LBeIiK3G1rkkAsFzAMWT5CxK6?= =?us-ascii?Q?mPdjz8zP26pr7hv4Xap+7sayqhQTQh+gzyTbsK6WUWBs+ePHoK31sV5Nikmv?= =?us-ascii?Q?JcFNGAladTAVXpMN91+PxGUf+F5FAG1s5LtnA1uAKje1509j+cBRTCqIhmWF?= =?us-ascii?Q?zQ4M3IXvtRoruoO0MXpVmoEp4vsiRBYdS6EK3DEacW1wAtRXid7PXs+Per9P?= =?us-ascii?Q?d2Ir6gjK9NHEE8xy2w9f0Hh59RhLTt+cVZpzrrdJ3U/p1rH8nZyEsekJpSd0?= =?us-ascii?Q?Cw7Ho/e94jKuv1QfSIHXVMhZOs7n+v8mG0mr9LJlSwOMm9TQsKF768PNBs98?= =?us-ascii?Q?qRdTFCuIiqoVUpKeDKlHRVcQiYbJkofbg4sInjTVbYVbB8lS7BoJqZf19/OI?= =?us-ascii?Q?sZGNpJMRHKbrMmH5EZ3BbgJan59Na1TUpJL1JOngdEN2ecp/DmIgDdc1T2GG?= =?us-ascii?Q?IWEwm6e/YqjL893M3rXoY1TzhhOlo+GEtg443L94jSa8twPHNjXukArZb9+e?= =?us-ascii?Q?ReFm2gBMCqnNmFeSD9txrsGLGRRSayvrVecHRSZi+xBwikv4tGrd9d4PJfTz?= =?us-ascii?Q?sIoBEpTkp20qa/QzQdrSAePR7wYb2pAK9Vgll/8HCN+nRPM6DK86EpNXBsjp?= =?us-ascii?Q?AIhS6yzQxUQanX2u1cx1ZBVGLSGzdf76ZC6V0N6pqCvLF7a4+bB2rCDIhoR7?= =?us-ascii?Q?p/5IT89K2E/BvHS6YmxCCYvJxG2+zdCXO2KP83KI4HqZXm/HlHeP3GqWYXPq?= =?us-ascii?Q?K6/ieS6AG90rN/GiEnjkH2IyTqyBWERc6Oi9aZvKj/PHesIxTt2xyihTMHoF?= =?us-ascii?Q?LkvHUaB68Ep9Lo7K/bgK6urwrzSAlCspLTX3lbuBFQG50DdhDeBVeaM7pqdw?= =?us-ascii?Q?7wutMjxk+qUn4iOFjLFhhHC9jaqigTSfJVK4ri/H7BHkjKJqAEoCZQ2FMZMX?= =?us-ascii?Q?nfd6pKl8H8qh48v94QFUNp+psdh7kNu8GJLlqAGIVhiF4Q1EDAOE3/TcUwEk?= =?us-ascii?Q?VDX9cjcyYLlfwBkbK/H4ZhjD6apOL0JmmiUHZzWjbxzbpxQSv14tn5Xm4Zkd?= =?us-ascii?Q?Zyk18xukEAy/PhvIwu4nQtCf45G6kJi3h224e96Gs3N1vgjP2TB6lgD/PYkx?= =?us-ascii?Q?XFeZ+kk7moo4JFpEIFpf/M9yG0ag2FA0mVhvD6MVjHvVs59IR6CsYDLbA2tY?= =?us-ascii?Q?xZLA4vYshwkug6sIbFjmYY6qXCJaCECb4m+p04OlelhWsod0wkeLQErNSB01?= =?us-ascii?Q?/Gg1K8TWZS/94CExaI7oO4=3D?= X-Microsoft-Exchange-Diagnostics: 1; BN6PR12MB1236; 6:xGBkRLAuZty0/YWA0AEKZseHoNzYoABv6uEysYx6mBkUSECdTcjaBdc3j8Xc1EZBEPVDnNPmLdrghB4vBnIEeWLoHk2NGdtXFh/acTcxMxzDUfvdMbdNGYvkN6TS2QGv7Wem0RbQuKisQZFEuLiIM/jq50qdeDVH/fo7L8OnGpgrEG3/CUsKkRYJEyeJVaW48xpDd8KD2/b+AmBSjlyBg5ow46BVjSMCTaCoCeEgYA2UGJTLHEUV1eG7QTzm1qnpm7TxBE/Dvj0pKvizRBtEmWCCbr/LeExhMUqGKbrCQseUKq6gR1o2ddVaXfkZMitS5KPgtSsj7elTtgpHqpPDxTWR/R/O3TOKYarY4zeSF2TZZvORtKxo6RH46teivbwwYpe4oMbxTxzNAG+Bj+yNrw==; 5:UgbhMS1KU42UBL6p0yhINjszJRLXfYxDbPViIMB5qfEJyoO/joEQdzcXaStPRzrCz6/cNf7qoz14MlYQC6iyZ0s3ZLkEQNRmqawjlOjCuGqxE9Ai8D0oxdr/T7TFXmBPcRSHwWKRohp2YftIYZ/sTWJzqthKcSUuCA+9RhBpL3I=; 24:3wLatRnV2v425nWGkDA+VXrWNnrXq+8eyTy+e/cPyezF9Dqngr61QTkdoVZXkWzO9EnaooDcRWVAonAVDxTfhCYvb4txiHfmRZXUTA7Xwug= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; BN6PR12MB1236; 7:VcXLYGu8OaSXQigJAQOWJ+HrAIa+aMM6+BZzVzJtsdaPaiegrsJXRFXIvMikHuNon0wT1w9ZCshXI9qVluhcVLwdmmOmYe8BS+zXSGgECpKFQ4CegMIK5WS83Fb9Dj+D3uY1yfxMcFKuF6EbAqQSt/jQH/pfLYCQK98c4YWmkFFasp7C+xa+JYsw6WwbxC9IMiufZqi1oH70DS9Mhtw2MG7sbhieuOwVJQ7koIFCZKJHbNjDxlnSYQnjCc+hHDastx5mR/69AzFIV+dYiAcY3hiEUxdX2maxb9U2QkCCmaTSi+QXAHkqsPxGCE6I+J27bzsBR9HpGrHoAPYX8vBdSA==; 20:FTaGt64T4t2aCz92x/YKZDtb8oWAZ6yCfBSh4uy7imoemMGJRmqOJjWtOcSVPdcBJUEPVgJfmvwqPouET7Iteqkr0hdNV359t1Q+tlR89nWYjT8c0t6ZFA8NnXp074ijnWZn5PfpDn0laQD+QW1/+TUqUz2q4uU+8vmDxqBLucaYum6HeyVqJFAubHJC+DxstPm8iSz0HhGRREQJLAhRuzCBCKvrStTc16bpLAmOWYIV/i7NVtPt0UA7pfDAeWaN X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Feb 2017 21:02:29.8326 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN6PR12MB1236 Subject: [edk2] [PATCH v3 4/4] MdeModulePkg/Universal/Acpi/BootScriptExecutorDxe: Add support for PCD PcdPteMemoryEncryptionAddressOrMask X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Feng Tian , Brijesh Singh , Leo Duran , Laszlo Ersek , Jeff Fan , Star Zeng Content-Transfer-Encoding: quoted-printable Errors-To: edk2-devel-bounces@lists.01.org Sender: "edk2-devel" X-ZohoMail: RSF_4 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" This PCD holds the address mask for page table entries when memory encryption is enabled on AMD processors supporting the Secure Encrypted Virtualization (SEV) feature. This module updates the under-4GB page tables configured by the S3-Resume code in UefiCpuPkg/Universal/Acpi/S3Resume2Pei. The mask is saved at module start (ScriptExecute.c), and applied when tables are expanded on-demand by page-faults above 4GB's (SetIdtEntry.c). CC: Jeff Fan Cc: Feng Tian Cc: Star Zeng Cc: Laszlo Ersek Cc: Brijesh Singh Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Leo Duran --- .../Acpi/BootScriptExecutorDxe/BootScriptExecutorDxe.inf | 2 ++ .../Universal/Acpi/BootScriptExecutorDxe/ScriptExecute.c | 7 +++++++ .../Universal/Acpi/BootScriptExecutorDxe/ScriptExecute.h | 2 ++ .../Acpi/BootScriptExecutorDxe/X64/SetIdtEntry.c | 16 +++++++++++-= ---- 4 files changed, 22 insertions(+), 5 deletions(-) diff --git a/MdeModulePkg/Universal/Acpi/BootScriptExecutorDxe/BootScriptEx= ecutorDxe.inf b/MdeModulePkg/Universal/Acpi/BootScriptExecutorDxe/BootScrip= tExecutorDxe.inf index 7cd38cf..29af7f5 100644 --- a/MdeModulePkg/Universal/Acpi/BootScriptExecutorDxe/BootScriptExecutorD= xe.inf +++ b/MdeModulePkg/Universal/Acpi/BootScriptExecutorDxe/BootScriptExecutorD= xe.inf @@ -5,6 +5,7 @@ # depends on any PEI or DXE service. # # Copyright (c) 2006 - 2016, Intel Corporation. All rights reserved.
+# Copyright (c) 2017, AMD Incorporated. All rights reserved.
# # This program and the accompanying materials are # licensed and made available under the terms and conditions of the BSD Li= cense @@ -85,6 +86,7 @@ gEfiMdeModulePkgTokenSpaceGuid.PcdUse1GPageTable ## SOMETIM= ES_CONSUMES gEfiMdeModulePkgTokenSpaceGuid.PcdMemoryProfilePropertyMask ## CONSUMES gEfiMdeModulePkgTokenSpaceGuid.PcdAcpiS3Enable ## CONSUMES + gEfiMdeModulePkgTokenSpaceGuid.PcdPteMemoryEncryptionAddressOrMask ##= CONSUMES =20 [Depex] gEfiLockBoxProtocolGuid diff --git a/MdeModulePkg/Universal/Acpi/BootScriptExecutorDxe/ScriptExecut= e.c b/MdeModulePkg/Universal/Acpi/BootScriptExecutorDxe/ScriptExecute.c index f67fbca..5146b33 100644 --- a/MdeModulePkg/Universal/Acpi/BootScriptExecutorDxe/ScriptExecute.c +++ b/MdeModulePkg/Universal/Acpi/BootScriptExecutorDxe/ScriptExecute.c @@ -5,6 +5,7 @@ in the entry point. The functionality is to interpret and restore the S3= boot script =20 Copyright (c) 2006 - 2016, Intel Corporation. All rights reserved.
+Copyright (c) 2017, AMD Incorporated. All rights reserved.
=20 This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD = License @@ -23,6 +24,7 @@ EFI_GUID mBootScriptExecutorImageGuid =3D { }; =20 BOOLEAN mPage1GSupport =3D FALSE; +UINT64 mPteMemoryEncryptionAddressOrMask =3D 0; =20 /** Entry function of Boot script exector. This function will be executed in @@ -440,6 +442,11 @@ BootScriptExecutorEntryPoint ( } } =20 + // + // Save OrMask to fix-up Address field in page-fault handler + // + mPteMemoryEncryptionAddressOrMask =3D PcdGet64 (PcdPteMemoryEncrypti= onAddressOrMask); + BufferSize =3D sizeof (BOOT_SCRIPT_EXECUTOR_VARIABLE); =20 BootScriptExecutorBuffer =3D 0xFFFFFFFF; diff --git a/MdeModulePkg/Universal/Acpi/BootScriptExecutorDxe/ScriptExecut= e.h b/MdeModulePkg/Universal/Acpi/BootScriptExecutorDxe/ScriptExecute.h index 772347a..cb88549 100644 --- a/MdeModulePkg/Universal/Acpi/BootScriptExecutorDxe/ScriptExecute.h +++ b/MdeModulePkg/Universal/Acpi/BootScriptExecutorDxe/ScriptExecute.h @@ -5,6 +5,7 @@ in the entry point. The functionality is to interpret and restore the S3= boot script=20 =20 Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.
+Copyright (c) 2017, AMD Incorporated. All rights reserved.
=20 This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD = License @@ -87,5 +88,6 @@ SetIdtEntry ( extern UINT32 AsmFixAddress16; extern UINT32 AsmJmpAddr32; extern BOOLEAN mPage1GSupport; +extern UINT64 mPteMemoryEncryptionAddressOrMask; =20 #endif //_BOOT_SCRIPT_EXECUTOR_H_ diff --git a/MdeModulePkg/Universal/Acpi/BootScriptExecutorDxe/X64/SetIdtEn= try.c b/MdeModulePkg/Universal/Acpi/BootScriptExecutorDxe/X64/SetIdtEntry.c index 6674560..37724f0 100644 --- a/MdeModulePkg/Universal/Acpi/BootScriptExecutorDxe/X64/SetIdtEntry.c +++ b/MdeModulePkg/Universal/Acpi/BootScriptExecutorDxe/X64/SetIdtEntry.c @@ -4,6 +4,8 @@ Set a IDT entry for interrupt vector 3 for debug purpose for x64 platform =20 Copyright (c) 2006 - 2015, Intel Corporation. All rights reserved.
+Copyright (c) 2017, AMD Incorporated. All rights reserved.
+ =20 This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD = License @@ -25,6 +27,10 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHE= R EXPRESS OR IMPLIED. #define IA32_PG_RW BIT1 #define IA32_PG_PS BIT7 =20 +#define PAGING_4K_ADDRESS_MASK_64 0x000FFFFFFFFFF000ull +#define PAGING_2M_ADDRESS_MASK_64 0x000FFFFFFFE00000ull +#define PAGING_1G_ADDRESS_MASK_64 0x000FFFFFC0000000ull + UINT64 mPhyMask; VOID *mOriginalHandler; UINTN mPageFaultBuffer; @@ -207,7 +213,7 @@ AcquirePage ( // // Link & Record the current uplink. // - *Uplink =3D Address | IA32_PG_P | IA32_PG_RW; + *Uplink =3D Address | (mPteMemoryEncryptionAddressOrMask & PAGING_4K_ADD= RESS_MASK_64) | IA32_PG_P | IA32_PG_RW; mPageFaultUplink[mPageFaultIndex] =3D Uplink; =20 mPageFaultIndex =3D (mPageFaultIndex + 1) % EXTRA_PAGE_TABLE_PAGES; @@ -245,19 +251,19 @@ PageFaultHandler ( if ((PageTable[PTIndex] & IA32_PG_P) =3D=3D 0) { AcquirePage (&PageTable[PTIndex]); } - PageTable =3D (UINT64*)(UINTN)(PageTable[PTIndex] & mPhyMask); + PageTable =3D (UINT64*)(UINTN)((PageTable[PTIndex] & ~(mPteMemoryEncrypt= ionAddressOrMask & PAGING_4K_ADDRESS_MASK_64)) & mPhyMask); PTIndex =3D BitFieldRead64 (PFAddress, 30, 38); // PDPTE if (mPage1GSupport) { - PageTable[PTIndex] =3D (PFAddress & ~((1ull << 30) - 1)) | IA32_PG_P |= IA32_PG_RW | IA32_PG_PS; + PageTable[PTIndex] =3D ((PFAddress | (mPteMemoryEncryptionAddressOrMas= k & PAGING_1G_ADDRESS_MASK_64)) & ~((1ull << 30) - 1)) | IA32_PG_P | IA32_P= G_RW | IA32_PG_PS; } else { if ((PageTable[PTIndex] & IA32_PG_P) =3D=3D 0) { AcquirePage (&PageTable[PTIndex]); } - PageTable =3D (UINT64*)(UINTN)(PageTable[PTIndex] & mPhyMask); + PageTable =3D (UINT64*)(UINTN)((PageTable[PTIndex] & ~(mPteMemoryEncry= ptionAddressOrMask & PAGING_4K_ADDRESS_MASK_64)) & mPhyMask); PTIndex =3D BitFieldRead64 (PFAddress, 21, 29); // PD - PageTable[PTIndex] =3D (PFAddress & ~((1ull << 21) - 1)) | IA32_PG_P |= IA32_PG_RW | IA32_PG_PS; + PageTable[PTIndex] =3D ((PFAddress | (mPteMemoryEncryptionAddressOrMas= k & PAGING_2M_ADDRESS_MASK_64)) & ~((1ull << 21) - 1)) | IA32_PG_P | IA32_P= G_RW | IA32_PG_PS; } =20 return TRUE; --=20 2.7.4 _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel