summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeLines
* kbuild: use Linux Kernel build scriptsMasahiro Yamada2014-02-19-325/+526
| | | | | | | | | | | | | | | | | | | | | | | | | | | Now we are ready to switch over to real Kbuild. This commit disables temporary scripts: scripts/{Makefile.build.tmp, Makefile.host.tmp} and enables real Kbuild scripts: scripts/{Makefile.build,Makefile.host,Makefile.lib}. This switch is triggered by the line in scripts/Kbuild.include -build := -f $(if $(KBUILD_SRC),$(srctree)/)scripts/Makefile.build.tmp obj +build := -f $(if $(KBUILD_SRC),$(srctree)/)scripts/Makefile.build obj We need to adjust some build scripts for U-Boot. But smaller amount of modification is preferable. Additionally, we need to fix compiler flags which are locally added or removed. In Kbuild, it is not allowed to change CFLAGS locally. Instead, ccflags-y, asflags-y, cppflags-y, CFLAGS_$(basetarget).o, CFLAGS_REMOVE_$(basetarget).o are prepared for that purpose. Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com> Tested-by: Gerhard Sittig <gsi@denx.de>
* kbuild: import more build scripts from Linux v3.13 tagMasahiro Yamada2014-02-19-0/+1663
| | | | | | | | | | This commit imports build scripts from Linux Kernel v3.13 as they are. I know they include some trailing spaces but I am intentionally keeping them untouched. Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
* Makefile: rename scripts/Makefile.build to scripts/Makefile.build.tmpMasahiro Yamada2014-02-19-1/+1
| | | | | | | | | | | | Some build scripts including scripts/Makefile.build will be imported from Linux Kernel in the next commit. We need to adjust them for U-Boot in the following commits. To make it easier for reviewers to track the modification, this commit renames scripts/Makefile.build to scripts/Makefile.build.tmp beforehand. Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
* kbuild: add dummy obj-y to create built-in.oMasahiro Yamada2014-02-19-5/+25
| | | | | | | | | We are going to switch over to Kbuild in upcoming commits. Each makefile must have non-empty obj- or obj-y to generate built-in.o on Kbuild. Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
* kbuild: change out-of-tree buildMasahiro Yamada2014-02-19-744/+612
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit changes the working directory where the build process occurs. Before this commit, build process occurred under the source tree for both in-tree and out-of-tree build. That's why we needed to add $(obj) prefix to all generated files in makefiles like follows: $(obj)u-boot.bin: $(obj)u-boot Here, $(obj) is empty for in-tree build, whereas it points to the output directory for out-of-tree build. And our old build system changes the current working directory with "make -C <sub-dir>" syntax when descending into the sub-directories. On the other hand, Kbuild uses a different idea to handle out-of-tree build and directory descending. The build process of Kbuild always occurs under the output tree. When "O=dir/to/store/output/files" is given, the build system changes the current working directory to that directory and restarts the make. Kbuild uses "make -f $(srctree)/scripts/Makefile.build obj=<sub-dir>" syntax for descending into sub-directories. (We can write it like "make $(obj)=<sub-dir>" with a shorthand.) This means the current working directory is always the top of the output directory. Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com> Tested-by: Gerhard Sittig <gsi@denx.de>
* Makefile: move some flags to examples makefilesMasahiro Yamada2014-02-19-8/+8
| | | | | | | This commit moves some flags which are used under examples/ directory only. Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
* Makefile: move some flags to spl/MakefileMasahiro Yamada2014-02-19-19/+14
| | | | | | | Some flags are used for SPL (and TPL) build only. This commit moves them from config.mk to spl/Makefile. Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
* Makefile: move more stuff to top MakefileMasahiro Yamada2014-02-19-21/+18
| | | | Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
* Makefile: refactor include path settingsMasahiro Yamada2014-02-19-18/+19
| | | | | | | | This commit merges commonly-used header include paths to UBOOTINCLUDE and NOSTDINC_FLAGS variables, which are placed at the top Makefile. Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
* Makefile: move more flags to the top MakefileMasahiro Yamada2014-02-19-37/+39
| | | | | | | | | | | | | Before this commit, most of compiler flags were defined in config.mk. But it is redundant because config.mk is included from all recursive make. This commit moves many complier flags to the top Makefile and export them. And we use new vaiarables to store them: KBUILD_CPPFLAGS, KBUILD_CFLAGS, KBUILD_AFLAGS. This will allow us to switch more smoothly to Kbuild. Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
* kbuild: Use Kbuild.includeMasahiro Yamada2014-02-19-35/+16
| | | | | | | | | | | | | | | | This commit adjusts some files to use Kbuild.include. - Use cc-option defined in Kbuild.include (Delete cc-option in config.mk) - Use cc-version defined in (Delete cc-version in config.mk) - Move binutils-version and dtc-version to Kbuild.include by analogy to cc-version This commit also adds srctree (same as SRCTREE) to use Kbuild scripts. Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
* kbuild: import Kbuild.include from linux v3.13 tagMasahiro Yamada2014-02-19-0/+278
| | | | Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
* Makefile: move BFD_ROOT_DIR to tools/gdb/MakefileMasahiro Yamada2014-02-19-23/+21
| | | | | | BFD_ROOT_DIR is used only in tools/gdb/Makefile Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
* Makefile: move some variable definitions to the top MakefileMasahiro Yamada2014-02-19-88/+84
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit moves some variable definitions from config.mk to the top Makefile: - HOSTCC, HOSTCFLAGS, HOSTLDFLAGS - AS, LD, CC, CPP, etc. - SHELL (renamed to CONFIG_SHELL) I'd like to slim down config.mk file because it is included from all recursive make. It is redundant to re-define the variables every time descending into sub directories. We should rather define them at the top Makefile and export them. U-Boot makefiles has been used "SHELL" variable to store shell chosen for the user, whereas Linux Kernel uses "CONFIG_SHELL". We should never use "SHELL" variable because it is a special variable for GNU Make. Changing SHELL may cause unpredictable side effects whose root cause is usually difficult to find. We should use a generic variable name "CONFIG_SHELL". We should not use the syntax as follows either: rm -f $(obj)tools/env/{fw_printenv,fw_setenv} This depends on "bash" although GNU Make generally invokes "sh" to run the each rule. Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
* Makfile: move suffix rules to Makefile.buildMasahiro Yamada2014-02-19-38/+34
| | | | | | | | | | | | | | | | | | | This commit moves suffix rules from config.mk to scripts/Makefile.build, which will allow us to switch smoothly to real Kbuild. Note1: post/lib_powerpc/fpu/Makefile has its own rule to compile C sources. We need to tweak it to keep the same behavior. Note2: There are two file2 with the same name: arch/arm/lib/crt0.S and eamples/api/crt0.S. To keep the same build behavior, examples/api/Makefile also has to be treaked. Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
* nand-spl: Use scripts/Makefile.buildMasahiro Yamada2014-02-19-112/+2
| | | | Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
* examples: Use scripts/Makefile.buildMasahiro Yamada2014-02-19-55/+24
| | | | Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
* board: samsung: refactor host programsMasahiro Yamada2014-02-19-23/+17
| | | | | | | Some Samsung boards have their own tools under board/samsung/<board>/tools/. This commit refactor more makefiles with "hostprogs-y". Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
* tools: convert makefiles to kbuild styleMasahiro Yamada2014-02-19-365/+156
| | | | | | | | | | | | | Before this commit, makefiles under tools/ directory were implemented with their own way. This commit refactors them by using "hostprogs-y" variable. Several C sources have been added to wrap other C sources to simplify Makefile. For example, tools/crc32.c includes lib/crc32.c Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
* Makefile.host.tmp: add a new script to refactor toolsMasahiro Yamada2014-02-19-3/+75
| | | | | | | | | | | | | | This commit adds scripts/Makefile.host.tmp which will be used in the next commit to convert makefiles under tools/ directory to Kbuild style. Notice this script, scripts/Makefile.host.tmp is temporary. When switching over to real Kbuild, it will be replaced with scripts/Makefile.host of Linux Kernel. Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
* .gitignore: ingore files generated by KbuildMasahiro Yamada2014-02-19-9/+20
| | | | | | | | | | | | Ignore generated files by Kbuild such as .*.cmd, *.order, etc. Besides above, - Ignore *.s files We do not need to ignore with file name, asm-offsets.s - Do not ignore *.rej (for quilt) - Ignore backup files, \#*# Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
* microblaze: remove an empty file arch/microblaze/lib/time.cMasahiro Yamada2014-02-19-0/+0
| | | | | | | | | | | Commit 779bf42c moved timer functions from arch/microblaze/lib/time.c to arch/microblaze/cpu/timer.c. But the empty file, arch/microblaze/lib/time.c has been remaining probably for a human mistake. Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com> Cc: Michal Simek <michal.simek@xilinx.com>
* ARM: O5/dra7xx: Add SATA boot supportDan Murphy2014-02-19-12/+7
| | | | | | | | | | | | | Add the SATA boot support for OMAP5 and dra7xx. Renamed the omap_sata_init to the common init_sata(int dev) for commonality in with sata stack. Added the ROM boot device ID for SATA. Signed-off-by: Dan Murphy <dmurphy@ti.com> Reviewed-by: Roger Quadros <rogerq@ti.com> Signed-off-by: Tom Rini <trini@ti.com>
* common: spl: Add spl sata boot supportDan Murphy2014-02-19-0/+64
| | | | | | | | Add spl_sata to read a fat partition from a bootable SATA drive. Signed-off-by: Dan Murphy <dmurphy@ti.com> Reviewed-by: Roger Quadros <rogerq@ti.com>
* tools: correct proftool build ruleIan Campbell2014-02-19-2/+2
| | | | | | | | The incorrect substitution made it rebuild every time. Signed-off-by: Ian Campbell <ijc@hellion.org.uk> Cc: Tom Rini <trini@ti.com> Acked-by: Simon Glass <sjg@chromium.org>
* EXT4: Fix number base handling of "ext4write" commandWolfgang Denk2014-02-19-2/+2
| | | | | | | | | | | | | | | | | | | Unlike other commands (for example, "fatwrite"), ext4write would interpret the "sizebytes" as decimal number. This is not only inconsistend and unexpected to most users, it also breaks usage like this: tftp ${addr} ${name} ext4write mmc 0:2 ${addr} ${filename} ${filesize} Change this to use the standard notation of base 16 input format. See also commit b770e88 WARNING: this is a change to the user interface!! Signed-off-by: Wolfgang Denk <wd@denx.de> Cc: Uma Shankar <uma.shankar@samsung.com> Cc: Stephen Warren <swarren@nvidia.com>
* net, phy: atheros ar803x bugHeiko Schocher2014-02-19-1/+1
| | | | | | | | | | | | | | commit 626ee1e3 "phylib: update atheros ar803x phy" leads in failing ethernet on the pxm2 board. Calling genphy_config() instead of ar8021_config(), which seems for ar8021 phys not ar803x phys, make it working again. Signed-off-by: Heiko Schocher <hs@denx.de> Cc: Shengzhou Liu <Shengzhou.Liu@freescale.com> Cc: Joe Hershberger <joe.hershberger@gmail.com>
* fdt: rename IMAAGE_OF_BOARD_SETUP to IMAGE_OF_BOARD_SETUPMasahiro Yamada2014-02-19-3/+3
| | | | | Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com> Acked-by: Simon Glass <sjg@chromium.org>
* config: remove platform CONFIG_SYS_HZ definition part 3Masahiro Yamada2014-02-19-23/+0
| | | | | | | | This commit removes platform CONFIG_SYS_HZ definition for the remainders of part1 (commit cdb23792) and part2 (commit f232950f). Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com> Cc: Rob Herring <rob.herring@calxeda.com>
* mini2440.h: Delete remainder of dead boardMasahiro Yamada2014-02-19-170/+0
| | | | | | | Commit af5b9b1f removed mini2440 board support, but missed to delete include/configs/mini2440.h. Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
* doc: README: Correct file name of signature verification documentationDetlev Zundel2014-02-19-1/+1
| | | | Signed-off-by: Detlev Zundel <dzu@denx.de>
* unit-test: add lots of tests for the Hush 'test' commandStephen Warren2014-02-19-0/+89
| | | | | | | | I recently re-wrote cmd_test() to add new features. Add a bunch of unit- tests to make sure I didn't break anything. Suggested-by: Simon Glass <sjg@chromium.org> Signed-off-by: Stephen Warren <swarren@nvidia.com>
* unit-test: fix 'env default' invocationStephen Warren2014-02-19-1/+1
| | | | | | | | | | | | | | | "env default -f" doesn't work any more; replace it with "env default -f -a". This avoids the following when running the ut command: do_ut_cmd: Testing commands env - environment handling commands Usage: env default [-f] -a - [forcibly] reset default environment ... Signed-off-by: Stephen Warren <swarren@nvidia.com>
* fat: implement exists() for FAT fsStephen Warren2014-02-19-5/+16
| | | | | | | | This hooks into the generic "file exists" support added in an earlier patch, and provides an implementation for the FAT filesystem. Signed-off-by: Stephen Warren <swarren@nvidia.com> Acked-by: Simon Glass <sjg@chromium.org>
* ext4: implement exists() for ext4fsStephen Warren2014-02-19-1/+10
| | | | | | | | This hooks into the generic "file exists" support added in an earlier patch, and provides an implementation for the ext4 filesystem. Signed-off-by: Stephen Warren <swarren@nvidia.com> Acked-by: Simon Glass <sjg@chromium.org>
* sandbox: enable CONFIG_CMD_FS_GENERICStephen Warren2014-02-19-0/+1
| | | | | | | Since the generic ls command no longer segfaults sandbox, enable it. Signed-off-by: Stephen Warren <swarren@nvidia.com> Acked-by: Simon Glass <sjg@chromium.org>
* sandbox: implement exists() functionStephen Warren2014-02-19-1/+10
| | | | | | | | This hooks into the generic "file exists" support added in an earlier patch, and provides an implementation for the sandbox test environment. Signed-off-by: Stephen Warren <swarren@nvidia.com> Acked-by: Simon Glass <sjg@chromium.org>
* cmd_test: implement -e test for file existenceStephen Warren2014-02-19-0/+6
| | | | | | | | | | This is much like a regular shell's -e operator, except that it takes multiple arguments to specify the device type and device/partition ID in addition to the usual filename: if test -e mmc 0:1 /boot/boot.scr; then echo yes; else echo no; fi Signed-off-by: Stephen Warren <swarren@nvidia.com>
* cmd_test: evaluate to false without any argumentsStephen Warren2014-02-19-1/+1
| | | | | | | | | | | | This emulates bash: $ if test; then echo yes; else echo no; fi no Currently, the code sets expr = -1 in this case, which gets mapped to 0 (true) at the end of do_test() by the logical -> shell exit code conversion. Signed-off-by: Stephen Warren <swarren@nvidia.com>
* cmd_test: implement ! on sub-expressionsStephen Warren2014-02-19-19/+24
| | | | | | | | | | | | | | | Currently, ! can only be parsed as the first operator in an expression. This prevents the following from working: $ if test ! ! 1 -eq 1; then echo yes; else echo no; fi yes $ if test ! 1 -eq 2 -a ! 3 -eq 4; then echo yes; else echo no; fi yes Fix this by parsing ! like any other operator, and and handling it similarly to -a and -o. Signed-off-by: Stephen Warren <swarren@nvidia.com>
* cmd_test: check for binary operators before unaryStephen Warren2014-02-19-4/+4
| | | | | | | | | | | | | | | | | This better mirrors the behaviour of bash, for example: $ if test -z = -z; then echo yes; else echo no; fi yes This is parsed as a string comparison of "-z" and "-z", since the check for the binary "=" operator occurs first. Without this change, the command would be parsed as a -z test of "-", followed by a syntax error; a trailing -z without and operand. This is a behavioural change, but I believe any commands affected were previously invalid or bizarely formed. Signed-off-by: Stephen Warren <swarren@nvidia.com>
* cmd_test: use table lookup for parsingStephen Warren2014-02-19-67/+110
| | | | | | | | | | | | | | | | do_test() currently uses strcmp() twice to determine which operator is present; once to determine how many arguments the operator needs, then a second time to actually decode the operator and implement it. Rewrite the code so that a table lookup is used to translate the operator string to an integer, and use a more efficient switch statement to decode and execute the operator. This approach also acts as enablement for the following patches. This patch should introduce no behavioural change. Signed-off-by: Stephen Warren <swarren@nvidia.com>
* fs: don't pass NULL dev_desc to most filesystemsStephen Warren2014-02-19-0/+16
| | | | | | | | | | FAT and ext4 expect that the passed in block device descriptor not be NULL. This causes problems on sandbox, where get_device_and_partition() succeeds for the "host" device, yet passes back a NULL device descriptor. Add special handling for this situation, so that the generic filesystem commands operate as expected on sandbox. Signed-off-by: Stephen Warren <swarren@nvidia.com>
* fs: implement infrastructure for an 'exists' functionStephen Warren2014-02-19-0/+41
| | | | | | | | | | | | | | | | | | | | | | | This could be used in scripts such as: if test -e mmc 0:1 /boot/boot.scr; then load mmc 0:1 ${scriptaddr} /boot/boot.scr source ${scriptaddr} fi rather than: if load mmc 0:1 ${scriptaddr} /boot/boot.scr; then source ${scriptaddr} fi This prevents errors being printed by attempts to load non-existent files, which can be important when checking for a large set of files, such as /boot/boot.scr.uimg, /boot/boot.scr, /boot/extlinux.conf, /boot.scr.uimg, /boot.scr, /extlinux.conf. Signed-off-by: Stephen Warren <swarren@nvidia.com> Acked-by: Simon Glass <sjg@chromium.org>
* fs: fix generic save command implementationStephen Warren2014-02-19-6/+13
| | | | | | | | | | | | | | | | | | | | Fix a few issues with the generic "save" shell command, and fs_write() function. 1) fstypes[].write wasn't filled in for some file-systems, and isn't checked when used, which could cause crashes/... if executing save on e.g. fat/ext filesystems. 2) fs_write() requires the length argument to be non-zero, since it needs to know exactly how many bytes to write. Adjust the comments and code according to this. 3) fs_write() wasn't prototyped in <fs.h> like other generic functions; other code should be able to call this directly rather than invoking the "save" shell command. Signed-off-by: Stephen Warren <swarren@nvidia.com> Acked-by: Simon Glass <sjg@chromium.org>
* README: document CONFIG_CMD_FS_GENERICStephen Warren2014-02-19-0/+2
| | | | | | | | This enables generic filesystem commands such as load and ls, which automatically work with multiple filesystem types, without having to be told which is present, unlike e.g. ext2load, fatls. Signed-off-by: Stephen Warren <swarren@nvidia.com>
* Merge branch 'master' of git://git.denx.de/u-boot-armTom Rini2014-02-17-6851/+17596
|\
| * ARM: bcm2835: fix mbox POWER_STATE_RESP_ON valueStephen Warren2014-02-14-1/+1
| | | | | | | | | | | | Typo: The correct value is 1 not 2. Signed-off-by: Stephen Warren <swarren@wwwdotorg.org>
| * arm/km: introduce kmsugp1 targetGerlando Falauto2014-02-13-2/+41
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | KMSUGP1 is from a u-boot perspective (almost) identical to KMNUSA. The only difference is that the PCIe reset is connected to Kirkwood pin MPP7_PEX_RST_OUTn, we use a dedicated config flag KM_PCIE_RESET_MPP7. Such pin should theoretically be handled by the PCIe subsystem automatically, but this turned out not to be the case. So simply configure this PIN as a GPIO and issue a pulse manually. Signed-off-by: Gerlando Falauto <gerlando.falauto@keymile.com> Cc: Karlheinz Jerg <karlheinz.jerg@keymile.com> Cc: Valentin Longchamp <valenting.longchamp@keymile.com> Cc: Holger Brunck <holger.brunck@keymile.com> Acked-by: Valentin Longchamp <valentin.longchamp@keymile.com>
| * arm/km: define fdt_high env variable and allow backwards compatibilityGerlando Falauto2014-02-13-4/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add set_fdthigh subcommand to "subbootcmds" (release) so to set "fdt_high" This is necessary on Kirkwood so that the FDT does not get relocated above the memory limit that the kernel cannot access (that is the memory part reserved for the switch). This was tested on NUSA1, where it is necessary, and on ETER1, where it doesn't seem to hurt. We want the scripts to also work with older versions of u-boot, where: a) set_fdthigh is not defined (will be default env for newer u-boots) b) the fdt will not be available For this reason, we use "set_fdthigh" to tell whether we are running a newer (FDT-aware) u-boot or not. So if "set_fdthigh" runs successfully or arch != arm we try loading the fdt; otherwise we proceed normally. Notice how, contrary to release mode, set_fdthigh will _not_ be part of subbootcmds for develop and ramfs, but will be executed as part of "tftpfdt". Since this is only needed for kirkwood cards, and it prevents the kernel from booting on QorIQ (though it seemed to work on ETER1), we change its definition in the default env for powerpc so that the value is only set on ARM. Signed-off-by: Valentin Longchamp <valentin.longchamp@keymile.com> Signed-off-by: Gerlando Falauto <gerlando.falauto@keymile.com> Signed-off-by: Holger Brunck <holger.brunck@keymile.com> Acked-by: Valentin Longchamp <valentin.longchamp@keymile.com>