From nobody Sat May 4 12:49:16 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.zohomail.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 1499352494121689.7287650976855; Thu, 6 Jul 2017 07:48:14 -0700 (PDT) Received: from [127.0.0.1] (localhost [IPv6:::1]) by ml01.01.org (Postfix) with ESMTP id 818A021CE73F1; Thu, 6 Jul 2017 07:46:26 -0700 (PDT) Received: from NAM01-BN3-obe.outbound.protection.outlook.com (mail-bn3nam01on0050.outbound.protection.outlook.com [104.47.33.50]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 5511921CE73EE for ; Thu, 6 Jul 2017 07:46:25 -0700 (PDT) Received: from leduran-Precision-WorkStation-T5400.amd.com (165.204.77.1) by DM5PR12MB1243.namprd12.prod.outlook.com (10.168.237.22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1220.11; Thu, 6 Jul 2017 14:48:03 +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=5sFGv3N3QZDv7jwSdCjFn7717ANp4mW6OPdSjFrTyq0=; b=05ALGk4oXBL8YpJr4g+ec3gETupZRqAgJTLn8Z1C8PSIb0gKZROGqRyaKVX1ZEhU3UbpDHvjkhFlLG4GDYueYlUxM6jKT2MGNmqyuSMyhYcmsUFy0y8HytQZZ1M36VAruk6KBWpwmLRRrfqa/crLJpOFaTkuGgvVGUocJ3w8osk= 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: Thu, 6 Jul 2017 09:47:52 -0500 Message-Id: <1499352472-7348-2-git-send-email-leo.duran@amd.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1499352472-7348-1-git-send-email-leo.duran@amd.com> References: <1499352472-7348-1-git-send-email-leo.duran@amd.com> MIME-Version: 1.0 X-Originating-IP: [165.204.77.1] X-ClientProxiedBy: BN6PR04CA0042.namprd04.prod.outlook.com (10.174.93.159) To DM5PR12MB1243.namprd12.prod.outlook.com (10.168.237.22) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 5477f696-3c20-4be0-3f26-08d4c47e01d2 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:DM5PR12MB1243; X-Microsoft-Exchange-Diagnostics: 1; DM5PR12MB1243; 3:oyMbs8Md9v6B3YavVzj5nIc287gZndMQDSL3peFwpaoRmfL94g39pIybdPX69NSORDLpN5KEOxH0bx19CnQgV/YUiHto9MWihJf9yrtkgw8wByEAOCFlzv//eKa/mSjCY1VLUej4MAwFQM8VdxQJxaDkXMNgZXYdh/bww+pYqDwMALq5uZuZHHobn11tt9Bstve5g0Frb2z3+/TbRN0NJymh6tUhFW7Oj9lpBiBM7O3V82cpChiTsSSpwVe6CctfTV2Q7TZc7DOeK5mt7zpfnTA30obMLJgBdd1PNc/CihrBWAXwITNCi2QsnicoAVoBzKqpyex0HWNLU5xdWgOujyV2ThcKi+JtS+3b3TEZ/WhQRlPFOl+/hkK2NH8n25ufNQbUWXQj0sskwG4YLWEiZ38s1Ovxa4eLfZz4Xfw99lJt9Srxo8eEfUDRv9Ag1MaRNgFgRZdMOVO2XyAsvoektY+aWXGmDAcKFgWs5cRk3TTOEh0tzEMQtzkLcF8MKKQIdp233gQbF8UUALV5MCCBr7gHjlsd1fM6fB8liyNWknbNYiqslgk+fsBVpT2KW04fW2BsKqXWwOAFRVkmZw8qWwoL6BKY+81DOs6SZ6/wZd1+193V4+mVHO6nJlcY2i6CNO43pfo9JzEB7oZO9nSqFAzlxKdQrTtiXuHbpzFrmDel2mYyCoNIQupI8em8gyuOloz0oBhNN3WNQ4wHbhN1kUpwr12ga0We53gSXST6gQUdvg88Mp++xNx293INUHvCHc2cojyymu7/sGhbZzHMEg== X-MS-TrafficTypeDiagnostic: DM5PR12MB1243: X-Microsoft-Exchange-Diagnostics: 1; DM5PR12MB1243; 25:Ram9ahSDHX7l82H1Czyc97B3slS308xOsQjqlwfNc40DNuQhAwUa2i2lPLtMrjrv4pJf6kmqe7d2mAx8GoBhep3UjbQIO6wYCzNLQmKd8LFfkvPnnRfGAKds/bMCE218xBMw8t8LCT31e7ve8bLt9qGsgS5eUpBCS62HXge5xE/8d/6AThE6i3wugScNLfPlJ3YIi5/iVL3BHMIGYLaFt/18LzGDk2jdmZoWGLaGrZLA8U/Edusc6ZW6I+BkI7UxYl5D0WwvoUSyfJx/KdU4dqTDdYBtCyjEYg35+B9EmxUro/CmAnIpYJR1it6NUQpv34QryqivB1oe0Icu+siVoc3fWC5CuEGKDZpY0LfOC7o02dtK8PthsEKI1U0tGMjCPWyae+DsEX+Chc1fCccSlr0BiXnMqU3vPWI9gfwMNpTCMFWFlciHuugZy0y3vbNWJAgyH5+ESCqpZ3i2YfLOGStfi4+0wSQdXm5/LiM7+9Hxx4HL82GrMhW3UrMlfkQyTNX6zRoujYRk7kck8KfUdlo0qTwXqV/NOPbkT4uRx0DZH/t/4X7AuxlqvY44SqRENOIKGz3oCQIEFrTy6KlscCg5F0einGeRhcOP6TWtdR6Q3wa2Ez0mIZ30oLXRDw98kEb0KsrwgcJa3uXpA3WcOBpb0KncREUmTE/vSDS1QnzMha/ww7fyoG5Ju7aUPFObaSDuZqTKur62cBsmh44R35eBrPd3wq79vVBaMnkmYWkhOB3g8ZqG34Jqy4jstRf7dbLTDJ4XlvXk3Gsaqrco8jyXXJr2xUj0ZLs8FE5UiCZtPdnyaTTnWuRwLQ42LRmniYYsoslEQKdBRunxB8wpUQhRtt98JowsTyE80QneFPzo3ScjyZq4D4Y4ei4nLsNcx1fTZxbZx1weJUNXDCIF3waGsuZP7tSjfGy7YDkaZGU= X-Microsoft-Exchange-Diagnostics: 1; DM5PR12MB1243; 31:YBnwU5clDJE7qNmgHXVuC6TdYQg090BO7Dch0Qv0wvq9NJlJyDgFILf7s22bzVpvv+UqVOlN3mWXRHt8g+rA2rrD5zJMbOk9LMzJWUuR15lxkSFgWNjjFi/uxn7WCuznHtCdmW0ns16eorlt+O8WeukWdEAuM5KaM4MDYhpLb4mVlIzu8iLQPxX/lYGkKRx5pYFEqHoZb7bpymCUc26xFxQdTaQqOww9A5N8IliAS9BzylydjjnBOaz5gyziAVYZwfm8sZKkE8SFlvvMPewpb222eS83wRNXivXXow3p7p2Cu5ctoIoLg6iULajfoSoR5WTYQwSOC8+bnIsTwvPEWB48klmY4TFLBdndIcCvNjM0fbpIAQlb8BnhbBD2Pd86KiUkBr8pR7COXwxyxV2C4MDIdJzIYCCSvziIcuFc9PPNo115vLVYV/tVc/hk51pToqIlEh9Vp7s8tyC12qKGgnM1LLEibMtyxIcUwlli67DY7ZS5s08Ijf8T4z4yGK4o6sP4fssU+R/DJDXEIZhLpnQfFh/UVq22NSCvnwmID+JwDPHT6OIAYSIxJL04QJ+hWvbyJNIFoz5jzuUPQrFgTWLllLLpcXzSmOt9WWaxN/0n9Y7u8hhPkFyqpmT/reHFLP7Vyt2p/y648bd0ZBgP7k2f26K7eGkmZrW3fpZG/dY= X-Microsoft-Exchange-Diagnostics: 1; DM5PR12MB1243; 20:Ci560dnxvNBOMhhHfRJWPK9274icRlW+A97BJP5QdTAwJxmi0uQXz81vCoKkT85ZOQV+6avb50ZmCJ2Retl6heX6fZECrfCsBwHy2XDcjkQDtS4M1olLy5KbnsyS6vAYG/ihYksZ0gyPEcd5y/RKS/mzvY8m9uo+T/PZTXc7ycGTD94ufetWaNDHMdhZ1FL5qGy2nE9fJZkO7AQ1sbJgwKaCnxh6OeR3hj0V7H5YYE8O/rn5Y85EALaav99C9XR2GDVz1X+L2lEmKumxObHNzl867HTyXH8TY1ElgDNSdOEDI3q/TTvaGl1kwgrmodOOJknsOBVMDPv8NbvjbBxCrRLyAg/34jva416JqXZMvvsRYsp40zQRhqVTlMn8ShN60Avy4eMNzUP9Uz/fTby+BkxEuaT6UjKoTIG8Ft8arykzZBX/4ztHjJYaAfxmxo0skPtuIn2RNV8tgElMNxggVpTvKCvv2cN9B3asC/yQ4ZvQqQmQiC18ByB7l6QiR6O/ 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)(5005006)(8121501046)(3002001)(100000703101)(100105400095)(10201501046)(93006095)(93001095)(6055026)(6041248)(20161123562025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123558100)(20161123564025)(20161123555025)(20161123560025)(6072148)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:DM5PR12MB1243; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:DM5PR12MB1243; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DM5PR12MB1243; 4:5GivwuTOZAZNwvSCXwPuByipEd/BvoHy5cW9t7sP98?= =?us-ascii?Q?SsFOd90W3+/OQtqz1Wt217KllIeLqI2yHBc8QekTEyc1iGc+5jpXs7JzkffB?= =?us-ascii?Q?YfyXD6xW2r7bbIWz2t3MEHEOIHfz3phNOnX1qCcMQ7AvLiYSwNUiZY8zKjgb?= =?us-ascii?Q?ncBII4S46eHYo4edxMJ09LFdIU3NzPO7Q5pCxRr+vJ3+RAXRyuzUqsLxBbJE?= =?us-ascii?Q?7WJqpnHn8AFmI1eggbEKWWfK3PBg3/TbI8M3YOEXGqoysU8GIRefDaHglutj?= =?us-ascii?Q?zosZogkqDpc2IsT/YkXHdYeXuoUfntNdwRi07aTyV8Phfa8LszFyRkqtODpR?= =?us-ascii?Q?hmpugCuxVfSURi+/lQBiszCO7J7WGr4NEBLzYqE/THigcJwvNA4Rpq/37Ixm?= =?us-ascii?Q?9lUBholT5rFN6IuUY1zB5ld8sSKVZ+hVpJuFHV5eU/9+6c2DYRi5QhhFH+j/?= =?us-ascii?Q?oCRhVpX738T+vn3E2uXtmMgCtaHydRXL1cTBDzpPA+5L6TvuIRWMtYE/NLgP?= =?us-ascii?Q?Pub3sTES5o8XTSsDcZ0m9p99gyuV4oXe0P5WENkdFdhQOmn/VliIJQMiYnHS?= =?us-ascii?Q?Nm4q9GNiHo+qB2WUszOcl2OvtdsrJrsYq0/cypcDHmJFk1RwTVYdsm7oRr8r?= =?us-ascii?Q?dj2GFDyf/DR1mHJAkzaOhwCMz0q7ttkRF6cE0Ua511Z/eS7h7GEewNHVesEb?= =?us-ascii?Q?qVAK8ek7mR9W5xjpUxU7hYQNjRKsprdsE1jl782oXp4xa3+M8Ll/ke0DKAVo?= =?us-ascii?Q?YbH4WhOejI3nDEdA+wU6S9uHeImtj+n6nPNxNOiO+HmzU79lo2RzeZ1S1v8p?= =?us-ascii?Q?YCKVBTA9aXZt16ui753lbe6b4gTwdiyzpCE7msoPiFYeajdy9ZbkhZbodrx6?= =?us-ascii?Q?xvlUXCyZfiACCUBXrQs7QhoydCYm47SJ6yjZbbgmhMCrptpns7VdaGxOcgV/?= =?us-ascii?Q?B1rfDCWVPtMAS5vmXCnqhIsdmEqzL2jQjlRqmyPFjDYk4phLO6bYn913Vkzm?= =?us-ascii?Q?u8vcB+f/HlSnxSS/IqmPUY9LiN9AajV89Z3jt64ttPOEDl57C6GyX1tvWWfP?= =?us-ascii?Q?KP+fIgF5Xfqq6AzHGVJjEWatre+7Jb6SXID53uXUWp9+leTZftzA5K5vrPbw?= =?us-ascii?Q?Jb1b1bpuFjYsT3NvfyjJ359H+94YBfE1jKb7edDhTB8bLLNei9yay6Tk1ndE?= =?us-ascii?Q?Uhz9CgjmXooKrKwm6/x8oS9PabLaSH+s20ItmuL50jWOHvkQ5UrEoVy3E8Dj?= =?us-ascii?Q?ZlryPJg5pvmvqZutk0ijaZe9V9ryJOeV0cP8B6p4eysVIqufzIJXYK4ZUyUK?= =?us-ascii?Q?4Q+3y2O6Jl/WKEt+DZQL6PJVe4jnMnQOSVdEFi/KIl?= X-Forefront-PRVS: 03607C04F0 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4630300001)(6009001)(39850400002)(39400400002)(39450400003)(39410400002)(39840400002)(39860400002)(7736002)(54906002)(53936002)(48376002)(6916009)(2950100002)(2906002)(86362001)(5660300001)(36756003)(25786009)(50226002)(189998001)(42186005)(4326008)(50466002)(53416004)(6486002)(5003940100001)(3846002)(38730400002)(33646002)(6666003)(110136004)(81166006)(76176999)(8676002)(2351001)(478600001)(66066001)(2361001)(50986999)(47776003)(6116002)(305945005)(19627235001); DIR:OUT; SFP:1101; SCL:1; SRVR:DM5PR12MB1243; H:leduran-Precision-WorkStation-T5400.amd.com; FPR:; SPF:None; MLV:sfv; LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DM5PR12MB1243; 23:1jA/K6CSBNIPvVaOfJmrC2nbhI6GKOeQRws/MySBT?= =?us-ascii?Q?cjc7sHacMW8IV69BBJsZFz4wsh0OAX1wnPu+7CccwLAkpE4kTLIi2SFeJjlP?= =?us-ascii?Q?b8quGS8QGmN68/4V2Wt3LBmAZ75uysBHlsjuEylsLfyQBjOrz5CdCnRJRfrl?= =?us-ascii?Q?plK5GmE1Vv4edROERqmp8SOmOJX5A1r1By7EedcvFtMlcOVNt7uT2113SxFf?= =?us-ascii?Q?eSnYULc2rXimYPwdRPPR4ZXqoAxjznnTLCYS6cLFjik1adBv/kLmanYQFkfw?= =?us-ascii?Q?3idah+t6ripHLkkwSf/KeqZ25pZ4Lf0//eBR7ZaVkJAkz38jOyPcnU9PaVah?= =?us-ascii?Q?3hr2KhvLBBZrW2X6uT2Rr+6wVWUBaKqdjNsmqhGcA9zmzXE6FEGDYqaQqwK4?= =?us-ascii?Q?ePMWBnosoRPqdNL3IwbYhcTINak/Rlyu9ZwVPBEbaXxjcP/uXRf7QAoqh+uh?= =?us-ascii?Q?3+1GnSHYqKnAn+58HE4rHP32Vwe4h+0cILAO4wWPCubRt/Ha5omnUO/+ioh4?= =?us-ascii?Q?v/7m2O+Yf0v3h6Bhebw0Ve66eoAuVwQGZsJZj1cHmXerGP8QHemov9c0GrCi?= =?us-ascii?Q?GojUIgyPb1G4/xGfVYZOE7dfRHc3YaF3PraJirGIAd+TzQ16WkyiA/KDUofe?= =?us-ascii?Q?HIxcwODg4CrajreZW39AurJ3+RBowQu2In3geO0VxHZxcYVWRbm7RkXGs88a?= =?us-ascii?Q?IBYQ2igTiaxhQESox9jb6jlIZQ20OPF6HkAufppHVnAtUBxDxjyLwxUW7Xiv?= =?us-ascii?Q?VBmCxmCfICaqMAttEsc+u1PcFg4do43xUr9ltgC7vCMv+HWRtxExO4g36YZ2?= =?us-ascii?Q?NbQ2ibhoPB5YLyAIS0y5wZu4Ep3EZm694itJIkqHNr0hEawL4JfwRI+XWCs8?= =?us-ascii?Q?cZy6M6F+0FFEaYXJBbG/27nFZkCPXjiD80w52h8RjGJT1vMmgpSqS3S7nHbQ?= =?us-ascii?Q?ejVNF7khARlH3ki0Wi9O0jycF+Z14ekb1TAsQ4qMZqhAKVSPZJYUB3tJPHFT?= =?us-ascii?Q?hDnS47Vj3zlCY/GSJexY8LaEgTVHAVZdSlaurVy/DkZguhTkdC5kz/yp5F09?= =?us-ascii?Q?N4NiOLfXbdHGdnRlds3NXlos629QfiP2Rcdp/qw9fBi66MKzrBKc5yCJaJ/q?= =?us-ascii?Q?FbQaf8P3u4=3D?= X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DM5PR12MB1243; 6:RBRxCrN65GN3uDPARyALeQysKZxdhmkjR34PP3RZ8r?= =?us-ascii?Q?T0WxifcnTKQXqErUqLLxljKCn7isPh4Qaffb+y/WoRyYXncPevar2NNLp4tE?= =?us-ascii?Q?cjRWDq/DpcK82n6QpcJzEdH2Wj6BB7rNy++vvAI4M21IyNNHcb73XaWRPOtZ?= =?us-ascii?Q?JGdy1JX1UAq9cKk6hC7RMUqomc78tT06J64hkeV7/VCPn5c/HVf9/9ERm/Gs?= =?us-ascii?Q?Mdxh39IslNF+LH4Dsy5bdJ7nqQjJQegALGErudpLLpJV4uefXc7oX7dpTY6e?= =?us-ascii?Q?5cTlm5w+ofW9Tp9Glq9XL6UDoZxt3wLlSG/J7mrAHI0wzULgr6YlbGR3/VG3?= =?us-ascii?Q?HoJH0PK2ayoZjvetaZsjGrFtoZobiQxOzsw2LOaLrdca4AAQXDnEJuqZ7TCX?= =?us-ascii?Q?ydG6LOoxbW8eig+Vn9dwMm4xWjUYRdYwbq+eb2iqHyxxVg7OcgfozNiz6zjn?= =?us-ascii?Q?bsXbplnGVcqGXbroWzZ4RwgL9vc3ItQ4yW5RyLQKvyTVOtQBDAYNmo22YtSW?= =?us-ascii?Q?k0l11U24aLELhBXl8javn+9UkcoiSoDLmLouPWq6bBFo3Df10fqfP+Aq7FVu?= =?us-ascii?Q?6SGn0BhlhGCE15Y7neaAMCci8Iy8/Exb+9cYk8Efv999oZpYZPDUrOwVQVNe?= =?us-ascii?Q?8x1N0BTWLXdpUo0EWuiPhjSUew9NIc4SGs3k+S7++LBgPEVNS2sYp+wDY/no?= =?us-ascii?Q?Y798sxFLId+Gp7WM//wD+H3bDOXlobm3V/O52k9u1o8sWiJ+lHWinMRZ6t8w?= =?us-ascii?Q?oOBo+5lkdz7ZcG3m1p3Afrld3GcQkVmz5OVClR1Vt/oCJsGsxi1fNgG1m6Bp?= =?us-ascii?Q?P8x5W5yxf4J89cRlioFck497xp0bNCOBpIFPcbYErV1P0CWjxoYYl7SXIkaD?= =?us-ascii?Q?8XjnVmmRY8JCRLn+xMRn6ITdRIJ3MvZAaz69LH/29XZETkGOCS6uXfzbstDO?= =?us-ascii?Q?yBwmfPpB0xZoSvVC7iJIKhJspSL7SlHN5cPGLPbx1Nux1/h/W8SRqje9tquM?= =?us-ascii?Q?ErGswe5V6Q0lecx6QpJJra?= X-Microsoft-Exchange-Diagnostics: 1; DM5PR12MB1243; 5:zcMkr9S/kdsoEjFVXo0+G+MzJYzTYgI04McG3x6/pdqUr2TqVwV/vD3xmSDkzljJJy469U7HNFRBwsLdQXLbYTJxBnvRlx2XjmEjQDgwueeqMMhidko0xF772JXN3Zmgl6NAIcgYRsEGbRTpsceF+IAl7GZOUF+7oCjgEvYdWeX+IzElJB3VtIrFIwUkL2g8NtvobVoackJxhVRSFnG2XZmbzEuNG8i+Z9KXNn2if1Wkb0QcCUCQnz3wAfYovjKBMlJ1MvA/N8kg8xy4StVeZLylMAazBCyoZciRnM8Ma/JW3KusYkJ5X2JQQWiB8EbX7kbPaRhFuq34dUO0QZyepZMLmEzoVhSsn4IDsrAC8TaRedL95dfKqnfNvp1TwvjxIspbuqLRa2983iVUCbNE7lMWYe5VCu+rF/BRopKpjXHzt6Vi6W9lssX+2ROM+vrrsOyP46BW3X6KJsvgwVm349u3v1ZFLxUFHb5ylHDgYXzugqvZVf5NI3k3m9ORgmF/; 24:hjMbsSz8g01+VdkumkSgQ5J5WQwocHcJyHzyDL1VZ675bXCY62frX4lr2nQYPccvhL8yo+MmAeGjqmeng7KmCp12RG3RkmfMgRA3u0cLcn4= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DM5PR12MB1243; 7:HHHtlvpWbIiGcHaxb7Vtk/6IDIs0Cw3AsfnO6ZQY+HiuRygo4MLqMQgfMjrKIRDZsHZhNTCFyHs2UJpKiYpRX7L0rrZJz1UIXc3UPIzAsMhzPmzaeo1mMK6RNKJpC4DG0CNX7A2QFMGTr7dt/JZ+UHgiMM4J7JlXhhnBPMPRe2WSkrkgvpj9HeMJG1qx0/V1IiFNffERY7Xuy2uztyoA359fD/zlPLz8/34vc7BU9yxIsikr5CP8q7ecfwzy6O/AbDL4Y6Rr0ebo5arn0C7CfJDX32Tyb0QUxHUdl7PM8HCkNMw91PIlz9O0Rz+1+G+dY8U//Ja+9qD3cYRQjFB2Iy7jrMv9HFjz+mlqOocXuksU2/NvgTX+xV2Ud0YTOPF0gC5iWaX1PBOf6ivwZxl3IU8GoKTaTYtPZvT7uX2MoC1lzBNKeXUeaTREu3OMHizSYxWJ/XTpvf13RdoCJIqic3yc7915aOw3ZidXS5smerINqwtq5C1B1wfDqZXF8hq2C9K8jem/oOqWQZuQAmOrKY3m+Km7pgVeiTkQAwEwGz2mIEa+ltfZLcXvA83u0t4oZ+RvQCofygtUVKpYhFMxbiUVyFtVeCJWe/EB1WDNRpkSM3eSDqOBdtxxourdk9K+9pEB4/zer6DlTdbIDY76JcDvR3h7CK5ME0RrkV5WnGnrnyERUsSQMAe5Puv0IloAEGTCBXnucZvPVMahx3YgwxgwsgsbOfyYbyasBtDaDVQxn6+VojfzdCGtiC36kXZw3M3KBR+PMeR5BJHHU2N3gZCTJyKr+z2yneOkdkJ/eJY= X-Microsoft-Exchange-Diagnostics: 1; DM5PR12MB1243; 20:bU1SZtW3KvcTlo+K+7dlAZ+x5a0DZSV08aW9nbyALGWmUF8El5COnAc3g9hm2dhJTQ7vtpmTZ4M5u6vSOiTEiTOGYLbsG+XRFSPk0bhe3ldzh5gqisDAfVM+qivahsgz8wmh4mFM91Zuq3/zRCOy4KiuJnSnHxmTB1YShBIFYFyk9FKChk1L7sPpVuJMLuH4RaqTNlDiCACOtDNdBw2o3V27AhryA82sKWWLGuq07TXWF5ZF5LhlZYrCMF20zSHl X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Jul 2017 14:48:03.1063 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR12MB1243 Subject: [edk2] [PATCH v3] 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" 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 | 42 +++++++++++++-----= ---- .../BaseXApicX2ApicLib/BaseXApicX2ApicLib.c | 40 ++++++++++++------= --- 2 files changed, 49 insertions(+), 33 deletions(-) diff --git a/UefiCpuPkg/Library/BaseXApicLib/BaseXApicLib.c b/UefiCpuPkg/Li= brary/BaseXApicLib/BaseXApicLib.c index 2091e5e..ce6d9d7 100644 --- a/UefiCpuPkg/Library/BaseXApicLib/BaseXApicLib.c +++ b/UefiCpuPkg/Library/BaseXApicLib/BaseXApicLib.c @@ -48,7 +48,7 @@ StandardSignatureIsAuthenticAMD ( UINT32 RegEcx; UINT32 RegEdx; =20 - AsmCpuid(CPUID_SIGNATURE, NULL, &RegEbx, &RegEcx, &RegEdx); + AsmCpuid (CPUID_SIGNATURE, NULL, &RegEbx, &RegEcx, &RegEdx); return (RegEbx =3D=3D CPUID_SIGNATURE_AUTHENTIC_AMD_EBX && RegEcx =3D=3D CPUID_SIGNATURE_AUTHENTIC_AMD_ECX && RegEdx =3D=3D CPUID_SIGNATURE_AUTHENTIC_AMD_EDX); @@ -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] @@ -1013,13 +1013,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 +1043,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 +1052,7 @@ GetProcessorLocationByApicId ( // TopologyLeafSupported =3D FALSE; if (MaxStandardCpuIdIndex >=3D CPUID_EXTENDED_TOPOLOGY) { - AsmCpuidEx( + AsmCpuidEx ( CPUID_EXTENDED_TOPOLOGY, 0, &ExtendedTopologyEax.Uint32, @@ -1072,7 +1073,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 +1082,7 @@ GetProcessorLocationByApicId ( // SubIndex =3D 1; do { - AsmCpuidEx( + AsmCpuidEx ( CPUID_EXTENDED_TOPOLOGY, SubIndex, &ExtendedTopologyEax.Uint32, @@ -1103,7 +1104,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 // @@ -1114,11 +1115,11 @@ GetProcessorLocationByApicId ( // // Check for topology extensions on AMD processor // - if (StandardSignatureIsAuthenticAMD()) { + 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 +1129,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 +1137,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 +1149,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)) !=3D 0) { + InitialApicId =3D (InitialApicId & (ActualThreadPerPackageMask= - 1)) | ActualThreadPerPackageMask; + } } } } @@ -1163,7 +1171,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..54ea492 100644 --- a/UefiCpuPkg/Library/BaseXApicX2ApicLib/BaseXApicX2ApicLib.c +++ b/UefiCpuPkg/Library/BaseXApicX2ApicLib/BaseXApicX2ApicLib.c @@ -49,7 +49,7 @@ StandardSignatureIsAuthenticAMD ( UINT32 RegEcx; UINT32 RegEdx; =20 - AsmCpuid(CPUID_SIGNATURE, NULL, &RegEbx, &RegEcx, &RegEdx); + AsmCpuid (CPUID_SIGNATURE, NULL, &RegEbx, &RegEcx, &RegEdx); return (RegEbx =3D=3D CPUID_SIGNATURE_AUTHENTIC_AMD_EBX && RegEcx =3D=3D CPUID_SIGNATURE_AUTHENTIC_AMD_ECX && RegEdx =3D=3D CPUID_SIGNATURE_AUTHENTIC_AMD_EDX); @@ -1108,13 +1108,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 +1138,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 +1147,7 @@ GetProcessorLocationByApicId ( // TopologyLeafSupported =3D FALSE; if (MaxStandardCpuIdIndex >=3D CPUID_EXTENDED_TOPOLOGY) { - AsmCpuidEx( + AsmCpuidEx ( CPUID_EXTENDED_TOPOLOGY, 0, &ExtendedTopologyEax.Uint32, @@ -1167,7 +1168,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 +1177,7 @@ GetProcessorLocationByApicId ( // SubIndex =3D 1; do { - AsmCpuidEx( + AsmCpuidEx ( CPUID_EXTENDED_TOPOLOGY, SubIndex, &ExtendedTopologyEax.Uint32, @@ -1198,7 +1199,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 // @@ -1209,11 +1210,11 @@ GetProcessorLocationByApicId ( // // Check for topology extensions on AMD processor // - if (StandardSignatureIsAuthenticAMD()) { + 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 +1224,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 +1232,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 +1244,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)) !=3D 0) { + InitialApicId =3D (InitialApicId & (ActualThreadPerPackageMask= - 1)) | ActualThreadPerPackageMask; + } } } } @@ -1258,7 +1266,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