summaryrefslogtreecommitdiff
path: root/tools/binman
AgeCommit message (Collapse)Author
2026-08-06binman: nxp_imx8mcst: Handle FCFB header during SPI NOR bootMarek Vasut
In case the image that is wrapped in the nxp_imx8mcst already contains an FCFB header which is mandatory for SPI NOR boot, then the IVT is at offset 0x1000 instead of offset 0x0, but the whole image including the FCFB header must be signed to prevent attacker from tampering with any of the headers. Add the FCFB handling. Signed-off-by: Marek Vasut <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2026-08-03binman: add CST backend selection for i.MX8M signingMarek Vasut
Add support for setting the CST backend, both via DT property and CST_BACKEND environment variable. The CST currently supports two backends, 'ssl' and 'pkcs11', with 'ssl' being the default when CST tool is invoked without any -b parameter. Keep 'ssl' backend as the default, but explicitly pass it via the '-b' parameter, unless the user selects 'pkcs11' via either method. Signed-off-by: Marek Vasut <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2026-07-28tools: binman: pass KEYDIR to FIT entriesJames Hilliard
U-Boot's Makefile passes KEYDIR to direct mkimage invocations, but internal binman FIT builds only receive the generic BINMAN_INDIRS search path. Adding KEYDIR to BINMAN_INDIRS treats it as one more input-file search path: FIT entries still auto-detect a key directory from all include directories, so an explicit KEYDIR may not be the directory that gets passed to mkimage. It also makes a key-only directory part of the generic blob lookup path. Forward KEYDIR as a binman entry argument named keydir, matching the existing entry-argument mechanism used for BL31, TEE, of-list and other U-Boot build inputs. FIT entries use that directory directly for mkimage -k when fit,sign or fit,encrypt is enabled, falling back to the include-directory autodetection when keydir is not provided. Signed-off-by: James Hilliard <[email protected]>
2026-07-27binman: imx8mimage: Generate FSPI header in binman instead of mkimageMarek Vasut
Stop depending on the current mkimage method of generating the FSPI header, instead generate the FSPI header within binman itself. This is more flexible, as the FSPI header properties can be configured from within the board-specific DT instead of being hard-coded in mkimage at build time. Acked-by: Peng Fan <[email protected]> Signed-off-by: Marek Vasut <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2026-07-20global: Switch from source.denx.de to git.u-boot-project.orgTom Rini
As part of moving our git forge to a new location, update all references in tree to point to git.u-boot-project.org now. Signed-off-by: Tom Rini <[email protected]>
2026-07-13tools: binman: ti_board_cfg: Add configurable sw-rev supportShiva Tripathi
The software revision field in the combined board config binary header was hardcoded to 1, preventing independent control from SBL SWREV configured via ti-secure-rom's sw-rev property. Add support for the optional 'sw-rev' DTS property in ti_board_config nodes, which sets the SWREV byte in the header. Defaults to 1 for backward compatibility. Signed-off-by: Shiva Tripathi <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2026-07-06Merge branch 'next'Tom Rini
2026-07-06tools: Stop packaging patman as a pip moduleSimon Glass
patman is no longer shipped from the U-Boot tree, so drop it from the 'make pip' target and from make_pip.sh, and remove its packaging files (setup.py, pyproject.toml, requirements.txt). Nothing else refers to them by this point in the series, so they can go. Also fix binman's pyproject.toml, which declares package-data for a 'patman' package (a copy-paste leftover); use 'binman' instead. Signed-off-by: Simon Glass <[email protected]>
2026-06-26binman: Add optee binary to i.MX9 platform typesMathieu Dubois-Briand
OP-TEE tee.bin is generated externally and might be missing during the build. Signed-off-by: Mathieu Dubois-Briand <[email protected]>
2026-06-04binman: imx8mimage: Handle nxp,boot-from = "fspi"Marek Vasut
Boot from FSPI requires additional 448 Byte long header, with U-Boot SPL starting at offset 0x1000. Currently, both i.MX8MM and i.MX8MN attempt to generate this header using fspi_conf_block with filename pointing at CONFIG_FSPI_CONF_FILE file. This does not work, for two reasons. First, the CONFIG_FSPI_CONF_FILE is generated by mkimage -T imx8mimage and may not be available yet when the fspi_conf_block is evaluated. That leads to a race condition where highly parallel builds fail to find the CONFIG_FSPI_CONF_FILE, which is usually called fspi_header.bin, on first build attempt. Second, binman gets confused and patches incorrect offset of DDR PHY firmware blobs into U-Boot SPL, the offset is incremented by exactly 0x1000 which is the size of fspi_conf_block. Fix both problems at once, make imx8mimage handle the generated FSPI header and prepend it in front of the imx8mimage processed data. This way, the race condition is solved, because the data generated by the imx8mimage are surely combined only after mkimage -T imx8mimage ran. The binman offset calculation is also solved, because there is no fspi_conf_block node in the DT anymore. Signed-off-by: Marek Vasut <[email protected]>
2026-05-25global: Update URL for U-Boot projectTom Rini
Our official domain is now u-boot-project.org, so update all in-tree references to use the correct domain. Reviewed-by: Tony Dinh <[email protected]> Reviewed-by: Peter Robinson <[email protected]> Signed-off-by: Tom Rini <[email protected]>
2026-05-11binman: Use bintool wrappers for PKCS#11 tools in testsSimon Glass
The PKCS#11 signing tests in ftest.py call tools.run('softhsm2-util', ...) directly (and the equivalent for pkcs11-tool and p11-kit), even though the test setup has already constructed the corresponding Bintool instances. As Quentin Schulz observed on v1, the bintool wrapper for these tools is currently used only as an "is this installed?" probe. Route the eight remaining call sites in ftest.py through <bintool>.run_cmd(...), which the Bintool base class already provides. The change is test-side only; no production binman code calls these tools. Suggested-by: Quentin Schulz <[email protected]> Signed-off-by: Simon Glass <[email protected]>
2026-05-11binman: Flesh out the softhsm2-util bintool docstringSimon Glass
The Sphinx-generated bintools.rst currently produces an empty section for this bintool, since its class docstring is only a single line and so the body under the heading is blank. Extend the docstring with a short description of what softhsm2-util does and how binman uses it, so the generated documentation has useful content. Suggested-by: Heinrich Schuchardt <[email protected]> Signed-off-by: Simon Glass <[email protected]>
2026-05-11binman: Flesh out the pkcs11-tool bintool docstringSimon Glass
The Sphinx-generated bintools.rst currently produces an empty section for this bintool, since its class docstring is only a single line and so the body under the heading is blank. Extend the docstring with a short description of what pkcs11-tool does and how binman uses it, so the generated documentation has useful content. Suggested-by: Heinrich Schuchardt <[email protected]> Signed-off-by: Simon Glass <[email protected]>
2026-05-11binman: Flesh out the p11-kit bintool docstringSimon Glass
The Sphinx-generated bintools.rst currently produces an empty section for this bintool, since its class docstring is only a single line and so the body under the heading is blank. Extend the docstring with a short description of what p11-kit does and how binman uses it, so the generated documentation has useful content. Suggested-by: Heinrich Schuchardt <[email protected]> Signed-off-by: Simon Glass <[email protected]>
2026-05-05tools: binman: Test signing an encrypted FIT with a preload headerPaul HENRYS
Add a test to verify the preload header correctly signs an encrypted FIT. This test exercises the case where encryption uses random IVs that would change between mkimage calls. Signed-off-by: Paul HENRYS <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2026-05-05binman: collection: Set build_done on referenced entriesyan wang
The collection etype uses phandles in the 'content' property to reference other entries. Mark each referenced entry with build_done to avoid rebuilding the same entry data multiple times. This is important for cases where rebuilding may change the data content, e.g. due to timestamps or random IVs in encryption. Refactor GetContentsByPhandle() to return both the entry object and its data. Signed-off-by: yan wang <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2026-05-05binman: Generate preload header and sign data only oncePaul HENRYS
To optimize preload generation, generate the header and signatures only after all data has been collected in ProcessContentsUpdate(). This avoids signing the data multiple times. Since header_size is known upfront (from __init__), create a placeholder in `ObtainContents()` to avoid an extra packing pass when ProcessContentsUpdate() detects a size change. This reduces unnecessary repacking and signing operations. Signed-off-by: Paul HENRYS <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2026-04-17binman: Remove pre-generated entries.rst and bintools.rstSimon Glass
These files are now auto-generated by the binman_docs Sphinx extension during the doc build, so the committed copies and their symlinks in doc/develop/package/ are no longer needed. Update binman.rst to reference the Sphinx extension instead of the manual generation commands. Signed-off-by: Simon Glass <[email protected]> Rebased to apply file deletions cleanly. Signed-off-by: Heinrich Schuchardt <[email protected]>
2026-03-18test: binman: Add test for pkcs11 signed capsuleWojciech Dubowik
Test pkcs11 URI support for UEFI capsule generation. Both public certificate and private key are used over pkcs11 protocol. Pkcs11-tool has been introduced as softhsm tool doesn't have functionality to import certificates in commonly distributed version (only in the latest). Signed-off-by: Wojciech Dubowik <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2026-03-18binman: DTS: Add dump-signature option for capsulesWojciech Dubowik
Mkeficapsule can dump signature for signed capsules. It can be used in test to validate signature i.e. with openssl. Add an entry for device tree node. Signed-off-by: Wojciech Dubowik <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2026-03-18binman: Add dump signature option to mkeficapsuleWojciech Dubowik
It will be used to capsule signature verification. Signed-off-by: Wojciech Dubowik <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2026-03-18tools: mkeficapsule: Fix dump signature long optionWojciech Dubowik
Only short option has been present. Also rename dump_sig to dump-sig to match with other parameter names. Fixes: 16abff246b40 ("tools: mkeficapsule: add firmware image signing") Signed-off-by: Wojciech Dubowik <[email protected]> Reviewed-by: Ilias Apalodimas <[email protected]>
2026-03-18binman: Accept pkcs11 URI tokens for capsule updatesWojciech Dubowik
With pkcs11 support in mkeficapsule we can now accept URI tokens and not only files. Signed-off-by: Wojciech Dubowik <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2026-03-18binman: Remove the coverage allow_failures listSimon Glass
Now that iMX8 has full coverage the allow_failures list in RunTestCoverage() is no longer needed. Drop the list. Signed-off-by: Simon Glass <[email protected]>
2026-03-18binman: test: Fix code coverage for iMX8 and cst bintoolSimon Glass
Three files are currently missing test coverage: nxp_imx8mcst, nxp_imx8mimage and cst Add test methods to cover all missing code paths, trying to reuse the same .dts files where possible. This brings all three files to 100% coverage. Signed-off-by: Simon Glass <[email protected]>
2026-03-18binman: test: Move shared key files to test/security/Simon Glass
Move key.key and key.pem into the security/ subdirectory. These are used by security, vendor, and capsule tests but security is the most natural home for key material. Update all references. Signed-off-by: Simon Glass <[email protected]>
2026-03-18binman: test: Move FIT signing test data to test/fit/Simon Glass
Move the signing-related test data (keys, certificates, OpenSSL and SoftHSM2 configuration, dummy engine source) into the fit/ subdirectory alongside the FIT DTS test files. Drop the 340_ prefix from files that had it. Update the Makefile and all ftest.py references. Signed-off-by: Simon Glass <[email protected]>
2026-03-18binman: test: Move x86 binary test data to test/x86/Simon Glass
Move descriptor.bin, fitimage.bin.gz and ifwi.bin.gz into the x86/ subdirectory alongside the x86 DTS test files and update all references. Signed-off-by: Simon Glass <[email protected]>
2026-03-18binman: test: Move remaining test files to test/entry/Simon Glass
Move the remaining 60 or so test files into an entry/ subdirectory. These cover general entry types and features: entry args, fill, text, env, compress, replace, template, collection, ELF, overlap, listing, sections, symlink, TEE OS, and other miscellaneous entries. Drop the numeric prefixes and update all references. Signed-off-by: Simon Glass <[email protected]> Reviewed-by: Quentin Schulz <[email protected]>
2026-03-18binman: test: Move symbol test files to test/symbols/Simon Glass
Move about 10 test files for binman symbol patching into a symbols/ subdirectory. Drop the numeric prefixes and the redundant symbols_ filename prefix, and update all references. Signed-off-by: Simon Glass <[email protected]> Reviewed-by: Quentin Schulz <[email protected]>
2026-03-18binman: test: Move vendor-specific test files to test/vendor/Simon Glass
Move about 20 test files for vendor-specific platform support (TI, NXP i.MX, Renesas R-Car, Rockchip, PowerPC MPC85xx) into a vendor/ subdirectory. Drop the numeric prefixes and update all references. Signed-off-by: Simon Glass <[email protected]>
2026-03-18binman: test: Move UEFI capsule test files to test/capsule/Simon Glass
Move about a dozen test files for UEFI capsule creation (signed, versioned, accept, revert) into a capsule/ subdirectory. Drop the numeric prefixes and the redundant capsule_ filename prefix, and update all references. Signed-off-by: Simon Glass <[email protected]> Reviewed-by: Quentin Schulz <[email protected]>
2026-03-18binman: test: Move FIP/TF-A test files to test/fip/Simon Glass
Move about 15 test files for ARM Trusted Firmware FIP, ATF BL31, SCP, OpenSBI, and BL1 entries into a fip/ subdirectory. Drop the numeric prefixes and the redundant fip_ filename prefix, and update all references. Signed-off-by: Simon Glass <[email protected]>
2026-03-18binman: test: Move mkimage test files to test/mkimage/Simon Glass
Move about a dozen test files for mkimage entries into a mkimage/ subdirectory. Drop the numeric prefixes and the redundant mkimage_ filename prefix, and update all references. Signed-off-by: Simon Glass <[email protected]> Reviewed-by: Quentin Schulz <[email protected]>
2026-03-18binman: test: Move ChromeOS test files to test/cros/Simon Glass
Move about 10 test files for ChromeOS entries (GBB, vblock, FMAP) into a cros/ subdirectory. Drop the numeric prefixes and update all references. Signed-off-by: Simon Glass <[email protected]> Reviewed-by: Quentin Schulz <[email protected]>
2026-03-18binman: test: Move CBFS test files to test/cbfs/Simon Glass
Move about a dozen test files for Coreboot File System entries into a cbfs/ subdirectory. Drop the numeric prefixes and the redundant cbfs_ filename prefix, and update all references. Signed-off-by: Simon Glass <[email protected]> Reviewed-by: Quentin Schulz <[email protected]>
2026-03-18binman: test: Move security test files to test/security/Simon Glass
Move about 20 test files for signing, encryption, hash, pre-load, x509, and Xilinx bootgen entries into a security/ subdirectory. Drop the numeric prefixes and update all references. Signed-off-by: Simon Glass <[email protected]>
2026-03-18binman: test: Move blob test files to test/blob/Simon Glass
Move about a dozen test files for blob, blob-ext, blob-ext-list, fake-blob, and blob-symbol entries into a blob/ subdirectory. Drop the numeric prefixes and the redundant blob_ filename prefix, and update all references. Signed-off-by: Simon Glass <[email protected]> Reviewed-by: Quentin Schulz <[email protected]>
2026-03-18binman: test: Move FDT/fdtmap test files to test/fdt/Simon Glass
Move about 30 test files for FDT update, fdtmap, DTB compression, alternates, and bootph into an fdt/ subdirectory. Drop the numeric prefixes and the redundant fdt_ filename prefix, and update all references. Remove the unused no_alt_format.dts which has no references in any test. Signed-off-by: Simon Glass <[email protected]> Reviewed-by: Quentin Schulz <[email protected]>
2026-03-18binman: test: Move FIT image test files to test/fit/Simon Glass
Move about 40 test files for FIT images (signing, external data, split-elf, encryption, alignment, firmware loadables, templates) into a fit/ subdirectory. Drop the numeric prefixes and the redundant fit_ filename prefix, and update all references. Rename the three signature.dts variants to have unique names: signature.dts, signature_multi_key.dts and signature_no_nodes.dts. Signed-off-by: Simon Glass <[email protected]>
2026-03-18binman: test: Move x86 and Intel test files to test/x86/Simon Glass
Move about 40 test files for x86 and Intel platform support (ROM, microcode, ME, IFWI, FSP, descriptor, reset16, start16, FIT) into an x86/ subdirectory. Drop the numeric prefixes and the redundant x86_ filename prefix, and update all references. Signed-off-by: Simon Glass <[email protected]> Reviewed-by: Quentin Schulz <[email protected]>
2026-03-18binman: test: Move U-Boot variant test files to test/xpl/Simon Glass
Move about a dozen test files for U-Boot image variants (SPL, TPL, VPL, DTB, nodtb, bss-pad) into an xpl/ subdirectory. Drop the numeric prefixes and the redundant u_boot_ filename prefix, and update all references. Signed-off-by: Simon Glass <[email protected]> Reviewed-by: Quentin Schulz <[email protected]>
2026-03-18binman: test: Move pack/layout test files to test/pack/Simon Glass
Move about 50 test files related to basic layout, packing, alignment, sections, and image structure into a pack/ subdirectory. Drop the numeric prefixes from the filenames and update all references in ftest.py, entry_test.py, and binman_tests.rst Signed-off-by: Simon Glass <[email protected]> Reviewed-by: Quentin Schulz <[email protected]>
2026-03-18binman: test: Capture output from tests with warningsSimon Glass
Tests are supposed to run silently and capture any output produced. Fix testRemoveTemplate() so that the message about the missing openssl is captured, along with the invalid-images message. Fix testNxpImx9Image() as well, since it is expected that container.img and bl31.bin are missing. Signed-off-by: Simon Glass <[email protected]>
2026-02-02mkimage: fit: align DTs in external data to 8 Bytes by defaultMarek Vasut
Unless specified otherwise using the mkimage -B n option, align DTs in fitImage external data to 8 Bytes, and retain alignment of everything else to 4 Bytes. This should fulfill the DTspec requirement, that DTs must be placed at 8 Byte aligned addresses, even for DTs that are part of fitImage with external data. For fitImage with embedded data, there is nothing we can do, as the embedded data are aligned to 4 Bytes, just like any other DT property. Replace fdtdec_get_child_count() counting of images with counting of padding using fdt_for_each_subnode(). This is much more useful, as the added up padding can be passed directly to calloc() when allocating the buffer which holds the external data. The image count is no longer needed. Adjust the image layouting such, that buf_ptr is incremented to place the next image at align_size aligned offset. This is done at the beginning of the loop, once the align_size for current image can be determined from the current image type. Update binman test to validate the new 8 Byte alignment. Signed-off-by: Marek Vasut <[email protected]>
2026-01-27binman: Regenerate expired test certificateSimon Glass
The test certificate expired on Feb 13, 2024. This just used for testing, so regenerate it with a 100-year validity period. Suggested-by: Quentin Schulz <[email protected]> Signed-off-by: Simon Glass <[email protected]> Reviewed-by: Quentin Schulz <[email protected]>
2025-12-18Merge tag 'u-boot-socfpga-next-20251217' of ↵Tom Rini
https://source.denx.de/u-boot/custodians/u-boot-socfpga into next This pull request brings together a set of fixes and enhancements across the SoCFPGA platform family, with a focus on MMC/SPL robustness, EFI boot enablement, and Agilex5 SD/eMMC support. CI: https://source.denx.de/u-boot/custodians/u-boot-socfpga/-/pipelines/28776 Highlights: * SPL / MMC: o Fix Kconfig handling for SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION_TYPE o Correct raw sector calculations and respect explicit sector values when loading U-Boot from MMC in SPL o Adjust raw MMC loading logic for SoCFPGA platforms * EFI boot: o Permit EFI booting on SoCFPGA platforms o Disable mkeficapsule tool build for Arria 10 where unsupported * Agilex5: o Upgrade SDHCI controller from SD4HC to SD6HC o Enable MMC and Cadence SDHCI support in defconfig o Add dedicated eMMC device tree and defconfig for Agilex5 SoCDK o Revert incorrect GPIO configuration for SDIO_SEL o Refine U-Boot DT handling for SD and eMMC boot variants * SPI: o Allow disabling the DesignWare SPI driver in SPL via Kconfig * Board / configuration fixes: o Enable random MAC address generation for Cyclone V o Fix DE0-Nano-SoC boot configuration o Remove obsolete or conflicting options from multiple legacy SoCFPGA defconfigs
2025-12-10binman: blob_dtb: improve error message when SPL is not foundJérémie Dautheribes
When using binman with the '-a spl-dtb=y' flag, if the SPL blob is not found, binman throws a cryptic error message: binman: 'NoneType' object has no attribute 'startswith' Let's improve the error message to explicitly state which SPL blob is missing. This is particularly useful when binman is used as a standalone tool outside the U-Boot source tree. Signed-off-by: Jérémie Dautheribes <[email protected]> [trini: Add '# pragma: no cover' because coverage doesn't seem to like the documentation about this error] Signed-off-by: Tom Rini <[email protected]>
2025-12-10tools: use setuptools 78.1.1Heinrich Schuchardt
CVE-2025-47273 describes a path traversal vulnerability. Signed-off-by: Heinrich Schuchardt <[email protected]> Reviewed-by: Tom Rini <[email protected]>