{"id":2197186,"url":"http://patchwork.ozlabs.org/api/1.0/patches/2197186/?format=json","project":{"id":18,"url":"http://patchwork.ozlabs.org/api/1.0/projects/18/?format=json","name":"U-Boot","link_name":"uboot","list_id":"u-boot.lists.denx.de","list_email":"u-boot@lists.denx.de","web_url":null,"scm_url":null,"webscm_url":null},"msgid":"<20260217103604.71029-2-hs@nabladev.com>","date":"2026-02-17T10:36:03","name":"[v3,1/2] fastboot: mmc: make boot partition offset configurable","commit_ref":null,"pull_url":null,"state":"accepted","archived":false,"hash":"5d83f9e6197b4bde1ffc8e41220cf105f20c60bf","submitter":{"id":91409,"url":"http://patchwork.ozlabs.org/api/1.0/people/91409/?format=json","name":"Heiko Schocher","email":"hs@nabladev.com"},"delegate":{"id":117687,"url":"http://patchwork.ozlabs.org/api/1.0/users/117687/?format=json","username":"mkorpershoek","first_name":"Mattijs","last_name":"Korpershoek","email":"mkorpershoek@baylibre.com"},"mbox":"http://patchwork.ozlabs.org/project/uboot/patch/20260217103604.71029-2-hs@nabladev.com/mbox/","series":[{"id":492408,"url":"http://patchwork.ozlabs.org/api/1.0/series/492408/?format=json","date":"2026-02-17T10:36:02","name":"fastboot: mmc: fix bootloader offset","version":3,"mbox":"http://patchwork.ozlabs.org/series/492408/mbox/"}],"check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/2197186/checks/","tags":{},"headers":{"Return-Path":"<u-boot-bounces@lists.denx.de>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":"patchwork-incoming@legolas.ozlabs.org","Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=nabladev.com header.i=@nabladev.com header.a=rsa-sha256\n header.s=dkim header.b=LmEuCH/O;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de\n (client-ip=85.214.62.61; helo=phobos.denx.de;\n envelope-from=u-boot-bounces@lists.denx.de; receiver=patchwork.ozlabs.org)","phobos.denx.de;\n dmarc=pass (p=reject dis=none) header.from=nabladev.com","phobos.denx.de;\n spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de","phobos.denx.de;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=nabladev.com header.i=@nabladev.com\n header.b=\"LmEuCH/O\";\n\tdkim-atps=neutral","phobos.denx.de; dmarc=pass (p=reject dis=none)\n header.from=nabladev.com","phobos.denx.de; spf=pass smtp.mailfrom=hs@nabladev.com"],"Received":["from phobos.denx.de (phobos.denx.de [85.214.62.61])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1) server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fFbfX6Ln9z1xpl\n\tfor <incoming@patchwork.ozlabs.org>; Tue, 17 Feb 2026 21:36:36 +1100 (AEDT)","from h2850616.stratoserver.net (localhost [IPv6:::1])\n\tby phobos.denx.de (Postfix) with ESMTP id 4D28983CB9;\n\tTue, 17 Feb 2026 11:36:24 +0100 (CET)","by phobos.denx.de (Postfix, from userid 109)\n id AA726802C1; Tue, 17 Feb 2026 11:36:23 +0100 (CET)","from mx.nabladev.com (mx.nabladev.com\n [IPv6:2a00:f820:417:0:178:251:229:89])\n (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits))\n (No client certificate requested)\n by phobos.denx.de (Postfix) with ESMTPS id 6702780325\n for <u-boot@lists.denx.de>; Tue, 17 Feb 2026 11:36:15 +0100 (CET)","from [127.0.0.1] (localhost [127.0.0.1]) by localhost (Mailerdaemon)\n with ESMTPSA id EA7391103B9; Tue, 17 Feb 2026 11:36:12 +0100 (CET)"],"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,\n DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_BLOCKED,\n SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.2","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=nabladev.com;\n s=dkim; t=1771324573; h=from:subject:date:message-id:to:cc:mime-version:\n content-transfer-encoding:in-reply-to:references;\n bh=GqHOKXN30a3wXsaOmgU2pTrR7ZUdCbLV5CP/F9pvtUM=;\n b=LmEuCH/O06T2sl3apGgPOeEPesSuweZD+kA47CT99kqr6dP1CQIZ9galGkocane6IdhuCE\n zKNDiMI79w/FECloTRIhMZ7k7EN9LlSWkAE90xJdPU9GnA5MAZL53fWvRskGg7aM5TTqvQ\n yXzwzX6JfEfSjO9tahbzOqbIjY5SUWVe94HRn4f0fa9QKbZEWh77EG+2raaL61PUFaWD/i\n SmmAiXTWq+FcTx9eAdvcYavJjVONlLidEEpR9VW2rFjoafG23LTxG2h/T+SjuBbE722AN9\n gia285QckHJVxzryt/4N94QutaQ+f4OIlRFDn6SJWIqeJxETVaD2IMQQkIJbcg==","From":"Heiko Schocher <hs@nabladev.com>","To":"U-Boot Mailing List <u-boot@lists.denx.de>","Cc":"Adrian Freihofer <adrian.freihofer@siemens.com>,\n Heiko Schocher <hs@nabladev.com>,\n Mattijs Korpershoek <mkorpershoek@kernel.org>,\n Dmitrii Merkurev <dimorinny@google.com>,\n Neil Armstrong <neil.armstrong@linaro.org>, Tom Rini <trini@konsulko.com>","Subject":"[PATCH v3 1/2] fastboot: mmc: make boot partition offset configurable","Date":"Tue, 17 Feb 2026 11:36:03 +0100","Message-Id":"<20260217103604.71029-2-hs@nabladev.com>","X-Mailer":"git-send-email 2.20.1","In-Reply-To":"<20260217103604.71029-1-hs@nabladev.com>","References":"<20260217103604.71029-1-hs@nabladev.com>","MIME-Version":"1.0","Content-Transfer-Encoding":"8bit","X-Last-TLS-Session-Version":"TLSv1.3","X-BeenThere":"u-boot@lists.denx.de","X-Mailman-Version":"2.1.39","Precedence":"list","List-Id":"U-Boot discussion <u-boot.lists.denx.de>","List-Unsubscribe":"<https://lists.denx.de/options/u-boot>,\n <mailto:u-boot-request@lists.denx.de?subject=unsubscribe>","List-Archive":"<https://lists.denx.de/pipermail/u-boot/>","List-Post":"<mailto:u-boot@lists.denx.de>","List-Help":"<mailto:u-boot-request@lists.denx.de?subject=help>","List-Subscribe":"<https://lists.denx.de/listinfo/u-boot>,\n <mailto:u-boot-request@lists.denx.de?subject=subscribe>","Errors-To":"u-boot-bounces@lists.denx.de","Sender":"\"U-Boot\" <u-boot-bounces@lists.denx.de>","X-Virus-Scanned":"clamav-milter 0.103.8 at phobos.denx.de","X-Virus-Status":"Clean"},"content":"From: Adrian Freihofer <adrian.freihofer@siemens.com>\n\ni.MX8QXP rev C.0 requires boot container stored at offset 0KB\nfor eMMC, while i.MX8QXP pre C.0 requires boot container stored\nat offset 32KB for eMMC.\n\nTo use one U-Boot binary to support different chip revisions,\nintroduce fb_mmc_get_boot_offset() to allow override the default\noffset when writing to eMMC boot partitions.\n\nThis enables support for devices with non-standard boot partition\nlayouts, such as those requiring an offset for correct bootloader\nplacement.\n\nSigned-off-by: Adrian Freihofer <adrian.freihofer@siemens.com>\nSigned-off-by: Heiko Schocher <hs@nabladev.com>\nReviewed-by: Mattijs Korpershoek <mkorpershoek@kernel.org>\n---\n\n(no changes since v2)\n\nChanges in v2:\n- added Reviewed-by from Mattijs\n- Used the commit message as Peng suggested (with a small\n  checkpatch fix:\n  WARNING: 'writting' may be misspelled - perhaps 'writing'?\n- rebased to mainline\n  b99da05e153 - (tag: v2026.04-rc2, origin/master, origin/HEAD) Prepare v2026.04-rc2\n\n drivers/fastboot/fb_block.c | 15 +++++++++++----\n 1 file changed, 11 insertions(+), 4 deletions(-)","diff":"diff --git a/drivers/fastboot/fb_block.c b/drivers/fastboot/fb_block.c\nindex 2a7e47992f8..51d1abb18c7 100644\n--- a/drivers/fastboot/fb_block.c\n+++ b/drivers/fastboot/fb_block.c\n@@ -28,6 +28,11 @@\n  */\n #define FASTBOOT_MAX_BLOCKS_WRITE 65536\n \n+__weak lbaint_t fb_mmc_get_boot_offset(void)\n+{\n+\treturn 0;\n+}\n+\n struct fb_block_sparse {\n \tstruct blk_desc\t*dev_desc;\n };\n@@ -160,7 +165,8 @@ void fastboot_block_raw_erase_disk(struct blk_desc *dev_desc, const char *disk_n\n \n \tdebug(\"Start Erasing %s...\\n\", disk_name);\n \n-\twritten = fb_block_write(dev_desc, 0, dev_desc->lba, NULL);\n+\twritten = fb_block_write(dev_desc, fb_mmc_get_boot_offset(),\n+\t\t\t\t dev_desc->lba, NULL);\n \tif (written != dev_desc->lba) {\n \t\tpr_err(\"Failed to erase %s\\n\", disk_name);\n \t\tfastboot_response(\"FAIL\", response, \"Failed to erase %s\", disk_name);\n@@ -211,7 +217,8 @@ void fastboot_block_erase(const char *part_name, char *response)\n \tif (fastboot_block_get_part_info(part_name, &dev_desc, &part_info, response) < 0)\n \t\treturn;\n \n-\tfastboot_block_raw_erase(dev_desc, &part_info, part_name, 0, response);\n+\tfastboot_block_raw_erase(dev_desc, &part_info, part_name,\n+\t\t\t\t fb_mmc_get_boot_offset(), response);\n }\n \n void fastboot_block_write_raw_disk(struct blk_desc *dev_desc, const char *disk_name,\n@@ -224,7 +231,7 @@ void fastboot_block_write_raw_disk(struct blk_desc *dev_desc, const char *disk_n\n \tblkcnt = ((download_bytes + (dev_desc->blksz - 1)) & ~(dev_desc->blksz - 1));\n \tblkcnt = lldiv(blkcnt, dev_desc->blksz);\n \n-\tif (blkcnt > dev_desc->lba) {\n+\tif ((blkcnt + fb_mmc_get_boot_offset()) > dev_desc->lba) {\n \t\tpr_err(\"too large for disk: '%s'\\n\", disk_name);\n \t\tfastboot_fail(\"too large for disk\", response);\n \t\treturn;\n@@ -232,7 +239,7 @@ void fastboot_block_write_raw_disk(struct blk_desc *dev_desc, const char *disk_n\n \n \tprintf(\"Flashing Raw Image\\n\");\n \n-\tblks = fb_block_write(dev_desc, 0, blkcnt, buffer);\n+\tblks = fb_block_write(dev_desc, fb_mmc_get_boot_offset(), blkcnt, buffer);\n \n \tif (blks != blkcnt) {\n \t\tpr_err(\"failed writing to %s\\n\", disk_name);\n","prefixes":["v3","1/2"]}