summaryrefslogtreecommitdiff
path: root/tools
Commit message (Collapse)AuthorAgeLines
* tools/genboardscfg.py: change shebang into /usr/bin/env python2Masahiro Yamada2014-08-28-1/+3
| | | | | | | | | This tool only works on python 2 (python 2.6 or lator). Change the shebang to make sure the script is run by python 2 and clearly say the supported version in the comment block. Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
* tools/genboardscfg.py: improve performanceMasahiro Yamada2014-08-28-6/+33
| | | | | | | | | | | | | | I guess some developers are already getting sick of this tool because it generally takes a few minites to generate the boards.cfg on a reasonable computer. The idea popped up on my mind was to skip Makefiles and to run script/kconfig/conf directly. This tool should become about 4 times faster. You might still not be satisfied, but better than doing nothing. Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com> Acked-by: Simon Glass <sjg@chromium.org>
* tools/genboardscfg.py: check if the boards.cfg is up to dateMasahiro Yamada2014-08-28-2/+56
| | | | | | | | | | | | | | It looks silly to regenerate the boards.cfg even when it is already up to date. The tool should exit with doing nothing if the boards.cfg is newer than any of defconfig, Kconfig and MAINTAINERS files. Specify -f (--force) option to get the boards.cfg regenerated regardless its time stamp. Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com> Acked-by: Simon Glass <sjg@chromium.org>
* tools/genboardscfg.py: fix minor problems on terminationMasahiro Yamada2014-08-28-66/+90
| | | | | | | | | | | | | | | | | | | This tool deletes the incomplete boards.cfg if it encounters an error or is is terminated by the user. I notice some problems even though they rarely happen. [1] The boards.cfg is removed if the program is terminated during __gen_boards_cfg() function but before boards.cfg is actually touched. In this case, the previous boards.cfg should be kept as it is. [2] If an error occurs while deleting the incomplete boards.cfg, the program throws another exception. This hides the privious exception and we will not be able to know the real cause. Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com> Acked-by: Simon Glass <sjg@chromium.org>
* tools/genboardscfg.py: wait for unfinished subprocesses before error-outMasahiro Yamada2014-08-28-0/+3
| | | | | | | | | | | | | | | When an error occurs or the program is terminated by the user on the way, the destructer __del__ of class Slot is invoked and the work directories are removed. We have to make sure there are no subprocesses (in this case, "make O=<work_dir> ...") using the work directories before removing them. Otherwise the subprocess spits a bunch of error messages possibly causing more problems. Perhaps some users may get upset to see too many error messages. Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com> Acked-by: Simon Glass <sjg@chromium.org>
* tools/genboardscfg.py: be tolerant of insane KconfigMasahiro Yamada2014-08-28-2/+9
| | | | | | | | | | The tools/genboardscfg.py expects all the Kconfig and defconfig are written correctly. Imagine someone accidentally has broken a board. Error-out just for one broken board is annoying for the other developers. Let the tool skip insane boards and continue processing. Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com> Acked-by: Simon Glass <sjg@chromium.org>
* tools/genboardscfg.py: be tolerant of missing MAINTAINERSMasahiro Yamada2014-08-28-1/+11
| | | | | | | | | | | | | | tools/genboardscfg.py expects all the boards have MAINTAINERS. If someone adds a new board but misses to add its MAINTAINERS file, tools/genboardscfg.py fails to generate the boards.cfg file. It is annoying for the other developers. This commit allows tools/genboardscfg.py to display warning messages and continue processing even if some MAINTAINERS files are missing or have broken formats. Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com> Acked-by: Simon Glass <sjg@chromium.org>
* tools/genboardscfg.py: ignore defconfigs starting with a dotMasahiro Yamada2014-08-28-0/+2
| | | | | | | | | | | | Kconfig in U-Boot creates a temporary file configs/.tmp_defconfig during processing "make <board>_defconfig". The temporary file might be left over for some reasons. Just in case, tools/genboardscfg.py should make sure to not read such garbage files. Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com> Acked-by: Simon Glass <sjg@chromium.org>
* buildman: run genboardscfg.py all the timeMasahiro Yamada2014-08-28-6/+4
| | | | | | | | | | This commit makes sure boards.cfg is up to date before starting the build tests. tools/genboardscfg.py exits immediately printing "boards.cfg is up to date. Nothing to do." when boards.cfg is already new. Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com> Acked-by: Simon Glass <sjg@chromium.org>
* tools/genboardscfg.py: fix a bug of MAINTAINERS handlingMasahiro Yamada2014-08-28-1/+1
| | | | | | | | | This patch fixes a minor problem: If a block without "F: configs/*_defconfig" is followed by another block with "F: configs/*_defconfig", the maintainers from the former block are squashed into the latter. Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
* patman: Support the 'reverse' option for 'git log'Simon Glass2014-08-28-0/+2
| | | | | | | | This option is currently not supported, but needs to be, for buildman to operate as expected. Reported-by: York Sun <yorksun@freescale.com> Signed-off-by: Simon Glass <sjg@chromium.org>
* Merge branch 'agust@denx.de' of git://git.denx.de/u-boot-stagingTom Rini2014-08-25-3/+6
|\
| * mkimage: fix compilation issues on OpenBSDLuka Perkov2014-08-14-0/+2
| | | | | | | | Signed-off-by: Luka Perkov <luka@openwrt.org>
| * tools, fit_info: increase buffer for command nameHeiko Schocher2014-08-14-2/+3
| | | | | | | | | | | | | | | | | | | | currently the buffer for command name is 50 bytes only. If using fit_info with long absolute paths, this is not enough, so raise it to 256 (as it is in fit_check_sign) Signed-off-by: Heiko Schocher <hs@denx.de> Cc: Simon Glass <sjg@chromium.org> Acked-by: Simon Glass <sjg@chromium.org>
| * tools: fix typo in tools/image-host.cHeiko Schocher2014-08-14-1/+1
| | | | | | | | | | | | | | | | | | fix a typo in error printf. If FIT_CONFS_PATH is not found print FIT_CONFS_PATH not FIT_IMAGES_PATH. Signed-off-by: Heiko Schocher <hs@denx.de> Cc: Simon Glass <sjg@chromium.org> Acked-by: Simon Glass <sjg@chromium.org>
* | buildman: refactor help messageMasahiro Yamada2014-08-22-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | "buildman [options]" is displayed by default. Append the rest of help messages to parser.usage instead of replacing it. Besides, "-b <branch>" is not mandatory since commit fea5858e. Drop it from the usage. Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
* | patman: refactor help messageMasahiro Yamada2014-08-22-1/+1
| | | | | | | | | | | | | | | | | | "patman [options]" is displayed by default. Append the rest of help messages to parser.usage instead of replacing it. Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
* | Makefile: remove generated boards.cfg within make distcleanRoger Meier2014-08-22-4/+4
| | | | | | | | | | | | | | | | | | Signed-off-by: Roger Meier <roger@bufferoverflow.ch> Reviewed-by: Masahiro Yamada <yamada.m@jp.panasonic.com> Tested-by: Masahiro Yamada <yamada.m@jp.panasonic.com> Cc: Tom Rini <trini@ti.com> Cc: Wolfgang Denk <wd@denx.de> Cc: Simon Glass <sjg@chromium.org>
* | tools/genboardscfg.py: no exception if columns undetectableRoger Meier2014-08-21-3/+1
| | | | | | | | | | | | | | | | | | | | | | | | The existing terminalsize detection raised an exception on build server. Just removes the exception. This also deactivates the progress indicator. Remove a trainling whitespace. Signed-off-by: Roger Meier <roger@bufferoverflow.ch> CC: Masahiro Yamada <yamada.m@jp.panasonic.com> CC: Tom Rini <trini@ti.com>
* | tools/genboardscfg.py: Do not output SPLCPU fieldMasahiro Yamada2014-08-21-4/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Prior to Kconfig, the CPU field of boards.cfg could optionally have ":SPLCPU", like "armv7:arm720t". (Actually this syntax was only used for Tegra platform.) Now it is not necessary at all because CPU is defined by CONFIG_SYS_CPU in Kconfig. For Tegra platform, the Kconfig option is described as follows: config SYS_CPU string default "arm720t" if SPL_BUILD default "armv7" if !SPL_BUILD Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
* | tools, scripts: refactor error-out statements of Python scriptsMasahiro Yamada2014-08-21-26/+13
|/ | | | | | | | | | | | | | | | | | | | | | | | | | | | In Python, sys.exit() function can also take an object other than an integer. If an integer is given to the argument, Python exits with the return code of it. If a non-integer argument is given, Python outputs it to stderr and exits with the return code of 1. That means, print >> sys.stderr, "Blah Blah" sys.exit(1) is equivalent to sys.exit("Blah Blah") The latter is a useful shorthand. Note: Some error messages in Buildman and Patman were output to stdout. But they should go to stderr. They are also fixed by this commit. This is a nice side effect. Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com> Acked-by: Simon Glass <sjg@chromium.org>
* patman: Only use git's --no-decorate when availableSimon Glass2014-08-13-1/+8
| | | | | | | | Older versions of git (e.g. Ubuntu 10.04) do not support this flag. By default they do not decorate. So only enable this flag when supported. Suggested-by: Tom Rini <trini@ti.com> Signed-off-by: Simon Glass <sjg@chromium.org>
* patman: Move the 'git log' command into a functionSimon Glass2014-08-13-13/+31
| | | | | | | Move the code that builds a 'git log' command into a function so we can more easily adjust it. Signed-off-by: Simon Glass <sjg@chromium.org>
* buildman: Allow selection of the number of commits to buildSimon Glass2014-08-13-12/+19
| | | | | | | | | | It is useful to be able to build only some of the commits in a branch. Add support for the -c option to allow this. It was previously parsed by buildman but not implemented. Suggested-by: York Sun <yorksun@freescale.com> Signed-off-by: Simon Glass <sjg@chromium.org> Acked-by: York Sun <yorksun@freescale.com>
* buildman: Introduce an 'and' operator for board selectionSimon Glass2014-08-13-17/+184
| | | | | | | | | | | | | | | | | | Currently buildman allows a list of boards to build to be specified on the command line. The list can include specific board names, architecture, SOC and so on. At present the list of boards is dealt with in an 'OR' fashion, and there is no way to specify something like 'arm & freescale', meaning boards with ARM architecture but only those made by Freescale. This would exclude the PowerPC boards made by Freescale. Support an '&' operator on the command line to permit this. Ensure that arguments can be specified in a single string to permit easy shell quoting. Suggested-by: York Sun <yorksun@freescale.com> Signed-off-by: Simon Glass <sjg@chromium.org> Acked-by: York Sun <yorksun@freescale.com>
* buildman: Add a few more toolchain examples to the READMESimon Glass2014-08-13-0/+2
| | | | | | | | The current README is a bit sparse in this area, so add a few more examples. Suggested-by: Tom Rini <trini@ti.com> Signed-off-by: Simon Glass <sjg@chromium.org>
* buildman: Add a message indicating there are no errorsSimon Glass2014-08-13-0/+7
| | | | | | | If buildman finds no problems it prints nothing. This can be a bit confusing, so add a message that all is well. Signed-off-by: Simon Glass <sjg@chromium.org>
* buildman: Add an option to specify the buildman config fileSimon Glass2014-08-13-1/+3
| | | | | | | | Add a new --config-file option (-G) to specify a different configuration file from the default ~/.buildman. Reported-by: Tom Rini <trini@ti.com> Signed-off-by: Simon Glass <sjg@chromium.org>
* buildman: Remove unused non-incremental build method codeSimon Glass2014-08-13-35/+0
| | | | | | The non-incremental build method is no longer used, so remove it. Signed-off-by: Simon Glass <sjg@chromium.org>
* buildman: Add verbose option to display errors as they happenSimon Glass2014-08-13-15/+56
| | | | | | | | | | | Normally buildman operates in two passes - one to do the build and another to summarise the errors. Add a verbose option (-v) to display build problems as they happen. With -e also given, this will display errors too. When building the current source tree (rather than a list of commits in a branch), both -v and -e are enabled automatically. Signed-off-by: Simon Glass <sjg@chromium.org>
* buildman: Refactor output optionsSimon Glass2014-08-13-26/+34
| | | | | | | | | We need the output options to be available in several places. It's a pain to pass them into each function. Make them properties of the builder and add a single function to set them up. At the same time, add a function which produces summary output using these options. Signed-off-by: Simon Glass <sjg@chromium.org>
* buildman: Sort command line optionsSimon Glass2014-08-13-6/+6
| | | | | | These options have got slightly out of order. Fix them. Signed-off-by: Simon Glass <sjg@chromium.org>
* buildman: Move BuilderThread code to its own fileSimon Glass2014-08-13-431/+442
| | | | | | The builder.py file is getting too long, so split out some code. Signed-off-by: Simon Glass <sjg@chromium.org>
* buildman: Allow building of current source treeSimon Glass2014-08-13-54/+108
| | | | | | | | | | | | Originally buildman had some support for building the current source tree. However this was dropped before it was submitted, as part of the effort to make it faster when building entire branches. Reinstate this support. If no -b option is given, buildman will build the current source tree. Reported-by: Masahiro Yamada <yamada.m@jp.panasonic.com> Signed-off-by: Simon Glass <sjg@chromium.org>
* buildman: Add some notes about moving from MAKEALLSimon Glass2014-08-13-0/+92
| | | | | | | For those used to MAKEALL, buildman seems strange. Add some notes to ease the transition. Signed-off-by: Simon Glass <sjg@chromium.org>
* buildman: Fix a few typosSimon Glass2014-08-13-6/+6
| | | | | | There are several typos in the README - fix them. Signed-off-by: Simon Glass <sjg@chromium.org>
* buildman: adjust for KconfigMasahiro Yamada2014-07-30-4/+14
| | | | | | | | | Use "make <board>_defconfig" instead of "make <board>_config". Invoke tools/genboardscfg.py to generate boards.cfg when it is missing. Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com> Acked-by: Simon Glass <sjg@chromium.org>
* tools: add genboardscfg.pyMasahiro Yamada2014-07-30-0/+504
| | | | | | | | | | | | | | | | | | | | | Now the primary data for each board is in Kconfig, defconfig and MAINTAINERS. It is true boards.cfg is needed for MAKEALL and buildman and might be useful to brouse all the supported boards in a single database. But it would be painful to maintain the boards.cfg in sync. So, this is the solution. Add a tool to generate the equivalent boards.cfg file based on the latest Kconfig, defconfig and MAINTAINERS. We can keep all the functions of MAKEALL and buildman with it. The best thing would be to change MAKEALL and buildman for not depending on boards.cfg in the future, but it would take some time. Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com> Acked-by: Simon Glass <sjg@chromium.org>
* kconfig: switch to KconfigMasahiro Yamada2014-07-30-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit enables Kconfig. Going forward, we use Kconfig for the board configuration. mkconfig will never be used. Nor will include/config.mk be generated. Kconfig must be adjusted for U-Boot because our situation is a little more complicated than Linux Kernel. We have to generate multiple boot images (Normal, SPL, TPL) from one source tree. Each image needs its own configuration input. Usage: Run "make <board>_defconfig" to do the board configuration. It will create the .config file and additionally spl/.config, tpl/.config if SPL, TPL is enabled, respectively. You can use "make config", "make menuconfig" etc. to create a new .config or modify the existing one. Use "make spl/config", "make spl/menuconfig" etc. for spl/.config and do likewise for tpl/.config file. The generic syntax of configuration targets for SPL, TPL is: <target_image>/<config_command> Here, <target_image> is either 'spl' or 'tpl' <config_command> is 'config', 'menuconfig', 'xconfig', etc. When the configuration is done, run "make". (Or "make <board>_defconfig all" will do the configuration and build in one time.) For futher information of how Kconfig works in U-Boot, please read the comment block of scripts/multiconfig.py. By the way, there is another item worth remarking here: coexistence of Kconfig and board herder files. Prior to Kconfig, we used C headers to define a set of configs. We expect a very long term to migrate from C headers to Kconfig. Two different infractructure must coexist in the interim. In our former configuration scheme, include/autoconf.mk was generated for use in makefiles. It is still generated under include/, spl/include/, tpl/include/ directory for the Normal, SPL, TPL image, respectively. Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com> Acked-by: Simon Glass <sjg@chromium.org>
* buildman: make sure to invoke GNU MakeMasahiro Yamada2014-07-29-3/+12
| | | | | | | | | | Since the command name 'make' may not be GNU Make on some platforms such as FreeBSD, buildman should call scripts/show-gnu-make to get the command name for GNU MAKE (and error out if it is not found). Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com> Acked-by: Simon Glass <sjg@chromium.org> Tested-by: Jeroen Hofstee <jeroen@myspectrum.nl>
* Merge branch 'master' of git://git.denx.de/u-boot-armTom Rini2014-07-29-6/+4
|\
| * Merge branch 'u-boot-sunxi/master' into 'u-boot-arm/master'Albert ARIBAUD2014-07-28-6/+4
| |\
| | * sunxi: mksunxiboot: Fix loading of files with a size which is not a multiple ↵Hans de Goede2014-07-06-6/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | of 4 We should not be aligning the amount of bytes which we try to read from the disk, this leads to trying to read more bytes then there are which fails. file_size is already aligned to BLOCK_SIZE before being stored in img.header.length, so there is no need for load_size at all. Signed-off-by: Hans de Goede <hdegoede@redhat.com> Acked-by: Ian Campbell <ijc@hellion.org.uk>
* | | patman: make "No recipient" checking more tolerantMasahiro Yamada2014-07-28-3/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If Series-to tag is missing, Patman exits with a message "No recipient". This is just annoying for those who had already added sendemail.to configuration. I guess many developers have [sendemail] to = u-boot@lists.denx.de in their .git/config because the 'To: u-boot@lists.denx.de' field should always be added when sending patches. That seems more reasonable rather than adding 'Series-to: u-boot@lists.denx.de' to every patch series. Patman should exit only when both Series-to tag and sendemail.to configuration are mising. Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com> Cc: Simon Glass <sjg@chromium.org> Acked-by: Simon Glass <sjg@chromium.org>
* | | buildman: Support in-tree buildsSimon Glass2014-07-28-2/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | At present buildman always builds out-of-tree, that is it uses a separate output directory from the source directory. Normally this is what you want, but it is important that in-tree builds work also. Some Makefile changes may break this. Add a -i option to tell buildman to use in-tree builds, so that it is easy to test this feature. Signed-off-by: Simon Glass <sjg@chromium.org>
* | | buildman: Add -C option to force a reconfigure for each commitSimon Glass2014-07-28-1/+13
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | Normally buildman wil try to configure U-Boot for a particular board on the first commit that it builds in a series. Subsequent commits are built without reconfiguring which normally works. Where it doesn't, buildman automatically reconfigures and retries. To fully emulate the way MAKEALL works, we should have an option to disable this optimisation. Add a -C option to cause buildman to always reconfigure on each commit. Signed-off-by: Simon Glass <sjg@chromium.org>
* | buildman: Avoid retrying a build if it definitely failedSimon Glass2014-07-23-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | After a build fails buildman will reconfigure and try again, if it did not reconfigure before the build. However it doesn't actually keep track of whether it did reconfigure on the previous attempt. Fix that logic to avoid a pointless rebuild. This speeds things up quite a bit for failing builds. Previously they would always be built twice. Change-Id: Ib37f21320baa7c60bed98f4042c0b7ed7c0dc85e Signed-off-by: Simon Glass <sjg@chromium.org>
* | buildman: Add -F flag to retry failed buildsSimon Glass2014-07-23-5/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Generally a build failure with a particular commit cannot be fixed except by changing that commit. Changing the commit will automatically cause buildman to retry when you run it again: buildman sees that the commit hash is different and that it has no previous build result for the new commit hash. However sometimes the build failure is due to a toolchain issue or some other environment problem. In that case, retrying failed builds may yield a different result. Add a flag to retry failed builds. This differs from the force rebuild flag (-f) in that it will not rebuild commits which are already marked as succeeded. Series-to: u-boot Change-Id: Iac4306df499d65ff0888b1c60f06fc162a6faad8
* | buildman: fix toolchain priority_listMasahiro Yamada2014-07-07-1/+1
| | | | | | | | | | | | | | | | | | '-elf' appears twice in the toolchain priority_list. The second one is rudundant. Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com> Cc: Simon Glass <sjg@chromium.org> Acked-by: Simon Glass <sjg@chromium.org>
* | buildman: fix to display warning message for missing [toolchain] sectionMasahiro Yamada2014-07-07-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Toolchains.__init__ is expected to display a warning message when the [toolchain] section is missing from ~/.buildman file. But it never works. In that case, instead, buildmain fails with an error message which is difficult to understand: Traceback (most recent call last): File "tools/buildman/buildman", line 126, in <module> control.DoBuildman(options, args) File "/home/foo/u-boot/tools/buildman/control.py", line 78, in DoBuildman toolchains = toolchain.Toolchains() File "/home/foo/u-boot/tools/buildman/toolchain.py", line 106, in __init__ config_fname) NameError: global name 'config_fname' is not defined Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com> Cc: Simon Glass <sjg@chromium.org> Acked-by: Simon Glass <sjg@chromium.org>