summaryrefslogtreecommitdiff
path: root/tools
AgeCommit message (Collapse)Author
2025-06-24tools: imx8image: Fix the value passed to dcd_skip of build_container()Alice Guo
The value passed to dcd_skip of build_container() should be obtained by parsing .cfg file, and should not be fixed to false. For i.MX8QXP, dcd data needs to be skipped, in which case dcd_skip should be true. Fixes: 5f28a6599f01("tools: imx8image: add i.MX95 support") Signed-off-by: Alice Guo <alice.guo@nxp.com> Reviewed-by: Peng Fan <peng.fan@nxp.com> Reviewed-by: Heiko Schocher <hs@denx.de> Reported-by: Enric Balletbo i Serra <eballetb@redhat.com> Reviewed-by: Fabio Estevam <festevam@gmail.com>
2025-06-22tools/fit_check_sign: make the module dependent on CONFIG_FIT_SIGNATUREShiji Yang
The function definition of fit_check_sign() is guarded by "#ifdef CONFIG_FIT_SIGNATURE" in "tools/image-host.c". If we try to build it without CONFIG_FIT_SIGNATURE, we will get an error: /usr/bin/ld: tools/fit_check_sign.o: in function `main': fit_check_sign.c:(.text.startup+0x165): undefined reference to `fit_check_sign' collect2: error: ld returned 1 exit status Fixes: 9c79c8fe70da ("tools/fit_check_sign: make key optional") Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
2025-06-22lib: rsa: fix compilation error without opensslShiji Yang
The symbol TOOLS_IMAGE_PRE_LOAD doesn't depend on TOOLS_LIBCRYPTO. If we choose to build tools without openssl, rsa_verify_openssl() will attempt to call the unavailable openssl library functions. Fixes: 942c8c8e6697 ("rsa: Add rsa_verify_openssl() to use openssl for host builds") Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
2025-05-09Dockerfile: use lz4 instead of lz4-toolsHeinrich Schuchardt
Since Ubuntu Jammy lz4-tools is only a virtual package which pulls in lz4 as dependency. Update documentation too. Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com> Reviewed-by: Tom Rini <trini@konsulko.com>
2025-05-03tools: imx8image: add i.MX95 supportAlice Guo
i.MX95 uses binman to invoke mkimage to create image container. 2 image containers are needed currently. The first one is composed of ahab-container.img, LPDDR firmware images, OEI images, System Manager image and u-boot-spl.bin. The second one is consisted of ARM Trusted firmware and u-boot.bin. Because DDR OEI image and LPDDR firmware images have to be packaged together and named as m33-oei-ddrfw.bin by binman, so imx9_image.sh does not check if m33-oei-ddrfw.bin exists. When using "make imx95_19x19_evk_defconfig; make", imx9_image.sh will delete the line for u-boot.bin in container.cfg. In fact, binman is always called after the u-boot.bin is built, so imx9_image.sh does not check if u-boot.bin exists. Signed-off-by: Alice Guo <alice.guo@nxp.com>
2025-05-03binman: add a new entry type for packing DDR PHY firmware imagesAlice Guo
i.MX95 needs to combine DDR PHY firmware images and their byte counts together, so add a new entry type nxp-header-ddrfw for this requirement. Signed-off-by: Alice Guo <alice.guo@nxp.com>
2025-04-29Docker, CI: Add vexpress_fvp / vexpress_fvp_bloblist supportTom Rini
This adds the vexpress_fvp and vexpress_fvp_bloblist platforms to the list of platforms we test via emulator in CI. In order to do this we need to first have our container runtime have TF-A builds for the vexpress_fvp platform, both with and without transfer list support as well as installing "telnet" so that we can access console. In the CI files we check for the existence of /opt/tf-a/${TEST_PY_BD} and if found, copy bl1.bin and fip.bin to /tmp and set the variables so that we can later run FVP to run. Note that we currently disable the hostfs (semihosting) tests as they trigger a bug in FVP. This has been reported upstream, and can be enabled when fixed. Reviewed-by: Harrison Mutai <harrison.mutai@arm.com> Acked-by: Ilias Apalodimas <ilias.apalodimas@linaro.org> Signed-off-by: Tom Rini <trini@konsulko.com>
2025-04-28mkimage: fix option parsing segfaultCarlos López
getopt_long() expects a NULL-terminated list of structures. The current list in mkimage does not have a zero-filled structure at the end, which can cause getopt_long() to walk past the end of the array when passing an unknown option, causing a segmentation fault. As a reproducer, the following command causes a segmentation fault (tested in Debian 12): mkimage --foobar Signed-off-by: Carlos López <carlos.lopezr4096@gmail.com>
2025-04-24python: Use and refer to the venv module rather than virtualenvTom Rini
Using some form of sandbox with Python modules is a long standing best practice with the language. There are a number of ways to have a Python sandbox be created. At this point in time, it seems the Python community is moving towards using the "venv" module provided with Python rather than a separate tool. To match that we make the following changes: - Refer to a "Python sandbox" rather than virtualenv in comments, etc. - Install the python3-venv module in our container and not virtualenv. - In our CI files, invoke "python -m venv" rather than "virtualenv". - In documentation, tell users to install python3-venv and not virtualenv. Signed-off-by: Tom Rini <trini@konsulko.com>
2025-04-23rockchip: mkimage: Add rk3576 supportXuhui Lin
Add support for rk3576 package header in mkimage tool. Signed-off-by: Heiko Stuebner <heiko@sntech.de> Reviewed-by: Jonas Karlman <jonas@kwiboo.se> Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2025-04-23rockchip: mkimage: Add support for RK3528Yifeng Zhao
Add support for generating Rockchip Boot Image for RK3528. Similar to RK3568, the RK3528 has 64 KiB SRAM and 4 KiB of it is reserved for BootROM. Signed-off-by: Yifeng Zhao <yifeng.zhao@rock-chips.com> Signed-off-by: Jonas Karlman <jonas@kwiboo.se> Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2025-04-15buildman: Update to grabbing gcc-14.2.0 toolchains by defaultTom Rini
With the switch to using GCC 14.2.0 in commit 001bac5f16ad ("Dockerfile: Update to gcc-14.2.0 and clang-18") in CI, we should make buildman match this. Signed-off-by: Tom Rini <trini@konsulko.com>
2025-04-11Merge patch series "binman: Check code-coverage requirements"Tom Rini
Simon Glass <sjg@chromium.org> says: This series adds a cover-coverage check to CI for Binman. The iMX8 tests are still not completed, so a work-around is included for those. A few fixes are included for some other problems. Link: https://lore.kernel.org/r/20250410124333.843527-1-sjg@chromium.org
2025-04-11binman: Work around missing test coverageSimon Glass
The iMX8 entry-types don't have proper test coverage. Add a work-around to skip this for now. Signed-off-by: Simon Glass <sjg@chromium.org>
2025-04-11binman: Workaround lz4 cli padding in test casesJiaxun Yang
Newer lz4 util is not happy with any padding at end of file, it would abort with error message like: Stream followed by undecodable data at position 43. Workaround by skipping testCompUtilPadding test case and manually strip padding in testCompressSectionSize test case. Signed-off-by: Jiaxun Yang <jiaxun.yang@flygoat.com> Reviewed-by: Simon Glass <sjg@chromium.org> Signed-off-by: Simon Glass <sjg@chromium.org> Tested-by: Mattijs Korpershoek <mkorpershoek@kernel.org>
2025-04-11binman: Drop algo check in CheckSetHashValue()Simon Glass
The CheckAddHashValue() function is always called before this one, so the algorithm check is never used. Replace it with an assert to avoid a coverage error. Signed-off-by: Simon Glass <sjg@chromium.org>
2025-04-11binman: fit: Drop unused codeSimon Glass
The key-name-hint case is not tested so is presumably not used. Drop it. Signed-off-by: Simon Glass <sjg@chromium.org>
2025-04-11binman: Drop GetRootSkipAtStart()Simon Glass
This method is not called anymore, so drop it. Signed-off-by: Simon Glass <sjg@chromium.org>
2025-04-11binman: Exclude dist-packages and site-packagesSimon Glass
Newer versions of the python3-coverage tool require a directory separator before and after the directory name. Add this so that system package are not included in the coverage report. Signed-off-by: Simon Glass <sjg@chromium.org>
2025-04-11binman: Add coverage to requirementsSimon Glass
We need the code-coverage package to run the coverage tests. Add this package. Signed-off-by: Simon Glass <sjg@chromium.org>
2025-04-11Merge patch series "Switch to using $(PHASE_) in Makefiles"Tom Rini
Tom Rini <trini@konsulko.com> says: This series switches to always using $(PHASE_) in Makefiles when building rather than $(PHASE_) or $(XPL_). It also starts on documenting this part of the build, but as a follow-up we need to rename doc/develop/spl.rst and expand on explaining things a bit. Link: https://lore.kernel.org/r/20250401225851.1125678-1-trini@konsulko.com
2025-04-11Kbuild: Always use $(PHASE_)Tom Rini
It is confusing to have both "$(PHASE_)" and "$(XPL_)" be used in our Makefiles as part of the macros to determine when to do something in our Makefiles based on what phase of the build we are in. For consistency, bring this down to a single macro and use "$(PHASE_)" only. Signed-off-by: Tom Rini <trini@konsulko.com>
2025-04-11Merge tag 'efi-2025-07-rc1' of ↵Tom Rini
https://source.denx.de/u-boot/custodians/u-boot-efi Pull request efi-2025-07-rc1 CI: * https://source.denx.de/u-boot/custodians/u-boot-efi/-/pipelines/25648 Documentation: * Update authenticated capsules documentation UEFI: * Add support for loading FIT images including initrd - efi_loader: efi_load_initrd: provide a memory mapped initrd - efi_loader: binary_run: register an initrd - bootm: add support for initrd in do_bootm_efi * efi_selftest: remove un-needed NULL checks * efi: Fix efiboot for payloads loaded from memory * Print extra information from the bootmgr * Move public cert for capsules to .rodata * Set EFI capsule dfu_alt_info env explicitly * Make FDT extra space configurable * Install the ACPI table from the bloblist * Handle GD_FLG_SKIP_RELOC * Handle malloc() errors Others: * acpi: select CONFIG_BLOBLIST * smbios: select CONFIG_BLOBLIST * xilinx: dfu: Fill directly update_info.dfu_string * cmd: fwu: Dump custom fields from mdata structure * board: remove capsule update support in set_dfu_alt_info()
2025-04-11doc/buildman: typo 'require'Heinrich Schuchardt
%s/require/required/ Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2025-04-10tools/fit_check_sign: make key optionalDaniel Golle
Allow invoking fit_check_sig without the key parameter, allowing to validate only checksums and hashes for unsigned images. Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2025-04-10tools: add pkg-config for preload_check_signRaymond Mao
The cflags and ldflags of preload_check_sign depend on the openssl package thus pkg-config is needed to get the location where openssl is installed. This fix a potential build failure when openssl is not from the distro and installed in a varied place. Signed-off-by: Raymond Mao <raymond.mao@linaro.org>
2025-04-10patman: Show base commit on each patch when no cover letterSimon Glass
If a series is sent without a cover letter, there is no indication of the base commit. Add support for this, since single patches of small series may not always have a cover letter. Signed-off-by: Simon Glass <sjg@chromium.org>
2025-04-10binman: Fix a typo in elf.pySimon Glass
Fix an 'EFL' typo. It should be 'ELF'. Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Neha Malcom Francis <n-francis@ti.com>
2025-04-10patman: Show the base commit and branchSimon Glass
It is helpful to know which commit patches are based on, even if that commit might not be available to readers. Add a tag for this in the cover letter. Also add the local-branch name since that may be useful to the writer. Signed-off-by: Simon Glass <sjg@chromium.org>
2025-04-10CI: Move to latest container imagesTom Rini
- Bump up "Jammy" tag to jammy-20250404 - Include most recent changes to the Dockerfile itself Signed-off-by: Tom Rini <trini@konsulko.com>
2025-04-10Dockerfile: Add fdiskTom Rini
We had previously gotten this package through a chain of dependencies with guestfs-tools. Now that we no longer install that package, install fdisk (for sfdisk) directly. Fixes: eb1b90ec57a4 ("Dockerfile: Update to drop virt-make-fs packages") Signed-off-by: Tom Rini <trini@konsulko.com>
2025-04-10Dockerfile: Download the Arm FVP and extract itTom Rini
There are some reference platforms from Arm which are not found in QEMU but instead in the FVP tool. As we can make use of this in CI later on, download and extract it in our Dockerfile today. Signed-off-by: Tom Rini <trini@konsulko.com>
2025-04-10Dockerfile: Update to a more current TF-A release tagTom Rini
In preparation for using TF-A more in our CI loops, switch to the current release tag for TF-A. Signed-off-by: Tom Rini <trini@konsulko.com>
2025-04-10Dockerfile: install byaccLeonard Anderweit
Install byacc required to build cst from source. Signed-off-by: Leonard Anderweit <l.anderweit@phytec.de>
2025-04-10Dockerfile: Update to gcc-14.2.0 and clang-18Tom Rini
Outside of changing versions here the other visible change is that we tell grub that riscv64 does not have "large model" support. Without this change the resulting mkimage is non-functional. This is known upstream already. Link: https://savannah.gnu.org/bugs/?65909 Signed-off-by: Tom Rini <trini@konsulko.com>
2025-04-08Merge patch series "Improve pytest runtime"Tom Rini
Tom Rini <trini@konsulko.com> says: One thing that Simon Glass has noted is that our pytest run time keeps getting longer. Looking at: https://source.denx.de/u-boot/u-boot/-/pipelines/25011/test_report?job_name=sandbox%20test.py%3A%20%5Bfast%20amd64%5D we can see that some of the longest running tests are a little puzzling. It turns out that we have two ways of making filesystem images without requiring root access and one of them is significantly slower than the other. This series changes us from using virt-make-fs to only using the mk_fs helper that currently resides in test_ut.py which uses standard userspace tools. The final result can be seen at: https://source.denx.de/u-boot/u-boot/-/pipelines/25015/test_report?job_name=sandbox%20test.py%3A%20%5Bfast%20amd64%5D and the tests changed here now run much quicker. Link: https://lore.kernel.org/r/20250320140030.2052434-1-trini@konsulko.com
2025-04-08Dockerfile: Update to drop virt-make-fs packagesTom Rini
Now that we do not need nor want people to use virt-make-fs for filesystem tests, remove the related packages from the installation list. Signed-off-by: Tom Rini <trini@konsulko.com>
2025-04-03Merge patch series "Introduce J742S2 SoC and EVM"Tom Rini
Manorit Chawdhry <m-chawdhry@ti.com> says: The series adds support for J742S2 family of SoCs. Also adds J742S2 EVM Support and re-uses most of the stuff from the superset device J784s4. This device is a subset of J784S4 and shares the same memory map and thus the code is being reused from J784S4 to avoid duplication. It initially cleans up the J784s4 and AM69 files so that they can be re-usable for j742s2 and then it introduces J742S2. The DT for the following SoC will be coming to U-boot during 6.13 Sync so the series is kept as RFC till then. Here are some of the salient features of the J742S2 automotive grade application processor: The J742S2 SoC belongs to the K3 Multicore SoC architecture platform, providing advanced system integration in automotive, ADAS and industrial applications requiring AI at the network edge. This SoC extends the K3 Jacinto 7 family of SoCs with focus on raising performance and integration while providing interfaces, memory architecture and compute performance for multi-sensor, high concurrency applications. Some changes that this devices has from J784S4 are: * 4x Cortex-A72 vs 8x Cortex-A72 * 3x C7x DSP vs 4x C7x DSP * 4 port ethernet switch vs 8 port ethernet switch * 2 DDR controller vs 4 DDR controller Test logs: https://gist.github.com/manorit2001/f7df0e8cca1e9973b4361f0559c6f53d Link: https://lore.kernel.org/r/20250317-b4-upstream-j742s2-v4-0-4ba88bfd357a@ti.com
2025-04-03tools: binman: control.py: Delete template nodes after parsingNeha Malcom Francis
Dynamically going through the subnode array and deleting leads to templates being skipped from deletion when templates are consecutive in the subnode list. Prevent this from happening by first parsing the DT and then deleting the nodes. Add a testcase as well for this cornercase. Signed-off-by: Neha Malcom Francis <n-francis@ti.com>
2025-04-02Merge patch series "fs: exfat: Add exfat port based on exfat-fuse"Tom Rini
Marek Vasut <marex@denx.de> says: Import exfat-fuse libexfat, add U-Boot filesystem layer porting glue code and wire exfat support into generic filesystem support code. This adds exfat support to U-Boot. Fill in generic filesystem interface for mkdir and rm commands. Make filesystem tests test the generic interface as well as exfat, to make sure this code does not fall apart. Link: https://github.com/relan/exfat/commits/0b41c6d3560d ("CI: bump FreeBSD to 13.1.") Link: https://lore.kernel.org/r/20250317031418.223019-1-marex@denx.de
2025-04-02test_fs: Add exfat testsMarek Vasut
Add tests for the exfat filesystem. These tests are largely an extension of the FS_GENERIC tests with the following notable exceptions. The filesystem image for exfat tests is generated using combination of exfatprogs mkfs.exfat and python fattools. The fattols are capable of generating exfat filesystem images too, but this is not used, the fattools are only used as a replacement for dosfstools 'mcopy' and 'mdir', which are used to insert files and directories into existing fatfs images and list existing fatfs images respectively, without the need for superuser access to mount such images. The exfat filesystem has no filesystem specific command, there is only the generic filesystem command interface, therefore check_ubconfig() has to special case exfat and skip check for CONFIG_CMD_EXFAT and instead check for CONFIG_FS_EXFAT. Signed-off-by: Marek Vasut <marex@denx.de>
2025-04-01u_boot_pylib: Clean up pylint warnings in gitutil.pySimon Glass
This file has about 40 pylint warnings, but no errors. Quite a few of these warnings have been there for a while, but most are coming from newer versions of pylint, where people come up with new warnings. The f-string warning is the most common one: C0209: Formatting a regular string which could be an f-string That feature was not available when the code was written, but it is often more convenient than using % with a list of arguments. This patches reduces the number of warnings in this file, with 7 left remaining. Signed-off-by: Simon Glass <sjg@chromium.org>
2025-03-24Merge tag 'v2025.04-rc5' into nextTom Rini
Prepare v2025.04-rc5
2025-03-18dumpimage: fix handling of StarFive SPL too longHeinrich Schuchardt
The header of the StarFive U-Boot SPL file u-boot-spl.normal.out has a field indicating the payload size. When copying U-Boot SPL from a partition the copied file might be too long. Currently in this situation a misleading error message 'Incorrect CRC32' is written. We must use the payload size and not the file size when calculating the CRC32. Write a warning if the file is too long indicating the correct size. This enables the user to truncate the file accordingly. Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2025-03-18qconfig: Correct unhashable-type error with --scan-sourceSimon Glass
This gives an error with newer Python version, so fix it. Signed-off-by: Simon Glass <sjg@chromium.org>
2025-03-13tools: add HOSTCFLAGS from openssl pkg-configRaymond Mao
HOSTCFLAGS of some tools components (image-host, rsa-sign and ecdsa-libcrypto) depend on the directory where openssl is installed. Add them via pkg-config. This fixes a potential build failure in tools when openssl in installed in varied directories. Signed-off-by: Raymond Mao <raymond.mao@linaro.org> Reviewed-by: Peter Robinson <pbrobinson@gmail.com>
2025-03-13Dockerfile: Add missing 'rm -rf /tmp/coreboot-24.08'Tom Rini
We had missed removing the coreboot directory once done, fix this. Signed-off-by: Tom Rini <trini@konsulko.com>
2025-03-12Merge patch series "binman: build_from_git: Add argument specifying branch"Tom Rini
This series from Leonard Anderweit <l.anderweit@phytec.de> provides some improvements to the binman tool and i.MX specific tooling then makes use of it. Link: https://lore.kernel.org/r/20250226210501.72794-1-l.anderweit@phytec.de
2025-03-12binman: cst: Build from sourceLeonard Anderweit
Build the imx code singing tool from source instead of relying on the distro to provide the tool. Use the debian/unstable branch because the default branch is outdated. The binary is supposed to be build with docker, work around that by selecting the correct Makefile directly. Also append the description and add a link to documentation. Signed-off-by: Leonard Anderweit <l.anderweit@phytec.de> Reviewed-by: Simon Glass <sjg@chromium.org>
2025-03-12binman: build_from_git: Add optional make path inside git repoLeonard Anderweit
Add optional argument make_path to build_from git. The new argument allows specifying the path to a Makefile in case it is not in the root of the git repo. Also adjust the corresponding test. Signed-off-by: Leonard Anderweit <l.anderweit@phytec.de> Reviewed-by: Simon Glass <sjg@chromium.org>