From patchwork Fri Apr 1 19:04:02 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sean Anderson X-Patchwork-Id: 1612369 X-Patchwork-Delegate: trini@ti.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: bilbo.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=Z0KUgLPf; dkim-atps=neutral Authentication-Results: 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=) 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 RSA-PSS (4096 bits)) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4KVV4J3FXFz9sGG for ; Sat, 2 Apr 2022 06:05:36 +1100 (AEDT) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 1AFBB84335; Fri, 1 Apr 2022 21:04: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="Z0KUgLPf"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 33D438432F; Fri, 1 Apr 2022 21:04:37 +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=-1.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FORGED_SPF_HELO,SPF_HELO_PASS, T_SCC_BODY_TEXT_LINE,T_SPF_TEMPERROR autolearn=no autolearn_force=no version=3.4.2 Received: from EUR02-VE1-obe.outbound.protection.outlook.com (mail-ve1eur02on0629.outbound.protection.outlook.com [IPv6:2a01:111:f400:fe06::629]) (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 31434842F1 for ; Fri, 1 Apr 2022 21:04:30 +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 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=W28BGQR7tq6Fge3tqHDyxb6+uVYKDs8I9AQiWLxEKaXLk2VYxJf951qGYrhySUn9hn5iCMwur2Bxl2rxTLZP0JGGKZUDiXre001yOEvHC79v60AWGaUYKset+fN9u0g9nMM0A2Z4P6gjCQFDYRUMphVIBblw0/iqlAnIEyxClBHPmUWtsNt43IsC/9WktjuyGi0MS1BNCBU0DLlnWxw5ecwyd00IRgSnc2nCMRyUVc3il8deE+nargx19hyaeY95SDZzSiuVlZhlXKisAn5yyNoMV4yGOF1chkU6KgAOyazlS+LPTPW4sL/0W71cWEZnMnKkLyiuG7RYbhdC3vUV/Q== 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=b95vatZPtk0+aqyjlaZN8WSk7+CDhwzdb4CI1as5KZQ=; b=ZDwN3+8toZBgMH4dyJJV+T4zHABf4k7dZCHz6Ia2u3Aw3rDOMc1T4PicIaUL5VRXxq8xV16TLlz23Q4pCkGTxfb2bxVYlqz4/1hvnUvMJxEiA9tQN/DDYk4un1MsDYoDGxkGvwWWig5iPEECog5bGbV5PYq3TxIqBhm6u2FIf2a7nusXtUPonVv8DXcl7fFZ2uwhJKRvHPxn3gfc8uh75MUNAlZ0JrAIVVS+p9+XE3Iw2HQ/W2j+lzPgXCv29bnlZUSj6dm/o0CHTja9XRs8vV+A4rWMlUhS5f4gMmQGwBC7eBPj3fOq7qNm6fZzwCm90ddvJw1KM9jHeLMeNtMJWw== 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=b95vatZPtk0+aqyjlaZN8WSk7+CDhwzdb4CI1as5KZQ=; b=Z0KUgLPfO9Ie0MAWJCTdoyNjQ2bxvB5U35el/H+D+amQ5DH63Rto/e8Pfu+bHo5H15AFA8MVp+3uOWfX0RuLx4R216n19YLzVFLf0mFN1VHD1iFwmlLpX1NBZEdQc/1Xt0jcAWccI1ilhjGz2FRcdLQCtEFtjy2HIcAi60qwF8c9SECi+00AJTvV5gRILSClo6VwUgkzLmZXC73Al/Pku4m7HVuVTiV79LkY/C8v8BcpAG8dzIQeyS32p6z2C/ux0LLKmUXVZ1BnJt77PHYm4ZF4jDlUr8hy47A8URUYQwJyn80ucxKpEmXqf/JacUYNV5KICTRwlwxTpGY0nEfkRg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=seco.com; Received: from DB7PR03MB4972.eurprd03.prod.outlook.com (2603:10a6:10:7d::22) by VI1PR03MB6463.eurprd03.prod.outlook.com (2603:10a6:800:193::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5123.21; Fri, 1 Apr 2022 19:04:25 +0000 Received: from DB7PR03MB4972.eurprd03.prod.outlook.com ([fe80::356c:789f:d20f:92bc]) by DB7PR03MB4972.eurprd03.prod.outlook.com ([fe80::356c:789f:d20f:92bc%7]) with mapi id 15.20.5123.025; Fri, 1 Apr 2022 19:04:25 +0000 From: Sean Anderson To: Simon Glass Cc: =?utf-8?q?Marek_Beh=C3=BAn?= , u-boot@lists.denx.de, Stefan Roese , Marek Vasut , =?utf-8?q?Pali_Roh?= =?utf-8?q?=C3=A1r?= , Sean Anderson Subject: [RFC PATCH 4/7] spl: Convert mmc to spl_load Date: Fri, 1 Apr 2022 15:04:02 -0400 Message-Id: <20220401190405.1932697-5-sean.anderson@seco.com> X-Mailer: git-send-email 2.35.1.1320.gc452695387.dirty In-Reply-To: <20220401190405.1932697-1-sean.anderson@seco.com> References: <20220401190405.1932697-1-sean.anderson@seco.com> X-ClientProxiedBy: MN2PR13CA0001.namprd13.prod.outlook.com (2603:10b6:208:160::14) To DB7PR03MB4972.eurprd03.prod.outlook.com (2603:10a6:10:7d::22) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 27d4cafd-ec5a-43b9-64bc-08da14127041 X-MS-TrafficTypeDiagnostic: VI1PR03MB6463:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: RXQI/hSj7x+TlMPXvAEp7XveJ4vlj3NotNza2gskI+5Xl3VzE7K+OSebwtQP6IgH2wksdmyiUyLKZQxGSWkn/kOXXpXTtNFd25NlMfumK6W0xNQzuCd5EmhpEcwxa0KCHNVP7nHXcgUUlK+JHev3p7Q7QvEFkYxG+2NOXeJPiJHV3JCUGHgHh5DpwFDHN630ArGDrAq6b3I5NZI9min+Vj2OIzy5JhM+vhmHgLgyepBvxwTw/9h0xNDW+KLkhekRML0nwBSrDTvaa83gUzdySsm00CxYvgGidTw+ifaDiRnPV5rmoDpaqg0Zl77CkUhpxr/fi5780trmr+7Gno/9CwnvhOl9yt74EsR9bm3B2hutHwAwHmZ7/vFyCixe0fvWS/ed6294nu8y2GCeZP+GkrsEuggWaRrtzZk6MlsTbb+bYdrdDmSqoBuWM88kHuf1e3bJ8gnmXANFad8ZPmTIpmdx8l5+a3tEOTf8IoWfUt7DLt29nerW+K1ZCZj9cRyD/HDT5dcd+bHnoC/tSZQh5yqinyh+O1YrSfCPlZN5heiWLhagUSLfygUPFrxhQeUkz+9ea7KdNpbB91N3W+euPAcVx6Qj3g5qiZiHJ8bMV/s4JqqUaDp1Y11dARLWftNe7MHEBdvOXhuinJ6YvfeiXTRDLxclyIyOcIEAPt+IN1cSrfOKmeTd7KL/PuDnfDyxg0PqYYMtw6RwR8rDrUrvoA== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DB7PR03MB4972.eurprd03.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230001)(366004)(54906003)(6486002)(6666004)(8676002)(316002)(66946007)(6506007)(6916009)(66556008)(38350700002)(86362001)(83380400001)(66476007)(508600001)(38100700002)(6512007)(8936002)(52116002)(2616005)(4326008)(186003)(26005)(107886003)(44832011)(1076003)(5660300002)(36756003)(2906002); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 4jIcktDGzwFnbRrqnfvAIvoFprV/swWBMR9vRxXTCmRXF2NwRfvCpksGxLtmiOx0j6FmV1DXE+s7nd0jWZ9Hz40ArSvpwElbIKzV/G/cEyhLsYBCRl4L6u4oBxqZEAXclsUNrGrEPkZb+jk3YaMKWFUAkjtmSBdVIsSrYV3T3650Eydt0Xf3zkOT/F2c3zbQk+PK7/SmcQ7wtO1H6z31/kaN4xZoCcOU3epbra7bxVPTqZh7SMUR4tALOCVRwS9ipU1lkKFIGuRZEoce4yMoqSErzCBBfhCt8WNdufLa3QF71UlY9mAPugT94aMMCYDkksKsklwPAK+Ie106raC167WWPw1I5Pn7i+qow1AzDAg8okEhhziFEIGo4w0CxaA+0+FWWRL9gMcu7UC5VDiLDqcwcZjYqgJXzj03JSfmUZy+vq4OrG5k9IPFePYEZfVhGo7ev5CDw5YuboZY9zt/I/AR8MHDPJdv+MbfLQbBgh4Ab5zNSvV+lUT9LzARRtmACWL0oINn9dhKMdObmpMoRYdj7GBMExI9M3WPuHTdgEb9+l1qd6DjEx/4CXRr80lEcaEbYQEHxKt5hO0nALMgTQeCN62vmz8Lja9jdKisAaUhGtZUH7X9U7+z4NtSf48ycDG/p89V8hA2lYmWOFqe4gI6BR076DWRgM5N9Ddi+aa2GREp5u6Puo5WW9RX+0ggshk0btMsE4NI8fYDaQorhaVNG8QepSyJXdq3C5er4WSXA12Ba9izKx7hNoBgY+A/DuSEGnULfH1SQPTO1keFvShoNNwPCdxRxn6wmlZx9tvM+1iZU8B3E4JBLAwqvUs3t9BlFUbSli2tAh0gilMnHXylJIV5R1A5iw9m/8EWiTYUDmV84ubpPQynymGbpwUpbB7HJI4AAo75QFz3fbPiHi5iz2IVevW+jxLkIjYFrR+hXjWHkCXNxwn2u0tm/1+gFiALMM5ehRaL7seLsZLnOPdFP7b1vMFKCzLY0ESgpdWtkUJRBoYl1pRAjwjMolFtkg/sbUuC+vaWqWmV1LD/zojqdNMIkkAbMTrrnEk5Y8mrQSKhkOx8km1xcXvOqH9TJZe8UMZL4B2U+/JQkmqPfUBGWNoSlYbrJl8vAGt6RhfIhJUVaEpX5ZjvOJGINJh8UtnjzLtmdOl8wCTWvwuBGPPIVimirKm4wYuUXKEd2UKuSNqKv89DClAGktZNA7rXgi9hodooiOQ/mLuxEyT0upa7iXnaf6lPsJy03BFSRxbBn40DDLr7414Ld7b6urnytHqOD/1QSV6TSskeCyUPmznGSCyyDEvP0GDeEiY+9n6fwSdKdEeeQr879nEz4i0UX48TwfI3fs/zVyqeMFydRwYfF/xhMzVrONrs1O9Is8OaLY4K4ZP3GaxfOJCxZuKvNubepzLNCnRqjOJwQqcWowhGFUDC5J4UGxGf496G8TclcxxcjIlowVD3yqgCMGP8Yn86ilKUN38xsr/+TtyqBB4SsKr88DVhEbFGtXmZXVZ4b0tVkJ8k6U8LhZ4+Y1/g6lxg1jTGJbs6VjRODwoyIrsqcdXcJMrRl1FbpAQH5ysarSD+QcOIHdCmZigfDJWSPaWybnkzrPP4nUifMUpM/ii2Ny9aJVNd7Cv6E6cWxmyrW9AnprBUi64jJyUVY3rTQ9cR8FcgpEwJ0ErTL3srreLLjAeEZ9eEflTQw5t9Nn6aBTMiqTqrs3RE53gKcEq/60efIRnH42KXX0Eqfy9/qq5nNMk3/wYahw7xCr/ZPQw= X-OriginatorOrg: seco.com X-MS-Exchange-CrossTenant-Network-Message-Id: 27d4cafd-ec5a-43b9-64bc-08da14127041 X-MS-Exchange-CrossTenant-AuthSource: DB7PR03MB4972.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Apr 2022 19:04:25.3522 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: bebe97c3-6438-442e-ade3-ff17aa50e733 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: xb8vtOE/xsM93KdhlDxZCs+rr2DxfcgZ8v9vhkguy7EpUcsIBcr1hnMNirx7V/vywHcl230OmePnbbmEi5KQwg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR03MB6463 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.5 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 --- 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 1c41d24ff4..113566166f 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 image_header *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 image_header *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