summaryrefslogtreecommitdiff
path: root/tools
AgeCommit message (Collapse)Author
3 daystools: Handle realloc failure in strlist_addFrancois Berder
If realloc fails, list->strings was set to NULL and it would create a leak. This commit ensures that if we cannot add a string to the list, the list stays in a good state. Signed-off-by: Francois Berder <fberder@outlook.fr>
4 daysbinman: 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 <quentin.schulz@cherry.de> Signed-off-by: Simon Glass <simon.glass@canonical.com> Reviewed-by: Quentin Schulz <quentin.schulz@cherry.de>
8 daysMerge patch series "sc5xx: Add complete board support for all ADI SC5xx boards"Tom Rini
Greg Malysa <malysagreg@gmail.com> says: This series adds the final pieces to enable mainline U-Boot to build and boot all Analog Devices SC5xx SoCs and supports the associated carrier board options. At this point it should be viable for new users for these platforms to start with the latest version of U-Boot rather than our vendor fork, however some features (such as OSPI support and falcon boot) remain unavailable until we are able to unify our implementations with the mainline implementations. Link: https://lore.kernel.org/r/20251211080414.5363-1-malysagreg@gmail.com [trini: Rebuild CI containers to have new tools] Signed-off-by: Tom Rini <trini@konsulko.com>
8 daysdocker: add Analog Devices tools to docker imageGreg Malysa
The boot ROM on Analog Devices ADSP-SC5xx SoCs requires code packaged in the LDR format. Normally this is available as part of our yocto-derived toolchain but, it is not a part of any other pre-made toolchain anymore, so it is otherwise unavailable in the docker image for CI. This patch adds a source build from the ADI maintained github repository. In the future, a package available for install via apt will be available, but currently there is no arm64 build upstream, so we must build from source for the time being to support CI on both amd64 and arm64 runners. The same ldr tool is used for arm and arm64 for all of our boards with names adjusted to match the expected $(CROSS_COMPILE) for these boards. Signed-off-by: Greg Malysa <malysagreg@gmail.com>
12 daystest/py, buildman: Update filelock package versionTom Rini
The GitHub dependabot tool has reported a "medium" priority bug CVE-2026-22701, with this package. Update to the patched version. Reported-by: GitHub dependabot Signed-off-by: Tom Rini <trini@konsulko.com>
12 daystools: amlimage: include <inttypes.h>Robert Marko
PRIuN, PRIxN, etc macros are defined in <inttypes.h>, without it being included errors like: tools/amlimage.c:124:38: error: expected ‘)’ before ‘PRIu8’ tools/amlimage.c:126:31: error: expected ‘)’ before ‘PRIu32’ Can be hit depending on the host compiler and HOSTCFLAGS. Fixes: 18c1654567dc ("tools: mkimage: Add Amlogic Boot Image type") Signed-off-by: Robert Marko <robert.marko@sartura.hr> Reviewed-by: Mark Kettenis <kettenis@openbsd.org> Reviewed-by: Ferass El Hafidi <funderscore@postmarketos.org>
2026-01-17tools: fix format string in tools/imx8image.cMilan P. Stanić
on 32bit systems with musl libc compiler emits warning: format '%lx' expects argument of type 'long unsigned int', but argument 3 has type 'size_t' {aka 'unsigned int'} [-Wformat=] to fix this use format length modifier 'z' (size_t) instead of 'l' Signed-off-by: Milan P. Stanić <mps@arvanta.net> Reviewed-by: Tom Rini <trini@konsulko.com>
2026-01-05scripts/dtc: Update to upstream version v1.7.2-35-g52f07dcca47cMarek Vasut
Synchronize local copy of DTC with Linux 6.17 . This includes the following picked and squashed commits from Linux kernel. The squash was necessary, since the DTC here contains changes which were also part of DTC in Linux alraedy, and the squash helped resolve those without going back and forth with the changes. The following commits from Linux are picked: 8f324cd712df7 # scripts/dtc: consolidate include path options in Makefile b5b3d9b63b0ee # scripts/dtc: Add yamltree.c to dtc sources 7d97a76f226d6 # scripts/dtc: Update to upstream version v1.4.7-14-gc86da84d30e4 ea6f243be74e5 # scripts/dtc: Update to upstream version v1.4.7-57-gf267e674d145 02d435d4eccd8 # scripts/dtc: Update to upstream version v1.5.0-23-g87963ee20693 6e321b7637396 # scripts/dtc: Update to upstream version v1.5.0-30-g702c1b6c0e73 9f19ec91a7a35 # scripts/dtc: dtx_diff - add color output support 8287d642f38d1 # scripts/dtc: Update to upstream version v1.5.1-22-gc40aeb60b47a 4c52deef9225d # scripts/dtc: Revert "yamltree: Ensure consistent bracketing of properties with phandles" 5d3827e1452ed # scripts/dtc: Remove unused makefile fragments 40dd266887654 # scripts/dtc: Update to upstream version v1.6.0-2-g87a656ae5ff9 8d4cf6b6acb59 # scripts/dtc: use pkg-config to include <yaml.h> in non-standard path b9bf9ace5ae90 # scripts/dtc: Update to upstream version v1.6.0-11-g9d7888cbf19c 69a883b6f5ac0 # scripts/dtc: dtx_diff - make help text formatting consistent 8f829108b8aed # scripts/dtc: only append to HOST_EXTRACFLAGS instead of overwriting b39b4342ac495 # scripts/dtc: Update to upstream version v1.6.0-31-gcbca977ea121 93c6424c486b3 # scripts: dtc: Fetch fdtoverlay.c from external DTC project 0dd574a1d75c3 # scripts/dtc: Update to upstream version v1.6.0-51-g183df9e9c2b9 ec38b5df8a231 # scripts: dtc: Build fdtoverlay tool a0c8c431411f5 # scripts: dtc: Remove the unused fdtdump.c file e7dc653d4e890 # scripts/dtc: Add missing fdtoverlay to gitignore d2bf5d2e3f09c # scripts/dtc: Update to upstream version v1.6.1-19-g0a3a9d3449c8 a60878f5532d0 # scripts/dtc: dtx_diff: remove broken example from help text 8b739d8658a9b # scripts/dtc: Call pkg-config POSIXly correct b6eeafa67df00 # scripts/dtc: Update to upstream version v1.6.1-63-g55778a03df61 f96cc4c787588 # scripts/dtc: Update to upstream version v1.6.1-66-gabbd523bae6e 09ab9c092ef2b # scripts/dtc: Update to upstream version v1.7.0-93-g1df7b047fe43 ded8a5a498f2d # scripts/dtc: Update to upstream version v1.7.0-95-gbcd02b523429 ee6ff6fca7e71 # scripts/dtc: Update to upstream version v1.7.2-35-g52f07dcca47c This also includes forward port of U-Boot commit e8c2d25845c7 ("libfdt: Revert 6dcb8ba4 from upstream libfdt") to avoid binary size growth. Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
2026-01-02kbuild: Bump the build system to 6.1Sughosh Ganu
Our last sync with the kernel was 5.1. We are so out of sync now, that tracking the patches and backporting them one by one makes little sense and it's going to take ages. This is an attempt to sync up Makefiles to 6.1. Unfortunately due to sheer amount of patches this is not easy to review, but that's what we decided during a community call for the bump to 5.1, so we are following the same guidelines here. Signed-off-by: Sughosh Ganu <sughosh.ganu@linaro.org> Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>a #rebased on -next
2025-12-22Merge tag 'v2026.01-rc5' into nextTom Rini
Prepare v2026.01-rc5
2025-12-19Merge tag 'u-boot-amlogic-next-20251219' of ↵Tom Rini
https://source.denx.de/u-boot/custodians/u-boot-amlogic into next - Add u-boot SPL support for GX SoCs - meson_gx_mmc: reduce maximum frequency - Add support for EFI capsule updates on all Amlogic boards
2025-12-18test/py, buildman: Update filelock package versionTom Rini
The GitHub dependabot tool has reported a "medium" priority bug CVE-2025-68146, with this package. Update to the patched version. Reported-by: GitHub dependabot Signed-off-by: Tom Rini <trini@konsulko.com>
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-16tools/libfdt/fdt_rw: fix SPDX-License-IdentifierMax Merchel
Currently, the terms of both licenses (GPL 2.0 and BSD-2-Clause) must be met. However, before switching to the SPDX license identifier, the license information in the file begins with: "libfdt is dual licensed: you can use it either under the terms of the GPL, or the BSD license, at your option." Therefore, the missing "OR" between the licenses is added. Fixes: 3508476 ("libfdt: SPDX-License-Identifier: GPL-2.0+ BSD-2-Clause") Signed-off-by: Max Merchel <Max.Merchel@ew.tq-group.com>
2025-12-14rockchip: mkimage: enhance comments for v1 headerQuentin Schulz
Improve the image header documentation for v1 header: - specify this applies to all MMC, not only SD cards, - specify the offset for SPI flashes, - specify the key used for RC4 encoding, - specify what "init" refers to, especially since some configs enable TPL, - specify what "init_boot_size" refers to, especially since some configs enable TPL, - specify the size of a block, - add documentation for init_size and init_boot_size, Note that the offset on the storage medium isn't necessarily 32KiB (64 blocks) for MMC or 0 for SPI flashes, it's just the first offset the BootROM checks. Barebox[1] lists a few options, though those are applicable to RK35xx which use the v2 header, so not guaranteed they can be shared. On RK3399, the binary can at least be stored at offset 0 and 32KiB on SPI flashes. [1] https://git.pengutronix.de/cgit/barebox/tree/arch/arm/mach-rockchip/bbu.c#n19 Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de> Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2025-12-11tools: mkimage: Add Amlogic Boot Image typeJonas Karlman
Add support for creating an Amlogic Boot Image that pass CHK in BL1 on Amlogic AArch64 SoCs. Images can optionally be signed for secure boot scenario, however creation of signed images has not been implemented. Example of how to use it: # Create an amlogic boot image tools/mkimage -T amlimage -n gxbb -d u-boot-spl.bin u-boot-amlogic.bin # List boot image header information tools/mkimage -l u-boot-amlogic.bin # Extract amlogic boot image payload tools/dumpimage -T amlimage -o bl2-payload.bin u-boot-amlogic.bin Or with binman using something like: binman { u-boot-amlogic { filename = "u-boot-amlogic.bin"; pad-byte = <0xff>; mkimage { filename = "bl2.bin"; args = "-n", "gxbb", "-T", "amlimage"; u-boot-spl { }; }; }; }; Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org> Signed-off-by: Jonas Karlman <jonas@kwiboo.se> [Ferass: check digest type in _print_header, version in _verify_image] Signed-off-by: Ferass El Hafidi <funderscore@postmarketos.org> Link: https://patch.msgid.link/20251126-spl-gx-v5-1-6cbffb2451ca@postmarketos.org Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
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 <jeremie.dautheribes@bootlin.com> [trini: Add '# pragma: no cover' because coverage doesn't seem to like the documentation about this error] Signed-off-by: Tom Rini <trini@konsulko.com>
2025-12-10tools: use setuptools 78.1.1Heinrich Schuchardt
CVE-2025-47273 describes a path traversal vulnerability. Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com> Reviewed-by: Tom Rini <trini@konsulko.com>
2025-12-08Merge tag 'v2026.01-rc4' into nextTom Rini
Prepare v2026.01-rc4
2025-12-06Merge patch series "test/py: fit: Deduplicate the test"Tom Rini
This series from Marek Vasut <marek.vasut@mailbox.org> cleans up some of the FIT pytests we have and then extends mkimage to support including the TEE in FIT images when using "-f auto" to create the resulting FIT. Link: https://lore.kernel.org/r/20251125154324.51940-1-marek.vasut@mailbox.org
2025-12-06mkimage: Add support for bundling TEE in mkimage -f autoMarek Vasut
Introduce two new parameters to be used with mkimage -f auto to bundle TEE image into fitImage, using auto-generated fitImage. Add -z to specify TEE file name and -Z to specify TEE load and entry point address. This is meant to be used with systems which boot all of TEE, Linux and its DT from a single fitImage, all booted by U-Boot. Example invocation: " $ mkimage -E -A arm -C none -e 0xc0008000 -a 0xc0008000 -f auto \ -d arch/arm/boot/zImage \ -b arch/arm/boot/dts/st/stm32mp135f-dhcor-dhsbc.dtb \ -z ../optee_os/out/arm-plat-stm32mp1/core/tee-raw.bin \ -Z 0xde000000 \ /path/to/output/fitImage " Documentation update and test are also included, the test validates both positive and negative test cases, where fitImage does not include TEE and does include TEE blobs. Acked-by: Quentin Schulz <quentin.schulz@cherry.de> Signed-off-by: Marek Vasut <marek.vasut@mailbox.org>
2025-12-06Merge patch series "fit: allow signing with an OpenSSL engine"Tom Rini
Quentin Schulz <foss+uboot@0leil.net> says: I have a couple of products whose U-Boot FIT is signed via a proprietary OpenSSL engine which only expects the name of a "slot" to select the key to sign data with. Currently mkimage fit support expects either a key-dir (-k) or a key-file (-G) as a toggle for signing, however this doesn't apply to our usecase because we use an OpenSSL engine (so no key-file to provide) which doesn't mimic a directory layout like key-dir implies. Moreover, binman really expects private keys (.key extension) to be available in this key-dir directory, which we of course cannot provide. This series allows to sign a FIT image with mkimage (and binman) with an OpenSSL engine, including PKCS11 and custom engines. If a key-dir needs to be passed (which is typical for PKCS11), one can do so by using fit,engine-keydir. Note that the public key (.crt extension) still needs to be available if one wants to embed it for signature verification (which is probably what one wants to do :) ). It is probably possible to use the engine for getting the public key instead of storing it on disk, but this needs to be added to fdt_add_pubkey and then binman, through a mechanism different from fit,engine*. One issue though is that since binman resolves key paths absolutely and that I don't believe an OpenSSL engine would happen to have the exact same key_id value than a local absolute path, fit,encrypt and fit,engine cannot cohabit. An issue for the next person who wants an OpenSSL engine AND encrypt the same FIT image, I don't. Note that LibreSSL supports neither engines nor providers as far as I could tell (engine support has been explicitly removed). Note that OpenSSL engines have been deprecated since 3.0 (Q3-2021), however note that OpenSSL 3.5 still seems to support engines (git grep) and is EOL end of Q1 2030. If anyone has an idea on how to test PKCS11 with SOftHSMv2 with id= passed in fit,engine-keydir, I'm all ears. I'm also wondering if the explanation around fit,engine-keydir aren't too much. After all, they are passed verbatim to mkimage as -k argument and the special cases are all specific to mkimage and not binman. Link: https://lore.kernel.org/r/20251121-binman-engine-v3-0-b80180aaa783@cherry.de
2025-12-06tools: binman: fit: add tests for signing with an OpenSSL engineQuentin Schulz
This adds a test that signs a FIT and verifies the signature with fit_check_sign. OpenSSL engines are typically for signing with external HW so it's not that straight-forward to simulate. For a simple RSA OpenSSL engine, a dummy engine with a hardcoded RSA 4096 private key is made available. It can be selected by setting the OpenSSL engine argument to dummy-rsa-engine. This can only be done if the engine is detected by OpenSSL, which works by setting the OPENSSL_ENGINES environment variable. I have no clue if dummy-rsa-engine is properly implementing what is expected from an RSA engine, but it seems to be enough for testing. For a simple PKCS11 engine, SoftHSMv2 is used, which allows to do PKCS11 without specific hardware. The keypairs and tokens are generated on the fly. The "prod" token is generated with a different PIN (1234 instead of 1111) to also test MKIMAGE_SIGN_PIN env variable while we're at it. Binman will not mess with the local SoftHSMv2 setup as it will only use tokens from a per-test temporary directory enforced via the temporary configuration file set via SOFTHSM2_CONF env variable in the tests. The files created in the input dir should NOT be named the same as it is shared between all tests in the same process (which is all tests when running binman with -P 1 or with -T). Once signed, it's checked with fit_check_sign with the associated certificate. Finally, a new softhsm2_util bintool is added so that we can initialize the token and import keypairs. On Debian, the package also brings libsofthsm2 which is required for OpenSSL to interact with SoftHSMv2. It is not the only package required though, as it also needs p11-kit and libengine-pkcs11-openssl (the latter bringing the former). We can detect if it's properly installed by running openssl engine dynamic -c pkcs11. If that fails, we simply skip the test. The package is installed in the CI container by default. Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
2025-12-06tools: binman: fit: add support for OpenSSL enginesQuentin Schulz
This adds support for using an OpenSSL engine for signing a FIT image. To use it, one should set the fit,engine property at the FIT node level with the engine to use. This will in turn call mkimage with the -N option. The -k argument to mkimage can be specified via fit,engine-keydir. If not specified, -k is not passed to mkimage. This property is especially useful for pkcs11 engine to specify slots, token label, etc... As far as I could tell, mkimage encrypts and signs a FIT in one go, thus the -k argument applies to both signing and encrypting. Considering we reuse the -k argument for two different meanings (info to pass to the engine when using an engine otherwise the directory where keys are stored), we cannot reasonably encrypt using local keys and signing with an engine, hence the enforced check. I believe it should be possible to support encrypting and signing with the same engine (using different key pairs of course, via different key-name-hint likely), but this is left for the next person to implement. This is why the property is named fit,engine and not fit,sign-engine. Ditto for fit,engine-keydir. The public key (with .crt extension) is still required if it needs to be embedded in the SPL DTB for example. We could probably support retrieving the public key from an engine, but this is a change to make to fdt_add_pubkey.c. Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
2025-12-06tools: binman: mkimage: add support for passing the engineQuentin Schulz
mkimage has support for OpenSSL engines but binman currently doesn't for direct callers of mkimage (e.g. the fit etype). This prepares for adding support for OpenSSL engines for signing elements of a FIT image, which will done in the next commit. Reviewed-by: Wolfgang Wallner <wolfgang.wallner@br-automation.com> Reviewed-by: Simon Glass <sjg@chromium.org> Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
2025-12-06fit: support signing with only an engine_idQuentin Schulz
Currently, when one wants to use an OpenSSL engine to sign a FIT image, one needs to pass a keydir (via -k) to mkimage which will then be prepended to the value of the key-name-hint before being passed as key_id argument to the OpenSSL Engine API, or pass a keyfile (via -G) to mkimage. My OpenSSL engine only has "slots" which are not mapped like directories, so using keydir is not proper, though I could simply have -k '' I guess but this won't work currently with binman anyway. Additionally, passing a keyfile (-G) when using an engine doesn't make sense as the key is stored in the engine. Let simply allow FIT images be signed if both keydir and keyfile are missing but an engine is to be used. The keyname member is already filled by looking at key-name-hint property in the FIT and passed to the engine, which is exactly what is needed here. Reviewed-by: Wolfgang Wallner <wolfgang.wallner@br-automation.com> Reviewed-by: Simon Glass <sjg@chromium.org> Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
2025-12-06tools/logos: Add U-Boot logo with text 'U-Boot'Heinrich Schuchardt
The logo with the text 'U-Boot' has been used in multiple presentations. Up to now it was only available from my upload to wikimedia.org. Make it available in our repository. Link: https://upload.wikimedia.org/wikipedia/commons/9/9e/U-Boot_Logo.svg Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
2025-12-04binman: fallback to importlib_resources on Python 3.8Chukun Pan
Python 3.7 and 3.8 lack the files attribute in importlib.resources. Use importlib_resources to fix build errors with Python 3.8: binman: module 'importlib.resources' has no attribute 'files' Fixes: 538719cb6a77 ("binman: migrate from pkg_resources to importlib") Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn> Acked-by: Quentin Schulz <quentin.schulz@cherry.de> [trini: Re-add # pragma: no cover line] Signed-off-by: Tom Rini <trini@konsulko.com>
2025-12-01CI: Update to latest container imagesTom Rini
- Bump to noble-20251013 - Include tools for sage lab, build TF-A for platforms there. - Switch to distro provided trace-cmd, add libengine-pkcs11-openssl - Use mirrors for GNU projects - Switch to QEMU 10.1.x Signed-off-by: Tom Rini <trini@konsulko.com>
2025-12-01Merge patch series "CI: use mirrors for GNU tools"Tom Rini
Quentin Schulz <foss+uboot@0leil.net> says: I have to add one (1) package to the Dockerfile as a new dependency and wanted to build the image to verify it works. I wasn't able to because GNU servers are just not reliable at all. The git server URL we're using doesn't seem to be a mirrored one, and switching to mirror URLs seem to make fetching possible again. Unfortunately, we don't have the option to do that for coreboot's dependencies, though we can ask coreboot to download the dependencies through its own mirror, which we do in this series. Link: https://lore.kernel.org/r/20251127-gnu-mirror-v2-0-c86fa2e8d464@cherry.de
2025-12-01CI: add libengine-pkcs11-openssl package for pkcs11Quentin Schulz
In the future, we'll need proper pkcs11 support so that we can validate mkimage/binman works well with pkcs11 OpenSSL engine/provider via softhsm2-util (already installed). Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de> Reviewed-by: Tom Rini <trini@konsulko.com>
2025-12-01Dockerfile: Switch to distro-provided trace-cmdTom Rini
Now that we have moved to Ubuntu 24.04 the distribution provided trace-cmd is new enough for our needs. Switch to installing that and stop building it from source. Signed-off-by: Tom Rini <trini@konsulko.com>
2025-12-01Docker: Update QEMU to 10.1.xTom Rini
The current release of QEMU is 10.1.2 and we should be tracking at least that new currently, to help find and fix emulation problems. This will make it smaller of a change when we move to 10.1.3 which will re-enable sifive_unleashed_sdcard testing again. Signed-off-by: Tom Rini <trini@konsulko.com>
2025-12-01Merge patch series "Gitlab: Add a "sage-lab" stage to access a board farm"Tom Rini
This series adds support for Gitlab pipelines to run our pytest suite on a limited number of hardware platforms. While better documentation and some further enhancements will be coming soon, this can be triggered by passing '-o ci.variable="SAGE_LAB=1"' to git push, or adding 'pushOption = ci.variable="SAGE_LAB=1"' to the .git/config file for the project. It can also be invoked manually from the pipeline webpage on a an existing pipeline. Link: https://lore.kernel.org/r/20251118210015.624758-1-trini@konsulko.com
2025-12-01Gitlab sage, Docker: Add snmp and rsyncTom Rini
Add snmp and rsync to the normal docker image. While these tools are only required for the lab on sage, I think it's a small enough addition to be worth always including at this point. A higher level TODO I think may be to see if we can / should split the resulting container up, or if there's host tooling we can remove at a later step, after building all the software we require. Signed-off-by: Tom Rini <trini@konsulko.com>
2025-12-01Docker: Add building TF-A for pine64_plusTom Rini
In order to add pine64_plus to the sage lab we will need to have a build of TF-A available for it as bl31.bin. Add this to the existing build loop of TF-A targets. Signed-off-by: Tom Rini <trini@konsulko.com>
2025-12-01Cyclone V Board handsoff scriptBrian Sune
Since turning from old build flow. New Altera SoCFPGA requires converting handsoff conversion via the python script. This is from official provided, and now sync to U-Boot with better location at tools/cv_xxxx. Meantime, requirement.txt is also provided to further explain the libraries require for these scripts. Signed-off-by: Brian Sune <briansune@gmail.com> Reviewed-by: Tien Fong Chee <tien.fong.chee@altera.com>
2025-11-30CI: use coreboot mirror for GNU dependencies of corebootQuentin Schulz
coreboot buildgcc script downloads GNU dependencies from GNU FTP server. For some reason, this is also as unreliable as their git main server. There's no option to use a GNU mirror (and I'm not even sure if there's one for FTP), so we simply pass --mirror to the buildgcc script via the BUILDGCC_OPTIONS variable so that it makes use of coreboot's mirror. Hopefully, this proves more reliable than GNU original FTP server. Reviewed-by: Tom Rini <trini@konsulko.com> Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
2025-11-30CI: use mirror for gnulib dependency of grubQuentin Schulz
grub bootstrap script downloads gnulib from a non-mirror URL and thus is unreliable. One can specify the URL to fetch from with GNULIB_URL environment variable, so let's make this variable point at a mirror URL. Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
2025-11-30CI: use GNU mirror for grub (and switch to HTTPS)Quentin Schulz
GNU announced they activated mirrors for git servers[1] in May this year. The main git server keeps being very unreliable and switching to those mirrors seems to improve reliability (albeit somewhat slow). Yes, the URL in this patch has nothing in common with the URL in the linked mail, it was extracted from the Clone section in the mirrored cgit page[2]. While at it, switch to the HTTPS clone which is "more secure" than git protocol. [1] https://lists.gnu.org/archive/html/savannah-users/2025-05/msg00002.html [2] https://cgit.git.savannah.gnu.org/cgit/grub.git/ Reviewed-by: Tom Rini <trini@konsulko.com> Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
2025-11-26CI: Update to latest containerTom Rini
- Move to jammy-20251013 tag - Bring in tkinter so that FATtools should run and more tests should be run. - Update to QEMU 10.0.6 - Pick tags for (most of) trace-cmd Signed-off-by: Tom Rini <trini@konsulko.com>
2025-11-26Dockerfile: Update building trace tools slightlyTom Rini
We have not been picking a tag for the trace-cmd build process. Currently the tip of libtraceevent fails to build. Address both problems here by picking recent stable tags for libtraceevent and libtracefs (trace-cmd has no recent tags). Further, as it is often reported that this fails to build due to a race, stop using "make -j$(nproc)" as this is also small enough of a set of builds to not be an issue. Signed-off-by: Tom Rini <trini@konsulko.com>
2025-11-26Dockerfile: Include python3-tk for FATtoolsTom Rini
In some cases our tests for exFAT don't run because we fail to be able to create the underlying image. This is in turn because while creation of the image succeeds, it seems that some way of how we invoke FATtools wants to import tkinter, that fails and so the test stops there. Having tkinter available (and then presumably a fallback to non-GUI because it's not available) leads to the tests running as expected. Reviewed-by: Marek Vasut <marek.vasut@mailbox.org> Signed-off-by: Tom Rini <trini@konsulko.com>
2025-11-26Docker: Update QEMU to 10.0.6Tom Rini
The QEMU project has the 10.0.x series as an LTS release. While we are not doing an LTS ourselves, we can be confident in the changes between 10.0.2 and 10.0.6, so update ourselves. Signed-off-by: Tom Rini <trini@konsulko.com>
2025-11-24Merge tag 'v2026.01-rc3' into nextTom Rini
Prepare v2026.01-rc3
2025-11-15docker: Correct the linux/arm64 platform stringBin Meng
The Dockerfile is using linux/arm64 without the /v8 suffix. Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2025-11-11Merge patch series "rsa: fix dependency, rename and relocate RSASSA PSS symbols"Tom Rini
Quentin Schulz <foss+uboot@0leil.net> says: While historically signature verification is mostly done for FIT such FIT_SIGNATURE dependency for signature algorithm makes sense, it isn't the only kind of file we can verify signatures of. It can also be done manually with rsa_verify_hash() with an embedded public key. Considering the impacted code is guarded by RSA_VERIFY, let's make the symbol depend on that otherwise selecting it without RSA_VERIFY won't do anything. The FIT_SIGNATURE dependency wasn't also enough before as it only implied RSA_VERIFY. Then, simply relocate the RSA SSA PSS padding with the other RSA symbols in lib/rsa instead of in boot/ and rename it to remove the mention to FIT. Finally, add the PSS padding wherever PKCS1.5 padding is specified as one or the other can be used. Link: https://lore.kernel.org/r/20251031-rsa-pss-always-v2-0-a29184ea064d@cherry.de
2025-11-11rsa: rename FIT_RSASSA_PSS to RSASSA_PSS and move symbols under lib/rsaQuentin Schulz
This renames FIT_RSASSA_PSS symbols to drop the FIT_ prefix to avoid potential confusion since there's nothing FIT specific to those symbols. It also isn't really related to booting, so boot/Kconfig is an odd place for them to live. Since they make sense only in relation with RSA, simply move them to lib/rsa where it makes more sense for them to reside. Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
2025-11-11CI: Update to LLVM 20 releaseTom Rini
The current stable release for LLVM is 20, so update to that from 18. No issues seen in CI. Signed-off-by: Tom Rini <trini@konsulko.com>
2025-11-10CI: Move to Ubuntu 24.04 'Noble' as the baseTom Rini
The changes here are that we need to ensure python setuptools are in our build virtual environments as they will no longer come in via python even in a virtual environment. As part of this ensure setuptools is in our cache and also include pytest-azurepipelines as we should have been doing. Next, we move away from using apt-key directly and move that stanza towards the rest of the apt work. This also lets us drop directly installing gnupg2. These steps are not strictly required for 24.04 but will be for later releases and are valid now. Finally, we drop the unused PTYHONPATH ENV line. In order to use these containers however, we need to stop running the event_dump test as the 'addr2line' tool provided by binutils no longer is able to decode those specific events in most cases. As this is a problem with binutils and present for some time now, disabling the test until someone has time to work with upstream this seems reasonable. Signed-off-by: Tom Rini <trini@konsulko.com>