From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM01-SN1-obe.outbound.protection.outlook.com (mail-sn1nam01on0063.outbound.protection.outlook.com [104.47.32.63]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 3EDEE21CC535C for ; Thu, 6 Jul 2017 07:28:28 -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=+OOxU+7crmsix0tmP7QZIybtZA6sUXU9y4xiDOVFEAI=; b=BeBOVyrePN6bYeSe9t+5D3e48yamBIeip/l94W5MCCmEUE6AjCSmpYaoON3z0ChCs7UqNoDSPzmAmc0oK4de8/VV+wGyxA5tzEEB3+4YLFsvR9w/ZorrH1K8amGAN1gOMVBUF38eRebmkbac/8OQw2aaBiECbxPjbyMVa19QsWo= Authentication-Results: lists.01.org; dkim=none (message not signed) header.d=none;lists.01.org; dmarc=none action=none header.from=amd.com; Received: from brijesh-build-machine.amd.com (165.204.77.1) by BY2PR12MB0147.namprd12.prod.outlook.com (10.162.82.20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1240.13; Thu, 6 Jul 2017 14:30:07 +0000 From: Brijesh Singh To: edk2-devel@lists.01.org Cc: Thomas.Lendacky@amd.com, lersek@redhat.com, jordan.l.justen@intel.com, leo.duran@amd.com, Brijesh Singh Date: Thu, 6 Jul 2017 10:29:39 -0400 Message-Id: <1499351394-1175-2-git-send-email-brijesh.singh@amd.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1499351394-1175-1-git-send-email-brijesh.singh@amd.com> References: <1499351394-1175-1-git-send-email-brijesh.singh@amd.com> MIME-Version: 1.0 X-Originating-IP: [165.204.77.1] X-ClientProxiedBy: DM5PR15CA0024.namprd15.prod.outlook.com (10.173.207.162) To BY2PR12MB0147.namprd12.prod.outlook.com (10.162.82.20) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 34edb321-7a4c-4e2d-5b04-08d4c47b805c X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(48565401081)(300000503095)(300135400095)(201703131423075)(201703031133081)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095); SRVR:BY2PR12MB0147; X-Microsoft-Exchange-Diagnostics: 1; BY2PR12MB0147; 3:uLRbBseANn8NnMT0zQIm/h8ZrWIjPgUMsCP/aIgtoqNuMH+Y0+Fu7J8fxM8SwPubQk5vN92I0up7fqTcnhMx+m7RtzU3tXEilvwCfkv42e6qMuumSk9/5qNrjqgAxV7I9Phml0bXqiDn1MrFFvuWZgQwAuwpRyyfd2KefWWFH+8CGC8ddNIV5MsiWsGl9ON/W3LlUZPh3mk29xsGrkVGDNfCdHIxtu7BjxE7Ms3EJ+/4Yl/3ir9hsJRoD1YIe1XNoJ+WYV0EY4mT4u90c+1PY4gD9dyHy6AoSJvqgcDBc5qCS+R3qAj3Zp2GGnZRvSbCPEvk3pCvHV1qQY5Fg9n/cQVsq3QndPPrWF12QNWC5EbZn5gCtkf4PODAJEibk4DC563oj7asOoJSEv8ykz9mK4V7dJlqTV5rqgxUwUdpkKxgv7MehPKHOfdcU7TMDv2HRR6tknacDBg2bOrGJaX6la41OkZWkoQWd6CzkZCTUaTPAbfytYSu4l5kOI0toMRUHtDJUSGDWLf74CNxOWWsD6WCHI2Gijh/s1m32ospFaH8A7AhCdNp6nsP2IzrvvpaN9fkAt9Bh+jj/ZuHYuUJ5+CC5MfQiajQe33Yu1QEMqgqZtjBsoI2lrjjbIYGbTmDuUkEdV5Doebt+UU1WJAcN4UVZblrSHKPecNv87GTH4lRBwB6ung6f2JtKsFNbx6Jyra9hbkVIn600PryaoAFh2eRwJgbSE/AaS7a7qlt9SWYM6lWZfiNOPwzBz261+uPC2rPy/FwgNpB0LcRezDYjQ== X-MS-TrafficTypeDiagnostic: BY2PR12MB0147: X-Microsoft-Exchange-Diagnostics: 1; BY2PR12MB0147; 25:tRX2fm0kSO7QmcehpWF1RdsIc3lNj/7lPG5mXJD71BY++H9BGMwIczEnWfcwalccORq36P5QR+JbLACbRx86aRPNUCdM3+Y2DxbvHhbXIaCemK2ELI9BWHMW0Q9u7pR5hUuBToIWwRcikQJ+2yUhjNvWg8cEgzaP78WE35nk2jIJmUA+jFsnj8bnOS9xDaDxEVJZbcBgXqEMo9eAI6dSzG9OzAVzCO0/5IMhkhfG52lLqAWhPEY0y3gMPb86VAHfsz1csgBnbt8FDEGuAawJZZ2y6jdsEudX/HDe3SXg3yTcgLiyCO5v9X9lBjfZTYDtnto9sZq1x3Jlg15nKJGS3Ci9T1M9/vXydW6nSwCQwCjchx0OyBbHS6OW2Eexa78J6DEKKuP+u0p1HKxlgut/mjzgATMYm16hTdrw8Wh7VGG8X6KPISdd4aTxHcDpkBq+O4PvivgyaHiQdYsV/cN9AmZmbFYVgDJy/UExibMNHX+PZFL9s8giScyO47X+yRsfrFDxekharzxeYAIhf72rQMd4whmc9t72CMAaitRp6mLMnVN7+x3WT9rtleMBqGxjGT/EQP6nTk2jugkg0RS7Ar2S2KLGE2YmWSPsN5jwWuVHrcrJPLA5I6V0+WCSMRso0TSgM5ZmAdmBwZBJSU5yKfpJXY8XsQBPQJmOqEM073x/joPSzah3kQzezgknlCiVV2Nf6HdbbM+ZMHQkfpjqOJfO45s5IFhMu2nYY8Oq9qZr43aXzFoI9DnlOTyZBcfU6Tn7zz7ZpKRVX6oG+C73a/iTxvQDHLh6qOI3CR5MyYnHyRt9Q4L8wR7G1iUxc3JCSibesEEbEn6oDWmz3dBTTyjufnCXo/ePxPC748YYsu1wjCt9w36zZrnP7sRJfq1NyTNe/rw5n+2TaHBqsSnzhh6gDRzZeR6y/qO4zJVmaFA= X-Microsoft-Exchange-Diagnostics: 1; BY2PR12MB0147; 31:7cIPv5PwVkjrax5OIAF9ipducff2vxLhGFm/tPkr066miD5G7uVD6lsA4iZg0fmrWI11EvvCtb84PN4m1MWgs06i5XTZQ+72V1gDGiF5bju4ClYcSTNDPG8yo1WbHvezNwl859Xzx82avyiRGD1/SO5zrdh0dtWEItVWATem26RjTf3ZDVnkwhR5DmLSYk0YwToqYmpbQcwY9MghuGpDOdPdeALd/kWfHbdX+tbnddrYCXA0k2VJdyPTyhZg5J/yE35WNysFwOlrzRzYfLOUHm9N3jN7pa6qtgFVm8r1Aewv49QlLFexwyOV2aUTo9cEICbhamq0TbY8eu16R8xhshkzlYtVU2yTDqn7CQvzKRvNzxpOW6F0U3scqqb1CVPscW7l5AVg1Grs55KPkbKkZhqGOpFgnWfldzECxccPg2GspPaBMCusPhObWwnZL0O5ow96nwSj9RzSSijpwzdVvIxkGWJUhlTRPsRsLFJ036U0dMiAucCvfyC2UtTiJ7hAWAEANReFT68JFN8Ss4uw19AOwg2GLGniMe/6GAm3+3RdII3wLIbie5W2c3m37+Rjj/C4x8vQxFkBjlTmzSQBFKyg0v/S5kNRQbZbnFR92NKImW53nzujbQMu+DBkHiEYEjHDnlUP0Mtv6AGyNfGYbgCeNsieP17dN6ae7jiBI98= X-Microsoft-Exchange-Diagnostics: 1; BY2PR12MB0147; 20:i+GPBfeyUZnbUCm2seMACOhD6flgYGKvtWqoj1P01Foz2dJq/kByq2WwwXQnCTL/K3vkqLErF9k2KD/1w8XzIlCTY5lSVqUeUMm8me6Nd6Kp3tCHJivKUa+FxBNelVw7CDVZcfuj1Mhygo3pKfWpwVOwppWtZTLXKbT+BQ5Aqf/Dbyn7KPU/p+N2lJyXo8+ljArprEt2mpJGmRQxXM0QAK9+vu6qdB6pGyjHLUP3gNSJktbWEvzh6wCC3Kln3sCfdK+PrEQcA9hvPlu3NiNmhxixMvNHmViRyAw5d8i5GeUeFH5yvXd2i2q84LlNyiHAtnmcecjAOi2T96Waq/KPYYyA20ECabORKv63ZMtOriEZly16AnZqBSJvhUmfSFqv3LU+wiMAYNWbl0o4ljLVGRrexim66lRxcRGF+roNTERlRb0bqQ+ytSg8mylEaQKsTanMtuGjMbj1CMm8K5zM+j1YzELrRGGvB9e+FTzwH8buW7dtTwFZFhdR7S5cToqy X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(125551606395959)(236129657087228)(767451399110)(228905959029699); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(2017060910048)(5005006)(8121501046)(93006095)(93001095)(10201501046)(100000703101)(100105400095)(3002001)(6055026)(6041248)(20161123560025)(20161123564025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123562025)(20161123558100)(20161123555025)(6072148)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:BY2PR12MB0147; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:BY2PR12MB0147; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BY2PR12MB0147; 4:8UWHOdfV+FvHn5Lxve55dqzg8ZogZS8UNJBehQiCMR?= =?us-ascii?Q?ZLeWRZUzE5wXGkjl2Z4DHSKfZEbqCsJC0hig4GBOb3M02yrq34o+7KhWLces?= =?us-ascii?Q?h00+pMyg1ufXmOccUDQ2Q9m272cuhV4j8kXQYhFnG5fSXLaYEonyVLBomhVA?= =?us-ascii?Q?Rn3o57wYvbTd1u7LFg8ih4bxyCDkFpHESS0rUJ4fkbQ9sJvQvtrKtGdyHPcg?= =?us-ascii?Q?yoi/m9A5ASeV3xZ1dLjrLAdn038rFnVn4TJw185Qj/Fforr0RuNSflHMDxZw?= =?us-ascii?Q?1RA/3JqnZ2SeyHkdr4ZaKHRiYY+ZFNoYEM6YgNzrBA4eyyrp77ZaI9d+IK4o?= =?us-ascii?Q?9wW5G6TeOCxZatMmyQZKpBybrroWCWY/BTwFQoV1q0ASqd/6H601Z3Exb+Hp?= =?us-ascii?Q?B+eUQsDWx8nplwGppIEDTVqcjmDyeeIFMfdX/UosCcKW9fC/jsIaYq0LlvBx?= =?us-ascii?Q?MLx/NeNdGcw35DG/kpl9vBi+FCQ1EkxNQWlMHa+2N4JnUmYhqwn3KR7bnErK?= =?us-ascii?Q?ROE4mcbAccXGLES3PmVp5dk0jerqUyVw61XhmVmckC1XQYFRqHPZCIgJGCa/?= =?us-ascii?Q?/msK69fn8yrIq6Z9hFoxtFnUcnAB19OynR8/VDtE1CNsICEh1bJL7T4n/L6J?= =?us-ascii?Q?HUD5f1Xml10pOgNdU99xR43HzGltaLh4ntNSTPzYUrLxedRJGEkLYd/HZyv/?= =?us-ascii?Q?zWE0nwnFQuAZDSYlYqzt2dOuejaB5B8vb2L9jVP/7j3V3FsgQvQbQp82rT9z?= =?us-ascii?Q?DTeC3NmD3x/gqvqJImBqoWDCvlDqlXTfhRz6rgLvReoqy3cbPKh9FSMghhyM?= =?us-ascii?Q?IwmacgZ8aQWCvv9XjyKl2OwdB3YD2UOI2sKHXZrb8MKX/MZDeP+2F8ONeGGB?= =?us-ascii?Q?Zu7o+m1+i3ZxRH8rsWVdsP2138GWorTy6BdariKBn+bcqrWtRkuIxgh6GBfV?= =?us-ascii?Q?WwKUfPDs8ERj8HGdnwoXa/tmVttcu3Hit7gIukj4fLpW2jZXwXwL0rKYH+Fg?= =?us-ascii?Q?b0ZwGPYMHpxMB7Ymdwzyfqa1m6ql1gmb3IuXXhQQ6GPeyLEOnj/7HIPYiVWg?= =?us-ascii?Q?U6aS6vV0HkvBEXy5X5OWBlBYM6CQfLeUtC77wbW0JcyLgQ/QHC1MvlNI8ilP?= =?us-ascii?Q?wuKa+E+zZd4EOqXK7CZ2J+tlO2430VlW9MnXNWGNIH03vTsf0I/xjiXjiLzo?= =?us-ascii?Q?TyvcS0HBB+lEkAqzISGH5miKo6i5JUvZB96lyJzPhgVgKNN2pSR46YC8uXsr?= =?us-ascii?Q?wUnrIKZRLF6H8m69my5zXodWLkpUcR4J0C+PXFEU/hFMV/m/l3F5Yp9iUzUu?= =?us-ascii?Q?pJ/Z7iuCenFOs7lT62NuEKY2AU/7G/+Fi28Nx07aGA?= X-Forefront-PRVS: 03607C04F0 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4630300001)(6009001)(39450400003)(39850400002)(39840400002)(39860400002)(39410400002)(39400400002)(53936002)(48376002)(305945005)(2351001)(5003940100001)(2361001)(7736002)(50986999)(76176999)(5660300001)(4326008)(42186005)(2906002)(66066001)(6116002)(3846002)(47776003)(53416004)(6486002)(38730400002)(33646002)(81166006)(36756003)(189998001)(110136004)(25786009)(50226002)(8676002)(50466002)(86362001)(6666003)(2950100002)(478600001)(6916009)(19627235001); DIR:OUT; SFP:1101; SCL:1; SRVR:BY2PR12MB0147; H:brijesh-build-machine.amd.com; FPR:; SPF:None; MLV:sfv; LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BY2PR12MB0147; 23:+i5Jv9rwJ3u8Str2KZa66yONktAfsPOq8/ksMHhPb?= =?us-ascii?Q?N+160MYB6lk60k3ZVJiuyXvFtNZMC1ZaJuxZk+mMYOnRVoaII5mIgwcvMPmr?= =?us-ascii?Q?y9C6Jkxaq4RESanG9DTz7/C/hGZNVpO77VP3hWOvNelGAi0OtKCRfUV4MDp4?= =?us-ascii?Q?55hkrKpZCHjy7nF8wk/uGspNtYHWg2MCdbqt+NconB/41wIqORkRg+QinGa+?= =?us-ascii?Q?15rt1Ezv6th/L4AEVZKwBAqBrdPCBgPDv1pN1TYyTJhD3e+fQ5LcVpXsdKKq?= =?us-ascii?Q?fKYMot4T6DBsOIn/hAjSvNA+ezt5T5F8qqNwDVQ8M3Iy3EqhW4q9zFnv2iwm?= =?us-ascii?Q?XRc9JpVIBzhpYlkCPl+h9mBGPErx3bMejyAM0XTcP6LxSXkJUTwcnkLpB0Sx?= =?us-ascii?Q?P0o04y6/0RVizI0gD8FJIBJOwNqXlGtiyBLeilk8SpM4IR43CLfzcgg52Vew?= =?us-ascii?Q?ZbymQaHZSsuLrFwzdfvF2lRvS5pTEjLfpsJpwrCc6/aLfHe7UKT4ox8uAvkS?= =?us-ascii?Q?n/6Mkq7ZS6/0yCtOiaDUISDT9/HwtdAoONxCsPQ/ZEIru6fGxkNnbUB0mmv7?= =?us-ascii?Q?pDcN5bAFaUNoP7QpE2Sb5wcuzDBJOZJakOOiACa6twknZVq1co4CSwIv2aLe?= =?us-ascii?Q?eSziWOBAAAjIN3bn4twtLq2ynBkNQgwt5WedvlBlNVQreNLE0lUvLq48K+1H?= =?us-ascii?Q?7zf1p8iY1GM4ZB49UTOIsMeFLNFd5eDeTZKSWsHM8W9gw00c2c8GfQJufqA2?= =?us-ascii?Q?gXerQtbmx+Gd2VkxVHfCvgZKStVtaEuqvX91DoXrVfhmsMOIfxeWkT9WQKWx?= =?us-ascii?Q?xzNFDXK7xEmm2zxIVU70+V/hmyKYL8H7no2POlp8qxbwtcYGGyyjkD+OziuP?= =?us-ascii?Q?fkZtc7gKyF/HH/WXO5f4HWwHRrx3DJX3muDKvNce//A9/RvM/NBkAQtXnVnY?= =?us-ascii?Q?OxlhWu1VvOCLAeDlfdPVK1Buk3wlpIYsOd3jMldsv+2S/jkZRM3ETzkCFsYS?= =?us-ascii?Q?lXDWoqxHaa8PEsbVLSbJvzvd28QUuTOPZ5EJabcjvL40027rgrd33mSjYUtx?= =?us-ascii?Q?p+ugU1qT0N/9DGiiJqdUXP3VUVYIvftVwHmknYbvmz2cd6llg=3D=3D?= X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BY2PR12MB0147; 6:MbtIxhdJ/8yUjzSFfD3eb0h34rYusdRMUx8/insDbv?= =?us-ascii?Q?EnEPyglHfirtPGkvRY7OeVuJn9XmUdEyuKofdzTCksPi3UQct+J33ks2NOQ2?= =?us-ascii?Q?Xq5/E0tPz2jiZHGU+yYVQYDK7MucBxFGPZNo0oM/OTv0PjOG7wH6ZgC8Oq+w?= =?us-ascii?Q?qdzOakXrLCWhtar57P5fwVz0owKVYf6tBFvsZhTy4aocSaHj6uwwzUEaRdSZ?= =?us-ascii?Q?vLXNUq4w9vGjaCZf/mM4LRRG3Vb0RgOxe/y0v8NZVfXUS7BqH17kvAyph7F9?= =?us-ascii?Q?wLt09rR0nmAavkNGc8lf0jfvKlbIEFDcxa/rPHT414wTY2wJOoP8m+lWwDWL?= =?us-ascii?Q?g8GbjVsVAGPJJ0JZvvcLGB/issN6kaXKVT4RnlCf8IocjvGHeJrpbw5n1sJy?= =?us-ascii?Q?7yrikhf0OfPWLezHXf3zdtmK+T+tw7sT4amlzb/HCr1WdP6oRUasvVhBuwug?= =?us-ascii?Q?qMHgfJ0CGp4csocLteaBsBt5M2xdj4L998INNeF78lSLYUIjbhRJEtMWPIp6?= =?us-ascii?Q?VUCqYmAdSu1kyXlxG/2Ay1S9+p+Olrg4uR6Gc/nKU8DZWTAGTjP1z61zBwV4?= =?us-ascii?Q?vqq236eAZj+xLIvl+BjdLoa/oLfLwHZb3MbIkDn9AP1tLrJwCp17DnClP0O5?= =?us-ascii?Q?u7WY9hWIlTJipj48fJ9bhEuGmu0yBN/k6VJbhb+GV22HbFAInF7YZGEXbrvP?= =?us-ascii?Q?YLDvWC/Ie1E8j3t2YmpAqo53txm/0jJ4qBJuGwjN8jni9aALBwi1nLQFDCCi?= =?us-ascii?Q?lX9ejktNL/LC4VBEq/g61wep/3QIEPGY0IoGKWntp/O158Xhbt55PIL5xg2b?= =?us-ascii?Q?YDHXUGjkEXQ6XKQewEbngH0/MfsmUBU8wqK2AbuCW6Vm/khYYODxkeVyhFz9?= =?us-ascii?Q?NuiWaG7KgYjhQWr0jE9Rq8oMd2HXQ0hqoekMpf95p8fNKf7Uqnw8cp7IL/vN?= =?us-ascii?Q?ixRdFCVvHRBvV0T/AedoqpP8CzVozQc2oDngGKUbXlpK1kFImnj9nIoX4dZG?= =?us-ascii?Q?WfIeDuTzM5t4UEWjmEph+d?= X-Microsoft-Exchange-Diagnostics: 1; BY2PR12MB0147; 5:e5/c9YZx32mM3xdQi2+zrg5CNkpPy9/s6/mdqEcJe77xYZPOHX5IwASza14GICc+gJsw9zI8E73Tux8mugyhfsoYgb7qr8Pn2zTaZPZOzq0BFD+HDficSEb7YCVnQ1pZjd1N3kkHzPwJMfyE+XouhW1xvAf6b3Z+Zg56uVMxNMEh0y0k+Svj3thHy4hp41gOtYy8PSgNC06C0DojjW1lXaZ/uRmEcNyNzQkuom9xWyCMU5fnEHYLdKuej+AE0r0KB3NHdZtD2haKZ5/Jbv6EvovgWHM8DqPsut+mNG6veGKw2MF/QpGp+jWWBrZSnNzXhCXZ7+kyYVYQhuorNTGGsLrpFWuowoZM3ij5D/tYuPzRDXl0B/QNZL30iGbvp7wjZo5APGcxmWdy/oGeS+XNaAzokIr7xjt/cD6LMWLWIgSdTrNtuDltUQNMbaRJnWdBC2g48/oBl1hD1sKfnu3/EVV/zgqYZRX/xXewPji/fSasOWclRkBFJJEw6kVQm/7a; 24:cN6at2yOncVFPfGMbx09lJN6PArOzPW3wTtJywbFLjys5VWNmRmT8ZO0H88ZLhzxGaufnseLK6om/Sd6xb/18fxWcs3itAeLNvA8HDbaY7I= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; BY2PR12MB0147; 7:jfFslfGWtcbuJBoxiwKTC3gx5rspeLqLfLLI8J0UrAeJcoWCoImkXu2iT3RzJNIRehE+uvbUDGPp6bsbvDzmDAgDZF2X7mNwBfCwM7CNfsfUOkmuispQRqUmwohcJjk3bTmXsQt/KQ1akGo1Hteyr/rVX0xDrRVIrZ7EvcXhqC+6OYpHueXQY4kwhWUPowjrgilPMJpeoxE3/hxKv8QFrRjw36XqHjVJziNT6fzDSeLlGHb0Xzvg09ngqF8ONP88M0N/43+iK4I4u+ovRfSh7NX/flTwGCAld5qZ5ZDoovj/VfWGVr9yeQ9xKquPYt6y8p6L+aN55pODHTMM+fOgyAlu7YXRKV5FwfL8KT3C4MsA2ypQ3khxW+2rgqyYwo2bDO0jN9tAoPaEH49uGOlLDFvr2L8/3aGMAiyvuIqS6N8TNXLqB1cefkCYMXc8VfEiHS/TY9xMJ5scVPnGMPgNXRi8hvjfEY2GBK7p6muMTQioOf8DCV7OBgkq5oQHLJPXz9qLLfIaTVKQurEVcfSH8quN9nCytXeCnqvsV+9HGf4TOsNOnciN8qB+GXrZAOZ4UIQcxYAuu0vbC+nEOHXQvyW5jN5KIAP1KbPPRQm8K9gxweC/5VgJ4n/i5i2KNPgX8p9xJ26EXteikazgMHaNPyxcwq80z2CagSlC7Z2eZS61oFx9qSeyHt4Kl62BfYiLJHEBGKeUM/569wFb+8NmZFcHSHaATrkaDCzrxD6B1yB5/vkCc9qORUsOuA8wq+jhdYx8ZgK3ise8yjmuSn/ryAlAv3ycvpZFQt6YatAqyGQ= X-Microsoft-Exchange-Diagnostics: 1; BY2PR12MB0147; 20:S8bmRlCRA+ns33h+kZ9qYcXH7bRrq3maJ2LhSUQZzP2Xnc/eW+UVChg1U9l+Vif0Xv0tPA3URVnq+pH1TBL9aeOvEC2rXFADNTDAvtnJ3Rc/cCGJ3itwBqkZDPIJp/zrJyCHQmu5q1defUSoUGZdE4mvOzn4F7UhbhOWXtkgEKOxYzdliVlprKBvJTc5FHShsqmtDzF9+xrE3xQ+2cisD0Nz5QBiV5d+o3vIxugu6zjo4SHQ3+7XM9p7dN6vzOhc X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Jul 2017 14:30:07.4145 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY2PR12MB0147 Subject: [PATCH v8 01/16] OvmfPkg/ResetVector: Set C-bit when building initial page table X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 06 Jul 2017 14:28:28 -0000 Content-Type: text/plain SEV guest VMs have the concept of private and shared memory. Private memory is encrypted with the guest-specific key, while shared memory may be encrypted with hypervisor key. Certain types of memory (namely instruction pages and guest page tables) are always treated as private memory by the hardware. The C-bit in PTE indicate whether the page is private or shared. The C-bit position for the PTE can be obtained from CPUID Fn8000_001F[EBX]. When SEV is active, the BIOS is encrypted by the Qemu launch sequence, we must set the C-bit when building the page table. Cc: Jordan Justen Cc: Laszlo Ersek Cc: Tom Lendacky Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Brijesh Singh Reviewed-by: Laszlo Ersek --- OvmfPkg/ResetVector/Ia32/PageTables64.asm | 62 +++++++++++++++++++- 1 file changed, 61 insertions(+), 1 deletion(-) diff --git a/OvmfPkg/ResetVector/Ia32/PageTables64.asm b/OvmfPkg/ResetVector/Ia32/PageTables64.asm index 6201cad1f5dc..db1590aedd42 100644 --- a/OvmfPkg/ResetVector/Ia32/PageTables64.asm +++ b/OvmfPkg/ResetVector/Ia32/PageTables64.asm @@ -37,12 +37,66 @@ BITS 32 PAGE_READ_WRITE + \ PAGE_PRESENT) +; Check if Secure Encrypted Virtualization (SEV) feature is enabled +; +; If SEV is enabled then EAX will be at least 32 +; If SEV is disabled then EAX will be zero. +; +CheckSevFeature: + ; Check if we have a valid (0x8000_001F) CPUID leaf + mov eax, 0x80000000 + cpuid + + ; This check should fail on Intel or Non SEV AMD CPUs. In future if + ; Intel CPUs supports this CPUID leaf then we are guranteed to have exact + ; same bit definition. + cmp eax, 0x8000001f + jl NoSev + + ; Check for memory encryption feature: + ; CPUID Fn8000_001F[EAX] - Bit 1 + ; + mov eax, 0x8000001f + cpuid + bt eax, 1 + jnc NoSev + + ; Check if memory encryption is enabled + ; MSR_0xC0010131 - Bit 0 (SEV enabled) + mov ecx, 0xc0010131 + rdmsr + bt eax, 0 + jnc NoSev + + ; Get pte bit position to enable memory encryption + ; CPUID Fn8000_001F[EBX] - Bits 5:0 + ; + mov eax, ebx + and eax, 0x3f + jmp SevExit + +NoSev: + xor eax, eax + +SevExit: + OneTimeCallRet CheckSevFeature ; -; Modified: EAX, ECX +; Modified: EAX, EBX, ECX, EDX ; SetCr3ForPageTables64: + OneTimeCall CheckSevFeature + xor edx, edx + test eax, eax + jz SevNotActive + + ; If SEV is enabled, C-bit is always above 31 + sub eax, 32 + bts edx, eax + +SevNotActive: + ; ; For OVMF, build some initial page tables at ; PcdOvmfSecPageTablesBase - (PcdOvmfSecPageTablesBase + 0x6000). @@ -64,14 +118,19 @@ clearPageTablesMemoryLoop: ; Top level Page Directory Pointers (1 * 512GB entry) ; mov dword[PT_ADDR (0)], PT_ADDR (0x1000) + PAGE_PDP_ATTR + mov dword[PT_ADDR (4)], edx ; ; Next level Page Directory Pointers (4 * 1GB entries => 4GB) ; mov dword[PT_ADDR (0x1000)], PT_ADDR (0x2000) + PAGE_PDP_ATTR + mov dword[PT_ADDR (0x1004)], edx mov dword[PT_ADDR (0x1008)], PT_ADDR (0x3000) + PAGE_PDP_ATTR + mov dword[PT_ADDR (0x100C)], edx mov dword[PT_ADDR (0x1010)], PT_ADDR (0x4000) + PAGE_PDP_ATTR + mov dword[PT_ADDR (0x1014)], edx mov dword[PT_ADDR (0x1018)], PT_ADDR (0x5000) + PAGE_PDP_ATTR + mov dword[PT_ADDR (0x101C)], edx ; ; Page Table Entries (2048 * 2MB entries => 4GB) @@ -83,6 +142,7 @@ pageTableEntriesLoop: shl eax, 21 add eax, PAGE_2M_PDE_ATTR mov [ecx * 8 + PT_ADDR (0x2000 - 8)], eax + mov [(ecx * 8 + PT_ADDR (0x2000 - 8)) + 4], edx loop pageTableEntriesLoop ; -- 2.7.4