public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
From: Peter Robinson <pbrobinson@gmail.com>
To: git-commits@fedoraproject.org
Subject: [rpms/uboot-tools] rawhide: 2026.10 RC2
Date: Wed, 12 Aug 2026 13:21:57 GMT	[thread overview]
Message-ID: <178654091740.1.10974419829503082763.rpms-uboot-tools-8f57e9bff641@fedoraproject.org> (raw)

A new commit has been pushed.

Repo   : rpms/uboot-tools
Branch : rawhide
Commit : 8f57e9bff641f4fa3d12d374fc4e44c61b51ef3f
Author : Peter Robinson <pbrobinson@gmail.com>
Date   : 2026-08-12T14:21:44+01:00
Stats  : +263/-336 in 4 file(s)
URL    : https://src.fedoraproject.org/rpms/uboot-tools/c/8f57e9bff641f4fa3d12d374fc4e44c61b51ef3f?branch=rawhide

Log:
2026.10 RC2

---
diff --git a/Fix-NVMe-not-only-on-Raspberry-Pi-5.patch b/Fix-NVMe-not-only-on-Raspberry-Pi-5.patch
index 62f87ed..a52ce84 100644
--- a/Fix-NVMe-not-only-on-Raspberry-Pi-5.patch
+++ b/Fix-NVMe-not-only-on-Raspberry-Pi-5.patch
@@ -291,339 +291,6 @@ index 67f33904943..858ed5410e2 100644
  }
  DM_TEST(dm_test_phys_to_bus, UTF_SCAN_PDATA | UTF_SCAN_FDT);
 
-From patchwork Mon Jul  6 17:21:52 2026
-Content-Type: text/plain; charset="utf-8"
-MIME-Version: 1.0
-Content-Transfer-Encoding: 7bit
-X-Patchwork-Submitter: Torsten Duwe <duwe@lst.de>
-X-Patchwork-Id: 2265606
-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;
- 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=patchwork.ozlabs.org)
-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 (secp384r1) server-digest SHA384)
-	(No client certificate requested)
-	by legolas.ozlabs.org (Postfix) with ESMTPS id 4gvB4H70Bdz1xqc
-	for <incoming@patchwork.ozlabs.org>; Tue, 07 Jul 2026 03:22:07 +1000 (AEST)
-Received: from h2850616.stratoserver.net (localhost [IPv6:::1])
-	by phobos.denx.de (Postfix) with ESMTP id 00AF0849BA;
-	Mon,  6 Jul 2026 19:21:57 +0200 (CEST)
-Authentication-Results: phobos.denx.de;
- dmarc=fail (p=none dis=none) header.from=lst.de
-Authentication-Results: phobos.denx.de;
- spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de
-Received: by phobos.denx.de (Postfix, from userid 109)
- id 25F8F849BA; Mon,  6 Jul 2026 19:21:56 +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.9 required=5.0 tests=BAYES_00,
- RCVD_IN_DNSWL_BLOCKED,SPF_HELO_NONE,SPF_PASS autolearn=ham
- autolearn_force=no version=3.4.2
-Received: from verein.lst.de (verein.lst.de [213.95.11.211])
- (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 06F20846B4
- for <u-boot@lists.denx.de>; Mon,  6 Jul 2026 19:21:54 +0200 (CEST)
-Authentication-Results: phobos.denx.de;
- dmarc=fail (p=none dis=none) header.from=lst.de
-Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=duwe@lst.de
-Received: by verein.lst.de (Postfix, from userid 2005)
- id 5257168BFE; Mon,  6 Jul 2026 19:21:52 +0200 (CEST)
-In-Reply-To: <20260706172028.C148E68BEB@verein.lst.de>
-References: <20260706172028.C148E68BEB@verein.lst.de>
-Subject: [PATCH v2 3/4] nvme: Fix missing address translation for PCIe inbound
- access
-To: Neil Armstrong <neil.armstrong@linaro.org>,
- Andrew Goodbody <andrew.goodbody@linaro.org>, Bin Meng <bmeng.cn@gmail.com>,
- Simon Glass <sjg@chromium.org>
-Cc: Tom Rini <trini@konsulko.com>, Matthias Brugger <mbrugger@suse.com>,
- Peter Robinson <pbrobinson@gmail.com>,
- Mattijs Korpershoek <mkorpershoek@kernel.org>,
- Marek Vasut <marek.vasut+renesas@mailbox.org>,
- Heiko Schocher <hs@nabladev.com>, Svyatoslav Ryhel <clamor95@gmail.com>,
- "Lucien.Jheng" <lucienzx159@gmail.com>, Rasmus Villemoes <ravi@prevas.dk>,
- Martin Schwan <m.schwan@phytec.de>,
- "Markus Schneider-Pargmann (TI.com)" <msp@baylibre.com>,
- Prashant Kamble <prashant.kamble223@gmail.com>,
- Denis Mukhin <dmukhin@ford.com>, Sughosh Ganu <sughosh.ganu@arm.com>,
- u-boot@lists.denx.de
-Message-Id: <20260706172152.5257168BFE@verein.lst.de>
-Date: Mon,  6 Jul 2026 19:21:52 +0200 (CEST)
-From: duwe@lst.de (Torsten Duwe)
-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>,
- <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>,
- <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
-
-From: Torsten Duwe <duwe@suse.de>
-
-U-Boot currently does not account for PCIe bridges with a non-zero
-inbound access offset when talking NVMe, it only works on platforms
-where this offset happens to be zero.
-
-This patch enhances the NVMe driver with the ability to also handle
-these cases. It also removes the unused function nvme_get_features().
-
-Signed-off-by: Torsten Duwe <duwe@suse.de>
-Reviewed-by: Peter Robinson <pbrobinson@gmail.com>
-Tested-by: Peter Robinson <pbrobinson@gmail.com>
----
-I tried to consistently use uintptr_t when doing arithmetic on pointers
-and dma_addr_t to hold, well, DMA addresses ;)
-
-nvme_get_features mentions it's unused; so far it causes fruitless
-maintenance work and causes dead extra bytes in das U-Boot binary.
-It hasn't been neccessary for 9 years; one can revive it from git
-once needed.
-
----
- drivers/nvme/nvme.c | 71 +++++++++++++++++----------------------------
- drivers/nvme/nvme.h |  3 ++
- 2 files changed, 29 insertions(+), 45 deletions(-)
-
-diff --git a/drivers/nvme/nvme.c b/drivers/nvme/nvme.c
-index 147a104149e..54284c0242b 100644
---- a/drivers/nvme/nvme.c
-+++ b/drivers/nvme/nvme.c
-@@ -8,10 +8,10 @@
- #include <bootdev.h>
- #include <cpu_func.h>
- #include <dm.h>
--#include <errno.h>
- #include <log.h>
- #include <malloc.h>
- #include <memalign.h>
-+#include <phys2bus.h>
- #include <time.h>
- #include <dm/device-internal.h>
- #include <linux/compat.h>
-@@ -101,6 +101,8 @@ static int nvme_setup_prps(struct nvme_dev *dev, u64 *prp2,
- 			printf("Error: malloc prp_pool fail\n");
- 			return -ENOMEM;
- 		}
-+		dev->prp_pool_dma = dev_phys_to_bus(dev->udev,
-+						    (uintptr_t)dev->prp_pool);
- 		dev->prp_entry_num = num_pages * (prps_per_page - 1) + 1;
- 	}
- 
-@@ -108,8 +110,10 @@ static int nvme_setup_prps(struct nvme_dev *dev, u64 *prp2,
- 	i = 0;
- 	while (nprps) {
- 		if ((i == (prps_per_page - 1)) && nprps > 1) {
--			*(prp_pool + i) = cpu_to_le64((ulong)prp_pool +
--					page_size);
-+			dma_addr_t prp_pool_dma =
-+			    dev_phys_to_bus(dev->udev, (uintptr_t)prp_pool);
-+			*(prp_pool + i) = cpu_to_le64(prp_pool_dma +
-+								page_size);
- 			i = 0;
- 			prp_pool = (u64 *)((uintptr_t)prp_pool + page_size);
- 		}
-@@ -117,7 +121,7 @@ static int nvme_setup_prps(struct nvme_dev *dev, u64 *prp2,
- 		dma_addr += page_size;
- 		nprps--;
- 	}
--	*prp2 = (ulong)dev->prp_pool;
-+	*prp2 = dev->prp_pool_dma;
- 
- 	flush_dcache_range((ulong)dev->prp_pool, (ulong)dev->prp_pool +
- 			   num_pages * page_size);
-@@ -258,11 +262,15 @@ static struct nvme_queue *nvme_alloc_queue(struct nvme_dev *dev,
- 	nvmeq->cqes = (void *)memalign(4096, NVME_CQ_ALLOCATION);
- 	if (!nvmeq->cqes)
- 		goto free_nvmeq;
-+	nvmeq->cq_dma_addr = dev_phys_to_bus(dev->udev,
-+					     (uintptr_t)nvmeq->cqes);
- 	memset((void *)nvmeq->cqes, 0, NVME_CQ_SIZE(depth));
- 
- 	nvmeq->sq_cmds = (void *)memalign(4096, NVME_SQ_SIZE(depth));
- 	if (!nvmeq->sq_cmds)
- 		goto free_queue;
-+	nvmeq->sq_dma_addr = dev_phys_to_bus(dev->udev,
-+					     (uintptr_t)nvmeq->sq_cmds);
- 	memset((void *)nvmeq->sq_cmds, 0, NVME_SQ_SIZE(depth));
- 
- 	nvmeq->dev = dev;
-@@ -410,8 +416,8 @@ static int nvme_configure_admin_queue(struct nvme_dev *dev)
- 	dev->ctrl_config |= NVME_CC_IOSQES | NVME_CC_IOCQES;
- 
- 	writel(aqa, &dev->bar->aqa);
--	nvme_writeq((ulong)nvmeq->sq_cmds, &dev->bar->asq);
--	nvme_writeq((ulong)nvmeq->cqes, &dev->bar->acq);
-+	nvme_writeq(nvmeq->sq_dma_addr, &dev->bar->asq);
-+	nvme_writeq(nvmeq->cq_dma_addr, &dev->bar->acq);
- 
- 	result = nvme_enable_ctrl(dev);
- 	if (result)
-@@ -437,7 +443,7 @@ static int nvme_alloc_cq(struct nvme_dev *dev, u16 qid,
- 
- 	memset(&c, 0, sizeof(c));
- 	c.create_cq.opcode = nvme_admin_create_cq;
--	c.create_cq.prp1 = cpu_to_le64((ulong)nvmeq->cqes);
-+	c.create_cq.prp1 = cpu_to_le64(nvmeq->cq_dma_addr);
- 	c.create_cq.cqid = cpu_to_le16(qid);
- 	c.create_cq.qsize = cpu_to_le16(nvmeq->q_depth - 1);
- 	c.create_cq.cq_flags = cpu_to_le16(flags);
-@@ -454,7 +460,7 @@ static int nvme_alloc_sq(struct nvme_dev *dev, u16 qid,
- 
- 	memset(&c, 0, sizeof(c));
- 	c.create_sq.opcode = nvme_admin_create_sq;
--	c.create_sq.prp1 = cpu_to_le64((ulong)nvmeq->sq_cmds);
-+	c.create_sq.prp1 = cpu_to_le64(nvmeq->sq_dma_addr);
- 	c.create_sq.sqid = cpu_to_le16(qid);
- 	c.create_sq.qsize = cpu_to_le16(nvmeq->q_depth - 1);
- 	c.create_sq.sq_flags = cpu_to_le16(flags);
-@@ -464,13 +470,13 @@ static int nvme_alloc_sq(struct nvme_dev *dev, u16 qid,
- }
- 
- int nvme_identify(struct nvme_dev *dev, unsigned nsid,
--		  unsigned cns, dma_addr_t dma_addr)
-+		  unsigned cns, dma_addr_t cpu_addr)
- {
- 	struct nvme_command c;
- 	u32 page_size = dev->page_size;
-+	dma_addr_t dma_addr = dev_phys_to_bus(dev->udev, cpu_addr);
- 	int offset = dma_addr & (page_size - 1);
- 	int length = sizeof(struct nvme_id_ctrl);
--	dma_addr_t orig_dma_addr = dma_addr;
- 	int ret;
- 
- 	memset(&c, 0, sizeof(c));
-@@ -488,49 +494,22 @@ int nvme_identify(struct nvme_dev *dev, unsigned nsid,
- 
- 	c.identify.cns = cpu_to_le32(cns);
- 
--	nvme_invalidate_cache_aligned((uintptr_t)orig_dma_addr,
-+	nvme_invalidate_cache_aligned((uintptr_t)cpu_addr,
- 				      sizeof(struct nvme_id_ctrl));
- 
- 	ret = nvme_submit_admin_cmd(dev, &c, NULL);
- 	if (!ret)
--		nvme_invalidate_cache_aligned((uintptr_t)orig_dma_addr,
-+		nvme_invalidate_cache_aligned((uintptr_t)cpu_addr,
- 					      sizeof(struct nvme_id_ctrl));
- 
- 	return ret;
- }
- 
--int nvme_get_features(struct nvme_dev *dev, unsigned fid, unsigned nsid,
--		      dma_addr_t dma_addr, u32 *result)
--{
--	struct nvme_command c;
--	int ret;
--
--	memset(&c, 0, sizeof(c));
--	c.features.opcode = nvme_admin_get_features;
--	c.features.nsid = cpu_to_le32(nsid);
--	c.features.prp1 = cpu_to_le64(dma_addr);
--	c.features.fid = cpu_to_le32(fid);
--
--	ret = nvme_submit_admin_cmd(dev, &c, result);
--
--	/*
--	 * TODO: Add some cache invalidation when a DMA buffer is involved
--	 * in the request, here and before the command gets submitted. The
--	 * buffer size varies by feature, also some features use a different
--	 * field in the command packet to hold the buffer address.
--	 * Section 5.21.1 (Set Features command) in the NVMe specification
--	 * details the buffer requirements for each feature.
--	 *
--	 * At the moment there is no user of this function.
--	 */
--
--	return ret;
--}
--
- int nvme_set_features(struct nvme_dev *dev, unsigned fid, unsigned dword11,
--		      dma_addr_t dma_addr, u32 *result)
-+		      dma_addr_t cpu_addr, u32 *result)
- {
- 	struct nvme_command c;
-+	dma_addr_t dma_addr = dev_phys_to_bus(dev->udev, cpu_addr);
- 
- 	memset(&c, 0, sizeof(c));
- 	c.features.opcode = nvme_admin_set_features;
-@@ -769,7 +748,7 @@ static ulong nvme_blk_rw(struct udevice *udev, lbaint_t blknr,
- 	u64 prp2;
- 	u64 total_len = blkcnt << desc->log2blksz;
- 	u64 temp_len = total_len;
--	uintptr_t temp_buffer = (uintptr_t)buffer;
-+	uintptr_t dma_addr = dev_phys_to_bus(udev, (uintptr_t)buffer);
- 
- 	u64 slba = blknr;
- 	u16 lbas = 1 << (dev->max_transfer_shift - ns->lba_shift);
-@@ -797,19 +776,19 @@ static ulong nvme_blk_rw(struct udevice *udev, lbaint_t blknr,
- 		}
- 
- 		if (nvme_setup_prps(dev, &prp2,
--				    lbas << ns->lba_shift, temp_buffer))
-+				    lbas << ns->lba_shift, dma_addr))
- 			return -EIO;
- 		c.rw.slba = cpu_to_le64(slba);
- 		slba += lbas;
- 		c.rw.length = cpu_to_le16(lbas - 1);
--		c.rw.prp1 = cpu_to_le64(temp_buffer);
-+		c.rw.prp1 = cpu_to_le64(dma_addr);
- 		c.rw.prp2 = cpu_to_le64(prp2);
- 		status = nvme_submit_sync_cmd(dev->queues[NVME_IO_Q],
- 				&c, NULL, IO_TIMEOUT);
- 		if (status)
- 			break;
- 		temp_len -= (u32)lbas << ns->lba_shift;
--		temp_buffer += lbas << ns->lba_shift;
-+		dma_addr += lbas << ns->lba_shift;
- 	}
- 
- 	if (read)
-@@ -884,6 +863,8 @@ int nvme_init(struct udevice *udev)
- 		printf("Error: %s: Out of memory!\n", udev->name);
- 		goto free_queue;
- 	}
-+
-+	ndev->prp_pool_dma = dev_phys_to_bus(udev, (uintptr_t)ndev->prp_pool);
- 	ndev->prp_entry_num = MAX_PRP_POOL >> 3;
- 
- 	ret = nvme_setup_io_queues(ndev);
-diff --git a/drivers/nvme/nvme.h b/drivers/nvme/nvme.h
-index bc1d612dde4..7c6ed4d9b55 100644
---- a/drivers/nvme/nvme.h
-+++ b/drivers/nvme/nvme.h
-@@ -619,6 +619,7 @@ struct nvme_dev {
- 	u32 page_size;
- 	u8 vwc;
- 	u64 *prp_pool;
-+	uintptr_t prp_pool_dma;
- 	u32 prp_entry_num;
- 	u32 nn;
- };
-@@ -637,7 +638,9 @@ enum nvme_queue_id {
- struct nvme_queue {
- 	struct nvme_dev *dev;
- 	struct nvme_command *sq_cmds;
-+	dma_addr_t sq_dma_addr;
- 	struct nvme_completion *cqes;
-+	dma_addr_t cq_dma_addr;
- 	u32 __iomem *q_db;
- 	u16 q_depth;
- 	s16 cq_vector;
-
 From patchwork Mon Jul  6 17:21:54 2026
 Content-Type: text/plain; charset="utf-8"
 MIME-Version: 1.0

diff --git a/rpi-copy-chosen-bootloader-partition-and-set-boot_partition.patch b/rpi-copy-chosen-bootloader-partition-and-set-boot_partition.patch
new file mode 100644
index 0000000..6d54fa7
--- /dev/null
+++ b/rpi-copy-chosen-bootloader-partition-and-set-boot_partition.patch
@@ -0,0 +1,256 @@
+From patchwork Tue Aug  4 13:39:15 2026
+Content-Type: text/plain; charset="utf-8"
+MIME-Version: 1.0
+Content-Transfer-Encoding: 7bit
+X-Patchwork-Submitter: Gregor Herburger <gregor.herburger@linutronix.de>
+X-Patchwork-Id: 2280865
+X-Patchwork-Delegate: pbrobinson@gmail.com
+Return-Path: <u-boot-bounces@lists.u-boot-project.org>
+X-Original-To: incoming@patchwork.ozlabs.org
+Delivered-To: patchwork-incoming@legolas.ozlabs.org
+Authentication-Results: legolas.ozlabs.org;
+	dkim=fail reason="signature verification failed" (2048-bit key;
+ unprotected) header.d=lists.u-boot-project.org
+ header.i=@lists.u-boot-project.org header.a=rsa-sha256 header.s=default
+ header.b=DFFhfbAr;
+	dkim-atps=neutral
+Authentication-Results: legolas.ozlabs.org;
+ spf=pass (sender SPF authorized) smtp.mailfrom=lists.u-boot-project.org
+ (client-ip=2605:bc80:3010::136; helo=smtp3.osuosl.org;
+ envelope-from=u-boot-bounces@lists.u-boot-project.org;
+ receiver=patchwork.ozlabs.org)
+Received: from smtp3.osuosl.org (smtp3.osuosl.org [IPv6:2605:bc80:3010::136])
+	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
+	 key-exchange x25519 server-signature ECDSA (secp384r1) server-digest SHA384)
+	(No client certificate requested)
+	by legolas.ozlabs.org (Postfix) with ESMTPS id 4hDvm8025rz1xqD
+	for <incoming@patchwork.ozlabs.org>; Tue, 04 Aug 2026 23:39:35 +1000 (AEST)
+Received: from localhost (localhost [127.0.0.1])
+	by smtp3.osuosl.org (Postfix) with ESMTP id 2536960600;
+	Tue,  4 Aug 2026 13:39:34 +0000 (UTC)
+X-Virus-Scanned: amavis at osuosl.org
+Received: from smtp3.osuosl.org ([127.0.0.1])
+ by localhost (smtp3.osuosl.org [127.0.0.1]) (amavis, port 10024) with ESMTP
+ id T9Kb3BtsvOX4; Tue,  4 Aug 2026 13:39:33 +0000 (UTC)
+X-Comment: SPF check N/A for local connections - client-ip=140.211.166.142;
+ helo=lists1.osuosl.org;
+ envelope-from=u-boot-bounces@lists.u-boot-project.org; receiver=<UNKNOWN>
+DKIM-Filter: OpenDKIM Filter v2.11.0 smtp3.osuosl.org 4350560615
+DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
+	d=lists.u-boot-project.org ; s=default; t=1785850773;
+	bh=Tj3LONeiWXn0Cn5KPSYhoff9avwde4nWUGEguAWdLbE=;
+	h=From:Date:Subject:To:Cc:List-Id:List-Unsubscribe:List-Archive:
+	 List-Post:List-Help:List-Subscribe:From;
+	b=DFFhfbArDuHrxJEuZryw3QEVVVcavwAril7tcxulQVs6jkVOCAjh7GEuhkq8EyLIq
+	 suopR14b5dkKpVbbSr23u2v9jRgpynJQ5WBq6kIJSqjmZt58tZeMbaX76PRHjOs8+s
+	 QHatP0Vxf1ny0BOpVlZLZ/LlAsQhypNhW6/qjH0X9OLeNq0IFjSZ5faD3z463b62m0
+	 yMuPrAXa/kuPPInxGG6HsCPkRzFH3x9hM15r7ipSbXODTRXaVBSVScp03eAeo6zw/d
+	 nll/wcjCEe/78XX5o1Tsug951g7H8meDRnGQHJZtvbEmHdDB1wkTXYdFI2EGwnDxsz
+	 W3dcHoUveJgqQ==
+Received: from lists1.osuosl.org (lists1.osuosl.org [140.211.166.142])
+	by smtp3.osuosl.org (Postfix) with ESMTP id 4350560615;
+	Tue,  4 Aug 2026 13:39:33 +0000 (UTC)
+X-Original-To: u-boot@lists.u-boot-project.org
+Delivered-To: u-boot@lists.u-boot-project.org
+Received: from smtp1.osuosl.org (smtp1.osuosl.org [140.211.166.138])
+ by lists1.osuosl.org (Postfix) with ESMTP id 3009E2BF
+ for <u-boot@lists.u-boot-project.org>; Tue,  4 Aug 2026 13:39:31 +0000 (UTC)
+Received: from localhost (localhost [127.0.0.1])
+ by smtp1.osuosl.org (Postfix) with ESMTP id 222DC8086C
+ for <u-boot@lists.u-boot-project.org>; Tue,  4 Aug 2026 13:39:31 +0000 (UTC)
+X-Virus-Scanned: amavis at osuosl.org
+Received: from smtp1.osuosl.org ([127.0.0.1])
+ by localhost (smtp1.osuosl.org [127.0.0.1]) (amavis, port 10024) with ESMTP
+ id W5OoNRat257d for <u-boot@lists.u-boot-project.org>;
+ Tue,  4 Aug 2026 13:39:30 +0000 (UTC)
+X-Greylist: delayed 94239 seconds by postgrey-1.37 at util1.osuosl.org;
+ Tue, 04 Aug 2026 13:39:29 UTC
+DMARC-Filter: OpenDMARC Filter v1.4.2 smtp1.osuosl.org 1B0B580827
+DKIM-Filter: OpenDKIM Filter v2.11.0 smtp1.osuosl.org 1B0B580827
+Received-SPF: Pass (mailfrom) identity=mailfrom;
+ client-ip=2a0a:51c0:0:12e:550::1; helo=galois.linutronix.de;
+ envelope-from=gregor.herburger@linutronix.de; receiver=<UNKNOWN>
+Received: from galois.linutronix.de (Galois.linutronix.de
+ [IPv6:2a0a:51c0:0:12e:550::1])
+ by smtp1.osuosl.org (Postfix) with ESMTPS id 1B0B580827
+ for <u-boot@lists.u-boot-project.org>; Tue,  4 Aug 2026 13:39:29 +0000 (UTC)
+From: Gregor Herburger <gregor.herburger@linutronix.de>
+Date: Tue, 04 Aug 2026 15:39:15 +0200
+Subject: [PATCH v3] rpi: copy /chosen/bootloader partition and set
+ boot_partition
+MIME-Version: 1.0
+Message-Id: <20260804-tryboot2-v3-1-b0bc282a923b@linutronix.de>
+X-B4-Tracking: v=1; b=H4sIAILrcWoC/22OywrCMBBFf0WyNpKHbYor/0O6SNOJjWgiSRpaS
+ v/dpCKCyKwO3HvmLiiANxDQabcgD8kE42wGvt8hNUh7BWz6zIgRVpOGcBz93DkXGW5UxRjlooZ
+ Kohx/etBm2lSX9s1h7G6gYumXhPbugePgQX6VgjQfJU4U5+OSHiVIpQU9340do3fWTIceimIwI
+ To/b3MTK6/+LEssezhRRFDNAGj142nXdX0BG/Mh6/kAAAA=
+X-Change-ID: 20260803-tryboot2-8c5221376e5a
+To: u-boot@lists.u-boot-project.org
+Cc: Matthias Brugger <mbrugger@suse.com>,
+  Peter Robinson <pbrobinson@gmail.com>, Tom Rini <trini@konsulko.com>,
+	=?utf-8?q?Filip_Kokosi=C5=84ski?= <filip.kokosinski@gmail.com>,
+  Ilias Apalodimas <ilias.apalodimas@linaro.org>,
+  Gregor Herburger <gregor.herburger@linutronix.de>
+X-Developer-Signature: v=1; a=ed25519-sha256; t=1785850764; l=3191;
+ i=gregor.herburger@linutronix.de; s=20260226; h=from:subject:message-id;
+ bh=4mVT/kFDHBnjUUlqljWBZ+t7aLa+t+gE+t/hUJ4uc5g=;
+ b=TBKoGScdkXGUfpGLvpVtYHkg4LDoOR/8M/do2dqU2QlR+9Z9YFNN6x88pDC7UIDeXrJS+Hpeg
+ e3YsfK6fOcoBgXOuzz3Aabmmn9//OQN7WG6Vz15rSxX0uVZ96TFcvf5
+X-Developer-Key: i=gregor.herburger@linutronix.de; a=ed25519;
+ pk=u72Lv7+/lS5CC1hmSrb17lv/6CK7HBh4Lvz77PHA5LM=
+X-Mailman-Original-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
+ d=linutronix.de; s=2020; t=1785850765;
+ h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
+ to:to:cc:cc:mime-version:mime-version:content-type:content-type:
+ content-transfer-encoding:content-transfer-encoding;
+ bh=Tj3LONeiWXn0Cn5KPSYhoff9avwde4nWUGEguAWdLbE=;
+ b=plU5oAFojHvTlDhOGINsdXnnc0AnS9OY0C4LB9dSy9uyrPKBBpLWGWj3xmNoX87lLZlhO9
+ z0H+R5gqw5NfxbTVYFHqZnW+pW4xJQFW9fMYSU8/k2RRg9JEqP+NrZ8Y720ujlycxn05vP
+ sF7cD+TEsxvyBhnbRyq82obvpdQIYj0D6T3UkHyz0U4G+5k8dVhhv/mqGaSfY8xW4cCl5G
+ gIE2QIsuzB4g4pQoW70DrLd7cyqqDM0iDrrXFZL2a7DlnYgbe1ULVXMl05UMMQGfBkHmog
+ pt8e+zvO4AVA3G8CKcUQhhWOZm7uycUpdrNuyPKg9K7JB6MEd9dHbucVa+v8Yg==
+X-Mailman-Original-DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed;
+ d=linutronix.de; s=2020e; t=1785850765;
+ h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
+ to:to:cc:cc:mime-version:mime-version:content-type:content-type:
+ content-transfer-encoding:content-transfer-encoding;
+ bh=Tj3LONeiWXn0Cn5KPSYhoff9avwde4nWUGEguAWdLbE=;
+ b=NAMrZHs0ETYIMiwBHLvCoR3NOcg/kwkAxVRq6Q/pdhfkQJjxtHU3mZFV520QjbE1yeix0S
+ nJyAqHgyKVlRiZCw==
+X-Mailman-Original-Authentication-Results: smtp1.osuosl.org;
+ dmarc=pass (p=none dis=none)
+ header.from=linutronix.de
+X-Mailman-Original-Authentication-Results: smtp1.osuosl.org;
+ dkim=pass (2048-bit key, unprotected) header.d=linutronix.de
+ header.i=@linutronix.de header.a=rsa-sha256 header.s=2020 header.b=plU5oAFo;
+ dkim=pass header.d=linutronix.de header.i=@linutronix.de
+ header.a=ed25519-sha256 header.s=2020e header.b=NAMrZHs0
+X-BeenThere: u-boot@lists.u-boot-project.org
+X-Mailman-Version: 2.1.30
+Precedence: list
+List-Id: U-Boot discussion <u-boot.lists.u-boot-project.org>
+List-Unsubscribe: <https://lists.u-boot-project.org/mailman/options/u-boot>,
+ <mailto:u-boot-request@lists.u-boot-project.org?subject=unsubscribe>
+List-Archive: <http://lists.u-boot-project.org/pipermail/u-boot/>
+List-Post: <mailto:u-boot@lists.u-boot-project.org>
+List-Help: <mailto:u-boot-request@lists.u-boot-project.org?subject=help>
+List-Subscribe: <https://lists.u-boot-project.org/mailman/listinfo/u-boot>,
+ <mailto:u-boot-request@lists.u-boot-project.org?subject=subscribe>
+Errors-To: u-boot-bounces@lists.u-boot-project.org
+Sender: "U-Boot" <u-boot-bounces@lists.u-boot-project.org>
+
+The Raspberry Pi has the "tryboot" feature where it can boot from a
+different partition enabling failsafe A/B updates. After boot the
+firmware sets 'partition' property in /chosen/bootloader.
+
+Copy the /chosen/bootloader node to the device tree.
+
+Set the env variable boot_partition accordingly to allow boards to
+create a bootcmd based on the boot partition.
+
+Reviewed-by: Matthias Brugger <mbrugger@suse.com>
+Signed-off-by: Gregor Herburger <gregor.herburger@linutronix.de>
+---
+Changes in v3:
+- Copy the complete '/chosen/bootloader' node instead of only the
+  partition property
+- Link to v2: https://patch.msgid.link/20260803-tryboot2-v2-1-30c071f2ee15@linutronix.de
+
+Changes in v2:
+- update Reviewed-by tag
+---
+ board/raspberrypi/rpi/rpi.c | 51 +++++++++++++++++++++++++++++++++++++++++++++
+ 1 file changed, 51 insertions(+)
+
+
+---
+base-commit: baa64b2f892890f00a377eac4a3e685472bb56b5
+change-id: 20260803-tryboot2-8c5221376e5a
+
+Best regards,
+--  
+Gregor Herburger <gregor.herburger@linutronix.de>
+
+diff --git a/board/raspberrypi/rpi/rpi.c b/board/raspberrypi/rpi/rpi.c
+index 1da5df92351c..ba8a2c1ba4cf 100644
+--- a/board/raspberrypi/rpi/rpi.c
++++ b/board/raspberrypi/rpi/rpi.c
+@@ -480,6 +480,20 @@ static void set_serial_number(void)
+ 	env_set("serial#", serial_string);
+ }
+ 
++static void set_boot_partition_fdt(void)
++{
++	void *fdtp = (void *)gd->fdt_blob;
++	u32 partition;
++
++	partition = fdt_getprop_u32_default(fdtp, "/chosen/bootloader", "partition", 1);
++	if (!partition) {
++		printf("Failed to the get partition property.\n");
++		return;
++	}
++
++	env_set_ulong("boot_partition", partition);
++}
++
+ int misc_init_r(void)
+ {
+ 	set_fdt_addr();
+@@ -489,6 +503,7 @@ int misc_init_r(void)
+ 	set_board_info();
+ #endif
+ 	set_serial_number();
++	set_boot_partition_fdt();
+ 
+ 	return 0;
+ }
+@@ -579,6 +594,39 @@ int board_fdt_blob_setup(void **fdtp)
+ 	return 0;
+ }
+ 
++int copy_node_all_properties(void *dst, void *src, const char *path, const char *node)
++{
++	int src_parent, dst_parent;
++	int src_node, dst_node;
++	int prop;
++	int len;
++
++	src_parent = fdt_path_offset(src, path);
++	dst_parent = fdt_path_offset(dst, path);
++	if (src_parent < 0 || dst_parent < 0)
++		return -1;
++
++	src_node = fdt_subnode_offset(src, src_parent, node);
++	if (src_node < 0)
++		return -1;
++
++	dst_node = fdt_find_or_add_subnode(dst, dst_parent, node);
++	if (dst_node < 0)
++		return -1;
++
++	fdt_for_each_property_offset(prop, src, src_node) {
++		const char *name;
++		const void *value = fdt_getprop_by_offset(src, prop, &name, &len);
++
++		if (!value || !name)
++			continue;
++
++		fdt_setprop(dst, dst_node, name, value, len);
++	}
++
++	return 0;
++}
++
+ int copy_property(void *dst, void *src, char *path, char *property)
+ {
+ 	int dst_offset, src_offset;
+@@ -641,6 +689,9 @@ void  update_fdt_from_fw(void *fdt, void *fw_fdt)
+ 
+ 	/* copy uart clk as provided by the firmware */
+ 	copy_property(fdt, fw_fdt, "/clocks/clk-uart", "clock-frequency");
++
++	/* Copy the bootloader node */
++	copy_node_all_properties(fdt, fw_fdt, "/chosen", "bootloader");
+ }
+ 
+ int ft_board_setup(void *blob, struct bd_info *bd)

diff --git a/sources b/sources
index 97f53d1..60f076d 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (u-boot-v2026.10-rc1.tar.bz2) = 0f0ac15caf6b430cd4d3e1dfa48b55c7e3de05eb8b81cd42308b250b7221c9ddd179e1b575ba1313ed2eb349263606efab13bbfa9dd983792a597ba8f6426919
+SHA512 (u-boot-v2026.10-rc2.tar.bz2) = 96963ced3958d40ebd523db7a7949cbaae264b0d3ae6220287045ff9d15c9b7a54351e89415117e36f981a9316c1c6ebbd1403ec322fcf5e5fb9f93ac6c64aee

diff --git a/uboot-tools.spec b/uboot-tools.spec
index e3d1c8b..5c59be4 100644
--- a/uboot-tools.spec
+++ b/uboot-tools.spec
@@ -1,4 +1,4 @@
-%global candidate rc1
+%global candidate rc2
 %if 0%{?rhel}
 %bcond_with toolsonly
 %else
@@ -10,7 +10,7 @@
 
 Name:     uboot-tools
 Version:  2026.10
-Release:  0.1%{?candidate:.%{candidate}}%{?dist}
+Release:  0.2%{?candidate:.%{candidate}}%{?dist}
 Epoch:    1
 Summary:  U-Boot utilities
 # Automatically converted from old format: GPLv2+ BSD LGPL-2.1+ LGPL-2.0+ - review is highly recommended.
@@ -50,6 +50,7 @@ Patch16:  Allwinner-fix-booting-on-a-number-of-devices.patch
 # RPi
 Patch20:  Fix-NVMe-not-only-on-Raspberry-Pi-5.patch
 Patch21:  raspberrypi-Add-quirk-for-RPi5-2Gb-rev-1.0.patch
+Patch22:  rpi-copy-chosen-bootloader-partition-and-set-boot_partition.patch
 
 BuildRequires:  bc
 BuildRequires:  bison
@@ -313,6 +314,9 @@ install -p -m 0755 builds/tools/env/fw_printenv %{buildroot}%{_bindir}
 %endif
 
 %changelog
+* Wed Aug 12 2026 Peter Robinson <pbrobinson@fedoraproject.org> - 1:2026.10-0.2.rc2
+- Update to 2026.10 RC2
+
 * Thu Jul 30 2026 Peter Robinson <pbrobinson@fedoraproject.org> - 1:2026.10-0.1.rc1
 - Update to 2026.10 RC1
 - Update source URL

                 reply	other threads:[~2026-08-12 13:21 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=178654091740.1.10974419829503082763.rpms-uboot-tools-8f57e9bff641@fedoraproject.org \
    --to=pbrobinson@gmail.com \
    --cc=git-commits@fedoraproject.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox