summaryrefslogtreecommitdiff
path: root/tools
AgeCommit message (Collapse)Author
2022-12-22env: Rework ENV_IS_EMBEDDED and related logic slightlyTom Rini
- Drop CONFIG_BUILD_ENVCRC as this is never set directly but instead means ENV_IS_EMBEDDED, so reference that in code and rename the Makefile usage to BUILD_ENVCRC. - Remove extra-$(CONFIG_ENV_IS_EMBEDDED) line as it could never be true, and likely why there is an extra- line for CONFIG_ENV_IS_IN_FLASH (the only use case today of embedded environments). - With these slight changes we can then see that using the calculated symbol of ENV_IS_EMBEDDED is the right thing to use in any code which needs to know this situation and can remove CONFIG_ENV_IS_EMBEDDED entirely. Signed-off-by: Tom Rini <[email protected]>
2022-12-08u-boot-initial-env: rework make targetMax Krummenacher
With LTO enabled the U-Boot initial environment is no longer stored in an easy accessible section in env/common.o. I.e. the section name changes from build to build, its content maybe compressed and it is annotated with additional data. Drop trying to read the initial env with elf tools from the compiler specific object file in favour of adding and using a host tool with the only functionality of printing the initial env to stdout. See also: https://lore.kernel.org/all/[email protected]/ Signed-off-by: Max Krummenacher <[email protected]> Acked-by: Pali Rohár <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2022-12-08tools: mkimage: add new image type "fdt_legacy"Marc Kleine-Budde
If the user select the image type "flat_dt" a FIT image will be build. This breaks the legacy use case of putting a Flat Device Tree into a legacy u-boot image. Add a new image type "fdt_legacy" to build a legacy u-boot image with a "flat_dt" type. Link: https://lore.kernel.org/all/[email protected] Signed-off-by: Marc Kleine-Budde <[email protected]> Reviewed-by: Sean Anderson <[email protected]>
2022-12-08tools: mkimage: don't print error message "Success" in case of failureMarc Kleine-Budde
In case there's no struct image_type_params::set_header callback, no "errno" will be set. Don't fail with an error message, followed by "Success". Remove the printing of the human readable "errno" value. Signed-off-by: Marc Kleine-Budde <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2022-12-08tools: fdtgrep: Fix handle leakMikhail Ilin
The handle "fd" was created in fdtgrep.c:708 by calling the "open" function and is lost in fdtgrep.c:716 and fdtgrep.c:723. Close file descriptor 'fd' before exiting with an error from function utilfdt_read_err_len(const char *filename, char **buffp, off_t *len). Fixes: 1043d0a0296a ("fdt: Add fdtgrep tool") Signed-off-by: Mikhail Ilin <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2022-12-08tools: mkimage: Fix nullptr at strchr()Mikhail Ilin
The copy_datafile(ifd, params.datafile) function has been implemented to copy data by reducing the number of lines in the main function. Signed-off-by: Mikhail Ilin <[email protected]>
2022-12-08tool: ifwitool: Fix buffer overflowMikhail Ilin
An incorrect 1st parameter is passed to the fix_member() function. Should use a pointer to the beginning of the parent structure (bpdt or subpart_dir, because are boxed), not to their fields. Otherwise, this leads to an overrun of the structure boundary, since in the fix_member() function, an 'offset' is made, relative to the 1st argument, which itself is an 'offset' from the beginning of the structure. Signed-off-by: Mikhail Ilin <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2022-12-08tool: ifwitool: The function localtime() can return NULL.Mikhail Ilin
This will cause the local_time pointer is passed as the 4th argument to function strftime() to also point to NULL. This result in a segmentation fault. Thus, it's necessary to add a check of the local_time pointer to NULL. Found by Linux Verification Center (linuxtesting.org) with SVACE. Signed-off-by: Mikhail Ilin <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2022-12-08tools: env: fw_env: Fix unused-result warningJaehoon Chung
Fix unused-result warning about fread. tools/env/fw_env.c: In function ‘find_nvmem_device’: tools/env/fw_env.c:1751:3: warning: ignoring return value of ‘fread’, declared with attribute warn_unused_result [-Wunused-result] 1751 | fread(buf, sizeof(buf), 1, fp); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Signed-off-by: Jaehoon Chung <[email protected]>
2022-12-06CI: Update to gcc-12.2Tom Rini
- Update to gcc-12.2, and cherry-pick a fix in grub for risc-v Signed-off-by: Tom Rini <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2022-12-06buildman: Fetch 12.2.0 toolchains by defaultTom Rini
Update the toolchain list to be first 12.2.0 and second 11.1.0 and that's it. Cc: Simon Glass <[email protected]> Signed-off-by: Tom Rini <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2022-12-05global: Move remaining CONFIG_SYS_* to CFG_SYS_*Tom Rini
The rest of the unmigrated CONFIG symbols in the CONFIG_SYS namespace do not easily transition to Kconfig. In many cases they likely should come from the device tree instead. Move these out of CONFIG namespace and in to CFG namespace. Signed-off-by: Tom Rini <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2022-11-23tools: mkenvimage: Drop duplicate crc header includeMarek Vasut
This header was already included just above version.h, do not include it twice. Fixes: 3db71108575 ("crc32: Use the crc.h header for crc functions") Signed-off-by: Marek Vasut <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2022-11-22binman: Add documentation for the command line argsSimon Glass
Add command-line documentation for binman. Signed-off-by: Simon Glass <[email protected]>
2022-11-22buildman: Add --allow-missing flag to allow missing blobsTom Rini
Add a new flag to buildman so that we will in turn pass BINMAN_ALLOW_MISSING=1 to 'make'. Make use of this flag in CI. Allow the settings file to control this. Cc: Rasmus Villemoes <[email protected]> Cc: Simon Glass <[email protected]> Signed-off-by: Tom Rini <[email protected]> Signed-off-by: Simon Glass <[email protected]>
2022-11-22buildman: Reinstate removal of temp output dir in testsSimon Glass
This was dropped my mistake. Reinstate it. Signed-off-by: Simon Glass <[email protected]> Fixes: d829f1217c6 ("bulidman: Add support for a simple build")
2022-11-22buildman: Ensure config_fname is initedSimon Glass
Init this variable at the top level since it is a global. Signed-off-by: Simon Glass <[email protected]>
2022-11-22binman: Add a separate section about environment variablesSimon Glass
These are documented in various several sections. Add a new section that mentions them all in one place so it is easier to see what environment variables can be used to control U-Boot's use of binman. Signed-off-by: Simon Glass <[email protected]> Suggested-by: Heinrich Schuchardt <[email protected]>
2022-11-22buildman: Detect binman reporting missing blobsSimon Glass
Buildman should consider a build as a success (with warnings) if missing blobs have been dealt with by binman, even though buildman itself returns and error code overall. This is how other warnings are dealt with. We cannot easily access the 103 exit code, so detect the problem in the output. With this change, missing blobs result in an exit code of 101, although they still indicate failure. Signed-off-by: Simon Glass <[email protected]>
2022-11-22buildman: Drop mention of old architecturesSimon Glass
Support for some architectures has been removed since buildman was first written. Also all toolchains are now available at kernel.org so we don't need the links, except for arc where the kernel.org toolchain fails to build all boards. Signed-off-by: Simon Glass <[email protected]>
2022-11-22buildman: Update the default settings fileSimon Glass
The settings file omits a few lines which are useful for getting every board building. Add these and update the documentation tool. Signed-off-by: Simon Glass <[email protected]>
2022-11-22buildman: Update the arc toolchainSimon Glass
There is one on kernel.org but it does not build the hsdk_4xd board. Add a link to one which does. Signed-off-by: Simon Glass <[email protected]>
2022-11-22buildman: Drop mention of MAKEALLSimon Glass
This script was removed about 6 years ago so most people should be aware that it is not needed anymore. Drop mention of it. Signed-off-by: Simon Glass <[email protected]>
2022-11-22buildman: Convert documentation to rSTSimon Glass
Convert the buildman documentation to rST format and include it in the 'build' section. Signed-off-by: Simon Glass <[email protected]> Reviewed-by: Quentin Schulz <[email protected]>
2022-11-22binman: Use an exit code when blobs are missingSimon Glass
At present binman returns success when told to handle missing/faked blobs or missing bintools. This is confusing since in fact the resulting image cannot work. Use exit code 103 to signal this problem, with a -W option to convert it to a warning. Rename the flag to --ignore-missing since it controls bintools also. Add documentation about exit codes while we are here. Signed-off-by: Simon Glass <[email protected]>
2022-11-22Revert "binman: btool: gzip: fix packer name so that binary can be found"Quentin Schulz
This reverts commit daa2da754afe1bac777f6cb0f05233e0de7b325d. This commit is not needed anymore since the btool_ prefix is automatically stripped by bintool. Cc: Quentin Schulz <[email protected]> Signed-off-by: Quentin Schulz <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2022-11-22binman: bintool: remove btool_ prefix from btool namesQuentin Schulz
The binary is looked on the system by the suffix of the packer class. This means binman was looking for btool_gzip on the system and not gzip. Since a btool can have its btool_ prefix missing but its module and binary presence on the system appropriately found, there's no need to actually keep this prefix after listing all possible btools, so let's remove it. This fixes gzip btool by letting Bintool.find_bintool_class handle the missing prefix and still return the correct class which is then init with gzip name instead of btool_gzip. Additionally, there was an issue with the cached module global variable. The variable only stores the module and not the associated class name when calling find_bintool_class. This means that when caching the module on the first call to find_bintool_class, class_name would be set to Bintoolbtool_gzip but the module_name gzip only, adding the module in the gzip key in the module dictionary. When hitting the cache on next calls, the gzip key would be found, so its value (the module) is used. However the default class_name (Bintoolgzip) is used, failing the getattr call. Instead, let's enforce the same class name: Bintool<packer>, whatever the filename it is contained in. Cc: Quentin Schulz <[email protected]> Signed-off-by: Quentin Schulz <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2022-10-31mkeficapsule: Add support for setting OEM flags in capsule headerSughosh Ganu
Add support for setting OEM flags in the capsule header. As per the UEFI specification, bits 0-15 of the flags member of the capsule header can be defined per capsule GUID. The oemflags will be used for the FWU Multi Bank update feature, as specified by the Dependable Boot specification[1]. Bit 15 of the flags member will be used to determine if the acceptance/rejection of the updated images is to be done by the firmware or an external component like the OS. [1] - https://git.codelinaro.org/linaro/dependable-boot/mbfw/uploads/6f7ddfe3be24e18d4319e108a758d02e/mbfw.pdf Signed-off-by: Sughosh Ganu <[email protected]> Reviewed-by: Ilias Apalodimas <[email protected]> Acked-by: Etienne Carriere <[email protected]>
2022-10-31mkeficapsule: Add support for generating empty capsulesSughosh Ganu
The Dependable Boot specification[1] describes the structure of the firmware accept and revert capsules. These are empty capsules which are used for signalling the acceptance or rejection of the updated firmware by the OS. Add support for generating these empty capsules. [1] - https://git.codelinaro.org/linaro/dependable-boot/mbfw/uploads/6f7ddfe3be24e18d4319e108a758d02e/mbfw.pdf Signed-off-by: Sughosh Ganu <[email protected]> Acked-by: Ilias Apalodimas <[email protected]> Acked-by: Etienne Carriere <[email protected]>
2022-10-31test: dm: Add test cases for FWU Metadata uclassSughosh Ganu
Add test cases for accessing the FWU Metadata on the sandbox platform. The sandbox platform also uses the metadata access driver for GPT partitioned block devices. The FWU feature will be tested on the sandbox64 variant with a raw capsule. Remove the FIT capsule testing from sandbox64 defconfig -- the FIT capsule test will be run on the sandbox_flattree variant. Signed-off-by: Sughosh Ganu <[email protected]> Suggested-by: Heinrich Schuchardt <[email protected]> Acked-by: Ilias Apalodimas <[email protected]>
2022-10-31binman: Support writing symbols into ELF filesSimon Glass
In some cases the ELF version of SPL builds may be packaged, rather than a binary .bin file. Add support for this. Signed-off-by: Simon Glass <[email protected]>
2022-10-31binman: Handle writing ELF symbols in the Entry classSimon Glass
This feature is used by several etypes and we plan to add more that use it. Make symbol writing a feature of the base class to reduce the code duplication. Signed-off-by: Simon Glass <[email protected]>
2022-10-31binman: Split out looking up a symbol into a functionSimon Glass
Move this code into its own function so it can be used from tests. Signed-off-by: Simon Glass <[email protected]>
2022-10-31binman: Allow obtaining a symbol valueSimon Glass
Provide a function to obtain the integer value of an ELF symbol. This will be used Signed-off-by: Simon Glass <[email protected]>
2022-10-31Rename CONFIG_SYS_TEXT_BASE to CONFIG_TEXT_BASESimon Glass
The current name is inconsistent with SPL which uses CONFIG_SPL_TEXT_BASE and this makes it imposible to use CONFIG_VAL(). Rename it to resolve this problem. Signed-off-by: Simon Glass <[email protected]>
2022-10-31buildman: Handle the MAINTAINERS 'N' tagSimon Glass
This is needed for some soon-to-be-applied patches. Scan the configs/ directory to see if any of the files match. Signed-off-by: Simon Glass <[email protected]> Tested-by: Tom Rini <[email protected]> Suggested-by: Tom Rini <[email protected]>
2022-10-30Merge tag 'video-20221030' of ↵Tom Rini
https://source.denx.de/u-boot/custodians/u-boot-video - fix [hv]sync active vs back porch in dw_mipi_dsi - simplefb rotation support - support splash as raw image from MMC - enhancements to Truetype console (multiple fonts and sizes) - drop old LCD support
2022-10-30video: Rename CONFIG_DM_VIDEO to CONFIG_VIDEOSimon Glass
Now that all the old code is gone, rename this option. Driver model migration is now complete. Signed-off-by: Simon Glass <[email protected]>
2022-10-30Drop CONFIG_LCD_LOGOSimon Glass
This relies on the old LCD implementation which is to be removed. Drop it. Signed-off-by: Simon Glass <[email protected]>
2022-10-29binman: Add support for symlinking imagesNeha Malcom Francis
Adding support to symlink an image packaged using binman. Signed-off-by: Neha Malcom Francis <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2022-10-26mkimage: fit: Fix signing of configs with external dataSean Anderson
Just like we exclude data-size, data-position, and data-offset from fit_config_check_sig, we must exclude them while signing as well. While we're at it, use the FIT_DATA_* defines for fit_config_check_sig as welll. Fixes: 8edecd3110e ("fit: Fix verification of images with external data") Fixes: c522949a29d ("rsa: sig: fix config signature check for fit with padding") Signed-off-by: Sean Anderson <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2022-10-17docker: Install pyelftools for buildsSimon Glass
Binman needs this module to build sandbox_vpl and it is needed elsewhere in CI. Add it to the docker file. Signed-off-by: Simon Glass <[email protected]> Reviewed-by: Heinrich Schuchardt <[email protected]>
2022-10-12tools: k3_gen_x509_cert: Do not print SWRV on buildAndrew Davis
This matches the others here. Signed-off-by: Andrew Davis <[email protected]>
2022-10-11image-pre-load: Move macros/definitions to image.hSteven Lawrance
Putting these definitions in a header will allow signatures to be validated independently of bootm. Signed-off-by: Steven Lawrance <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2022-10-07buildman: differentiate between riscv32, riscv64Heinrich Schuchardt
riscv32 needs a different toolchain than riscv64 Signed-off-by: Heinrich Schuchardt <[email protected]> Reviewed-by: Simon Glass <[email protected]> Reviewed-by: Rick Chen <[email protected]>
2022-10-07docker: install riscv32 toolchainHeinrich Schuchardt
For building riscv32 targets we should use the riscv32 toolchain. Add it to the Docker image. Drop the riscv toolchain-alias as we do not need it in future. While in here, update to the latest "jammy" tag. Signed-off-by: Heinrich Schuchardt <[email protected]> Reviewed-by: Tom Rini <[email protected]> Reviewed-by: Rick Chen <[email protected]> [trini: Update to latest jammy tag] Signed-off-by: Tom Rini <[email protected]>
2022-10-06tools: kwbimage: Verify maximal kwbimage header sizePali Rohár
BootROM loads kwbimage header to L2-SRAM and BootROM reserve only 192 kB for it. Signed-off-by: Pali Rohár <[email protected]> Reviewed-by: Stefan Roese <[email protected]>
2022-10-03Merge branch 'next'Tom Rini
2022-09-29treewide: Drop image_header_t typedefSimon Glass
This is not needed and we should avoid typedefs. Use the struct instead and rename it to indicate that it really is a legacy struct. Signed-off-by: Simon Glass <[email protected]>
2022-09-29tools: env: Fix missing closedir in ubi_get_volnum_by_nameMiaoqian Lin
The function calls opendir() but missing the corresponding closedir() before exit the function. Add missing closedir() to fix it. Signed-off-by: Miaoqian Lin <[email protected]>