From patchwork Wed Aug 3 20:06:36 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alistair Francis X-Patchwork-Id: 9262159 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 71D6F60754 for ; Wed, 3 Aug 2016 20:08:00 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 634562808C for ; Wed, 3 Aug 2016 20:08:00 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 572E828210; Wed, 3 Aug 2016 20:08:00 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.9 required=2.0 tests=BAD_ENC_HEADER,BAYES_00, RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 9DF4B2808C for ; Wed, 3 Aug 2016 20:07:59 +0000 (UTC) Received: from localhost ([::1]:36458 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bV2SM-0000dq-D3 for patchwork-qemu-devel@patchwork.kernel.org; Wed, 03 Aug 2016 16:07:58 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:32805) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bV2Ro-0000ci-Kn for qemu-devel@nongnu.org; Wed, 03 Aug 2016 16:07:26 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bV2Rk-0001a5-ET for qemu-devel@nongnu.org; Wed, 03 Aug 2016 16:07:23 -0400 Received: from mail-bl2nam02on0040.outbound.protection.outlook.com ([104.47.38.40]:62544 helo=NAM02-BL2-obe.outbound.protection.outlook.com) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bV2Rk-0001Zz-8h for qemu-devel@nongnu.org; Wed, 03 Aug 2016 16:07:20 -0400 Received: from SN1NAM02FT037.eop-nam02.prod.protection.outlook.com (10.152.72.54) by SN1NAM02HT103.eop-nam02.prod.protection.outlook.com (10.152.73.186) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P384) id 15.1.557.8; Wed, 3 Aug 2016 20:07:18 +0000 Authentication-Results: spf=fail (sender IP is 149.199.60.96) smtp.mailfrom=xilinx.com; redhat.com; dkim=none (message not signed) header.d=none; redhat.com; dmarc=none action=none header.from=xilinx.com; Received-SPF: Fail (protection.outlook.com: domain of xilinx.com does not designate 149.199.60.96 as permitted sender) receiver=protection.outlook.com; client-ip=149.199.60.96; helo=xsj-tvapsmtpgw01; Received: from xsj-tvapsmtpgw01 (149.199.60.96) by SN1NAM02FT037.mail.protection.outlook.com (10.152.72.89) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.1.567.7 via Frontend Transport; Wed, 3 Aug 2016 20:07:18 +0000 Received: from 172-16-1-203.xilinx.com ([172.16.1.203]:38971 helo=xsj-tvapsmtp02.xilinx.com) by xsj-tvapsmtpgw01 with esmtp (Exim 4.63) (envelope-from ) id 1bV2Rh-00026B-QU; Wed, 03 Aug 2016 13:07:17 -0700 Received: from [127.0.0.1] (port=35798 helo=tsj-smtp-dlp1.xlnx.xilinx.com) by xsj-tvapsmtp02.xilinx.com with esmtp (Exim 4.63) (envelope-from ) id 1bV2Rh-0000kt-NT; Wed, 03 Aug 2016 13:07:17 -0700 Received: from xsj-tvapsmtp02 (smtptest.xilinx.com [172.16.1.203]) by tsj-smtp-dlp1.xlnx.xilinx.com (8.13.8/8.13.1) with ESMTP id u73K0TdK006691; Wed, 3 Aug 2016 13:00:29 -0700 Received: from [172.19.74.182] (port=45290 helo=xsjalistai50.xilinx.com) by xsj-tvapsmtp02 with esmtp (Exim 4.63) (envelope-from ) id 1bV2Rh-0000kq-0D; Wed, 03 Aug 2016 13:07:17 -0700 From: Alistair Francis To: , Date: Wed, 3 Aug 2016 13:06:36 -0700 Message-ID: <806dce96d58aabee09638407a27dfe595032eb02.1470253246.git.alistair.francis@xilinx.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: References: X-RCIS-Action: ALLOW X-TM-AS-MML: disable X-TM-AS-Product-Ver: IMSS-7.1.0.1679-8.0.0.1202-22490.005 X-TM-AS-Result: No--9.321-7.0-31-10 X-imss-scan-details: No--9.321-7.0-31-10 X-TMASE-MatchedRID: OgFcPB8f4SzHz0i32AeJEVVN8laWo90MYQXxsZnRwoICsxyhR8y7CR9Y 5WQrOqCXkZ3T6ylBNAUBtjkcfRMmqRUBkTmMruyZ0Xw0ILvo/uXLkIfkvoeba9JgDNnoqapaWLt 167EoD8yHcBnWFx4x4mPjAgStj8zHr78SC5iivxwURSScn+QSXt0H8LFZNFG7hqz53n/yPnqimu t69X/azMVkSuE9s9qZKb/pEIjM5QkdyLE+orKXS58/HJHJilPh X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-HT: Tenant X-Forefront-Antispam-Report: CIP:149.199.60.96; IPV:NLI; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10009020)(6009001)(7916002)(2980300002)(1109001)(1110001)(339900001)(189002)(199003)(118296001)(19580395003)(19580405001)(36756003)(189998001)(76176999)(305945005)(48376002)(7846002)(50986999)(11100500001)(7696003)(85426001)(586003)(50226002)(92566002)(5001770100001)(77096005)(9786002)(81166006)(8676002)(86362001)(81156014)(2906002)(87936001)(106466001)(229853001)(105606002)(356003)(64026002)(50466002)(8936002)(5003940100001)(2950100001)(47776003)(71366001)(4326007)(33646002)(107986001); DIR:OUT; SFP:1101; SCL:1; SRVR:SN1NAM02HT103; H:xsj-tvapsmtpgw01; FPR:; SPF:Fail; PTR:unknown-60-96.xilinx.com; MX:1; A:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; SN1NAM02FT037; 1:7fDesQSjt0ro7jjzW/GBXRGEgGah90qLZY/l+sBSrgqccxBt/bpWcEFFjxzcHrVWmfroClTrHmyY0PAGNMQzd0iRo6Z71GP58njxTErp7YxSJHUvSX4IduQ1+iJJErsegGDOu5X8Nqw1Zuctzk7BoFDVwBz3YkdZkgmmbOwAvTrUGGhOEhkp+oe/AobarpxAkNU0XdivB08p0hrHEMJw+mvNaiEV0JZicP9r8Mm9veqUZtXPydRuKAqRrfYuOxov8FVNSkSEhPgsRQKrR05O1M/uLkjxfJLbfy6owVh6T47Z57FkeLzWHhK4TlxsWKUXLiSgLWp2tp6IDxxjUcrUhqRAcV2j7vSe7rnVCxrY3E/+24YLupMd7t+Bhn3BVBwFDFFru1GPFR4IvsOckNWVdcQJx+J3gtkMvxgiW3YynLQzEP4ARvkmcPmhCc4dfGmLsRkZz0jJa49+kM7SPaXY8xWwx1UPejH+knJty7Le7l75Ke+FWvl4BZBm4dJGRuc/szt4Zb3ZsXZviM2MsrzknGhfhP3k6F4z/mhuotiXw4wqKddk7vx1lP6YmqINQ8ytwU2a0qZb6FdedzYpWQwFs8N1HxKjsqUOF44jKVOX/1M= MIME-Version: 1.0 X-MS-Office365-Filtering-Correlation-Id: be30bcba-962c-468a-e478-08d3bbd9c58e X-Microsoft-Exchange-Diagnostics: 1; SN1NAM02HT103; 2:egeICZaJYIuyvQ7aw7fblgMhbfImA4goc6i1hAA32OhBhItpG2+Z4JJy4p4Z89a4ZfngMxVOL1ZnVif1YGIW8SBSvPJAyGD8qwNclA5ePkBcW5nn2jAcghEkKVE8NkVqTjFzmSNTBTHzQMXiV8LGHzvL/nBTCl6m6u09pHYrBBhoZ0pmAbc4djXMjwPanqVu; 3:y+lfA/mXWs4BDd85u1p7ggHAeHA5xrkoMKcIBUPw5LcyJFPzSEOrOXKoV1VCt3UfRGXSzJUN6U+2SiwacETFxUy3IPPicA0vbFrHCWmMAnAHiPuFdgvHdGldd/I+P4G6LzKkBBWju+xT+RjuSVpWWlKpowJWbHfA+E89lWyhOLa5pnSkPLs/hR6ehNvWQ38Jdyx4Ht+WYmx2+hQNHOEN7UXVieg9UPV8RmMk0/sVVDM=; 25:tcolBvVIWg+PpDi5hQMTP5r2s3wwOA5vHIIqBMghb/Poq/ZFQw6OKAyZ8FSwH+wkyxAQNuzQkwb0yh0VUFLrVOl6F0pws99qOpnu574GcAu+OHjOzTvPIOkDyR/FzlABLcJmYbUK+ZBB1ozV37NywqcirVlc7G2mVrkZJQ8ZNK6C0ZknAuTKprMbgUdzrpOmT5ChGODaPwbCPWYHYdsnCw99j2wsf29XB4T9G4H2nMYDLgepLwtF+vnhVW1449gNUhbFn5sQX3YKaRM3MDIGLuT1qtM+2zTumcKMpg8/3P35RVD74RvUa1nDtYXfFT1m3lMoUzT7Vu0UnSh58Oh8daPS9h3/3i9u3yYbttqMhyhnGZBR05OTiu2uoryqg82/OIexDR6ieLbYMprBXGqyfljp08+d9OHrMETZuiEogyk= X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:SN1NAM02HT103; X-Microsoft-Exchange-Diagnostics: 1; SN1NAM02HT103; 31:rozdFGTbXU3jxC0A0kodPijMK/W3ARAk8Tb0Si0PQLAdagU5qsi2mW7gvwWhcgagsbD9ZobV+H4lWWlevBMChOZ526HAgDrfFb+pcp4m15BWpM3B2uRKoFH3rJd11mqqXGRMV60ib2D5Ss+h8CtztiGa/0UQDpSzqZK5dolQKA1599JLU89jvhY/5FAPkpuLBCJi1chNTiJ1/q5m2qdFoWgF8eG5y3bNBFHsMUFurME=; 20:VeTWIjKLvmgXApQ8mvda2JSgtqaXPXnBsvN1l3n7EFaCHZcuRkApcY3EKqAoTb7sKrje1OX4xswAOgzTe2X2yDpSAEYJd8/ikTJlA/kxrTtVhYCE7iMSZ117PcNbiSyAKkVqsnUIho7YSf/M+jIryjBYa8mCz8XjzRH52zLX6cs+RFan/PETH6JN0obuGXhR1QqOiTkNdfd2zxSlWUkfL5lKvTsAXcqTlDzsD3rSditlz9REdAOMZeK9unZeJeolTFIHgaXOEAvDaJ40HpV0toJneNR8u8nCx0Tz0WkhVqu7YLWZWH7Qs/KWBCnm9Erl+O0MLUyvoYtdAkDqqdxVU8dM8BWRccgLw1/tEp2RSfYwkj65pEg7tWpxALixfupZTsudKW+8nYr+/sVX1N6xD7Op8YVJekYkZJMjnjsh/junOmPWohE/PtqU6dG/QKOON5eQdBaMdfaeNBO+Ctjg6M5CfFJWXEefTPcvVgpakI9WOoRlJL+eS3g3ZFsFVI7f X-Microsoft-Antispam-PRVS: <3ec7500a736b4eca822404d57392f2b0@SN1NAM02HT103.eop-nam02.prod.protection.outlook.com> X-Exchange-Antispam-Report-Test: UriScan:(192813158149592); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040151)(601004)(2401047)(13018025)(13023025)(13017025)(13015025)(13024025)(8121501046)(5005006)(10201501046)(3002001)(6055026); SRVR:SN1NAM02HT103; BCL:0; PCL:0; RULEID:; SRVR:SN1NAM02HT103; X-Microsoft-Exchange-Diagnostics: 1; SN1NAM02HT103; 4:hFKEZ3PY0gk4AyJVFYjgFTBIo/pwLlD7Y06jSZ2jqGJX99JX6QwWffTJHZjGVCKyIGGb+O4nM0lh+UH16qNxiun4rIGqhy5CvsYdUvzkvysaMq9D4B7AJbyxcp073Ttz5aDqaAP8HozfUi3zHo2akZPFoaMnY8bMMIK1sFnwOTUA2fSM8emvmDYksEecjHA2Jvg/kSPsSf3IQNbzgMpChCyFWrKIqya6pPCJgm7LRlaEyQU09mLHFAYD2BkzAKUtAS8u3Ow8YKYolyaL7t0C7gLXVtPFVVuLpF23MraJdgrAGvoMr2cYfqqH+zwdFrVcrnV8DLcr/wEouoUV3EXRdffIHQwcM4PBiOBmdGjbdy9ZO2rsnHxyaH0BlUPiNuC4OFFD8ouBP0QnU91QvxPbKNMf9shPtPOyq+CjfMuuqnp1jkWJ/KEGN+CTrbWmFS7fdtRMLtVrLSHPcuI8RDotxyNjN79ivxXeczvnERzX/GOpubNm41vlym0IJWGELlxuMoxJcHmCgI4hmCbyGvBfhxrZpMvtiJfN2a2av2uT8D4= X-Forefront-PRVS: 00235A1EEF X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; SN1NAM02HT103; 23:A7uUsUOL/VtQrpZFfy4k8Q58+yb+yjtJv+c1LAK2Q?= =?us-ascii?Q?4OGadrz8URvg0naux+4NeWGSJzDyWMJKeSAi4Tfd8RfgBbRBFLy16pxLw1M6?= =?us-ascii?Q?4two+zB/yFn35jABKnW8kIkffEUzwmUNgFiwE6cKePsUm2McbxuwAWzm6bLv?= =?us-ascii?Q?eJcvBLl6Ve7F1gNRGwpAMZ9NgvBTEYoJX8vtZpX4KeIIViDiJn5snhcIEzTS?= =?us-ascii?Q?D2jRnueEkeZzV5nPV1g+ZLtORkBaivzyfesPrjT+1bqS5KLFPP0vWO6ArCaM?= =?us-ascii?Q?doPA0sC0SqfJWIqzsS3vNL+Wr3Yc62C3GKEoyiXQv1PSOyE3CV3/WeGFFOEn?= =?us-ascii?Q?WbB0/iUtMHXoE2TUWT3vp9vQS5iTXVK9l7X+CplcYCqbdBE1qosM6AjKD7zz?= =?us-ascii?Q?WYJOcpNdZrQycrDiWtBFdpT8xD/ubQTl8mhhhPqYkXNBNsJOk8nSr24/vPm2?= =?us-ascii?Q?p0SH5hGnZlkl9vgjyRIH4YmUshFayfKte6KoXrTdqokiNviTMsSr5ODD2UPd?= =?us-ascii?Q?RwSUzGpES9qMB5bEK90HjHGbNjASYoEB9JxMxN+ajUb2/2J77ZSJCmYib4tA?= =?us-ascii?Q?myak1Aah42f61BrZE70JpJPVxG/kuEwd7+Hbac1l1kzTVicEolIJfdT54rxj?= =?us-ascii?Q?rysyrYqcZVq4YXKVS1iAce5ZqDUPsNURZoYDH7gm+egrXJ0sqlWS67VU55mk?= =?us-ascii?Q?o7DWg48hzS5oZERophsCCW8lt/epp/cjfG5QzivVk1II0cy7dZzOvkx9Qmz1?= =?us-ascii?Q?KV5nS7v1fGAft+cvNR68aQ9F8ycuRiyOMRtSolxEFdhBnH2yWqpLJD0bvIYw?= =?us-ascii?Q?Crdi+dUH0T5OlWSFeGrMblHNNZLUIJTj2xTbeGpkv7bfyrDPoVevGVJjapfN?= =?us-ascii?Q?PfVR03eP3mOTOph1n4KDzaK5JGhphp5krdFbIrC+TycFqtvKTdXqLC+oeSA3?= =?us-ascii?Q?pYgh6kDCKUDud5vypLSpxjb8RQCRUSjCLUgkq9+FClnbamb8UogiH92qu+fd?= =?us-ascii?Q?/iJwUX6U5IhW1Gjki6Ih4coAmuzkzkTAbzkHIRtpUepfj4w3pm7IlROPBr3F?= =?us-ascii?Q?tQtgA8y+8SMwHvyL922JxpHXHUe3z9yf5H0ZczuJU2Hdeu+KJ9w7hvZhkRPu?= =?us-ascii?Q?Jxu6rgMH5zYaWE97fRvCXnkd4o6Egunnl7Z+BE9JxKIlck2tOPgyvJg+J4Hr?= =?us-ascii?Q?9lOsK4Aa2OiIbQ=3D?= X-Microsoft-Exchange-Diagnostics: 1; SN1NAM02HT103; 6:8PZi7Zb+kezSVKuX5c0QAhWaF1BkSBgBn9lhVlNJsNzQxcoAZd0rCETMvP6DboOhcyAL/lkWR94Tl3aDUcHniNha4oSEhPp6D9iltVA4JtykOvH6A8sEM1Gq3qkSzuxZws6rnGHNBCXKc6Tyngjn3Y37h/6qPWlXHqvGprm1VegFu5I9jkBePMx7sLtJ4W4CuVKtgBwnqdHuhUWS4J/9X6RGFB5oW+OrHrrui0R43EstWlwu84O977oU/yptuNZ+KtaJGwFyH6Pgz5o2nP/jWneTkQAIdVgIxly8FP8mo7nmqWqSZKxRB99waG2VU9S73kqqVw2uGOLEWPFtzrgveg==; 5:T3laO1dkZPmY0EP2nbrxLveKBZvV9ObDe9sq330zirsfB4AGDSDk/u0DPEK2RdINBPkuLSPfOgtpFxAsMZOqVj4dUoGjNgKjFhzifNx5+ySRj7iAsH68/0m2EAiuPM63FBn5Gr73epByYobhWhWJ+A==; 24:n42y0QtTWahGQ8nEZ72tcVZGK18v4cj2N+FjDtyyor7XoayAvLafOYI7M7S/wGiTDKdT7Ye6g9VHqE6Ib06LZMrBkNEZBKcFr8WW9djoW0c=; 7:shtRR7EfI0uJp7z/p4oufik4srEVmsFlRyhdKKyI6W4b3KFwZxWBrEQ5VkiOmtDlXKJk1+LGwwIOWHN5mWSPPSpa0J8R6iS0oa5hL47LCQBUWYrOaOcmPCwUrYxP/s/0RvAjozsvey7zwvYwSyXLrAWXkrGtOsuNqeegZ1e8JiqA5YqEGFlFLCx1lINWQcD3Nl0pY5JrlIYky8LG6GmsHCJtCVuCenTPE/o9yN66ZxuK+5zw7um4QMcEKM63Xa3d SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: xilinx.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Aug 2016 20:07:18.3489 (UTC) X-MS-Exchange-CrossTenant-Id: 657af505-d5df-48d0-8300-c31994686c5c X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=657af505-d5df-48d0-8300-c31994686c5c; Ip=[149.199.60.96]; Helo=[xsj-tvapsmtpgw01] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN1NAM02HT103 X-detected-operating-system: by eggs.gnu.org: Windows 7 or 8 [fuzzy] X-Received-From: 104.47.38.40 Subject: [Qemu-devel] [PATCH v10 1/8] loader: Allow ELF loader to auto-detect the ELF arch X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: cov@codeaurora.org, crosthwaitepeter@gmail.com, pbonzini@redhat.com, armbru@redhat.com, alistair.francis@xilinx.com Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" X-Virus-Scanned: ClamAV using ClamSMTP If the caller didn't specify an architecture for the ELF machine the load_elf() function will auto detect it based on the ELF file. Signed-off-by: Alistair Francis Reviewed-by: Peter Maydell --- V10: - Base checks on the EM_NONE macro V9: - Update documentation V8: - Move into load_elf64/load_elf32 V7: - Fix typo include/hw/elf_ops.h | 5 +++++ include/hw/loader.h | 2 ++ 2 files changed, 7 insertions(+) diff --git a/include/hw/elf_ops.h b/include/hw/elf_ops.h index f510e7e..5038c7f 100644 --- a/include/hw/elf_ops.h +++ b/include/hw/elf_ops.h @@ -280,6 +280,11 @@ static int glue(load_elf, SZ)(const char *name, int fd, glue(bswap_ehdr, SZ)(&ehdr); } + if (elf_machine <= EM_NONE) { + /* The caller didn't specify an ARCH, we can figure it out */ + elf_machine = ehdr.e_machine; + } + switch (elf_machine) { case EM_PPC64: if (ehdr.e_machine != EM_PPC64) { diff --git a/include/hw/loader.h b/include/hw/loader.h index 4879b63..c59673d 100644 --- a/include/hw/loader.h +++ b/include/hw/loader.h @@ -68,6 +68,8 @@ const char *load_elf_strerror(int error); * load will fail if the target ELF does not match. Some architectures * have some architecture-specific behaviours that come into effect when * their particular values for @elf_machine are set. + * If @elf_machine is EM_NONE then the machine type will be read from the + * ELF header and no checks will be carried out against the machine type. */ int load_elf(const char *filename, uint64_t (*translate_fn)(void *, uint64_t),