From patchwork Mon Jul 24 17:12:47 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sean Anderson X-Patchwork-Id: 1811952 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=seco.com header.i=@seco.com header.a=rsa-sha256 header.s=selector1 header.b=A22yzhaG; dkim=pass (2048-bit key) header.d=seco.com header.i=@seco.com header.a=rsa-sha256 header.s=selector1 header.b=A22yzhaG; dkim-atps=neutral Received: from phobos.denx.de (phobos.denx.de [IPv6:2a01:238:438b:c500:173d:9f52:ddab:ee01]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-384)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4R8mx344QPz1yZw for ; Tue, 25 Jul 2023 03:14:31 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id C0D08867D9; Mon, 24 Jul 2023 19:13:50 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=reject dis=none) header.from=seco.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (2048-bit key; unprotected) header.d=seco.com header.i=@seco.com header.b="A22yzhaG"; dkim=pass (2048-bit key) header.d=seco.com header.i=@seco.com header.b="A22yzhaG"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id F1F1C8474B; Mon, 24 Jul 2023 19:13:40 +0200 (CEST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,SPF_HELO_PASS,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.2 Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05on2060c.outbound.protection.outlook.com [IPv6:2a01:111:f400:7e1b::60c]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id 82FE786817 for ; Mon, 24 Jul 2023 19:13:34 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=reject dis=none) header.from=seco.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=sean.anderson@seco.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=seco.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=2oCsYXEopMcvzGdobjN47T99j0Bdtxq+vWMrX1Kd03A=; b=A22yzhaGYs91g3yz9X58fYfcGWbJ5qT6W+mLfFUy3zTmE8sfHj5fV08gBfDvO1u2ChJAK3LlbsRJuPS7+zDudYX3/LfS/iUolcCu8f9Zy2MObBBfbPZ9aBK9SYEJVACI9O6uqWzm4Nh49IWqimUThv91s1bk6HWKlMi5VnrBW0mHrXATnQwUVO1hXWBgueAKtBA7Oi0h5ynhj74YuSVlgRG+mafKQc4j9shgq5OEvL0EjLkwWxQUyfmWXwl5ZV6a1tMLm/pqhoPKFxxtwfPRHBW8osZmaMTKFy2dmW84JrGQMvR42ig6RFyEml09GwBQrGUoIALsgBVxEyuW44rwYg== Received: from AS9PR0301CA0054.eurprd03.prod.outlook.com (2603:10a6:20b:469::12) by GV2PR03MB9595.eurprd03.prod.outlook.com (2603:10a6:150:df::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6609.32; Mon, 24 Jul 2023 17:13:26 +0000 Received: from AM6EUR05FT065.eop-eur05.prod.protection.outlook.com (2603:10a6:20b:469:cafe::6d) by AS9PR0301CA0054.outlook.office365.com (2603:10a6:20b:469::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6609.32 via Frontend Transport; Mon, 24 Jul 2023 17:13:26 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 20.160.56.82) smtp.mailfrom=seco.com; dkim=pass (signature was verified) header.d=seco.com;dmarc=pass action=none header.from=seco.com; Received-SPF: Pass (protection.outlook.com: domain of seco.com designates 20.160.56.82 as permitted sender) receiver=protection.outlook.com; client-ip=20.160.56.82; helo=inpost-eu.tmcas.trendmicro.com; pr=C Received: from inpost-eu.tmcas.trendmicro.com (20.160.56.82) by AM6EUR05FT065.mail.protection.outlook.com (10.233.240.106) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6631.25 via Frontend Transport; Mon, 24 Jul 2023 17:13:26 +0000 Received: from outmta (unknown [192.168.82.134]) by inpost-eu.tmcas.trendmicro.com (Trend Micro CAS) with ESMTP id 5A3E320082C8F; Mon, 24 Jul 2023 17:13:26 +0000 (UTC) Received: from EUR04-VI1-obe.outbound.protection.outlook.com (unknown [104.47.14.58]) by repre.tmcas.trendmicro.com (Trend Micro CAS) with ESMTPS id 407F92008006E; Mon, 24 Jul 2023 17:13:23 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=DWKNrnRdtG8UmVRZGIHJM8X1+9uzntnkc9ScEofa85125eNjebVLxMot5Ll91N4t/dx3sLn6tVxGZBRUuqoffuVBYKtytIjpTs2hO9BM+66VY/7L6JVbe62B5x6oXOaUAiFPRiVRqgP7XRDOIrxoW3lKCyB+dvIkSysFA4Qi/Jnys4KfEHUham77+3YDx4W8kQicrRmxWAOjNROKUNnK5GwllFD6r9R4Rhn+G0E9lDJ0MkCxjVCPsCp1vQ6bdv6tj9KKnVYf7Gl8DXVLe/0NGvvST6RMHM4YStaiKgh2nwizNUiXfsG5ZkdFgmDcs1oT67Y8tmm/Bs77s9UVwQROxw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=2oCsYXEopMcvzGdobjN47T99j0Bdtxq+vWMrX1Kd03A=; b=GLMMPYYd/zShmi8Tzi4qm4WsUZd6MaTSm+EYmug6CaQ98zJ30kerWenMExpME1WXbWoxcmLgm25YhRWGEMtruPrVXMRvseP2h0oRVEfxqvaRNTExXkBR6WaVkAz7bt/BmKDu4Y3RpRlZgOaFmkA7I/jmrkitAI5iAhWpv6trhBvrHFVYJei9so05/cnTxT9Koypa3pbk7CUJ4G/qpY7Axj6L6kJlPr9BIjT7NzLGqgJCM/rf9CrkEgffzUqMMT33xzajaQMeAK1CuGlQeafGfwepRgVWT/7hZdsgyigw1ZG9G1P0j27SZHZhb042COolQVq1aHJqM02UBDMWPpyHZA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=seco.com; dmarc=pass action=none header.from=seco.com; dkim=pass header.d=seco.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=seco.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=2oCsYXEopMcvzGdobjN47T99j0Bdtxq+vWMrX1Kd03A=; b=A22yzhaGYs91g3yz9X58fYfcGWbJ5qT6W+mLfFUy3zTmE8sfHj5fV08gBfDvO1u2ChJAK3LlbsRJuPS7+zDudYX3/LfS/iUolcCu8f9Zy2MObBBfbPZ9aBK9SYEJVACI9O6uqWzm4Nh49IWqimUThv91s1bk6HWKlMi5VnrBW0mHrXATnQwUVO1hXWBgueAKtBA7Oi0h5ynhj74YuSVlgRG+mafKQc4j9shgq5OEvL0EjLkwWxQUyfmWXwl5ZV6a1tMLm/pqhoPKFxxtwfPRHBW8osZmaMTKFy2dmW84JrGQMvR42ig6RFyEml09GwBQrGUoIALsgBVxEyuW44rwYg== Authentication-Results-Original: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=seco.com; Received: from DB9PR03MB8847.eurprd03.prod.outlook.com (2603:10a6:10:3dd::13) by AS8PR03MB6743.eurprd03.prod.outlook.com (2603:10a6:20b:29e::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6609.33; Mon, 24 Jul 2023 17:13:22 +0000 Received: from DB9PR03MB8847.eurprd03.prod.outlook.com ([fe80::65d7:d7d8:711b:2514]) by DB9PR03MB8847.eurprd03.prod.outlook.com ([fe80::65d7:d7d8:711b:2514%5]) with mapi id 15.20.6609.032; Mon, 24 Jul 2023 17:13:21 +0000 From: Sean Anderson To: Tom Rini , u-boot@lists.denx.de Cc: Xavier Drudis Ferran , Simon Glass , Stefan Roese , =?utf-8?q?Pali_Roh=C3=A1r?= , =?utf-8?q?Marek_Beh=C3=BAn?= , Marek Vasut , Heinrich Schuchardt , Sean Anderson , Nathan Barrett-Morrison Subject: [PATCH v4 0/9] spl: Use common function for loading/parsing images Date: Mon, 24 Jul 2023 13:12:47 -0400 Message-Id: <20230724171256.914133-1-sean.anderson@seco.com> X-Mailer: git-send-email 2.35.1.1320.gc452695387.dirty X-ClientProxiedBy: MN2PR15CA0037.namprd15.prod.outlook.com (2603:10b6:208:237::6) To DB9PR03MB8847.eurprd03.prod.outlook.com (2603:10a6:10:3dd::13) MIME-Version: 1.0 X-MS-TrafficTypeDiagnostic: DB9PR03MB8847:EE_|AS8PR03MB6743:EE_|AM6EUR05FT065:EE_|GV2PR03MB9595:EE_ X-MS-Office365-Filtering-Correlation-Id: 3a209a39-c3de-4bef-844f-08db8c694b40 X-TrendMicro-CAS-OUT-LOOP-IDENTIFIER: 656f966764b7fb185830381c646b41a1 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: 8X9YlCnPBM7camHoqHvREpBFYO5J74j8mabu4l2E6roP55i6dCN6zFvfi7YSVul5XuHq0RUnMMMib5kYjppU/AnnApDtKDgKJ2emJUdpM97OBXStaLM6hsEhN60B1kziIR5Z13GMq1PZQZeSdZmNDVIdGJREyCX40c0j24FLNq2Y1i/ruoaNIIo63xQUr7SbyZJ08+ZwAxoFOV6vW0IEmMNh5kMkLja71UUBJqPNPSkJ5MfOPi07DA7mCMHOKTKwWhT03BYONhr0HjQrCJoWKi17RzJK+BodDNIfWKLnppfGDH1UGB2Hg6vGbHb/I4famtlq4a6chCz9aN3nRTLPX+4DKvVTwJV2iai/2JWoIq6E1vjuS7apHXGsDfyVTTUDhq5U3RwE2R9tr5yrylMZ6lSu/5ESp7JyJt560b8DmY5DVGfDcd9in3dhP6geTxGamBggPRrh6geYWuUEclPVmsprumlzXEywDNboKs2LwKAMZGnZ3sXYj1GG/GPbU7yd13mPXuMfDGxU3jFCCrSC5LLYJ45OMvENOhogHzBrr8rnEHEVdnsd7+oLUn/K98zWelicMy1OZlp5CgtLvCcy9okXmukAUO/5Bs/W5yirMqvQ2rYfe9XILRIja293Lppu X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DB9PR03MB8847.eurprd03.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230028)(376002)(396003)(136003)(366004)(346002)(39850400004)(451199021)(86362001)(36756003)(2906002)(52116002)(54906003)(478600001)(38350700002)(38100700002)(26005)(186003)(1076003)(2616005)(6506007)(41300700001)(7416002)(44832011)(5660300002)(6666004)(6512007)(6486002)(8676002)(8936002)(66476007)(66556008)(66946007)(316002)(83380400001)(4326008); DIR:OUT; SFP:1101; X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR03MB6743 X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: AM6EUR05FT065.eop-eur05.prod.protection.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 7af8ad11-0e9f-4211-601a-08db8c6947e0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: jSuj8eZlcA9gVupSuRM/98oBaM+lv0F24j0pu6nDUgMROvVg08s9ZtHVOgwolPo5Qcj41PalYH6rKXQB2kVPz3Q9T5Bsz2hn6qJh+bxeVaEqOk8vgbfESCLZgZ2zlGmZPAnvSxW96oyWOldl4zLo1IgKJj+d7mhdV2cnSHMofk+S8KjWvUY0SXBo/46ewTlZjASjVx2Ezs2Hdfnc/BSJ8XxQTwrlfS12kW+Xzu8BCnfD+D8gC/hJOiWPZt3cFOYDJTTJwL4SbTs38pCfkHfJ/t7jZy9DQVxo2coStZQ58th9tkNp4DjCFOqA2bR15D4zQOAKDhGJ6smNEnK+V8dOOoT8VTbnJdgOrD8FITR6YoDd7ITkr/SI3MhygeRYdO0xVRhLV9wwWbVCRfMIytbOReu1M8HEsYQYz0JejjWBi5HRwk91lMxFaXVnaqaZ09FZ5NCXwEGtKTSSKKa0Q6IZYBhbu4HlC3h+7Nh0sszBsd7R2zLgH7VoTNgsDowTsWyHAQwbDKgOhF9SkSy5kjnIxhHxOZ79dwfaEdkOyCGjYVme+GcdWAxd6ZClSCPffLUxMeQt1I7/oU8Fa/lIndZAfiMB5Ke/koJod2jFBFXfspXNPmvPh+H1xg+LUoheTGjQpKZKWZTx0GhOlju6uTkEZsyhrIG7LTa9kj8WxRU/6Q0bR2ehFQvUOp5tjV2Ei97a4945tvDDrLfxqXwkbhRtkFPwGEO5V2bqGpXc0BrY2HuWnkEEDvZWh1/IsZBonixaB4ZzQaZhO1c9A0VX+kLphw== X-Forefront-Antispam-Report: CIP:20.160.56.82; CTRY:NL; LANG:en; SCL:1; SRV:; IPV:CAL; SFV:NSPM; H:inpost-eu.tmcas.trendmicro.com; PTR:inpost-eu.tmcas.trendmicro.com; CAT:NONE; SFS:(13230028)(39850400004)(346002)(136003)(396003)(376002)(451199021)(82310400008)(46966006)(40470700004)(36840700001)(8936002)(8676002)(82740400003)(316002)(5660300002)(34070700002)(7416002)(44832011)(4326008)(70586007)(70206006)(7636003)(356005)(7596003)(54906003)(36860700001)(26005)(1076003)(6506007)(41300700001)(47076005)(83380400001)(478600001)(336012)(186003)(2906002)(40460700003)(6512007)(36756003)(86362001)(6486002)(6666004)(2616005)(40480700001); DIR:OUT; SFP:1101; X-OriginatorOrg: seco.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Jul 2023 17:13:26.4562 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 3a209a39-c3de-4bef-844f-08db8c694b40 X-MS-Exchange-CrossTenant-Id: bebe97c3-6438-442e-ade3-ff17aa50e733 X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=bebe97c3-6438-442e-ade3-ff17aa50e733; Ip=[20.160.56.82]; Helo=[inpost-eu.tmcas.trendmicro.com] X-MS-Exchange-CrossTenant-AuthSource: AM6EUR05FT065.eop-eur05.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV2PR03MB9595 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.39 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.103.8 at phobos.denx.de X-Virus-Status: Clean This series adds support for loading all image types (Legacy, FIT (with and without LOAD_FIT_FULL), and i.MX) to the MMC, SPI, NOR, NET, FAT, and EXT load methods. It does this by introducing a helper function which handles the minutiae of invoking the proper parsing function, and reading the rest of the image. Hopefully, this will make it easier for load methods to support all image types that U-Boot supports, without having undocumented unsupported image types. I applied this to several loaders which were invoking spl_load_simple_fit and/or spl_parse_image_header, but I did not use it with others (e.g. DFU/RAM) which had complications in the mix. Here's some bloat-o-meter for j7200_evm_a72_defconfig with ext4 support enabled: add/remove: 1/0 grow/shrink: 2/4 up/down: 356/-260 (96) Function old new delta spl_load - 308 +308 spl_fit_read 60 104 +44 spl_load_image_ext 364 368 +4 spl_nor_load_image 120 108 -12 spl_load_image_fat 320 256 -64 spl_spi_load_image 304 236 -68 spl_mmc_load 716 600 -116 Total: Before=233350, After=233446, chg +0.04% ext4 support is +48 bytes, because the original image support was so bare-bones (just legacy/raw images). For most boards with a few load methods (where one of them isn't ext4), this series should be +100 bytes. However, in the worst case this series will add 300 bytes. I have only tested EXT, FAT, and MMC raw loaders. Please try booting your favorite board with NOR/SPI flash or SPI falcon mode. Changes in v4: - Fix format specifiers in debug prints - Reword/fix some of the doc comments for spl_load - Rebase on u-boot/master Changes in v3: - Fix using ffs instead of fls - Fix using not initializing bl_len when info->filename was NULL - Fix failing on success Changes in v2: - Use reverse-xmas-tree style for locals in spl_simple_read. This is not complete, since overhead depends on bl_mask. - Convert semihosting as well - Consolidate spi_load_image_os into spl_spi_load_image Sean Anderson (9): spl: Add generic spl_load function spl: Convert ext to use spl_load spl: Convert fat to spl_load spl: Convert mmc to spl_load spl: Convert net to spl_load spl: Convert nor to spl_load spl: Convert semihosting to spl_load spl: Convert spi to spl_load spl: spi: Consolidate spi_load_image_os into spl_spi_load_image common/spl/spl.c | 68 ++++++++++++++++++ common/spl/spl_ext.c | 24 +++++-- common/spl/spl_fat.c | 40 +++-------- common/spl/spl_mmc.c | 73 ++----------------- common/spl/spl_net.c | 24 ++----- common/spl/spl_nor.c | 39 ++-------- common/spl/spl_semihosting.c | 39 +++++----- common/spl/spl_spi.c | 136 ++++++++++------------------------- include/spl.h | 29 +++++++- 9 files changed, 192 insertions(+), 280 deletions(-)