{"id":2223104,"url":"http://patchwork.ozlabs.org/api/patches/2223104/?format=json","web_url":"http://patchwork.ozlabs.org/project/uboot/patch/20260414131558.538656-3-yan.wang@softathome.com/","project":{"id":18,"url":"http://patchwork.ozlabs.org/api/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":"<20260414131558.538656-3-yan.wang@softathome.com>","list_archive_url":null,"date":"2026-04-14T13:15:57","name":"[v6,2/3] binman: collection: Set build_done on referenced entries","commit_ref":null,"pull_url":null,"state":"new","archived":false,"hash":"c7959e2719b59dc6826e75e10d075d014a77545a","submitter":{"id":90652,"url":"http://patchwork.ozlabs.org/api/people/90652/?format=json","name":"Yan WANG","email":"yan.wang@softathome.com"},"delegate":{"id":3651,"url":"http://patchwork.ozlabs.org/api/users/3651/?format=json","username":"trini","first_name":"Tom","last_name":"Rini","email":"trini@ti.com"},"mbox":"http://patchwork.ozlabs.org/project/uboot/patch/20260414131558.538656-3-yan.wang@softathome.com/mbox/","series":[{"id":499840,"url":"http://patchwork.ozlabs.org/api/series/499840/?format=json","web_url":"http://patchwork.ozlabs.org/project/uboot/list/?series=499840","date":"2026-04-14T13:15:55","name":"binman: Fix preload signing with encrypted FIT","version":6,"mbox":"http://patchwork.ozlabs.org/series/499840/mbox/"}],"comments":"http://patchwork.ozlabs.org/api/patches/2223104/comments/","check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/2223104/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=c+E1ePMM;\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=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=\"c+E1ePMM\";\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 [85.214.62.61])\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 4fw4YL5D86z1yDF\n\tfor <incoming@patchwork.ozlabs.org>; Tue, 14 Apr 2026 23:16:38 +1000 (AEST)","from h2850616.stratoserver.net (localhost [IPv6:::1])\n\tby phobos.denx.de (Postfix) with ESMTP id 9A94184207;\n\tTue, 14 Apr 2026 15:16:28 +0200 (CEST)","by phobos.denx.de (Postfix, from userid 109)\n id 5A44E8421E; Tue, 14 Apr 2026 15:16:27 +0200 (CEST)","from PR0P264CU014.outbound.protection.outlook.com\n (mail-francecentralazlp170120004.outbound.protection.outlook.com\n [IPv6:2a01:111:f403:c20a::4])\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 60FA284214\n for <u-boot@lists.denx.de>; Tue, 14 Apr 2026 15:16:25 +0200 (CEST)","from PA7P264CA0027.FRAP264.PROD.OUTLOOK.COM (2603:10a6:102:2df::19)\n by PARP264MB6936.FRAP264.PROD.OUTLOOK.COM (2603:10a6:102:55c::18)\n with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9769.48; Tue, 14 Apr\n 2026 13:16:24 +0000","from PA3PEPF000089BA.FRAP264.PROD.OUTLOOK.COM\n (2603:10a6:102:2df:cafe::5a) by PA7P264CA0027.outlook.office365.com\n (2603:10a6:102:2df::19) with Microsoft SMTP Server (version=TLS1_3,\n cipher=TLS_AES_256_GCM_SHA384) id 15.20.9769.48 via Frontend Transport; Tue,\n 14 Apr 2026 13:16:24 +0000","from proxy.softathome.com (149.6.166.170) by\n PA3PEPF000089BA.mail.protection.outlook.com (10.167.242.22) with Microsoft\n SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9769.17\n via Frontend Transport; Tue, 14 Apr 2026 13:16:23 +0000","from sah1lpt719.softathome.com (unknown [192.168.72.213])\n by proxy.softathome.com (Postfix) with ESMTPSA id 39D2C20737;\n Tue, 14 Apr 2026 15:16:23 +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=rQFRGYNChaX3ryJ507+ruWPudboF3SueS6lqCP18IyPTAFCQJ0j1o+RhbgQOGEZRHAdohWFVULmhElZ/n3qH9mBVaWXMnARE2ep5LyxGVFT/UFUPA1QD9Eja2wy3qqW6GE5AsiLQP0SGF0OinxLR0tW52xTpEQ480ih6KCnijFgSxchvyzwD88Zu6aXfNHtn/wjB5kO8z0e00JsAN6nwppoCL0v2pU8qAiCUuLv34BrJ0TfUCqw7KXOVR3QY0kx3xPY95PX5v+Gb4zrgASlNh0C7nTHCvOXKVSf8PC0Qj9eTu8Le67Yc0L1YL5bo6tHJmFduclT/LGsGUDBEroOdgQ==","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=oJPGVkwlZgLjr0FSj0SE7Tm82tw+N1uS1zEPPXRHPQw=;\n b=ByVJlGv6f/U5iOLlcvvxEVZ/rkcUMsBKNXCqf1/MO7+IBhHFUil8uvF3zcDjUZVu3/f5rS9+8ASh9n6bR4iMFgdae+xTV2LC/Yb/MdRNBpsqswltpdiQKdrnrsQZlp52LsiRwoZeBOwVh/g0Qxrjd+TqHAI5xnawf6BaRoirX684J9k1Tgo8HLWwj9v7kRtVTj0emf++9EnoZ+88nmtx2uBCwGLSLje6qfnDn2oFoaO/UVtweI32rvGUrfyvx/d118DPdy2r5uoJ1oqbz3qRFvJ8fgr3hCecMgMCM3POgE1OP8wRQDSSPnuKbj9GB9IhkkEsOk+72Z9FINeLffVjnA==","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=oJPGVkwlZgLjr0FSj0SE7Tm82tw+N1uS1zEPPXRHPQw=;\n b=c+E1ePMMU64D6H7rShHXVVx+DL3HpwxM/IoJaH6g21pDtLP9TG+b9DyeO/0O/TFP4Sr8wo8sN/ckSRwZ51rWTveKVqVR0z90NTXB9BCnF5h104AH0m3R8O1KrBmeqQkI2Yeu13zKkWMS5Xdj5Jd8NeLt9ZlBmWTQmCb9WjtSoZKhh+dfeeia5INSYAynWtf8omeIK+E45FRGsH/kKVqROWyPZjHRZ/sUQohoCJy+0Bv3bxdx/2SRfP36C7S/lp6Ua+GPCiyx2XVL1vhWULdEkBI0c4y+fes4lsxEln4ZqmSFZVZegngOuyE8sDajTbkYpIutFLWK9r1unjmY+0/CIw==","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 v6 2/3] binman: collection: Set build_done on referenced\n entries","Date":"Tue, 14 Apr 2026 15:15:57 +0200","Message-Id":"<20260414131558.538656-3-yan.wang@softathome.com>","X-Mailer":"git-send-email 2.25.1","In-Reply-To":"<20260414131558.538656-1-yan.wang@softathome.com>","References":"<20260408150201.217942-3-paul.henrys_ext@softathome.com>\n <20260414131558.538656-1-yan.wang@softathome.com>","MIME-Version":"1.0","Content-Transfer-Encoding":"8bit","X-EOPAttributedMessage":"0","X-MS-PublicTrafficType":"Email","X-MS-TrafficTypeDiagnostic":"PA3PEPF000089BA:EE_|PARP264MB6936:EE_","Content-Type":"text/plain","X-MS-Office365-Filtering-Correlation-Id":"2eea25d5-4e04-4364-a2b8-08de9a2806bb","X-MS-Exchange-SenderADCheck":"1","X-MS-Exchange-AntiSpam-Relay":"0","X-Microsoft-Antispam":"BCL:0;\n ARA:13230040|82310400026|1800799024|36860700016|376014|56012099003|18002099003|22082099003;","X-Microsoft-Antispam-Message-Info":"\n CoOLvkB7SLyIRKufomW6onoInvjVsea+q4byigfmbVsVhrN3viAticyZ+V2JE6Z1e0G8w0jVlT9FquPnTgpTtNHd4ocLT0VbVwvotBL//gm39yFb1ffgq5DTsTJtz8Q05Jn8tDDBxyVXp0WPc8j2ZY1FfEUBMRlLmWVZ9OA4ax2appLB665pMGX/4w6rGZHo2BO9VWBgZPXabjswuqq7v8RXwxx02qnRuqrbA1JO5Ywp2tazhkWGi5ZuY7zuFnJ25BBWt/Fx99yDQ4dW5MA6qfOppg9cLmxgYtwenj60ZFuERhXCucnTi12jX2gyQod3AFexHv7SElyw1Nd5o/sXjVrmFi1WUU5yxf8MfKWAFPUFuKDBhHZvDienhbBCKo3dIqGUW94mDbT6oDEI2t5yPwzVgqDe0gQ1CTMneRftXBNdwtG5L7YE3GeOoEIHiV87bccx2Gii43jcr3pHBXK12aj0cq9Fvb2H1s6ez5SvDGHS6Z7C9vId4s9A1N/PBpEsj3vLJUOaS+tcxeFV0wcCPX+OWTDrzVIp/kPcOi9wJtn5+qHNAqBbxYr3SY2vPt3S8vqw2NmNO6MxjI842kFPGtTryPwnn0y6bC3EEC/IBXchDkMp3aTmMiJvgbkL9KSigbO/shm68nYf3HXFjXoPr4mHzvWaE4Y2NPKv9OwWrKHD3/QRiJOzD4PJTlR80czb7LbhaApIwhmxR7nRk5MEQXMfkW1Zckzknq8L1H8mThx22LDCV/ead+VQRLXQpw6w+pOGR85nrArOvxKyW0morg==","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)(1800799024)(36860700016)(376014)(56012099003)(18002099003)(22082099003);\n DIR:OUT; SFP:1101;","X-MS-Exchange-AntiSpam-MessageData-ChunkCount":"1","X-MS-Exchange-AntiSpam-MessageData-0":"\n dCF6wGQu0yADplJAczJLAR20V3V/Y6CKKthx5/UZp1irSV35qEuQ3F2nfOmXLBgxAXBKyQbT6A6J/VEh5u2nprd6msO/SNgXDlt+I59qTrqKi7I7MpO7NwQ+AdunWOerDADISx/hCApYFyhUNHLX5E073/nIch5V8npye2jTJY+J0sLAYoV6ybqA46lskBIRQbPnPeztWqKvndI+xE+UfAw6Z+B8UVta4vxgUvPh/WI0Vy80Y7s3HnkDYG3AtZg/6UVXxu+W9CV+lT6zdisbV3DnH8gK0i+TixGVmBs+j1u/NB+dptCIVu/p26E04YfwFLnPSXBBuYkhs0mW246rmeXovJwtzGWTQ2JMOdEuOrvWuO6RKUSu3zA5kWvS1xTwSjJsnRDTCvmqxJ9BGmYtkaRBraCYqltBItK5k4n4Q0GrbwG0ebXeQpVs9QLT4S76","X-OriginatorOrg":"softathome.com","X-MS-Exchange-CrossTenant-OriginalArrivalTime":"14 Apr 2026 13:16:23.4752 (UTC)","X-MS-Exchange-CrossTenant-Network-Message-Id":"\n 2eea25d5-4e04-4364-a2b8-08de9a2806bb","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":"PA3PEPF000089BA.FRAP264.PROD.OUTLOOK.COM","X-MS-Exchange-CrossTenant-AuthAs":"Anonymous","X-MS-Exchange-CrossTenant-FromEntityHeader":"HybridOnPrem","X-MS-Exchange-Transport-CrossTenantHeadersStamped":"PARP264MB6936","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 v6:\n- set build_done only when required=True, so it happens during\n  ProcessContents() rather than ObtainContents()\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..c0ada42e3b2 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.build_done = True\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":["v6","2/3"]}