From patchwork Thu May 5 20:16:50 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sean Anderson X-Patchwork-Id: 1627247 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=dbG4kH7G; dkim-atps=neutral Authentication-Results: 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=) 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 RSA-PSS (2048 bits)) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4KvQ4G1FHmz9sBF for ; Fri, 6 May 2022 06:18:06 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 8658D84096; Thu, 5 May 2022 22:17: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=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="dbG4kH7G"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id E090E84088; Thu, 5 May 2022 22:17:22 +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-db3eur04on0625.outbound.protection.outlook.com [IPv6:2a01:111:f400:fe0c::625]) (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 BB38984073 for ; Thu, 5 May 2022 22:17:15 +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=lcpKrnHNFbbq0RjBVwru0j3i4qkSMq9pR6B4NUrlYYpQdqP8hZZMu64eFKcV6bF5Xaw+tv5jh+ufpnRUoRxa//vxuCoKUIEIp44WGsgC1rs8UWmYkIVKLq3/cDq84LAHFXohULS7xcrB90y9vG1N/rms4wormYk248nTtN6cZ5+gQuESanNE8cqLnP5tNC6LSGfR4QaBnnD0GyOGMoJ7VTm9faQAztqZrF2A6bsHULIf4jfiXAVoUMPSm8D15gZkGymrvdqFq44qTgxhqmQ8eae1PsX8FvEAa+MefukHxEdXkOroWg8od+r3P16jbGoXXNaLCfPUaJGZMYIdSKQxMA== 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=/qdyM8bddgNttceJw78/31ZHTo7r3on9oOsp+6Jft3s=; b=EhU7cUrspvnAcD+HnSLDiN/HVMYYqbfEAbMo1Bge5j0K7oAiTmpjl2d/PW85R12pb2o9DSAGmPg+RlKJ0QTiaEcWc2ZiEBJhZiFbfwbk2946hZN+y7xJSKz9uwk0h5PiGxD3MzSVNBE9QRNNkbABoyc6sDrOi2hUp07ToipAU1gYIH7qr2MKwCsX06jNGq0f5I/clKyjlWM++mLpe0aXBp4+J09NMsSVdLBvGSUC2Ixkcqx1uiomKYGeTB5GspjMPcxPPCVh4zna3Pb6/HSw1R3qe4BXJhkvcWuH7Pw0K9hn/o5HUr4ty9fUXLEheCCuVz5u5bXdaU0l8NWCEa1rnA== 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=/qdyM8bddgNttceJw78/31ZHTo7r3on9oOsp+6Jft3s=; b=dbG4kH7Grxp8g5cRezl/g6fhwzc8w1Y3IiDeleP4NTRyvVzGD4rkg04lRM1Pl+Ska6FZftvz/2SzxO1aRErn8KbD3/QQQIetha+AoAKPbtRf3dDfRk94VBz/AFMuSFf+oT0VUKwVFdAcR+Zwu20d2SnXCPKN9Hr5neqShgsKETcSJRwDwrFUkxwc9UeotqtwbkgUJDidaWqnEbFusOJlTA4Flo/TksNd7OvRcVmJQGl1hL9r/+nSTOndYi9qIhOG/aQFbIvXhMV88Fwhw1GUJOIuho1nB9NmtJ8m1uM2htEraVtBMakPD9H8NLe+is7RD9Nlm5B6NeatW+owR1Y3rQ== 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 DB8PR03MB5676.eurprd03.prod.outlook.com (2603:10a6:10:10b::30) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5206.25; Thu, 5 May 2022 20:17:12 +0000 Received: from DB7PR03MB4972.eurprd03.prod.outlook.com ([fe80::a9d3:8abd:3f5e:a0c]) by DB7PR03MB4972.eurprd03.prod.outlook.com ([fe80::a9d3:8abd:3f5e:a0c%5]) with mapi id 15.20.5206.027; Thu, 5 May 2022 20:17:12 +0000 From: Sean Anderson To: Tom Rini , u-boot@lists.denx.de Cc: Stefan Roese , Marek Vasut , Simon Glass , =?utf-8?q?Pali_Roh=C3=A1r?= , =?utf-8?q?Marek_Beh=C3=BAn?= , Sean Anderson Subject: [PATCH v3 4/9] spl: Convert mmc to spl_load Date: Thu, 5 May 2022 16:16:50 -0400 Message-Id: <20220505201655.645692-5-sean.anderson@seco.com> X-Mailer: git-send-email 2.35.1.1320.gc452695387.dirty In-Reply-To: <20220505201655.645692-1-sean.anderson@seco.com> References: <20220505201655.645692-1-sean.anderson@seco.com> X-ClientProxiedBy: MN2PR20CA0047.namprd20.prod.outlook.com (2603:10b6:208:235::16) 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: 0e840a64-472b-47f3-79d8-08da2ed43d45 X-MS-TrafficTypeDiagnostic: DB8PR03MB5676: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: 4bkgqXSG/iuEhnWf8mvGjmOhm6QSwk+AeVS3uhvv2w5ht9oC+atkknrqoIxOmcwT/1mnWVJCKPf6S4RZciGulEo53/FjsiESnPNzM5BPs0cmccjejdJV0M3++iJErsjg3LNAM/7uPGuA9zIBJ9tFtspnRjdsytMv9aPFsocfEC+Z6BVP+J5b2xWbvG/OG4xAJD57NJRuOBSsRo0Kb4MU8gyzn4+HRmKm7v23SvPG1oN7AGoMdKavKnwZPLGZxr7tFPWCFsUBrqhyWlLLfAxuyx/eP4ypI1tkbpYE3w902Wn3sjrSR3vug3+/e7nxiKMdzK7x3Eh6i5CBggBy9rl4QE4Xauq9cCqluinruIp7DKvBdKwz49IMLkZIL3Zmqo9BTP3694xtBd7pGi+DpGaHAhdgzCxWeRNDFsqnuMkUoRIbGO34LDDEp1klzpVVT5XedeVmxgVnn7GoyA/AoZuRDEh4SdAvZ+fLcAhxw8ls6oVlvMrusUi4IWKFpIy/SLQSUWPY3sZIOatAvWa1+x9WqCmQ/SCEu1daWllLAcNZcJxLOI6U62c673qaCFOslkWhGaJXtuYwUHyXEnJuoxaF2RkYDRaTY6gMjMDTAH45V1j+pMj+CnzWxudRh+An1zzac37Zz67NOQUY3SqlyZw/tB/tK5yVWiAIxwQPlCF+Y4sQx8uxo/Nn1BIXZkShFFP+CoTyx2/rGlnfOOzcVGinig== 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)(86362001)(1076003)(4326008)(6512007)(54906003)(26005)(186003)(2616005)(44832011)(8676002)(83380400001)(66946007)(107886003)(66556008)(66476007)(316002)(5660300002)(38350700002)(36756003)(6486002)(38100700002)(6506007)(8936002)(508600001)(2906002)(52116002)(6666004); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: CH4VFWQSrjPBUEtRjbClGQCSWcwE9g2S9qpwQvXKCSup/GnxHmrL3pwyFVqIMSbVQ1gHmQjKM2TyjdHLwlgFZ0Fbhmp7ZGy+y4C888vfutd8+yKieafgn6PwFz0hp4KHECfibp/C+VZpkQ+YFNSImiFuA02cQBtYdBD46ewLIg6e87ta8omnZEJ1jDe9viy0frDsuIWR86gMlRzRkzLlQMvXHcSy8/LdCLNTRxICviJgjvOil2uiiv79U7liqzGswHJUDJ8Sm40E3d+7FbeLqWxR+7raA/qZRqDoiWEIyC0Xe+bnUJva8e+Th4NjM0TZNbc6L3Cq8i8CWEdePYDXUuhui79jiG0joMjia+l26kCJhtrUFlpT0aBqyd5qVCOUiFeLRnDdZYk8TWU5QJYxNrccccBnBMbZ2N0msHDMh0xB7dCIUPl2LVkQsNd9suylJB+nPlmiK2WMJdRGLprVWqNCe5bt/ZCVyUDqbxMxIFagFm49cwEgtBZGBe/mRhph9gCzXGqO08GOJB5fnHLe6bKFbI5h5vSwR816ug6oK19fN4mUd+SWWQou3cMiIIKViH5NWyWgK37OxOgxFm/iMWfTyIOoFG5q9yUdFFc22PJQw5iEKWyL7hja4pV+llCB1p50/rSPAlW7KRUIT80ihf7uIFJxVwNPSqDVI8c4xDZLWe1SoB/kuQlAEhrpTZDYebI3nWix9NrKuklfFOVm5mnqypJLVng9kckYt2Kr1gNKG+qomYqM2yJ7nsYXbCurpARwoEZBkfaC1i4ElFilJGSdsCsgphUBH+tHAlf5SGkIQryuj78kN5rDXy60pB+ZKENWt2UCJAuZy8rHAgktcPvZp+0/y1srlSgayMLPalzVD40o/USnScIdAa1G6/v/5Y4aAUs/LvzUmPtaD2QNU2ExgPfUIJrjeEleO6BpKLYZk5hRg9nEDBagO1NKZTedJwve9QHenoTGo42yD9VI83nFtvqmE8oSoV8fDmF8ZKrzztLpMmT16+kRCsnwgAC4feGGaI9YSBeWizCQ479s8Y9HgUGFKE+0DmcR1bAFafDIZy7WlZuTzbBsCDHigy0IgY0aN6GN7IWkEHcsUHzo2cM0q6XeLNAygZ8cIVmTxVLg4T305yp3/tyFFBNdbXRvGn+JdkPYvJz1KZ6QlBM+pUo7myyJoBI+1lWSY753F5au6uEThw+RAtuqQIAzcPcPmp3dQOxVYpbWqncO1nPxakN5NCc0VKLFqEAMyAESNm0VK5zpbkko10mLq3A6NZ903vLAZemGnXiU7EmC4PammItvYd0TKQJ4QtcOyyGzXZGmeTnOU4xrbnsWgWiZ33hNuNvRE9p3m+MLAOejesLtPrF/EowsUEaYl5+jSTUTCDK6hHlmjudomcUQLyaPjuGNI60NazC7nKf+ajVd/AQ2t0fwhQTYFXSe5nc6kBdD0B3FiIIsJzxVN8wkpoIH7W9QiDSvENhtPDumG9VrnG7kARzjRuXAEbqDyqr8erq/ZaOwErHF5hSCYShwfYP41PBeWGIh/dWuRolB7xPx3dZqNxX/KHz+lgkO9KStTUJNhJt9EZYWZh+BH7irdLV3lnWC/owdZR23ruiIqRvA+IyDkSjOwVGUFsERg7hJJ7cZMLN+SjK4UsSMQV7IfRbkP0Simh4u79eyPGCcyc/azNt5nYsZiE+9Tz+z/+Hx+ur7xH0qugcMATaZImjAkBPInWEdnoscrhBBcU2pIMFrVbmcIi50uFCeA2Lv2UQXZ27yK+E= X-OriginatorOrg: seco.com X-MS-Exchange-CrossTenant-Network-Message-Id: 0e840a64-472b-47f3-79d8-08da2ed43d45 X-MS-Exchange-CrossTenant-AuthSource: DB7PR03MB4972.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 May 2022 20:17:12.3660 (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: OI8fLyBVGCQNpDyz35ggHypAOpPVvgvVrm6UUmEyHS9va3E1gDFe+unG4p9JTHfU64xIqeLNGChP9OildWpYsA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB8PR03MB5676 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 Tested-by: Tom Rini --- (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 6116a68371..93a28cdaa9 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