From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM01-SN1-obe.outbound.protection.outlook.com (mail-sn1nam01on0064.outbound.protection.outlook.com [104.47.32.64]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 6E80321CC536D for ; Thu, 6 Jul 2017 07:28:31 -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=vqLrxRhYlJKRiW06vRRH3d5ej3J4Q98dqHgGtni2USc=; b=ZsWXEk2U4phfUa8QvB2FzjuUeHthvkm1l1fIAy2hKncH1MFatVFQ3z5LvFPuijLFeGHzcA7OcCEqYllz4uraBx7vCNVUg4vgKkJ69qalRqghihJQ+UGZITX+w1IBneVqOSe+LzBrGBmuz723DwBQa9bpGgCtUOE3MqszTmDEi18= 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:09 +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:42 -0400 Message-Id: <1499351394-1175-5-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: 49a036a3-155a-4e07-596a-08d4c47b81e6 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:1/UpP3/ZzHf8rW4PSDaxr0LYTmTkIWUhzRijtDsSrSS7mqxQn9TWee3+s7kqhZYAYu2mTj8faYgmzzLZU0CWEOnePcW51T3oy0KPBeCOyJV6vudhMExY1xRIDZ9BSnAvafHiln3btF1ZVm0o93aNDOcZRHwGTJdyW3WfSimhVcLyyuKz3dmTpWVnSs5kpnsXFP803DgWErXizHNgfa03U1pPryCW4OlwHHh83qdh5tf1baQFCPFK10Qaleu5AFieCg8s5AWgIUhXjU5SrhPK/olGvEfdo7+oGG/1U1V5UbSNuI2aBbuUz8GRo3od2lS050lHmdwrqjC/ya+id3Xq+9Pf1H5/ZZzfmr8xgJ0/itSgxEX+EyD5FiwtqmJEFPtro7EbymT175qdbcqf0xr0gNYIHRnRB83xRlN/lFBrULY+VlSAiSgB+cR2rP78lHo5hrGpmKL2quT1KOaPICdPYsjp41KpvLthlQgzM9f8IDNNzvAx8lrVg7hTbqX2wouXHSNh3t1RqDo/Bluk3yJzREFX7fAfEgzUSRyoNFUzzA+aSMyKaGWZfIzTWzUFWPdU10+Cpz7aHrcUcwIcHRV16QjYNZb4c5pMm6rG2kbKpXskYgRblE6vOT1A50RGaBNvhwJFVTeYo6KAuL6UieJJRMxChgdLz7mK3+9vLAA3Z91nyFjgtIctux+kobrxb1zkx5sqQaVHMsey5+9cpJmJ6S0aIlznI5YPy4imZ1P24J/L7FpQjDCoXJGuAPfaRUoxxx3JjL4+ZfXeycwvgA4sUg== X-MS-TrafficTypeDiagnostic: BY2PR12MB0147: X-Microsoft-Exchange-Diagnostics: 1; BY2PR12MB0147; 25:bVk+vA46jc2XAwlbwC375exK/evNjvzr/uHP7yhaLlNoV/yowDaPCRdgyJSbOhihVsngLC2M1IULYoEmgKgR8hR8CaLRMfK5X9SebTbPUnVFWasVbAAtTmeDN/hKtQNmWTNBIZFv8QJEWdkRHziCAPvczqzrVJqupEmVYzc8lAd+TmHQb1iPiPSduM/kSRvM9asXaehmLVlwGj2GP5jsbBuFrElAz0OnNCV3sRNelQnaNP7sNEmG0ZqDJHbeg+w+ZROlrxPgnGhQG5ET3T1Cf5RB4XTVL1+fBL4tTLqGTR9avjybdwzDRM7G59k8T1ZCM233y+8WUQlw9H1YKuFxOA1r4OrcuFJ1IUhuNUTs21SluDHB3TFwKFZMrIf5IwRjuOtlntO3DYj9kaxJ4VMiY4jUnD7NUv4r2lflGjr03babZzOaEpiM8s/ReFerAu7FO+SZdYDt3eW6NVhUKdNnWETsMvUT8nMAXEGC0YL3hGgwyZiy7t0nZOxu/tOjohs+fsnHxPH5ugv0o/3fzeQPqJEAdFG2jThRl7eS6bpse55wKpEkEIVeR3yqhpMuOJ1GcFh6Obe3BYZkw7OW4xvcF5t53IIc3BAr1NnfZc2gOSTI2lB+rVtZVYn7u3gATOpP2IA0H2tpr7gPsuX/xnIq2cauhY8FH2AhhptAjJCkSDzWgWeLzppEkBNyRk6GQ/lrwurwMDgLQvQGzHLX1zDxrFWrzweXLvMtkCRa8fVakX+wi0jEFo1wRwOjnP6wRLkzaZMhqWxfsGVSW29CJBT+V4GJxdFpFW90VYQ/EoHzvMdBGNht5v0XPrbJYSx6iZ5FUHHngO67x76690IaeKbefN1VxWVOazz6hll9d9hDTx0QuuYianqFbP291Po6PeRZkchDS1sV4ZwDsXRVJAYvtSzgpqaRRNuBHYuohVH5U+M= X-Microsoft-Exchange-Diagnostics: 1; BY2PR12MB0147; 31:+eDWuuRaS7+GRvEvll2UijbCGJZ6nEluScenCS91YOpru4m2YLg4/m7zr3pve1itXI+VeH2oACuBJgE0Q1XVsAeP//8uvbtGk37E10M6sbbjkZd/4wcqw5hde1rio2RDKV/hbOmlyS6PhRGcrPoGNNIRehvQ2+x5FYBDr2m1VJmk0jVx4FKth57O03Asl7WQZyILjMaN7/ckdH9A4iqUAEZ5D2rKuWNUuMqvua6Usy5UGku4DBzBZYPa4gBBq52Pv2s1yXykmx2kueJeynQmrqCsxFShQBuwcNIWQ9PhbVu5ar2aDVBlEjWdKCRy25TGr7/xuip+iEiHr4tqQkAuketa9sqDVdfOWlxuqffVTlVCHmWJUf9ZcpwDC31bmL8m5x/JlTurBit+4hF7bUAPR5P1V6spbFBNMVW5SNUSYUlNiikkmBwh6lj/2OYsnLkfgQRdzJJBGEIzniZczoqZjFeKh/GwSfXijmTp1Rq2DH4tlDYAD6XSIDhRcOU6lRSROASiQ6EGEGbnL5RSPD0ZwdYilEstQB6So60SSXqGJ27vQHVwoI1ZynjaFIZuHPNDcK/xgSke4Zfb8V5mtRMB9JGJWTukkiX6Ufr6gK3IE2fkMbOI39B9U9z5Mv4zIMSpLmWW4RR0woT5j1C+CaOh72Znh28v41Z3Z+dUVg7ol3c= X-Microsoft-Exchange-Diagnostics: 1; BY2PR12MB0147; 20:uaFMVGkZamOsNDMiHihBb4sMZsazuPnIoX2gXB2Pw0PLyoAT7D6FZ2EiT6/C/AwDRVqaWVeOMFo4n9r3+ZW1a5lzD1Q2Xz4uTWe7zCg9hf4L2VgQhZtVxGgM+0usVAEgBEX5tbQXLogPvFTVT8LETrM73i77Ss1ohFDIfVGnJ+Yr0We+PZfVj9PtYgNcXxIFelsEHm0blgl7cGuAh2x5SDlYxN4KY10I82Hq3V4ArlPXo/or1VTYNxWCF5vA407lb80Tq0HBK/eLx2P6yHJ2LnMKNYhCftbmRTuhzKOLRZJeOYH5yVGkAxKZezOrB14zINUKWtb/c02EOBwb7+lFCD53obsCtDUlKSeUYAT5czQ7OsuMzA4nserjbpNy8utvow1ijpSgqBtBr5PLulKpIwXW7KpMka7dMOmiEcOlH2E7h22hoqJAqI8GlV58COchAV6jWgB0fvvSaayhMqxlRE5k6orZRkgWgU48ufxZs6QqwGvPP88sMNgfBMpLzwE+ X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(125551606395959)(133145235818549)(236129657087228)(767451399110)(148574349560750)(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:tgIqFfiMg2+mIadILo03wBglL/2Hs/lxHK5N+F9NmT?= =?us-ascii?Q?r5W0eIsx3wFtMvEidvh4NayOZrNm9LjrAEhdoZYc4XwnVZRRKkIU3WmKZHIQ?= =?us-ascii?Q?03APshh8dvfFfePtDwMM+MTPUHBxRdXQ0qe5HXsFjPLsZG1pchcgsz+ZokFB?= =?us-ascii?Q?i4MOo4SMP/v3lXpzkENlVoXXfVjWdxkqfCo+wnvkS3t/fmFiCC58EXgjK5Fh?= =?us-ascii?Q?e+1boLOgBuSpFGJJqF3DBk5wqtxVBv5UNFTwbKeIuAiYemG5sAJSeEQKOKFA?= =?us-ascii?Q?cw0FhULYwvmDWAxRB+uoLKujbAdbaAkcMh3e5XNYyjQVbUVJye2T3RsUcrOJ?= =?us-ascii?Q?TlLhHCFWY/tD2Ecq1+IAN1/5EU0fDVNiNBGadNWaEG5J5G7F6MoiBJPK+6Zb?= =?us-ascii?Q?exJl10nW7/z6e6FR71Z92/ZqGbFIHaZDel6/tC5IoKkgcPpRhzG/4cmkQHre?= =?us-ascii?Q?/GdYZdgHqAMbFHucCb3eukJsH0oLRx2yAxToC16cItTKf52wIHY/G2Mbyqhz?= =?us-ascii?Q?SVWUwJntjKdwatihMtWuwqG1fZwgSHXKXGDBl97UTGsxZKnMQnCnFvOyVFZj?= =?us-ascii?Q?NjKtR41tKoeTRz/NFzVlCSRC7If3pwkf5O7ormb5FSzihmjOUpk8aLlQwJOk?= =?us-ascii?Q?h6zCfwFgP4MIjeYuGjFBpvhIf/cR7T8AKNkhGPp6JvJbBn22KkbsKkOuLGmj?= =?us-ascii?Q?USyMcVmjj0+ezXiKBV93TfgR7DxJMmZDwBESejOHhj7DZvbSz7SZVPmYu9sL?= =?us-ascii?Q?LDnq0Gir2JjT8PjYyZlM++vcBYvenfDUAX4Io+YN0GLghFTTVQvPvG6zRVg1?= =?us-ascii?Q?fAgvOOB2mnaY5dICkq5j7hGaKX2HtaazThfV9bbO5ZGqbeSjAxxR4ZS8Q342?= =?us-ascii?Q?idjlgnAtRtrrxaCiBL1mluk7wc7foMA39uyc+86zQby78mGEO3N84Ys6aFo9?= =?us-ascii?Q?xhO278MunMtC0VeVwgAT3HQ33FxqM+u4iV5QS7nzYaSNPHxjatMsMliBRjRx?= =?us-ascii?Q?1cqGhypJUTaSUnLfu7qP1behkndhuUz2/6WCMSESuXD5AiFd40JycgfOpmWd?= =?us-ascii?Q?MOIHuv9ssUTAIbH4LqSXrZQxY+LRLG1zRW0vibYIRPJPNRPcZlik0xvg3F4X?= =?us-ascii?Q?PDMP46VZX/m9jTHbRiU+MY5hK0adKr8EM6PqjPOQRC0Y5ExrlPRzAmfKg01J?= =?us-ascii?Q?gUEgEmTujF52oJltsNowvtt7F3UH+Y6cTt0sQt4Dn77XHpDJzfjQ6uNjMgiF?= =?us-ascii?Q?FVYLO/eGbBKm9cd7LEnKXDDWvq1kzZDCB2CNuMEpErL50iPvk+O7zHq+oR9S?= =?us-ascii?Q?Xvx+UpWvu3pAUOzJz358CKxmOWc/ket5i9tYGQ71SOz7ExPx1Q/FodjFIooO?= =?us-ascii?Q?puQFCuFrq5gzv1rG7qb0H/aYdlGMlu+x5X+gezOubrfkJr?= 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)(16799955002)(2906002)(66066001)(6116002)(3846002)(15188155005)(47776003)(53416004)(6486002)(38730400002)(33646002)(81166006)(36756003)(189998001)(53376002)(110136004)(25786009)(50226002)(8676002)(6306002)(50466002)(575784001)(86362001)(6666003)(966005)(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:CrC46p17Kls3ZkSls/FYkoYQZFXJsBcbOyUZa6Kxc?= =?us-ascii?Q?vfbpACSEPi4if8GCgzxdKfzEvV3o/bJEwur8YlmUjnalYQQYKkXmPuoC243M?= =?us-ascii?Q?2pP1kQDLpjtLQ1qybF+VnFqYKBMfI6fj9QUexHXQyZTZFaexb2rU8Xtmp3Yv?= =?us-ascii?Q?jwAJ3/VDkc57IU1FsksGbfYl4AsGsch2j4C7hiLmr8iLTVdXOwSn9eQKn4xM?= =?us-ascii?Q?wfXp6aLx1DqiW8nr/31c7mS4I/9OwdlR/Eb0q6t9r6kPmIWAKT80Gqhm5Zo+?= =?us-ascii?Q?auXHBKKP/FlRCm6GfDawWkG+Oh9JCkRdBGM1DSMDRtPldROF3lQmyKdMK6SG?= =?us-ascii?Q?FIGCQUSF0o1QzyM4N2YAaaJYAAbKrKnUR/hP42oGogmrs7Ds1r9Hw1ZQuFUY?= =?us-ascii?Q?2vpVa/XhtTrd7ws35y+SRpyL9Int8el34LQX2oUvf9O5ywpTeYrn30z8lOuQ?= =?us-ascii?Q?3uBK7cdfwvFmB14cFfmP/ZZdd3mspyIbUmZemWisomrRN2L214Kn3k/ePuI7?= =?us-ascii?Q?UcN5kzcHYrflYi7gb4xZg3YBbCnOQ3Xx4WeWkaVqvWoswBJCBM/pC7VPp1jD?= =?us-ascii?Q?+TepzhJWKRGFQa6kjCrzoV3eaqNNISOC3oi4wEdHnsfhda5Y+OW5ece2qtwc?= =?us-ascii?Q?DPwxQ8fOfTmMgI4H4XjQL3G0wBZLCxPe1g/CHE/+Hgu5Qthp6GG2xiE//ldX?= =?us-ascii?Q?ZYktrEPQIjRH+JOvyhUuaVS5CiFYeHQfhLD73xAZ2Z0YSqIBaduKEfmobtXn?= =?us-ascii?Q?IIMGVjAxtIqe1v+TRfWFg5/9FWqNPy5SqQNvA48ympCaGYxB/JnKj3xyk7G2?= =?us-ascii?Q?06PxRAJHUjzZAEXT+ZJv8CcfvcDsSnp8bejyVtoBWoo4Phrj8uVre2XvYjlp?= =?us-ascii?Q?8VWM1EjzXOwDFCI34rPzXZ1g3AXlrrfykOHSAD0I3PTo6FfWzWXyafW45Vbq?= =?us-ascii?Q?R2/JFw2gVKOHzGfPJexp4aS9vJSlgLB3d8W0/8QxyQc9f8uQBvkkkByN2+Kx?= =?us-ascii?Q?B0dmU/m2DlBVv3w2LO6ecN6gFZKiC6YIdbGyKbhZB3n5HJ/YcVTtx+E6KofA?= =?us-ascii?Q?/cAzFxtDnuiP3YWSlenpjpIF6RFIhIkFXfdfUESZCUsRXq6QBP8adoaCT5Of?= =?us-ascii?Q?tjDSlMO/kvk/71eFypOMHgwjBKjlOKfpz3DWapsnFuO4lI3jWURlidFAkKqY?= =?us-ascii?Q?KwErP4yBzo9A8kluBAU1c47aXaz1yYw7mMG4JTQ8EjGunl20cDWWKStDA=3D?= =?us-ascii?Q?=3D?= X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BY2PR12MB0147; 6:h+iAc0wZRO8h2pf4jhz4xua+UGtyhV/FAqHAnj0Tn8?= =?us-ascii?Q?ts3pw0jQf8CH8B3r3PvQVFa6lvVi2lyLsGvRg3JXsAsmCm+YhJKkJYQwIIMn?= =?us-ascii?Q?Sa3pvFRYJ1zU3w2QJeLuXueeJC/JyGvNcrZ1TuY/999/YlHw7AeTQZr+p82x?= =?us-ascii?Q?7h3d2pq7FTCDH+BdtWVwaBOMcD1xW9vTWapVK60J6pUeuX0aGSlYcH0Yi6D+?= =?us-ascii?Q?7E/JkdsbZHoO+kDCe4f/N0arfFy0EdtlTajJNEFWJoswihGVwsIV0Gc7gjVS?= =?us-ascii?Q?+Ht4ntF2uphg3ttAfvn6z0H0070hKNLgvRMRE0nR8XLmV461EnXin4lji2Xd?= =?us-ascii?Q?Fy9ZyK6G+qdQnmZJzd9d9lwAZTGyDRhUG5XauOP0t/w+f1KYZv8PBJsnFkEI?= =?us-ascii?Q?M7zCklAGAgycPS51aS9Fe7YYdNGeKLQO8OptywzTMDOH3jUafw8kcpGAMydi?= =?us-ascii?Q?dFrQXu4XyO75CijD3FqpCtQWybWqVg0ElmznAmJIqJxRLKGDTMjMvMrPye0W?= =?us-ascii?Q?DwyZ1HsF3uaP6Gl3coxjGV/0/y3xESMECZDX8QF1YdQcQA+p9edBmeQ5hzTZ?= =?us-ascii?Q?TgRoIVmCGGhlXnY3cJr05vEpq5CgjqCqJDKva3RNrSkAC+FCHRDRLsCZRc+Q?= =?us-ascii?Q?uh8lX/QtT54ZH53ysSuJVxEjG09BEecuERynOzu8hM4+y3fOo0jD2DN3WP5S?= =?us-ascii?Q?GGbzp3qCGpLTimQK6US8j3phZDRk0Sdmf/x1qcqRxPnj9OXTGzAcY/j13yIO?= =?us-ascii?Q?+q6rDnPKSiC0c1eUF2vzgJPorndav991dyaSEUa4ii7bte/67X7w4w9SKPdd?= =?us-ascii?Q?AduNIskEcbjaNV9ytTfW5YaKdXAToYZqCcosTp3ibvCR1FaMLaqttgIJ7jLF?= =?us-ascii?Q?0hZG4Y0GL9+nGuhSFl5Qg/vz99QbjL8OlZQHgGPgiKUcxpZG8ccc0/H+BTUG?= =?us-ascii?Q?CPNDq0NSCZTVAo4BTJWt7a/I36L54g7MxFnabeCnf3wTltTOJMojNdmvAvQt?= =?us-ascii?Q?1gliJWfZNlUFCkmDtc8CPf?= X-Microsoft-Exchange-Diagnostics: 1; BY2PR12MB0147; 5:/YGuFfXXxAMK+w3BxM3hjh11IbvDeopgszflgjzrkeiCCVSSY7+4z/TtB6euFNxBUjeeblgssi98bQk/cCjEczAM4PyWZZDOufVkZnqGvM2vNQJDawPRptVadPZz8i3ZWBFYt6SmYdinmESrL7jhMofzpHWRMbw0mAyNoLoReOlKf86Hb3r03D8AMamPcspIfREP5qFo177NGjqBJlNZH1XUOMNBQk3G05VsiNblqsVLT45XDbEo7m5+EKGAEchLJV+ZSw6qIyy00zAVD6fxcqVg9EsLa9IOLoW0ro0JcvrLWn47e0ylPXuWOiTAqkykTq4D1EnVo4SMDNnrBLxnVC6vLvhe867BVrPLEPgtErzHmmoxdhKd9W61F0bI8AolyHe5v1IzylgEt3wCDfGyweDCdlqI7UlQNV9af//JI37K67CZ2764FrDEz/T+7vyxxhe8u9yJ7fpHM/koCRgeeIpr70MC36molooh2pTPUl57E1dBeMMobVqHGb6Biuof; 24:JU65DCrRlW8a0Aw+ovhXPlMx+h3oRdE3hMmW6iq8sNuuuxThFPK0cMT2RDO2A8gxSGoxLKUAWH3e5WbWG+9DKSwxdTl9HIHYn9KCcpUcGi0= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; BY2PR12MB0147; 7:cAz4yidBSPaKHLolB2g7ypwpJwH8CobQB2Mt0mnIGhaPPEwNbTewzNEr/A425dvOP6WzBls19fi5TNObOxE9HZuc222PisgaNGvgk27iFp1aZEkDhqwJIIgFNn613X1e1/a0cWomYY7CDuBBSGSvJM6iZBhtgJmHNqpJxvyTMscac9yAVI+Y0j1+/T+/2N1CtH+5ggjC4M73JtAdyOAXzU6LcPAcxNqnjFjD9ZhVeeOfU+n46EgIhtMKsndUko730DNJCAq/NTzEP2saGiR9ndVHYHwjgGyCgwmjZ/NxMiOHF89kF0OwZ0crnZ+E4/tl94VMUMPUefDKUoT5AMNDFxdAZV96CZPmuH9Q692jSouAxjb/dIK4z7DsjwztUArfS05DLeVz5qX9kLJokuejSXUq8XGeQAgxvsKWKSfRwSvCKvQARdkyb4jtsaO2DoU/CIaYzFKgAFloe5TNlKM97vSO/0RAlZtV65zR4/t4gC2qxWiaFg/jw1KGYFLB6yP4p612C/n2gPWIHjL4zHFB0UIZOAhXaqp9OXUXNUXh3AHD2Mt6XDuANs+4KzjESVz024+ylJolpxEvY5V/aTTtG7IPJyMkIpmo6hW2of216Y1oV6wnhkqaYLgfaT//t2JzRSPwyk8eygliYubSfR4d0zZiLkxrdSDc2OwKCTheCBOfXgJUlxLl2cG/MyXi9eeCUgXoKosdCKI/RNuA2LrolwYpaNOvz2lrO/fygxEoGSs9a9cyNMoabPrJC7h9RS9wfwB8Bw1fjkplXtvUwN2+iRJgyJYtz92++NVH/wkjYzM= X-Microsoft-Exchange-Diagnostics: 1; BY2PR12MB0147; 20:+usBp+CjC9gY6RAZb9yzAOcEcUvNs1e/mgrl9ccEqzM+i1Xj8q5B7H/uATTqOumVOrc2vwvPBD7UZt0mCp64nJDDfUelMZ8GbWwX4McIBhuhzsfc2ftXz3m5MC1CHE2yZPFDAqJIHoDV8IWDmt7/FlHLB+515a4Pq7GysfqocLPfv5CeO/47ZQ54hVxTWyeEY2mMsFkLlgqzus5vyuTq6x8PQPrsoMpqpOUf+ewF1k1JmK4KpbANoCItq/+S3hXR X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Jul 2017 14:30:09.9976 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY2PR12MB0147 Subject: [PATCH v8 04/16] OvmfPkg/PlatformPei: Set memory encryption PCD when SEV is enabled 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:31 -0000 Content-Type: text/plain Secure Encrypted Virtualization (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. For data memory, SEV guest VMs can choose which pages they would like to be private. The choice is done using the standard CPU page tables using the C-bit. When building the initial page table we mark all the memory as private. The patch sets the memory encryption PCD. The PCD is consumed by the following edk2 modules, which manipulate page tables: - PEI phase modules: CapsulePei, DxeIplPeim, S3Resume2Pei. CapsulePei is not used by OVMF. DxeIplPeim consumes the PCD at the end of the PEI phase, when it builds the initial page tables for the DXE core / DXE phase. S3Resume2Pei does not consume the PCD in its entry point function, only when DxeIplPeim branches to the S3 resume path at the end of the PEI phase, and calls S3Resume2Pei's EFI_PEI_S3_RESUME2_PPI.S3RestoreConfig2() member function. Therefore it is safe to set the PCD for these modules in PlatformPei. - DXE phase modules: BootScriptExecutorDxe, CpuDxe, PiSmmCpuDxeSmm. They are all dispatched after the PEI phase, so setting the PCD for them in PlatformPei is safe. (BootScriptExecutorDxe is launched "for real" in the PEI phase during S3 resume, but it caches the PCD into a static variable when its entry point is originally invoked in DXE.) Cc: Jordan Justen Cc: Laszlo Ersek Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Brijesh Singh Reviewed-by: Laszlo Ersek --- OvmfPkg/OvmfPkgIa32.dsc | 3 + OvmfPkg/OvmfPkgIa32X64.dsc | 3 + OvmfPkg/OvmfPkgX64.dsc | 3 + OvmfPkg/PlatformPei/PlatformPei.inf | 3 + OvmfPkg/PlatformPei/Platform.h | 5 ++ OvmfPkg/PlatformPei/AmdSev.c | 62 ++++++++++++++++++++ OvmfPkg/PlatformPei/Platform.c | 1 + 7 files changed, 80 insertions(+) diff --git a/OvmfPkg/OvmfPkgIa32.dsc b/OvmfPkg/OvmfPkgIa32.dsc index 29884b77859c..9355a37ae95a 100644 --- a/OvmfPkg/OvmfPkgIa32.dsc +++ b/OvmfPkg/OvmfPkgIa32.dsc @@ -534,6 +534,9 @@ [PcdsDynamicDefault] gUefiCpuPkgTokenSpaceGuid.PcdCpuMaxLogicalProcessorNumber|64 gUefiCpuPkgTokenSpaceGuid.PcdCpuApInitTimeOutInMicroSeconds|50000 + # Set memory encryption mask + gEfiMdeModulePkgTokenSpaceGuid.PcdPteMemoryEncryptionAddressOrMask|0x0 + !if $(SMM_REQUIRE) == TRUE gUefiOvmfPkgTokenSpaceGuid.PcdQ35TsegMbytes|8 gUefiCpuPkgTokenSpaceGuid.PcdCpuSmmSyncMode|0x01 diff --git a/OvmfPkg/OvmfPkgIa32X64.dsc b/OvmfPkg/OvmfPkgIa32X64.dsc index 2b646e4a4969..edacd655d147 100644 --- a/OvmfPkg/OvmfPkgIa32X64.dsc +++ b/OvmfPkg/OvmfPkgIa32X64.dsc @@ -542,6 +542,9 @@ [PcdsDynamicDefault] gUefiCpuPkgTokenSpaceGuid.PcdCpuMaxLogicalProcessorNumber|64 gUefiCpuPkgTokenSpaceGuid.PcdCpuApInitTimeOutInMicroSeconds|50000 + # Set memory encryption mask + gEfiMdeModulePkgTokenSpaceGuid.PcdPteMemoryEncryptionAddressOrMask|0x0 + !if $(SMM_REQUIRE) == TRUE gUefiOvmfPkgTokenSpaceGuid.PcdQ35TsegMbytes|8 gUefiCpuPkgTokenSpaceGuid.PcdCpuSmmSyncMode|0x01 diff --git a/OvmfPkg/OvmfPkgX64.dsc b/OvmfPkg/OvmfPkgX64.dsc index 32386de9b428..93933612a3c7 100644 --- a/OvmfPkg/OvmfPkgX64.dsc +++ b/OvmfPkg/OvmfPkgX64.dsc @@ -541,6 +541,9 @@ [PcdsDynamicDefault] gUefiCpuPkgTokenSpaceGuid.PcdCpuMaxLogicalProcessorNumber|64 gUefiCpuPkgTokenSpaceGuid.PcdCpuApInitTimeOutInMicroSeconds|50000 + # Set memory encryption mask + gEfiMdeModulePkgTokenSpaceGuid.PcdPteMemoryEncryptionAddressOrMask|0x0 + !if $(SMM_REQUIRE) == TRUE gUefiOvmfPkgTokenSpaceGuid.PcdQ35TsegMbytes|8 gUefiCpuPkgTokenSpaceGuid.PcdCpuSmmSyncMode|0x01 diff --git a/OvmfPkg/PlatformPei/PlatformPei.inf b/OvmfPkg/PlatformPei/PlatformPei.inf index a1e12c1fc7e2..16a8db7b0bd2 100644 --- a/OvmfPkg/PlatformPei/PlatformPei.inf +++ b/OvmfPkg/PlatformPei/PlatformPei.inf @@ -29,6 +29,7 @@ [Defines] # [Sources] + AmdSev.c Cmos.c FeatureControl.c Fv.c @@ -60,6 +61,7 @@ [LibraryClasses] QemuFwCfgLib QemuFwCfgS3Lib MtrrLib + MemEncryptSevLib PcdLib [Pcd] @@ -93,6 +95,7 @@ [Pcd] gEfiMdeModulePkgTokenSpaceGuid.PcdSetNxForStack gEfiMdeModulePkgTokenSpaceGuid.PcdPropertiesTableEnable gEfiMdeModulePkgTokenSpaceGuid.PcdAcpiS3Enable + gEfiMdeModulePkgTokenSpaceGuid.PcdPteMemoryEncryptionAddressOrMask gUefiCpuPkgTokenSpaceGuid.PcdCpuLocalApicBaseAddress gUefiCpuPkgTokenSpaceGuid.PcdCpuMaxLogicalProcessorNumber gUefiCpuPkgTokenSpaceGuid.PcdCpuApInitTimeOutInMicroSeconds diff --git a/OvmfPkg/PlatformPei/Platform.h b/OvmfPkg/PlatformPei/Platform.h index ae855531c1b7..f942e61bb4f9 100644 --- a/OvmfPkg/PlatformPei/Platform.h +++ b/OvmfPkg/PlatformPei/Platform.h @@ -93,6 +93,11 @@ XenDetect ( VOID ); +VOID +AmdSevInitialize ( + VOID + ); + extern BOOLEAN mXen; VOID diff --git a/OvmfPkg/PlatformPei/AmdSev.c b/OvmfPkg/PlatformPei/AmdSev.c new file mode 100644 index 000000000000..26f7c3fdbb13 --- /dev/null +++ b/OvmfPkg/PlatformPei/AmdSev.c @@ -0,0 +1,62 @@ +/**@file + Initialize Secure Encrypted Virtualization (SEV) support + + Copyright (c) 2017, Advanced Micro Devices. All rights reserved.
+ + 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. + +**/ +// +// The package level header files this module uses +// +#include + +#include +#include +#include +#include +#include + +/** + + Function checks if SEV support is available, if present then it sets + the dynamic PcdPteMemoryEncryptionAddressOrMask with memory encryption mask. + + **/ +VOID +EFIAPI +AmdSevInitialize ( + VOID + ) +{ + CPUID_MEMORY_ENCRYPTION_INFO_EBX Ebx; + UINT64 EncryptionMask; + RETURN_STATUS PcdStatus; + + // + // Check if SEV is enabled + // + if (!MemEncryptSevIsEnabled ()) { + return; + } + + // + // CPUID Fn8000_001F[EBX] Bit 0:5 (memory encryption bit position) + // + AsmCpuid (CPUID_MEMORY_ENCRYPTION_INFO, NULL, &Ebx.Uint32, NULL, NULL); + EncryptionMask = LShiftU64 (1, Ebx.Bits.PtePosBits); + + // + // Set Memory Encryption Mask PCD + // + PcdStatus = PcdSet64S (PcdPteMemoryEncryptionAddressOrMask, EncryptionMask); + ASSERT_RETURN_ERROR (PcdStatus); + + DEBUG ((DEBUG_INFO, "SEV is enabled (mask 0x%lx)\n", EncryptionMask)); +} diff --git a/OvmfPkg/PlatformPei/Platform.c b/OvmfPkg/PlatformPei/Platform.c index 98cfaaa28ed1..3ccb7d0fbfaa 100644 --- a/OvmfPkg/PlatformPei/Platform.c +++ b/OvmfPkg/PlatformPei/Platform.c @@ -672,6 +672,7 @@ InitializePlatform ( NoexecDxeInitialization (); } + AmdSevInitialize (); MiscInitialization (); InstallFeatureControlCallback (); -- 2.7.4