summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2014-09-13kconfig: add CONFIG_SYS_{ARCH, CPU, ...} type def to arch/KconfigMasahiro Yamada
This commit adds the type definitions (+ help messages) of CONFIG_SYS_{ARCH, CPU, SOC, VENDOR, BOARD, CONFIG_NAME} to arch/Kconfig, which would save lots of type defs for taget boards. (See also the next commit.) Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
2014-09-13Merge branch 'master' of git://git.denx.de/u-boot-dmTom Rini
2014-09-12Merge branch 'master' of git://git.denx.de/u-boot-armTom Rini
2014-09-11arm: Fix _start for CONFIG_SYS_DV_NOR_BOOT_CFGBenoît Thébaudeau
The boards using CONFIG_SYS_DV_NOR_BOOT_CFG (i.e. calimain, da850evm_direct_nor and enbw_cmc) had the _start symbol defined after the CONFIG_SYS_DV_NOR_BOOT_CFG word rather than before it in arch/arm/lib/vectors.S. Because of that, if by lack of luck 'gd->mon_len = (ulong)&__bss_end - (ulong)_start' (see setup_mon_len()) was a multiple of 4 kiB (see reserve_uboot()), then the last BSS word overlapped the first word of the following reserved RAM area (or went beyond the top of RAM without such an area) after relocation because __image_copy_start did not match _start (see relocate_code()). This was broken by commit 41623c9 'arm: move exception handling out of start.S files', which defined _start twice (before and after the CONFIG_SYS_DV_NOR_BOOT_CFG word), then by commit 0a26e1d 'arm: fix a double-definition error of _start symbol', which kept the definition of the _start symbol after the CONFIG_SYS_DV_NOR_BOOT_CFG word. This new commit fixes this issue by restoring the original behavior, i.e. by defining the _start symbol before the CONFIG_SYS_DV_NOR_BOOT_CFG word. Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau.dev@gmail.com> Cc: Albert Aribaud <albert.u.boot@aribaud.net> Cc: Manfred Rudigier <manfred.rudigier@omicron.at> Cc: Christian Riesch <christian.riesch@omicron.at> Cc: Sudhakar Rajashekhara <sudhakar.raj@ti.com> Cc: Heiko Schocher <hs@denx.de>
2014-09-11arm: Make reset position-independentBenoît Thébaudeau
Some boards, like mx31pdk and tx25, require the beginning of the SPL code to be position-independent. For these two boards, this is because they use the i.MX external NAND boot, which starts by executing the first NAND Flash page from the NFC page buffer. The SPL then needs to copy itself to its actual link address in order to free the NFC page buffer and use it to load the non-SPL image from Flash before running it. This means that the SPL runtime address differs from its link address between the reset and the initial copy performed by board_init_f(), so this part of the SPL binary must be position-independent. This requirement was broken by commit 41623c9 'arm: move exception handling out of start.S files', which used an absolute address to branch to the reset routine. This new commit restores the original behavior, which just performed a relative branch. This fixes the boot of mx31pdk and tx25. Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau.dev@gmail.com> Reported-by: Helmut Raiger <helmut.raiger@hale.at> Cc: Albert Aribaud <albert.u.boot@aribaud.net> Cc: Magnus Lilja <lilja.magnus@gmail.com> Cc: John Rigby <jcrigby@gmail.com> Tested-by: Magnus Lilja <lilja.magnus@gmail.com>
2014-09-11README.clang: build command with clangJeroen Hofstee
Cc: Albert ARIBAUD <albert.u.boot@aribaud.net> Signed-off-by: Jeroen Hofstee <jeroen@myspectrum.nl>
2014-09-11Makefile: default to cc for host compilerJeroen Hofstee
Since the host compiler might not be gcc but e.g. clang default to cc/c++ to invoke it. cc: Masahiro Yamada <yamada.m@jp.panasonic.com> cc: Tom Rini <trini@ti.com> Signed-off-by: Jeroen Hofstee <jeroen@myspectrum.nl>
2014-09-10dm: tegra: Enable driver model for serialSimon Glass
Use driver model for serial ports. Since Tegra now uses driver model for serial, adjust the definition of V_NS16550_CLK so that it is clear that this is only used for SPL. Signed-off-by: Simon Glass <sjg@chromium.org>
2014-09-10tegra: dts: Add serial port detailsSimon Glass
Some Tegra device tree files do not include information about the serial ports. Add this and also add information about the input clock speed. The console alias needs to be set up to indicate which port is used for the console. Also add a binding file since this is missing. Series-changes; 5 - Add full serial port nodes from Linux tree (commit fc9d4dbe) - Use /chosen/stdout-path instead of /aliases/console to specify the console Signed-off-by: Simon Glass <sjg@chromium.org>
2014-09-10dm: serial: Add driver model support for ns16550Simon Glass
Add driver model support so that ns16550 can support operation both with and without driver model. The driver needs a clock frequency so cannot stand alone unfortunately. The clock frequency must be provided by a separate driver. Signed-off-by: Simon Glass <sjg@chromium.org>
2014-09-10dm: serial: Collect common baud rate code in ns16550Simon Glass
The same sequence is used in several places, so move it into a function. Note that UART_LCR_BKSE is an alias for UART_LCR_DLAB. Signed-off-by: Simon Glass <sjg@chromium.org>
2014-09-10dm: serial: Move baud rate calculation to ns16550.cSimon Glass
Move the function that calculates the baud rate divisor into ns16550.c so it can be used by that file. Signed-off-by: Simon Glass <sjg@chromium.org>
2014-09-10sandbox: dts: Add a serial console nodeSimon Glass
If the sandbox device tree is provided to U-Boot (with the -d flag) then it will use the device tree version in preference to the built-in device. The only difference is the colour. Signed-off-by: Simon Glass <sjg@chromium.org>
2014-09-10sandbox: serial: Support a coloured consoleSimon Glass
The current sandbox serial driver is a pretty trivial example and does not have the featues that might be needed for other board serial drivers. To help provide a better example, add a text colour property to the device tree for sandbox. This uses platform data, a device tree node, driver private data and a remove() method. Signed-off-by: Simon Glass <sjg@chromium.org>
2014-09-10sandbox: Convert serial driver to use driver modelSimon Glass
Adjust the sandbox serial driver to use the new driver model uclass. The driver works much as before, but within the new framework. Signed-off-by: Simon Glass <sjg@chromium.org>
2014-09-10dm: Add a uclass for serial devicesSimon Glass
Serial devices support simple byte input/output and a few operations to find out whether data is available. Add a basic uclass for serial devices to be used by drivers that are converted to driver model. Signed-off-by: Simon Glass <sjg@chromium.org>
2014-09-10dm: Adjust lists_bind_fdt() to return the bound deviceSimon Glass
Allow the caller to find out the device that was bound in response to this call. Signed-off-by: Simon Glass <sjg@chromium.org>
2014-09-10dm: fdt: Add a function to look up a chosen nodeSimon Glass
Within /chosen we may have a node which points to another node, similar to how /aliases works. Add a helper function to do this lookup. Signed-off-by: Simon Glass <sjg@chromium.org>
2014-09-10serial: Set up the 'priv' pointer when creating a serial deviceSimon Glass
The stdio_dev structure has a private pointer for its creator, but it is not set up by the serial system. Set it to point to the serial device so that it can be found by code called by stdio. Signed-off-by: Simon Glass <sjg@chromium.org>
2014-09-10tegra: Convert tegra GPIO driver to use driver modelSimon Glass
This is an implementation of GPIOs for Tegra that uses driver model. It has been tested on trimslice and also using the new iotrace feature. The implementation uses a top-level GPIO device (which has no actual GPIOS). Under this all the banks are created as separate GPIO devices. The GPIOs are named as per the Tegra datasheet/header files: A0..A7, B0..B7, ..., Z0..Z7, AA0..AA7, etc. Since driver model is not yet available before relocation, or in SPL, a special function is provided for seaboard's SPL code. Signed-off-by: Simon Glass <sjg@chromium.org>
2014-09-10dm: tegra: Set up a pre-reloc malloc()Simon Glass
Allocate 1KB so that driver model can operate before relocation. Signed-off-by: Simon Glass <sjg@chromium.org>
2014-09-10dm: Make driver model available before board_init()Simon Glass
For some boards board_init() will change GPIOs, so we need to have driver model available before then. Adjust the board init to arrange this, but enable it for driver model only, just to be safe. This does create additional #ifdef logic, but it is safer than trying to make a pervasive change which may cause some boards to break. Signed-off-by: Simon Glass <sjg@chromium.org>
2014-09-10Set up stdio earlier when using driver modelSimon Glass
Since driver model registers itself with the stdio subsystem, and we want to avoid delayed registration and other complexity associated with the current serial console, move the stdio subsystem init earlier when driver model is used for serial. This simplifies the implementation. Should there be any problems with this approach they can be dealt with as boards are converted over to use driver model for serial. Signed-off-by: Simon Glass <sjg@chromium.org>
2014-09-10dm: Move pre-reloc init earlier to cope with board_early_init_f()Simon Glass
In order to support GPIO access in board_early_init_f() we must set up driver model before this function is called. In any case, earlier is better since driver model is (or will become) a key function for most init. Signed-off-by: Simon Glass <sjg@chromium.org>
2014-09-10Merge branch 'master' of git://www.denx.de/git/u-boot-microblazeTom Rini
2014-09-10microblaze: remove #ident directive to fix build errorMasahiro Yamada
The microblaze-generic board fails to build at least with the kernel.org crosstool: https://www.kernel.org/pub/tools/crosstool/files/bin/x86_64/4.9.0/ x86_64-gcc-4.9.0-nolibc_microblaze-linux.tar.xz $ make CROSS_COMPILE=microblaze-linux- microblaze-generic_defconfig all [ snip ] CC disk/part.o CC disk/part_dos.o LD disk/built-in.o CC drivers/block/systemace.o {standard input}: Assembler messages: {standard input}:2495: Error: operation combines symbols in different segments {standard input}:2496: Error: operation combines symbols in different segments {standard input}:2499: Error: operation combines symbols in different segments {standard input}:2500: Error: operation combines symbols in different segments {standard input}:2505: Error: operation combines symbols in different segments {standard input}:2506: Error: operation combines symbols in different segments {standard input}:2515: Error: operation combines symbols in different segments {standard input}:2516: Error: operation combines symbols in different segments {standard input}:2519: Error: operation combines symbols in different segments {standard input}:2520: Error: operation combines symbols in different segments {standard input}:2529: Error: operation combines symbols in different segments {standard input}:2530: Error: operation combines symbols in different segments {standard input}:2533: Error: operation combines symbols in different segments {standard input}:2534: Error: operation combines symbols in different segments {standard input}:2539: Error: operation combines symbols in different segments {standard input}:2540: Error: operation combines symbols in different segments {standard input}:2549: Error: operation combines symbols in different segments {standard input}:2550: Error: operation combines symbols in different segments make[3]: *** [drivers/block/systemace.o] Error 1 make[2]: *** [drivers/block] Error 2 make[1]: *** [drivers] Error 2 make: *** [__build_one_by_one] Error 2 It looks like the cause of this error message is the "#ident" directive. Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com> Cc: Michal Simek <michal.simek@xilinx.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com>
2014-09-10Merge branch 'buildman' of git://git.denx.de/u-boot-x86Tom Rini
2014-09-10Merge branch 'master' of git://git.denx.de/u-boot-fsl-qoriqTom Rini
2014-09-09buildman: fix typos of --dry-run help messageMasahiro Yamada
try run => dry run no nothing => do nothing "..." => '...' The last one is for consistency with the other option helps. Change-Id: I1d69047d1fae6ef095a18f69f44ee13c448db9b7 Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com> Acked-by: Simon Glass <sjg@chromium.org>
2014-09-09buildman: Create parent directories as necessaryThierry Reding
When creating build directories also create parents as necessary. This fixes a failure when building a hierarchical branch (i.e. foo/bar). Signed-off-by: Thierry Reding <treding@nvidia.com> Acked-by: Simon Glass <sjg@chromium.org> Tested-by: Tom Rini <trini@ti.com>
2014-09-09patman: make run results better visibleVadim Bendebury
For an occasional user of patman some failures are not obvious: for instance when checkpatch reports warnings, the dry run still reports that the email would be sent. If it is not dry run, the warnings are shown on the screen, but it is not clear that the email was not sent. Add some code to report failure to send email explicitly. Tested by running the script on a patch with style violations, observed error messages in the script output. Signed-off-by: Vadim Bendebury <vbendeb@chromium.org> Reviewed-by: Doug Anderson <dianders@chromium.org> Acked-by: Simon Glass <sjg@chromium.org>
2014-09-09buildman: Ignore conflicting tagsSimon Glass
Tags like Series-version are normally expected to appear once, and with a unique value. But buildman doesn't actually look at these tags. So ignore conflicts. This allows bulidman to build a branch containing multiple patman series. Reported-by: Steve Rae <srae@broadcom.com> Signed-off-by: Simon Glass <sjg@chromium.org>
2014-09-09buildman: Permit branch names with an embedded '/'Simon Glass
At present buildman naively uses the branch name as part of its directory path, which causes problems if the name has an embedded '/'. Replace these with '_' to fix the problem. Reported-by: Steve Rae <srae@broadcom.com> Signed-off-by: Simon Glass <sjg@chromium.org>
2014-09-09buildman: Expand output test to cover directory prefixesSimon Glass
Now that buildman supports removing the build directory prefix from output, add a test for it. Also ensure that output directories are removed when the test completes. Signed-off-by: Simon Glass <sjg@chromium.org>
2014-09-09buildman: Add additional functional testsSimon Glass
This adds coverage of core features of the builder, including the command-line options which affect building. Signed-off-by: Simon Glass <sjg@chromium.org>
2014-09-09patman: Start with a clean series when neededSimon Glass
For reasons that are not well-understood, GetMetaDataForList() can end up adding to an existing series even when it appears that it should be starting a new one. Change from using a default constructor parameter to an explicit one, to work around this problem. Signed-off-by: Simon Glass <sjg@chromium.org>
2014-09-09buildman: Provide an internal option to clean the outpur dirSimon Glass
For testing it is useful to clean the output directory before running a test. This avoids a test interfering with the results of a subsequent test by leaving data around. Add this feature as an optional parameter to the control logic. Signed-off-by: Simon Glass <sjg@chromium.org>
2014-09-09buildman: Correct counting of build failures on retrySimon Glass
When a build is to be performed, buildman checks to see if it has already been done. In most cases it will not bother trying again. However, it was not reading the return code from the 'done' file, so if the result was a failure, it would not be counted. This depresses the 'failure' count stats that buildman prints in this case. Fix this bug by always reading the return code. Signed-off-by: Simon Glass <sjg@chromium.org>
2014-09-09buildman: Allow tests to have their own boardsSimon Glass
Rather than reading boards.cfg, which may take time to generate and is not necessarily suitable for running tests, create our own list of boards. Signed-off-by: Simon Glass <sjg@chromium.org>
2014-09-09buildman: Avoid looking at config file or toolchains in testsSimon Glass
These files may not exist in the environment, or may not be suitable for testing. Provide our own config file and our own toolchains when running tests. Signed-off-by: Simon Glass <sjg@chromium.org>
2014-09-09buildman: Set up bsettings outside the control moduleSimon Glass
Move the bsettings code back to the main buildman.py file, so we can do something different when testing. Signed-off-by: Simon Glass <sjg@chromium.org>
2014-09-09buildman: Add a functional testSimon Glass
Buildman currently lacks testing in many areas, including its use of git, make and many command-line flags. Add a functional test which covers some of these areas. So far it does a fake 'build' of all boards for the current source tree. This version reads the real ~/.buildman and boards.cfg files. Future work will improve this. Signed-off-by: Simon Glass <sjg@chromium.org>
2014-09-09patman: Provide a way to intercept commands for testingSimon Glass
Add a test point for the command module. This allows tests to emulate the execution of commands. This provides more control (since we can make the fake 'commands' do whatever we like), makes it faster to write tests since we don't need to set up as much environment, and speeds up test execution. Signed-off-by: Simon Glass <sjg@chromium.org>
2014-09-09buildman: Move full help code into the control moduleSimon Glass
There is no good reason to keep this code separate. Move it into control.py so it is easier to test. Signed-off-by: Simon Glass <sjg@chromium.org>
2014-09-09buildman: Move the command line code into its own fileSimon Glass
We want to be able to issue parser commands from within buildman for test purposes. Move the parser code into its own file so we don't end up needing the buildman and test modules to reference each other. Signed-off-by: Simon Glass <sjg@chromium.org>
2014-09-09patman: RunPipe() should not pipe stdout/stderr unless askedSimon Glass
RunPipe() currently pipes the output of stdout and stderr to a pty, but this is not the intended behaviour. Fix it. Signed-off-by: Simon Glass <sjg@chromium.org>
2014-09-09buildman: Enhance basic test to check summary outputSimon Glass
Adjust the basic test so that it checks all console output. This will help to ensure that the builder is behaving correctly with printing summary information. Signed-off-by: Simon Glass <sjg@chromium.org>
2014-09-09buildman: Send builder output through a function for testingSimon Glass
To allow us to verify the builder's console output, send it through a function which can collect it when running in test mode. Signed-off-by: Simon Glass <sjg@chromium.org>
2014-09-09patman: Add a way of recording terminal output for testingSimon Glass
When running unit tests we don't want output to go to the terminal. Provide a way of collecting it so that it can be examined by test code later. Signed-off-by: Simon Glass <sjg@chromium.org>
2014-09-09clang: workaround for generated constantsJeroen Hofstee
KBuild abuses the asm statement to write to a file and clang chokes about these invalid asm statements. Hack it even more by fooling this is actual valid asm code. cc: Masahiro Yamada <yamada.m@jp.panasonic.com> cc: Tom Rini <trini@ti.com> Signed-off-by: Jeroen Hofstee <jeroen@myspectrum.nl>