karo-tx-uboot.git
6 years agoMerge branch 'master' of git://git.denx.de/u-boot-spi
Tom Rini [Fri, 21 Feb 2014 13:00:22 +0000 (08:00 -0500)]
Merge branch 'master' of git://git.denx.de/u-boot-spi

6 years agoarc: fix relocation for big-endian target
Alexey Brodkin [Tue, 18 Feb 2014 11:10:58 +0000 (15:10 +0400)]
arc: fix relocation for big-endian target

In case of little-endian ARC700 instructions (which may include target
address) are encoded as middle-endian. That's why it's required to swap
bytes after read and ten right before write back.

But in case of big-endian ARC700 instructions are encoded as a plain
big-endian. Thus no need for byte swapping.

Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
Cc: Francois Bedard <fbedard@synopsys.com>
Cc: Tom Rini <trini@ti.com>
cc: Noam Camus <noamc@ezchip.com>

6 years agoaxs101: change command prompt marker to match marketing name of the board
Alexey Brodkin [Sat, 8 Feb 2014 06:30:59 +0000 (10:30 +0400)]
axs101: change command prompt marker to match marketing name of the board

Proper spelling of the boad marketing name is with upper case.
So changing it from lower case to upper case here.

Cc: Tom Rini <trini@ti.com>
Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
6 years agoaxs101: fix dw gmac instantiation for updated dw gmac driver
Alexey Brodkin [Sat, 8 Feb 2014 06:24:35 +0000 (10:24 +0400)]
axs101: fix dw gmac instantiation for updated dw gmac driver

With accepted change to DW GMAC driver -
92a190aaab3536d695c51e0739f925910eb49889 (net/designware - switch driver
to phylib usage) we need to update this board because
"designware_initialize" now accepts only 2 parameters instead of 4.

Cc: Vineet Gupta <vgupta@synopsys.com>
Cc: Tom Rini <trini@ti.com>
Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
6 years agoserial/serial_arc: switch from {read|write}l to {read|write}b accessors
Alexey Brodkin [Sat, 8 Feb 2014 06:10:02 +0000 (10:10 +0400)]
serial/serial_arc: switch from {read|write}l to {read|write}b accessors

This is required for proper functionality on big-endian targets.
Memory-mapped registres of ARC UART are not 32-bit words but 8-bit bytes
so on little-endian target either acessor (_l or _b) works fine.
On big-endian only _b accessors works as expected.

Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
Cc: Vineet Gupta <vgupta@synopsys.com>
Cc: Noam Camus <noamc@ezchip.com>
Cc: Tom Rini <trini@ti.com>
6 years agoserial/serial_arc: add work-around of ISS bug
Alexey Brodkin [Sat, 8 Feb 2014 06:10:01 +0000 (10:10 +0400)]
serial/serial_arc: add work-around of ISS bug

Explanation is in in-lined comment.

Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
Cc: Vineet Gupta <vgupta@synopsys.com>
Cc: Noam Camus <noamc@ezchip.com>
Cc: Tom Rini <trini@ti.com>
6 years agoMerge branch 'master' of git://git.denx.de/u-boot-arm
Tom Rini [Thu, 20 Feb 2014 17:18:59 +0000 (12:18 -0500)]
Merge branch 'master' of git://git.denx.de/u-boot-arm

6 years agoblackfin: Add <asm/clock.h> to numerous drivers
Tom Rini [Thu, 20 Feb 2014 15:14:10 +0000 (10:14 -0500)]
blackfin: Add <asm/clock.h> to numerous drivers

With d6a320d we moved some clock externs out of blackfin_local.h and
into clock.h but now need to include <asm/clock.h> in more drivers to
avoid warnings.

Cc: Sonic Zhang <sonic.zhang@analog.com>
Signed-off-by: Tom Rini <trini@ti.com>
6 years agodfu: mmc: fs: Fix format accepted by ext4write command
Lukasz Majewski [Thu, 20 Feb 2014 09:29:18 +0000 (10:29 +0100)]
dfu: mmc: fs: Fix format accepted by ext4write command

The commit:

"EXT4: Fix number base handling of "ext4write" command"
 SHA1: f7740f7712b8638f08b83a7e5d00bc1d6bb086a9

Cleaned up the ext4write command format.

This commit shall be regarded as a follow up, since the DFU subsystem is
using those commands for its normal operation.

Signed-off-by: Lukasz Majewski <l.majewski@samsung.com>
6 years agovenice2: move device tree to fix build error
Masahiro Yamada [Thu, 20 Feb 2014 08:18:42 +0000 (17:18 +0900)]
venice2: move device tree to fix build error

Commit 5ab502cb gathered all device tree sources
to arch/$(ARCH)/dts/.
So tegra124-venice2.dts also must go to arch/arm/dts directory
to build venice2 board.

(Commit 5ab502cb had been posted before venice2 board support
was merged. So an unvisible conflict happened.)

Acked-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
Cc: Simon Glass <sjg@chromium.org>
Cc: Tom Rini <trini@ti.com>
6 years agoMerge branch 'u-boot/master' into 'u-boot-arm/master'
Albert ARIBAUD [Thu, 20 Feb 2014 12:16:05 +0000 (13:16 +0100)]
Merge branch 'u-boot/master' into 'u-boot-arm/master'

Conflicts:
Makefile
drivers/net/npe/Makefile

These two conflicts arise from commit 0b2d3f20
("ARM: NET: Remove the IXP NPE ethernet driver") and are
resolved by deleting the drivers/net/npe/Makefile file
and removing the CONFIG_IXP4XX_NPE line from Makefile.

6 years agoarc: remove "hardware.h"
Alexey Brodkin [Mon, 10 Feb 2014 08:20:13 +0000 (12:20 +0400)]
arc: remove "hardware.h"

This file was only required for compilation of designware_i2c driver.
Since explicit inclusion of "hardware.h" is now removed from the driver
we may safely remove this empty header as well.

Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
Cc: Tom Rini <trini@ti.com>
Cc: Heiko Schocher <hs@denx.de>
Cc: Stefan Roese <sr@denx.de>
Cc: Vipin Kumar <vipin.kumar@st.com>
Cc: Armando Visconti <armando.visconti@st.com>
6 years agodesignware_i2c: remove inclusion of <asm/arch/hardware.h>
Alexey Brodkin [Mon, 10 Feb 2014 08:20:12 +0000 (12:20 +0400)]
designware_i2c: remove inclusion of <asm/arch/hardware.h>

As soon as all boards have their CONFIG_SYS_I2C_BASE defined in
configuration files instead of "asm/arch/hardware.h" it's safe to remove
the inclusion in question and make driver platform-independent.

Cc: Tom Rini <trini@ti.com>
Cc: Heiko Schocher <hs@denx.de>
Cc: Stefan Roese <sr@denx.de>
Cc: Vipin Kumar <vipin.kumar@st.com>
Cc: Armando Visconti <armando.visconti@st.com>
Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
6 years agospear: move CONFIG_SYS_I2C_BASE from arch-spear/hardware to board configs
Alexey Brodkin [Mon, 10 Feb 2014 08:20:11 +0000 (12:20 +0400)]
spear: move CONFIG_SYS_I2C_BASE from arch-spear/hardware to board configs

Having CONFIG_SYS_I2C_BASE requires DW I2C driver to explicitly include
<arch/hardware.h> which other platforms may not have at all.

It's always good to have a driver platform-independent.

Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
Cc: Tom Rini <trini@ti.com>
Cc: Heiko Schocher <hs@denx.de>
Cc: Stefan Roese <sr@denx.de>
Cc: Vipin Kumar <vipin.kumar@st.com>
Cc: Armando Visconti <armando.visconti@st.com>
6 years agoOMAP24xx I2C: Add support for set-speed
Hannes Petermaier [Mon, 3 Feb 2014 20:22:18 +0000 (21:22 +0100)]
OMAP24xx I2C: Add support for set-speed

Adds support for set-speed on the OMAP24xx I2C Adapter.

Changes to omap24_i2c_write(...) for polling ARDY Bit from IRQ-Status.
Otherwise on a subsequent call the transfer of last byte from the
predecessor is aborted and therefore lost. For exmaple when
i2c_write(...) is followed by a i2c_setspeed(...) (which has to
deactivate and activate master for changing psc,...).

Minor cosmetical changes.

Signed-off-by: Hannes Petermaier <oe5hpm@oevsv.at>
Cc: Heiko Schocher <hs@denx.de>
6 years agoi2c: i2c-mxs: Wait for I2C to empty queue
Marek Vasut [Thu, 6 Feb 2014 01:59:34 +0000 (02:59 +0100)]
i2c: i2c-mxs: Wait for I2C to empty queue

Make sure the I2C write queue is empty before leaving the mxs_i2c_write().
If we start and I2C write and only wait for ACK, the MXS I2C IP block may
enter next operation while still processing the write aftermath internally.
This will in turn disrupt one or more subsequent transfer(s).

A testcase for this issue is as such. This testcase is also interesting because
the first I2C_WRITE which becomes disruptive happens in the 'i2c read' command.
The 'i2c read' command first uses I2C_WRITE to send I2C address of the chip and
then uses I2C_READ to read data from the chip. After this command completes, the
'i2c probe' will use sequence of I2C_WRITE commands to probe the I2C bus. The
problem is that the first I2C_WRITE disrupted the I2C IP block operation and
this sideeffect propagates all the way to this next I2C_WRITE used by the 'i2c
probe' call. The result is the 'i2c probe' receives an ACK on I2C address 0x00,
even if this ACK was owned by the previous I2C_WRITE operation. Note that the
'i2c read' command must read from a valid I2C chip address.

Wrong:
> i2c probe
Valid chip addresses: 50 51
> i2c read 0x50 0x0.2 0x10 0x42000000
> i2c probe
Valid chip addresses: 00 50 51

With this patch
> i2c probe
Valid chip addresses: 50 51
> i2c read 0x50 0x0.2 0x10 0x42000000
> i2c probe
Valid chip addresses: 50 51

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Heiko Schocher <hs@denx.de>
Cc: Fabio Estevam <festevam@gmail.com>
6 years agodesignware_i2c: Enhance DesignWare I2C driver address support
Chin Liang See [Tue, 4 Feb 2014 17:56:23 +0000 (11:56 -0600)]
designware_i2c: Enhance DesignWare I2C driver address support

Enhance the DesignWare I2C driver to support address length more
than 1 byte. This enhancement is required as some I2C slave
device such as EEPROM chip might have 16 bit address byte.

Signed-off-by: Chin Liang See <clsee@altera.com>
Acked-by: Alexey Brodkin <Alexey.Brodkin@synopsys.com>
Cc: Tom Rini <trini@ti.com>
cc: Armando Visconti <armando.visconti@st.com>
Cc: Stefan Roese <sr@denx.de>
Cc: Albert ARIBAUD <albert.u.boot@aribaud.net>
Cc: Heiko Schocher <hs@denx.de>
6 years agoi2c, bootcount: add support for bootcounter on i2c devices
Heiko Schocher [Sat, 25 Jan 2014 06:27:13 +0000 (07:27 +0100)]
i2c, bootcount: add support for bootcounter on i2c devices

add support for bootcounter on an i2c device. And add a
README for all bootcounter options.

Signed-off-by: Heiko Schocher <hs@denx.de>
6 years agoblackfin: make i2c driver blackfin independant
Scott Jiang [Tue, 28 Jan 2014 05:53:36 +0000 (13:53 +0800)]
blackfin: make i2c driver blackfin independant

The ADI twi peripheral is not binding to Blackfin processor only.
Access i2c registers by standard io functions.
Fix coding style.

Signed-off-by: Scott Jiang <scott.jiang.linux@gmail.com>
Signed-off-by: Sonic Zhang <sonic.zhang@analog.com>
6 years agoblackfin: rename bfin-twi_i2c driver to adi_i2c
Sonic Zhang [Tue, 28 Jan 2014 05:53:35 +0000 (13:53 +0800)]
blackfin: rename bfin-twi_i2c driver to adi_i2c

The ADI twi peripheral is not binding to Blackfin processor only.
Change to a generic name.

Signed-off-by: Sonic Zhang <sonic.zhang@analog.com>
6 years agoblackfin: add spi and i2c specific get clock functions
Sonic Zhang [Tue, 28 Jan 2014 05:53:34 +0000 (13:53 +0800)]
blackfin: add spi and i2c specific get clock functions

Signed-off-by: Sonic Zhang <sonic.zhang@analog.com>
6 years agoblackfin: the sclk MHz in i2c driver should be divided by 1000 other than 1024
Sonic Zhang [Tue, 28 Jan 2014 05:53:33 +0000 (13:53 +0800)]
blackfin: the sclk MHz in i2c driver should be divided by 1000 other than 1024

Signed-off-by: Sonic Zhang <sonic.zhang@analog.com>
6 years agoi2c: zynq: Add support for the second i2c controller
Michael Burr [Wed, 22 Jan 2014 08:46:08 +0000 (09:46 +0100)]
i2c: zynq: Add support for the second i2c controller

Initialize the second i2c controller.

Signed-off-by: Michael Burr <michael.burr@logicpd.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
6 years agoi2c: zynq: Support for 0-length register address
Michael Burr [Wed, 22 Jan 2014 08:46:07 +0000 (09:46 +0100)]
i2c: zynq: Support for 0-length register address

Fixed bug with alen == 0 in 'i2c_write', 'i2c_read'
Further minor corrections:
- Write 'address' register before 'data' register.
- Write 'transfer_size' register before 'address' register.

Signed-off-by: Michael Burr <michael.burr@logicpd.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
6 years agoPrepare v2014.04-rc1 v2014.04-rc1
Tom Rini [Wed, 19 Feb 2014 21:01:28 +0000 (16:01 -0500)]
Prepare v2014.04-rc1

Signed-off-by: Tom Rini <trini@ti.com>
6 years agokbuild,tegra124: add dummy obj- for Kbuild
Masahiro Yamada [Wed, 19 Feb 2014 13:26:43 +0000 (22:26 +0900)]
kbuild,tegra124: add dummy obj- for Kbuild

In Kbuild, every makefile must have non-empty obj- or obj-y.
Otherwise, built-in.o will not be created and the link stage
will fail.

Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
6 years agocosmetic: FIT: fix a strange comment
Masahiro Yamada [Tue, 18 Feb 2014 06:39:21 +0000 (15:39 +0900)]
cosmetic: FIT: fix a strange comment

There is a strange comment in fit_image_load().
This function can be used for loading Kernel Image, FDT
as well as ramdisk.

Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
Cc: Simon Glass <sjg@chromium.org>
Acked-by: Simon Glass <sjg@chromium.org>
6 years agoMove CONFIG_DISPLAY_CPUINFO to Makefile
Masahiro Yamada [Thu, 13 Feb 2014 09:30:27 +0000 (18:30 +0900)]
Move CONFIG_DISPLAY_CPUINFO to Makefile

If the whole code is surrounded by #ifdef(CONFIG_ ) .. #endif,
it should be moved to Makefile.

Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
6 years agoMove #ifdef(CONFIG_DISPLAY_CPUINFO) from caller to callee
Masahiro Yamada [Thu, 13 Feb 2014 09:30:26 +0000 (18:30 +0900)]
Move #ifdef(CONFIG_DISPLAY_CPUINFO) from caller to callee

- When CONFIG_DISPLAY_CPUINFO is not enabled,
   print_cpuinfo() should be defined as an empty function
   in a header, include/common.h

 - Remove #ifdef CONFIG_DISPLAY_CPUINFO .. #endif
   from caller, common/board_f.c and arch/arm/lib/board.c

 - Remove redundant prototypes in arch/arm/lib/board.c,
   arch/arm/include/asm/arch-am33x/sys_proto.h and
   board/nokia/rx51/rx51.h, keeping the one in include/common.h

 - Add #ifdef CONFIG_DISPLAY_CPUINFO to the func definition
   where it is missing

Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
6 years agoconfigs: Delete unused CONFIG_SYS_64BIT_{VSPRINTF, STRTOUL}
Masahiro Yamada [Fri, 7 Feb 2014 08:20:52 +0000 (17:20 +0900)]
configs: Delete unused CONFIG_SYS_64BIT_{VSPRINTF, STRTOUL}

Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
6 years agoconfigs: Delete obsolete macro, CONFIG_SYS_GBL_DATA_SIZE
Masahiro Yamada [Fri, 7 Feb 2014 00:23:03 +0000 (09:23 +0900)]
configs: Delete obsolete macro, CONFIG_SYS_GBL_DATA_SIZE

CONFIG_SYS_GBL_DATA_SIZE is not used any more.
The size of struct "global_data" is automatically calculated
by asm-offsets. (See lib/asm-offsets.c)

GENERATED_GBL_DATA_SIZE should be used instead of
CONFIG_SYS_GBL_DATA_SIZE.

Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
6 years agodts: generate multiple device tree blobs
Masahiro Yamada [Wed, 5 Feb 2014 02:28:27 +0000 (11:28 +0900)]
dts: generate multiple device tree blobs

It is convenient to have all device trees on the same SoC compiled.
It allows for later easy repackaging without the need to re-run
the make file.

  - Build device trees with the same SoC under arch/$(ARCH)/dts

  - Copy the one specified by CONFIG_DEFAULT_DEVICE_TREE or
    DEVICE_TREE=... to dts/dt.dtb

Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
6 years agodts: move device tree sources to arch/$(ARCH)/dts/
Masahiro Yamada [Wed, 5 Feb 2014 02:28:26 +0000 (11:28 +0900)]
dts: move device tree sources to arch/$(ARCH)/dts/

Unlike Linux Kernel, U-Boot historically had *.dts files under
board/$(VENDOR)/dts/ and *.dtsi files under arch/$(ARCH)/dts/.

I think arch/$(ARCH)/dts dicretory is a better location
to store both *.dts and *.dtsi files.

For example, before this commit, board/xilinx/dts directory
had both Microblaze dts (microblaze-generic.dts) and
ARM dts (zynq-*.dts), which are totally unrelated.

This commit moves *.dts to arch/$(ARCH)/dts/ directories,
allowing us to describe nicely mutiple DTBs generation in the next commit.

Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
6 years agodts: re-write dts/Makefile more simply with Kbuild
Masahiro Yamada [Wed, 5 Feb 2014 02:28:25 +0000 (11:28 +0900)]
dts: re-write dts/Makefile more simply with Kbuild

Useful rules in scripts/Makefile.lib allows us to easily
generate a device tree blob and wrap it in assembly code.

We do not need to parse a linker script to get output format and arch.

This commit deletes ./u-boot.dtb since it is a copy of dts/dt.dtb.

Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
6 years agokernel-doc: fix some errors
Masahiro Yamada [Wed, 5 Feb 2014 01:52:52 +0000 (10:52 +0900)]
kernel-doc: fix some errors

- Delete fs.xml from DOCBOOKS to fix an error.
     Commit e3ff797c added fs.xml to DOCBOOKS
     but missed to add doc/DocBook/fs.tmpl.
  - Fix the location of include guard in include/linker_lists.h.

Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
Reported-by: Abraham Varricatt <abraham.varricatt@vvdntech.com>
Acked-by: Simon Glass <sjg@chromium.org>
6 years agokernel-doc: update kernel-doc related files to Linux v3.13
Masahiro Yamada [Wed, 5 Feb 2014 01:52:51 +0000 (10:52 +0900)]
kernel-doc: update kernel-doc related files to Linux v3.13

Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
Acked-by: Simon Glass <sjg@chromium.org>
6 years agokernel-doc: move kernel-doc tools to scripts/
Masahiro Yamada [Wed, 5 Feb 2014 01:52:50 +0000 (10:52 +0900)]
kernel-doc: move kernel-doc tools to scripts/

tools/kernel-doc/docproc.c and tools/kernel-doc/kernel-doc are
files imported from Linux Kernel.

They originally resided under scripts/ directory in Linux Kernel.

This commit moves them to the original location.

Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
Acked-by: Simon Glass <sjg@chromium.org>
6 years ago.gitignore: drop include/asm from ignored file list
Masahiro Yamada [Wed, 5 Feb 2014 01:41:27 +0000 (10:41 +0900)]
.gitignore: drop include/asm from ignored file list

Commit bb02c536 stopped creaing a symbolic link include/asm.

Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
6 years agotools/env: cross-compile fw_printenv without setting HOSTCC
Masahiro Yamada [Tue, 4 Feb 2014 08:24:45 +0000 (17:24 +0900)]
tools/env: cross-compile fw_printenv without setting HOSTCC

fw_printenv is a program which mostly runs on the target Linux.

Before switching to Kbuild, we needed to set HOSTCC at the
command line like this:
    make HOSTCC=<your CC cross-compiler> env

Going forward we can cross compile it by specifying CROSS_COMPILE:
    make CROSS_COMPILE=<your cross-compiler prefix> env
This looks more natural.

Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
Tested-by: Gerhard Sittig <gsi@denx.de>
6 years agokbuild: Do not generate .*.su files at the top directory
Masahiro Yamada [Tue, 4 Feb 2014 08:24:44 +0000 (17:24 +0900)]
kbuild: Do not generate .*.su files at the top directory

Without this workaround, you will see a lot of ".*.su" files
at the top directory after building with a compiler
which supports "-fstack-usage" option.

Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
6 years agoboard: sandburst: delete FORCEBUILD
Masahiro Yamada [Tue, 4 Feb 2014 08:24:43 +0000 (17:24 +0900)]
board: sandburst: delete FORCEBUILD

We had switched to Kbuild, so we do not need to
delete sandburst board files at every build.

U-Boot conventional build system did not check the
update of command line option, -DBUILDUSER.

Kbuild can handle it nicely and re-builds object files
when command line options are changed.
(The file ".*.cmd" stores the information how the file
was generated at the previous build.)

Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
6 years agokbuild: check clean source and generate Makefile for out-of-tree build
Masahiro Yamada [Tue, 4 Feb 2014 08:24:42 +0000 (17:24 +0900)]
kbuild: check clean source and generate Makefile for out-of-tree build

For out-of-tree build
  - Check if the source tree is clean
  - Create a Makefile in the output directory

Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
6 years agokbuild: support simultaneous board configuration and "make all"
Masahiro Yamada [Tue, 4 Feb 2014 08:24:41 +0000 (17:24 +0900)]
kbuild: support simultaneous board configuration and "make all"

This commit fixes two problems:

[1] We could not do board configuration and "make all"
    in one command line.

For example, the following did not work as we expect:
  $ make sandbox_config all
  Configuring for sandbox board...
  make: Nothing to be done for `all'.

[2] mixed-target build did not work with -j option

For example, the following did not work:
  $ make -j8 sandbox_config u-boot
  Makefile:481: *** "System not configured - see README".  Stop.
  make: *** [u-boot] Error 2
  make: *** Waiting for unfinished jobs....
  Configuring for sandbox board...

Going forward, we can do
  $ make -j8 sandbox_config all

This is the same as
  $ make sandbox_config
  $ make -j8

Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
6 years agokbuild: use scripts/Makefile.clean
Masahiro Yamada [Tue, 4 Feb 2014 08:24:40 +0000 (17:24 +0900)]
kbuild: use scripts/Makefile.clean

This commit refactors cleaning targets such as
clean, clobber, mrpropper, distclean
with scripts/Makefile.clean.

By using scripts/Makefile.clean, we can recursively descend
into subdirectories and delete generated files there.

We do not need add a big list of generated files
to the "clean" target.

Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
6 years agoMakefile: refactor tools-all targets
Masahiro Yamada [Tue, 4 Feb 2014 08:24:39 +0000 (17:24 +0900)]
Makefile: refactor tools-all targets

- Move "easylogo", "gdb" tagets to tools/Makefile
 - Delete "gdbtools" target (same as "gdb")

Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
6 years agoMakefile: Do not pass MTD_VERSION from the top Makefile
Masahiro Yamada [Tue, 4 Feb 2014 08:24:38 +0000 (17:24 +0900)]
Makefile: Do not pass MTD_VERSION from the top Makefile

$(MTD_VERSION) is used in tools/env/Makefile

If you specify a variable at a command line like:
  $ make MTD_VERSION=old env
or specify it thru an envrionment variable like:
  $ export MTD_VERSION=old
  $ make env
it is inherited to the sub-make too.
We do not need to pass it from the top Makefile explicitely.

Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
6 years agokbuild: refactor Makefile and spl/Makefile more
Masahiro Yamada [Tue, 4 Feb 2014 08:24:37 +0000 (17:24 +0900)]
kbuild: refactor Makefile and spl/Makefile more

This commit refactors rules of directory descending
and defines u-boot-dirs and u-boot-all-dirs.
(We will need u-boot-all-dirs when using
scripts/Makefile.clean)

Additionally, rename LIBS-y to libs-y.

Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
6 years agoexamples: move api/ and standalone/ entry to examples/Makefile
Masahiro Yamada [Tue, 4 Feb 2014 08:24:36 +0000 (17:24 +0900)]
examples: move api/ and standalone/ entry to examples/Makefile

Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
6 years agokbuild: change the top Makefile to more Kbuild-ish structure
Masahiro Yamada [Tue, 4 Feb 2014 08:24:35 +0000 (17:24 +0900)]
kbuild: change the top Makefile to more Kbuild-ish structure

This commit changes the top Makefile to handle various targets
nicely.
Make targets are divided into four categories:

 - mixed-targets
     We can call a configuration target and build targets
     at one command line like follows:
     $ make <board_name>_config u-boot

     They are handled one by one.

 - config targets
     <board_name>_config

 - no-dot-config-targets
     Targets we can run without board configuration such as
       clean, mrproper, distclean, TAGS, %docs, etc.

 - build targets
     The other target which need board configuration.

Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
6 years agoMakefile: remove a cleaning target "tidy"
Masahiro Yamada [Tue, 4 Feb 2014 08:24:34 +0000 (17:24 +0900)]
Makefile: remove a cleaning target "tidy"

Before this commit, "make tidy" did
"make clean" + delete "*.depend*" files.

But, we do not have "*.depend*" files any more,
which means "make tidy" is the same as "make clean".

This commit removes the redandant target "tidy".

Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
6 years agokbuild: generate {spl, tpl}-autoconf.mk only when it is necessary
Masahiro Yamada [Tue, 4 Feb 2014 08:24:33 +0000 (17:24 +0900)]
kbuild: generate {spl, tpl}-autoconf.mk only when it is necessary

Before this commit, {spl,tpl}-autoconf.mk was always generated
at the top Makefile even if SPL(TPL) build was not selected.

This commit moves the build rule of {spl,tpl}-autoconf.mk
from the top Makefile to spl/Makefile.
It prevents unnecessary {spl,tpl}-autoconf.mk from being
generated.

Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
6 years agokbuild: move include directives of board configuration files
Masahiro Yamada [Tue, 4 Feb 2014 08:24:32 +0000 (17:24 +0900)]
kbuild: move include directives of board configuration files

This commit changes the location of include directives
of board configuration files.

The purpose of this change is:
 - Slim down $(TOPDIR)/config.mk
 - Prevent $(TOPDIR)/Makefile from including the same
    configuration file twice
 - Do not include include/config.mk multiple times
    because ARCH, CPU, BOARD, VENDOR, SOC are exported

Before this commit:

 - include/autoconf.mk was included from $(TOPDIR)/Makefile
   and $(TOPDIR)/config.mk
   (This means $(TOPDIR)/Makefile included include/autoconf.mk twice)

 - include/{spl,tpl}-autoconf.mk was included from $(TOPDIR)/config.mk

 - include/config.mk was included from $(TOPDIR)/Makefile
   and $(TOPDIR)/config.mk
   (This means $(TOPDIR)/Makefile included include/config.mk twice)

After this commit:

 - include/autoconf.mk is included from $(TOPDIR)/Makefile
   and $(TOPDIR)/scripts/Makefile.build

 - include/{spl,tpl}-autoconf.mk is included from $(TOPDIR)/spl/Makefile
   and $(TOPDIR)/scripts/Makefile.build

 - include/config.mk is included from $(TOPDIR)/config.mk and
   $(TOPDIR)/spl/Makefile

Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
6 years agokbuild: convert some make rules to Kbuild style
Masahiro Yamada [Tue, 4 Feb 2014 08:24:31 +0000 (17:24 +0900)]
kbuild: convert some make rules to Kbuild style

We can get Kbuild-ish log style like this:
  GEN     include/autoconf.mk
  GEN     include/autoconf.mk.dep

We do not need XECHO any more.

And also change checkstack target like Linux Kernel.

Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
6 years agokbuild: move some lines to more suitable place
Masahiro Yamada [Tue, 4 Feb 2014 08:24:30 +0000 (17:24 +0900)]
kbuild: move some lines to more suitable place

Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
6 years agokbuild: delete temporary build scripts
Masahiro Yamada [Tue, 4 Feb 2014 08:24:29 +0000 (17:24 +0900)]
kbuild: delete temporary build scripts

We had switched to Kbuild.
We do not need old build scripts any more.

Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
6 years agokbuild: use Linux Kernel build scripts
Masahiro Yamada [Tue, 4 Feb 2014 08:24:28 +0000 (17:24 +0900)]
kbuild: use Linux Kernel build scripts

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>
6 years agokbuild: import more build scripts from Linux v3.13 tag
Masahiro Yamada [Tue, 4 Feb 2014 08:24:27 +0000 (17:24 +0900)]
kbuild: import more build scripts from Linux v3.13 tag

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>
6 years agoMakefile: rename scripts/Makefile.build to scripts/Makefile.build.tmp
Masahiro Yamada [Tue, 4 Feb 2014 08:24:26 +0000 (17:24 +0900)]
Makefile: rename scripts/Makefile.build to scripts/Makefile.build.tmp

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>
6 years agokbuild: add dummy obj-y to create built-in.o
Masahiro Yamada [Tue, 4 Feb 2014 08:24:25 +0000 (17:24 +0900)]
kbuild: add dummy obj-y to create built-in.o

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>
6 years agokbuild: change out-of-tree build
Masahiro Yamada [Tue, 4 Feb 2014 08:24:24 +0000 (17:24 +0900)]
kbuild: change out-of-tree build

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>
6 years agoMakefile: move some flags to examples makefiles
Masahiro Yamada [Tue, 4 Feb 2014 08:24:23 +0000 (17:24 +0900)]
Makefile: move some flags to examples makefiles

This commit moves some flags which are used
under examples/ directory only.

Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
6 years agoMakefile: move some flags to spl/Makefile
Masahiro Yamada [Tue, 4 Feb 2014 08:24:22 +0000 (17:24 +0900)]
Makefile: move some flags to spl/Makefile

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>
6 years agoMakefile: move more stuff to top Makefile
Masahiro Yamada [Tue, 4 Feb 2014 08:24:21 +0000 (17:24 +0900)]
Makefile: move more stuff to top Makefile

Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
6 years agoMakefile: refactor include path settings
Masahiro Yamada [Tue, 4 Feb 2014 08:24:20 +0000 (17:24 +0900)]
Makefile: refactor include path settings

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>
6 years agoMakefile: move more flags to the top Makefile
Masahiro Yamada [Tue, 4 Feb 2014 08:24:19 +0000 (17:24 +0900)]
Makefile: move more flags to the top Makefile

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>
6 years agokbuild: Use Kbuild.include
Masahiro Yamada [Tue, 4 Feb 2014 08:24:18 +0000 (17:24 +0900)]
kbuild: Use Kbuild.include

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>
6 years agokbuild: import Kbuild.include from linux v3.13 tag
Masahiro Yamada [Tue, 4 Feb 2014 08:24:17 +0000 (17:24 +0900)]
kbuild: import Kbuild.include from linux v3.13 tag

Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
6 years agoMakefile: move BFD_ROOT_DIR to tools/gdb/Makefile
Masahiro Yamada [Tue, 4 Feb 2014 08:24:16 +0000 (17:24 +0900)]
Makefile: move BFD_ROOT_DIR to tools/gdb/Makefile

BFD_ROOT_DIR is used only in tools/gdb/Makefile

Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
6 years agoMakefile: move some variable definitions to the top Makefile
Masahiro Yamada [Tue, 4 Feb 2014 08:24:15 +0000 (17:24 +0900)]
Makefile: move some variable definitions to the top Makefile

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>
6 years agoMakfile: move suffix rules to Makefile.build
Masahiro Yamada [Tue, 4 Feb 2014 08:24:14 +0000 (17:24 +0900)]
Makfile: move suffix rules to Makefile.build

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>
6 years agonand-spl: Use scripts/Makefile.build
Masahiro Yamada [Tue, 4 Feb 2014 08:24:13 +0000 (17:24 +0900)]
nand-spl: Use scripts/Makefile.build

Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
6 years agoexamples: Use scripts/Makefile.build
Masahiro Yamada [Tue, 4 Feb 2014 08:24:12 +0000 (17:24 +0900)]
examples: Use scripts/Makefile.build

Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
6 years agoboard: samsung: refactor host programs
Masahiro Yamada [Tue, 4 Feb 2014 08:24:11 +0000 (17:24 +0900)]
board: samsung: refactor host programs

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>
6 years agotools: convert makefiles to kbuild style
Masahiro Yamada [Tue, 4 Feb 2014 08:24:10 +0000 (17:24 +0900)]
tools: convert makefiles to kbuild style

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>
6 years agoMakefile.host.tmp: add a new script to refactor tools
Masahiro Yamada [Tue, 4 Feb 2014 08:24:09 +0000 (17:24 +0900)]
Makefile.host.tmp: add a new script to refactor tools

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>
6 years ago.gitignore: ingore files generated by Kbuild
Masahiro Yamada [Tue, 4 Feb 2014 08:24:08 +0000 (17:24 +0900)]
.gitignore: ingore files generated by Kbuild

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>
6 years agomicroblaze: remove an empty file arch/microblaze/lib/time.c
Masahiro Yamada [Wed, 19 Feb 2014 13:10:04 +0000 (22:10 +0900)]
microblaze: remove an empty file arch/microblaze/lib/time.c

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>
6 years agoARM: O5/dra7xx: Add SATA boot support
Dan Murphy [Mon, 3 Feb 2014 12:59:02 +0000 (06:59 -0600)]
ARM: O5/dra7xx: Add SATA boot support

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>
6 years agocommon: spl: Add spl sata boot support
Dan Murphy [Mon, 3 Feb 2014 12:59:01 +0000 (06:59 -0600)]
common: spl: Add spl sata boot support

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>
6 years agotools: correct proftool build rule
Ian Campbell [Fri, 31 Jan 2014 23:54:44 +0000 (23:54 +0000)]
tools: correct proftool build rule

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>
6 years agoEXT4: Fix number base handling of "ext4write" command
Wolfgang Denk [Fri, 31 Jan 2014 08:28:25 +0000 (09:28 +0100)]
EXT4: Fix number base handling of "ext4write" command

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>
6 years agonet, phy: atheros ar803x bug
Heiko Schocher [Thu, 30 Jan 2014 10:02:13 +0000 (11:02 +0100)]
net, phy: atheros ar803x bug

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>
6 years agofdt: rename IMAAGE_OF_BOARD_SETUP to IMAGE_OF_BOARD_SETUP
Masahiro Yamada [Wed, 29 Jan 2014 07:29:16 +0000 (16:29 +0900)]
fdt: rename IMAAGE_OF_BOARD_SETUP to IMAGE_OF_BOARD_SETUP

Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
Acked-by: Simon Glass <sjg@chromium.org>
6 years agoconfig: remove platform CONFIG_SYS_HZ definition part 3
Masahiro Yamada [Tue, 28 Jan 2014 09:08:13 +0000 (18:08 +0900)]
config: remove platform CONFIG_SYS_HZ definition part 3

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>
6 years agomini2440.h: Delete remainder of dead board
Masahiro Yamada [Tue, 28 Jan 2014 09:06:12 +0000 (18:06 +0900)]
mini2440.h: Delete remainder of dead board

Commit af5b9b1f removed mini2440 board support,
but missed to delete include/configs/mini2440.h.

Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
6 years agodoc: README: Correct file name of signature verification documentation
Detlev Zundel [Mon, 20 Jan 2014 15:21:46 +0000 (16:21 +0100)]
doc: README: Correct file name of signature verification documentation

Signed-off-by: Detlev Zundel <dzu@denx.de>
6 years agounit-test: add lots of tests for the Hush 'test' command
Stephen Warren [Mon, 3 Feb 2014 20:24:24 +0000 (13:24 -0700)]
unit-test: add lots of tests for the Hush 'test' command

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>
6 years agounit-test: fix 'env default' invocation
Stephen Warren [Mon, 3 Feb 2014 20:24:23 +0000 (13:24 -0700)]
unit-test: fix 'env default' invocation

"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>
6 years agofat: implement exists() for FAT fs
Stephen Warren [Mon, 3 Feb 2014 20:21:10 +0000 (13:21 -0700)]
fat: implement exists() for FAT fs

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>
6 years agoext4: implement exists() for ext4fs
Stephen Warren [Mon, 3 Feb 2014 20:21:09 +0000 (13:21 -0700)]
ext4: implement exists() for ext4fs

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>
6 years agosandbox: enable CONFIG_CMD_FS_GENERIC
Stephen Warren [Mon, 3 Feb 2014 20:21:08 +0000 (13:21 -0700)]
sandbox: enable CONFIG_CMD_FS_GENERIC

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>
6 years agosandbox: implement exists() function
Stephen Warren [Mon, 3 Feb 2014 20:21:07 +0000 (13:21 -0700)]
sandbox: implement exists() function

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>
6 years agocmd_test: implement -e test for file existence
Stephen Warren [Mon, 3 Feb 2014 20:21:06 +0000 (13:21 -0700)]
cmd_test: implement -e test for file existence

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>
6 years agocmd_test: evaluate to false without any arguments
Stephen Warren [Mon, 3 Feb 2014 20:21:05 +0000 (13:21 -0700)]
cmd_test: evaluate to false without any arguments

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>
6 years agocmd_test: implement ! on sub-expressions
Stephen Warren [Mon, 3 Feb 2014 20:21:04 +0000 (13:21 -0700)]
cmd_test: implement ! on sub-expressions

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>
6 years agocmd_test: check for binary operators before unary
Stephen Warren [Mon, 3 Feb 2014 20:21:03 +0000 (13:21 -0700)]
cmd_test: check for binary operators before unary

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>
6 years agocmd_test: use table lookup for parsing
Stephen Warren [Mon, 3 Feb 2014 20:21:02 +0000 (13:21 -0700)]
cmd_test: use table lookup for parsing

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>
6 years agofs: don't pass NULL dev_desc to most filesystems
Stephen Warren [Mon, 3 Feb 2014 20:21:01 +0000 (13:21 -0700)]
fs: don't pass NULL dev_desc to most filesystems

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>
6 years agofs: implement infrastructure for an 'exists' function
Stephen Warren [Mon, 3 Feb 2014 20:21:00 +0000 (13:21 -0700)]
fs: implement infrastructure for an 'exists' function

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>
6 years agofs: fix generic save command implementation
Stephen Warren [Mon, 3 Feb 2014 20:20:59 +0000 (13:20 -0700)]
fs: fix generic save command implementation

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>