{"id":2224274,"url":"http://patchwork.ozlabs.org/api/1.2/patches/2224274/?format=json","web_url":"http://patchwork.ozlabs.org/project/uboot/patch/20260417083050.499955-3-yan.wang@softathome.com/","project":{"id":18,"url":"http://patchwork.ozlabs.org/api/1.2/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,"list_archive_url":"","list_archive_url_format":"","commit_url_format":""},"msgid":"<20260417083050.499955-3-yan.wang@softathome.com>","list_archive_url":null,"date":"2026-04-17T08:30:49","name":"[v7,2/3] binman: collection: Set build_done on referenced entries","commit_ref":null,"pull_url":null,"state":"new","archived":false,"hash":"5b45dc3803bdab33ab179eb876c14a6194fe91ba","submitter":{"id":90652,"url":"http://patchwork.ozlabs.org/api/1.2/people/90652/?format=json","name":"Yan WANG","email":"yan.wang@softathome.com"},"delegate":null,"mbox":"http://patchwork.ozlabs.org/project/uboot/patch/20260417083050.499955-3-yan.wang@softathome.com/mbox/","series":[{"id":500273,"url":"http://patchwork.ozlabs.org/api/1.2/series/500273/?format=json","web_url":"http://patchwork.ozlabs.org/project/uboot/list/?series=500273","date":"2026-04-17T08:30:47","name":"binman: Fix preload signing with encrypted FIT","version":7,"mbox":"http://patchwork.ozlabs.org/series/500273/mbox/"}],"comments":"http://patchwork.ozlabs.org/api/patches/2224274/comments/","check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/2224274/checks/","tags":{},"related":[],"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=softathome1.onmicrosoft.com header.i=@softathome1.onmicrosoft.com\n header.a=rsa-sha256 header.s=selector1-softathome1-onmicrosoft-com\n header.b=NIsM0Wqw;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de\n (client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; helo=phobos.denx.de;\n envelope-from=u-boot-bounces@lists.denx.de; receiver=patchwork.ozlabs.org)","phobos.denx.de;\n dmarc=none (p=none dis=none) header.from=softathome.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=softathome1.onmicrosoft.com header.i=@softathome1.onmicrosoft.com\n header.b=\"NIsM0Wqw\";\n\tdkim-atps=neutral","phobos.denx.de; dmarc=none (p=none dis=none)\n header.from=softathome.com","phobos.denx.de;\n spf=pass smtp.mailfrom=yan.wang@softathome.com"],"Received":["from phobos.denx.de (phobos.denx.de\n [IPv6:2a01:238:438b:c500:173d:9f52:ddab:ee01])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fxp561L1Cz1yD3\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 17 Apr 2026 18:31:38 +1000 (AEST)","from h2850616.stratoserver.net (localhost [IPv6:::1])\n\tby phobos.denx.de (Postfix) with ESMTP id DBDB084262;\n\tFri, 17 Apr 2026 10:31:28 +0200 (CEST)","by phobos.denx.de (Postfix, from userid 109)\n id C21448425F; Fri, 17 Apr 2026 10:31:23 +0200 (CEST)","from PA5P264CU001.outbound.protection.outlook.com\n (mail-francecentralazlp170100000.outbound.protection.outlook.com\n [IPv6:2a01:111:f403:c20a::])\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 1A86784258\n for <u-boot@lists.denx.de>; Fri, 17 Apr 2026 10:31:20 +0200 (CEST)","from PR3P189CA0068.EURP189.PROD.OUTLOOK.COM (2603:10a6:102:b4::13)\n by PATP264MB4833.FRAP264.PROD.OUTLOOK.COM (2603:10a6:102:429::15) with\n Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9818.25; Fri, 17 Apr\n 2026 08:31:16 +0000","from PA1PEPF000CC3FA.FRAP264.PROD.OUTLOOK.COM\n (2603:10a6:102:b4:cafe::e0) by PR3P189CA0068.outlook.office365.com\n (2603:10a6:102:b4::13) with Microsoft SMTP Server (version=TLS1_3,\n cipher=TLS_AES_256_GCM_SHA384) id 15.20.9769.52 via Frontend Transport; Fri,\n 17 Apr 2026 08:31:16 +0000","from proxy.softathome.com (149.6.166.170) by\n PA1PEPF000CC3FA.mail.protection.outlook.com (10.167.242.5) with Microsoft\n SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9769.17\n via Frontend Transport; Fri, 17 Apr 2026 08:31:16 +0000","from sah1lpt719.softathome.com (unknown [192.168.72.213])\n by proxy.softathome.com (Postfix) with ESMTPSA id 41ED61FFF1;\n Fri, 17 Apr 2026 10:31:16 +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,DKIM_SIGNED,\n DKIM_VALID,RCVD_IN_DNSWL_BLOCKED,SPF_HELO_PASS,SPF_PASS autolearn=ham\n autolearn_force=no version=3.4.2","ARC-Seal":"i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;\n b=xUFgSpxORGUAZBKulvDy/ubFGNAhmt58XqOhXIdhRZoOCFiXVksL4AtNKT8XJIQlWSdUTnZY2oBjns9j+VL5fYwFj56djexotOnxZcmJ7j7T+nEqAojPcqSzHz3xWLqa7EqI6d+wKqfftoEuDS6WwRDm2b+yFgEXk6NhHcUMaDdRbwNOyrbs0HfTVhMsPGhMw32K7EkROFU4UA/ZiJ2LT1EZAp5iGApi57tgjPqf1yWwyVAsEpP9rYiRV7gEKXmSfeKt1BdtvqTsfhX4hxXSdbZyA9YSDlt6X3AA3/Ao0dGwah5r9dSA4oArjUbaQYk38J/NaxvmeajnMUFWuLYr/g==","ARC-Message-Signature":"i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;\n s=arcselector10001;\n 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;\n bh=fxzAIUmsZ4DKv2U0wRjqTzlV4Lc257yVt9QtE/sLYI4=;\n b=gETYz8jBXM8Qgx8WTHBjVS8mPz/ylWKe9e3N0NqJQn9lisHpapBQai2FkzDELAD55+SPhIfDkqBj7c4EYlLX+zGq6HQJmUj1PLhPCYhTNjXE3xv2lXJXbxRGw+CI5KlOMpOL2OdpQMjo5dVR+Bv7lk3fzvIAAuvlhHCbxiCZ76qOTMjr6IGObsGi76pQ0RCV27VGLA0QhWkB1dWBA3vLpMSONNbhJJSPXDeSp0H9EyAAyxOGKt2QDy1vfukiE8bZY7r3fc9Zl1dm0YXFcJdtDCvJp93OKXIB5hXlGXFvGa2WprtIirrbaGeMqwjhk9+JNSFy+DCN8jOkCo+N1hSZyA==","ARC-Authentication-Results":"i=1; mx.microsoft.com 1; spf=pass (sender ip is\n 149.6.166.170) smtp.rcpttodomain=chromium.org smtp.mailfrom=softathome.com;\n dmarc=bestguesspass action=none header.from=softathome.com; dkim=none\n (message not signed); arc=none (0)","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=softathome1.onmicrosoft.com; s=selector1-softathome1-onmicrosoft-com;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n bh=fxzAIUmsZ4DKv2U0wRjqTzlV4Lc257yVt9QtE/sLYI4=;\n b=NIsM0WqwPZXOz+cffEWKiBB9FROkP/ZnQj85LlpFIoptw4JLcayFpbMeIC+j7j0sYaOZCiGf3E4JWUNXk335eGp6jnV1huVJ37wojGpNLVlMIURZvPNfERbZKNpLGl5wvFwuxCIEIuETSEou+uGrlTex98XfTb9xj/yXcff+mbt6Ezz74jvgkNZYVOPP5p3RXMFOW1bFSw0SYxtRVM0wg6IOzMRiVZa7NhRPS8zbQLR3uHhImuQXFYB6hIcdiA10wC0mV/14KH7g93V9lUqiwUIEC0UTC36TO7aGtPdmc+PPQFfI9V1/cQCLkJemPGZpGwQ26Xy1Z8cm+WVwdw7EMA==","X-MS-Exchange-Authentication-Results":"spf=pass (sender IP is 149.6.166.170)\n smtp.mailfrom=softathome.com; dkim=none (message not signed)\n header.d=none;dmarc=bestguesspass action=none header.from=softathome.com;","Received-SPF":"Pass (protection.outlook.com: domain of softathome.com\n designates 149.6.166.170 as permitted sender)\n receiver=protection.outlook.com; client-ip=149.6.166.170;\n helo=proxy.softathome.com; pr=C","From":"Yan WANG <yan.wang@softathome.com>","To":"trini@konsulko.com,\n\tsjg@chromium.org,\n\talpernebiyasak@gmail.com","Cc":"paul.henrys_ext@softathome.com, u-boot@lists.denx.de,\n yan wang <yan.wang@softathome.com>","Subject":"[PATCH v7 2/3] binman: collection: Set build_done on referenced\n entries","Date":"Fri, 17 Apr 2026 10:30:49 +0200","Message-Id":"<20260417083050.499955-3-yan.wang@softathome.com>","X-Mailer":"git-send-email 2.25.1","In-Reply-To":"<20260417083050.499955-1-yan.wang@softathome.com>","References":"<20260414131558.538656-3-yan.wang@softathome.com>\n <20260417083050.499955-1-yan.wang@softathome.com>","MIME-Version":"1.0","Content-Transfer-Encoding":"8bit","X-EOPAttributedMessage":"0","X-MS-PublicTrafficType":"Email","X-MS-TrafficTypeDiagnostic":"PA1PEPF000CC3FA:EE_|PATP264MB4833:EE_","Content-Type":"text/plain","X-MS-Office365-Filtering-Correlation-Id":"68fcaad1-916e-44e8-a411-08de9c5bb166","X-MS-Exchange-SenderADCheck":"1","X-MS-Exchange-AntiSpam-Relay":"0","X-Microsoft-Antispam":"BCL:0;\n ARA:13230040|82310400026|376014|36860700016|1800799024|22082099003|18002099003|56012099003;","X-Microsoft-Antispam-Message-Info":"\n huAlTSBbDdpExLjhQlbEXKRbBbYzq7N9/M6CZK5KWAlf+x7bPxPh2BJrqM1V2rt/xo2Ff4SgZ6P2GA3jAT1jMtoO61J4Os6Fuqq8/mb4PFJA9KD3FIUtEtb+0V1DPud/lxwBHvXkdZtQACHmZksHLtPf4n5//yM3myKf2fAtxKaoXT6gksOzr9/dNoRcABcZ2MdUsp0GclXUBAJ34mg9uOPZ175V5S2exJtYtpPlWVvphQ+cnNmx/muw2gb2dupvNpQrbJZhbnZcWCn2sVvTmvx0r32J+9RMSb/Iej3rPWV+rhohuPBxFx3t+b9i0hVOM6UafY6RoJpuws7pcJFIsvZnee6ClZPEEyxAdH28R/7Ka4QgQYJBpnnGsCzy1AUcCO5gnhgoumE1/ONUgLwk5NHYpHO572sh9+UeoVd4Xthg/nJUHJfcKJZkAGsv9nPlycPHlqafuJcOYe/SmHh/38vQRdRBg51meItTsSBu4MAYGCjWdrACau/bwvCKMc6nyYNxavfg3aMj/EVcdSKGUmL9fTou8rpNugx4QtPJOLp2eziMVkEKh2xULmxs+PiKK0b3Lch9gjYlL3LpRrDitlimrORsjzELPgBboHLuSFk9NbYaIsAZHdskKA8gPFIVBp0o7pEtwFkK4Nm8UrOWqwZm30jiw4mfNR4TLXBsE01Zsf3A5VvOuXKn0ZB/I7z4ho/ieyZ55KMYycPFdpBJKxwAVtCqbuVFRJinRX21g0F1YwQcYa6YfewyKKi9HXpYAH8LjXrmqnAd5EQUqYzZdA==","X-Forefront-Antispam-Report":"CIP:149.6.166.170; CTRY:FR; LANG:en; SCL:1; SRV:;\n IPV:CAL; SFV:NSPM; H:proxy.softathome.com; PTR:InfoDomainNonexistent;\n CAT:NONE;\n SFS:(13230040)(82310400026)(376014)(36860700016)(1800799024)(22082099003)(18002099003)(56012099003);\n DIR:OUT; SFP:1101;","X-MS-Exchange-AntiSpam-MessageData-ChunkCount":"1","X-MS-Exchange-AntiSpam-MessageData-0":"\n PivUK2NJFVqTV4nxy9B+54rIZ2ErSJwdjM6ppUP2o6b1STcQt+EDabRWwxL0kFCylFfiixB5KzkiloIzVj/5B6TbgKkrPj/VTaYWpqOMwbuEuQo2Yq/AffiyTl9ttaOcvJFDSeif5td0+qehYZbdUEyOgSC9DP8Bf7DaJryHyIKTC5bdAdLIDMecRMHy1mmXacOS6ozHlV7Hu/V7rie+HFTyvNq6sXsFNY6kkzUuvLuKQkF2ytbYZ9Ra2pG6D/ed3tCB9PhlrP8/eUxMLuKJp7VhJBwu2DBQLukuuydtqMl3q0vqBbNPrb7jBkQvGRb3rKeExfsoBVKwSdakl492YFL5B3mhfeBHJ1J8NE4qMVTIwGLbl55CxixCWeJBT6P9p0IUsIQ7tiDk3nSmEF19nsJtdfji+Za5MmFzo/oRhy1z0zX+Q2EHbDN7R4Sb8Obv","X-OriginatorOrg":"softathome.com","X-MS-Exchange-CrossTenant-OriginalArrivalTime":"17 Apr 2026 08:31:16.4709 (UTC)","X-MS-Exchange-CrossTenant-Network-Message-Id":"\n 68fcaad1-916e-44e8-a411-08de9c5bb166","X-MS-Exchange-CrossTenant-Id":"aa10e044-e405-4c10-8353-36b4d0cce511","X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp":"\n TenantId=aa10e044-e405-4c10-8353-36b4d0cce511; Ip=[149.6.166.170];\n Helo=[proxy.softathome.com]","X-MS-Exchange-CrossTenant-AuthSource":"PA1PEPF000CC3FA.FRAP264.PROD.OUTLOOK.COM","X-MS-Exchange-CrossTenant-AuthAs":"Anonymous","X-MS-Exchange-CrossTenant-FromEntityHeader":"HybridOnPrem","X-MS-Exchange-Transport-CrossTenantHeadersStamped":"PATP264MB4833","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: yan wang <yan.wang@softathome.com>\n\nThe collection etype uses phandles in the 'content' property to\nreference other entries. Mark each referenced entry with build_done\nto avoid rebuilding the same entry data multiple times.\n\nThis is important for cases where rebuilding may change the data\ncontent, e.g. due to timestamps or random IVs in encryption.\n\nRefactor GetContentsByPhandle() to return both the entry object and\nits data.\n\nSigned-off-by: yan wang <yan.wang@softathome.com>\n---\n\nChanges in v7:\n- use mark_build_done() to recursively mark child entries\n\n tools/binman/etype/collection.py | 9 +++++++--\n tools/binman/etype/section.py    | 5 +++--\n 2 files changed, 10 insertions(+), 4 deletions(-)","diff":"diff --git a/tools/binman/etype/collection.py b/tools/binman/etype/collection.py\nindex c532aafe3e7..866ea8dcc1e 100644\n--- a/tools/binman/etype/collection.py\n+++ b/tools/binman/etype/collection.py\n@@ -45,12 +45,17 @@ class Entry_collection(Entry):\n         self.Info('Getting contents, required=%s' % required)\n         data = bytearray()\n         for entry_phandle in self.content:\n-            entry_data = self.section.GetContentsByPhandle(entry_phandle, self,\n-                                                           required)\n+            entry, entry_data = self.section.GetContentsByPhandle(\n+                entry_phandle, self, required)\n             if not required and entry_data is None:\n                 self.Info('Contents not available yet')\n                 # Data not available yet\n                 return None\n+\n+            # Mark referenced entries as build_done to avoid rebuilding\n+            if required:\n+                entry.mark_build_done()\n+\n             data += entry_data\n \n         self.Info('Returning contents size %x' % len(data))\ndiff --git a/tools/binman/etype/section.py b/tools/binman/etype/section.py\nindex 6a26d687056..8530b7ee17f 100644\n--- a/tools/binman/etype/section.py\n+++ b/tools/binman/etype/section.py\n@@ -557,7 +557,8 @@ class Entry_section(Entry):\n                 return None\n \n         Returns:\n-            data from associated entry (as a string), or None if not found\n+            tuple: (entry, data) where entry is the Entry object and data is\n+                from that entry (as a string), or (entry, None) if data not found\n         \"\"\"\n         node = self._node.GetFdt().LookupPhandle(phandle)\n         if not node:\n@@ -565,7 +566,7 @@ class Entry_section(Entry):\n         entry = self.FindEntryByNode(node)\n         if not entry:\n             source_entry.Raise(\"Cannot find entry for node '%s'\" % node.name)\n-        return entry.GetData(required)\n+        return entry, entry.GetData(required)\n \n     def LookupEntry(self, entries, sym_name, msg):\n         \"\"\"Look up the entry for a binman symbol\n","prefixes":["v7","2/3"]}