From patchwork Mon Jul 31 22:42:57 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sean Anderson X-Patchwork-Id: 1815295 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=xL8vP32n; dkim=pass (2048-bit key) header.d=seco.com header.i=@seco.com header.a=rsa-sha256 header.s=selector1 header.b=xL8vP32n; 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 4RFCwl60xMz1yfC for ; Tue, 1 Aug 2023 08:44:39 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id DB68B86AE4; Tue, 1 Aug 2023 00:43:38 +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="xL8vP32n"; dkim=pass (2048-bit key) header.d=seco.com header.i=@seco.com header.b="xL8vP32n"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 10A5A86AE4; Tue, 1 Aug 2023 00:43: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 EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05on2062b.outbound.protection.outlook.com [IPv6:2a01:111:f400:7d00::62b]) (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 A603A86ADF for ; Tue, 1 Aug 2023 00:43: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=SocaXedyTB5ZwupznaSNiKBpXJkUFDmiM7J0RxgwIGU=; b=xL8vP32nhB2mg/cXCiTWXukXwA02PedAZwt8kDtORVU1CW4vcU1wQxIB4o8PMiWi93wDSg+9cNzZWeumCUb22CuqSsE0jX9JcD3KLyAmGH2HRBsTkw9pt+DU/H1GrFeAvKZHcBAHH7Qp8sAWQpCPAs4uPwLheEyPCpV8J9fNR1mQa95maN0+GrCjxelSovweA+Zh5p+ksn6rhFMHkYx35LAgBtbzIvIIY3QJepBnAm4dd+GEiEmajat85BoLQF2GC/y+ZkWNQjkfRcKOEhzPOZLrSSUgTXQ9dTi6ADntYlrikWnUCSN+VyFCYaOBOmvC1beCUaPnscM9iU5PwGObTA== Received: from DU2PR04CA0035.eurprd04.prod.outlook.com (2603:10a6:10:234::10) by PA4PR03MB7120.eurprd03.prod.outlook.com (2603:10a6:102:e9::6) 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:30 +0000 Received: from DB8EUR05FT040.eop-eur05.prod.protection.outlook.com (2603:10a6:10:234:cafe::87) by DU2PR04CA0035.outlook.office365.com (2603:10a6:10:234::10) 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:30 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 20.160.56.87) 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.87 as permitted sender) receiver=protection.outlook.com; client-ip=20.160.56.87; helo=inpost-eu.tmcas.trendmicro.com; pr=C Received: from inpost-eu.tmcas.trendmicro.com (20.160.56.87) by DB8EUR05FT040.mail.protection.outlook.com (10.233.238.220) 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:30 +0000 Received: from outmta (unknown [192.168.82.135]) by inpost-eu.tmcas.trendmicro.com (Trend Micro CAS) with ESMTP id A8AFC2008008C; Mon, 31 Jul 2023 22:43:29 +0000 (UTC) Received: from EUR05-VI1-obe.outbound.protection.outlook.com (unknown [104.47.17.169]) by repre.tmcas.trendmicro.com (Trend Micro CAS) with ESMTPS id 60D3D2008006F; Mon, 31 Jul 2023 22:43:22 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=TpgbvsYtrHuf+/HXYUhrjhyXgCOrRsnySlZq1CFDUutjcG0kYgq+AIG+qtEEBIamaiStZ+RfYmYyHihrLwPVEjy5xbxOzh4s6w+/HiGhjRarGk4PqT7rDb3pO3E6wRmsdYlOQ/W0wg50qddeFwV6vWPuo1C4TsWbtHvGLi+dvW9sEU/0q031y4jwF6X1+cjr/aW3a9oA0shcIRnrFOG82jxzJ2gmvKr+J66nxxvnhGbu0MII6mx2vR5OY4y//tvq9RjhmcdK+roJdibhAGzapiC5nn1Xi+u3c6xQ0SJ/+FJfCUZrlia/AY6xHmQzFA4Lk2od6REsZ8KuRYetbpEHnQ== 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=SocaXedyTB5ZwupznaSNiKBpXJkUFDmiM7J0RxgwIGU=; b=X3GRtH6xEtQ7PyUCeEiqlTYv2g5N0i/M/S7kljz6IFhV05nq7WufNtQoB7Ryn6MCNpt/RKsNwy95TAxJS8kB5f1KF1yZnJS+2q34ljuDBIgeLifUdQqTbDl0EeG/hAuDhWfjteTPcL+SjJlCktug66CbRi9YmsxhyLmIL4bs0QZK0q7cUZGgwhFfRSdsSHeeXHhOrvPf45hh2o44JustZtRYdV4cxVXSIBJF9LvIkhsFG+4HZUXC0Nzwnh9m3145jqdORoMAJrrDDsAW5ZvtzguoLhqsV1XvhaKJbFJe3At9UdfiVuXC5KFi+Y0I0ia4mr/PL9jmcYCBqvahuI/M7A== 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=SocaXedyTB5ZwupznaSNiKBpXJkUFDmiM7J0RxgwIGU=; b=xL8vP32nhB2mg/cXCiTWXukXwA02PedAZwt8kDtORVU1CW4vcU1wQxIB4o8PMiWi93wDSg+9cNzZWeumCUb22CuqSsE0jX9JcD3KLyAmGH2HRBsTkw9pt+DU/H1GrFeAvKZHcBAHH7Qp8sAWQpCPAs4uPwLheEyPCpV8J9fNR1mQa95maN0+GrCjxelSovweA+Zh5p+ksn6rhFMHkYx35LAgBtbzIvIIY3QJepBnAm4dd+GEiEmajat85BoLQF2GC/y+ZkWNQjkfRcKOEhzPOZLrSSUgTXQ9dTi6ADntYlrikWnUCSN+VyFCYaOBOmvC1beCUaPnscM9iU5PwGObTA== 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:21 +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:21 +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 05/11] spl: Convert mmc to spl_load Date: Mon, 31 Jul 2023 18:42:57 -0400 Message-Id: <20230731224304.111081-6-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_|DB8EUR05FT040:EE_|PA4PR03MB7120:EE_ X-MS-Office365-Filtering-Correlation-Id: 9778d847-aede-4fd2-906b-08db92179005 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: +Jb5vtZjuT7/R6+FitQlcXszq3Lj5xX3hRS63gE6qLOFpdLKqU/6Hc+kTIqRfvSiizp2Jb+Qcs2YSlSpfU8N5g4LuyeAE/ViRJJJoJf8DbjmAobSv0ssBo2ipstP1Cv6+HENYL7s08Zb5ftCcTgZfNIELURqX2Dt16FsYCBVdlUaZBl7mKdBNwYSZ9oDX0vecSEkeUon6RdChv0Q1Pw8Z+oZNzvECJIx14E2jSljT3jND3h4baafkJkduYqYgPjqUwqp15iEuFJgLMrK+Uzy2lEP74CFdoFHYsk6N4Vh9i5NeQyjyCawxJZiIrRoZ/6Ga4t0b6UR9+Wpm5xqsMHijxSiiXx4sqJs1rdOUUySVy9mzkvk3vULp1gDkw+vNlDgR+4p61FOEx96WPH5cjcn86SwrQDYkB5Oq6DitprFYen1fT+Vm9zBpkFugSKQwvPSfN13DqbnSxoPfEqyTVQp9XaI5NYei+fxCcc1NKgBENVaW1OsPXnpXc7Iuu6O2Vup9UdmcTdAgyrmDs/224k7eaEtv3aMsFR+ejC2bKi31zFIbYjOdJz6jJi5sjuMGh4Xxn+IgfJIy3/6ux6JoTiZ9zb5gmcvlrg409tAGF6fvxQZG+HQl1a7hul+17AeAysd 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: DB8EUR05FT040.eop-eur05.prod.protection.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: a25b5eff-3c10-4a71-e5a3-08db92178aa3 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 2GJVgcF5JsMbjP+0NYFL4IBYWEb7qJUcWN7nuQurky+aWRqKhclFH1ioleAYwYVKye1wD+ZgOieF/Ca+E1xtSquqw3LTn/A+c5krI1e6RL1kchavVNQqYLrDJeifaohzGycq6MVOnq6otk5Li35mezYesDWnpFOEmypsrDOrMPcfdq2PCRWxtHHUU6fzox6ofGI/Pm52JTtQqGDVHvJv0NKO0ZKK+28U98jqfUttw3qCvuGccKCLrjz1gZ6gu5jP7SMlXPJcwTr/gmGh1F3L+Zam1N3buUOwBTelpPywna1LEkwlYG7llvltjhOa0xOw4wdKgEKSzbNRL3JOetSO6mEs9LQppfumPnS/umcL+PqdNnUGP5bsc9ubSBb7wPZyal89dCp9TxFgiKOJ/DJcchTNLm4JP38zX2eL8KVjxEkV+RpDCgaYvowKKQxnjLW03y0E3WBww2hl+7oGfqgJY4+4q61I79i/FecEDTypftJRV6RvkxKOevbLGeAS77Ki6xHEk/y5beXz8eISk7x3jE6FBEkJW6BbNZqt3L9/z1rxgpDKIyriz0t2GkCZTMf0u18SR9aS2aet5x0wOaDPZicxaOsW4TV2j77xR8gGySycW5t5JO03Z5eaBHvPj888jXmXLjtBvAmS4qLmiK5RSz7AHOCQhce6KS7E5upIXSOzDgmNLbAcvndjWqH/2JcZsPfDmPbU+SfeJgcv6WH0paKvjTK2Mcquye8Dl1Qj98TdRXpDo4U1saSidfVy+idBSqkc8gkodKOTcHfTlUMIKQ== X-Forefront-Antispam-Report: CIP:20.160.56.87; 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)(376002)(346002)(82310400008)(451199021)(36840700001)(46966006)(40470700004)(36756003)(478600001)(356005)(7596003)(82740400003)(7636003)(40480700001)(86362001)(6512007)(40460700003)(6486002)(6666004)(2616005)(186003)(336012)(107886003)(8676002)(1076003)(26005)(8936002)(6506007)(5660300002)(44832011)(70586007)(34070700002)(4326008)(2906002)(70206006)(54906003)(41300700001)(316002)(36860700001)(83380400001)(47076005); DIR:OUT; SFP:1101; X-OriginatorOrg: seco.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Jul 2023 22:43:30.0462 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 9778d847-aede-4fd2-906b-08db92179005 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.87]; Helo=[inpost-eu.tmcas.trendmicro.com] X-MS-Exchange-CrossTenant-AuthSource: DB8EUR05FT040.eop-eur05.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR03MB7120 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 --- Changes in v5: - Rework to load header in spl_load common/spl/spl_mmc.c | 91 ++++---------------------------------------- 1 file changed, 8 insertions(+), 83 deletions(-) diff --git a/common/spl/spl_mmc.c b/common/spl/spl_mmc.c index a665091b00..c926a42c0f 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) { @@ -82,47 +40,14 @@ int mmc_load_image_raw_sector(struct spl_image_info *spl_image, struct spl_boot_device *bootdev, struct mmc *mmc, unsigned long sector) { - unsigned long count; - struct legacy_img_hdr *header; - struct blk_desc *bd = mmc_get_blk_desc(mmc); - int ret = 0; - - header = spl_get_load_buffer(-sizeof(*header), bd->blksz); - - /* read image header to find the image size & load address */ - count = blk_dread(bd, sector, 1, header); - debug("hdr read sector %lx, count=%lu\n", sector, count); - if (count == 0) { - ret = -EIO; - 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); - } - -end: + int ret; + struct spl_load_info load = { + .dev = mmc, + .bl_len = mmc->read_bl_len, + .read = h_spl_load_read, + }; + + ret = spl_load(spl_image, bootdev, &load, 0, sector); if (ret) { #ifdef CONFIG_SPL_LIBCOMMON_SUPPORT puts("mmc_load_image_raw_sector: mmc block read error\n");