summaryrefslogtreecommitdiff
path: root/tools
Commit message (Collapse)AuthorAgeFilesLines
* buildman/toolchain.py: handle inconsistent tarball namesTrevor Woerner2018-12-051-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Unfortunately, for some releases the kernel.org toolchain tarball names adhere to the following pattern: <hostarch>-gcc-<ver>-nolib-<targetarch>-<type>.tar.xz e.g.: x86_64-gcc-8.1.0-nolibc-aarch64-linux.tar.xz while others use the following pattern: <hostarch>-gcc-<ver>-nolib_<targetarch>-<type>.tar.xz e.g.: x86_64-gcc-7.3.0-nolibc_aarch64-linux.tar.xz Notice that the first pattern has dashes throughout, while the second has dashes throughout except just before the target architecture which has an underscore. The "dash throughout" versions from kernel.org are: 8.1.0, 6.4.0, 5.5.0, 4.9.4, 4.8.5, 4.6.1 while the "dash and underscore" versions from kernel.org are: 7.3.0, 4.9.0, 4.8.0, 4.7.3, 4.6.3, 4.6.2, 4.5.1, 4.2.4 This tweak allows the code to handle both versions. Note that this tweak also causes the architecture parsing to get confused and find the following two bogus architectures, "2.0" and "64", which are explicitly checked for, and removed. Signed-off-by: Trevor Woerner <trevor@toganlabs.com> Reviewed-by: Simon Glass <sjg@chromium.org> Change single quotes to double quotes: Signed-off-by: Simon Glass <sjg@chromium.org>
* buildman/toolchain.py: fix toolchain directoryTrevor Woerner2018-12-051-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The hexagon toolchain (4.6.1) from kernel.org, for example, was packaged in a way that is different from most toolchains. The first entry when unpacking most toolchain tarballs is: gcc-<version>-nolib/<targetarch>-<system> e.g.: gcc-8.1.0-nolibc/aarch64-linux/ The first entry of the hexagon toolchain, however, is: gcc-4.6.1-nolibc/ This causes the buildman logic in toolchain.py::ScanPath() to not be able to find the "*gcc" executable since it looks in gcc-4.6.1-nolib/{.|bin|usr/bin} instead of gcc-4.6.1/hexagon-linux/{.|bin|usr/bin}. Therefore when buildman tries to download a set of toolchains that includes hexagon, the script fails. This update takes the second line of the tarball unpacking (which works for all the toolchains I've tested from kernel.org) and parses it to take the first two elements, separated by '/'. It makes this logic a bit more robust. Signed-off-by: Trevor Woerner <trevor@toganlabs.com> Reviewed-by: Simon Glass <sjg@chromium.org>
* rsa: add a structure for the paddingPhilippe Reynes2018-12-031-0/+4
| | | | | | | | | | The rsa signature use a padding algorithm. By default, we use the padding pkcs-1.5. In order to add some new padding algorithm, we add a padding framework to manage several padding algorithm. The choice of the padding is done in the file .its. Signed-off-by: Philippe Reynes <philippe.reynes@softathome.com> Reviewed-by: Simon Glass <sjg@chromium.org>
* tools: MediaTek: add MTK boot header generation to mkimageRyder Lee2018-11-283-0/+949
| | | | | | | | This patch adds support for MTK boot image generation. Signed-off-by: Weijie Gao <weijie.gao@mediatek.com> Signed-off-by: Ryder Lee <ryder.lee@mediatek.com> Reviewed-by: Simon Glass <sjg@chromium.org>
* tools/file2include: don't use malloc.h for mallocJonathan Gray2018-11-261-1/+0
| | | | | | | | | | | | | stdlib.h is the header for malloc since at least c89/c90. Previously this would fail to build on OpenBSD and fallback to the wrong header: In file included from u-boot/tools/file2include.c:21: u-boot/include/malloc.h:875:5: error: function-like macro 'CONFIG_IS_ENABLED' is not defined Signed-off-by: Jonathan Gray <jsg@jsg.id.au> Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
* tools: .gitignore: add prelink-riscvLukas Auer2018-11-261-0/+1
| | | | | | | | Ignore tools/prelink-riscv. Signed-off-by: Lukas Auer <lukas.auer@aisec.fraunhofer.de> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Rick Chen <rick@andestech.com>
* binman: Set the pathname correctly for ELF filesSimon Glass2018-11-201-3/+2
| | | | | | | At present, stripped files don't have the right pathname which means that blob compression cannot be used. Fix this. Signed-off-by: Simon Glass <sjg@chromium.org>
* binman: Drop an unnecessary comma in blob handlingSimon Glass2018-11-201-1/+1
| | | | | | This comma is not needed. Drop it. Signed-off-by: Simon Glass <sjg@chromium.org>
* binman: Add a way to enable debugging from the buildSimon Glass2018-11-201-0/+6
| | | | | | | | | When the build fails due to something wrong in binman it is sometimes useful to get a full backtrace showing the location of the failure. Add a BINMAN_DEBUG environment variable to support this along with some documentation. Signed-off-by: Simon Glass <sjg@chromium.org>
* buildman: Show boards with warning with w+Simon Glass2018-11-202-19/+54
| | | | | | | | At present we should boards with warnings in the same way as those with errors. This is not ideal. Add a new 'warn' state and show these listed in yellow to match the actual warning lines printing with -e. Signed-off-by: Simon Glass <sjg@chromium.org>
* buildman: Rename the good, better, worse variablesSimon Glass2018-11-201-14/+14
| | | | | | | | | | At present we don't distinguish between errors and warnings when printing the architecture summary. Rename the variables to better describe their purpose. 'Worse' at present means we got an error, so use that as the name. Signed-off-by: Simon Glass <sjg@chromium.org>
* buildman: Detect dtc warningsSimon Glass2018-11-202-3/+6
| | | | | | | | | | | | | At present messages from the device-tree compiler like this: arch/arm/dts/socfpga_arria10_socdk_sdmmc.dtb: Warning (avoid_unnecessary_addr_size): /clocks: unnecessary #address-cells/#size-cells without "ranges" or child "reg" property are detected as errors since they don't match the gcc warning regex. Add a new one for dtc to fix this. Signed-off-by: Simon Glass <sjg@chromium.org>
* buildman: Only print toolchain probing with -vSimon Glass2018-11-202-2/+2
| | | | | | | | | At present --list-tool-chains prints a lot of information about the toolchain-probing process. This is generally not very interesting. Update buildman to print this only if --list-tool-chains is given with -v. Signed-off-by: Simon Glass <sjg@chromium.org>
* armv7R: K3: am654: Add support for generating build targetsLokesh Vutla2018-11-161-0/+48
| | | | | | | | | | | | | | | | | | | | | Update Makefiles to generate: - tiboot3.bin: Image format that can be processed by ROM. Below is the tiboot3.bin image format that is required by ROM: _______________________ | X509 | | Certificate | | ____________________ | | | | | | | u-boot-spl.bin | | | | | | | |___________________| | |_______________________| Reviewed-by: Tom Rini <trini@konsulko.com> Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com> Signed-off-by: Andreas Dannenberg <dannenberg@ti.com>
* buildman: Add a --boards option to specify particular boards to buildSimon Glass2018-11-145-23/+72
| | | | | | | | | | | At present 'buildman sandbox' will build all 5 boards for the sandbox architecture rather than the single board 'sandbox'. The only current way to exclude sandbox_spl, sandbox_noblk, etc. is to use -x which is a bit clumbsy. Add a --boards option to allow individual build targets to be specified. Signed-off-by: Simon Glass <sjg@chromium.org>
* tools: imx8image: flatten container header only when creating containerPeng Fan2018-11-061-10/+12
| | | | | | | If there is no CONTAINER entry, there is no need to flatten container header. Signed-off-by: Peng Fan <peng.fan@nxp.com>
* tools: imx8image: fix coverity CID 184233Peng Fan2018-11-061-0/+8
| | | | | | | | | Fix: CID 184233: (NEGATIVE_RETURNS) Using variable "container" as an index to array "imx_header.fhdr". Reported-by: Coverity Signed-off-by: Peng Fan <peng.fan@nxp.com>
* tools: imx8image: fix coverity CID 184234Peng Fan2018-11-061-1/+3
| | | | | | | | | Fix: CID 184234: (TAINTED_SCALAR) Using tainted variable "header.num_images - 1" as an index into an array "header.img". Reported-by: Coverity Signed-off-by: Peng Fan <peng.fan@nxp.com>
* tools: imx8image: check lseek return valuePeng Fan2018-11-061-4/+23
| | | | | | | | | | Check lseek return value. Fix Coverity CID: 184236 184235 184232 Reported-by: Coverity Signed-off-by: Peng Fan <peng.fan@nxp.com> Reviewed-by: Fabio Estevam <festevam@gmail.com>
* MIPS: make size of relocation table fixed but configurableDaniel Schwierzeck2018-11-021-22/+8
| | | | | | | | | | | | | | | | | | | Currently the size of the relocation table will be shrunk to the actual size needed. Although this gives a maximal space saving, it messes up the _end symbol. This breaks features like appended DTBs because the _end symbol doesn't point to the real end of the U-Boot binary. Remove the size shrinking and make the size of the relocation table fixed but configurable. This follows the Linux approach and the user can adjust the size to his needs. Also rename the relocation table section from .rel to .data.reloc to follow the Linux approach and to avoid ambiguities with the .rel.* sections added by the linker. Reported-by: Lars Povlsen <lars.povlsen@microsemi.com> Signed-off-by: Daniel Schwierzeck <daniel.schwierzeck@gmail.com>
* Merge tag 'u-boot-imx-20181025' of git://git.denx.de/u-boot-imxTom Rini2018-10-255-0/+999
|\ | | | | | | Merged imx8 architecture, fix build for imx8 + warnings
| * imx: mkimage: avoid stop CI when required files not existsPeng Fan2018-10-251-0/+29
| | | | | | | | | | | | | | | | | | | | | | | | Introduce a new script to check whether file exists and use that check in Makefile to avoid break CI system. The script return 1 when the required files not exists, return 0 when files exists. The script will ignore check to u-boot-dtb.bin, because if there is something wrong to generate u-boot-dtb.bin, there must be some code error. Signed-off-by: Peng Fan <peng.fan@nxp.com>
| * tools: add i.MX8/8X image supportPeng Fan2018-10-224-0/+970
| | | | | | | | | | | | | | | | | | i.MX8/8X bootable image type is container type. The bootable image, containers a container set which supports two container. The 1st container is for SECO firmware, the 2nd container needs to include scfw, m4_0/1 image, ACore images per your requirement. Signed-off-by: Peng Fan <peng.fan@nxp.com>
* | binman: Add a test for Intel reference codeSimon Glass2018-10-222-0/+21
| | | | | | | | | | | | | | | | Unfortunately the test was not included in the original implementation. Add one. Signed-off-by: Simon Glass <sjg@chromium.org> Signed-off-by: Simon Glass <sjg@chromium.org>
* | binman: Add support for Intel reference codeSimon Glass2018-10-221-0/+27
| | | | | | | | | | | | | | | | | | Some platforms use this instead of FSP to set up the platform, including memory. Add support for this in binman. This is needed for chromebook_samus, for example. Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
* | dtoc: Fix the value of SetInt()Simon Glass2018-10-091-1/+1
| | | | | | | | | | | | This does not set the correct value at present. Fix it. Signed-off-by: Simon Glass <sjg@chromium.org>
* | binman: Move to three-digit test-file numbersSimon Glass2018-10-09101-115/+115
| | | | | | | | | | | | | | | | We now have 99 tests. Before adding any more, rename everything to three digits. This helps to preserve the ordering of tests and makes it easier to find things. Signed-off-by: Simon Glass <sjg@chromium.org>
* | binman: Run tests concurrentlySimon Glass2018-10-0810-22/+272
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | At present the tests run one after the other using a single CPU. This is not very efficient. Bring in the concurrencytest module and run the tests concurrently, using one process for each CPU by default. A -P option allows this to be overridden, which is necessary for code-coverage to function correctly. This requires fixing a few tests which are currently not fully independent. At some point we might consider doing this across all pytests in U-Boot. There is a pytest version that supports specifying the number of processes to use, but it did not work for me. Signed-off-by: Simon Glass <sjg@chromium.org>
* | patman: Don't clear progress in tout unless it was usedSimon Glass2018-10-081-1/+7
| | | | | | | | | | | | | | | | | | | | At present calling Uninit() always called ClearProgress() which outputs a \r character as well as spaces to remove any progress information on the line. This can mess up the normal output of binman and other tools. Fix this by outputing this only when progress information has actually been previous written. Signed-off-by: Simon Glass <sjg@chromium.org>
* | tools: Set an initial value for indirSimon Glass2018-10-081-0/+3
| | | | | | | | | | | | This variable is not documented or set up in the module. Fix this. Signed-off-by: Simon Glass <sjg@chromium.org>
* | buildman: dtoc: Suppress unwanted output from testSimon Glass2018-10-082-3/+7
| | | | | | | | | | | | | | There are a few test cases which print output. Suppress this so that tests can run silently in the normal case. Signed-off-by: Simon Glass <sjg@chromium.org>
* | binman: Separate out testSplBssPad()Simon Glass2018-10-081-1/+3
| | | | | | | | | | | | | | | | At present this test runs binman twice, which means that the temporary files from the first run do not get cleaned up. Split this into two tests to fix this problem. Signed-off-by: Simon Glass <sjg@chromium.org>
* | binman: Fix up removal of temporary directoriesSimon Glass2018-10-085-10/+25
| | | | | | | | | | | | | | | | | | | | At present 'make check' leaves some temporary directories around. Part of this is because we call tools.PrepareOutputDir() twice in some cases, without calling tools.FinaliseOutputDir() in between. Fix this. Signed-off-by: Simon Glass <sjg@chromium.org>
* | binman: Add a default path to libfdt.pySimon Glass2018-10-082-0/+7
| | | | | | | | | | | | | | | | This module is often available in the sandbox_spl build created by 'make check'. Use this as a default path so that just typing 'binman -t' (without setting PYTHONPATH) will generally run the tests. Signed-off-by: Simon Glass <sjg@chromium.org>
* | buildman: Make the toolchain test more forgivingSimon Glass2018-10-081-2/+4
| | | | | | | | | | | | | | | | The filenames of the toolchains on kernel.org changes every now and then. Fix it for the current change, and make the test use a regex so that it has a better chance of passing with future changes too. Signed-off-by: Simon Glass <sjg@chromium.org>
* | patman: Handle unicode in _ProjectConfigParser testsSimon Glass2018-10-081-7/+20
|/ | | | | | | | | With Python 2.7.15rc1, ConfigParser.SafeConfigParser has unfortunately started returning unicode, for unknown reasons. Adjust the code to handle this by converting everything to unicode. We cannot convert things to ASCII since email addresses may be encoded with UTF-8. Signed-off-by: Simon Glass <sjg@chromium.org>
* Merge branch 'master' of git://git.denx.de/u-boot-socfpgaTom Rini2018-10-051-0/+1
|\
| * tools: socfpga: fix sfp_verify_headerAtsushi Nemoto2018-10-031-0/+1
| | | | | | | | | | | | | | Fix sfp_verify_header to return correct version number. This fixes "Not a sane SOCFPGA preloader" error message with v1 header. Signed-off-by: Atsushi Nemoto <atsushi.nemoto@sord.co.jp>
* | rockchip: Fix rkimage format for SPL boot over USBDaniel Gröber2018-10-041-3/+2
|/ | | | | | | | | | | | | | | | | | | | | | | | | The 'rkimage' format used for booting rockchip boards over USB seems to have been broken since commit 7bf274b9caab ("rockchip: mkimage: use imagename to select spl hdr & spl size"). That commit adds an offset of RK_SPL_HDR_START(=2048) to the location the 'RKxx' header is written at. However the bootrom expects this header to be the first four bytes of the image, not at offset 2048. This appears to have been a copy paste error since the 'rksd' and 'rkspi' image types do require this offset. Furthermore commit 111bcc4fb6cb ("rockchip: mkimage: pad the header to 8-bytes (using a 'nop') for RK3399"), commit 3d54eabcafec9 ("rockchip: spl: RK3399: use boot0 hook to create space for SPL magic") and commit 308277569229 ("rockchip: mkimage: update rkimage to support pre-padded payloads") changed the way the space for the 'RKxx' header is allocated and written to the image without adjusting 'rkimage'. This commit fixes those mistakes and makes it possible to load u-boot SPL over USB once more. (Tested on RK3399) Signed-off-by: Daniel Gröber <daniel@dps.uibk.ac.at> Reviewed-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
* Merge git://git.denx.de/u-boot-dmTom Rini2018-09-3059-166/+2005
|\
| * buildman: Avoid hanging when the config changesSimon Glass2018-09-291-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Something has changed in the last several month such that when buildman builds U-Boot incrementally and a new CONFIG option has been added to the Kconfig, the build hanges waiting for input: Test new config (NEW_CONFIG) [N/y/?] (NEW) Since binamn does not connect the build's stdin to anything this waits on stdin to the build thread, which never comes. Eventually I suspect all the threads end up in this state and the build does not progress. Fix this by passing /dev/null as input to the build. That way, if there is a new CONFIG, the build will stop (and fail): Test new config (NEW_CONFIG) [N/y/?] (NEW) Error in reading or end of file. Signed-off-by: Simon Glass <sjg@chromium.org>
| * binman: Allow writing a map file when something goes wrongSimon Glass2018-09-294-8/+46
| | | | | | | | | | | | | | | | | | | | | | When we get a problem like overlapping regions it is sometimes hard to figure what what is going on. At present we don't write the map file in this case. However the file does provide useful information. Catch any packing errors and write a map file (if enabled with -m) to aid debugging. Signed-off-by: Simon Glass <sjg@chromium.org>
| * binman: Support ELF files for U-Boot and SPLSimon Glass2018-09-296-0/+130
| | | | | | | | | | | | | | For sandbox we want to put ELF files in the image since that is what we need to execute. Add support for this. Signed-off-by: Simon Glass <sjg@chromium.org>
| * binman: Correct fmap output on x86Simon Glass2018-09-298-16/+121
| | | | | | | | | | | | | | | | | | | | | | | | | | Normally x86 platforms use the end-at-4gb option. This currently produces an FMAP with positions which have a large offset. The use of end-at-4gb is a useful convenience within binman, but we don't really want to export a map with these offsets. Fix this by subtracting the 'skip at start' parameter. Also put the code which convers names to fmap format, for clarity. Signed-off-by: Simon Glass <sjg@chromium.org>
| * binman: Record the parent section of each sectionSimon Glass2018-09-293-4/+9
| | | | | | | | | | | | | | | | | | | | At present sections have no record of their parent so it is not possible to traverse up the tree to the root and figure out the position of a section within the image. Change the constructor to record this information. Signed-off-by: Simon Glass <sjg@chromium.org>
| * binman: Support x86 microcode in TPLSimon Glass2018-09-299-21/+151
| | | | | | | | | | | | | | | | When TPL is used on x86 we may want to program the microcode (at least for the first CPU) early in boot. Add support for this by refactoring the existing code to be more generic. Signed-off-by: Simon Glass <sjg@chromium.org>
| * binman: Support hashing entriesSimon Glass2018-09-299-0/+143
| | | | | | | | | | | | | | | | Sometimesi it us useful to be able to verify the content of entries with a hash. Add an easy way to do this in binman. The hash information can be retrieved from the device tree at run time. Signed-off-by: Simon Glass <sjg@chromium.org>
| * binman: Mention section attributes in docsSimon Glass2018-09-291-2/+2
| | | | | | | | | | | | | | Images and sections have the same attributes, since an image is mostly just a top-level section. Update the docs to explain this. Signed-off-by: Simon Glass <sjg@chromium.org>
| * binman: Support expanding entriesSimon Glass2018-09-298-2/+136
| | | | | | | | | | | | | | It is useful to have entries which can grow automatically to fill available space. Add support for this. Signed-off-by: Simon Glass <sjg@chromium.org>
| * binman: Support adding filesSimon Glass2018-09-2917-0/+225
| | | | | | | | | | | | | | | | | | | | | | | | In some cases it is useful to add a group of files to the image and be able to access them at run-time. Of course it is possible to generate the binman config file with a set of blobs each with a filename. But for convenience, add an entry type which can do this. Add required support (for adding nodes and string properties) into the state module. Signed-off-by: Simon Glass <sjg@chromium.org>