From patchwork Mon Jul 24 17:12:48 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sean Anderson X-Patchwork-Id: 1811947 X-Patchwork-Delegate: trini@ti.com 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=0FXwk1sM; dkim=pass (2048-bit key) header.d=seco.com header.i=@seco.com header.a=rsa-sha256 header.s=selector1 header.b=0FXwk1sM; 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) server-digest SHA384) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4R8mw814RKz1yZw for ; Tue, 25 Jul 2023 03:13:42 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id A21158673D; Mon, 24 Jul 2023 19:13:32 +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="0FXwk1sM"; dkim=pass (2048-bit key) header.d=seco.com header.i=@seco.com header.b="0FXwk1sM"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 2EFBD86768; Mon, 24 Jul 2023 19:13:31 +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 EUR04-DB3-obe.outbound.protection.outlook.com (mail-db3eur04on0600.outbound.protection.outlook.com [IPv6:2a01:111:f400:fe0c::600]) (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 EB080861E1 for ; Mon, 24 Jul 2023 19:13:27 +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=oqpZq2ZPYq5siAln1ey9JsZ53bBto2Cq+7uwnfKzL7M=; b=0FXwk1sMlVvD8hUEdUvbSYm0jvFk0Hk/EXL8uNMVZJ7vTZQ5Gc40ZYvflWn4G0cyiqWQA/SvTi8GmZKI+bs6cJvIqyansFxa0RCxrRxAB2Cr90duOkor3exTFO65j1/YvHQYIrmylocVGZG+M8uR0Ne23PeRkl9wYscOduKT+l90F4hZ6HO7gy+vRM4AsQaAehSUkG/CrVW8K5CjHgcqX6RXofppIZNebhxJJvDi6JapHPB88bL/uAR+ugKxknHbnr/LpIG6Ww+RPG08bXxCj2XDBLD9T4wz7wndwakucKhoG9jKxlxRPYfFo7qzUPH9BwklmyvIpHvSCzaivahbqQ== Received: from FR0P281CA0115.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:a8::14) by VI1PR03MB9939.eurprd03.prod.outlook.com (2603:10a6:800:1ce::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6609.31; Mon, 24 Jul 2023 17:13:26 +0000 Received: from VI1EUR05FT044.eop-eur05.prod.protection.outlook.com (2603:10a6:d10:a8:cafe::fb) by FR0P281CA0115.outlook.office365.com (2603:10a6:d10:a8::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6631.24 via Frontend Transport; Mon, 24 Jul 2023 17:13:26 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 20.160.56.81) 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.81 as permitted sender) receiver=protection.outlook.com; client-ip=20.160.56.81; helo=inpost-eu.tmcas.trendmicro.com; pr=C Received: from inpost-eu.tmcas.trendmicro.com (20.160.56.81) by VI1EUR05FT044.mail.protection.outlook.com (10.233.243.7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6631.24 via Frontend Transport; Mon, 24 Jul 2023 17:13:25 +0000 Received: from outmta (unknown [192.168.82.137]) by inpost-eu.tmcas.trendmicro.com (Trend Micro CAS) with ESMTP id 55F6C200BB208; Mon, 24 Jul 2023 17:13:25 +0000 (UTC) Received: from EUR04-VI1-obe.outbound.protection.outlook.com (unknown [104.47.14.53]) by repre.tmcas.trendmicro.com (Trend Micro CAS) with ESMTPS id 8E1172008006E; Mon, 24 Jul 2023 17:13:23 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=JjyyIgHvSFD8QsAl0pl12MOLkIcZF+JKByHSrHoJtkD6GOI8AsuZy5n2T0wCNB4jSfO3Injlk8VgDt/rFe4L8DuXnePDlyWhbATmOzqpZsEoZkqSJk9qdDmYKuK3I037K5M7nIfGFQylnR9zHNZjmEKq50Ghm82Lz0AEbuZ1JBZQw0Mwji6RACBR8/MEsanhHkX1Sidb7EzZhd9HQ95n3AEfCb6CdBR2OvwLGhahVgkEZcvn8DsAHx1CRj1o8fSr1sYimQuntySG/RhqodVFuqNpe4yGqDFECS9Kuv4z+3MGCPq4CdeacKfwVmHiRphmgcmvpXZJ6MD+PqyLQnh34A== 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=oqpZq2ZPYq5siAln1ey9JsZ53bBto2Cq+7uwnfKzL7M=; b=b2pey8eRHqUoJejeyw0Bg1pyx6ASrFkZhFyMUfIYxmq8GTYhlnugecL3rZOk5voxWZMUNHTHR2wnr66YJbosiQtpF7RcTaSV197NvkOpX29GlQuEGimneovd/uCaszGBXIfoFkJmP1n+3U78Ju+VHC9hXpgbn//dOvAottWG62vmNx8Mlc80YKUL6piO7uG0jTwzZ7a7kwpZTKEJwopolWCltIx5Z5E4gfSY0Il8Vy71Jdk53CcvlrPJ6Adj2CpcdGCXuBKgMWlweqq8xVIOqPTwWsQ+bpTloY4StY3txEXrYojUN7P26eHzJ21LPBh6yRviBM1fndGBeElqU17kjw== 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=oqpZq2ZPYq5siAln1ey9JsZ53bBto2Cq+7uwnfKzL7M=; b=0FXwk1sMlVvD8hUEdUvbSYm0jvFk0Hk/EXL8uNMVZJ7vTZQ5Gc40ZYvflWn4G0cyiqWQA/SvTi8GmZKI+bs6cJvIqyansFxa0RCxrRxAB2Cr90duOkor3exTFO65j1/YvHQYIrmylocVGZG+M8uR0Ne23PeRkl9wYscOduKT+l90F4hZ6HO7gy+vRM4AsQaAehSUkG/CrVW8K5CjHgcqX6RXofppIZNebhxJJvDi6JapHPB88bL/uAR+ugKxknHbnr/LpIG6Ww+RPG08bXxCj2XDBLD9T4wz7wndwakucKhoG9jKxlxRPYfFo7qzUPH9BwklmyvIpHvSCzaivahbqQ== 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:22 +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 Subject: [PATCH v4 1/9] spl: Add generic spl_load function Date: Mon, 24 Jul 2023 13:12:48 -0400 Message-Id: <20230724171256.914133-2-sean.anderson@seco.com> X-Mailer: git-send-email 2.35.1.1320.gc452695387.dirty In-Reply-To: <20230724171256.914133-1-sean.anderson@seco.com> References: <20230724171256.914133-1-sean.anderson@seco.com> 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_|VI1EUR05FT044:EE_|VI1PR03MB9939:EE_ X-MS-Office365-Filtering-Correlation-Id: 62678722-cb01-4b9c-59c8-08db8c694ac9 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: M2ey9IUKrJWpDInq3kDSpTuvSf66gMNuCbKDTbj8jlQqU4DO8UTK66NyzQk7pYks0o/y0z75AoU8Afx6tLA+GaBGOL5OH28TaiGmRsHCPiX+0picQ+LMmE54ebj/Iidlq47gMfFc+D8rouFpOT9db5o1Vh+dTj9HdpIEwCyoguTaZsQdwAxoGSyM4VfcOixwlIJAoyk4JbvJdeP+IZF/n/6NUmyMPQh6hEdEUZ2dBAbgR5L137+luD7fUETerNHucf/lz1vHbuTi5OjjwVlNwUGXER3zwnLpb28AwHOGSZ2zZl2YDraFKgzcAktJTLQZdal7yOwh4npYlwYCQxx1kIiR87JUldDU5eMlnUXrrlgc/mKTNysqac1nElqHpvu5NKszH2aAl7yjyL7Oz6Otc1RBGWFxSPB35lZmlCxsA5b11/PYu4fJZVqPR1+glF856k5/T/lwBmE/X+bX9sInt7wFEwG0+0wPQNpvh7ultbIbPaIPQB8mrK+8dRt1n3fE7jPVo8Rfoo27cdW4UWRd+6MAGCjSaUHGQfcDfrY108WAj7W1wSFqVxLGyuxyXSqiqgDxZaEBRDoir7sacofWdF10j6R9S5Ph4gu95azeKzNiBLk0h5NzzJQ65ILkXi3moZ2z+PKU+lmiofjXAvNawQ== 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)(107886003)(41300700001)(44832011)(5660300002)(6666004)(6512007)(6486002)(8676002)(8936002)(66476007)(66556008)(66946007)(316002)(83380400001)(4326008)(41533002); DIR:OUT; SFP:1101; X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR03MB6743 X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: VI1EUR05FT044.eop-eur05.prod.protection.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 44911158-3d5b-4c0d-3b07-08db8c6948a6 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: Zgl79WJgMkKEY6bgtQ2/rM0EwVVGBMzntnEWdfzkh1zGIyvonIJO99T7tbZXzweBcypVqvj/EoUtRs0Ny3kgnDEEkrM5ZRtGO8114FvD25a/mVS/xqZ70CL+0we1nyY8/iJ7PB9YP4sLTo7NcOr7EoaqQ8Klw11P9tjti+GuUdx0Iumy3iIhGNiGyefdJhODKP2/CpqXtIW11FMaWFYfIRIH4RCnn+ICC1nHmeTQk+fP4uU4IS3HQZNNOrBqDYDZWN3pK5+adn7dGvtgvdtpmDYoFnivTalE6Rq7mat6VO4bjJf5cwDnH1ECXfGzzQgapvAgW6Dn62Mu3k654Nk6t6Oz4mM0xG4x612cmfBV0KLy1CVURyAmYkxOG3pDwYEb6T4kbrKCDYDA217V0wkX5/t7E9g2WuauOVAZsUUasgX/s6B4bC/2PHg7khXS1fJV7VQ2wUT9SI+1xmPRN36ZnJ9SuON5wTEC+YAjtJbadxGMo6pYw2ExuneRIpWFvccUMBvoDdpFMf3EYUnuq25+2QWKhXxw3ywsKyNCCozSbOhXMn4fJKK2hUjIvLj+D+mDurklV67+HI2XTlbvd431YWY/BZ2VEEqPQWGjZCPXF9/2pQecDNDcJ1OjoilqzR+7DZ2DB9CgMODt829J/IR/MFNm3aWexYNTlecV0B+i6Ro+Et94QRIF9rgfNGw/q5j5zm5bjnRiSZCukPulC353hQLiKNWI8zasM5Gumv8DWLooLpKXa5QRpYvtvK87FvPcJxP4v0apf4jiruLu9nX0eg== X-Forefront-Antispam-Report: CIP:20.160.56.81; 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)(136003)(396003)(376002)(39850400004)(346002)(82310400008)(451199021)(46966006)(36840700001)(6512007)(6486002)(478600001)(54906003)(6666004)(83380400001)(47076005)(36756003)(86362001)(36860700001)(34070700002)(40480700001)(44832011)(2906002)(186003)(2616005)(107886003)(26005)(1076003)(6506007)(356005)(7596003)(82740400003)(7636003)(70586007)(4326008)(70206006)(41300700001)(8676002)(336012)(8936002)(5660300002)(316002)(41533002); DIR:OUT; SFP:1101; X-OriginatorOrg: seco.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Jul 2023 17:13:25.6127 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 62678722-cb01-4b9c-59c8-08db8c694ac9 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.81]; Helo=[inpost-eu.tmcas.trendmicro.com] X-MS-Exchange-CrossTenant-AuthSource: VI1EUR05FT044.eop-eur05.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR03MB9939 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 Implementers of SPL_LOAD_IMAGE_METHOD have to correctly determine what type of image is being loaded and then call the appropriate image load function correctly. This is tricky, because some image load functions expect the whole image to already be loaded (CONFIG_SPL_LOAD_FIT_FULL), some will load the image automatically using spl_load_info.read() (CONFIG_SPL_LOAD_FIT/CONFIG_SPL_LOAD_IMX_CONTAINER), and some just parse the header and expect the caller to do the actual loading afterwards (legacy/raw images). Load methods often only support a subset of the above methods, meaning that not all image types can be used with all load methods. Further, the code to invoke these functions is duplicated between different load functions. To address this problem, this commit introduces a "spl_load" function. It aims to handle image detection and correct invocation of each of the parse/load functions. spl_simple_read is a wrapper around spl_load_info.read with get_aligned_image* functions inlined for size purposes. Additionally, we assume that bl_len is a power of 2 so we can do bitshifts instead of divisions (which is smaller and faster). Signed-off-by: Sean Anderson Reviewed-by: Stefan Roese --- Changes in v4: - Fix format specifiers in debug prints - Reword/fix some of the doc comments for spl_load Changes in v3: - Fix using ffs instead of fls - Fix using not initializing bl_len when info->filename was NULL Changes in v2: - Use reverse-xmas-tree style for locals in spl_simple_read. This is not complete, since overhead depends on bl_mask. common/spl/spl.c | 68 ++++++++++++++++++++++++++++++++++++++++++++++++ include/spl.h | 29 ++++++++++++++++++++- 2 files changed, 96 insertions(+), 1 deletion(-) diff --git a/common/spl/spl.c b/common/spl/spl.c index f09bb977814..3ef064009e8 100644 --- a/common/spl/spl.c +++ b/common/spl/spl.c @@ -450,6 +450,74 @@ int spl_parse_image_header(struct spl_image_info *spl_image, return 0; } +static int spl_simple_read(struct spl_load_info *info, void *buf, size_t size, + size_t offset) +{ + size_t bl_len = info->filename ? ARCH_DMA_MINALIGN : info->bl_len; + size_t bl_mask = bl_len - 1; + size_t overhead = offset & bl_mask; + size_t bl_shift = fls(bl_mask); + int ret; + + debug("%s: buf=%p size=%lx offset=%lx\n", __func__, buf, (long)size, + (long)offset); + debug("%s: bl_len=%lx bl_mask=%lx bl_shift=%lx\n", __func__, (long)bl_len, + (long)bl_mask, (long)bl_shift); + + buf -= overhead; + size = (size + overhead + bl_mask) >> bl_shift; + offset = offset >> bl_shift; + + debug("info->read(info, %lx, %lx, %p)\n", (ulong)offset, (ulong)size, + buf); + ret = info->read(info, offset, size, buf); + return ret == size ? 0 : -EIO; +} + +int spl_load(struct spl_image_info *spl_image, + const struct spl_boot_device *bootdev, struct spl_load_info *info, + struct legacy_img_hdr *header, size_t size, size_t sector) +{ + int ret; + size_t offset = sector * info->bl_len; + + if (image_get_magic(header) == FDT_MAGIC) { + if (IS_ENABLED(CONFIG_SPL_LOAD_FIT_FULL)) { + void *buf; + + /* + * In order to support verifying images in the FIT, we + * need to load the whole FIT into memory. Try and + * guess how much we need to load by using the total + * size. This will fail for FITs with external data, + * but there's not much we can do about that. + */ + if (!size) + size = roundup(fdt_totalsize(header), 4); + buf = spl_get_load_buffer(0, size); + ret = spl_simple_read(info, buf, size, offset); + if (ret) + return ret; + + return spl_parse_image_header(spl_image, bootdev, buf); + } + + if (IS_ENABLED(CONFIG_SPL_LOAD_FIT)) + return spl_load_simple_fit(spl_image, info, sector, + header); + } + + if (IS_ENABLED(CONFIG_SPL_LOAD_IMX_CONTAINER)) + return spl_load_imx_container(spl_image, info, sector); + + ret = spl_parse_image_header(spl_image, bootdev, header); + if (ret) + return ret; + + return spl_simple_read(info, (void *)spl_image->load_addr, + spl_image->size, offset + spl_image->offset); +} + __weak void __noreturn jump_to_image_no_args(struct spl_image_info *spl_image) { typedef void __noreturn (*image_entry_noargs_t)(void); diff --git a/include/spl.h b/include/spl.h index 92bcaa90a4a..06b34e70a44 100644 --- a/include/spl.h +++ b/include/spl.h @@ -268,7 +268,7 @@ struct spl_image_info { * * @dev: Pointer to the device, e.g. struct mmc * * @priv: Private data for the device - * @bl_len: Block length for reading in bytes + * @bl_len: Block length for reading in bytes; must be a power of 2 * @filename: Name of the fit image file. * @read: Function to call to read from the device */ @@ -677,6 +677,33 @@ int spl_blk_load_image(struct spl_image_info *spl_image, struct spl_boot_device *bootdev, enum uclass_id uclass_id, int devnum, int partnum); +/** + * spl_load() - Parse a header and load the image + * @spl_image: Image data which will be filled in by this function + * @bootdev: The device to load from + * @info: Describes how to load additional information from @bootdev. At the + * minimum, read() and bl_len must be populated. + * @header: The image header. This should already have been loaded. It may be + * clobbered by the load process (if e.g. the load address overlaps). + * @size: The size of the image, in bytes, if it is known in advance. Some boot + * devices (such as filesystems) know how big an image is before parsing + * the header. If 0, then the size will be determined from the header. + * @sectors: The offset from the start of @bootdev, in units of @info->bl_len. + * This should have the offset @header was loaded from. It will be + * added to any offsets passed to @info->read(). + * + * This function determines the image type (FIT, legacy, i.MX, raw, etc), calls + * the appropriate parsing function, determines the load address, and the loads + * the image from storage. It is designed to replace ad-hoc image loading which + * may not support all image types (especially when config options are + * involved). + * + * Return: 0 on success, or a negative error on failure + */ +int spl_load(struct spl_image_info *spl_image, + const struct spl_boot_device *bootdev, struct spl_load_info *info, + struct legacy_img_hdr *header, size_t size, size_t sector); + /** * spl_early_init() - Set up device tree and driver model in SPL if enabled * From patchwork Mon Jul 24 17:12:49 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sean Anderson X-Patchwork-Id: 1811948 X-Patchwork-Delegate: trini@ti.com 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=OTbO4yps; dkim=pass (2048-bit key) header.d=seco.com header.i=@seco.com header.a=rsa-sha256 header.s=selector1 header.b=OTbO4yps; 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 4R8mwD5LDfz1yZw for ; Tue, 25 Jul 2023 03:13:48 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 59CAF8474B; Mon, 24 Jul 2023 19:13:41 +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="OTbO4yps"; dkim=pass (2048-bit key) header.d=seco.com header.i=@seco.com header.b="OTbO4yps"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 6943286807; Mon, 24 Jul 2023 19:13:33 +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=ham autolearn_force=no version=3.4.2 Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05on20624.outbound.protection.outlook.com [IPv6:2a01:111:f400:7e1b::624]) (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 2B0498676A for ; Mon, 24 Jul 2023 19:13:31 +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=OrQdtmMCXe9lidZiVQyqpBKM95vN7pxmMZcOqHDk75E=; b=OTbO4ypsi9VPzgmSht1UYCxz49t2BKBz+Bgn8zmsR5ZjzE1B7IpQGVO2OeYroeQPUfWIW5SECgHIZU26W+he+toKS/K0TRujcRu3QWTfwNKCASpOSmXXne4N3EwR2paRpVv8JuJ0iu9/DmHlk93kwL1iVmSKNtjgK6HrPR7jriPXPpulUZXtZboBzoHnERulDIVrj0U2vXgyUZZe3kFcYwgJT1w6Y7IiiC8VST9v+ol+K7+5LxSFpqR9xSr/eOv1QhAUEOO+VOdMxB0fUOsBGsOZWygZbKYe2nVNojUSgyaroxsJ1YcbuRLdHhDcmZ1scsqSWgww1fPJIne/EgH/hA== Received: from DU7PR01CA0029.eurprd01.prod.exchangelabs.com (2603:10a6:10:50e::7) by AS2PR03MB9420.eurprd03.prod.outlook.com (2603:10a6:20b:59c::14) 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:29 +0000 Received: from DB8EUR05FT036.eop-eur05.prod.protection.outlook.com (2603:10a6:10:50e:cafe::43) by DU7PR01CA0029.outlook.office365.com (2603:10a6:10:50e::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6609.31 via Frontend Transport; Mon, 24 Jul 2023 17:13:29 +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 DB8EUR05FT036.mail.protection.outlook.com (10.233.239.99) 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:29 +0000 Received: from outmta (unknown [192.168.82.136]) by inpost-eu.tmcas.trendmicro.com (Trend Micro CAS) with ESMTP id 5B26320082C8F; Mon, 24 Jul 2023 17:13:29 +0000 (UTC) Received: from EUR04-HE1-obe.outbound.protection.outlook.com (unknown [104.47.13.50]) by repre.tmcas.trendmicro.com (Trend Micro CAS) with ESMTPS id F29E62008006E; Mon, 24 Jul 2023 17:13:24 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ehZvwy70BcOY5e/6C39USL4CrjW5SQVCjt7KxcOvNMcnS8epphnRqRMg508T0T0WFtZQIz02ekaCRjsiymTeQjX0motLhKcIx54kun/rR/FFw7ZX+PqJLpcJSUI/Vy3uFd+318227x9vgwuMjRKvG/jP3EYfcvrCJ+2V2VKTMFQWDoHuSuejieMDZ0x4NOSz3uBhNwoJJxt2U7r/Dyl4fWjI9gdjFu6EwxHnZo9FW6mqhscZxijuPv5jpHnhFXHUV7lEtPM6cC3usd6zkdsraFHyz7je9RadvSH64hFwa08UmWbMSl42KspRgsWAbLS2gRPcKfEmP5mY4kSJNfFVaQ== 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=OrQdtmMCXe9lidZiVQyqpBKM95vN7pxmMZcOqHDk75E=; b=clLI35ntG9QOnP+LFS620BqSF+3WRbwn2K/DhIzdrXmTZVR5KE1kbPKZAQtkGkci4EE2guBo4fg6LhvffPOYfz6FLBGh+wdC5MKGHAUgIu6LZraXyfREdhGueAm998b8N1gs4+YxMELsKOcXf2ixmpWTEOqj/wyIiqmbc37qbJSZeLX+XXzsBkFF3FcvhFXdoIJ4dyPgMK2mxIj7HiNKWfHoDSKlR89D324RPVUiUG8pWvonLwXz9N++86i/Hu9Sal2ISo2gAkoxyWSVP+xn+OA3AAxZVMhTB7QxxeaVSINqEN+NX+FjczHnhvzXQyiOXg6o18fFSEAfM6eIEiOCPQ== 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=OrQdtmMCXe9lidZiVQyqpBKM95vN7pxmMZcOqHDk75E=; b=OTbO4ypsi9VPzgmSht1UYCxz49t2BKBz+Bgn8zmsR5ZjzE1B7IpQGVO2OeYroeQPUfWIW5SECgHIZU26W+he+toKS/K0TRujcRu3QWTfwNKCASpOSmXXne4N3EwR2paRpVv8JuJ0iu9/DmHlk93kwL1iVmSKNtjgK6HrPR7jriPXPpulUZXtZboBzoHnERulDIVrj0U2vXgyUZZe3kFcYwgJT1w6Y7IiiC8VST9v+ol+K7+5LxSFpqR9xSr/eOv1QhAUEOO+VOdMxB0fUOsBGsOZWygZbKYe2nVNojUSgyaroxsJ1YcbuRLdHhDcmZ1scsqSWgww1fPJIne/EgH/hA== 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:23 +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:23 +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 Subject: [PATCH v4 2/9] spl: Convert ext to use spl_load Date: Mon, 24 Jul 2023 13:12:49 -0400 Message-Id: <20230724171256.914133-3-sean.anderson@seco.com> X-Mailer: git-send-email 2.35.1.1320.gc452695387.dirty In-Reply-To: <20230724171256.914133-1-sean.anderson@seco.com> References: <20230724171256.914133-1-sean.anderson@seco.com> 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_|DB8EUR05FT036:EE_|AS2PR03MB9420:EE_ X-MS-Office365-Filtering-Correlation-Id: 0707f802-3358-4466-04ba-08db8c694d25 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: a2Ll/MLwZDOTfUDbb41ngoIdZVio4i22quf3oFXmoFBVSA7XT3fcvT/XbZpnsa/BgWMPM1xhb3YhrjPazSzNuwaCaKZT5hh4zfKdc25mlb6N0nqBI8f1N49G64ZzEVDRjPpVBxPBH2o/7YP3L9Fde/vnINNxgMMcusivY67hIFutuFlrUO/5E2Wlc90Ks8DhGsnXCTI1meVWGm+lqSjkZGWcc2lF6Wx+BG7wn4spaDcIix7kfFvQC3pn0r9UViej3Ym+mFhOCM74Kc4uBAT2k0D62gkrW4pAKiexCVrc7IxxO/fOorA06VKhy9QooIg3xU6QPOYDH7kYPiZFXSOZ/snnO834vaX8LtTggQI9yNBSpvDN5BGBarwD5ZZJORcPVaKSGxU03Kq6vwYiccMk5DfWGB9kg8DErX6n1L5eD7br6GQw9cbBrjpdryBnvRfjD1yGEYsTFXxawABl/fDQXgbAdlvdGnAdJuKRVWfzKKw66eqvoBfukrfdRkKfaQAi6XqV0ViooHeXKx7D7u5dD8EcI5m9PpKCkhOvJwOKMl0vIzlzCYc4IzRBqFZBsYnuzYZRk7qhNJj2kWctBi5U45miPgFzHETwmF+xPlj1/ygJthaPqKNLEP9PZqApQmEd 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)(107886003)(41300700001)(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: DB8EUR05FT036.eop-eur05.prod.protection.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 65edf325-47c3-4019-3927-08db8c694973 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: GYDNZRqlqVblcCf6uQe8jf+bAC9xGlV5NqqQBs3QURHieETdQRvBZZOBb4UCMImEOD5JMa380EAf8c1Wz/Q8qWcEUeZgu0xBCzTshts3bUJ971ubY6QLPujHQgWRWVMYeRIp1AuhO9QWoWOEx/bh+qHZsWQININnPwjiipzi7pEz4KB8icuWOCjGRtUaB2+2GYaZGRNSQIyFOgT1YQJz9OCHbKQepTLKRTnhx3enrGWwpedsxBp0czlcJmn8lyKWHeKvb+z6pAcpLS9DHh3OgPqjaSBtZ6gw171CrNo6Af8v+RKMs3usOGBt8AaQnD93JusdAfiVBlIiuAOi8ZBnXRz9ED9tJzt/zL+T5pX+CbNjEpszcy9MU58l8+Z8uIREs73bHx7DNRK9xZpfp7Deq7hlc+5d36QSiRHw0pQgkkEoKdb8V3oZCi5DF3YMhSxUbwOm13gV6RyWN5XK0CerJdzIthf/IhKaBDVnzbw0Vm5kDSZ6rLeaIlFR/WW0/sFFXwt8XeNlSHszrvyH4PRzQ+cmPjSiSpO19ma05/oJqea47qdhemF7KnDTsW1kLJTXdUpWJ6m/fVadOfGitM8VXoKbeqk/IGvqArsrD4ZhFp2fgJfA5rgJY0/kqn0V0EOnfaIBGyhShiT2heTMltHnSFUiL/M6vwWuriSKSaEq1KOGEaCmlW0wx5ivrxa3zYga+bx8grNIfTklW1OWLDOlwyun1L0r9NPd8pgK0kUYOoIW2NTI/f4q8cVV5XmuHWWSAp+Eutyncrz3OSv72aEZAA== 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)(346002)(136003)(39850400004)(376002)(396003)(451199021)(82310400008)(40470700004)(36840700001)(46966006)(6506007)(40460700003)(1076003)(26005)(186003)(336012)(36860700001)(36756003)(5660300002)(8936002)(8676002)(44832011)(7596003)(356005)(7636003)(2906002)(107886003)(82740400003)(40480700001)(86362001)(34070700002)(6666004)(6486002)(6512007)(70586007)(70206006)(83380400001)(54906003)(478600001)(41300700001)(2616005)(4326008)(316002)(47076005); DIR:OUT; SFP:1101; X-OriginatorOrg: seco.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Jul 2023 17:13:29.6002 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 0707f802-3358-4466-04ba-08db8c694d25 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: DB8EUR05FT036.eop-eur05.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS2PR03MB9420 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 converts the ext load method to use spl_load. As a consequence, it also adds support for FIT and IMX images. Signed-off-by: Sean Anderson Reviewed-by: Stefan Roese --- (no changes since v1) common/spl/spl_ext.c | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/common/spl/spl_ext.c b/common/spl/spl_ext.c index 2bf34344391..2c3079c3aff 100644 --- a/common/spl/spl_ext.c +++ b/common/spl/spl_ext.c @@ -9,6 +9,18 @@ #include #include +static ulong spl_fit_read(struct spl_load_info *load, ulong file_offset, + ulong size, void *buf) +{ + int ret; + loff_t actlen; + + ret = ext4fs_read(buf, file_offset, size, &actlen); + if (ret) + return ret; + return actlen; +} + int spl_load_image_ext(struct spl_image_info *spl_image, struct spl_boot_device *bootdev, struct blk_desc *block_dev, int partition, @@ -18,6 +30,10 @@ int spl_load_image_ext(struct spl_image_info *spl_image, struct legacy_img_hdr *header; loff_t filelen, actlen; struct disk_partition part_info = {}; + struct spl_load_info load = { + .read = spl_fit_read, + .bl_len = 1, + }; header = spl_get_load_buffer(-sizeof(*header), sizeof(*header)); @@ -47,13 +63,7 @@ int spl_load_image_ext(struct spl_image_info *spl_image, goto end; } - err = spl_parse_image_header(spl_image, bootdev, header); - if (err < 0) { - puts("spl: ext: failed to parse image header\n"); - goto end; - } - - err = ext4fs_read((char *)spl_image->load_addr, 0, filelen, &actlen); + err = spl_load(spl_image, bootdev, &load, header, filelen, 0); end: #ifdef CONFIG_SPL_LIBCOMMON_SUPPORT From patchwork Mon Jul 24 17:12:50 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sean Anderson X-Patchwork-Id: 1811949 X-Patchwork-Delegate: trini@ti.com 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=85.214.62.61; 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=EiMAAJnP; dkim=pass (2048-bit key) header.d=seco.com header.i=@seco.com header.a=rsa-sha256 header.s=selector1 header.b=EiMAAJnP; dkim-atps=neutral Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-384) server-digest SHA384) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4R8mwS4Z2hz1yZw for ; Tue, 25 Jul 2023 03:14:00 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 6988B86824; Mon, 24 Jul 2023 19:13:42 +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="EiMAAJnP"; dkim=pass (2048-bit key) header.d=seco.com header.i=@seco.com header.b="EiMAAJnP"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id B45188677D; Mon, 24 Jul 2023 19:13:38 +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=ham autolearn_force=no version=3.4.2 Received: from EUR02-AM0-obe.outbound.protection.outlook.com (mail-am0eur02on20602.outbound.protection.outlook.com [IPv6:2a01:111:f400:fe13::602]) (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 ADD9D86808 for ; Mon, 24 Jul 2023 19:13:33 +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=5oQpIt4dbFqhKyT81Hud6I40LkZY+P1cCxy/3Z+UBow=; b=EiMAAJnPyKT1aNAp01TQo7HKCCO1YjMGgGMzMG3zg9GtcPg+MPHf9mv+TyYT3FAJMWHQYBgFPvt9zkSYrmhO1tkY8eXWdK4yqYOZB2bX84FUi78LzwfBqS3AGkInuPVUQvw7LHA6t/y9bJ6bFBOWAGzpZvWv0IFxz3G4RXSRIKSLYH/k47UizjLvXQa1b+eYMwc+2xkjFXqIM/Z/MO/Xkyo4QPcBrnr69rdFg5tSZk5Ml/s1Kn7sBgaHRUahmSwQljz2+MzQE8IBT8y4NHLz56zgHS6GquofRJGlBMuJ+3X1uomZFhZYHV12/3OputnNG4jEpxOUqW6FNbW5iuxzCQ== Received: from FR3P281CA0044.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:4a::7) by VI1PR03MB6189.eurprd03.prod.outlook.com (2603:10a6:800:142::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6609.31; Mon, 24 Jul 2023 17:13:30 +0000 Received: from VI1EUR05FT039.eop-eur05.prod.protection.outlook.com (2603:10a6:d10:4a:cafe::ea) by FR3P281CA0044.outlook.office365.com (2603:10a6:d10:4a::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6631.24 via Frontend Transport; Mon, 24 Jul 2023 17:13:30 +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 VI1EUR05FT039.mail.protection.outlook.com (10.233.243.0) 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:29 +0000 Received: from outmta (unknown [192.168.82.137]) by inpost-eu.tmcas.trendmicro.com (Trend Micro CAS) with ESMTP id 9140F200BB208; Mon, 24 Jul 2023 17:13:29 +0000 (UTC) Received: from EUR04-HE1-obe.outbound.protection.outlook.com (unknown [104.47.13.52]) by repre.tmcas.trendmicro.com (Trend Micro CAS) with ESMTPS id D3B982008006E; Mon, 24 Jul 2023 17:13:25 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Xx/Pm25hgmuzXbdMA32lDNUqGWbOZtvZxcdlklEF3IV4dJWgGyHtSC7lNY4+6pK2vd3DyNm1XQRz+sTRXsNJtZk8uS7o4LKWFmpu+DNgut/VbulfwkAv/3S4j4RzNy03XlCjLE1Q3S8s70tN+TixVPdxev6qpnAd+lAdajDYFT91h4OxG/mYTojK9KFGFWRnAUXwbvzgohqPMiw5kEqHq39D2TuTdM94UlufRW7MlKOtnlizco3Qlbxl1DNNetTiiZA0qyEo3H48UdJGKezEoBNfcbisCXUBiFoD/DzlaZZMHBdIq79NWmlG1BXwd5HgOfaYdk7GSh6CibbwIHgjRw== 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=5oQpIt4dbFqhKyT81Hud6I40LkZY+P1cCxy/3Z+UBow=; b=EFHGS0qiq0JC0vSrzeaQ8DgecsRCj27tTcbGnBUUEdrGmFe/tp1z6XtNzD1ZudXYXYeVlXrrnp3r/65oYz4C2tev4PoQ13h1/SqGYDs/utqSwdHBxVGvX8OVRUyzi5b12Nraf1dBxPTxSONOyTn60M64BbYuUVeTTr/TKn00EcLRyNA27pV3ZCKTPOsxAst2ttDTMHjvZCfcoMMLLy+QhxMlrKYM5+o7tB0cNK1zahXWrQodlS2zSBsRFbuleu3uwg1JP1WxRZNuO6tYdhIAD9p4pRJAVTDigzSnESSPDkoj5yX++mm15GMIa4lEhhGj1+pPDd4XcCz2Us9gEoCewA== 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=5oQpIt4dbFqhKyT81Hud6I40LkZY+P1cCxy/3Z+UBow=; b=EiMAAJnPyKT1aNAp01TQo7HKCCO1YjMGgGMzMG3zg9GtcPg+MPHf9mv+TyYT3FAJMWHQYBgFPvt9zkSYrmhO1tkY8eXWdK4yqYOZB2bX84FUi78LzwfBqS3AGkInuPVUQvw7LHA6t/y9bJ6bFBOWAGzpZvWv0IFxz3G4RXSRIKSLYH/k47UizjLvXQa1b+eYMwc+2xkjFXqIM/Z/MO/Xkyo4QPcBrnr69rdFg5tSZk5Ml/s1Kn7sBgaHRUahmSwQljz2+MzQE8IBT8y4NHLz56zgHS6GquofRJGlBMuJ+3X1uomZFhZYHV12/3OputnNG4jEpxOUqW6FNbW5iuxzCQ== 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:24 +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:24 +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 Subject: [PATCH v4 3/9] spl: Convert fat to spl_load Date: Mon, 24 Jul 2023 13:12:50 -0400 Message-Id: <20230724171256.914133-4-sean.anderson@seco.com> X-Mailer: git-send-email 2.35.1.1320.gc452695387.dirty In-Reply-To: <20230724171256.914133-1-sean.anderson@seco.com> References: <20230724171256.914133-1-sean.anderson@seco.com> 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_|VI1EUR05FT039:EE_|VI1PR03MB6189:EE_ X-MS-Office365-Filtering-Correlation-Id: a0cce7fe-154d-4e56-1544-08db8c694d59 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: 9Mpi6Bh+0edG2N6OO0M/ww/fE3+hbIUscpmpWiZLNABzb7jfp1M/xNYwnQMFKAun1Q7f1ETW5gh1amOjSzgHmJ56Tc/qw5Zkp4D0JvOJSUPixMWvlWj8TvgAcw9ss8ubL+JWXmd0MEAyqdujui+jlvaOai5u4f6oJAmSfSSXXZzYtlzWp0qnXVgkdeKRGP7QGDG4arz9rGF2a7dJzCJ0tHX+shGucNXwEPhKxlgkVv6YAx7kML2V40HSE+CZ8JNinuKzKetllTHThqlrmWlbV3KNf9OLX1/r1DlSru5PMC696GFzizE3fVp1lthz1cqniG9DaqBkTyl2IeozQESTmjkGt33mxsokw/XBqVaj71QeVxtZSpfaozxHHoN0hRt7vNgTJHe/r1qlPbgnIGIVEcpXaf2Ju4Smn2kfEipK7P0991HV5NpvzV6Yask5wvZVefjMxCOq7Hs9P+TZ47Dnr+16MBQJE/2ZYgwRNFiWmVvSLMjx90jUucGl3nqrhIFpSXUqrghx+kjv7OBXbGLZGl5+kWc1FkQZ+YkSc27ZP1OF50zWv0yjv11N4gf925oZO753UJ4LW5WjD7iS3LUYQsPXS0RKXotdbcvc7gxoRIFCMk+POC3ZMH56tWoo9FbW 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)(107886003)(41300700001)(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: VI1EUR05FT039.eop-eur05.prod.protection.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 152143f6-abd7-4fb1-4e15-08db8c694a34 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: tsscx8U1VzxG+j85KQfExpCa+gEjhtTuWzixCD4ufPErzztOMCrnTkCYWiFeHdLdWXKVbIX+OcwWla+nGXAudBOGNQ9Up+Zx45CI6BaUYG7PCZqo4BoZQJxlPFS1MokYx+DToZx4BpJ4TeiG8z5uccZSNLky0ZnhPIkGFkhHN6of5wb3OzY3qefPS/lPvg46DAOMbgPNEStHT3uLG3OK5ZncWknU3+/K5BSEwy1qww3X9HWoWEb9xqECckL7QpO1Q9s1aP5KptZ58SkiBEXr/Uahu4uiqFPwmBEPddlzvLt+PKhra4e7ktccuQUvYYkUo2RFLgY+FBZsJZ+tlb6wbVRtITupzqprR4JqwU7s8Hl9rHTt9d5x+Y3S4ZTXtNdRFsZK8s1cNo2qfS0PonQIqgpbqjSiFXf1W6UWQmNpW8DEnKeX3HXUPWKpbSQDvMqHYA4mSpb6KZoJ3Of9z27HY+KsupbiDluIg8DITy7axD8+alvkQQph3ec/ohk8CLKGl0nuoQVW0c1PGir+04huy+hILk9B5vNZn9f0LVbp5Cy97QpGp36DP/SJz8bt1YVcV1zVEDC3hBd/gCRBcH4IQSHJzAD3F4dT/h3YFSInn8eSunWSHkk0cHSwrj7cehYfwYHdxwoEtxHbmbvGXJ1EUIyF89US6xYOKj+EJKd/tjOmGNXCh52yb9X/avrCQ09lP2CMbMl0HICa/YtyVNf1kDEVyLRDIlOMq9KAIIHjnF6GbO+6XZaTwqD30HVRxSyT 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)(136003)(376002)(396003)(39850400004)(346002)(82310400008)(451199021)(36840700001)(46966006)(6486002)(6512007)(54906003)(478600001)(6666004)(47076005)(83380400001)(36860700001)(86362001)(36756003)(40480700001)(34070700002)(44832011)(2906002)(2616005)(186003)(6506007)(107886003)(26005)(1076003)(316002)(356005)(7596003)(82740400003)(7636003)(70206006)(70586007)(4326008)(41300700001)(8936002)(336012)(5660300002)(8676002); DIR:OUT; SFP:1101; X-OriginatorOrg: seco.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Jul 2023 17:13:29.9414 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: a0cce7fe-154d-4e56-1544-08db8c694d59 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: VI1EUR05FT039.eop-eur05.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR03MB6189 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 converts the fat loader to use spl_load. Signed-off-by: Sean Anderson Reviewed-by: Stefan Roese --- (no changes since v3) Changes in v3: - Fix failing on success common/spl/spl_fat.c | 40 ++++++++-------------------------------- 1 file changed, 8 insertions(+), 32 deletions(-) diff --git a/common/spl/spl_fat.c b/common/spl/spl_fat.c index f8a5b80a3bd..d04a5575409 100644 --- a/common/spl/spl_fat.c +++ b/common/spl/spl_fat.c @@ -61,6 +61,11 @@ int spl_load_image_fat(struct spl_image_info *spl_image, { int err; struct legacy_img_hdr *header; + struct spl_load_info load = { + .read = spl_fit_read, + .bl_len = 1, + .filename = filename, + }; err = spl_register_fat_device(block_dev, partition); if (err) @@ -72,45 +77,16 @@ int spl_load_image_fat(struct spl_image_info *spl_image, if (err <= 0) goto end; - if (IS_ENABLED(CONFIG_SPL_LOAD_FIT_FULL) && - image_get_magic(header) == FDT_MAGIC) { - err = file_fat_read(filename, (void *)CONFIG_SYS_LOAD_ADDR, 0); - if (err <= 0) - goto end; - err = spl_parse_image_header(spl_image, bootdev, - (struct legacy_img_hdr *)CONFIG_SYS_LOAD_ADDR); - if (err == -EAGAIN) - return err; - if (err == 0) - err = 1; - } else if (IS_ENABLED(CONFIG_SPL_LOAD_FIT) && - image_get_magic(header) == FDT_MAGIC) { - struct spl_load_info load; - - debug("Found FIT\n"); - load.read = spl_fit_read; - load.bl_len = 1; - load.filename = (void *)filename; - load.priv = NULL; - - return spl_load_simple_fit(spl_image, &load, 0, header); - } else { - err = spl_parse_image_header(spl_image, bootdev, header); - if (err) - goto end; - - err = file_fat_read(filename, - (u8 *)(uintptr_t)spl_image->load_addr, 0); - } + err = spl_load(spl_image, bootdev, &load, header, err, 0); end: #ifdef CONFIG_SPL_LIBCOMMON_SUPPORT - if (err <= 0) + if (err < 0) printf("%s: error reading image %s, err - %d\n", __func__, filename, err); #endif - return (err <= 0); + return err; } #if CONFIG_IS_ENABLED(OS_BOOT) From patchwork Mon Jul 24 17:12:51 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sean Anderson X-Patchwork-Id: 1811950 X-Patchwork-Delegate: trini@ti.com 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=85.214.62.61; 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=PnEgPr+P; dkim=pass (2048-bit key) header.d=seco.com header.i=@seco.com header.a=rsa-sha256 header.s=selector1 header.b=PnEgPr+P; dkim-atps=neutral Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (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 4R8mwf5G2fz1yZw for ; Tue, 25 Jul 2023 03:14:10 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 706A086821; Mon, 24 Jul 2023 19:13:43 +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="PnEgPr+P"; dkim=pass (2048-bit key) header.d=seco.com header.i=@seco.com header.b="PnEgPr+P"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id E81E0861E1; Mon, 24 Jul 2023 19:13:38 +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 EUR04-HE1-obe.outbound.protection.outlook.com (mail-he1eur04on0605.outbound.protection.outlook.com [IPv6:2a01:111:f400:fe0d::605]) (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 C6F9486776 for ; Mon, 24 Jul 2023 19:13:32 +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=UVxr3+8mtq98AwxsmdnsZbvhVbHqO2xDs3VBLmPW7Jg=; b=PnEgPr+Ps21NG0UyEcn5Tw8eCKy+RhhQ7XqQU8zS3Rda1mt2/KLUCKcgaz2MkDXTt0KjnMFIQ3p/qg3uyPjWa+5s/qKJaMZOSQqYYHPhNOXADELUO2NXMINgsaztDXsHxvLeZ5XTbfAWkylWmPuO+l+lVI1VKq5/2svvtz/YbXH8dEBJ5Vhfmx35ZBk7O5OcW7//klNBZ9sGdqnODPAtfs7Qdg4OJ93gJp6XNsNdnAanGsCD6t2jiF8aLOR46LNQvG9lW/ydCUMldqE7opiadPQ1nSi+hUW4CJPNJzt08NLM2qrsV6SFlyyhrHCuX6nIRWxszVEH+5Qdogs02qo8DQ== Received: from DB9PR06CA0016.eurprd06.prod.outlook.com (2603:10a6:10:1db::21) by AS8PR03MB6808.eurprd03.prod.outlook.com (2603:10a6:20b:29c::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6609.31; Mon, 24 Jul 2023 17:13:30 +0000 Received: from DB8EUR05FT050.eop-eur05.prod.protection.outlook.com (2603:10a6:10:1db:cafe::36) by DB9PR06CA0016.outlook.office365.com (2603:10a6:10:1db::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6609.28 via Frontend Transport; Mon, 24 Jul 2023 17:13:30 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 20.160.56.80) 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.80 as permitted sender) receiver=protection.outlook.com; client-ip=20.160.56.80; helo=inpost-eu.tmcas.trendmicro.com; pr=C Received: from inpost-eu.tmcas.trendmicro.com (20.160.56.80) by DB8EUR05FT050.mail.protection.outlook.com (10.233.238.196) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6631.24 via Frontend Transport; Mon, 24 Jul 2023 17:13:29 +0000 Received: from outmta (unknown [192.168.82.137]) by inpost-eu.tmcas.trendmicro.com (Trend Micro CAS) with ESMTP id 91D5B200BB20B; Mon, 24 Jul 2023 17:13:29 +0000 (UTC) Received: from EUR04-HE1-obe.outbound.protection.outlook.com (unknown [104.47.13.59]) by repre.tmcas.trendmicro.com (Trend Micro CAS) with ESMTPS id A2EF72008006E; Mon, 24 Jul 2023 17:13:27 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ZC4otOxuxwpvFIrH4ixwI7V9kZwgY9lGq88sX9jtThtgAbBobjdwZa9+otlCNRhz9bAVIjrF85tZIUcomyNKYWfByjV9zTrgkdAODMgQPHFfOn3adgIcKyp7RE/Uh1W5p3DD+nnisQ25BLFVDrHSiDNOGl9gJlaROLNE1yD7atMh2dWilwQcX3Q5smR4YOq+3KYYr4GBS084il/OLKcg3oqrh9Q0NqosblRZ/CqsZyNpPChwdnc/mNdDOxTeOK5y7sLLNZ8ipYfDl4VGQGBpZVDCmUB7nCUc8MC7av0k+YfsGUeRmnS2vd2h0tVmY73Byp+bMvhmN5wfiCl1otl8iA== 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=UVxr3+8mtq98AwxsmdnsZbvhVbHqO2xDs3VBLmPW7Jg=; b=g2Jd+6HKMbLsUD9diLZdggdetrmQHiOHhTlL9tm53ZFKOnyP8bqKzDbbgDK/FaQZZbvzb4+K8vr1NssvZOYzEARszMefJO1qe1/j3RQqPZ3gxiRoWAlFdUya2yZqogw/smGl4LLvKQPAfBLg8O79LWxazCM+LIEsbQ9Wng1Jrh4G+x4CEBQhar4cvXCzNUXpfQ01cTHlMxkSwKRhHh14o9BUfQjZBqqeJu5RDkyOcuETaaHj3oTHSds2S7FFSSdLXUd2lDHTCjLzgOZtUJW/tE/k2vNBDQiRR4bdl/ycbvvsKmkP6dRbjm8p4Q9KJUQHeeLdxv4tlQUuIIG0ieoEkQ== 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=UVxr3+8mtq98AwxsmdnsZbvhVbHqO2xDs3VBLmPW7Jg=; b=PnEgPr+Ps21NG0UyEcn5Tw8eCKy+RhhQ7XqQU8zS3Rda1mt2/KLUCKcgaz2MkDXTt0KjnMFIQ3p/qg3uyPjWa+5s/qKJaMZOSQqYYHPhNOXADELUO2NXMINgsaztDXsHxvLeZ5XTbfAWkylWmPuO+l+lVI1VKq5/2svvtz/YbXH8dEBJ5Vhfmx35ZBk7O5OcW7//klNBZ9sGdqnODPAtfs7Qdg4OJ93gJp6XNsNdnAanGsCD6t2jiF8aLOR46LNQvG9lW/ydCUMldqE7opiadPQ1nSi+hUW4CJPNJzt08NLM2qrsV6SFlyyhrHCuX6nIRWxszVEH+5Qdogs02qo8DQ== 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:26 +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:26 +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 Subject: [PATCH v4 4/9] spl: Convert mmc to spl_load Date: Mon, 24 Jul 2023 13:12:51 -0400 Message-Id: <20230724171256.914133-5-sean.anderson@seco.com> X-Mailer: git-send-email 2.35.1.1320.gc452695387.dirty In-Reply-To: <20230724171256.914133-1-sean.anderson@seco.com> References: <20230724171256.914133-1-sean.anderson@seco.com> 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_|DB8EUR05FT050:EE_|AS8PR03MB6808:EE_ X-MS-Office365-Filtering-Correlation-Id: 6c35666f-5986-46a1-3135-08db8c694d48 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: 41c9wba4ZWvPI/vscmxeNlIPqQ1MFAwSrG6Y1WocqYlZXaJpYpsj4o4pqpQbw6QJDH0YkAT3IVZPHLNMx0dOwab37B8iK4ChHInnuO/V8dj6GuuEUFO2PgFnBLdVl0ZRziC4BMDzEx+1O1lWN5IAY3dLvUY5/nE0B7rzeyZH4/TAX4RSwiCTTU6MiOYuFt+56qTI4YXnRMW1D2TS6JYutc3HpLqDBgCq0eKkqTgzpKqGoWyyqpYCHZgwKwex+9nxrirU2G05Iy7KrOXPMDXerTsYvVBLSjTlirNw4QaGATEM2XMeJWAdfzYbgjsqj6EmU77RfjlG45MPPN3jIyyE+ZpUw59ZJLzrVsalN/OlFKe9dLn5TnWanKyzBP1EiftQRJ66pSXOF8zxlqP5cLSwfsHghm/MYJhb7MTjJmxjEq2Gv32/3ZbKZTUrH0S5HiYtoT3Zp6E4hdffdkMqUjDK3BvrJthi+nW4wNA35584mxFGmQ36hFhT3lzRU6DpfI8fm/BwdlaJvddOTVobU/WckUCjgj2aklrk5lPEUwlwCXZUBC9ZiqjrSvzofo10rGz2baQzDr5h6cg76cOC71qZXJ902ZJse/3kLRzKhAe0tKOpEPzctnIbzWmKmIbQjYfX 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)(107886003)(41300700001)(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: DB8EUR05FT050.eop-eur05.prod.protection.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 43ecd907-5442-4262-6297-08db8c694af5 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: YqkTCahkilIIWjb3YFIpLeaIVSOiS/ZkI1HfsXkU3YeGelWDkBiVWh6wt0HCsdEmPnSpYTq/eetbSwboS6MREn47C0bHzdvpz8E8KA2Qzk/gEAclS2NggZTHtoR3uVf6C3PGcwJhluDt13FTbm+om1kp1XDQfzS8MFsi/s89g+SxoT6YU5W/MEgEX0/FR/DnreHWF9jCPN0uthAIaUDhnLImy7ELQ75tDKyYMJ19WrtgIUAh+FrfWTHTnqzWy1s+05KZ+OWOfzow7FvHE7eZ2LAuSBhaWxHJ5xpMcBoA9K7F9UbNoosTpExd2NiL0OfUwAi6rNRxjoFrFJPZCWGfMwQwA/ZfnbFxdXIjRSt105iZ27o8Vof2m8YXuxIyXIc9fmRFjhTV0cqDX29PDzvE74TjBl4RCUufxFS86meqwlWoaL9pTL122fm7eRzyOo4E9tHuONU/bnLBxtFujTAPqisBsO4YFIWLfpUebJ5dY4C6pAJ1DBz1p0pdNseyX/qO10clr/HmfJ4iBPUrtTGRI5LlBybhC65ozb1nuHQWoSVfHWrVjRlJOCBkDtHpKJ8iFvuFBcFlPMGMaYtnvJJlTIofaImSRzDUa0430K7kyA579j7XpmjUB6DQdrBmDkuWiz8rlgGumyWQsutn4kZXT6rxuFBXr4UsMXTkorXh9yEyiTWIAA+JkJhBxYOpeu4ftHOJ1kETiQEWZcFBfqoJ7Bvgh6sWFMjbC/xGVOBzv3oq7YV5pRkf5zSSu6psyzt7Y0HEzZaeyyD8uuwR632UEw== X-Forefront-Antispam-Report: CIP:20.160.56.80; 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)(136003)(396003)(346002)(376002)(82310400008)(451199021)(46966006)(36840700001)(40470700004)(86362001)(82740400003)(34070700002)(316002)(4326008)(478600001)(54906003)(41300700001)(70586007)(70206006)(5660300002)(44832011)(8676002)(8936002)(6486002)(6512007)(6666004)(2906002)(26005)(1076003)(186003)(6506007)(336012)(40480700001)(356005)(7596003)(40460700003)(7636003)(83380400001)(36756003)(36860700001)(107886003)(47076005)(2616005); DIR:OUT; SFP:1101; X-OriginatorOrg: seco.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Jul 2023 17:13:29.8307 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 6c35666f-5986-46a1-3135-08db8c694d48 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.80]; Helo=[inpost-eu.tmcas.trendmicro.com] X-MS-Exchange-CrossTenant-AuthSource: DB8EUR05FT050.eop-eur05.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR03MB6808 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 converts the mmc loader to spl_load. Legacy images are handled by spl_load (via spl_parse_image_header), so mmc_load_legacy can be omitted. Signed-off-by: Sean Anderson Reviewed-by: Stefan Roese --- (no changes since v1) common/spl/spl_mmc.c | 73 ++++---------------------------------------- 1 file changed, 6 insertions(+), 67 deletions(-) diff --git a/common/spl/spl_mmc.c b/common/spl/spl_mmc.c index a665091b00f..8f3cda08ec6 100644 --- a/common/spl/spl_mmc.c +++ b/common/spl/spl_mmc.c @@ -17,48 +17,6 @@ #include #include -static int mmc_load_legacy(struct spl_image_info *spl_image, - struct spl_boot_device *bootdev, - struct mmc *mmc, - ulong sector, struct legacy_img_hdr *header) -{ - u32 image_offset_sectors; - u32 image_size_sectors; - unsigned long count; - u32 image_offset; - int ret; - - ret = spl_parse_image_header(spl_image, bootdev, header); - if (ret) - return ret; - - /* convert offset to sectors - round down */ - image_offset_sectors = spl_image->offset / mmc->read_bl_len; - /* calculate remaining offset */ - image_offset = spl_image->offset % mmc->read_bl_len; - - /* convert size to sectors - round up */ - image_size_sectors = (spl_image->size + mmc->read_bl_len - 1) / - mmc->read_bl_len; - - /* Read the header too to avoid extra memcpy */ - count = blk_dread(mmc_get_blk_desc(mmc), - sector + image_offset_sectors, - image_size_sectors, - (void *)(ulong)spl_image->load_addr); - debug("read %x sectors to %lx\n", image_size_sectors, - spl_image->load_addr); - if (count != image_size_sectors) - return -EIO; - - if (image_offset) - memmove((void *)(ulong)spl_image->load_addr, - (void *)(ulong)spl_image->load_addr + image_offset, - spl_image->size); - - return 0; -} - static ulong h_spl_load_read(struct spl_load_info *load, ulong sector, ulong count, void *buf) { @@ -86,6 +44,11 @@ int mmc_load_image_raw_sector(struct spl_image_info *spl_image, struct legacy_img_hdr *header; struct blk_desc *bd = mmc_get_blk_desc(mmc); int ret = 0; + struct spl_load_info load = { + .dev = mmc, + .bl_len = mmc->read_bl_len, + .read = h_spl_load_read, + }; header = spl_get_load_buffer(-sizeof(*header), bd->blksz); @@ -97,31 +60,7 @@ int mmc_load_image_raw_sector(struct spl_image_info *spl_image, goto end; } - if (IS_ENABLED(CONFIG_SPL_LOAD_FIT) && - image_get_magic(header) == FDT_MAGIC) { - struct spl_load_info load; - - debug("Found FIT\n"); - load.dev = mmc; - load.priv = NULL; - load.filename = NULL; - load.bl_len = mmc->read_bl_len; - load.read = h_spl_load_read; - ret = spl_load_simple_fit(spl_image, &load, sector, header); - } else if (IS_ENABLED(CONFIG_SPL_LOAD_IMX_CONTAINER)) { - struct spl_load_info load; - - load.dev = mmc; - load.priv = NULL; - load.filename = NULL; - load.bl_len = mmc->read_bl_len; - load.read = h_spl_load_read; - - ret = spl_load_imx_container(spl_image, &load, sector); - } else { - ret = mmc_load_legacy(spl_image, bootdev, mmc, sector, header); - } - + ret = spl_load(spl_image, bootdev, &load, header, 0, sector); end: if (ret) { #ifdef CONFIG_SPL_LIBCOMMON_SUPPORT From patchwork Mon Jul 24 17:12:52 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sean Anderson X-Patchwork-Id: 1811951 X-Patchwork-Delegate: trini@ti.com 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=bsBuNK+4; dkim=pass (2048-bit key) header.d=seco.com header.i=@seco.com header.a=rsa-sha256 header.s=selector1 header.b=bsBuNK+4; 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) server-digest SHA384) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4R8mws63qnz1yZw for ; Tue, 25 Jul 2023 03:14:21 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id A53A0866F4; Mon, 24 Jul 2023 19:13:49 +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="bsBuNK+4"; dkim=pass (2048-bit key) header.d=seco.com header.i=@seco.com header.b="bsBuNK+4"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 619CE8474B; 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 EUR04-DB3-obe.outbound.protection.outlook.com (mail-db3eur04on060d.outbound.protection.outlook.com [IPv6:2a01:111:f400:fe0c::60d]) (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 EB530867EF for ; Mon, 24 Jul 2023 19:13:32 +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=mMnveMsxnJBQkJDAm2PT8snj+Uc4fr+Hj07SPcZXpxI=; b=bsBuNK+4pCaaXjtYzcPmUdFT9UUonfY3HrVAuRZaRR1wvI+JL3Sb5qXBGSAEyQleFdWQoTAfZhqAPp8BAQdRvCzWj0RrVRdVvbjG1nQTBm7Uv90OhJc00K4cCWIoVqICyNww6Ng8p2dMbWU/kHUCXpLL5l/oNZx9m8CnqI1EEfUXE8XNA44XHfrgLo6LU1oZsltfgP6q+oJhccH8RsfITZAsFw59yQot7ef/gAUwti23r9qVJgyyR1Jd9EHqtvjgS5MYHtWf28mFzamsKS/lG26SLPWzHIB3y+GoKNibxLekELpjrcdxP0a6U8Qi+OA5oSWci2NGAcO/hV6ujirW0g== Received: from DB7PR05CA0035.eurprd05.prod.outlook.com (2603:10a6:10:36::48) by PAVPR03MB9137.eurprd03.prod.outlook.com (2603:10a6:102:328::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6609.31; Mon, 24 Jul 2023 17:13:31 +0000 Received: from DB8EUR05FT027.eop-eur05.prod.protection.outlook.com (2603:10a6:10:36:cafe::ff) by DB7PR05CA0035.outlook.office365.com (2603:10a6:10:36::48) 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:30 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 20.160.56.86) 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.86 as permitted sender) receiver=protection.outlook.com; client-ip=20.160.56.86; helo=inpost-eu.tmcas.trendmicro.com; pr=C Received: from inpost-eu.tmcas.trendmicro.com (20.160.56.86) by DB8EUR05FT027.mail.protection.outlook.com (10.233.239.192) 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:30 +0000 Received: from outmta (unknown [192.168.82.134]) by inpost-eu.tmcas.trendmicro.com (Trend Micro CAS) with ESMTP id 57CCE200BB20B; Mon, 24 Jul 2023 17:13:30 +0000 (UTC) Received: from EUR02-DB5-obe.outbound.protection.outlook.com (unknown [104.47.11.108]) by repre.tmcas.trendmicro.com (Trend Micro CAS) with ESMTPS id 61C8A2008006E; Mon, 24 Jul 2023 17:13:28 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=jmdOHsnDNVS1zRCgiw5kjxBGgUpGzmZu3iWE7SwYy5YbOlTrnX56XRLTAEyjFVzVHWRr1StZgUt+XJT2lpmp7kjdzPdY+MdX4JgNs3e5VtQJwNZHaMlE0fKUHaCBZBnoUSLycTtAG3DTP1jd25ypVXY5QH7+lKd+DVU6OqBk27gCeXAq+GccydqRBiBe86x7LBlBBT5VtmwhB3OJwDtdsAsOpFmjmyuxDCpXEcfqMwqGSuTZcMJPtTCdefUAG+IujgfV5d3XHOe+02Oa2GsmEMpF2WJCbOhh+Blct2+Z8vRVWzp2rxyARXDWGtox6TJ7rEfuhtqn14+wxatflUME4Q== 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=mMnveMsxnJBQkJDAm2PT8snj+Uc4fr+Hj07SPcZXpxI=; b=JCB0Uxo/46gmqfIoyyWdQdXSrHSyRVitcz6lyHs+/t41i10eqRj4pxnNFOOm+2oO4bx1y6bGxitODKDp2fPKe0y37apAmt8gcROv9bd2ATh0imspbbzOhTzlYvwttu8bJ/wkccmOpzno9R+O3CXv5SAG79pFXfSQtfYwagquqRrQNCQiIToY+uAnalQA5IbkZR6kRyk1xKpE+v2W5K4GK+akWPpnEg0aplpOpL/nEnlp4PPH4E0wln9v/YbsP5MCyztszb8RC72w1RrwEdOcAsNNFkqwKsTLHgtR1Uje+z507q/grxNF4eNntJqX0VcVkZw0BP9rUU25kzz/faMbCg== 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=mMnveMsxnJBQkJDAm2PT8snj+Uc4fr+Hj07SPcZXpxI=; b=bsBuNK+4pCaaXjtYzcPmUdFT9UUonfY3HrVAuRZaRR1wvI+JL3Sb5qXBGSAEyQleFdWQoTAfZhqAPp8BAQdRvCzWj0RrVRdVvbjG1nQTBm7Uv90OhJc00K4cCWIoVqICyNww6Ng8p2dMbWU/kHUCXpLL5l/oNZx9m8CnqI1EEfUXE8XNA44XHfrgLo6LU1oZsltfgP6q+oJhccH8RsfITZAsFw59yQot7ef/gAUwti23r9qVJgyyR1Jd9EHqtvjgS5MYHtWf28mFzamsKS/lG26SLPWzHIB3y+GoKNibxLekELpjrcdxP0a6U8Qi+OA5oSWci2NGAcO/hV6ujirW0g== 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:27 +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:27 +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 Subject: [PATCH v4 5/9] spl: Convert net to spl_load Date: Mon, 24 Jul 2023 13:12:52 -0400 Message-Id: <20230724171256.914133-6-sean.anderson@seco.com> X-Mailer: git-send-email 2.35.1.1320.gc452695387.dirty In-Reply-To: <20230724171256.914133-1-sean.anderson@seco.com> References: <20230724171256.914133-1-sean.anderson@seco.com> 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_|DB8EUR05FT027:EE_|PAVPR03MB9137:EE_ X-MS-Office365-Filtering-Correlation-Id: 4d62c2b6-ffcb-475d-1349-08db8c694dba 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: ZTuMCh8YTPBx+iNSYUaWg3sQ3MGxaMyu48zoghaa14stfiTlTZyP9s2tX/5acFMA/NCtLkjYtWvWxmHT6MvaNjmxYriQzEWJL9WeIWuiXmv40HE9sxQ5Fn12iwcgPlyggVYIG6odM9jB74bj3XlNORJxOsnUHadkTPOM7knNG+A7T5nwdkoFmxHyJltWa/ZH+L2lz2JFGjy1MucyciyxXivKf/mnWTqHoIbccORL5pZ3cu28ls65aRj+eDUSm9dq0AsGSQWpN1cBdOyKgb97zAYe+c+Wc3eQmdTJocmHxfO9EYeWMtuV86sfuXsxIB/AgazzqbVvhSsJDIwdBEaIWs+xA68fOAunEJGDTQ/ngL8PVQMIenVJPYVDs3iMquqdUg6RE1Wgm2VesrHRCheB4xdVeombgBZ7tOOc8pEe2SRdBh1uBl5MmiaWA30CUKXE0MAUh8a5bBVarn+6qNWiyIGmnDtIMqMoyB3qLXveo6sv8gV6auUnlFgh+n5m5M3Im0yFfgWzvAg3deGdhvidkxxKctE2ZkFZH0BFXL7OjjPlum0/amsqmH6TNkMOmP6U7DnOXOlcyxrKgmihOFWFFe1I8KgIYtqor30IXNpKNDMoMY3CvJhG2keW+IF62Dmm 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)(107886003)(41300700001)(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: DB8EUR05FT027.eop-eur05.prod.protection.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 31c232eb-e159-4c1f-9df7-08db8c694bbd X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 3kXrz6DUglT1c/UvjIY/KP2tRMGT+YAkicSLeTGueLr3up+fWg2x2pwQUuxKTDiEAzeGNlelaJBG4t1CZXpR6cthK+grCYbjVRR52TZguuRJ1YrTN7vAT96KJDGvVI4iky+CTP6Ld4oQIpdoU6KWjWzccmTl0cLbEJe+PHIYPfZIowttfIRgLlTBOL3d6OIFSBcImnTbgGcHYzPvnwwLsqi+Gy84WQkLvQAV+VP5qXg/n0TwRh0bIGxt7JAnZF7FY/KKj8DCAD/Kb9W8nptN6krxkRaRcLR+4k++0z7Xf5CQpNG9Vj1uk9OqIQxfhOM/FhvY90FJH2hkVeuIAOPWfOe5S8sfm8XImCoXXFgEBqvQRBLfSnXk5ry0rXMMMmMeY+KG5VamngdRvkYy3pL40zKVqXv92fttW3VgsEYAOWddNCalz6yoOU7TimxA/7Fm4ynYXdwD6fdN5K24sSsrmCRlRSNb50nZKCZehOTZPtXRH6kapFfEyuB30gmE1W9k06ZgrlbTaR31YCTlsxLxNmLZeKJA6Gn04B/XNWdFPIjAJEoGYM6kZDZ0+8W6VUyImNsvUdPvZ5Y8m6iDy0/0ukvYMw2O4wyS2KyiBsAhF7aWoj+ZuTa1e73uel6JOZccTbPVc0Bjxj0KDsvWSgIEvC9he9bcSJI8iDQVaXMPe5/Da8e5tu3wT/ychEivcFyswvdNUvg8qo6puM7Tl+8IYfEjcZr4s02Q+TbcWyh2RAL4zK1aRT0PCyLk/PLeGL60bBhYjONmB8QVJzUz5j6Lzw== X-Forefront-Antispam-Report: CIP:20.160.56.86; 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)(396003)(376002)(136003)(39850400004)(346002)(451199021)(82310400008)(46966006)(36840700001)(40470700004)(5660300002)(8676002)(44832011)(8936002)(41300700001)(316002)(478600001)(2906002)(54906003)(6486002)(6512007)(6666004)(1076003)(336012)(186003)(6506007)(26005)(107886003)(47076005)(2616005)(4326008)(70586007)(70206006)(83380400001)(36860700001)(34070700002)(356005)(7596003)(7636003)(36756003)(40480700001)(40460700003)(86362001)(82740400003); DIR:OUT; SFP:1101; X-OriginatorOrg: seco.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Jul 2023 17:13:30.5927 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 4d62c2b6-ffcb-475d-1349-08db8c694dba 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.86]; Helo=[inpost-eu.tmcas.trendmicro.com] X-MS-Exchange-CrossTenant-AuthSource: DB8EUR05FT027.eop-eur05.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAVPR03MB9137 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 converts the net load method to use spl_load. As a result, it also adds support for LOAD_FIT_FULL and IMX images. Signed-off-by: Sean Anderson Reviewed-by: Stefan Roese --- (no changes since v1) common/spl/spl_net.c | 24 +++++------------------- 1 file changed, 5 insertions(+), 19 deletions(-) diff --git a/common/spl/spl_net.c b/common/spl/spl_net.c index b2c901b554b..561cad8a1ff 100644 --- a/common/spl/spl_net.c +++ b/common/spl/spl_net.c @@ -29,6 +29,10 @@ static int spl_net_load_image(struct spl_image_info *spl_image, struct spl_boot_device *bootdev) { struct legacy_img_hdr *header = (struct legacy_img_hdr *)image_load_addr; + struct spl_load_info load = { + .bl_len = 1, + .read = spl_net_load_read, + }; int rv; env_init(); @@ -47,25 +51,7 @@ static int spl_net_load_image(struct spl_image_info *spl_image, return rv; } - if (IS_ENABLED(CONFIG_SPL_LOAD_FIT) && - image_get_magic(header) == FDT_MAGIC) { - struct spl_load_info load; - - debug("Found FIT\n"); - load.bl_len = 1; - load.read = spl_net_load_read; - rv = spl_load_simple_fit(spl_image, &load, 0, header); - } else { - debug("Legacy image\n"); - - rv = spl_parse_image_header(spl_image, bootdev, header); - if (rv) - return rv; - - memcpy((void *)spl_image->load_addr, header, spl_image->size); - } - - return rv; + return spl_load(spl_image, bootdev, &load, header, 0, 0); } #endif From patchwork Mon Jul 24 17:12:53 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sean Anderson X-Patchwork-Id: 1811954 X-Patchwork-Delegate: trini@ti.com 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=iFpdAtkd; dkim=pass (2048-bit key) header.d=seco.com header.i=@seco.com header.a=rsa-sha256 header.s=selector1 header.b=iFpdAtkd; 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 4R8mxR75gKz1yZw for ; Tue, 25 Jul 2023 03:14:51 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id D4AF686844; Mon, 24 Jul 2023 19:13:52 +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="iFpdAtkd"; dkim=pass (2048-bit key) header.d=seco.com header.i=@seco.com header.b="iFpdAtkd"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 72B7086830; Mon, 24 Jul 2023 19:13:42 +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 EUR01-HE1-obe.outbound.protection.outlook.com (mail-he1eur01on0618.outbound.protection.outlook.com [IPv6:2a01:111:f400:fe1e::618]) (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 7E56C8681D for ; Mon, 24 Jul 2023 19:13:35 +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=dk7/XTTTJRScR91sGl4nWs1xByBIESFXqaPgppS+Oo8=; b=iFpdAtkdIlWwbJRKFAHjr6axpz50sXO6RRsmVBa0iIROexln4AGmJrVySdi4dMnVy1HDTe6mOPAS3ugTlgob6IAkUEg41UDUjaK5rW2u6EnInMe2zuVs39mq26sXCeFIky7byqFJAFvOMAofUA8FpgxGgsCEJ/usBX2Wl+cN08A1/b+E0c0C8x7PjaBMtx9OeZ4Jjw68PeckkQozLPuRVTdV453QfRkrs4D+mQwS1t/ZiWd8QoFW5Lbp7LhA8tZdopZmXVfmuwLhIWXghn1u0m8c+SUcqpbjpdQXoRMvRsUVD7lmb21+BW/8453fFFF0dMMFgZBYvAoX4J3wMarW7g== Received: from DUZPR01CA0077.eurprd01.prod.exchangelabs.com (2603:10a6:10:46a::15) by VI1PR03MB10160.eurprd03.prod.outlook.com (2603:10a6:800:1cc::14) 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:32 +0000 Received: from DB8EUR05FT068.eop-eur05.prod.protection.outlook.com (2603:10a6:10:46a:cafe::f4) by DUZPR01CA0077.outlook.office365.com (2603:10a6:10:46a::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6609.28 via Frontend Transport; Mon, 24 Jul 2023 17:13:31 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 20.160.56.84) 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.84 as permitted sender) receiver=protection.outlook.com; client-ip=20.160.56.84; helo=inpost-eu.tmcas.trendmicro.com; pr=C Received: from inpost-eu.tmcas.trendmicro.com (20.160.56.84) by DB8EUR05FT068.mail.protection.outlook.com (10.233.238.69) 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:31 +0000 Received: from outmta (unknown [192.168.82.139]) by inpost-eu.tmcas.trendmicro.com (Trend Micro CAS) with ESMTP id 5E8C3200BB208; Mon, 24 Jul 2023 17:13:31 +0000 (UTC) Received: from EUR02-DB5-obe.outbound.protection.outlook.com (unknown [104.47.11.112]) by repre.tmcas.trendmicro.com (Trend Micro CAS) with ESMTPS id AC6FA2008006E; Mon, 24 Jul 2023 17:13:29 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=mVz1g5NhC8H7YyAYyATHTbWfvD+TkW0fVYD5ShGcOHOSmj37FfTLJ3rYmnkv4fh7Q7ccka7qSalivxippxqNFZHmaJVHVSehRA4JsPWKErwhXzpyO2S6rxpGh4ySB52w0ZCOqFmZlS8KqkVFSpVLSjR7GUsDv4LLshB1pvDFXLRhYs1j0hjA2JFQTMN209Af47SjS6oe6dYq7S4PkoJiCsJacrJxF0ebM25gFR9zfTWEM36zVjDDW3LwLW8/nVDPgXVEhiXmuSck/IJAz3k9HMG9J1Bw5/wjfzFyBg1SaeRxdW76HgdlMnXQqPi6QnkDvIw85/1RCdOy0O2v6Lx/1Q== 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=dk7/XTTTJRScR91sGl4nWs1xByBIESFXqaPgppS+Oo8=; b=lqWP/6T0KI683cmJxhDl8kXeIOMtGTQ59VJt1HWkrYvtg+lPkOz7reV0rOgyGjjILVvvfUynJcqBH2XsBd313p1RSKM8ddAAk9NQ7BAYWI2oRGNoiL8B4Bqgwcup3ks8dYRmGklyhGNHfREAESdPznDlatDaG/GpZUUZC8Vhnu1g2QUik3OceQ5o86BNBRCE8wg90tReb9JjXOUDMNKJZpknmtwJWCCGcWg+4gPWoi3vGMT+BVieVch4YMQ0aDuOyC5qaZI4PjL5mISjcfHqQFTbNIpBgd5HGw8l1neqjkwDrkxufONPawSCipqOCkqiF7T1KrkS7D+/0Z9E/AeUHA== 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=dk7/XTTTJRScR91sGl4nWs1xByBIESFXqaPgppS+Oo8=; b=iFpdAtkdIlWwbJRKFAHjr6axpz50sXO6RRsmVBa0iIROexln4AGmJrVySdi4dMnVy1HDTe6mOPAS3ugTlgob6IAkUEg41UDUjaK5rW2u6EnInMe2zuVs39mq26sXCeFIky7byqFJAFvOMAofUA8FpgxGgsCEJ/usBX2Wl+cN08A1/b+E0c0C8x7PjaBMtx9OeZ4Jjw68PeckkQozLPuRVTdV453QfRkrs4D+mQwS1t/ZiWd8QoFW5Lbp7LhA8tZdopZmXVfmuwLhIWXghn1u0m8c+SUcqpbjpdQXoRMvRsUVD7lmb21+BW/8453fFFF0dMMFgZBYvAoX4J3wMarW7g== 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:28 +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:28 +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 Subject: [PATCH v4 6/9] spl: Convert nor to spl_load Date: Mon, 24 Jul 2023 13:12:53 -0400 Message-Id: <20230724171256.914133-7-sean.anderson@seco.com> X-Mailer: git-send-email 2.35.1.1320.gc452695387.dirty In-Reply-To: <20230724171256.914133-1-sean.anderson@seco.com> References: <20230724171256.914133-1-sean.anderson@seco.com> 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_|DB8EUR05FT068:EE_|VI1PR03MB10160:EE_ X-MS-Office365-Filtering-Correlation-Id: 31fb6b94-a9b8-4819-4c2b-08db8c694e5a 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: lEB9fybD1jckanmWykCTIe/KMKOjF9IJ0Ti/Ir4YgVUQqD6cP+8ELWun8OG5pRnRpnbuh/0/eO+Wg7fkdBCpf9DXjaOszX9xX0a9i/YeFWmhvHnuWKOiPnX1PWYlarqK39dCSDd3xCiAgi3Wv2o2OApGWq08Ro0FpyrY3w6azIN+HrTqOdNXRyHvFvBYNyDONL2bD3SjbOOfnudLqwkNXoNRBkj6H3foiuWpHIJjCf3bKie1hF5XN0E64v3B3DFvaFmar9oECfRuft9EZFfI5xaNmHKA+TRuDJLWYPkX1JAkw4/Mf2iw0c7csjlEHJvTEC70YqKQ7QcTehrBrpUWUzRL/hPccPxrm+CqpTWhcgAAlpJwRsRRtdVeoI6K4fDgB8cffgowkt71crP3I0gxalU3TNnqUTW3JLvsxgN6hRpm0FcTCZbRuvDk05hQGWg2B4sOvyLAIK1sLwL8KSwuCcA5S83a6wFovbnBr/JCuMLnvAwo8oteVRfTni1Sgemycaj4epWGb7MQYPNbouY/xAHmZOiP4386orPRTajxMYX486HzOAAzv2F91pYmg53o8PBsAYAQbW6a/EpiEppLfDTDjve/Z7S913JpC04+rO8OTQv5zjmzEcYnTMGXV2Ev 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)(107886003)(41300700001)(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: DB8EUR05FT068.eop-eur05.prod.protection.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 1d909f0a-da10-463f-7713-08db8c694c83 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 4/mBd118AGoagMmTWU7mSJAkG6LdjQkqVP8A9MdpaisP8pfhvTvjt3ApVrD58+4tCEIFBd8JxO80ny0fKrkK5ZqnughqGUg+N94JOe2jxbTQ4kKCtmu4FLha0SLDvMtZBYvxhj3KyYyBlRNVmI7XAALfAJYUMG/QSKtF6EaSTsMommDV1wTbj98z3IMoEC5nc7Obki9JC/wnd7+absqXuF2s1233DapihhFvVA0Vwasg8MXyYExaxn5/634WY4hJ7a51SnutgKOIIPgNbxZ8mOCQ6xdGOyY0fFHMeuCzbyOWjxDEvt2WI2RGRXIDi/9mCjRhpWSO708wrVUnzp2C+eWCf0WsDmLSIgigpwv5/buD9E+YcXnp5FLOnT49+Zg3YvoRGmOj8T/Qhnytu3uMzouuu3e5K6XITkzQLfvwJw/m+/ynmTtSiLVXXh11ID5G+AQPmjF8M7B0T3M8UiQaBIT4U7C4QVMh0DucFMq8bW8lwJecaBmxNsKe/jBSl6fyxha+vOCbOIazKz3Gfpv+KmlY00YESnrSdeZxJ+8rXLAVsELl2tUbVHGLo1m1c21RFZFKdQ2sWlhHjmobAOqZhdQhO32E6QNJnG+gldgLnvAemZ2lx4/y3kKozpBVBFA1U1nYK/Vc1jZZtRKvMETAR0NQaKwSOHNJ0ZUh+8JTo8C9ATRzq4ePA54+/P6JYbxN8UOrh0ZDHQq8n/6+hv27g5iZkpnhtir2UtqSajxVoOw= X-Forefront-Antispam-Report: CIP:20.160.56.84; 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)(346002)(396003)(39850400004)(376002)(136003)(451199021)(82310400008)(36840700001)(46966006)(6512007)(6486002)(478600001)(54906003)(6666004)(36860700001)(83380400001)(47076005)(86362001)(34070700002)(40480700001)(44832011)(2906002)(336012)(2616005)(186003)(107886003)(26005)(1076003)(6506007)(7596003)(316002)(356005)(36756003)(7636003)(82740400003)(70586007)(70206006)(4326008)(5660300002)(41300700001)(8676002)(8936002); DIR:OUT; SFP:1101; X-OriginatorOrg: seco.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Jul 2023 17:13:31.6271 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 31fb6b94-a9b8-4819-4c2b-08db8c694e5a 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.84]; Helo=[inpost-eu.tmcas.trendmicro.com] X-MS-Exchange-CrossTenant-AuthSource: DB8EUR05FT068.eop-eur05.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR03MB10160 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 converts the nor load method to use spl_load. As a result it also adds support for LOAD_FIT_FULL. Signed-off-by: Sean Anderson Reviewed-by: Stefan Roese --- (no changes since v1) common/spl/spl_nor.c | 39 ++++++--------------------------------- 1 file changed, 6 insertions(+), 33 deletions(-) diff --git a/common/spl/spl_nor.c b/common/spl/spl_nor.c index 5b65b96a77d..1561a9b22ac 100644 --- a/common/spl/spl_nor.c +++ b/common/spl/spl_nor.c @@ -26,8 +26,11 @@ unsigned long __weak spl_nor_get_uboot_base(void) static int spl_nor_load_image(struct spl_image_info *spl_image, struct spl_boot_device *bootdev) { - __maybe_unused const struct legacy_img_hdr *header; - __maybe_unused struct spl_load_info load; + struct legacy_img_hdr *header = (void *)spl_nor_get_uboot_base(); + struct spl_load_info load = { + .bl_len = 1, + .read = spl_nor_load_read, + }; /* * Loading of the payload to SDRAM is done with skipping of @@ -91,36 +94,6 @@ static int spl_nor_load_image(struct spl_image_info *spl_image, * Load real U-Boot from its location in NOR flash to its * defined location in SDRAM */ -#ifdef CONFIG_SPL_LOAD_FIT - header = (const struct legacy_img_hdr *)spl_nor_get_uboot_base(); - if (image_get_magic(header) == FDT_MAGIC) { - debug("Found FIT format U-Boot\n"); - load.bl_len = 1; - load.read = spl_nor_load_read; - return spl_load_simple_fit(spl_image, &load, - spl_nor_get_uboot_base(), - (void *)header); - } -#endif - if (IS_ENABLED(CONFIG_SPL_LOAD_IMX_CONTAINER)) { - load.bl_len = 1; - load.read = spl_nor_load_read; - return spl_load_imx_container(spl_image, &load, - spl_nor_get_uboot_base()); - } - - /* Legacy image handling */ - if (IS_ENABLED(CONFIG_SPL_LEGACY_IMAGE_FORMAT)) { - struct legacy_img_hdr hdr; - - load.bl_len = 1; - load.read = spl_nor_load_read; - spl_nor_load_read(&load, spl_nor_get_uboot_base(), sizeof(hdr), &hdr); - return spl_load_legacy_img(spl_image, bootdev, &load, - spl_nor_get_uboot_base(), - &hdr); - } - - return -EINVAL; + return spl_load(spl_image, bootdev, &load, header, 0, 0); } SPL_LOAD_IMAGE_METHOD("NOR", 0, BOOT_DEVICE_NOR, spl_nor_load_image); From patchwork Mon Jul 24 17:12:54 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sean Anderson X-Patchwork-Id: 1811953 X-Patchwork-Delegate: trini@ti.com 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=85.214.62.61; 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=qFd1dIsd; dkim=pass (2048-bit key) header.d=seco.com header.i=@seco.com header.a=rsa-sha256 header.s=selector1 header.b=qFd1dIsd; dkim-atps=neutral Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (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 4R8mxF5Mf5z1yZw for ; Tue, 25 Jul 2023 03:14:41 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id E5B1B86834; Mon, 24 Jul 2023 19:13:51 +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="qFd1dIsd"; dkim=pass (2048-bit key) header.d=seco.com header.i=@seco.com header.b="qFd1dIsd"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 2D8B186824; Mon, 24 Jul 2023 19:13:42 +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-DB8-obe.outbound.protection.outlook.com (mail-db8eur05on20624.outbound.protection.outlook.com [IPv6:2a01:111:f400:7e1a::624]) (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 B6FBB86812 for ; Mon, 24 Jul 2023 19:13:35 +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=Z+yb5qxEODCpJhHKHLTIQxB2IV/fDhudTJWzxR0ikFE=; b=qFd1dIsd3S/6GK+QsFcK9eC8Fic2OIXm2ymPooa8vXIewOu/kb9eusH2ZHnw8kybqPAA6tGuqP18s1ogoKCuhYxoTE2grcI8HhKsLMW672BBQP2x5Rt0chLkr6uNLWE+S3aHXo+UTazPJGuL5Co033Xxvd8Dy/G64VKP5SwykFtAP+pscUwUpDjTQHEq1TfdZOHcO0YOUUoYEhY8cty3lymZDS97PdtNYdLHnSWw+blIz5VOQTMqzCt2wPxZJma8OBDqV1W0JoSs3Uk4scNAFoJcYYWubb/ivUJXYPdpS7+Y9RwCA0XVmjaepv0di3MYqVb8QvBq5T7NGxUpcGOJfQ== Received: from AM6PR01CA0052.eurprd01.prod.exchangelabs.com (2603:10a6:20b:e0::29) by DB9PR03MB7468.eurprd03.prod.outlook.com (2603:10a6:10:22d::15) 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:33 +0000 Received: from AM6EUR05FT053.eop-eur05.prod.protection.outlook.com (2603:10a6:20b:e0:cafe::7d) by AM6PR01CA0052.outlook.office365.com (2603:10a6:20b:e0::29) 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:32 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 20.160.56.84) 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.84 as permitted sender) receiver=protection.outlook.com; client-ip=20.160.56.84; helo=inpost-eu.tmcas.trendmicro.com; pr=C Received: from inpost-eu.tmcas.trendmicro.com (20.160.56.84) by AM6EUR05FT053.mail.protection.outlook.com (10.233.240.62) 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:32 +0000 Received: from outmta (unknown [192.168.82.136]) by inpost-eu.tmcas.trendmicro.com (Trend Micro CAS) with ESMTP id 91ED920082C8F; Mon, 24 Jul 2023 17:13:32 +0000 (UTC) Received: from EUR04-HE1-obe.outbound.protection.outlook.com (unknown [104.47.13.57]) by repre.tmcas.trendmicro.com (Trend Micro CAS) with ESMTPS id 5CEE22008006E; Mon, 24 Jul 2023 17:13:31 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=PQTa9syXdQSrmJLuTwU38BMHi5Dr7llzFLPD9yVRb/TMBpdMEA+dsHlb/d+G3ewmSZlGrvGIariZcaVeTltd5k6AshVbM0CEEpTYRVLJuHMNBKqG93UhMI6+008rgccKePbV4EEzA8nYpBu4fQZxhfDQOcdHmMI+vQ8pMSkxDmvmiupX1Z9lfwH4ESIqXHS8IYIG2e0NmRTzKk5tXmrxlJv8uzc96Sr9cvF8nbCqF+1xnxIzjxYfODMSF1ABKN6ouN/3awHgs9rbW6Uj81PQ5wJ14dKNTaIpy8yd9ImUxDjWtKIQd+hRYbaQ8xJ3gP/UA1QAsNrnizf7sfubE9ytGA== 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=Z+yb5qxEODCpJhHKHLTIQxB2IV/fDhudTJWzxR0ikFE=; b=NaZ3liAyZe3+tP/aRqGat6FV6utwKGDkSqVXvozoKoI8GZj1KYAbFSoxDO7Rrh+B+TF9lBeMDsLtfVSPvQQvAfgt8ad3A2UIx03qmzmK2kIPaxXsEb7sYZbR3amMBLgxKvrfkDM25URwQx9KMjNkwteLUZ1T2tbCVOg+e8vhzLZK6BQh2alCW03QT9gXiCS6dSsFjm8dqz2ZkBMB6ccvWJ0L6V6yjJML4SfT1JFNF/2Q8O3upoBmsIxBdeW1ta1wtFbf3vIjmoon5cj5nQNmyiX0b7Qm97pnjc2JabFj/+ZmjQQsQdXvP0pjW0XIJ6LFcZLNqcnHvmqxQFIUyY9ugQ== 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=Z+yb5qxEODCpJhHKHLTIQxB2IV/fDhudTJWzxR0ikFE=; b=qFd1dIsd3S/6GK+QsFcK9eC8Fic2OIXm2ymPooa8vXIewOu/kb9eusH2ZHnw8kybqPAA6tGuqP18s1ogoKCuhYxoTE2grcI8HhKsLMW672BBQP2x5Rt0chLkr6uNLWE+S3aHXo+UTazPJGuL5Co033Xxvd8Dy/G64VKP5SwykFtAP+pscUwUpDjTQHEq1TfdZOHcO0YOUUoYEhY8cty3lymZDS97PdtNYdLHnSWw+blIz5VOQTMqzCt2wPxZJma8OBDqV1W0JoSs3Uk4scNAFoJcYYWubb/ivUJXYPdpS7+Y9RwCA0XVmjaepv0di3MYqVb8QvBq5T7NGxUpcGOJfQ== 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:30 +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:30 +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 Subject: [PATCH v4 7/9] spl: Convert semihosting to spl_load Date: Mon, 24 Jul 2023 13:12:54 -0400 Message-Id: <20230724171256.914133-8-sean.anderson@seco.com> X-Mailer: git-send-email 2.35.1.1320.gc452695387.dirty In-Reply-To: <20230724171256.914133-1-sean.anderson@seco.com> References: <20230724171256.914133-1-sean.anderson@seco.com> 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_|AM6EUR05FT053:EE_|DB9PR03MB7468:EE_ X-MS-Office365-Filtering-Correlation-Id: cbfc31fb-5f1d-40c3-9d3b-08db8c694ef4 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: Av4et8YanRZIOLYis9sxTV1ueRIqcToEVccngcUq/2AFOP7AHuF+MY7zdnf0pUJAwAnRpUAqCvWRyiuVr7jn8W1nm21C3XUBT6w5gLbPLCVS1IppGuxkrQ5ys4bKv3wLak3KjaFFPI8tAZASsID7HdNt5843ou05y2UPaTYc4lU9zSIkYwwrfWuu01QCJHzWnsEeve9bNkbbUatwFupoJLAl4ww8mIXEqJB7U12hjHCQ3TTBYO5pYVXyr+kpb859fW6A4NTKq+r2UdH1FphqkWAiSicpMv6ge0ZwvRuCJP2wgJoXwAXayuPUi7nnW3Uc5GGlX9pXOaMh4Uh8I036Z5gkJWn9sz/hpirGIODcceTGDbkU+M8nV30W3zqjLGHjloGK0TFUz8GkEpdFN4lAiEx+yabMpqsX7fhPBukWWdthASNCQW4rAnA2tkeffao269C3T+DD8N7PnMwUxuDr6zZr17tyzH5inj/XGfIyxhUl5M5zEkUao+xgSik/lODmtnL1G4y+raOprTQse27bMsjkscg0EFfILHIx0mg6wr4lmB4vgTujJ759FmB94MkOtXDLjychD7By5yP/aXtGFVp+Vn7NV547kJQXtM7uVrKjgvesydWxY8noJpzja2Tf 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)(107886003)(41300700001)(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: AM6EUR05FT053.eop-eur05.prod.protection.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 20c3927f-be04-48a2-c764-08db8c694d3f X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: xM1vQGCBmNL4/+U8na5HDjziuAglyVMpIqL8gYipFrfrSHNhzb3HmPRI8Dly0N+Jnyn4RlEY/1gUQTgXHSjn/cGCtGQx4/hDaizwofsQV2VnKzQQZrcJF2QxLWJOolaXXI+36CQnWCQF6TG9g5TQTZLL+inVpoLff55LYeEDkYBsVRcZVKEFPqxVhqYD1LepehbIqvxPe3XA6DvW6nxscXA0WJgD//oQ9yjnj2p5QaHOnwPqqIhy7o7/PyIkibh1TSpwo3bmv2w7GTHzOhB2xlFhV3/6W/KkfhY5giuWN0f4WlwGJnSwAdJy/xCYJ7D6KezbgzesG74elvlsDUYkwMQDbwqQBmBKWmdhmA0zN8VG6h46nwIsI9DluD5djUN9oiIkqwG9b/rDGJnfMbSl8VIh4v3RYtS7shfXK6C8IS3UjB9JCAVu8t5F8zUFLTSbE3kSwjpxDjHLmPDNkI5tGn5VkxuvoOxHscB934RJqUucF+S1Q63ShJ9fdbFk/QWWrBSogkCsXN8VJn6XS6nwXy2KPW2niym0LXjoxta3r85BbXTpmvShD+O54e1uIyb9jf6FIwDjhDORU+3V/J9kK9VLvPY2CLwKqmhoIkcBU+9tjLkW2/uIU4AckmTThHjCn/FH4SOeSIrPk8TrKa9cTfs7C6F++rSN4nh679C5i1ZDpZ1EZMoVO+UM+xPGfMLb0bQVTzjh9jHLZAAAkZU0nY2Y2+Wq2uTDVX9QVny4Bb7M+il0+UMnkkgWEfAVEH6+x/nTu3aM4K3m7RL0OXG4tw== X-Forefront-Antispam-Report: CIP:20.160.56.84; 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)(376002)(136003)(39850400004)(396003)(346002)(82310400008)(451199021)(46966006)(40470700004)(36840700001)(86362001)(6486002)(478600001)(6666004)(70206006)(70586007)(7636003)(7596003)(82740400003)(356005)(54906003)(4326008)(34070700002)(6512007)(316002)(36860700001)(47076005)(41300700001)(83380400001)(2616005)(2906002)(36756003)(336012)(107886003)(8676002)(40460700003)(8936002)(186003)(44832011)(40480700001)(1076003)(6506007)(26005)(5660300002); DIR:OUT; SFP:1101; X-OriginatorOrg: seco.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Jul 2023 17:13:32.6697 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: cbfc31fb-5f1d-40c3-9d3b-08db8c694ef4 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.84]; Helo=[inpost-eu.tmcas.trendmicro.com] X-MS-Exchange-CrossTenant-AuthSource: AM6EUR05FT053.eop-eur05.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR03MB7468 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 converts the semihosting load method to use spl_load. As a result, it also adds support for LOAD_FIT_FULL and IMX images. Signed-off-by: Sean Anderson --- (no changes since v2) Changes in v2: - New common/spl/spl_semihosting.c | 39 +++++++++++++++--------------------- 1 file changed, 16 insertions(+), 23 deletions(-) diff --git a/common/spl/spl_semihosting.c b/common/spl/spl_semihosting.c index 5b5e842a11b..65e7089c5e9 100644 --- a/common/spl/spl_semihosting.c +++ b/common/spl/spl_semihosting.c @@ -9,16 +9,16 @@ #include #include -static int smh_read_full(long fd, void *memp, size_t len) +static ulong spl_smh_fit_read(struct spl_load_info *load, ulong sector, + ulong count, void *buf) { - long read; + int ret, fd = *(int *)load->priv; - read = smh_read(fd, memp, len); - if (read < 0) - return read; - if (read != len) - return -EIO; - return 0; + if (smh_seek(fd, sector)) + return 0; + + ret = smh_read(fd, buf, count); + return ret < 0 ? 0 : ret; } static int spl_smh_load_image(struct spl_image_info *spl_image, @@ -29,12 +29,17 @@ static int spl_smh_load_image(struct spl_image_info *spl_image, long fd, len; struct legacy_img_hdr *header = spl_get_load_buffer(-sizeof(*header), sizeof(*header)); + struct spl_load_info load = { + .bl_len = 1, + .read = spl_smh_fit_read, + }; fd = smh_open(filename, MODE_READ | MODE_BINARY); if (fd < 0) { log_debug("could not open %s: %ld\n", filename, fd); return fd; } + load.priv = &fd; ret = smh_flen(fd); if (ret < 0) { @@ -43,25 +48,13 @@ static int spl_smh_load_image(struct spl_image_info *spl_image, } len = ret; - ret = smh_read_full(fd, header, sizeof(struct legacy_img_hdr)); - if (ret) { + ret = smh_read(fd, header, sizeof(struct legacy_img_hdr)); + if (ret != sizeof(struct legacy_img_hdr)) { log_debug("could not read image header: %d\n", ret); goto out; } - ret = spl_parse_image_header(spl_image, bootdev, header); - if (ret) { - log_debug("failed to parse image header: %d\n", ret); - goto out; - } - - ret = smh_seek(fd, 0); - if (ret) { - log_debug("could not seek to start of image: %d\n", ret); - goto out; - } - - ret = smh_read_full(fd, (void *)spl_image->load_addr, len); + ret = spl_load(spl_image, bootdev, &load, header, len, 0); if (ret) log_debug("could not read %s: %d\n", filename, ret); out: From patchwork Mon Jul 24 17:12:55 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sean Anderson X-Patchwork-Id: 1811955 X-Patchwork-Delegate: trini@ti.com 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=lzoxx4vb; dkim=pass (2048-bit key) header.d=seco.com header.i=@seco.com header.a=rsa-sha256 header.s=selector1 header.b=lzoxx4vb; 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 4R8mxf25GLz1yZw for ; Tue, 25 Jul 2023 03:15:02 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id E1F568681B; Mon, 24 Jul 2023 19:13:53 +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="lzoxx4vb"; dkim=pass (2048-bit key) header.d=seco.com header.i=@seco.com header.b="lzoxx4vb"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 6E6EA86841; Mon, 24 Jul 2023 19:13:43 +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-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05on2061a.outbound.protection.outlook.com [IPv6:2a01:111:f400:7d00::61a]) (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 F34AE86821 for ; Mon, 24 Jul 2023 19:13:37 +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=zmSGDOmnBaVr25kKDXkrMBYV6o2N5ys7IL+4lISr61w=; b=lzoxx4vbwyuIa/2NUqfcBgn8eKggj7q/b5Dg8we9cbPxG1SUNGT5Z204NU4MQbmf1l5gfO0cyhrvb9SBHOp3KvIJrsGpF3xprjY5F0qX/E9/btyV29n7VTu0BChKfR+xaPGdYlDC+UQsyEE9LWDnJAj/94sEk/vJKhcpA5jiQxizPwrDgW4Hc9sx6ashC2apoSu0RtFfLU/XTXlys5//p1kZl0KgsDP9Be+Uq3i2HN9Rtr8csnEoUOXgETA+OiLxdsNGatEdLJEJKxVuG74MsZI8sFqfbP/4r59fIqrOaI1s6Q+3n9KvcgPfYuZlmz+Q5WkqjfQ8wajnHVxia9lWbA== Received: from DUZPR01CA0114.eurprd01.prod.exchangelabs.com (2603:10a6:10:4bb::13) by AM9PR03MB7042.eurprd03.prod.outlook.com (2603:10a6:20b:2db::12) 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:36 +0000 Received: from DB8EUR05FT046.eop-eur05.prod.protection.outlook.com (2603:10a6:10:4bb:cafe::e2) by DUZPR01CA0114.outlook.office365.com (2603:10a6:10:4bb::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6609.31 via Frontend Transport; Mon, 24 Jul 2023 17:13:36 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 20.160.56.81) 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.81 as permitted sender) receiver=protection.outlook.com; client-ip=20.160.56.81; helo=inpost-eu.tmcas.trendmicro.com; pr=C Received: from inpost-eu.tmcas.trendmicro.com (20.160.56.81) by DB8EUR05FT046.mail.protection.outlook.com (10.233.238.79) 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:35 +0000 Received: from outmta (unknown [192.168.82.134]) by inpost-eu.tmcas.trendmicro.com (Trend Micro CAS) with ESMTP id 63357200BB208; Mon, 24 Jul 2023 17:13:35 +0000 (UTC) Received: from EUR04-HE1-obe.outbound.protection.outlook.com (unknown [104.47.13.51]) by repre.tmcas.trendmicro.com (Trend Micro CAS) with ESMTPS id 447AB2008006E; Mon, 24 Jul 2023 17:13:32 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=OJjuhbLqVKFBDarApjzYdiiCHd1ZHUZ5cxKFf94g6+Zf03WqSMwraDYk9KSNFo7le1hrppqGUG7PExUor2trS2bQbs1CRccQNs48Nhgc9vRSRxZ3lz85B2bsQhO3nm0I6VRL2YNJEevqRvL4c+MnG+4HyI+fC62Fm4c0dLC4PKDqo1CORqaJsRDLg+Bzr7gsBO5nOpReN1ME3Y1Egp7MIQBZc6/PeVNCUpkwpnNsODegYlmjWYCeVZ6ooD48C1ofctSt/jl5SjAVcLaXm05wGW4X1wDqrat9iP7ZXuwvANpsjTOLV6DAlb5Yyc1zhFEFOgk9FGx5/bP2J9Q9QMP5SA== 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=zmSGDOmnBaVr25kKDXkrMBYV6o2N5ys7IL+4lISr61w=; b=H9BhXYp3O+U3hJznWwS+J/0sKwBGX/mFMthcjnH/eptVypB8DVl+LSUOQ9bTaWwkTTDmskBOZK1CpQyF6rYMGSINOV3WZeDE8uAO5b7dZ9/wIFQdiG1UTTHzddnjuc6uU3IbuGMW012I/JWmoPRWPzRYDraypxJc1cJShOIJSaUvmt2rV65PTMeD/wTxy6r7HMzZEQdIlvrEFArlfutDpyzSJRxrE45EVmFe/XDrhKbPOTGaqvyriq2YKhEJ5gawJBCpnyDSi3//0KdaYW8iKf2u0vSfZEZZUyIcHP+JIqOd3U6W/4IbgIuV8FzIoZ0yD/p948v6zjcYN1pU3wmbQA== 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=zmSGDOmnBaVr25kKDXkrMBYV6o2N5ys7IL+4lISr61w=; b=lzoxx4vbwyuIa/2NUqfcBgn8eKggj7q/b5Dg8we9cbPxG1SUNGT5Z204NU4MQbmf1l5gfO0cyhrvb9SBHOp3KvIJrsGpF3xprjY5F0qX/E9/btyV29n7VTu0BChKfR+xaPGdYlDC+UQsyEE9LWDnJAj/94sEk/vJKhcpA5jiQxizPwrDgW4Hc9sx6ashC2apoSu0RtFfLU/XTXlys5//p1kZl0KgsDP9Be+Uq3i2HN9Rtr8csnEoUOXgETA+OiLxdsNGatEdLJEJKxVuG74MsZI8sFqfbP/4r59fIqrOaI1s6Q+3n9KvcgPfYuZlmz+Q5WkqjfQ8wajnHVxia9lWbA== 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:31 +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:31 +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 Subject: [PATCH v4 8/9] spl: Convert spi to spl_load Date: Mon, 24 Jul 2023 13:12:55 -0400 Message-Id: <20230724171256.914133-9-sean.anderson@seco.com> X-Mailer: git-send-email 2.35.1.1320.gc452695387.dirty In-Reply-To: <20230724171256.914133-1-sean.anderson@seco.com> References: <20230724171256.914133-1-sean.anderson@seco.com> 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_|DB8EUR05FT046:EE_|AM9PR03MB7042:EE_ X-MS-Office365-Filtering-Correlation-Id: f11e79d2-c19e-44bf-a335-08db8c6950bb 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: ockfx14oCSMaTRQssOG/q6LRvTJ0Iy2GO6/K5CnyywwC/K0cQI1B8MVOLfU4zDhzFuSt8/rJ0i2ZcaLvWD1xT6l16uehD9WmXMWXJ9VTFBPRizgYwBcrtl6olLLRSvP1F/FGDN7SLiHcQeThUGYOjtC8QJdyGAIFxKf3AgOQpQEE4UM1kShIPkM4xtwQcyM09M7s6FgneiH4z1xSWW3jisjU1Ck//g3DXAVnw3E6LFtlOCN7Joww+s9JUQ1IyVs9+s+k0phIxeAlUEx1Lfm+FA4CkfOGxuMtCFfnsYzFX6BkRBPL1FQWlIB6BOonTxvMTwBiVKyJC802P8tWUBcpEy4BxS4HJrIAhW/OsPBi3nvsOxDimxue/ejCoPtCaT5qSzMV27THv0ypt1QNtCVmejFBeswRZR8AbzWLk25FAAcePFsRXaLo4D0x+h1ErqgO3y4Qha+TT8PQps4OWxUqj/favCixTxvIJhCXQx9mZNLrzIUGFf7+hrpHG9y7Vv0bAd/0786BqMGI3SVmXZnKDRNhsQjxlCp3FiuV78ZwSHlAb8D9RwiIB2WZuTAI/5QMKAb4k001hm9FB6OcB5rVY5F/r6oTFH/+GGMHGndv/74iDEAGPSgJNm7x3JvegTqL 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)(107886003)(41300700001)(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: DB8EUR05FT046.eop-eur05.prod.protection.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 317f0a6e-353a-4d3b-3e44-08db8c694e03 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: FAIMQiOcRItcmBw7/92ILus2PREz2lFc5sV3yj4lzdc8Xpbc0UlnNn7PsMGeZMqDWIz6jwAHvB43xp84XOWZl/D/sUNeY+ECFfC53hJYZyWVz2QRwgXntWPVNenBmDIrtuMY6lsTcnhuxk4pKjRBbY4zXpcpnD/wGzUfAnfDKjhBsWE9+IlsLpclZUZ+i3VZISapj0aJuZi0/CoWss3gbujBQfqJ4gCT6/j8Gv7vDCkcpFCOkL//++H4vaOieEAhkqg7h05Po5ZP7Y6zGk6vCUzJxBjxherUZMIoL4/wkpn1PjJHrCKsp9ZwM2GIBHdAM6eAJriKzOUgTwJ3nm2m7z7XjUrlUtGWMZ02XTb0tSrBtzOtX+5OMTSS1xNAxqEsG4xzkbK6MGhChzgJQIpDOCqkCySBcUdS7fQ1jnIoByV1YzdHUb60bwxIwA4413AFFHSE+ECMH1xw5t0mmojz633B+NdEM8TqOS9xiDsNQuW8K2eSMghLNvj9kWZW35BDgciJO1+/JXlKGkM9C9zbC/+VFDtxm7TG1PmQLPQ0fZXXymBE1G3VKxOaCuqWCUUTe3oYAPsSQ4mFuRpU6giaTaO1OUcjLilxK6l0V20VZD7eD5udFOyc77ZSJZ0ibjFBfU/nFZgSvw9edWweLQz5NLHmWG8Xbbcmb0b2VpeQHAb8fUlUSaMPDfNp0WsOChaRFUPPI/L88m3L6+t53BJsASXkBOhHExkOEwZZSDdzCmd1VIoQGT7i1INEU5XxmmQ+sj+QUNWob2DVtpMJhCTd9A== X-Forefront-Antispam-Report: CIP:20.160.56.81; 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)(136003)(39850400004)(346002)(376002)(396003)(82310400008)(451199021)(40470700004)(46966006)(36840700001)(6486002)(6512007)(54906003)(478600001)(6666004)(36860700001)(47076005)(83380400001)(40460700003)(36756003)(86362001)(40480700001)(34070700002)(44832011)(2906002)(336012)(2616005)(186003)(26005)(107886003)(6506007)(1076003)(356005)(7596003)(7636003)(82740400003)(4326008)(70586007)(70206006)(41300700001)(8676002)(8936002)(5660300002)(316002); DIR:OUT; SFP:1101; X-OriginatorOrg: seco.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Jul 2023 17:13:35.6204 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: f11e79d2-c19e-44bf-a335-08db8c6950bb 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.81]; Helo=[inpost-eu.tmcas.trendmicro.com] X-MS-Exchange-CrossTenant-AuthSource: DB8EUR05FT046.eop-eur05.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR03MB7042 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 converts the spi load method to use spl_load. As a consequence, it also adds support for LOAD_FIT_FULL. Signed-off-by: Sean Anderson Reviewed-by: Stefan Roese --- (no changes since v1) common/spl/spl_spi.c | 53 ++++++-------------------------------------- 1 file changed, 7 insertions(+), 46 deletions(-) diff --git a/common/spl/spl_spi.c b/common/spl/spl_spi.c index 2aff025f76e..75929710935 100644 --- a/common/spl/spl_spi.c +++ b/common/spl/spl_spi.c @@ -95,6 +95,10 @@ static int spl_spi_load_image(struct spl_image_info *spl_image, struct legacy_img_hdr *header; unsigned int sf_bus = spl_spi_boot_bus(); unsigned int sf_cs = spl_spi_boot_cs(); + struct spl_load_info load = { + .bl_len = 1, + .read = spl_spi_fit_read, + }; /* * Load U-Boot image from SPI flash into RAM @@ -109,6 +113,7 @@ static int spl_spi_load_image(struct spl_image_info *spl_image, return -ENODEV; } + load.dev = flash; payload_offs = spl_spi_get_uboot_offs(flash); header = spl_get_load_buffer(-sizeof(*header), sizeof(*header)); @@ -131,52 +136,8 @@ static int spl_spi_load_image(struct spl_image_info *spl_image, return err; } - if (IS_ENABLED(CONFIG_SPL_LOAD_FIT_FULL) && - image_get_magic(header) == FDT_MAGIC) { - err = spi_flash_read(flash, payload_offs, - roundup(fdt_totalsize(header), 4), - (void *)CONFIG_SYS_LOAD_ADDR); - if (err) - return err; - err = spl_parse_image_header(spl_image, bootdev, - (struct legacy_img_hdr *)CONFIG_SYS_LOAD_ADDR); - } else if (IS_ENABLED(CONFIG_SPL_LOAD_FIT) && - image_get_magic(header) == FDT_MAGIC) { - struct spl_load_info load; - - debug("Found FIT\n"); - load.dev = flash; - load.priv = NULL; - load.filename = NULL; - load.bl_len = 1; - load.read = spl_spi_fit_read; - err = spl_load_simple_fit(spl_image, &load, - payload_offs, - header); - } else if (IS_ENABLED(CONFIG_SPL_LOAD_IMX_CONTAINER)) { - struct spl_load_info load; - - load.dev = flash; - load.priv = NULL; - load.filename = NULL; - load.bl_len = 1; - load.read = spl_spi_fit_read; - - err = spl_load_imx_container(spl_image, &load, - payload_offs); - } else { - err = spl_parse_image_header(spl_image, bootdev, header); - if (err) - return err; - err = spi_flash_read(flash, payload_offs + spl_image->offset, - spl_image->size, - (void *)spl_image->load_addr); - } - if (IS_ENABLED(CONFIG_SPI_FLASH_SOFT_RESET)) { - err = spi_nor_remove(flash); - if (err) - return err; - } + err = spl_load(spl_image, bootdev, &load, header, 0, + payload_offs); } return err; From patchwork Mon Jul 24 17:12:56 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sean Anderson X-Patchwork-Id: 1811956 X-Patchwork-Delegate: trini@ti.com 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=85.214.62.61; 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=PDEJaSsL; dkim=pass (2048-bit key) header.d=seco.com header.i=@seco.com header.a=rsa-sha256 header.s=selector1 header.b=PDEJaSsL; dkim-atps=neutral Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (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 4R8mxt6FhWz1yYc for ; Tue, 25 Jul 2023 03:15:14 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id ECCA78684C; Mon, 24 Jul 2023 19:13:54 +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="PDEJaSsL"; dkim=pass (2048-bit key) header.d=seco.com header.i=@seco.com header.b="PDEJaSsL"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 8F514862DA; Mon, 24 Jul 2023 19:13:45 +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=ham autolearn_force=no version=3.4.2 Received: from EUR02-VI1-obe.outbound.protection.outlook.com (mail-vi1eur02on2060c.outbound.protection.outlook.com [IPv6:2a01:111:f400:fe16::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 E59DB8681B for ; Mon, 24 Jul 2023 19:13:39 +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=LPoKa/y7O55iYSz3PxE8zscbYFFVz7yVagECU5SDa9o=; b=PDEJaSsL4BQ5dS4e9DORKIsYwkdlpmbQ7UU8w3FGMwVQqSPgFBSLl/M+AZNzFw+c6vkC55SF7ZWoV916s92EYi+ydtYjLZCDye2VXwPb4XCmiYR3a38PBrpwqNJxVZoNNRvTTvB3111l3ti7R71IoCtAoYzogOY53fsvrZVuhvCl/cKOo4DN7NF5kct02EkFaPqOTFG1ytc9Y/J6KCMM71JTwbG4nO/6QWVKmr16EUJzHoVEstTktv55ondj0l6hoZ/OUnbfmdj1fCj2lo0qg7/RTOlUK5IO3It+tRQ2XbY/FiVaQWIyxjX4nRvqpkgY9HWd64ztayPY6aLq6z8R6Q== Received: from AM8P189CA0011.EURP189.PROD.OUTLOOK.COM (2603:10a6:20b:218::16) by AS2PR03MB9741.eurprd03.prod.outlook.com (2603:10a6:20b:60e::16) 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:37 +0000 Received: from AM6EUR05FT025.eop-eur05.prod.protection.outlook.com (2603:10a6:20b:218:cafe::6d) by AM8P189CA0011.outlook.office365.com (2603:10a6:20b:218::16) 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:37 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 20.160.56.84) 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.84 as permitted sender) receiver=protection.outlook.com; client-ip=20.160.56.84; helo=inpost-eu.tmcas.trendmicro.com; pr=C Received: from inpost-eu.tmcas.trendmicro.com (20.160.56.84) by AM6EUR05FT025.mail.protection.outlook.com (10.233.240.185) 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:37 +0000 Received: from outmta (unknown [192.168.82.137]) by inpost-eu.tmcas.trendmicro.com (Trend Micro CAS) with ESMTP id 6553D200BB208; Mon, 24 Jul 2023 17:13:37 +0000 (UTC) Received: from EUR04-HE1-obe.outbound.protection.outlook.com (unknown [104.47.13.52]) by repre.tmcas.trendmicro.com (Trend Micro CAS) with ESMTPS id 84B012008006E; Mon, 24 Jul 2023 17:13:35 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=C8oHqj9Ekad2XGhybU+uqJfd87do8XbvHSS0Je/yriSE+/2okQY0tso1H6Lmv9FHsFHds3onzofYPXyY54MwQx/7rOLPpPuLGozeKoloJbhHjp1hXMdS76KJfJqSe4FK677KRNSCzL+ScQ5bpWPeDugChxbeLcFQat2/i1ysSv7UMhhDzkko7bASMgsAwIj3079mHabdl9FlRo7WVhV+aUTZ2ocpIsTzWftRG0+afPdjfdVtaMcDMUqaITDUvNvhJywGGQ9cYywK6wWwFtktfG0mL6ODDmC6BirTiJu0/LlEQWv2xtIaBoffWgzhpyepre2ERV371me/yjAf+1lbUQ== 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=LPoKa/y7O55iYSz3PxE8zscbYFFVz7yVagECU5SDa9o=; b=EalqRoyKB3S97qHrabs27e5alFAg2Nxb4htoEXdbi8CsZ3v3Rgg7Zk2nUaK+l/bQRYHkwhdkF0fgzDTpVBybj28u7OWb2iUe1AwGsm0dirN1uVXPBW6naCclV3x1kiQixHohYAlfiTNVAlgCNBjKoj+E8I0wszRLYb8mDYF0nR7j6RMRgZYamg2UdsVD0Q+j3WPDEQlvRvMcs/qdO/J9PltiMVAqHaEckjnPyW31XbWu8BABJN4aLKYm/e+iZYg5jmCWtS/YTGlpy1UDnm9TSGjdou7JN7ibByGPOmPsd4//S/MshRaijbzgGlqH+m9rtRCukSQ7DCz22kpc304uTw== 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=LPoKa/y7O55iYSz3PxE8zscbYFFVz7yVagECU5SDa9o=; b=PDEJaSsL4BQ5dS4e9DORKIsYwkdlpmbQ7UU8w3FGMwVQqSPgFBSLl/M+AZNzFw+c6vkC55SF7ZWoV916s92EYi+ydtYjLZCDye2VXwPb4XCmiYR3a38PBrpwqNJxVZoNNRvTTvB3111l3ti7R71IoCtAoYzogOY53fsvrZVuhvCl/cKOo4DN7NF5kct02EkFaPqOTFG1ytc9Y/J6KCMM71JTwbG4nO/6QWVKmr16EUJzHoVEstTktv55ondj0l6hoZ/OUnbfmdj1fCj2lo0qg7/RTOlUK5IO3It+tRQ2XbY/FiVaQWIyxjX4nRvqpkgY9HWd64ztayPY6aLq6z8R6Q== 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:32 +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:32 +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 9/9] spl: spi: Consolidate spi_load_image_os into spl_spi_load_image Date: Mon, 24 Jul 2023 13:12:56 -0400 Message-Id: <20230724171256.914133-10-sean.anderson@seco.com> X-Mailer: git-send-email 2.35.1.1320.gc452695387.dirty In-Reply-To: <20230724171256.914133-1-sean.anderson@seco.com> References: <20230724171256.914133-1-sean.anderson@seco.com> 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_|AM6EUR05FT025:EE_|AS2PR03MB9741:EE_ X-MS-Office365-Filtering-Correlation-Id: 93acf086-baf9-401c-c849-08db8c6951d5 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: EUEEXqt30AThTRKkm3iquGSj0W39VURbscMePmFph8LLJMvKqYIghke5oo7cBeBNJ2UP1G4715XG6dIp/Uut1YOEMN712N6tzHBNlQSKHoqA1TKb5ZndZp6oIuWMOarYhGM+P3KWr4oibbtnLWj675B2QG1yv8vTY60i+qs3vGuOcYNoJknQWfQ+IXL24f/1pqf+vcSoM0+bwnnBVmYNnyxDrhONBLiOIG4Wk7hMwyMJotz36Tlynjv/fjSRx4cOOtzwlk4vhaXMnyjtV5bfFo4zYT/H30e2UkQltuRDi38qncCJkknOSL1zvWppuB7lZ2kpLga6bkbsMOaH2+olkhBo3imZPWktiW4cx9aiAkiOBK16vHVUjslDi/CenEfgPTtEXhw3eu8txi/IHYPZ1L2wZlqT73aWV6cl0Xkgq6PxJ6Pi5AOsvEfmWzEM8qNgU8kMfIYiSvwtLZnLfEw2FbyDds1AKpJweE9nHIekF/t+zFt0fgNZZj9ejuYsBVgJ+RWolNd6Swx9tH3EfAJvgo+c7vHCGM7dbQPbDjIzZqD8bpkaNhmI9LGnkhBnsKnmFCJNoOPmjnC61Td0aTmi1PU1o+yq8/T0lqgrJ+cR+r6znWxwLvZUfwT0nvIxRm7i 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: AM6EUR05FT025.eop-eur05.prod.protection.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 53a09446-99a5-4450-3e2f-08db8c694ed0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 3CqauTlU35B/KgDoMT5W7GYLzzRbVR34TXRhPCnjD2gZ34zgfRzp+gchtwewSSKIHvV12hZxYngR+TQBBJBoO5CsLiYRjO0pP6Rfiu4+5hu5cgPrDz9b/JY6VQZZihtI73f5B0FWwYEkfCHJ7ImKzlcNW+blfl1fMoqFwuFsxfJY4VoNAgbD3kId7dRUfRurzpB7QXb0opdd6R6/MWg6YA0O8ReMbRN/BDLLm5AAXh6VhtbG8fvsGVpXQSKFoNXvdpgeRcXEc+ZGHCb0d75lWfL1GGwzcb+CUFwXuO6OgfMRG5m7zkgGN5lXk9+zLXiCwBrpjWAPw5DsM+sHrCN96aZc59N42uTj1g2OkefKet0t/ZF3sobBgFUC9XXZ5dJFCRcZMFQAjLFZRVZVpzJJEnCECv7KjzDFrfJGeK0SFEfEkAQPpNLDk+YqB6w+QmJXYsoa5m1u2srTOSWD1WISSrBxZVYgHhKlmNGL2bpi8n/9jObJCrcxghihjzsTps2n6l8F7EtUt1jKeBWFIknF1tnDA30PiRnI6tpb1dOrfBU7vXn7uhorWqXvjHdG81nflgxMIlfT+XBSiSVe756w9wj2S3NkhU+PkG3nJioNSoI8RoLzKHuFhiTj22bButw/euRDXQtVMt1sqeMAy/TYpGwn6EX31ujG2CuU3ohW8Xacwg6runXXw78VLP6ubFeTZYV9C3+Vdn8J67ZK38SVfab8H1KfpXBoxnuQyvC+iFcctOnBRr3bnm8oO3C8m1pwP751yzyO1B0OgaP9+P+r7w== X-Forefront-Antispam-Report: CIP:20.160.56.84; 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)(376002)(136003)(396003)(39850400004)(346002)(82310400008)(451199021)(36840700001)(40470700004)(46966006)(5660300002)(44832011)(47076005)(7416002)(316002)(8936002)(8676002)(41300700001)(2906002)(70586007)(70206006)(40460700003)(36860700001)(1076003)(26005)(6506007)(40480700001)(34070700002)(83380400001)(86362001)(6512007)(54906003)(6486002)(4326008)(478600001)(6666004)(356005)(7596003)(7636003)(82740400003)(2616005)(36756003)(186003)(336012); DIR:OUT; SFP:1101; X-OriginatorOrg: seco.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Jul 2023 17:13:37.5008 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 93acf086-baf9-401c-c849-08db8c6951d5 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.84]; Helo=[inpost-eu.tmcas.trendmicro.com] X-MS-Exchange-CrossTenant-AuthSource: AM6EUR05FT025.eop-eur05.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS2PR03MB9741 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 spi_load_image_os performs almost the same steps as the non-falcon-boot path of spl_spi_load_image. The load address is different, and it also loads a device tree, but that's it. Refactor the boot process so that they can both use the same load function. Signed-off-by: Sean Anderson --- (no changes since v2) Changes in v2: - New common/spl/spl_spi.c | 87 +++++++++++++++++--------------------------- 1 file changed, 33 insertions(+), 54 deletions(-) diff --git a/common/spl/spl_spi.c b/common/spl/spl_spi.c index 75929710935..39c528293e2 100644 --- a/common/spl/spl_spi.c +++ b/common/spl/spl_spi.c @@ -18,41 +18,6 @@ #include #include -#if CONFIG_IS_ENABLED(OS_BOOT) -/* - * Load the kernel, check for a valid header we can parse, and if found load - * the kernel and then device tree. - */ -static int spi_load_image_os(struct spl_image_info *spl_image, - struct spl_boot_device *bootdev, - struct spi_flash *flash, - struct legacy_img_hdr *header) -{ - int err; - - /* Read for a header, parse or error out. */ - spi_flash_read(flash, CFG_SYS_SPI_KERNEL_OFFS, sizeof(*header), - (void *)header); - - if (image_get_magic(header) != IH_MAGIC) - return -1; - - err = spl_parse_image_header(spl_image, bootdev, header); - if (err) - return err; - - spi_flash_read(flash, CFG_SYS_SPI_KERNEL_OFFS, - spl_image->size, (void *)spl_image->load_addr); - - /* Read device tree. */ - spi_flash_read(flash, CFG_SYS_SPI_ARGS_OFFS, - CFG_SYS_SPI_ARGS_SIZE, - (void *)CONFIG_SYS_SPL_ARGS_ADDR); - - return 0; -} -#endif - static ulong spl_spi_fit_read(struct spl_load_info *load, ulong sector, ulong count, void *buf) { @@ -81,6 +46,29 @@ u32 __weak spl_spi_boot_cs(void) return CONFIG_SF_DEFAULT_CS; } +static int spi_do_load_image(struct spl_image_info *spl_image, + struct spl_boot_device *bootdev, + struct spl_load_info *load, + unsigned int payload_offs) +{ + int ret; + struct spi_flash *flash = load->dev; + struct legacy_img_hdr *header = + spl_get_load_buffer(-sizeof(*header), sizeof(*header)); + + /* mkimage header is 64 bytes. */ + ret = spi_flash_read(flash, payload_offs, sizeof(*header), + (void *)header); + if (ret) { + debug("%s: Failed to read from SPI flash (err=%d)\n", + __func__, ret); + return ret; + } + + return spl_load(spl_image, bootdev, load, header, 0, + payload_offs); +} + /* * The main entry for SPI booting. It's necessary that SDRAM is already * configured and available since this code loads the main U-Boot image @@ -89,10 +77,8 @@ u32 __weak spl_spi_boot_cs(void) static int spl_spi_load_image(struct spl_image_info *spl_image, struct spl_boot_device *bootdev) { - int err = 0; unsigned int payload_offs; struct spi_flash *flash; - struct legacy_img_hdr *header; unsigned int sf_bus = spl_spi_boot_bus(); unsigned int sf_cs = spl_spi_boot_cs(); struct spl_load_info load = { @@ -116,31 +102,24 @@ static int spl_spi_load_image(struct spl_image_info *spl_image, load.dev = flash; payload_offs = spl_spi_get_uboot_offs(flash); - header = spl_get_load_buffer(-sizeof(*header), sizeof(*header)); - if (CONFIG_IS_ENABLED(OF_REAL)) { payload_offs = ofnode_conf_read_int("u-boot,spl-payload-offset", payload_offs); } #if CONFIG_IS_ENABLED(OS_BOOT) - if (spl_start_uboot() || spi_load_image_os(spl_image, bootdev, flash, header)) -#endif - { - /* Load u-boot, mkimage header is 64 bytes. */ - err = spi_flash_read(flash, payload_offs, sizeof(*header), - (void *)header); - if (err) { - debug("%s: Failed to read from SPI flash (err=%d)\n", - __func__, err); - return err; - } - - err = spl_load(spl_image, bootdev, &load, header, 0, - payload_offs); + if (spl_start_uboot()) { + int err = spi_do_load_image(spl_image, bootdev, &load, + CFG_SYS_SPI_KERNEL_OFFS); + if (!err) + /* Read device tree. */ + return spi_flash_read(flash, CFG_SYS_SPI_ARGS_OFFS, + CFG_SYS_SPI_ARGS_SIZE, + (void *)CONFIG_SYS_SPL_ARGS_ADDR); } +#endif - return err; + return spi_do_load_image(spl_image, bootdev, &load, payload_offs); } /* Use priorty 1 so that boards can override this */ SPL_LOAD_IMAGE_METHOD("SPI", 1, BOOT_DEVICE_SPI, spl_spi_load_image);