From nobody Mon Apr 29 01:59:10 2024 Delivered-To: importer@patchew.org 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; Authentication-Results: mx.zoho.com; dkim=fail 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 1498869705477230.3097511593079; Fri, 30 Jun 2017 17:41:45 -0700 (PDT) Received: from [127.0.0.1] (localhost [IPv6:::1]) by ml01.01.org (Postfix) with ESMTP id DD7A721BBC432; Fri, 30 Jun 2017 17:40:08 -0700 (PDT) Received: from NAM01-SN1-obe.outbound.protection.outlook.com (mail-sn1nam01on0073.outbound.protection.outlook.com [104.47.32.73]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id D74DA21A00AD1 for ; Fri, 30 Jun 2017 17:40:06 -0700 (PDT) Received: from leduran-Precision-WorkStation-T5400.amd.com (165.204.77.1) by BN6PR12MB1235.namprd12.prod.outlook.com (10.168.227.21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1220.11; Sat, 1 Jul 2017 00:41:38 +0000 X-Original-To: edk2-devel@lists.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=JLI9lAb+tAD7jFp5INnXR/hTtTHVzukJF7DwKj280bg=; b=1CLriqvPOPl5tlkggi0LQmj1ENUQqjRGWU5SmlV4Y48W6IrEVB7zlh7MkfXwzlZXEX6NDmLjImOgqXv2eVd/Xvcg13tavtXKERJxyi/juXbZsTLcU+ZJ7KPrNOWpaED+Th/4yY2hg2P/dvRn5ICTndPLAdx/QehyjUHq5klgw1Y= Authentication-Results: lists.01.org; dkim=none (message not signed) header.d=none;lists.01.org; dmarc=none action=none header.from=amd.com; From: Leo Duran To: edk2-devel@lists.01.org Date: Fri, 30 Jun 2017 19:41:27 -0500 Message-Id: <1498869687-4399-2-git-send-email-leo.duran@amd.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1498869687-4399-1-git-send-email-leo.duran@amd.com> References: <1498869687-4399-1-git-send-email-leo.duran@amd.com> MIME-Version: 1.0 X-Originating-IP: [165.204.77.1] X-ClientProxiedBy: DM5PR15CA0019.namprd15.prod.outlook.com (10.173.207.157) To BN6PR12MB1235.namprd12.prod.outlook.com (10.168.227.21) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: d880a33c-eb78-4e6b-81ad-08d4c019efb1 X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(300000503095)(300135400095)(48565401081)(201703131423075)(201703031133081)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095); SRVR:BN6PR12MB1235; X-Microsoft-Exchange-Diagnostics: 1; BN6PR12MB1235; 3:RYLyd5EwBet262EwbxQQwZ07cp3hYV6JrQiAXwBdtthumMd8OCfRsNCcId7uYJ3WP5aTvNdhsvVeUr5kJVrc906ENlAksyA54iOpr8KyUbvemKw9bCEbkTM7LN6ZE2T+u3mAzSnC/4vVGkcwlV1zK4EXcyKwhkOLfbMQcDuRfmmjmyk9SeTDzYT3X1fyUX7IFPuda1ri6IVk3s71d3g470zjI+6QvRCPqwIUS4KEE8XLb7Zzxuap9n8ZA8NeEMYcFdBQT35kf9o+AkYw/ifzK8CX7O2iJVFfqQiJIKvNhLJ8krHptveFHj158URaG9MB7frhxKZKJQQ1wrbVkPmz1odZ4HEnG036JtfsH3WutiLBhBfVhv+9OICm9/e4+NREph/CyzkW1Fesx3OfoItizRnk15n8fOJ4vArHSU2GVa7a2aTItjEY4TuUk61FjEsKv+ujr3Ay4pvH7fgcHyBzibTh1IOsNDvdNBNRMMGzNe/xXTot7Sc81cpbOt8a5MRFaYPdi6GC/7XJYyfyMWTgwjrmCY7U6fM+1xHVdUNCynTcrmGnzX9qJ2K/ZEl9BJGPqyVu6bwxU+KP9orUFIaOaTDWfseG66HZA+nIGcTmzo6Rj8TJTp0Z1aZC4O9rhEjM+dnsbCvpdB1x5y+aLl+HZBsKDk6oNu5FsshqOZHoO/5F2EZ62B4jDktK+E5QxSxeJfDkb7y7j2t95+g8Nn4y69RWC1q9Fcaa9QuQIAVaiSYp2HMjFgXrMyZshI+Ea1zKQiC78IlVZYahClV+abvEpA== X-MS-TrafficTypeDiagnostic: BN6PR12MB1235: X-Microsoft-Exchange-Diagnostics: 1; BN6PR12MB1235; 25:UN+6Pl4JUoiZrSF5alWciORSnmxWJ74YZl7/A7N919iSv6rbQPsr+dQ1RSMK0FBa3KundrudqM0W1fHrajqmk4Zlk5JNXZSQ9YQqa0mDGHt+h2oFZdTAWOQ0tchcjFpFUh3q+QJS45r5JBMS7fciazDz1LfXAYveph5g/5U6qVqkw2P3IDZ8T75bofJRp/Ec0wGUtNLHg2ANc1y1+LogIn201+AeLQB9jAGUXNj9yHZ/J/x8/Mc+QQWJFdNsHliOafSm7bkpFIIQkOh5mHNPBwNd8DdQck8DhHKFCOEZcmyTSJD3GaOud89lki6myx7bI3X3p20A/qJH2vOvi1v4GT1I1lmbqdLcVAsekHwvyGsTHYq3f+BZ6Aco7rMFv76gWzaukUnOeVFjvLJL9hIhsMst71ShoVXQt+S/tvnuPXFKK94lBWmvccowRxTXG/UJHCf5owpQ8y11o2CE7CFQD3SrWaAwCi32WHH7cDNDP2rGCdWrWyqfdCt02M6FF/fVHOJQkKez283QK+TKR3VL2gkQoI6e54yWAaCnr0NqLxR5lvjnLe9ZtXE1KYJDJYMWHOqDtAiGh1Li3yL1QjOEOMydIgMuMD6nrvIhA7Ib0NI1sVqpyGQrCwo1DdztB3EVM0vNghFtCr1qQJLkgsVCdc6Kt0ytsYz6dd9kMyw6b4A7GmHVyNKvzLlR38zPD/krrfJUcYi1ogBabAWmnE0wjRR7pHyrDPCzuVpOGsX07sEPmFgZ3JxQ8giMnw7SUb+k4e0AF1CbdbLw3SF3fHrVPNxaL5O/V7YsnLBP+YO26uhlkxlLE3iZOOtAPItZnj6aB6gCkTvSyAH4o3wq07/johxMQcuUUtkbscpjtgjezEw99Fiqv0f6TqM+5shsoPTuALVBqmN89qNYerNiw9lqLhBl5+uL6AvZN/XJi0KuGYo= X-Microsoft-Exchange-Diagnostics: 1; BN6PR12MB1235; 31:cQ66I1CFxFfBRxwHpXROoYsh1+BPCwmaWPjX+OykfRdnfz7RaseJJPlGvobucjdk4elcGYJT9pWKquTZUeUfrK/zjhL2JjC2aLQB7MCemPhaCiOWZTxmqaPirnuDzCGxvxjKeCf07VuitAVYlx0i+uNh8JAF26MIQpZD2qSkEOtTRncvlR2D5UPvFNMWOiiZ25HAvHCanQnw+KSbosivF7vevxJ8Z8yHaUvR/OWxw3yGdYC77KJpnSsj5UzWPQCombmO84nZGB2CPjHrE5ohT/qgATBZTjT1iDzACFoxlyiIIriDl3claYDaGlQPyDBCIj260lEvW/anxx/2jj6WNxdPlvXBCEQrqys/zMVhmBhnFGAt7EdGvKQfo5dspf3TAnClcNXJzRVlZ8RbnvRTPcDGSQJDX8S9AaBA+wrdEuVTHVD/i7X5QRKnXjg3xLuuQrvUXVwg9hYvFW5TGnWPFmH5uzdXgieYGzQNypUOs6sBfkRv9MwIh9zxpWbhBNHLPhLeI6KJ0CEMZmu8pzORaiCELPikvloNtBCTmXdXVBH0E6b+gi9Tqc+oVw93msigtMBgoemWoUR1Qstg442IkJTIluS33zXIHB9KDaLWbBo3OxVPlso5CYpXb3K9k160sUDfSkT4kv5EPcoX6yNgb9+/eES2ZisRB/AMjayKWqI= X-Microsoft-Exchange-Diagnostics: 1; BN6PR12MB1235; 20:atWamYw8MUwK00caZxAmGegMqUUkx8ZPRlntolEqxQnc1R77J7kEDoN1ecKQDxUz6XzBsVV8IhvupiDP0CWc8s7uj3hFlxlRXlbT4KbJQTPKTING5ZcVWn6Iz6+ol/5rL+j2YFscAFnRJt4W/aJgZb4S7WzG3FKS2cD0vLBPgq3kP4JkTa/DnReHgqg6GOHZIULvpDoTXUNPaHAR3QkeQEskZiQlpm8ZZxwLigeo0kDOSHnSxtB3VOLttPPj4koq3IjCNyTfwUsI1Evs/OFsL6b4SwLOH3oVg8P4WkFKs5xV+lB7xoA4LXqOIuqXuKPmKOpSasmtXCsrtkWupBbz56revaHbSarvaaD0WZDusz+vV1/iOAqkdFNdVvcZcmVgqGkO0VYo5bB0L6YnZxwAWtUlz9MLgQYulxnSYLCBdJf6nkgLQFb2xN5AeUinYMUqqczMafCIzTQmXZrM7KJDaTDJZvHA4u/vSqtYdQbYlzPvuLZl12GRJn69bGg4xrLA X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(20558992708506)(236129657087228)(767451399110)(228905959029699)(247924648384137); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(8121501046)(5005006)(100000703101)(100105400095)(93006095)(93001095)(10201501046)(3002001)(6055026)(6041248)(20161123562025)(20161123555025)(20161123564025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123560025)(20161123558100)(6072148)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:BN6PR12MB1235; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:BN6PR12MB1235; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BN6PR12MB1235; 4:tAFaTg2nrOJ57iKout6QhC6j/4EhcQaFPOEcOSRYut?= =?us-ascii?Q?3DaYj+DASxSeaJ+rsfee4oIWRfY3/KZm7qy5fF8Eu4pGQ+36tGlwlp8WIMFA?= =?us-ascii?Q?8U0QpEG8H/I0wCa/s2qSSyfoQ7qYGM91ZOsbKScIe0eSwaXCR5/l3DbG7N4P?= =?us-ascii?Q?aoEvtU4ETkm4q8OmE+EFOEs0k3n7jZmY1aMISERiUumkrG73DkTVZctvuuOD?= =?us-ascii?Q?4k54RVxJwZITAoBvB26ULZ+lUNqBTnRwenB9AHumN3m5sSKf9whmYuzAJnHP?= =?us-ascii?Q?Lm1nHU7bWL9DkzxZl8fKXaVf4S/XQYr07IDlovfjQLk1yzBvmKMZVNGdYs+y?= =?us-ascii?Q?ACiCGLEW7gACjZYu4BtXaTOUSm3lIfzgOl9Bulqd/qOHCad+nas9IwobF3RT?= =?us-ascii?Q?2+TiyS1fnx8NDxmQBHygg4bPk6/o65ojkduEY101gx055GMrD7/Z8Aj3cQ6m?= =?us-ascii?Q?HYRFYaNIzGj7NK0S021wmyLSrHXBieXQynvXA1ENGkSOAXJkU7u7nOGebuiK?= =?us-ascii?Q?QxRsrdf9/3SAEG9L45rTCGTgiMmEA0bxxX436uvcyQrfzypqWYKT68MCb23D?= =?us-ascii?Q?leRrHA/6bfUUfEzQVA+hRega6AC7VVP81DJL+MtClCeCG1daRibkmTkOdI+5?= =?us-ascii?Q?aGnNMPByZ083KfhXy9wwujsZZ8w34nNaYNsL/IuzDK8TjYpj2cCVXn6ZsC5S?= =?us-ascii?Q?G7jz0ndxxahY2Vm58BM+OZtsxT6/EQpbXGjMmenXh6+S1GKBI316A6yKELYl?= =?us-ascii?Q?1wGDLSHhdgVE88E1nlRvDQ+RddWqjr1lCA7MzafsWMYaE3oLzwJNvfMfQBJ/?= =?us-ascii?Q?5+VeIRATu1pFOEz9P1/NKNmc1yg/zONbzfa0usEJszqPa9M9Y//RtWYlhEn3?= =?us-ascii?Q?MLyNv67mcgM2R/f4IhCABS0HJUyUdu2tOfHuvw+R+zyFQaiY2GGRtmTo71XY?= =?us-ascii?Q?tZ7lnadBFBKyWJgXXd9/ryO9S408PHkt2yFPQGvM0tUhmC4UD1FGqazXa8Cr?= =?us-ascii?Q?ZL3ZebbNeRY2+2xrQXi/HEWzO8HUqC4+xTxFZDa+AtsW6CYPYW7K0CYJe6B2?= =?us-ascii?Q?Yw4mrnluIuQL6BoLG7OQzznFR2S22gcJsFP+17XD2nE6/KslxFxlkfESb/mi?= =?us-ascii?Q?vo5hyW7oHqq76LECrMnW8N4xNgNjbmXpUQLO74Qi4nx1+z1K9RgZV8VPrlk0?= =?us-ascii?Q?HzDWcv7PVXGXLf3Bf1FE1ccl1yNUGkcl++Pi8bmceIhoRzAItKDGW7+cA94I?= =?us-ascii?Q?1k9ZNFWi2FzBVeCYvonpH2HA5DpB2W1pZjBax1BeJijRexKIWVmqSX0O0q21?= =?us-ascii?Q?51aqSNiPkZfO6Fn/hA089l6qnNvEG/CVU1Vx3aCaZm?= X-Forefront-PRVS: 0355F3A3AE X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4630300001)(6009001)(39410400002)(39860400002)(39850400002)(39450400003)(39840400002)(39400400002)(189998001)(4326008)(47776003)(50226002)(2906002)(478600001)(6486002)(6116002)(86362001)(5660300001)(81166006)(66066001)(38730400002)(110136004)(2351001)(50466002)(2361001)(305945005)(7736002)(48376002)(5003940100001)(42186005)(25786009)(8676002)(6916009)(33646002)(53416004)(50986999)(2950100002)(54906002)(36756003)(76176999)(53936002)(6666003)(19627235001); DIR:OUT; SFP:1101; SCL:1; SRVR:BN6PR12MB1235; H:leduran-Precision-WorkStation-T5400.amd.com; FPR:; SPF:None; MLV:sfv; LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BN6PR12MB1235; 23:ZG+5tZvM3r1XuyVoDn0LqCpHaglmjEfZh9Z+vZeLv?= =?us-ascii?Q?xh8FRUHA0HI2bfBMRAaSlCGwR66YNpwws4a4Itw6eVhv5PcNc/avLXWjr/uz?= =?us-ascii?Q?1YybhIs2rpTr40PkSjUh9D32omLd4BN2it58IProOTazMf0hgAwL8TfllC7b?= =?us-ascii?Q?fkXBD6dKdG/corFkzxe3AXC3MVODKVAj9/iJpr6l+UntC021Bh03nQ/BM1bf?= =?us-ascii?Q?mQvTZ3k+rKXCr4yGKQ4czH2n+F6cIxPuf8J0RECYOEM05GvAc9ZuNlpM+f6W?= =?us-ascii?Q?WYUW3OIg/OuErczqfQdLALDxOcT/8gKkHUi1b5aAv03uG0Y26lrHQkbWRKUt?= =?us-ascii?Q?MiSHCuuPh+89be08aN2JKsh1galAbNvPzqNqMPLG8drraMzgvsgfzIed6b/N?= =?us-ascii?Q?l84HTKL2/TUb6mGV1QVuLO/7amHliMkV52A72wZLvCWddzMXg+o3FKxFKgHj?= =?us-ascii?Q?13cTcjL5T4maRCqgCH6BE7mKRmzoZA8UKyq097yJKYG2P3irNO03K+YgTnj0?= =?us-ascii?Q?z19YsiSszPJWlXf2MdlFZUzdKu5ou8KOXEBqgqcIG+aZi6niQwo2GsyzhTco?= =?us-ascii?Q?SiQuoE0lUOf8/S2WKkQQSi/GDlMAS/BZJbBqWdteJKciXpGlve+RTWmnd48w?= =?us-ascii?Q?WwcpBsxqLRoJEFLhGc2FlXKG+zV/FfPAUhmoxL5cCScPrQFCnajOeeoYbEKj?= =?us-ascii?Q?iK5nwFCytnrc0t9fHWql1uAqxxxKG4y6fnOb+Q5ZrJkJlX3tNaqZZ+anpB8Q?= =?us-ascii?Q?4GyBpiyp55sDEJXgDllLecKBdCC5yOME4N6XqTV6CoOOw5skWaNJ64fwy5Ju?= =?us-ascii?Q?UNNa0rDGokmaK/THgc29HO+3nmHtPj+qPj+AzyC5iip3Ju7bv42mUgYcPzL2?= =?us-ascii?Q?4swu2HR18x4BWxPIri0wk/oLpHoFQT5X5qykLh0K61xECBAhHvXSG3e2g/AQ?= =?us-ascii?Q?v6MoHXZeqJPqJ7hbBaREMAwoit/A8tRJYRDJ3MQLcPdlJ72n1pOfzgNfI6zf?= =?us-ascii?Q?Stvpd1iQLxQh3yzN/xqUOi+OSVWv8CrbP1wZ9zUXLu7JbPgiJufiN2pvg5cH?= =?us-ascii?Q?4BD8RII4dbkg6WX0k/QA7SNGzsw5i2FYrz/YvDztO3hiGVeLA=3D=3D?= X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BN6PR12MB1235; 6:rncHnHwEkBmB5Dt2ScaURzWY6JbJ10FgVQHpvygMIc?= =?us-ascii?Q?Xz7tu8pc6NTBzfys8magjSFolxonTEtOVIsKNrCfJtLH+ix/0cxJe0/ETcBR?= =?us-ascii?Q?IHvrjGHj/pS/hi4CLLRg84EwK4Zoixs2QYFEqy//Ml2p3KGII/7FHHqM7sW9?= =?us-ascii?Q?HS5HWdfeOd3h9VgtQMCIVw7dVr4J9kfdUFdksLbyNfaiz3DvAZ4Vr5zs5jiM?= =?us-ascii?Q?wT1d+nr8i5FgfqcOoeykfObQH+ZctudWxGQxmOzOm4yPC/EV2jxb7cSWKyI2?= =?us-ascii?Q?nHP+DQHuhFO/0KhAKT4A0NW+Ea7WlQRPr4p9r3soupMIulsHXI9tKzHqucw6?= =?us-ascii?Q?BVrcmXIV88ZkzBFu3UD0xp5YfmrlMP5WOItPfenuIMC2rNION6oWjRLamhTX?= =?us-ascii?Q?o3QseIwoptCwyDMZqzjtJl7dCoh+xcrWQ/YO56k2JmyK8tzTpcjpoTAg1YuC?= =?us-ascii?Q?mmjEvkYne1ZqsfUgjkJ0yZtMz/kuiIxrZa4azbJgrYtze4exn7rtoQDUIjtD?= =?us-ascii?Q?mh2jurQgI0XCMNX3SeBBaxqyqnf4xPnwoEYymkeqoFILweFbStgxeTZNHfw+?= =?us-ascii?Q?BA5+x+qKBnIJ2earZbRp2Y/jDdBju+GGyNUK6MHIZ/hhNtyp8QHEe72T6Ktt?= =?us-ascii?Q?dtO35bf2DTaG2pGeCqoPbOVT4Qt/MTONMpm9/NVe8wUIO3pX+ktJWOk/vK1C?= =?us-ascii?Q?Ro/IRbtYuDe19Q4SvBNbTN3yGTicz3aTMF3fm6KSui3HmWrQBr9kb9d2jy05?= =?us-ascii?Q?mCrmRG17ZfFF0mXrcWbXOQhStzXp99/zUlhFp7KzXLW2v4MQ6ELiq+zCclx1?= =?us-ascii?Q?gEu8eAjGm8alXz+wCTbojbNCJ/oez9b3AmkWALPkU/yXivFcVOCKVrD/DXSQ?= =?us-ascii?Q?1/A96HllWPd0aPi3X/F7qq1xXMevJHdG11eZ8WSyUsuPlXqojaHmuxdjogxT?= =?us-ascii?Q?aTUk2NeovMbpogRkF1Hfv1wI+m1a2RirDVbVALTit3KqmgHQGw0FGiDtrgDA?= =?us-ascii?Q?KeVi9DCA6ZjuQTSwLY2GlJ?= X-Microsoft-Exchange-Diagnostics: 1; BN6PR12MB1235; 5:/j/ktJVSE4t/mx+CzeSSlsLjv5GQeKE2ywd7I/HxzA0lQ2H/b5dmVrvmhY0575papgAft1+uKAp4ehRFagfpBpS8DnmohdJ3Abay2fvK11iAa+yjTctVkMefbEUSyBEV3MR3K5B5cW0xQ/IVj2TeUAFLlDTEtKqjymJH/JixWAG+DZRkvBml7pGuN9iM7bAktj1M5HUmN1FYjcf865GZXZRj79XxdCWkUle9oIDIMEU+HisefVW3wCOTWIR/0WcNf648U6AKWmcPNI2aP/+3MOSSK7/bK3N4ZTisKH4Zlp2J2Qs4Z2Fask6mhJ4TesrTsJx9LI2OaTkXCDZ1htiIv6yPnkN2Eh9cl+A/IBXm6/M96CdzwFLqjiivSqB968rUg2fLGGXaG1SQHbkUzfHCOb/LHx/sTkn97P5FDDUu5IB5MD+nMuO1i7/BG2GHzuJmKRKg1mebf3NW5RuviJ+Ds0zRZyTMdcR/bdao2crsRLuiPJ9tcPAUtC2CzhUCKybD; 24:mE3/i7RHs9V6M8T7nacPRZS6aAV2xCcGqa1jCJvDATZ4juu547VKslv3mvQhPmo211xkgjJrnedoxdL2+obSGgqIYWWJf4v2TvkFKXXJEmk= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; BN6PR12MB1235; 7:cn7y1WdKLYdtp5VMiMe0IypL2U0cV0Y/ntiShTUIUidBm4OZsJVkOw/4jrQA82Y3xpfvLJpgtQWoiZT3mXn3+MW6QzbyR/MB9R4cU9ntJEQX9fjTSU2EufQsRH3lvgkFNUxuvbBfkYGjf4YwSC7xG5FdvDL7plaFHEQZUVur5HeE9uwTf0GFhcnVmKmBbyTZ1SBKSpvNr2Vp3LY9OFLffkL5hF/LniCidTqRjdb+evSPhIWi8PBDzPYEsrmQt+Lmk/1Z0MRbAOtJZO+dQPJOjUDQixTpY2ACpmy9vH/pPA8MoMg7sWxYSL3rC3AoYFzXKkK0qkQo4d5GqcYmTPZS3/YdP8Qwh74DNiBVBHnLVuIWaTjZv7VcfbeLyXxiCwbgbu5/qFVtkEFCe7NEM9MT+awHyRblXcwz4AftxrdGF64RXaN1945XIAHTcLcIpVl3yQutkeHpV+k2ijeRhhnCl2CVF8p+f6zA+3Ba62sH7L26hWcYBTeVTpIkFx+X8flKNBCk3l/9gmkUnQjFYTNFTvuYB0+kXG3bFxoAAuG3t9cgEsNJqdm53omf9QIy1lzbKjujSCRGBYkUBHdJWtLP/uBJ5vP025eT3tUoVmR/dp/VQkZy575zybfET0WFEZhigcoggXgJYzapLu1ZigO3Pve+Lr3xKI+RUXAPDSpVeyi+Sik2QMhkMQnwIxzQU6wWejX8TbU0/4ELUGkXHuk+6/8aJaG7ubzoiDea8ruZJBiKMo+j0bTFv78pqt2XR25zzSxKv544qfRKsfmbHsw+Z6OXnkKAOMDa6IWCSDTKfJI= X-Microsoft-Exchange-Diagnostics: 1; BN6PR12MB1235; 20:ddj0eKt0ODl3w463T8G4L7N/HaUaznHYPmKSEy87+hZhMBFE59V4tO5ON02AF+a7t6tltxKxthmPey9euvJf4trf5rLqGi5KaEYeIhtrIgkfsZuKnHfDNtA84T2oyLvO96Sm2aDHvArU8nt5LSQ52v5WLV2RgLWuFR9s/nFzcp+xvGL2X5VTJMbq/BnB6L/O5sYHMseoH2+jvj76S+gqSVznwMjAzOXJgC2OeYGALHgFA1CZ2vOIN3w9RCYLVt5F X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Jul 2017 00:41:38.9872 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN6PR12MB1235 Subject: [edk2] [PATCH] UefiCpuPkg: ApicLib 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: , Cc: Jordan Justen , Leo Duran , Jeff Fan , Liming Gao Content-Transfer-Encoding: quoted-printable Errors-To: edk2-devel-bounces@lists.01.org Sender: "edk2-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_4 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" 1) SendInitSipiSipi () Skip repeating SendIpi () on AMD processor. 2) SendInitSipiSipiAllExcludingSelf () Skip repeating SendIpi () on AMD processor. 3) GetProcessorLocationByApicId () Adjust InitialApicId to properly concatenate Package on AMD processor. Clean-ups on C Coding standards. Cc: Jordan Justen Cc: Jeff Fan Cc: Liming Gao Cc: Brijesh Singh Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Leo Duran --- UefiCpuPkg/Library/BaseXApicLib/BaseXApicLib.c | 50 ++++++++++++++----= ---- .../BaseXApicX2ApicLib/BaseXApicX2ApicLib.c | 48 +++++++++++++-----= --- 2 files changed, 61 insertions(+), 37 deletions(-) diff --git a/UefiCpuPkg/Library/BaseXApicLib/BaseXApicLib.c b/UefiCpuPkg/Li= brary/BaseXApicLib/BaseXApicLib.c index 2091e5e..6fed89f 100644 --- a/UefiCpuPkg/Library/BaseXApicLib/BaseXApicLib.c +++ b/UefiCpuPkg/Library/BaseXApicLib/BaseXApicLib.c @@ -338,7 +338,7 @@ GetInitialApicId ( AsmCpuid (CPUID_SIGNATURE, &MaxCpuIdIndex, NULL, NULL, NULL); =20 // - // If CPUID Leaf B is supported,=20 + // If CPUID Leaf B is supported, // And CPUID.0BH:EBX[15:0] reports a non-zero value, // Then the initial 32-bit APIC ID =3D CPUID.0BH:EDX // Else the initial 8-bit APIC ID =3D CPUID.1:EBX[31:24] @@ -554,8 +554,10 @@ SendInitSipiSipi ( IcrLow.Bits.DeliveryMode =3D LOCAL_APIC_DELIVERY_MODE_STARTUP; IcrLow.Bits.Level =3D 1; SendIpi (IcrLow.Uint32, ApicId); - MicroSecondDelay (200); - SendIpi (IcrLow.Uint32, ApicId); + if (!StandardSignatureIsAuthenticAMD()) { + MicroSecondDelay (200); + SendIpi (IcrLow.Uint32, ApicId); + } } =20 /** @@ -588,8 +590,10 @@ SendInitSipiSipiAllExcludingSelf ( IcrLow.Bits.Level =3D 1; IcrLow.Bits.DestinationShorthand =3D LOCAL_APIC_DESTINATION_SHORTHAND_AL= L_EXCLUDING_SELF; SendIpi (IcrLow.Uint32, 0); - MicroSecondDelay (200); - SendIpi (IcrLow.Uint32, 0); + if (!StandardSignatureIsAuthenticAMD()) { + MicroSecondDelay (200); + SendIpi (IcrLow.Uint32, 0); + } } =20 /** @@ -1013,13 +1017,14 @@ GetProcessorLocationByApicId ( UINT32 MaxCoresPerNode; UINT32 CorePerNodeMask; UINT32 ApicIdShift; + UINT32 ApicIdMask; UINTN ThreadBits; UINTN CoreBits; =20 // // Check if the processor is capable of supporting more than one logical= processor. // - AsmCpuid(CPUID_VERSION_INFO, NULL, NULL, NULL, &VersionInfoEdx.Uint32); + AsmCpuid (CPUID_VERSION_INFO, NULL, NULL, NULL, &VersionInfoEdx.Uint32); if (VersionInfoEdx.Bits.HTT =3D=3D 0) { if (Thread !=3D NULL) { *Thread =3D 0; @@ -1042,8 +1047,8 @@ GetProcessorLocationByApicId ( // // Get max index of CPUID // - AsmCpuid(CPUID_SIGNATURE, &MaxStandardCpuIdIndex, NULL, NULL, NULL); - AsmCpuid(CPUID_EXTENDED_FUNCTION, &MaxExtendedCpuIdIndex, NULL, NULL, NU= LL); + AsmCpuid (CPUID_SIGNATURE, &MaxStandardCpuIdIndex, NULL, NULL, NULL); + AsmCpuid (CPUID_EXTENDED_FUNCTION, &MaxExtendedCpuIdIndex, NULL, NULL, N= ULL); =20 // // If the extended topology enumeration leaf is available, it @@ -1051,7 +1056,7 @@ GetProcessorLocationByApicId ( // TopologyLeafSupported =3D FALSE; if (MaxStandardCpuIdIndex >=3D CPUID_EXTENDED_TOPOLOGY) { - AsmCpuidEx( + AsmCpuidEx ( CPUID_EXTENDED_TOPOLOGY, 0, &ExtendedTopologyEax.Uint32, @@ -1072,7 +1077,7 @@ GetProcessorLocationByApicId ( // the SMT sub-field of x2APIC ID. // LevelType =3D ExtendedTopologyEcx.Bits.LevelType; - ASSERT(LevelType =3D=3D CPUID_EXTENDED_TOPOLOGY_LEVEL_TYPE_SMT); + ASSERT (LevelType =3D=3D CPUID_EXTENDED_TOPOLOGY_LEVEL_TYPE_SMT); ThreadBits =3D ExtendedTopologyEax.Bits.ApicIdShift; =20 // @@ -1081,7 +1086,7 @@ GetProcessorLocationByApicId ( // SubIndex =3D 1; do { - AsmCpuidEx( + AsmCpuidEx ( CPUID_EXTENDED_TOPOLOGY, SubIndex, &ExtendedTopologyEax.Uint32, @@ -1103,7 +1108,7 @@ GetProcessorLocationByApicId ( // // Get logical processor count // - AsmCpuid(CPUID_VERSION_INFO, NULL, &VersionInfoEbx.Uint32, NULL, NULL); + AsmCpuid (CPUID_VERSION_INFO, NULL, &VersionInfoEbx.Uint32, NULL, NULL= ); MaxLogicProcessorsPerPackage =3D VersionInfoEbx.Bits.MaximumAddressabl= eIdsForLogicalProcessors; =20 // @@ -1116,9 +1121,9 @@ GetProcessorLocationByApicId ( // if (StandardSignatureIsAuthenticAMD()) { if (MaxExtendedCpuIdIndex >=3D CPUID_AMD_PROCESSOR_TOPOLOGY) { - AsmCpuid(CPUID_EXTENDED_CPU_SIG, NULL, NULL, &AmdExtendedCpuSigEcx= .Uint32, NULL); + AsmCpuid (CPUID_EXTENDED_CPU_SIG, NULL, NULL, &AmdExtendedCpuSigEc= x.Uint32, NULL); if (AmdExtendedCpuSigEcx.Bits.TopologyExtensions !=3D 0) { - AsmCpuid(CPUID_AMD_PROCESSOR_TOPOLOGY, NULL, &AmdProcessorTopolo= gyEbx.Uint32, + AsmCpuid (CPUID_AMD_PROCESSOR_TOPOLOGY, NULL, &AmdProcessorTopol= ogyEbx.Uint32, &AmdProcessorTopologyEcx.Uint32, NULL); // // Get cores per processor package @@ -1128,7 +1133,7 @@ GetProcessorLocationByApicId ( // // Account for actual thread count (e.g., SMT disabled) // - AsmCpuid(CPUID_VIR_PHY_ADDRESS_SIZE, NULL, NULL, &AmdVirPhyAddre= ssSizeEcx.Uint32, NULL); + AsmCpuid (CPUID_VIR_PHY_ADDRESS_SIZE, NULL, NULL, &AmdVirPhyAddr= essSizeEcx.Uint32, NULL); MaxThreadPerPackageMask =3D 1 << AmdVirPhyAddressSizeEcx.Bits.Ap= icIdCoreIdSize; ActualThreadPerPackageMask =3D 1; while (ActualThreadPerPackageMask < MaxLogicProcessorsPerPackage= ) { @@ -1136,7 +1141,7 @@ GetProcessorLocationByApicId ( } =20 // - // Adjust APIC Id to report concatenation of Package|Core|Thread. + // Adjust APIC Id to report concatenation of Core|Thread. // if (ActualThreadPerPackageMask < MaxThreadPerPackageMask) { MaxCoresPerNode =3D MaxCoresPerPackage / (AmdProcessorTopology= Ecx.Bits.NodesPerProcessor + 1); @@ -1148,13 +1153,20 @@ GetProcessorLocationByApicId ( CorePerNodeMask -=3D 1; =20 ApicIdShift =3D 0; + ApicIdMask =3D ActualThreadPerPackageMask; do { ApicIdShift +=3D 1; - ActualThreadPerPackageMask <<=3D 1; - } while (ActualThreadPerPackageMask < MaxThreadPerPackageMask); + ApicIdMask <<=3D 1; + } while (ApicIdMask < MaxThreadPerPackageMask); =20 InitialApicId =3D ((InitialApicId & ~CorePerNodeMask) >> ApicI= dShift) | (InitialApicId & CorePerNodeMask); } + // + // Adjust APIC Id to report concatenation of Package|Core|Thread. + // + if (InitialApicId & ~(MaxThreadPerPackageMask - 1)) { + InitialApicId =3D (InitialApicId & (ActualThreadPerPackageMask= - 1)) | ActualThreadPerPackageMask; + } } } } @@ -1163,7 +1175,7 @@ GetProcessorLocationByApicId ( // Extract core count based on CACHE information // if (MaxStandardCpuIdIndex >=3D CPUID_CACHE_PARAMS) { - AsmCpuidEx(CPUID_CACHE_PARAMS, 0, &CacheParamsEax.Uint32, NULL, NU= LL, NULL); + AsmCpuidEx (CPUID_CACHE_PARAMS, 0, &CacheParamsEax.Uint32, NULL, N= ULL, NULL); if (CacheParamsEax.Uint32 !=3D 0) { MaxCoresPerPackage =3D CacheParamsEax.Bits.MaximumAddressableIds= ForLogicalProcessors + 1; } diff --git a/UefiCpuPkg/Library/BaseXApicX2ApicLib/BaseXApicX2ApicLib.c b/U= efiCpuPkg/Library/BaseXApicX2ApicLib/BaseXApicX2ApicLib.c index d5d4efa..d989dbf 100644 --- a/UefiCpuPkg/Library/BaseXApicX2ApicLib/BaseXApicX2ApicLib.c +++ b/UefiCpuPkg/Library/BaseXApicX2ApicLib/BaseXApicX2ApicLib.c @@ -649,8 +649,10 @@ SendInitSipiSipi ( IcrLow.Bits.DeliveryMode =3D LOCAL_APIC_DELIVERY_MODE_STARTUP; IcrLow.Bits.Level =3D 1; SendIpi (IcrLow.Uint32, ApicId); - MicroSecondDelay (200); - SendIpi (IcrLow.Uint32, ApicId); + if (!StandardSignatureIsAuthenticAMD()) { + MicroSecondDelay (200); + SendIpi (IcrLow.Uint32, ApicId); + } } =20 /** @@ -683,8 +685,10 @@ SendInitSipiSipiAllExcludingSelf ( IcrLow.Bits.Level =3D 1; IcrLow.Bits.DestinationShorthand =3D LOCAL_APIC_DESTINATION_SHORTHAND_AL= L_EXCLUDING_SELF; SendIpi (IcrLow.Uint32, 0); - MicroSecondDelay (200); - SendIpi (IcrLow.Uint32, 0); + if (!StandardSignatureIsAuthenticAMD()) { + MicroSecondDelay (200); + SendIpi (IcrLow.Uint32, 0); + } } =20 /** @@ -1108,13 +1112,14 @@ GetProcessorLocationByApicId ( UINT32 MaxCoresPerNode; UINT32 CorePerNodeMask; UINT32 ApicIdShift; + UINT32 ApicIdMask; UINTN ThreadBits; UINTN CoreBits; =20 // // Check if the processor is capable of supporting more than one logical= processor. // - AsmCpuid(CPUID_VERSION_INFO, NULL, NULL, NULL, &VersionInfoEdx.Uint32); + AsmCpuid (CPUID_VERSION_INFO, NULL, NULL, NULL, &VersionInfoEdx.Uint32); if (VersionInfoEdx.Bits.HTT =3D=3D 0) { if (Thread !=3D NULL) { *Thread =3D 0; @@ -1137,8 +1142,8 @@ GetProcessorLocationByApicId ( // // Get max index of CPUID // - AsmCpuid(CPUID_SIGNATURE, &MaxStandardCpuIdIndex, NULL, NULL, NULL); - AsmCpuid(CPUID_EXTENDED_FUNCTION, &MaxExtendedCpuIdIndex, NULL, NULL, NU= LL); + AsmCpuid (CPUID_SIGNATURE, &MaxStandardCpuIdIndex, NULL, NULL, NULL); + AsmCpuid (CPUID_EXTENDED_FUNCTION, &MaxExtendedCpuIdIndex, NULL, NULL, N= ULL); =20 // // If the extended topology enumeration leaf is available, it @@ -1146,7 +1151,7 @@ GetProcessorLocationByApicId ( // TopologyLeafSupported =3D FALSE; if (MaxStandardCpuIdIndex >=3D CPUID_EXTENDED_TOPOLOGY) { - AsmCpuidEx( + AsmCpuidEx ( CPUID_EXTENDED_TOPOLOGY, 0, &ExtendedTopologyEax.Uint32, @@ -1167,7 +1172,7 @@ GetProcessorLocationByApicId ( // the SMT sub-field of x2APIC ID. // LevelType =3D ExtendedTopologyEcx.Bits.LevelType; - ASSERT(LevelType =3D=3D CPUID_EXTENDED_TOPOLOGY_LEVEL_TYPE_SMT); + ASSERT (LevelType =3D=3D CPUID_EXTENDED_TOPOLOGY_LEVEL_TYPE_SMT); ThreadBits =3D ExtendedTopologyEax.Bits.ApicIdShift; =20 // @@ -1176,7 +1181,7 @@ GetProcessorLocationByApicId ( // SubIndex =3D 1; do { - AsmCpuidEx( + AsmCpuidEx ( CPUID_EXTENDED_TOPOLOGY, SubIndex, &ExtendedTopologyEax.Uint32, @@ -1198,7 +1203,7 @@ GetProcessorLocationByApicId ( // // Get logical processor count // - AsmCpuid(CPUID_VERSION_INFO, NULL, &VersionInfoEbx.Uint32, NULL, NULL); + AsmCpuid (CPUID_VERSION_INFO, NULL, &VersionInfoEbx.Uint32, NULL, NULL= ); MaxLogicProcessorsPerPackage =3D VersionInfoEbx.Bits.MaximumAddressabl= eIdsForLogicalProcessors; =20 // @@ -1211,9 +1216,9 @@ GetProcessorLocationByApicId ( // if (StandardSignatureIsAuthenticAMD()) { if (MaxExtendedCpuIdIndex >=3D CPUID_AMD_PROCESSOR_TOPOLOGY) { - AsmCpuid(CPUID_EXTENDED_CPU_SIG, NULL, NULL, &AmdExtendedCpuSigEcx= .Uint32, NULL); + AsmCpuid (CPUID_EXTENDED_CPU_SIG, NULL, NULL, &AmdExtendedCpuSigEc= x.Uint32, NULL); if (AmdExtendedCpuSigEcx.Bits.TopologyExtensions !=3D 0) { - AsmCpuid(CPUID_AMD_PROCESSOR_TOPOLOGY, NULL, &AmdProcessorTopolo= gyEbx.Uint32, + AsmCpuid (CPUID_AMD_PROCESSOR_TOPOLOGY, NULL, &AmdProcessorTopol= ogyEbx.Uint32, &AmdProcessorTopologyEcx.Uint32, NULL); // // Get cores per processor package @@ -1223,7 +1228,7 @@ GetProcessorLocationByApicId ( // // Account for actual thread count (e.g., SMT disabled) // - AsmCpuid(CPUID_VIR_PHY_ADDRESS_SIZE, NULL, NULL, &AmdVirPhyAddre= ssSizeEcx.Uint32, NULL); + AsmCpuid (CPUID_VIR_PHY_ADDRESS_SIZE, NULL, NULL, &AmdVirPhyAddr= essSizeEcx.Uint32, NULL); MaxThreadPerPackageMask =3D 1 << AmdVirPhyAddressSizeEcx.Bits.Ap= icIdCoreIdSize; ActualThreadPerPackageMask =3D 1; while (ActualThreadPerPackageMask < MaxLogicProcessorsPerPackage= ) { @@ -1231,7 +1236,7 @@ GetProcessorLocationByApicId ( } =20 // - // Adjust APIC Id to report concatenation of Package|Core|Thread. + // Adjust APIC Id to report concatenation of Core|Thread. // if (ActualThreadPerPackageMask < MaxThreadPerPackageMask) { MaxCoresPerNode =3D MaxCoresPerPackage / (AmdProcessorTopology= Ecx.Bits.NodesPerProcessor + 1); @@ -1243,13 +1248,20 @@ GetProcessorLocationByApicId ( CorePerNodeMask -=3D 1; =20 ApicIdShift =3D 0; + ApicIdMask =3D ActualThreadPerPackageMask; do { ApicIdShift +=3D 1; - ActualThreadPerPackageMask <<=3D 1; - } while (ActualThreadPerPackageMask < MaxThreadPerPackageMask); + ApicIdMask <<=3D 1; + } while (ApicIdMask < MaxThreadPerPackageMask); =20 InitialApicId =3D ((InitialApicId & ~CorePerNodeMask) >> ApicI= dShift) | (InitialApicId & CorePerNodeMask); } + // + // Adjust APIC Id to report concatenation of Package|Core|Thread. + // + if (InitialApicId & ~(MaxThreadPerPackageMask - 1)) { + InitialApicId =3D (InitialApicId & (ActualThreadPerPackageMask= - 1)) | ActualThreadPerPackageMask; + } } } } @@ -1258,7 +1270,7 @@ GetProcessorLocationByApicId ( // Extract core count based on CACHE information // if (MaxStandardCpuIdIndex >=3D CPUID_CACHE_PARAMS) { - AsmCpuidEx(CPUID_CACHE_PARAMS, 0, &CacheParamsEax.Uint32, NULL, NU= LL, NULL); + AsmCpuidEx (CPUID_CACHE_PARAMS, 0, &CacheParamsEax.Uint32, NULL, N= ULL, NULL); if (CacheParamsEax.Uint32 !=3D 0) { MaxCoresPerPackage =3D CacheParamsEax.Bits.MaximumAddressableIds= ForLogicalProcessors + 1; } --=20 2.7.4 _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel