{"id":2219511,"url":"http://patchwork.ozlabs.org/api/patches/2219511/?format=json","web_url":"http://patchwork.ozlabs.org/project/uboot/patch/20260403075528.1150196-3-paul.henrys_ext@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":"<20260403075528.1150196-3-paul.henrys_ext@softathome.com>","list_archive_url":null,"date":"2026-04-03T07:55:28","name":"[v4,3/3] binman: collection: Set build_done on referenced entries","commit_ref":null,"pull_url":null,"state":"new","archived":false,"hash":"c539f3b9ab81d764f38db501707f9cf66b12601f","submitter":{"id":83555,"url":"http://patchwork.ozlabs.org/api/people/83555/?format=json","name":"Paul HENRYS","email":"paul.henrys_ext@softathome.com"},"delegate":null,"mbox":"http://patchwork.ozlabs.org/project/uboot/patch/20260403075528.1150196-3-paul.henrys_ext@softathome.com/mbox/","series":[{"id":498598,"url":"http://patchwork.ozlabs.org/api/series/498598/?format=json","web_url":"http://patchwork.ozlabs.org/project/uboot/list/?series=498598","date":"2026-04-03T07:55:27","name":"[v4,1/3] tools: binman: Test signing an encrypted FIT with a preload header","version":4,"mbox":"http://patchwork.ozlabs.org/series/498598/mbox/"}],"comments":"http://patchwork.ozlabs.org/api/patches/2219511/comments/","check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/2219511/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=F0cSytFk;\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=\"F0cSytFk\";\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=paul.henrys_ext@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 4fn9yP0j7Xz1yD3\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 03 Apr 2026 18:55:57 +1100 (AEDT)","from h2850616.stratoserver.net (localhost [IPv6:::1])\n\tby phobos.denx.de (Postfix) with ESMTP id BF1AD840B0;\n\tFri,  3 Apr 2026 09:55:49 +0200 (CEST)","by phobos.denx.de (Postfix, from userid 109)\n id 0F47C83CF5; Fri,  3 Apr 2026 09:55:47 +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 69A32840B0\n for <u-boot+nodisclaimer@lists.denx.de>;\n Fri,  3 Apr 2026 09:55:44 +0200 (CEST)","from MR1P264CA0152.FRAP264.PROD.OUTLOOK.COM (2603:10a6:501:54::14)\n by PR1P264MB3296.FRAP264.PROD.OUTLOOK.COM (2603:10a6:102:1b::14) with\n Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9769.21; Fri, 3 Apr\n 2026 07:55:40 +0000","from MR1PEPF00000D57.FRAP264.PROD.OUTLOOK.COM\n (2603:10a6:501:54:cafe::ef) by MR1P264CA0152.outlook.office365.com\n (2603:10a6:501:54::14) with Microsoft SMTP Server (version=TLS1_3,\n cipher=TLS_AES_256_GCM_SHA384) id 15.20.9769.21 via Frontend Transport; Fri,\n 3 Apr 2026 07:55:39 +0000","from proxy.softathome.com (149.6.166.170) by\n MR1PEPF00000D57.mail.protection.outlook.com (10.167.241.4) with Microsoft\n SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9769.17\n via Frontend Transport; Fri, 3 Apr 2026 07:55:39 +0000","from sah2lpt245.. (unknown [192.168.72.220])\n by proxy.softathome.com (Postfix) with ESMTPSA id 4D75D20988;\n Fri,  3 Apr 2026 09:55:39 +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=0.6 required=5.0 tests=BAYES_00,DKIM_SIGNED,\n DKIM_VALID,RCVD_IN_DNSWL_BLOCKED,SPF_HELO_PASS,SPF_PASS,\n SUSPICIOUS_RECIPS autolearn=no autolearn_force=no version=3.4.2","ARC-Seal":"i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;\n b=q0lJ7OQJj/U2NFKmAmQYG99W/fDfkVv7i6F56WZBJFyYsbd/Lb9orXHi+u3naFpsNwMlpAAyoWK/w81mRKCnIsiK81fyyGeV7SjGGmKwmnAoxhvqTLIF9fyrI0ve6mVnT11Pr6ugRkiMWRTNHwqprGHiHGYtMWlIGmQfG/YDoYCynDTklyQEhneVYDYlMCWMajvtcwhNnaNYSHMyWf+b3UNZsSVDRc82ozB9va5SKrgNVxtIXZ6h6Gu3s+9Ab6jNXm6ef2Ni4EMH9oUaF/crym/LKt2KuTRksplUMxNjfADM/fzfa4aoUrH0bme8BrxAzfF1j17Y8Pamy6WSW22Jmw==","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=DKgPU6n/UxPHSJjzUN3LIsTRfDctnao4Wg/3hXqjM00=;\n b=Gv2nuZaF89TS7XYuGDybBmQZTn/SsrDGMNevWH5YNOWYn1CzOCOP/eVg+rk3auwGbkeRIZ9stA+oMLZXnLot5piH8sGAda6UBDUJ5vrKviJFbLyBlLGhQRn847195GwE8zOlkC2Ib0kY0E1lsXH24dug+CY8SjLe2MVhnUtHWkfWpIPTnNXeD9zYBxPX1S+3tihdVQhuUq4NOFzAPnMh1lzgBhDjNNf3bCedgavLfmblGnQDeAQoG+x2R36/SU4SlsoriVzuB7Sk2J5oWf4s2P0za3Vm5w3upPJPPWgYMgu9+J7DbT65pxCLY0FioDiK8PJo/0+C2ZbABDE1HqeoPg==","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=DKgPU6n/UxPHSJjzUN3LIsTRfDctnao4Wg/3hXqjM00=;\n b=F0cSytFk4qwkwDkm5Kv9U7ux6vYuImhG+LLdIsU00LxIthSBw725x4ZZLdvgJivda1/8T7d+GHQ4mDqQlLqojA5u1F4lDDk89XNGK3S+O6PIYj0ZcqJ+aNuk8Ej4BgwLz1qL/XML/8slkji/VVjRLuQnBGLRM8u2xjhCRJJv7s6yiBph39lZdViHrbcRVAV1yoIbvHJIqx9RNqWSSYt2XkfPLjRbeAUvgfMt9KTx2jfUrSAoybTtKKFe7aT+aM4AcylQ/ahXprpQbWXGmCJLDbEoCAjcBm7I2x5FsiFlwttIoSw507SEMNFH5sGwJSluQR6cTgKQQZjQi+Hdb3ctQg==","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":"Paul HENRYS <paul.henrys_ext@softathome.com>","To":"u-boot+nodisclaimer@lists.denx.de","Cc":"sjg+nodisclaimer@chromium.org, trini+nodisclaimer@konsulko.com,\n alpernebiyasak+nodisclaimer@gmail.com,\n philippe.reynes+nodisclaimer@softathome.com,\n yan wang <yan.wang@softathome.com>","Subject":"[PATCH v4 3/3] binman: collection: Set build_done on referenced\n entries","Date":"Fri,  3 Apr 2026 09:55:28 +0200","Message-ID":"<20260403075528.1150196-3-paul.henrys_ext@softathome.com>","X-Mailer":"git-send-email 2.43.0","In-Reply-To":"<20260403075528.1150196-1-paul.henrys_ext@softathome.com>","References":"<20260403073251.1051533-1-paul.henrys_ext@softathome.com>\n <20260403075528.1150196-1-paul.henrys_ext@softathome.com>","MIME-Version":"1.0","Content-Transfer-Encoding":"8bit","X-EOPAttributedMessage":"0","X-MS-PublicTrafficType":"Email","X-MS-TrafficTypeDiagnostic":"MR1PEPF00000D57:EE_|PR1P264MB3296:EE_","Content-Type":"text/plain","X-MS-Office365-Filtering-Correlation-Id":"308de5ac-7512-441f-4fac-08de9156660e","X-MS-Exchange-SenderADCheck":"1","X-MS-Exchange-AntiSpam-Relay":"0","X-Microsoft-Antispam":"BCL:0;\n ARA:13230040|376014|36860700016|82310400026|1800799024|56012099003|18002099003|22082099003;","X-Microsoft-Antispam-Message-Info":"\n PwxSmHmAA2r90wlmOIt2l2okyiA2z2SMMTEvNRQyYdKE0sOVNzvoVHbR/SWO1g7rfdn5WaL+FR8yqTkKl0D9lmlHTL24BDkpADjEx5hanEaxcjpuLpAAWW+nFJW091BqzWiNagh3iBSsrqdYTq0voRUP614/RVQ4e0yGSgSkb1f2MtmuTh9PvDHV6Ot78bDNlNr+Vnx6VtwUMQJnql6mIjMSWgx6dQ5MZRzXsee4YEeDUsZGtEbWpmnI3gdqRz0vY4+3X9iBhvlH9Uya/nzxYqJBFihhv5T4lbJzXfbru52EHDqO0yzMyKPfVS82Us5lZ8SWTxhV92HaTZw5yuk1HatoheMMJww9iKdMXHFFsW8WYYG3IQ3wAtiQuLPQlKW1+kpS8usOd7FHOmeUUof0EoC7En4N9PafGzxaXjoxerCsexqEkcTUOh+/9TJhfhTYjC0pBF74MxBcMiQjz5+ag7ikDocb0cYyzBuFZK/sBDgu0HWwLW+Aun/8LBM+VP2Z39BZVOJQ9O1/I7Iap35sX0rxqNC8+uwq8PmC1P4MC8lrCwwK/PSi4IzWfoT2vT8M6mJ5WRdlwMwXOq2aL7OmC8nbs+PhMgbx9Dr3u8Ujz5K1b67HlLuNn5IQzxt2T0LFNRIcoBywqLEko15rHMtobNC198I30v8QBkosKwkpMIPMDrL8hCMSQK8kzL6UO8Z4pPk+QQR4R3dRCFIcpacduKnbGpcJ0GfSLnamlTd18Y25zXSFSKw0WRAv4Z9ohA5J0l1q7zXcTeY5HMjUeUy0tA==","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)(376014)(36860700016)(82310400026)(1800799024)(56012099003)(18002099003)(22082099003);\n DIR:OUT; SFP:1101;","X-MS-Exchange-AntiSpam-MessageData-ChunkCount":"1","X-MS-Exchange-AntiSpam-MessageData-0":"\n 5gE6dHleRKiExFpZo1/rpBh6PBv9wc9wcJ2Vy1pIDcpM1dlbTQn5r5UdwRio/quaLIm2fQM+511qGXRYYSZes9hehK9409UzQslpn0GEP8fXKWwFU4X0hUPjDMZhCtK6t4XYCK6BQv8opw6gd28XFu1zEE/6T958ZYf9+w/RA7MV/d1FIacxKiU/Zmdz/fh3z/VwpkUpwZlhSA0z6LOid50pnK+QvbgYpQw40Iwqokurxoh869GYA/OMmZo6QiCtWJso5i0kIPgn3lXfJVmcS1mzQ66hQxe9Kxr3QzeVQqPHNlBitYaCVgRHM8mtdbqSBkYKZSwSpATxxpWO+uSue/QNbJOSgiE7PYgy8PMYhegjrhs1p5Yc6dBAjzxMyPnbvaBhdkA9rZnJRV4VG/JY/HV1zy2m0uoGNz/LYBWihCa7q1iOPS4ASlavff9Qre05","X-OriginatorOrg":"softathome.com","X-MS-Exchange-CrossTenant-OriginalArrivalTime":"03 Apr 2026 07:55:39.7851 (UTC)","X-MS-Exchange-CrossTenant-Network-Message-Id":"\n 308de5ac-7512-441f-4fac-08de9156660e","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":"MR1PEPF00000D57.FRAP264.PROD.OUTLOOK.COM","X-MS-Exchange-CrossTenant-AuthAs":"Anonymous","X-MS-Exchange-CrossTenant-FromEntityHeader":"HybridOnPrem","X-MS-Exchange-Transport-CrossTenantHeadersStamped":"PR1P264MB3296","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---\nChanges for v4:\n- No change\n\n tools/binman/etype/collection.py | 8 ++++++--\n tools/binman/etype/section.py    | 5 +++--\n 2 files changed, 9 insertions(+), 4 deletions(-)","diff":"diff --git a/tools/binman/etype/collection.py b/tools/binman/etype/collection.py\nindex c532aafe3e7..5ea6344bd25 100644\n--- a/tools/binman/etype/collection.py\n+++ b/tools/binman/etype/collection.py\n@@ -45,12 +45,16 @@ 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+            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":["v4","3/3"]}