From patchwork Wed Jan 11 23:10:11 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Glass X-Patchwork-Id: 1724849 Return-Path: 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=) Authentication-Results: legolas.ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=chromium.org header.i=@chromium.org header.a=rsa-sha256 header.s=google header.b=Vikxu3dL; dkim-atps=neutral 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 (P-384) server-digest SHA384) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4Nsk1P4m26z23fk for ; Thu, 12 Jan 2023 10:10:33 +1100 (AEDT) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 588C5855A1; Thu, 12 Jan 2023 00:10:28 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (1024-bit key; unprotected) header.d=chromium.org header.i=@chromium.org header.b="Vikxu3dL"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id E6FC385599; Thu, 12 Jan 2023 00:10:26 +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,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.2 Received: from mail-il1-x12c.google.com (mail-il1-x12c.google.com [IPv6:2607:f8b0:4864:20::12c]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id E0C2B8529E for ; Thu, 12 Jan 2023 00:10:23 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=sjg@chromium.org Received: by mail-il1-x12c.google.com with SMTP id a3so2688903ilp.6 for ; Wed, 11 Jan 2023 15:10:23 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=IAl7wdilJ+v7G6AnWusmdi8Xg6N0WhBL3Y60Cr18BOk=; b=Vikxu3dLaimqzooUiDmHuO63hP9m0zwe1CaBRKj3D7paDvHMe3aNb1mvC0CQ+qDCk0 CXJUkpjB8f7eNpishvSi4W+6yJSX+NS3MX4EdqZa3vGu7ufywAxDWXhoT+AvIm3BPqGt twk3c7VZ2f7vV92BF8W9LO6pKF4v28g2ptITY= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=IAl7wdilJ+v7G6AnWusmdi8Xg6N0WhBL3Y60Cr18BOk=; b=MdLZxASD5WByCJGyxPkSZxkd01gLiLlxPNjmZhpfqZPk2LpzmDMtHfu/mGuLsgKg1M gc4qC2WxKajnGuRz4XJ9E9RaIk+LRFxFn+6mYXcA4xU831s0DI5YAItJXEiEmC3gnQv/ xQzMtjqnLgwWgA3oIdxc5iR1Q14xlT0iN8HxjjJDN8LfWNkZgh4rVR86gxWYSS61v7ru E+L0w9Qh6tpJJ7a3QUcU2/3f8jsL/IWEH2kaoVNUQ07LVnRDtApow+SL3TDVPs6xbPR/ uFab55OF62myEvUTBjDmBBEDSf3mkJLzvwZunmW5mY2Hj8V2w2YAqikQl21jLBvSh0sp wnzg== X-Gm-Message-State: AFqh2koRM9WKL9Sg6AICU70knJIU9/WPe5WU7o/MDIlsDCZVVr5ojweg lHrzAldStpp4dH8xxZbCcd4o2R2oaPzIaYpF X-Google-Smtp-Source: AMrXdXtCDHmWGCIXlheOzyfMQMOlx4VuYUuEC/bgtJBvxOxVW3Q81ouNSzq4niXOaWMRPGWvi8J1Dw== X-Received: by 2002:a92:c52d:0:b0:30c:8ca:2f58 with SMTP id m13-20020a92c52d000000b0030c08ca2f58mr2928329ili.22.1673478622424; Wed, 11 Jan 2023 15:10:22 -0800 (PST) Received: from kea.bld.corp.google.com ([2620:15c:183:200:ae2d:ee84:1679:e251]) by smtp.gmail.com with ESMTPSA id c20-20020a023314000000b0039e61c8b8d1sm4680280jae.163.2023.01.11.15.10.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 11 Jan 2023 15:10:22 -0800 (PST) From: Simon Glass To: u-boot@lists.denx.de Cc: Stefan Herbrechtsmeier , =?utf-8?q?Pali_Roh=C3=A1r?= , Alper Nebi Yasak , Quentin Schulz , Keith Short , Simon Glass , Jan Kiszka Subject: [PATCH 0/8] binman: Enhancements for symbol handling Date: Wed, 11 Jan 2023 16:10:11 -0700 Message-Id: <20230111231019.3828687-1-sjg@chromium.org> X-Mailer: git-send-email 2.39.0.314.g84b9a713c41-goog MIME-Version: 1.0 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.39 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.103.6 at phobos.denx.de X-Virus-Status: Clean A recent U-Boot discussion[1] yielded a suggestion to allow an entry to be positioned by an ELF symbol. A similar need has come up in ChromiumOS' use of Zephyr[2], this time with an additional offset added in. This series adds support for this along with a few other things: - Generic support for updating ELF symbols (such that it can be used by Zephyr) - Support for 'null' entries which have no contents, but do appear in the fdtmap or FMAP - Support for overlapping entries [1] https://lore.kernel.org/all/20221230191238.6rcnia6rzoqcezx6@pali/ [2] https://issuetracker.google.com/264910598 Simon Glass (8): binman: Add a test for an inner section with a size binman: Clarify use of False when obtaining data binman: Add a null entry binman: Add a function to check for special section nodes binman: Support overlapping entries binman: Provide general support for updating ELF symbols dtoc: Add a way to read a phandle with params binman: Support positioning an entry by and ELF symbol tools/binman/binman.rst | 41 +++++++- tools/binman/elf.py | 31 +++++- tools/binman/entries.rst | 13 +++ tools/binman/entry.py | 33 +++++- tools/binman/etype/blob.py | 6 ++ tools/binman/etype/fit.py | 3 +- tools/binman/etype/null.py | 25 +++++ tools/binman/etype/section.py | 51 +++++++-- tools/binman/etype/u_boot_spl.py | 1 - tools/binman/ftest.py | 121 ++++++++++++++++++++++ tools/binman/test/267_section_inner.dts | 16 +++ tools/binman/test/268_null.dts | 19 ++++ tools/binman/test/269_overlap.dts | 21 ++++ tools/binman/test/270_overlap_null.dts | 24 +++++ tools/binman/test/271_overlap_bad.dts | 21 ++++ tools/binman/test/272_overlap_no_size.dts | 19 ++++ tools/binman/test/273_blob_symbol.dts | 24 +++++ tools/binman/test/274_offset_from_elf.dts | 30 ++++++ tools/binman/test/Makefile | 9 +- tools/binman/test/blob_syms.c | 20 ++++ tools/binman/test/blob_syms.lds | 30 ++++++ tools/dtoc/fdt_util.py | 28 +++++ tools/dtoc/test/dtoc_test_phandle.dts | 1 + tools/dtoc/test_fdt.py | 11 ++ 24 files changed, 577 insertions(+), 21 deletions(-) create mode 100644 tools/binman/etype/null.py create mode 100644 tools/binman/test/267_section_inner.dts create mode 100644 tools/binman/test/268_null.dts create mode 100644 tools/binman/test/269_overlap.dts create mode 100644 tools/binman/test/270_overlap_null.dts create mode 100644 tools/binman/test/271_overlap_bad.dts create mode 100644 tools/binman/test/272_overlap_no_size.dts create mode 100644 tools/binman/test/273_blob_symbol.dts create mode 100644 tools/binman/test/274_offset_from_elf.dts create mode 100644 tools/binman/test/blob_syms.c create mode 100644 tools/binman/test/blob_syms.lds