From patchwork Mon Jul 31 22:42: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: 1815292 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=xoS6UdJd; dkim=pass (2048-bit key) header.d=seco.com header.i=@seco.com header.a=rsa-sha256 header.s=selector1 header.b=xoS6UdJd; 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 4RFCw56X3Hz1yfC for ; Tue, 1 Aug 2023 08:44:05 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id EFF8086AE5; Tue, 1 Aug 2023 00:43:34 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=reject dis=none) header.from=seco.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=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="xoS6UdJd"; dkim=pass (2048-bit key) header.d=seco.com header.i=@seco.com header.b="xoS6UdJd"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 534E786AE5; Tue, 1 Aug 2023 00:43: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-am6eur05on20602.outbound.protection.outlook.com [IPv6:2a01:111:f400:7e1b::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 1FB2C869ED for ; Tue, 1 Aug 2023 00:43: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=ILLmD/EaeQKZKiNm3Va+HeylKI9DHiSoxGe23kvEXvM=; b=xoS6UdJdp8q5TtUla/lRcIMuxbtEUvl8Ir7kyt5NMXb+0popBdiPer8y/0D6Oh3ixS6oKlwBUS04TlBnOutV1nKZQRTinUIl2rNb5WSX+3BSL2BtMYyJAWot9KQl+qRYxhnr9L84korE24gsRF+HACu7o0JQuF/KUbrHLZAX+NjZu+MfgIqabP47XAKd5jprid8w2SDgtbBjvwse+ZRxM6mW5/laI6UKyU7akXYnoySwibZz7NMoZMiU2aqeIPT0C7WFPui7iAeO9ysyZhBPMlGMXbM6bLTHdF6fH3MevbO9dUDOMPxOQyp7kWSgGrkUKgFJkxrPxZ05FTGJCrtjVw== Received: from AM5PR1001CA0053.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:206:15::30) by DB9PR03MB7321.eurprd03.prod.outlook.com (2603:10a6:10:1ff::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6631.44; Mon, 31 Jul 2023 22:43:28 +0000 Received: from AM6EUR05FT062.eop-eur05.prod.protection.outlook.com (2603:10a6:206:15:cafe::c0) by AM5PR1001CA0053.outlook.office365.com (2603:10a6:206:15::30) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6631.44 via Frontend Transport; Mon, 31 Jul 2023 22:43:28 +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 AM6EUR05FT062.mail.protection.outlook.com (10.233.240.254) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6631.44 via Frontend Transport; Mon, 31 Jul 2023 22:43:27 +0000 Received: from outmta (unknown [192.168.82.132]) by inpost-eu.tmcas.trendmicro.com (Trend Micro CAS) with ESMTP id DC3BC2008008B; Mon, 31 Jul 2023 22:43:27 +0000 (UTC) Received: from EUR05-VI1-obe.outbound.protection.outlook.com (unknown [104.47.17.171]) by repre.tmcas.trendmicro.com (Trend Micro CAS) with ESMTPS id 083902008006E; Mon, 31 Jul 2023 22:43:21 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ZbEFf5FL2nXl3owjRAFZvD6nN0xD1QKgZfxMf477Ws+/FIRMurTqGc3tcPqXUMbS+nT69Y1svTaLu/x9RHurHtH47c1redonSqi4Uk67E6DdMZqjsD7PW43WZI7bH5KnqAYghxVx6soZ2oDc+sLlgrrV49Ztr2NiuczlgqV5pEzouTnD9F5zMNYAZ0rF1WKFjjvVqOIRLqmuvfxkjviPf1dVhiYansrqMyKKLTq6GzEIm/klED1uu4u84TsYDjf5Z4DWA97tTldazBugSSI00vsMPkazT51N6EDZtSsyIyRqSSIr+DO/vWLMi+wBWHxrbP5m4us1wOfVx8Q0f3jv0A== 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=ILLmD/EaeQKZKiNm3Va+HeylKI9DHiSoxGe23kvEXvM=; b=UjIa9NWht5ZJEPA91HkSpGB+DdAUxqCJuYlgMXEZf1mJ90NxQ2fca1DqFenSj6gcsHnshRZ79sbTWOckmkQxUFjqG5VxGHoS5WadTY1bq5mtvEg8AxqbsnGSSJwrIc/ykxZup7RKZ0uc4I8pvXkUGUffJJjvGHsy5O53/ar40MqBjKYRQGv2J2G3Ssv1iUYA/YR6S1JZm/wVtZdRduDQdmGdGdvFbx4mcNjmASN+iS4jk+yFIo5Zaf45EyG5ADX+HWkox9DfvAfq6jUeajjEBkUx5QJ4sP2W8bNzX2nR1DtB2izzFZOpqYgfgyGSheTB4uJ4nZpdwgEBBT6M0csfJA== 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=ILLmD/EaeQKZKiNm3Va+HeylKI9DHiSoxGe23kvEXvM=; b=xoS6UdJdp8q5TtUla/lRcIMuxbtEUvl8Ir7kyt5NMXb+0popBdiPer8y/0D6Oh3ixS6oKlwBUS04TlBnOutV1nKZQRTinUIl2rNb5WSX+3BSL2BtMYyJAWot9KQl+qRYxhnr9L84korE24gsRF+HACu7o0JQuF/KUbrHLZAX+NjZu+MfgIqabP47XAKd5jprid8w2SDgtbBjvwse+ZRxM6mW5/laI6UKyU7akXYnoySwibZz7NMoZMiU2aqeIPT0C7WFPui7iAeO9ysyZhBPMlGMXbM6bLTHdF6fH3MevbO9dUDOMPxOQyp7kWSgGrkUKgFJkxrPxZ05FTGJCrtjVw== 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 PAVPR03MB9163.eurprd03.prod.outlook.com (2603:10a6:102:32f::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6631.42; Mon, 31 Jul 2023 22:43:20 +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.6631.043; Mon, 31 Jul 2023 22:43:19 +0000 From: Sean Anderson To: Tom Rini , u-boot@lists.denx.de Cc: =?utf-8?q?Pali_Roh=C3=A1r?= , Stefan Roese , =?utf-8?q?Marek_Beh=C3=BAn?= , Simon Glass , Xavier Drudis Ferran , Heinrich Schuchardt , Marek Vasut , Sean Anderson Subject: [PATCH v5 04/11] spl: Convert fat to spl_load Date: Mon, 31 Jul 2023 18:42:56 -0400 Message-Id: <20230731224304.111081-5-sean.anderson@seco.com> X-Mailer: git-send-email 2.40.1 In-Reply-To: <20230731224304.111081-1-sean.anderson@seco.com> References: <20230731224304.111081-1-sean.anderson@seco.com> X-ClientProxiedBy: MN2PR15CA0013.namprd15.prod.outlook.com (2603:10b6:208:1b4::26) To DB9PR03MB8847.eurprd03.prod.outlook.com (2603:10a6:10:3dd::13) MIME-Version: 1.0 X-MS-TrafficTypeDiagnostic: DB9PR03MB8847:EE_|PAVPR03MB9163:EE_|AM6EUR05FT062:EE_|DB9PR03MB7321:EE_ X-MS-Office365-Filtering-Correlation-Id: 404dc426-0393-437a-343b-08db92178ec8 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: Gx+C8vqMKubRxGHocgq/WhndUpXMHazNduq6X9iUrrzT6n1QRB+rSnN0DVW6cJKKBz3npo0ZqayWl0crVTi5HK90sYGyaG9O/9j6iF4thso1pkfPRVrjH624xHyGOAZU8K+GBmZlw8HL8HOyXbuv5cWMKZIQxD/py9q0xH7j413ZMus80roexRSGllIK3wPxOW0XqMiH6xs+arzo2uVqZAMY3ZN+S9dIOV3isdZ8VdrXi7O+rioIl3X+srhQxhxOn3XJ0QbIi4xFoExo6TuDPG9WZPdTCHp0okD5M7rEIUog+Bt27xaiG3Ljs2ZOYW0wkWchKdt2Lrvz6kx0u+Mvha4hrNb83fYoWgQoE1ku5YGwN7fiCmnK9FxkuouHu1vBtv8WH19UQovcUMFLWKg6k6IV6O1qNgGqxXqRMtcvArt9qoKoXnJv9kkeJsJAoLEUrg4gHnHd94/TX2eWYt8l/KxXnStbOGsFzBHCrbiVuWBrRoAo148PoT8m1t72P6h26gJENJfwmqZudLxASubMUaxtunNi/j2LFHRwZ4jGUQ2eIEuGJLOF8YOeD4WS11JxCGGvKGB/LikhOiv1d8VajtcnIxt0E1HujWxUULy6/nmjSoNw9eP4oUufkUg9VOjX 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)(39850400004)(136003)(396003)(366004)(376002)(346002)(451199021)(36756003)(478600001)(38350700002)(38100700002)(86362001)(6512007)(52116002)(6486002)(6666004)(2616005)(186003)(107886003)(8676002)(1076003)(26005)(8936002)(6506007)(5660300002)(44832011)(4326008)(2906002)(66476007)(66946007)(66556008)(54906003)(41300700001)(316002)(83380400001); DIR:OUT; SFP:1101; X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAVPR03MB9163 X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: AM6EUR05FT062.eop-eur05.prod.protection.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 3f7462c6-fc33-4be2-6e99-08db921789e0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: ZJ7SOc9fLYhdgWQO7Pdslr92er7dPxYhfgm+XBkCyrfyWDut+LKk7QWIn5WvyQ/EnqxlF9IKmZiCCc26BZ9QFoEfO960wPpO3IfzRZ8esLghiCbdIhw01Qh1c+cucpv4rfzdrjL8/+fg14YxJu5VPyrod0bBHhvR3M5XcUqwIzolOpYjphqGVKCvJvxoTo+XZd1HHOjBnp1FjUAhKvqIia/MZFtckRm+eqxU2N2ENeMslR+yYHCPbcN/kUBPSH0x+oJi4QCpQukcff7FojPGVKEBQSs7y5qpDS8kQajlBVE/b/EEZxg0danKML6Y/bZxtMyfbegTXUpUrndnS+PH0j8DT0F26dz0u7NaPZJkQvtsUIkR0IoO1YUUYP+9AjanPH8DZKqzmrdeZxRoItqf6akCARnHyhEiMu3SJf1rhfuunoajNEtavhJZfE+hUjK6tBbdp2IUjLg1K0OlZVMQ/xk3XA1eFuGzLdbdAd86aiI/TvlvIiN1ffdKuC+9/D/P3DsGy1y5ODVdefNz5JmiPWKrXTp5Zvh25VSvb8xElUi/iTrlvrvmyEd7D/lzYFKJ42nPUbAqdv+xXUTe+gp2Ev9sJfTkKy6CY8rWeUQA2VfqA+SZDJO0tYHoDP5XGmGE4ad1U3rQblPfcORK50+A1vnSIDCcD672KnjqKmsI5FkfxiADS6JcPOkYD0QbXcYxTan2T8ajs8F+BxXGyMvZbxOT4aU9k2PPY+j2B0zbPBpg7VTolUPA0fTBbQT/m5w3XWK9xShw/OyV9ApT8MQ2TQ== 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)(396003)(346002)(39850400004)(376002)(82310400008)(451199021)(46966006)(36840700001)(40470700004)(8936002)(8676002)(36756003)(6486002)(41300700001)(34070700002)(478600001)(2616005)(2906002)(6666004)(44832011)(83380400001)(26005)(47076005)(316002)(186003)(336012)(86362001)(6506007)(1076003)(5660300002)(70586007)(70206006)(36860700001)(82740400003)(6512007)(40460700003)(54906003)(4326008)(356005)(7636003)(7596003)(107886003)(40480700001); DIR:OUT; SFP:1101; X-OriginatorOrg: seco.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Jul 2023 22:43:27.9976 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 404dc426-0393-437a-343b-08db92178ec8 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: AM6EUR05FT062.eop-eur05.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR03MB7321 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. Some platforms are very tight on space, so we take care to only include the code we really need. Signed-off-by: Sean Anderson --- Changes in v5: - Rework to load header in spl_load Changes in v3: - Fix failing on success common/spl/spl_fat.c | 55 +++++++++++++++----------------------------- 1 file changed, 19 insertions(+), 36 deletions(-) diff --git a/common/spl/spl_fat.c b/common/spl/spl_fat.c index f8a5b80a3b..6530bcd5a7 100644 --- a/common/spl/spl_fat.c +++ b/common/spl/spl_fat.c @@ -60,57 +60,40 @@ int spl_load_image_fat(struct spl_image_info *spl_image, const char *filename) { int err; - struct legacy_img_hdr *header; + loff_t size; + struct spl_load_info load; + + /* This generates smaller code than using a compound literal */ + load.read = spl_fit_read; + load.bl_len = 1; + load.filename = filename; err = spl_register_fat_device(block_dev, partition); if (err) goto end; - header = spl_get_load_buffer(-sizeof(*header), sizeof(*header)); - - err = file_fat_read(filename, header, sizeof(struct legacy_img_hdr)); - 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); + /* + * Avoid pulling in this function for other image types since we are + * very short on space on some boards. + */ + if (IS_ENABLED(CONFIG_SPL_LOAD_FIT_FULL)) { + err = fat_size(filename, &size); if (err) goto end; - - err = file_fat_read(filename, - (u8 *)(uintptr_t)spl_image->load_addr, 0); + } else { + size = 0; } + err = spl_load(spl_image, bootdev, &load, 0, size); + 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)