summaryrefslogtreecommitdiff
path: root/tools
Commit message (Collapse)AuthorAgeFilesLines
* binman: Add add test for SPL with a microcode pointerSimon Glass2017-11-223-31/+84
| | | | | | | Add a test for this feature. It allows SPL to hold a pointer to the microcode block. This is used for 64-bit U-Boot on x86. Signed-off-by: Simon Glass <sjg@chromium.org>
* binman: Add a test for x86-start16-splSimon Glass2017-11-222-1/+22
| | | | | | | This allows us to put the 16-bit x86 start-up code in SPL. Add a test for it. Signed-off-by: Simon Glass <sjg@chromium.org>
* binman: Add test for u-boot-spl-bss-padSimon Glass2017-11-226-1/+64
| | | | | | Add a test that we can pad the BSS with zero bytes. Signed-off-by: Simon Glass <sjg@chromium.org>
* binman: Check for files missing from test coverageSimon Glass2017-11-221-3/+19
| | | | | | | Files that are never imported are not shown in the test-coverage report. Detect these and show an error. Signed-off-by: Simon Glass <sjg@chromium.org>
* binman: Increase test coverage back to 100%Simon Glass2017-11-221-7/+4
| | | | | | Make a minor tweak to fix test coverage. Signed-off-by: Simon Glass <sjg@chromium.org>
* binman: Add a main program to the testsSimon Glass2017-11-222-0/+8
| | | | | | | Add a main program so that the tests can be executed directly, without going through the main binman program. Signed-off-by: Simon Glass <sjg@chromium.org>
* binman: Add tests for importlib availabilitySimon Glass2017-11-222-2/+36
| | | | | | | Add a test that the 'entry' module works with or without importlib. The tests are numbered so that they are executed in the correct order. Signed-off-by: Simon Glass <sjg@chromium.org>
* binman: Set up 'entry' to permit full test coverageSimon Glass2017-11-223-5/+10
| | | | | | | | | | There is a little check at the top of entry.py which decides if importlib is available. At present this has no test coverage. To add this we will need to import the module twice, once with importlib and once without. In preparation for allowing a test to control the importing of this module, remove all global imports of the 'entry' module. Signed-off-by: Simon Glass <sjg@chromium.org>
* binman: Append to PYTHONPATH when running test coverageSimon Glass2017-11-221-1/+1
| | | | | | | Rather that overwrite this, append to it, in case the caller has already set up the path correctly. Signed-off-by: Simon Glass <sjg@chromium.org>
* dtoc: Fix up testsSimon Glass2017-11-221-45/+37
| | | | | | | The tool has changed slightly since it was originally written. Update the tests to suit. Signed-off-by: Simon Glass <sjg@chromium.org>
* buildman: Fix up testsSimon Glass2017-11-221-10/+21
| | | | | | | | | | | The tests were broken by two separate commits which adjusted the output when boards are listed. Fix this by adding back a PowerPC board and putting the name of each board in the test. Fixes: b9f7d881 (powerpc, 5xx: remove some "5xx" remains) Fixes: 8d7523c5 (buildman: Allow showing the list of boards with -n) Signed-off-by: Simon Glass <sjg@chromium.org>
* buildman: Allow skipping of tests which use the networkSimon Glass2017-11-223-4/+11
| | | | | | | Accessing the network slows down the test and limits the environment in which it can be run. Add an option to disable network tests. Signed-off-by: Simon Glass <sjg@chromium.org>
* patman: Fix up tests to pass with newest checkpatchSimon Glass2017-11-221-15/+26
| | | | | | The checkpatch tool was updated but the patman tests were not. Fix this. Signed-off-by: Simon Glass <sjg@chromium.org>
* binman: Disable the no-unit_address_vs_reg warningsSimon Glass2017-11-221-1/+2
| | | | | | These warnings are not useful for binman tests. Disable them. Signed-off-by: Simon Glass <sjg@chromium.org>
* binman: Rename tests to ftestSimon Glass2017-11-222-2/+2
| | | | | | | | | | At present these tests use the same filename as patman. This adds confusion when running all tests, since error messages look very similar. In fact binman tries to run the wrong tests at present. Rename the tests. Signed-off-by: Simon Glass <sjg@chromium.org>
* binman: Add a Makefile for test-program compilationSimon Glass2017-11-223-8/+36
| | | | | | | | | | | These test programs are includedd as binary files in U-Boot to avoid having to build them (and associated toolchain differences). Instructions on building are in the files themselves, but it seems better to provide a Makefile which can be manually run when desired. Add a Makefile, separate from the normal build system, to handle this. Signed-off-by: Simon Glass <sjg@chromium.org>
* binman: Add docs explaining how to enable binman for a boardSimon Glass2017-11-221-0/+21
| | | | | | | The process is not obvious. Add a little section to explain how to move a board to use binman. Signed-off-by: Simon Glass <sjg@chromium.org>
* binman: Add better Makefile debuggingSimon Glass2017-11-221-1/+2
| | | | | | | | | There is a debugging option in the Makefile to allow people to figure out which u-boot.dtsi files are used in the build. But is it not easy to use since it only shows files it finds, not those it is looking for. Update it and update the mention of it to the docs. Signed-off-by: Simon Glass <sjg@chromium.org>
* env: Remove CONFIG_ENV_AES supportTom Rini2017-11-215-100/+1
| | | | | | | This support has been deprecated since v2017.09 due to security issues. We now remove this support. Signed-off-by: Tom Rini <trini@konsulko.com>
* tools: use files from scripts/dtc/libfdt where possibleMasahiro Yamada2017-11-177-5/+22
| | | | | | | | | | | | | | | | | | | | | | Prior to this commit, tools/Makefile pulls all libfdt files from lib/libfdt. lib/libfdt/ and scripts/dtc/libfdt have the same copies for the followings 6 files: fdt.c fdt_addresses.c fdt_empty_tree.c fdt_overlay.c fdt_strerr.c fdt_sw.c This commit changes them to #include ones from scripts/dtc/libfdt. Unfortunately, U-Boot locally modified the following 3 files: fdt_ro.c fdt_wip.c fdt_rw.c I did not touch them in order to avoid unpredictable impact. The fdt_region.c is U-Boot own file. This is also borrowed from lib/libfdt/. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
* pylibfdt: move pylibfdt to scripts/dtc/pylibfdt and refactor makefileMasahiro Yamada2017-11-173-35/+1
| | | | | | | | | | | | | | | | | | | | | The pylibfdt is used by dtoc (and, indirectly by binman), but there is no reason why it must be generated in the tools/ directory. Recently, U-Boot switched over to the bundled DTC, and the directory structure under scripts/dtc/ now mirrors the upstream DTC project. So, scripts/dtc/pylibfdt is the best location. I also rewrote the Makefile in a cleaner Kbuild style. The scripts from the upstream have been moved as follows: lib/libfdt/pylibfdt/setup.py -> scripts/dtc/pylibfdt/setup.py lib/libfdt/pylibfdt/libfdt.i -> scripts/dtc/pylibfdt/libfdt.i_shipped The .i_shipped is coped to .i during building because the .i must be located in the objtree when we build it out of tree. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
* Do not attempt to use the systemwide libfdtJan Kundrát2017-11-061-2/+2
| | | | | | | | | | | | | U-Boot bundles a patched copy of libfdt, so it's wrong to attempt to include it <like/this>. This breaks the build for me when I have dtc fully installed in my host -- as happened earlier tonight with Buildroot, for example. There are several other occurrences throughout the code where '<libfdt' matches. I'm not modifying these because I have no clue why the <systemwide> include style is being used -- IMHO wrongly. Signed-off-by: Jan Kundrát <jan.kundrat@cesnet.cz>
* tools: image: fix message when fail to add verification data for configMasahiro Yamada2017-11-061-3/+1
| | | | | | | | | | This function is called when signing configuration nodes. Adjust the error message. I do not know why we do not need to show the error message in case of ENOSPC. Remove the if-conditional that seems unnecessary. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
* tools: image: allow to sign image nodes without -K optionMasahiro Yamada2017-11-061-7/+8
| | | | | | | | | | | | | | | | | | | | If -K option is missing when you sign image nodes, it fails with an unclear error message: tools/mkimage Can't add hashes to FIT blob: -1 It is hard to figure out the cause of the failure. In contrast, when you sign configuration nodes, -K is optional because fit_config_process_sig() returns successfully if keydest is unset. Probably this is a preferred behavior when you want to update FIT with the same key; you do not have to update the public key in this case. So, this commit changes fit_image_process_sig() to continue signing without keydest. If ->add_verify_data() fails, show a clearer error message, which has been borrowed from fit_config_process_sig(). Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
* tools: image: fix "algo" property of public key for verified bootMasahiro Yamada2017-11-061-1/+1
| | | | | | | | | The "algo_name" points to a property in a blob being edited. The pointer becomes stale when fit_image_write_sig() inserts signatures. Then crypto->add_verify_data() writes wrong data to the public key destination. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
* tools: env: allow to print U-Boot versionStefan Agner2017-11-061-3/+11
| | | | | | | | | | The fw_env utility family has a default environment compiled in which ties it quite strongly to the U-Boot source/config it has been built with. Allow to display the U-Boot version it has been built with using the -v/--version argument. Signed-off-by: Stefan Agner <stefan.agner@toradex.com> Reviewed-by: Lukasz Majewski <lukma@denx.de>
* tools: image: fix node name of signature node in FITMasahiro Yamada2017-10-231-1/+1
| | | | | | | | Both "conf_name" and "sig_name" point to the name of config node. The latter should be the name of the signature node. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Reviewed-by: Simon Glass <sjg@chromium.org>
* tools: env: Add embedded.c to .gitignoreBin Meng2017-10-161-0/+1
| | | | Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
* env: Drop CONFIG_ENV_IS_IN_DATAFLASHTuomas Tynkkynen2017-10-161-1/+0
| | | | | | | | Last user of this option went away in commit: fdc7718999 ("board: usb_a9263: Update to support DT and DM") Signed-off-by: Tuomas Tynkkynen <tuomas.tynkkynen@iki.fi>
* tools: bmp_logo: correctly interpret BMP files with larger headersJon Smith2017-10-161-3/+8
| | | | | | | | | All BMP files were being treated as though they had a 40 byte header. There are several BMP header formats consisting of additional data. This was causing some of the header to be read as color information, skewing the color palette. Signed-off-by: Jon Smith <jtsmith@pdiarm.com>
* tools/mkimage: Fix DTC run command to handle file names with spaceMirza, Taimoor2017-10-161-2/+2
| | | | | | | | | fit_handle_file function does not quote input and output files while preparing command to run DTC to convert .its to .itb. This results in a failure if input or output files contain spaces in their names. Quote input and output files in DTC command to avoid this failure. Signed-off-by: Mirza, Taimoor <Taimoor_Mirza@mentor.com>
* moveconfig: fix error message in do_autoconf()Chris Packham2017-10-151-1/+1
| | | | | | | | | Move the % arch outside the double quote so that the missing toolchain message is displayed correctly. Signed-off-by: Chris Packham <judge.packham@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org> Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
* cmd/gpt.c, cmd/nvedit.c, tools/fit_image.c: Rework recent fixes for CoverityTom Rini2017-10-071-10/+11
| | | | | | | | | | | | | | The recent changes to these files did not completely fix the previous issues, or introduced different (minor) issues. In cmd/gpt.c we need to dereference str_disk_guid to be sure that malloc worked. In cmd/nvedit.c we need to be careful that we can also fit in that leading space when adding to the string. And in tools/fit_image.c we need to re-work the error handling slightly in fit_import_data() so that we only call munmap() once. We have two error paths here, one where we have an fd to close and one where we do not. Adjust labels to match this. Reported-by: Coverity (CID: 167366, 167367, 167370) Signed-off-by: Tom Rini <trini@konsulko.com>
* tools/fit_image.c: Update some return code pathsTom Rini2017-10-061-1/+3
| | | | | | | | | | | Coverity has found some problems with the return paths in parts of this code. We have a case where we were going to the wrong part of the unwind (open() failed so we cannot close the fd), a case where we were only free()ing our buf on the error path and finally a case where we did not munmap in the failure path. Reported-by: Coverity (CID: 138492, 138495, 143064) Signed-off-by: Tom Rini <trini@konsulko.com>
* rockchip: mkimage: add support for rk3128 socKever Yang2017-10-011-0/+1
| | | | | | | | Add support for rk3128 package header in mkimage tool. Signed-off-by: Kever Yang <kever.yang@rock-chips.com> Reviewed-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com> Acked-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
* kconfiglib: update with 'imply' supportUlf Magnusson2017-09-292-141/+194
| | | | | | | | | | | | | | | | | | | | | | | Corresponds to 375506d (File writing nit) from upstream (https://github.com/ulfalizer/Kconfiglib). Adds proper 'imply' support and fixes a few minor issues, one of which previously triggered the following weird warning: configs/taurus_defconfig: /tmp/tmpisI45S:6: warning: assignment to SPL_LDSCRIPT changes mode of containing choice from "arch/$(ARCH)/cpu/u-boot-spl.lds" to "y" The change in 8639f69 (genconfig.py: Print defconfig next to warnings) was reapplied. tools/moveconfig.py previously depended on a hack that merged 'select's with 'imply's. It was modified to look at the union of Symbol.get_selected_symbols() and Symbol.get_implied_symbols(), which should give the same behavior. tools/genboardscfg.py was verified to produce identical board.cfg's before and after the change. Signed-off-by: Ulf Magnusson <ulfalizer@gmail.com>
* tools/mkimage: Make the path to the dtc binary that mkimage calls configurableTom Rini2017-09-241-1/+1
| | | | | | | | In some cases, such as FreeBSD, the path to an alternative dtc needs to be used. Rather than override the one given in the Makefile on the command line, make this part of the build configuration. Signed-off-by: Tom Rini <trini@konsulko.com>
* Merge git://git.denx.de/u-boot-x86Tom Rini2017-09-173-1/+36
|\
| * tools: binman: Add a new entry type for Intel VBTBin Meng2017-09-163-1/+36
| | | | | | | | | | | | | | This adds a new entry type for Intel Video BIOS Table. Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org>
* | dtoc: Add a header to the generated filesSimon Glass2017-09-151-0/+12
| | | | | | | | | | | | | | | | Add a header that indicates that the files generated by dtoc should not be modified. Signed-off-by: Simon Glass <sjg@chromium.org> Tested-by: Kever Yang <kever.yang@rock-chips.com>
* | dtoc: Support properties containing multiple phandle valuesSimon Glass2017-09-153-12/+53
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | At present dtoc has a very simplistic view of phandles. It assumes that a property has only a single phandle with a single argument (i.e. two cells per property). This is not true in many cases. Enhance the implementation to scan all phandles in a property and to use the correct number of arguments (which can be 0, 1, 2 or more) when generating the C code. For the struct definitions, use a struct which can hold the maximum number of arguments used by the property. Signed-off-by: Simon Glass <sjg@chromium.org> Tested-by: Kever Yang <kever.yang@rock-chips.com>
* | dtoc: Put phandle args in an arraySimon Glass2017-09-152-2/+2
| | | | | | | | | | | | | | | | | | We want to support more than one phandle argument. It makes sense to use an array for this rather than discrete struct members. Adjust the code to support this. Rename the member to 'arg' instead of 'id'. Signed-off-by: Simon Glass <sjg@chromium.org> Tested-by: Kever Yang <kever.yang@rock-chips.com>
* | dtoc: Put each phandle on a separate lineSimon Glass2017-09-152-6/+9
| | | | | | | | | | | | | | | | | | | | When writing values from properties which contain phandles, dtoc currently writes 8 phandles per line. Change this to write one phandle per line. This helps reduce line length, since phandles are generally longer and may have arguments. Signed-off-by: Simon Glass <sjg@chromium.org> Tested-by: Kever Yang <kever.yang@rock-chips.com>
* | dtoc: Rename the phandle structSimon Glass2017-09-152-2/+3
| | | | | | | | | | | | | | | | | | | | Rather than naming the phandle struct according to the number of cells it uses (e.g. struct phandle_2_cell) name it according to the number of arguments it has (e.g. struct phandle_1_arg). This is a more intuitive naming. Signed-off-by: Simon Glass <sjg@chromium.org> Tested-by: Kever Yang <kever.yang@rock-chips.com>
* | dtoc: Rename is_phandle() and adjust it to return more detailSimon Glass2017-09-152-22/+58
| | | | | | | | | | | | | | | | | | Update this function to return more detail about a property that contains phandles. This will allow (in a future commit) more accurate handling of these properties. Signed-off-by: Simon Glass <sjg@chromium.org> Tested-by: Kever Yang <kever.yang@rock-chips.com>
* | dtoc: Make is_phandle() a member functionSimon Glass2017-09-151-18/+18
| | | | | | | | | | | | | | | | | | This function will need to have access to class members once we enhance it to support multiple phandle values. In preparation for that, move it into the class. Signed-off-by: Simon Glass <sjg@chromium.org> Tested-by: Kever Yang <kever.yang@rock-chips.com>
* | dtoc: Use the Fdt's class's phandle mapSimon Glass2017-09-151-13/+3
| | | | | | | | | | | | | | | | Now that the Fdt class can map phandles to the associated nodes, use that instead of a separate implementation. Signed-off-by: Simon Glass <sjg@chromium.org> Tested-by: Kever Yang <kever.yang@rock-chips.com>
* | dtoc: Update the Fdt class to record phandlesSimon Glass2017-09-151-0/+5
| | | | | | | | | | | | | | | | Add a map from phandles to nodes. This can be used by clients of the the class instead of maintaining this themselves. Signed-off-by: Simon Glass <sjg@chromium.org> Tested-by: Kever Yang <kever.yang@rock-chips.com>
* | dtoc: Handle 'reg' properties with unusual sizesSimon Glass2017-09-152-0/+38
| | | | | | | | | | | | | | | | | | At present dtoc assumes that all 'reg' properties have both an address and a size. For I2C devices we do not have this. Adjust dtoc to cope. Reported-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com> Signed-off-by: Simon Glass <sjg@chromium.org> Tested-by: Kever Yang <kever.yang@rock-chips.com>
* | dtoc: Add support for 32 or 64-bit addressesSimon Glass2017-09-157-0/+401
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When using 32-bit addresses dtoc works correctly. For 64-bit addresses it does not since it ignores the #address-cells and #size-cells properties. Update the tool to use fdt64_t as the element type for reg properties when either the address or size is larger than one cell. Use the correct value so that C code can obtain the information from the device tree easily. Alos create a new type, fdt_val_t, which is defined to either fdt32_t or fdt64_t depending on the word size of the machine. This type corresponds to fdt_addr_t and fdt_size_t. Unfortunately we cannot just use those types since they are defined to phys_addr_t and phys_size_t which use 'unsigned long' in the 32-bit case, rather than 'unsigned int'. Add tests for the four combinations of address and size values (32/32, 64/64, 32/64, 64/32). Also update existing uses for rk3399 and rk3368 which now need to use the new fdt_val_t type. Signed-off-by: Simon Glass <sjg@chromium.org> Suggested-by: Heiko Stuebner <heiko@sntech.de> Reported-by: Kever Yang <kever.yang@rock-chips.com> Reviewed-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com> Tested-by: Kever Yang <kever.yang@rock-chips.com>