From patchwork Tue Sep 20 14:54:19 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alistair Francis X-Patchwork-Id: 672319 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org 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 ozlabs.org (Postfix) with ESMTPS id 3sdmkq1H9xz9sCp for ; Wed, 21 Sep 2016 01:24:19 +1000 (AEST) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=xilinx.onmicrosoft.com header.i=@xilinx.onmicrosoft.com header.b=nvw1vClc; dkim-atps=neutral Received: from localhost ([::1]:36040 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bmMu7-0003ZH-J1 for incoming@patchwork.ozlabs.org; Tue, 20 Sep 2016 11:24:15 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:59785) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bmMSI-00056Y-Qi for qemu-devel@nongnu.org; Tue, 20 Sep 2016 10:55:32 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bmMSC-0003Oh-Tt for qemu-devel@nongnu.org; Tue, 20 Sep 2016 10:55:30 -0400 Received: from mail-cys01nam02on0055.outbound.protection.outlook.com ([104.47.37.55]:12672 helo=NAM02-CY1-obe.outbound.protection.outlook.com) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bmMSC-0003OA-JD for qemu-devel@nongnu.org; Tue, 20 Sep 2016 10:55:24 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=xilinx.onmicrosoft.com; s=selector1-xilinx-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=eqvbQXdJbt9BHNd/TW1OzBEShzfV5R2faG4+jXMUAJU=; b=nvw1vClc+7LsVIE9rOsot2rtv498ja9VTM+FMrYKRKXuC+rFSiZYY/3lx2K9gell9ak694qdcChC9V7MMIOXORZ1GXLvManpr1Ixsk3DGl9Jf9wKVPytiEJkh5F9277kJ0itU0hQYhwbePhs3l5HMIgi1w94CyxAwg8TN8hIegU= Received: from BN1PR02CA0032.namprd02.prod.outlook.com (10.141.56.32) by CY4PR02MB2887.namprd02.prod.outlook.com (10.175.60.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.629.8; Tue, 20 Sep 2016 14:55:22 +0000 Received: from SN1NAM02FT022.eop-nam02.prod.protection.outlook.com (2a01:111:f400:7e44::202) by BN1PR02CA0032.outlook.office365.com (2a01:111:e400:2a::32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.629.8 via Frontend Transport; Tue, 20 Sep 2016 14:55:22 +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 SN1NAM02FT022.mail.protection.outlook.com (10.152.72.148) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.1.629.5 via Frontend Transport; Tue, 20 Sep 2016 14:55:22 +0000 Received: from 172-16-1-203.xilinx.com ([172.16.1.203]:50698 helo=xsj-tvapsmtp02.xilinx.com) by xsj-tvapsmtpgw01 with esmtp (Exim 4.63) (envelope-from ) id 1bmMS9-0008Gr-6l; Tue, 20 Sep 2016 07:55:21 -0700 Received: from [127.0.0.1] (port=47526 helo=tsj-smtp-dlp1.xlnx.xilinx.com) by xsj-tvapsmtp02.xilinx.com with esmtp (Exim 4.63) (envelope-from ) id 1bmMS9-00074U-3f; Tue, 20 Sep 2016 07:55:21 -0700 Received: from xsj-tvapsmtp02 (xsj-tvapsmtp02.xilinx.com [172.16.1.203]) by tsj-smtp-dlp1.xlnx.xilinx.com (8.13.8/8.13.1) with ESMTP id u8KEmELq008973; Tue, 20 Sep 2016 07:48:14 -0700 Received: from [172.19.74.182] (port=57010 helo=xsjalistai50.xilinx.com) by xsj-tvapsmtp02 with esmtp (Exim 4.63) (envelope-from ) id 1bmMS8-00074R-Dv; Tue, 20 Sep 2016 07:55:20 -0700 From: Alistair Francis To: , Date: Tue, 20 Sep 2016 07:54:19 -0700 Message-ID: <1254092e6b80d3cd3cfabafe165d56a96c54c0b5.1474331683.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-22588.005 X-TM-AS-Result: No--10.211-7.0-31-10 X-imss-scan-details: No--10.211-7.0-31-10 X-TMASE-MatchedRID: DsFl2sNdNIsLazoQyrpm0lVN8laWo90MUAjrAJWsTe/K99fyOVK2z5zN 93wt7ZVSIHjnztybxtX4exig1DmiEXi25HfozijkTVa+L3Zgqc43blcgNAu3dt9RlPzeVuQQ3oz JRX7b4NnrhNrc/XiBXcHt6pcaPV+kiyOaUzKo3m8ZXJLztZviXOWNJG9Iamrcxs0UFWHmzwsYxr IgRGvlvaNgoT8G4NpHiuJVio1FdERJzjdwhDQWhPSG/+sPtZVkboFDJyXKWBnI9EDAP/dptomlc KusaK4hS5uDQ/da2J7upTwknGG9dY9oUcx9VMLgFEUknJ/kEl7dB/CxWTRRu25FeHtsUoHuDT2b 7oLE0DxYke1G6oqT6NsF9m5XJdPs/vw7rsY7fT3FhXMjdQIJpg== 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)(1110001)(1109001)(339900001)(189002)(199003)(4326007)(8936002)(586003)(2906002)(76176999)(50986999)(106466001)(105606002)(118296001)(5660300001)(19580405001)(575784001)(626004)(81166006)(77096005)(5001770100001)(305945005)(2950100001)(86362001)(81156014)(8676002)(19580395003)(356003)(7846002)(33646002)(87936001)(47776003)(71366001)(189998001)(48376002)(50466002)(5003940100001)(36756003)(92566002)(229853001)(9786002)(50226002)(64026002)(11100500001)(85426001)(49343001)(107986001); DIR:OUT; SFP:1101; SCL:1; SRVR:CY4PR02MB2887; H:xsj-tvapsmtpgw01; FPR:; SPF:Fail; PTR:unknown-60-96.xilinx.com; MX:1; A:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; SN1NAM02FT022; 1:5YPjVwiwDwgkfW9emieP2ggTxai1ci1iB/xbgBemwA7NPl+8rC50VtoX5gun7pB8Lo4jDe99RhAoC06ELAz+nWdihgDRzhMxdNwyYzI3Py0UcN1sQutbtjkOIkHawG9qSIQ6jZ3jLPZ3AJ4vfuPdB2PDirjSB9lS5l3JnoyRoIPgx5W7gY9a1mjYbyc0gP83FBu3YnPvLz3fKgJ8iVfTRgsgPuydf8rvbqfW0643+angbPJ6DVy8cjAsS6uwWpiz1ZlM5loiYZZfHgMgZ9ltkXDuGShQ2RLiaR8l3zUm+SgKCTviRMqRQiDvEqn6hEjRX1Ki92tQSE0TG7MgkizKqVL41WCqbi1hGFd06XQlfWHcX0V9ZxPkRHov3a67ycSYnQW7miSraGTtsSg+1pdBK1GV/QAJynaGrs/6qwLCYymlV/TvylbLLXhDvm6er1QXC7o42n11VfBzdWsEuNrOzxr+wmCAxm2GNsbyk4fpPFpgONF1+Ya5KhudgAaCwRDBj2wIEHtv3v+fAdjJLoWWhzWq6tOdVNhZBV7SWYo2BKAWOVHIrlkqYku1mPOa0PP0HZONWQSv6MkJrYAY55jpfONc/BCOIETaam2wRa8BT/M= MIME-Version: 1.0 X-MS-Office365-Filtering-Correlation-Id: f03a4115-ea3e-4199-dcb2-08d3e16625a0 X-Microsoft-Exchange-Diagnostics: 1; CY4PR02MB2887; 2:H69Qlg9zV1VuVFhf/63SqFYjsz/CrL6+yWv82cLM+fA+fTdgTbYD69OyfR57LQqlCFlsS1CY+G0AmZeZDIkBflIWmb2cbiBMAMkubgvUrS38kA/dnOzMub16UJItC4xhXx/R+L3uqgyV5hHpouEy0FazkHIfhUfbIvSV8Gmfd3MGu+SHX5WlmPcr8MH5dSod; 3:RDq/De7DO5fDZyUyECZxHkmhxRxDaOC/xEsMWfan9PfTpwxULh4p6OaqHg3Kip5L8qBmcHu8Dai2zw06SahiPq9ifUmcN00BKvRZGSHYrrrbnitJbikeZ+MqRL54IyjglEmPwZwkIWlj/nY583V6aPcKKmXQ+TiNRTIKZs+NrxsarO+bYfNe/eDZDeqak7JGT5xPWIibyAR7sKZlxqWD4aHTCJGOgbt9Zp5+amwAjkQ=; 25:eimbXti2jS/zjbW4ZGXV6f46IDtsmtXWOYSEkVhuAN/Y3Rl8Hz09aMXh3/2ooSBfcNjHpyXOO0UE9DNfud4tHXyP2L2MF+iwzYkt3/RJx+oNlRzsjWVMJ8CjhEwmDXQVsmg1vGmx3E63SZ43TunXfUMI+GU6Mh2Eol9Bpt+MkvJFiJFS8eNU457udAKQn833dioziDrzoHTJydVXUFW88PDOoc9CtUrxuzQLt9EL5RFCCdlASkSjkL1G68YRHM+zuAtlhzsom3Ne5WTi2Mebunei6N7YPU1Xofku3NmX9dH+R2sBjbT5LPrZwMtSSPx3rxjvNwkhGQoOHppJZQ6hu4X+52AMkCZ48GrAesE9VVVjtOlJURN44gJAuUsWD/DGl7HvNg5j6U4IUcdgROj7VLs4Rd4nNq5GgkVU9jNs1NE= X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:CY4PR02MB2887; X-Microsoft-Exchange-Diagnostics: 1; CY4PR02MB2887; 31:+OAPGyqy7KqezvyTJv7EvFuQ1h9MOyEIEWqT6+MFy+aoiTSJzhhvujsn1SEUDJSYn2WbY/z/XTNeL4GkyAW+Zk6XxMuE93vgZaEecehc3b1piiCAd9MlIUT1ErHtxbGuWC0/BtSdcbngA6KJl4Te3r5YW1tH34ptjgrmEeg64MGG5lwzSq2l5hOCSYNKGMeFC8UL64/4IV77t/Rd/Xpg0JiVHI4mGIA1FCJDZ7xk+1s=; 20:8QYSiC/hRwOUPJC0jwsTC1VCS99X7DnRX90jlwNdWz2tAjWrqGmsfY+RXSarIsojwdP6vPryIZS4f8aV6yYbgghIvym22tXeRGNFN6SEJUMcGHSmRRFIiA076oygFd0aoa4xA5n1T+H7BXQjsfeuARhjFv7c5w6gHxjQdKPl3czJBHEbnxenKkLp70SFSLMq3QES4RnTTrIDfhiXKTcXMSaatib1lw2TkS2sSA69Cm2ZQYVm8E5r4vpnh1igOO2Ad3QInPzDEWJOcURIbgqX1dGpiLiUruCr0myNK8AaE1SGPZTZb/nsZQvd+5KKZj/rmPhKOwX3FvrLqDnOWMdssyNRQX0QsDUROASiuMRnEaCkqhdNQm6dYChwFuo7ZLhnII87yxmlIRIgG43G1txGl30NjBNDArnR0qousqX963j+8eL3RRIi5yYzpnhRd5Gx6iLdQVeHIMVYnBLHrvTdhN+bNndlc2m+EOHfXBX1qFtVdhOm3cfHurhuhxuxDRsK X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(192813158149592); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040176)(601004)(2401047)(13018025)(13017025)(13015025)(13023025)(13024025)(8121501046)(5005006)(3002001)(10201501046)(6055026); SRVR:CY4PR02MB2887; BCL:0; PCL:0; RULEID:; SRVR:CY4PR02MB2887; X-Microsoft-Exchange-Diagnostics: 1; CY4PR02MB2887; 4:/tXfkA6A2uDgBKFgJaHoGOp6VvCt3xuvw2FbgoQuxyvzFuEs/HUlNfM67YK0xoPgXvU6tdw1BRF0bUkCjL7GT7QPFFAXJTJBrwl8s6kAyyXxMRR2G+bR26/qJUjio4sTqJLFA4+7RCFXBRT0Y5w3XSM0ExpHQI5xf4EK11u9OjwgyqFYaM5MHOnbz4OjcNrgkpr2rTDSv0mOFdIQVEbBCrv482TzmSRDdUBf6ZM7qB3XX82+QQmD5/PSSdaSyJ6D5ZkVTWTgcr8ARqdBZGxiGWBfs8QVlzWo9q2itJzLMaEYuIVOfAihjHXclCDB89ySoxLqnojgrOFm0COgVT+duIJ+VyCfxVcZTw6dMtp7gSxrSRc2u3VA9Bmcww6XDr3X1f6z8A6WSNPWW0Cv48E4IU036bZy9YSuphTHSI9pPCGFNBzHoosjLAoTCnFhSupLTacDQpR3pk2CPQqhPi572cpq6uDNf1Z/9ANERX7HfMIpIQTg4qqqUOEBJFcE+fCSfDeK+BVayATPdMlpC2dxV6sgpZg9NNOfx1B60UjMctw= X-Forefront-PRVS: 0071BFA85B X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; CY4PR02MB2887; 23:3Gbd8ldZVX7sPYDrsNbaFVESo5s8+Y1SGpc1tPg8v?= =?us-ascii?Q?C+6qU/5GHZRV+MZzRRgLJ2ea+bI/r3DYHBSFUDmPyuWzvZrbbFbYsupSRFLn?= =?us-ascii?Q?gK1ZoIwQBVHojkJPPWRmFJjN4DI7ywZRlrMlm6MtGcNA7ruATMkOprktdwCm?= =?us-ascii?Q?CH9vWu/+nf7bXxK9AAW28G6Q3K+wy8gtkVrC1NTta9814rsqdUJm2wn0DycG?= =?us-ascii?Q?dGg94hNIiLQEUZDTA/c8S1AZUXzeERtmcO5Gx8FyEPhRKYdGtJkqvjXHRf2z?= =?us-ascii?Q?zYJYwh+54G0HX8gF+ikREBjvcIdJl5kPVu9fwNlfqlLvq7llJ4v7/4cjzV1+?= =?us-ascii?Q?I1U+GchTQ2AlTJZGUn+p4Pe3TtziWL9Ul7BNPDK3QfyNiQB4TlrhP0oD3MLE?= =?us-ascii?Q?ARlkGUNE6zgKR37L36ietSNDcx+s0lNta4lLpzJAZM/CNgiMe0Y2hEM7Padn?= =?us-ascii?Q?6pHswAFhE4JnqQrH1k+DWOwVwq2VcqGDP1UVAizvRrDiw93+nfg2abGxiQBq?= =?us-ascii?Q?otYmch5+Pg4vH1zUT/01nuLsObRsYTmt1GPGyzdhJmz9Yelrl6GAtB6MsOO8?= =?us-ascii?Q?FNR+Puv/s+UA6cdATTZYiP5+V3nZ4fvG0r5LTbQ6dwevzsZuE67rxURhGtaX?= =?us-ascii?Q?u2C7Ep0vrTwCo+EuOuJt1rqARPP8X0M5D9nQNeXKSMAH2iZyfGTJTYzK827N?= =?us-ascii?Q?VWEvob3jABvI9Z5B+4ahIsI2towDVOixklxEvcoZVjBSR1Mod80eOdZkfTnh?= =?us-ascii?Q?Ddla5Vf9rRxGqc5qRxvDPgJladYmQQpj+a2RWZAXEZPWinsi9GxUTBVv0kJE?= =?us-ascii?Q?35yKLr2Kq9iB1rG0qQZ4jA1YcmAwyGT8JYF3jIOKEK68aHlXkvN/nSQpj91x?= =?us-ascii?Q?p7U51mMi4DugVNG+267UzRLleeeDummAH8tJjjJjILwgw8sEgEObg3fYM+OA?= =?us-ascii?Q?ZbzW2vY5b1nulSekS5XQOkGFIb5DUpbFtBVFcPjFjkE0kKYlQ3XXXDaUYiL6?= =?us-ascii?Q?qYacUvR4Zq1dRyQfDDeTfKAlAy+CUi/o+dUEY4vFg3krF34ETkxJFXNdqdyj?= =?us-ascii?Q?BdYwJvyWjw53NLWaqHiHNFa0ql/jyWKXo7mAlgNXpTpn+uoNghg012OLF/w8?= =?us-ascii?Q?OcHWHuUBI0DRpvEFAYx4r3afkuefdPcVb213WWiAqmzeM2YZxeC1DBNMl+uO?= =?us-ascii?Q?bpGLIojjHkzJISdSnHgt/c7uhcLS6RwxmivWEHbbGg9gg6TgIIFW2wCJA=3D?= =?us-ascii?Q?=3D?= X-Microsoft-Exchange-Diagnostics: 1; CY4PR02MB2887; 6:UtLsv+kYDqjDsLE/8D+R5eOFIkExaoomQVn4qsI0dq8qz1jHXss6emTMXX8rOHhTUJWeuZdnct+t9ff4kgeFHVrsbKU45m335Fc47d52DnfpuEYrSp1E2Dp2/wg9Ei/tvxYuoY9fKkPZ/CA3uozJXGBn3yY88ScZXlmmyLMf8GOYXxW0B7xEW4jEqM/MDExqLs6VzzbPL9xqX1yJNXsQWMzUBUCDXii3gV4vc3IdnHCswwm5IAIXd8GFguSuMF0aQseT33PqiblJjsiPeMgogAFeI97tnk4gFA+9JO1khYKTibU3SWiARpk+tuwgoyTPgqnbsxxlDzeWDaBCWwYAEQ==; 5:3Hi5R72mWzxf/GXTqHRZOAte5rH79Sd85wJPwFAPDR7PSYSSNLysibU9s0VV+671HSMmhIYIbuu3zzWee1dzvtcA7mrYpnBdr69c8lHRwkHIkJ0rOj+NcltCeTgseb8aKvYDX03Mpqv6RS58ygCZCg==; 24:hVnXddqzV3eQ4D3WMYzgmLJflVZ3p8SlbYpe/e0jYUPIQuRtT8sXRuNgiaeT45UygcMrmOWoH+2wUK5EBXAIFxRGCskFL5KUZzp/LNgJy4k=; 7:dDwQv5fPcNzkmFVSsrfm9/I0XzAtf7nW/AqxH4H1sn5tccJCPtTBpBAUQT0mPAFfsNtNs2LrhgfT99c5Rd3fHL9fj7BAT+NBvaxkZFrLxxItE8RxEI8VQRVGRnIHxxR0S06GTlBLqmPdLduhLYVmSrEv2SoadVQMl/Dr3r8InpYTFaqpf2phFKRhwFAT3EFPyI9AERuyLqRAabHkZMY5p1UpzcyS7jUj0uPzsMFunfMmSLP18N1z5bR5Ki3DdtyZjXu2atJjk1tNIFQvZUqRXKBfj7thcpkA+7Fi2kj038JwDTrUM/EOVwJ9Ccf7toBo SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: xilinx.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Sep 2016 14:55:22.0459 (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: CY4PR02MB2887 X-detected-operating-system: by eggs.gnu.org: Windows 7 or 8 [fuzzy] X-Received-From: 104.47.37.55 Subject: [Qemu-devel] [PATCH v11 5/8] loader: Add AddressSpace loading support to uImages 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+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" Add a new function load_uimage_as() that allows the caller to specify an AddressSpace to use when loading the uImage. The original load_uimage() function doesn't have any change in functionality. Signed-off-by: Alistair Francis Reviewed-by: Peter Maydell --- V10: - Add comment about the function in the header file. hw/core/loader.c | 17 +++++++++++++---- include/hw/loader.h | 26 ++++++++++++++++++++++++++ 2 files changed, 39 insertions(+), 4 deletions(-) diff --git a/hw/core/loader.c b/hw/core/loader.c index 31cbeac..86ed784 100644 --- a/hw/core/loader.c +++ b/hw/core/loader.c @@ -581,7 +581,7 @@ static ssize_t gunzip(void *dst, size_t dstlen, uint8_t *src, static int load_uboot_image(const char *filename, hwaddr *ep, hwaddr *loadaddr, int *is_linux, uint8_t image_type, uint64_t (*translate_fn)(void *, uint64_t), - void *translate_opaque) + void *translate_opaque, AddressSpace *as) { int fd; int size; @@ -682,7 +682,7 @@ static int load_uboot_image(const char *filename, hwaddr *ep, hwaddr *loadaddr, hdr->ih_size = bytes; } - rom_add_blob_fixed(filename, data, hdr->ih_size, address); + rom_add_blob_fixed_as(filename, data, hdr->ih_size, address, as); ret = hdr->ih_size; @@ -698,14 +698,23 @@ int load_uimage(const char *filename, hwaddr *ep, hwaddr *loadaddr, void *translate_opaque) { return load_uboot_image(filename, ep, loadaddr, is_linux, IH_TYPE_KERNEL, - translate_fn, translate_opaque); + translate_fn, translate_opaque, NULL); +} + +int load_uimage_as(const char *filename, hwaddr *ep, hwaddr *loadaddr, + int *is_linux, + uint64_t (*translate_fn)(void *, uint64_t), + void *translate_opaque, AddressSpace *as) +{ + return load_uboot_image(filename, ep, loadaddr, is_linux, IH_TYPE_KERNEL, + translate_fn, translate_opaque, as); } /* Load a ramdisk. */ int load_ramdisk(const char *filename, hwaddr addr, uint64_t max_sz) { return load_uboot_image(filename, NULL, &addr, NULL, IH_TYPE_RAMDISK, - NULL, NULL); + NULL, NULL, NULL); } /* Load a gzip-compressed kernel to a dynamically allocated buffer. */ diff --git a/include/hw/loader.h b/include/hw/loader.h index fdf0a51..bce8f43 100644 --- a/include/hw/loader.h +++ b/include/hw/loader.h @@ -102,6 +102,30 @@ void load_elf_hdr(const char *filename, void *hdr, bool *is64, Error **errp); int load_aout(const char *filename, hwaddr addr, int max_sz, int bswap_needed, hwaddr target_page_size); + +/** load_uimage_as: + * @filename: Path of uimage file + * @ep: Populated with program entry point. Ignored if NULL. + * @loadaddr: Populated with the load address. Ignored if NULL. + * @is_linux: Is set to true if the image loaded is Linux. Ignored if NULL. + * @translate_fn: optional function to translate load addresses + * @translate_opaque: opaque data passed to @translate_fn + * @as: The AddressSpace to load the ELF to. The value of address_space_memory + * is used if nothing is supplied here. + * + * Loads a u-boot image into memory. + * + * Returns the size of the loaded image on success, -1 otherwise. + */ +int load_uimage_as(const char *filename, hwaddr *ep, + hwaddr *loadaddr, int *is_linux, + uint64_t (*translate_fn)(void *, uint64_t), + void *translate_opaque, AddressSpace *as); + +/** load_uimage: + * Same as load_uimage_as(), but doesn't allow the caller to specify an + * AddressSpace. + */ int load_uimage(const char *filename, hwaddr *ep, hwaddr *loadaddr, int *is_linux, uint64_t (*translate_fn)(void *, uint64_t), @@ -155,6 +179,8 @@ void hmp_info_roms(Monitor *mon, const QDict *qdict); rom_add_file(_f, NULL, 0, _i, false, _mr, NULL) #define rom_add_file_as(_f, _as, _i) \ rom_add_file(_f, NULL, 0, _i, false, NULL, _as) +#define rom_add_blob_fixed_as(_f, _b, _l, _a, _as) \ + rom_add_blob(_f, _b, _l, _l, _a, NULL, NULL, _as) #define PC_ROM_MIN_VGA 0xc0000 #define PC_ROM_MIN_OPTION 0xc8000