summaryrefslogtreecommitdiff
path: root/tools
Commit message (Collapse)AuthorAgeFilesLines
* Merge branch 'next' of https://gitlab.denx.de/u-boot/custodians/u-boot-riscv ↵Tom Rini2022-09-262-7/+20
|\ | | | | | | into next
| * binman: Get futility by building itSimon Glass2022-09-212-7/+20
| | | | | | | | | | | | | | A binary download is not great, since it depends on libraries being present in the system. Build futility from source instead. Signed-off-by: Simon Glass <sjg@chromium.org>
* | tools: mtk_image: add support for nand headers used by newer chipsWeijie Gao2022-09-233-30/+525
| | | | | | | | | | | | | | | | | | | | | | This patch adds more nand headers in two new types: 1. HSM header, used for spi-nand thru SNFI interface 2. SPIM header, used for spi-nand thru spi-mem interface The original nand header is renamed to AP header. Tested-by: Daniel Golle <daniel@makrotopia.org> Signed-off-by: Weijie Gao <weijie.gao@mediatek.com>
* | tools: mtk_image: split the code of generating NAND header into a new fileWeijie Gao2022-09-235-289/+389
| | | | | | | | | | | | | | | | | | | | | | | | The predefined NAND headers take too much spaces in the mtk_image.c. Moving them into a new file can significantly improve the readability of both mtk_image.c and the new mtk_nand_headers.c. This is a preparation for adding more NAND headers. Reviewed-by: Simon Glass <sjg@chromium.org> Tested-by: Daniel Golle <daniel@makrotopia.org> Signed-off-by: Weijie Gao <weijie.gao@mediatek.com>
* | tools: mtk_image: split gfh header verification into a new functionWeijie Gao2022-09-231-30/+21
| | | | | | | | | | | | | | | | | | The verification code of gfh header for NAND and non-NAND are identical. It's better to define a individual function to reduce redundancy. Reviewed-by: Simon Glass <sjg@chromium.org> Tested-by: Daniel Golle <daniel@makrotopia.org> Signed-off-by: Weijie Gao <weijie.gao@mediatek.com>
* | Merge branch 'master' into nextTom Rini2022-09-1952-204/+671
|\ \ | |/ | | | | Signed-off-by: Tom Rini <trini@konsulko.com>
| * tools: termios_linux.h: Fix compilation on non-glibc systemsPali Rohár2022-09-131-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | TCGETS2 is defined in header file asm/ioctls.h provided by linux kernel. On glib systems it is automatically included by some other glibc include header file and therefore TCGETS2 is present in termios_linux.h when linux kernel provides it. On non-glibc systems (e.g. musl) asm/ioctls.h is not automatically included which results in the strange error that BOTHER is supported, TCGETS2 not defined and struct termios does not provide c_ispeed member. tools/kwboot.c: In function 'kwboot_tty_change_baudrate': tools/kwboot.c:662:6: error: 'struct termios' has no member named 'c_ospeed' 662 | tio.c_ospeed = tio.c_ispeed = baudrate; | ^ Fix this issue by explicitly including asm/ioctls.h file which provides TCGETS2 macro (if supported on selected architecture) to not depending on glibc auto-include behavior and because termios_linux.h requires it. With this change it is possible compile kwboot with musl libc. Reported-by: Michal Vasilek <michal.vasilek@nic.cz> Signed-off-by: Pali Rohár <pali@kernel.org>
| * tools: kwboot: Change KWBOOT_MSG_RSP_TIMEO_AXP to 10msStefan Roese2022-09-131-1/+1
| | | | | | | | | | | | | | | | | | | | Testing on the theadorable Armada XP platform has shown, thaz using the current value of 1000ms as response timeout does not result in reliable booting via kwboot. Using 10ms seems to be much better. So let's change this value to this 10ms instead. Signed-off-by: Stefan Roese <sr@denx.de> Acked-by: Pali Rohár <pali@kernel.org>
| * binman: Add VPL supportSimon Glass2022-09-1212-22/+349
| | | | | | | | | | | | Add support for U-Boot's Verifying Program Loader phase. Signed-off-by: Simon Glass <sjg@chromium.org>
| * Merge tag 'dm-pull-7sep22' of https://source.denx.de/u-boot/custodians/u-boot-dmTom Rini2022-09-077-79/+27
| |\ | | | | | | | | | binman fixes for bintool support
| | * binman: bintool: bzip2: fix version function on non-Debian-based systemsQuentin Schulz2022-09-011-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Upstream bzip2 1.0.x actually is stuck when running bzip2 -V and redirecting the output. This is fixed in Debian for about a decade already in https://git.launchpad.net/ubuntu/+source/bzip2/tree/debian/patches/20-legacy.patch?h=ubuntu/jammy and in bzip2 1.1.x (no release yet, see https://gitlab.com/bzip2/bzip2/-/commit/65179284ceddc43e6388bf4ed8c2d85cf16e1b2f ). Fedora notably does not have such a patch. Since bzip2 --help actually prints the version number too, let's use it instead so that binman works fine on (hopefully) all distributions. Fixes: 45aa2798008c ("binman: Add bzip2 bintool") Signed-off-by: Quentin Schulz <quentin.schulz@theobroma-systems.com> Reviewed-by: Simon Glass <sjg@chromium.org>
| | * binman: btool: futility: use Bintool.versionQuentin Schulz2022-09-011-12/+1
| | | | | | | | | | | | | | | | | | | | | | | | Bintool.version can now be passed the binary argument to return the version text, so there's no need to override it in futility anymore. Signed-off-by: Quentin Schulz <quentin.schulz@theobroma-systems.com> Reviewed-by: Simon Glass <sjg@chromium.org>
| | * binman: btool: fiptool: use Bintool.versionQuentin Schulz2022-09-011-10/+1
| | | | | | | | | | | | | | | | | | | | | | | | Bintool.version can now be passed the binary argument to return the version text, so there's no need to override it in fiptool anymore. Signed-off-by: Quentin Schulz <quentin.schulz@theobroma-systems.com> Reviewed-by: Simon Glass <sjg@chromium.org>
| | * binman: bintool: parametrize args to pass to binary for returning versionQuentin Schulz2022-09-011-4/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The code to check the version is very similar between binaries, the most likely only needed variables are the regex to find the version (already supported) and the args to pass to the binary so that it prints this version (e.g. --version, -V or similar). Let's make it a parameter of Bintool so that code duplication can be avoided for simple changes. Signed-off-by: Quentin Schulz <quentin.schulz@theobroma-systems.com>
| | * binman: btool: mkimage: use Bintool.versionQuentin Schulz2022-09-011-16/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | Bintool.version already contains everything required to get the version out of mkimage binary so let's not override it with its own implementation. Signed-off-by: Quentin Schulz <quentin.schulz@theobroma-systems.com> Reviewed-by: Simon Glass <sjg@chromium.org>
| | * binman: btool: lz4: use Bintool.versionQuentin Schulz2022-09-011-13/+1
| | | | | | | | | | | | | | | | | | | | | | | | Bintool.version already contains everything required to get the version out of lz4 binary so let's not override it with its own implementation. Signed-off-by: Quentin Schulz <quentin.schulz@theobroma-systems.com> Reviewed-by: Simon Glass <sjg@chromium.org>
| | * binman: bintool: move version check implementation into bintool classQuentin Schulz2022-09-011-25/+18
| | | | | | | | | | | | | | | | | | | | | | | | Version checking has nothing specific to compression/decompression tools so let's move it to the Bintool class. Signed-off-by: Quentin Schulz <quentin.schulz@theobroma-systems.com> Reviewed-by: Simon Glass <sjg@chromium.org>
| | * binman: btool: gzip: fix packer name so that binary can be foundQuentin Schulz2022-09-011-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. Therefore, let's pass "gzip" as the name so that it can be found and used. Fixes: 0f369d79925a ("binman: Add gzip bintool") Signed-off-by: Quentin Schulz <quentin.schulz@theobroma-systems.com> Reviewed-by: Simon Glass <sjg@chromium.org>
| * | binman: allow user-defined filenames for mkimage entryQuentin Schulz2022-09-043-3/+33
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | mkimage entry currently creates a file whose name is derived from the section name containing said entry. Let's allow the user to define a filename for the mkimage-generated binary by using the 'filename' DT property. Cc: Quentin Schulz <foss+uboot@0leil.net> Signed-off-by: Quentin Schulz <quentin.schulz@theobroma-systems.com> Reviewed-by: Simon Glass <sjg@chromium.org>
| * | binman: add support for skipping file concatenation for mkimageQuentin Schulz2022-09-045-4/+125
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some image types handled by mkimage require the datafiles to be passed independently (-d data1:data2) for specific handling of each. A concatenation of datafiles prior to passing them to mkimage wouldn't work. That is the case for rkspi for example which requires page alignment and only writing 2KB every 4KB. This adds the ability to tell binman to pass the datafiles without prior concatenation to mkimage, by adding the multiple-data-files boolean property to the mkimage node. Cc: Quentin Schulz <foss+uboot@0leil.net> Signed-off-by: Quentin Schulz <quentin.schulz@theobroma-systems.com> Reviewed-by: Simon Glass <sjg@chromium.org>
| * tools: mkimage: fix build with recent LibreSSLMark Kettenis2022-08-311-1/+1
| | | | | | | | | | | | | | | | | | | | LibreSSL 3.5.0 and later (also shipped as part of OpenBSD 7.1 and and later) have an opaque RSA object and do provide the RSA_get0_* functions that OpenSSL provides. Fixes: 2ecc354b8e46 ("tools: mkimage: fix build with LibreSSL") Signed-off-by: Mark Kettenis <kettenis@openbsd.org> Reviewed-by: Jonathan Gray <jsg@jsg.id.au>
| * binman: Sort tests and rework test-file numbersStefan Herbrechtsmeier2022-08-2624-63/+64
| | | | | | | | | | | | | | | | | | Tests should be in order of the test-file numbers. Sort the tests according to the test-file numbers and rework the test-file numbers to eliminate duplicate numbers. Signed-off-by: Stefan Herbrechtsmeier <stefan.herbrechtsmeier@weidmueller.com> Reviewed-by: Simon Glass <sjg@chromium.org>
| * binman: Document how to handle dependent imagesSimon Glass2022-08-261-0/+50
| | | | | | | | | | | | | | Binman does not support this properly at present. Add documentation about it including a work-around. Signed-off-by: Simon Glass <sjg@chromium.org>
| * binman: Mention split-elf in the main docsSimon Glass2022-08-261-0/+4
| | | | | | | | | | | | Since we are talking about ATF, add mention of this new feature too. Signed-off-by: Simon Glass <sjg@chromium.org>
| * patman: Tidy up unnecessary blank lines and numbersSimon Glass2022-08-261-30/+15
| | | | | | | | | | | | | | Quite a few blank lines are not needed here. Drop these and use the # mechanism to number paragraphs. Signed-off-by: Simon Glass <sjg@chromium.org>
| * patman: Fix version tableSimon Glass2022-08-261-1/+1
| | | | | | | | | | | | One of the changes to the version table was made by mistake. Fix it. Signed-off-by: Simon Glass <sjg@chromium.org>
* | dtoc: Drop sys.exit() in test_fdtSimon Glass2022-09-121-1/+0
|/ | | | | | This breaks using pytest to run the tests. Drop it. Signed-off-by: Simon Glass <sjg@chromium.org>
* Merge tag 'dm-pull-20aug22' of ↵Tom Rini2022-08-2237-174/+1079
|\ | | | | | | | | | | | | https://source.denx.de/u-boot/custodians/u-boot-dm binman fixes for various things binman clean-up of compression and addition of utilities
| * binman: Add zstd bintoolStefan Herbrechtsmeier2022-08-205-3/+61
| | | | | | | | | | | | | | Add zstd bintool to binman to support on-the-fly compression. Signed-off-by: Stefan Herbrechtsmeier <stefan.herbrechtsmeier@weidmueller.com> Reviewed-by: Simon Glass <sjg@chromium.org>
| * binman: Add xz bintoolStefan Herbrechtsmeier2022-08-203-2/+33
| | | | | | | | | | | | | | Add xz bintool to binman to support on-the-fly compression. Signed-off-by: Stefan Herbrechtsmeier <stefan.herbrechtsmeier@weidmueller.com> Reviewed-by: Simon Glass <sjg@chromium.org>
| * binman: Add lzop bintoolStefan Herbrechtsmeier2022-08-203-3/+33
| | | | | | | | | | | | | | Add lzop bintool to binman to support on-the-fly compression. Signed-off-by: Stefan Herbrechtsmeier <stefan.herbrechtsmeier@weidmueller.com> Reviewed-by: Simon Glass <sjg@chromium.org>
| * binman: Add gzip bintoolStefan Herbrechtsmeier2022-08-204-4/+43
| | | | | | | | | | | | | | | | | | | | | | Add gzip bintool to binman to support on-the-fly compression of Linux kernel images and FPGA bitstreams. The SPL basic fitImage implementation supports only gzip decompression. Signed-off-by: Stefan Herbrechtsmeier <stefan.herbrechtsmeier@weidmueller.com> Reviewed-by: Simon Glass <sjg@chromium.org> Rename the module and support this, since gzip.py is a system module: Signed-off-by: Simon Glass <sjg@chromium.org>
| * binman: Add bzip2 bintoolStefan Herbrechtsmeier2022-08-203-2/+32
| | | | | | | | | | | | | | Add bzip2 bintool to binman to support on-the-fly compression. Signed-off-by: Stefan Herbrechtsmeier <stefan.herbrechtsmeier@weidmueller.com> Reviewed-by: Simon Glass <sjg@chromium.org>
| * binman: Add BintoolPacker class to bintoolStefan Herbrechtsmeier2022-08-201-0/+103
| | | | | | | | | | | | | | | | | | | | Add a bintools base class for packers which compression / decompression entry contents. Signed-off-by: Stefan Herbrechtsmeier <stefan.herbrechtsmeier@weidmueller.com> Reviewed-by: Simon Glass <sjg@chromium.org> Dropped dead/untested code in version(): Signed-off-by: Simon Glass <sjg@chromium.org>
| * binman: Add compression testsStefan Herbrechtsmeier2022-08-201-0/+26
| | | | | | | | | | | | | | | | Add common test functions to test all supported compressions. Signed-off-by: Stefan Herbrechtsmeier <stefan.herbrechtsmeier@weidmueller.com> Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Simon Glass <sjg@chromium.org>
| * binman: Support missing compression toolsStefan Herbrechtsmeier2022-08-203-3/+29
| | | | | | | | | | | | | | | | Handle missing compression tools by returning empty data and record missing bintool. Signed-off-by: Stefan Herbrechtsmeier <stefan.herbrechtsmeier@weidmueller.com> Reviewed-by: Simon Glass <sjg@chromium.org>
| * binman: Move compression bintool management into entry classStefan Herbrechtsmeier2022-08-204-83/+41
| | | | | | | | | | | | | | | | Move management of the bintool to compress and decompress data into the entry class and add the bintool to the list of required bintools. Signed-off-by: Stefan Herbrechtsmeier <stefan.herbrechtsmeier@weidmueller.com> Reviewed-by: Simon Glass <sjg@chromium.org>
| * binman: Select compression bintools in cbfs_util classStefan Herbrechtsmeier2022-08-202-11/+13
| | | | | | | | | | | | | | | | | | Select the lz4 and lzma_alone bintools in cbfs_util class to centralize the supported compression algorithm evaluation inside the class and over multiple classes. Signed-off-by: Stefan Herbrechtsmeier <stefan.herbrechtsmeier@weidmueller.com> Reviewed-by: Simon Glass <sjg@chromium.org>
| * binman: Move compression bintools creation into test setupStefan Herbrechtsmeier2022-08-201-7/+19
| | | | | | | | | | | | | | | | | | | | Move compression bintools (packer) creation into test setup to reuse bintool objects between tests. Signed-off-by: Stefan Herbrechtsmeier <stefan.herbrechtsmeier@weidmueller.com> Reviewed-by: Simon Glass <sjg@chromium.org> Put comp_util import back in, since it is still needed here: Signed-off-by: Simon Glass <sjg@chromium.org>
| * binman: Remove obsolete compressed data header handlingStefan Herbrechtsmeier2022-08-204-24/+15
| | | | | | | | | | | | | | | | | | Remove the obsolete compressed data header handling from the utilities to compress and decompress data. The header is uncommon, not supported by U-Boot and incompatible with external compressed artifacts. Signed-off-by: Stefan Herbrechtsmeier <stefan.herbrechtsmeier@weidmueller.com> Reviewed-by: Simon Glass <sjg@chromium.org>
| * binman: Disable compressed data headerStefan Herbrechtsmeier2022-08-202-7/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | Disable the compressed data header of the utilities to compress and decompress data. The header is uncommon, not supported by U-Boot and incompatible with external compressed artifacts. The header was introduced as part of commit eb0f4a4cb402 ("binman: Support replacing data in a cbfs") to allow device tree entries to be larger than the compressed contents. Signed-off-by: Stefan Herbrechtsmeier <stefan.herbrechtsmeier@weidmueller.com> Reviewed-by: Simon Glass <sjg@chromium.org>
| * binman: Add length header attribute to dtb entryStefan Herbrechtsmeier2022-08-205-0/+105
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add an optional length header attribute to the device tree blob entry class based on the compressed data header from the utilities to compress and decompress data. If needed the header could be enabled with the following attribute beside the compress attribute: prepend = "length"; The header was introduced as part of commit eb0f4a4cb402 ("binman: Support replacing data in a cbfs") to allow device tree entries to be larger than the compressed contents. Regarding the commit "this is necessary to cope with a compressed device tree being updated in such a way that it shrinks after the entry size is already set (an obscure case)". This case need to be fixed without influence any compressed data by itself. Signed-off-by: Stefan Herbrechtsmeier <stefan.herbrechtsmeier@weidmueller.com> Reviewed-by: Simon Glass <sjg@chromium.org>
| * binman: Add DecompressData function to entry classStefan Herbrechtsmeier2022-08-202-2/+16
| | | | | | | | | | | | | | | | Add a DecompressData function to entry class to allow override in child classes and to centralize the compress and decompress in a single class. Signed-off-by: Stefan Herbrechtsmeier <stefan.herbrechtsmeier@weidmueller.com> Reviewed-by: Simon Glass <sjg@chromium.org>
| * binman: Check only section data in multi section testStefan Herbrechtsmeier2022-08-201-4/+6
| | | | | | | | | | | | | | | | Check only section data instead of the rest of the image in multi section test. Signed-off-by: Stefan Herbrechtsmeier <stefan.herbrechtsmeier@weidmueller.com> Reviewed-by: Simon Glass <sjg@chromium.org>
| * binman: Collect bintools before usageStefan Herbrechtsmeier2022-08-201-1/+4
| | | | | | | | | | | | | | | | | | Collect and thereby initialize bintools before any usage but after generation of entries. This is needed to handle bintools for compress and decompress like other bintools. Signed-off-by: Stefan Herbrechtsmeier <stefan.herbrechtsmeier@weidmueller.com> Reviewed-by: Simon Glass <sjg@chromium.org>
| * binman: Forward AddBintools calls to base classStefan Herbrechtsmeier2022-08-205-0/+5
| | | | | | | | | | | | | | | | Forward AddBintools calls to base class to collect bintools of base class. Signed-off-by: Stefan Herbrechtsmeier <stefan.herbrechtsmeier@weidmueller.com> Reviewed-by: Simon Glass <sjg@chromium.org>
| * binman: Forward AddBintools calls to sub entries in cbfs_utilStefan Herbrechtsmeier2022-08-201-0/+5
| | | | | | | | | | | | | | | | Forward AddBintools calls to sub entries in cbfs_util to collect bintools of sub entries. Signed-off-by: Stefan Herbrechtsmeier <stefan.herbrechtsmeier@weidmueller.com> Reviewed-by: Simon Glass <sjg@chromium.org>
| * binman: Avoid duplicates in bintool listsStefan Herbrechtsmeier2022-08-201-2/+6
| | | | | | | | | | | | | | | | Avoid duplicate entries in the list of bintools used by the image and the list of missing bintools. Signed-off-by: Stefan Herbrechtsmeier <stefan.herbrechtsmeier@weidmueller.com> Reviewed-by: Simon Glass <sjg@chromium.org>
| * binman: Skip elf tests if python elftools is not availableStefan Herbrechtsmeier2022-08-202-0/+32
| | | | | | | | | | | | | | Skip tests which requires python elftools if the tool is not available. Signed-off-by: Stefan Herbrechtsmeier <stefan.herbrechtsmeier@weidmueller.com> Reviewed-by: Simon Glass <sjg@chromium.org>
| * binman: Allow collection to use entries from other sectionsSimon Glass2022-08-208-4/+110
| | | | | | | | | | | | | | | | | | | | | | At present the collections etype only works with entries in the same section. This can be limiting, since in some cases the data may be inside a subsection, e.g. if there are alignment constraints. Add a function to find the entries in an etype and have it search recursively. Make use of this for mkimage also. Signed-off-by: Simon Glass <sjg@chromium.org>