]> git.sur5r.net Git - u-boot/log
u-boot
6 years agoddr: altera: Add ECC DRAM scrubbing support for Arria10
Marek Vasut [Mon, 28 May 2018 15:22:47 +0000 (17:22 +0200)]
ddr: altera: Add ECC DRAM scrubbing support for Arria10

The SDRAM must first be rewritten by zeroes if ECC is used to initialize
the ECC metadata. Make the CPU overwrite the DRAM with zeroes in such a
case. This scrubbing implementation turns the caches on temporarily, then
overwrites the whole RAM with zeroes, flushes the caches and turns them
off again. This provides satisfactory performance.

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Chin Liang See <chin.liang.see@intel.com>
Cc: Dinh Nguyen <dinguyen@kernel.org>
6 years agoddr: altera: Drop custom dram_bank_mmu_setup() on Arria10
Marek Vasut [Tue, 29 May 2018 16:04:15 +0000 (18:04 +0200)]
ddr: altera: Drop custom dram_bank_mmu_setup() on Arria10

This function was never used in SPL and the default implementation of
dram_bank_mmu_setup() does the same thing. The only difference is the
part which configures OCRAM as cachable, which doesn't really work as
it covers more than the OCRAM.

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Chin Liang See <chin.liang.see@intel.com>
Cc: Dinh Nguyen <dinguyen@kernel.org>
6 years agoarm: socfpga: Add do_bridge_reset for Arria 10
Ley Foon Tan [Fri, 1 Jun 2018 08:13:19 +0000 (16:13 +0800)]
arm: socfpga: Add do_bridge_reset for Arria 10

Add do_bridge_reset() function for Arria 10, it is required by misc.c.

arch/arm/mach-socfpga/built-in.o: In function `do_bridge':
arch/arm/mach-socfpga/misc.c:221: undefined reference to `do_bridge_reset'
make[1]: *** [u-boot] Error 1

Signed-off-by: Ley Foon Tan <ley.foon.tan@intel.com>
6 years agoarm: socfpga: stratix10: Enable Stratix10 SoC build
Ley Foon Tan [Wed, 23 May 2018 16:17:32 +0000 (00:17 +0800)]
arm: socfpga: stratix10: Enable Stratix10 SoC build

Add build support for Stratix SoC

Signed-off-by: Chin Liang See <chin.liang.see@intel.com>
Signed-off-by: Ley Foon Tan <ley.foon.tan@intel.com>
Conflicts:

arch/arm/Kconfig
arch/arm/mach-socfpga/Kconfig

6 years agoboard: altera: stratix10: Add socdk board support for Stratix10 SoC
Ley Foon Tan [Wed, 23 May 2018 16:17:31 +0000 (00:17 +0800)]
board: altera: stratix10: Add socdk board support for Stratix10 SoC

Add socdk board support for Stratix SoC

Signed-off-by: Chin Liang See <chin.liang.see@intel.com>
Signed-off-by: Ley Foon Tan <ley.foon.tan@intel.com>
6 years agoddr: altera: stratix10: Add DDR support for Stratix10 SoC
Ley Foon Tan [Wed, 23 May 2018 16:17:30 +0000 (00:17 +0800)]
ddr: altera: stratix10: Add DDR support for Stratix10 SoC

Add DDR support for Stratix SoC

Signed-off-by: Chin Liang See <chin.liang.see@intel.com>
Signed-off-by: Ley Foon Tan <ley.foon.tan@intel.com>
6 years agoarm: socfpga: stratix10: Add timer support for Stratix10 SoC
Ley Foon Tan [Wed, 23 May 2018 16:17:29 +0000 (00:17 +0800)]
arm: socfpga: stratix10: Add timer support for Stratix10 SoC

Add timer support for Stratix SoC

Signed-off-by: Chin Liang See <chin.liang.see@intel.com>
Signed-off-by: Ley Foon Tan <ley.foon.tan@intel.com>
Reviewed-by: Marek Vasut <marex@denx.de>
6 years agoarm: socfpga: stratix10: Add SPL driver for Stratix10 SoC
Ley Foon Tan [Wed, 23 May 2018 16:17:28 +0000 (00:17 +0800)]
arm: socfpga: stratix10: Add SPL driver for Stratix10 SoC

Add SPL driver support for Stratix SoC

Signed-off-by: Chin Liang See <chin.liang.see@intel.com>
Signed-off-by: Ley Foon Tan <ley.foon.tan@intel.com>
6 years agoarm: socfpga: Restructure the SPL file
Ley Foon Tan [Wed, 23 May 2018 16:17:27 +0000 (00:17 +0800)]
arm: socfpga: Restructure the SPL file

Restructure the SPL so each devices such as CV, A10 and S10
will have their own dedicated SPL file. SPL file determine
the HW initialization flow which is device specific

Signed-off-by: Chin Liang See <chin.liang.see@intel.com>
Signed-off-by: Ley Foon Tan <ley.foon.tan@intel.com>
6 years agoarm: socfpga: stratix10: Add MMU support for Stratix10 SoC
Ley Foon Tan [Wed, 23 May 2018 16:17:26 +0000 (00:17 +0800)]
arm: socfpga: stratix10: Add MMU support for Stratix10 SoC

Add MMU memory mapping table for Stratix SoC.

Signed-off-by: Chin Liang See <chin.liang.see@intel.com>
Signed-off-by: Ley Foon Tan <ley.foon.tan@intel.com>
Acked-by: Marek Vasut <marex@denx.de>
6 years agoarm: socfpga: stratix10: Add mailbox support for Stratix10 SoC
Ley Foon Tan [Wed, 23 May 2018 16:17:25 +0000 (00:17 +0800)]
arm: socfpga: stratix10: Add mailbox support for Stratix10 SoC

Add mailbox support for Stratix SoC

Signed-off-by: Ley Foon Tan <ley.foon.tan@intel.com>
Signed-off-by: Chin Liang See <chin.liang.see@intel.com>
Reviewed-by: Marek Vasut <marex@denx.de>
6 years agoarm: socfpga: stratix10: Add misc support for Stratix10 SoC
Ley Foon Tan [Wed, 23 May 2018 16:17:24 +0000 (00:17 +0800)]
arm: socfpga: stratix10: Add misc support for Stratix10 SoC

Add misc support such as EMAC and cpu info printout for Stratix SoC

Signed-off-by: Chin Liang See <chin.liang.see@intel.com>
Signed-off-by: Ley Foon Tan <ley.foon.tan@intel.com>
6 years agoarm: socfpga: misc: Move bridge command to misc common
Ley Foon Tan [Wed, 23 May 2018 16:17:23 +0000 (00:17 +0800)]
arm: socfpga: misc: Move bridge command to misc common

Move bridge command to misc common driver, in preparation to used by
other platforms.

Signed-off-by: Ley Foon Tan <ley.foon.tan@intel.com>
6 years agospi: cadence_qspi: Fix warning cast from pointer to integer of different size
Ley Foon Tan [Fri, 1 Jun 2018 08:52:20 +0000 (16:52 +0800)]
spi: cadence_qspi: Fix warning cast from pointer to integer of different size

Use "%p" to print cmdbuf.

Compilation warning as below:

  CC      spl/drivers/spi/cadence_qspi_apb.o
  LD      spl/lib/built-in.o
drivers/spi/cadence_qspi_apb.c: In function ‘cadence_qspi_apb_indirect_write_setup’:
drivers/spi/cadence_qspi_apb.c:696:18: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
          cmdlen, (unsigned int)cmdbuf);

Signed-off-by: Ley Foon Tan <ley.foon.tan@intel.com>
Acked-by: Marek Vasut <marex@denx.de>
6 years agospi: cadence_qspi: Fix compilation warning
Ley Foon Tan [Fri, 6 Jul 2018 02:39:14 +0000 (10:39 +0800)]
spi: cadence_qspi: Fix compilation warning

Use "%zu" for size_t data type.

Compilation warning as below:

In file included from include/linux/bug.h:7:0,
                 from include/common.h:26,
                 from drivers/spi/cadence_qspi.c:8:
drivers/spi/cadence_qspi.c: In function ‘cadence_spi_xfer’:
drivers/spi/cadence_qspi.c:211:8: warning: format ‘%d’ expects argument of type ‘int’, but argument 3 has type ‘size_t {aka long unsigned int}’ [-Wformat=]
  debug("%s: len=%d [bytes]\n", __func__, data_bytes);
        ^
include/linux/printk.h:37:21: note: in definition of macro ‘pr_fmt’
 #define pr_fmt(fmt) fmt
                     ^~~
include/log.h:142:2: note: in expansion of macro ‘debug_cond’
  debug_cond(_DEBUG, fmt, ##args)
  ^~~~~~~~~~
drivers/spi/cadence_qspi.c:211:2: note: in expansion of macro ‘debug’
  debug("%s: len=%d [bytes]\n", __func__, data_bytes);

Signed-off-by: Ley Foon Tan <ley.foon.tan@intel.com>
Acked-by: Marek Vasut <marex@denx.de>
6 years agoMerge branch 'master' of git://git.denx.de/u-boot-mips
Tom Rini [Thu, 12 Jul 2018 01:55:20 +0000 (21:55 -0400)]
Merge branch 'master' of git://git.denx.de/u-boot-mips

6 years agoMerge git://git.denx.de/u-boot-dm
Tom Rini [Wed, 11 Jul 2018 13:40:38 +0000 (09:40 -0400)]
Merge git://git.denx.de/u-boot-dm

6 years agoled: bcm6328: read base address in the parent node
Philippe Reynes [Thu, 28 Jun 2018 13:26:16 +0000 (15:26 +0200)]
led: bcm6328: read base address in the parent node

In the device tree, the address for the led is located
in the parent node (for exemple leds), not in the led node
(for exemple led@0).

The commit "led: bcm6328: convert to use live dt"
(sha1: 899455176058d673887a762aa38853188a030af4)
change this behaviour and read the address in the led node.

We fix this by reading the base address for led
in the parent node.

Signed-off-by: Philippe Reynes <philippe.reynes@softathome.com>
6 years agocpu: bmips: fix probe to get the address
Philippe Reynes [Fri, 22 Jun 2018 16:52:05 +0000 (18:52 +0200)]
cpu: bmips: fix probe to get the address

In the device tree, the address for cpu is located in
the node "cpus", not in the cpu node (for exemple cpu@0).
So when probing cpu, the cpu address must be read in the
cpu parent.

The commit "cpu: bmips: convert to use live dt"
(sha1: c444afbbefa103d567f197393d39ec0fcca21a0c)
change this behaviour and read the address in the
cpu node when probing cpu.

We fix this by reading the address in the cpu parent.

Signed-off-by: Philippe Reynes <philippe.reynes@softathome.com>
6 years agoMIPS: add MIPS Release 6 build coverage for Boston boards
Daniel Schwierzeck [Fri, 1 Jun 2018 09:57:37 +0000 (11:57 +0200)]
MIPS: add MIPS Release 6 build coverage for Boston boards

Now that Travis CI is building with gcc-7.3.0, we can add
build coverage for all combinations of MIPS Release 6
instruction sets (MIPS32, MIPS64, Big Endian, Little Endian).

Add mew default configs for Boston board for all MIPS Release 6
variants.

Signed-off-by: Daniel Schwierzeck <daniel.schwierzeck@gmail.com>
6 years agoMakefile: drop mention of *.cfgtmp
Baruch Siach [Thu, 21 Jun 2018 06:03:00 +0000 (09:03 +0300)]
Makefile: drop mention of *.cfgtmp

Since commit f916757300 (imx: Create distinct pre-processed mkimage
config files), *.cfgtmp files are no longer generated. There is no need
to remove them on the 'clean' target anymore.

Rename the .gitignore glob to *.cfgout.

Cc: Trent Piepho <tpiepho@impinj.com>
Signed-off-by: Baruch Siach <baruch@tkos.co.il>
6 years agomkimage: fit_image: Add support for SOURCE_DATE_EPOCH in signatures
Alex Kiernan [Wed, 20 Jun 2018 20:10:52 +0000 (20:10 +0000)]
mkimage: fit_image: Add support for SOURCE_DATE_EPOCH in signatures

When generating timestamps in signatures, use imagetool_get_source_date()
so we can be overridden by SOURCE_DATE_EPOCH to generate reproducible
images.

Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
Reviewed-by: Simon Glass <sjg@chromum.org>
6 years agomkimage: Refactor imagetool_get_source_date to take command name
Alex Kiernan [Wed, 20 Jun 2018 20:10:51 +0000 (20:10 +0000)]
mkimage: Refactor imagetool_get_source_date to take command name

So we can use imagetool_get_source_date() from callers who do not have
the image tool params struct, just pass in the command name for the error
message.

Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
Reviewed-by: Simon Glass <sjg@chromum.org>
6 years agocommon/memsize.c: Increase save array for supporting memory size > 4GB
Tien Fong Chee [Wed, 20 Jun 2018 07:06:20 +0000 (15:06 +0800)]
common/memsize.c: Increase save array for supporting memory size > 4GB

In ARM 64-bits, memory size can be supported is more than 4GB,
hence increasing save array is needed to cope with testing larger memory.

Signed-off-by: Tien Fong Chee <tien.fong.chee@intel.com>
6 years agocmd: Kconfig: Move CONFIG_MP to Kconfig
Siva Durga Prasad Paladugu [Tue, 19 Jun 2018 10:24:23 +0000 (12:24 +0200)]
cmd: Kconfig: Move CONFIG_MP to Kconfig

This patch moves CONFIG_MP to Kconfig

Signed-off-by: Siva Durga Prasad Paladugu <sivadur@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
6 years agoMakefile: drop unused cpp_cfg macro
Baruch Siach [Mon, 18 Jun 2018 04:59:25 +0000 (07:59 +0300)]
Makefile: drop unused cpp_cfg macro

Commit e19b0fb4851f (kbuild: generate u-boot.cfg as a byproduct of
include/autoconf.mk) removed the use of the cpp_cfg macro in Makefile,
but forgot to remove its definition.

Cc: Masahiro Yamada <yamada.masahiro@socionext.com>
Signed-off-by: Baruch Siach <baruch@tkos.co.il>
Reviewed-by: Masahiro Yamada <yamada.masahiro@socionext.com>
6 years agoomap3_logic: Change console from ttyO0 to ttyS0
Adam Ford [Fri, 15 Jun 2018 13:12:02 +0000 (08:12 -0500)]
omap3_logic: Change console from ttyO0 to ttyS0

Newer kernels have moved from ttyO0 to ttyS0, and when booting
it drops a notice:

  WARNING: Your 'console=ttyO0' has been replaced by 'ttyS0'
  This ensures that you still see kernel messages. Please
  update your kernel commandline.

This patch updates the console to use ttyS0 and eliminate the
chatter.

Signed-off-by: Adam Ford <aford173@gmail.com>
6 years agocommon: print \n in initr_scsi()
Heinrich Schuchardt [Fri, 15 Jun 2018 05:01:26 +0000 (07:01 +0200)]
common: print \n in initr_scsi()

Typically init_scsi() does not output anything. So initr_scsi() should
provide a \n or we may see borked output like

SCSI:  Net:   No ethernet found.

as observed with sandbox_defconfig.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
6 years agogpio: omap_gpio: Convert to auto-alloc feature when DT is supported
Adam Ford [Sun, 10 Jun 2018 14:29:51 +0000 (09:29 -0500)]
gpio: omap_gpio: Convert to auto-alloc feature when DT is supported

The omap_gpio driver has a TODO that says when every board is converted
to DM and DT, the omap_gpio_bind can stop using calloc and switch
to auto-alloc.

This patch converts this driver to auto-calloc when DT is enabled.

Signed-off-by: Adam Ford <aford173@gmail.com>
6 years agovboot: Do not use hashed-strings offset
Teddy Reed [Sat, 9 Jun 2018 15:45:20 +0000 (11:45 -0400)]
vboot: Do not use hashed-strings offset

The hashed-strings signature property includes two uint32_t values.
The first is unneeded as there should never be a start offset into the
strings region. The second, the size, is needed because the added
signature node appends to this region.

See tools/image-host.c, where a static 0 value is used for the offset.

Signed-off-by: Teddy Reed <teddy.reed@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
6 years agovboot: Add FIT_SIGNATURE_MAX_SIZE protection
Teddy Reed [Sat, 9 Jun 2018 15:38:05 +0000 (11:38 -0400)]
vboot: Add FIT_SIGNATURE_MAX_SIZE protection

This adds a new config value FIT_SIGNATURE_MAX_SIZE, which controls the
max size of a FIT header's totalsize field. The field is checked before
signature checks are applied to protect from reading past the intended
FIT regions.

This field is not part of the vboot signature so it should be sanity
checked. If the field is corrupted then the structure or string region
reads may have unintended behavior, such as reading from device memory.
A default value of 256MB is set and intended to support most max storage
sizes.

Suggested-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Teddy Reed <teddy.reed@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
6 years agoboard: arm: Add support for Broadcom BCM7445
Thomas Fitzsimmons [Fri, 8 Jun 2018 21:59:45 +0000 (17:59 -0400)]
board: arm: Add support for Broadcom BCM7445

Add support for loading U-Boot on the Broadcom 7445 SoC.  This port
assumes Broadcom's BOLT bootloader is acting as the second stage
bootloader, and U-Boot is acting as the third stage bootloader, loaded
as an ELF program by BOLT.

Signed-off-by: Thomas Fitzsimmons <fitzsim@fitzsim.org>
Cc: Stefan Roese <sr@denx.de>
Cc: Tom Rini <trini@konsulko.com>
Cc: Florian Fainelli <f.fainelli@gmail.com>
6 years agospl: fit: verify images prior to post processing
Ben Whitten [Thu, 7 Jun 2018 10:37:27 +0000 (11:37 +0100)]
spl: fit: verify images prior to post processing

Verification of hashes needs to take place before any image post
processing, thus matching full FIT image processing.
This allows mechanisms such as encryption be applied to images
prior to fit generation at the spl level.

Signed-off-by: Ben Whitten <ben.whitten@lairdtech.com>
6 years agoconfigs: Remove empty #ifdef/#ifndef blocks from configs
Alex Kiernan [Sat, 2 Jun 2018 05:42:55 +0000 (05:42 +0000)]
configs: Remove empty #ifdef/#ifndef blocks from configs

Remove empty #ifdef/#ifndef..#endif blocks where the configuration they
guarded has been completely removed.

Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
6 years agospl: fit: Fix support for loading FPGA bitstream
Marek Vasut [Fri, 1 Jun 2018 21:19:29 +0000 (23:19 +0200)]
spl: fit: Fix support for loading FPGA bitstream

Move the FPGA loading from IS_ENABLED(CONFIG_SPL_OS_BOOT) &&
IS_ENABLED(CONFIG_SPL_GZIP) conditional. The FPGA loading can
be used without OS loading and GZIP support in SPL. This issue
was most likely induced by some merge conflict, so fix it.

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Tom Rini <trini@konsulko.com>
6 years agospl: spi: Support full fitImage handling
Marek Vasut [Thu, 31 May 2018 15:59:29 +0000 (17:59 +0200)]
spl: spi: Support full fitImage handling

Handle the case where the full fitImage support is enabled. In this
case, the whole fitImage must be loaded up front as some parts of the
fitImage code require memory-mapped access to the entire fitImage.

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Pantelis Antoniou <pantelis.antoniou@konsulko.com>
Cc: Simon Glass <sjg@chromium.org>
6 years agospl: fat: Support full fitImage handling
Marek Vasut [Thu, 31 May 2018 15:59:19 +0000 (17:59 +0200)]
spl: fat: Support full fitImage handling

Handle the case where the full fitImage support is enabled. In this
case, the whole fitImage must be loaded up front as some parts of the
fitImage code require memory-mapped access to the entire fitImage.

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Pantelis Antoniou <pantelis.antoniou@konsulko.com>
Cc: Simon Glass <sjg@chromium.org>
6 years agofit: Verify all configuration signatures
Marek Vasut [Thu, 31 May 2018 15:59:07 +0000 (17:59 +0200)]
fit: Verify all configuration signatures

Rather than verifying configuration signature of the configuration node
containing the kernel image types, verify all configuration nodes, even
those that do not contain kernel images. This is useful when the nodes
contain ie. standalone OSes or U-Boot.

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Tom Rini <trini@konsulko.com>
Cc: Pantelis Antoniou <pantelis.antoniou@konsulko.com>
Cc: Simon Glass <sjg@chromium.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
6 years agotest/py: vboot: Remove stderr redirect from openssl command
Paul Burton [Thu, 14 Sep 2017 21:34:50 +0000 (14:34 -0700)]
test/py: vboot: Remove stderr redirect from openssl command

The openssl command specified in test_with_algo() ultimately ends up
being run by RunAndLog::run(), which uses it to construct a Popen object
with the default shell=False. The stderr redirect in the command is
therefore simply passed to openssl as an argument. With at least openssl
1.1.0f this causes openssl, and therefore test_vboot, to fail with:

  genpkey: Use -help for summary.
  Exit code: 1

Any stderr output ought to be captured & stored in the RunAndLog
object's output field and returned from run() via run_and_log() to
test_with_algo() which then ignores it anyway, so we can drop the
shell-like redirection with no ill effects. With this fix test_vboot now
passes for me.

Signed-off-by: Paul Burton <paul.burton@imgtec.com>
Reviewed-by: Stephen Warren <swarren@nvidia.com>
6 years agotest/py: hush_if_test: Use open() in place of file()
Paul Burton [Thu, 14 Sep 2017 21:34:49 +0000 (14:34 -0700)]
test/py: hush_if_test: Use open() in place of file()

In python 3.x the file() function has been removed. Use open() instead,
which works on both python 2.x & 3.x, and is described as the preferred
method of opening a file by python 2.x documentation anyway.

Signed-off-by: Paul Burton <paul.burton@imgtec.com>
Reviewed-by: Stephen Warren <swarren@nvidia.com>
6 years agotest/py: fit: Open files as binary files
Paul Burton [Thu, 14 Sep 2017 21:34:48 +0000 (14:34 -0700)]
test/py: fit: Open files as binary files

The read_file() function in test_fit is used with files that are not
text files, as well as some that are. It is never used in a way that
requires it to decode text files to characters, so open all files in
binary mode such that read() doesn't attempt to decode characters for
files which are not text files.

Without this test_fit fails on python 3.x when reading an FDT in
run_fit_test() with:

  UnicodeDecodeError: 'utf-8' codec can't decode byte 0xd0 in position
                       0: invalid continuation byte

Signed-off-by: Paul Burton <paul.burton@imgtec.com>
Reviewed-by: Stephen Warren <swarren@nvidia.com>
6 years agotest/py: Import 'configparser' lower case to be python 3.x safe
Paul Burton [Thu, 14 Sep 2017 21:34:45 +0000 (14:34 -0700)]
test/py: Import 'configparser' lower case to be python 3.x safe

In python 3.x the configparser module is named with all lower case.
Import it as such in order to avoid errors when running on python 3.x,
and fall back to the CamelCase version in order to keep working with
python 2.x.

Signed-off-by: Paul Burton <paul.burton@imgtec.com>
Reviewed-by: Stephen Warren <swarren@nvidia.com>
6 years agotest/py: Use range() rather than xrange()
Paul Burton [Thu, 14 Sep 2017 21:34:44 +0000 (14:34 -0700)]
test/py: Use range() rather than xrange()

In python 3.x the xrange() function has been removed, and range()
returns an iterator much like Python 2.x's xrange(). Simply use range()
in place of xrange() in order to work on both python 2.x & 3.x. This
will mean a small cost on python 2.x since range() will return a list
there rather than an iterator, but the cost should be negligible.

Signed-off-by: Paul Burton <paul.burton@imgtec.com>
Reviewed-by: Stephen Warren <swarren@nvidia.com>
6 years agotest/py: Make print statements python 3.x safe
Paul Burton [Thu, 14 Sep 2017 21:34:43 +0000 (14:34 -0700)]
test/py: Make print statements python 3.x safe

In python 3.x print must be called as a function rather than used as a
statement. Update uses of print to the function call syntax in order to
be python 3.x safe.

Signed-off-by: Paul Burton <paul.burton@imgtec.com>
Reviewed-by: Stephen Warren <swarren@nvidia.com>
6 years agoMerge git://git.denx.de/u-boot-dm
Tom Rini [Tue, 10 Jul 2018 14:29:14 +0000 (10:29 -0400)]
Merge git://git.denx.de/u-boot-dm

6 years agonet: designware: Add reset ctrl to driver
Ley Foon Tan [Thu, 14 Jun 2018 10:45:23 +0000 (18:45 +0800)]
net: designware: Add reset ctrl to driver

Add code to reset all reset signals as in Ethernet DT node. A reset
property is an optional feature, so only print out a warning and do not
fail if a reset property is not present.

If a reset property is discovered, then use it to deassert, thus
bringing the IP out of reset.

Signed-off-by: Ley Foon Tan <ley.foon.tan@intel.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
6 years agoserial: ns16550: Add reset ctrl to driver
Ley Foon Tan [Thu, 14 Jun 2018 10:45:22 +0000 (18:45 +0800)]
serial: ns16550: Add reset ctrl to driver

Add code to reset all reset signals as in serial DT node. A reset
property is an optional feature, so do not fail if a reset property is
not present.

If a reset property is discovered, then use it to deassert, thus
bringing the IP out of reset.

Signed-off-by: Ley Foon Tan <ley.foon.tan@intel.com>
Reviewed-by: Marek Vasut <marex@denx.de>
Reviewed-by: Simon Glass <sjg@chromium.org>
6 years agommc: dwmmc: socfpga: Add reset ctrl to driver
Ley Foon Tan [Thu, 14 Jun 2018 10:45:21 +0000 (18:45 +0800)]
mmc: dwmmc: socfpga: Add reset ctrl to driver

Add code to reset all reset signals as in mmc DT node. A reset property
is an optional feature, so only print out a warning and do not fail if a
reset property is not present.

If a reset property is discovered, then use it to deassert, thus
bringing the IP out of reset.

Signed-off-by: Ley Foon Tan <ley.foon.tan@intel.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
6 years agoinclude: reset: Change to use CONFIG_IS_ENABLED(DM_RESET)
Ley Foon Tan [Thu, 14 Jun 2018 10:45:20 +0000 (18:45 +0800)]
include: reset: Change to use CONFIG_IS_ENABLED(DM_RESET)

Change to use CONFIG_IS_ENABLED(DM_RESET), so this can work in SPL
build (CONFIG_SPL_DM_RESET) and U-boot build (CONFIG_DM_RESET).

Signed-off-by: Ley Foon Tan <ley.foon.tan@intel.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
6 years agoreset: Rename CONFIG_SPL_RESET_SUPPORT to CONFIG_SPL_DM_RESET
Ley Foon Tan [Thu, 14 Jun 2018 10:45:19 +0000 (18:45 +0800)]
reset: Rename CONFIG_SPL_RESET_SUPPORT to CONFIG_SPL_DM_RESET

Rename CONFIG_SPL_RESET_SUPPORT to CONFIG_SPL_DM_RESET, so can use
CONFIG_IS_ENABLED(DM_RESET) checking in reset.h later.

Signed-off-by: Ley Foon Tan <ley.foon.tan@intel.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
6 years agoMAINTAINERS: Add entries for Actions Semi OWL family
Manivannan Sadhasivam [Thu, 14 Jun 2018 18:08:39 +0000 (23:38 +0530)]
MAINTAINERS: Add entries for Actions Semi OWL family

Add myself as the Maintainer for Actions Semi OWL family and its
relevant board, drivers.

Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
6 years agoserial: Add Actions Semi OWL UART support
Manivannan Sadhasivam [Thu, 14 Jun 2018 18:08:38 +0000 (23:38 +0530)]
serial: Add Actions Semi OWL UART support

This commit adds Actions Semi OWL family UART support. This driver
relies on baudrate configured by primary bootloaders.

Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
6 years agoarm: dts: bubblegum_96: Enable UART5 for serial console
Manivannan Sadhasivam [Thu, 14 Jun 2018 18:08:37 +0000 (23:38 +0530)]
arm: dts: bubblegum_96: Enable UART5 for serial console

This commit enables UART5 found in S900 SoC for serial console support.

Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
6 years agoarm: dts: s900: Add UART node
Manivannan Sadhasivam [Thu, 14 Jun 2018 18:08:36 +0000 (23:38 +0530)]
arm: dts: s900: Add UART node

This commit adds UART node for Actions Semi S900 SoC.

Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
6 years agoclk: Add Actions Semi OWL clock support
Manivannan Sadhasivam [Thu, 14 Jun 2018 18:08:35 +0000 (23:38 +0530)]
clk: Add Actions Semi OWL clock support

This commit adds Actions Semi OWL family base clock and S900 SoC
specific clock support. For S900 peripheral clock support, only UART
clock has been added for now.

Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
6 years agoarm: dts: s900: Add Clock Management Unit (CMU) nodes
Manivannan Sadhasivam [Thu, 14 Jun 2018 18:08:34 +0000 (23:38 +0530)]
arm: dts: s900: Add Clock Management Unit (CMU) nodes

This commit adds Clock Management Unit (CMU) nodes for Actions Semi
S900 SoC.

Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
6 years agodt-bindings: clock: Add S900 CMU register definitions
Manivannan Sadhasivam [Thu, 14 Jun 2018 18:08:33 +0000 (23:38 +0530)]
dt-bindings: clock: Add S900 CMU register definitions

This commit adds Actions Semi S900 CMU register definitions to clock
bindings.

Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
6 years agoboard: Add uCRobotics Bubblegum-96 board support
Manivannan Sadhasivam [Thu, 14 Jun 2018 18:08:32 +0000 (23:38 +0530)]
board: Add uCRobotics Bubblegum-96 board support

This commit adds uCRobotics Bubblegum-96 board support. This board is
one of the 96Boards Consumer Edition platform based on Actions Semi
S900 SoC.

Features:
- Actions Semi S900 SoC (4xCortex A53, Power VR G6230 GPU)
- 2GiB RAM
- 8GiB eMMC, uSD slot
- WiFi, Bluetooth and GPS module
- 2x Host, 1x Device USB port
- HDMI
- 20-pin low speed and 40-pin high speed expanders, 6 LED, 3 buttons

U-Boot will be loaded by ATF at EL2 execution level. Relevant driver
support will be added in further commits.

Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
6 years agoarm: Add support for Actions Semi OWL SoC family
Manivannan Sadhasivam [Thu, 14 Jun 2018 18:08:31 +0000 (23:38 +0530)]
arm: Add support for Actions Semi OWL SoC family

This commit adds Actions Semi OWL SoC family support with S900 as the
first target SoC.

Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
6 years agoconfigs: Resync with savedefconfig
Tom Rini [Mon, 9 Jul 2018 19:13:08 +0000 (15:13 -0400)]
configs: Resync with savedefconfig

Rsync all defconfig files using moveconfig.py

Signed-off-by: Tom Rini <trini@konsulko.com>
6 years agobinman: Support updating the device tree with calc'd info
Simon Glass [Fri, 6 Jul 2018 16:27:42 +0000 (10:27 -0600)]
binman: Support updating the device tree with calc'd info

It is useful to write the position and size of each entry back to the
device tree so that U-Boot can access this at runtime. Add a feature to
support this, along with associated tests.

Signed-off-by: Simon Glass <sjg@chromium.org>
6 years agobinman: Add a SetCalculatedProperties() method
Simon Glass [Fri, 6 Jul 2018 16:27:41 +0000 (10:27 -0600)]
binman: Add a SetCalculatedProperties() method

Once binman has packed the image, the position and size of each entry is
known. It is then possible for binman to update the device tree with these
positions. Since placeholder values have been added, this does not affect
the size of the device tree and therefore the packing does not need to be
performed again.

Add a new SetCalculatedProperties method to handle this.

Signed-off-by: Simon Glass <sjg@chromium.org>
6 years agobinman: Add a ProcessFdt() method
Simon Glass [Fri, 6 Jul 2018 16:27:40 +0000 (10:27 -0600)]
binman: Add a ProcessFdt() method

Some entry types modify the device tree, e.g. to remove microcode or add a
property. So far this just modifies their local copy and does not affect
a 'shared' device tree.

Rather than doing this modification in the ObtainContents() method, and a
new ProcessFdt() method which is specifically designed to modify this
shared device tree.

Move the existing device-tree code over to use this method, reducing
ObtainContents() to the goal of just obtaining the contents without any
processing, even for device tree.

Signed-off-by: Simon Glass <sjg@chromium.org>
6 years agobinman: Complete documentation of stages
Simon Glass [Fri, 6 Jul 2018 16:27:39 +0000 (10:27 -0600)]
binman: Complete documentation of stages

At present one of the stages is badly numbered and not described. Fix
this.

Signed-off-by: Simon Glass <sjg@chromium.org>
6 years agodtoc: Add functions to add integer properties
Simon Glass [Fri, 6 Jul 2018 16:27:38 +0000 (10:27 -0600)]
dtoc: Add functions to add integer properties

Add a few simple functions to add a placeholder integer property, and
set its value.

Signed-off-by: Simon Glass <sjg@chromium.org>
6 years agodtoc: Avoid unwanted output during tests
Simon Glass [Fri, 6 Jul 2018 16:27:37 +0000 (10:27 -0600)]
dtoc: Avoid unwanted output during tests

At present some warnings are printed to indicate failures which are a
known part of running the tests. Suppress these.

Signed-off-by: Simon Glass <sjg@chromium.org>
6 years agotest: Enable cover-coverage tests for dtoc and fdt
Simon Glass [Fri, 6 Jul 2018 16:27:36 +0000 (10:27 -0600)]
test: Enable cover-coverage tests for dtoc and fdt

Now that we have 100% code coverage we can enable these tests in the test
script also.

Signed-off-by: Simon Glass <sjg@chromium.org>
6 years agodtoc: Increase code coverage to 100%
Simon Glass [Fri, 6 Jul 2018 16:27:35 +0000 (10:27 -0600)]
dtoc: Increase code coverage to 100%

Add more tests to increase dtoc code coverage to 100%.

Correct a whitespace error in some test .dts files at the same time.

Signed-off-by: Simon Glass <sjg@chromium.org>
6 years agobinman: Move capture_sys_output() to test_util
Simon Glass [Fri, 6 Jul 2018 16:27:34 +0000 (10:27 -0600)]
binman: Move capture_sys_output() to test_util

This function is useful in various tests. Move it into the common test
utility module.

Signed-off-by: Simon Glass <sjg@chromium.org>
6 years agodtoc: Add a test for code coverage
Simon Glass [Fri, 6 Jul 2018 16:27:33 +0000 (10:27 -0600)]
dtoc: Add a test for code coverage

Add a -T option to run a code-coverage test on dtoc. At present this is
about 96%. Future work will increase it to 100%.

Signed-off-by: Simon Glass <sjg@chromium.org>
6 years agodtoc: Fix some minor errors
Simon Glass [Fri, 6 Jul 2018 16:27:32 +0000 (10:27 -0600)]
dtoc: Fix some minor errors

Fix some comments and a printf string which is incorrect.

Signed-off-by: Simon Glass <sjg@chromium.org>
6 years agodtoc: Fix properties with a single zero-arg phandle
Simon Glass [Fri, 6 Jul 2018 16:27:31 +0000 (10:27 -0600)]
dtoc: Fix properties with a single zero-arg phandle

At present a property with a single phandle looks like an integer value
to dtoc. Correct this by adjusting it in the phandle-processing code.

Add a test for this.

Signed-off-by: Simon Glass <sjg@chromium.org>
6 years agodtoc: Fix Fdt.GetNode() to handle a missing node
Simon Glass [Fri, 6 Jul 2018 16:27:30 +0000 (10:27 -0600)]
dtoc: Fix Fdt.GetNode() to handle a missing node

At present the algortihm is not correct since it will return the root node
if the requested node is not found and there are no slashes in the
requested node name. Fix this and add a test.

Signed-off-by: Simon Glass <sjg@chromium.org>
6 years agodtoc: Keep track of property offsets
Simon Glass [Fri, 6 Jul 2018 16:27:29 +0000 (10:27 -0600)]
dtoc: Keep track of property offsets

At present the Fdt class does not keep track of property offsets if they
change due to removal of properties. Update the code to handle this, and
add a test.

Signed-off-by: Simon Glass <sjg@chromium.org>
6 years agodtoc: Update fdt tests to increase code coverage
Simon Glass [Fri, 6 Jul 2018 16:27:28 +0000 (10:27 -0600)]
dtoc: Update fdt tests to increase code coverage

At present only some of the fdt functionality is tested. Add more tests to
cover the rest of it. Also turn on test coverage, which is now 100% with
a small exclusion for a Python 3 feature.

Signed-off-by: Simon Glass <sjg@chromium.org>
6 years agodtoc: Drop use of a local dtb buffer
Simon Glass [Fri, 6 Jul 2018 16:27:27 +0000 (10:27 -0600)]
dtoc: Drop use of a local dtb buffer

At present the Fdt class has its own copy of the device tree. This is
confusing an unnecessary now that pylibfdt has its own. Drop it and
provide access functions to the buffer.

This allows us to move the rest of the implementation to use pylibfdt
methods instead of directly calling libfdt stubs.

Signed-off-by: Simon Glass <sjg@chromium.org>
6 years agodtoc: Make use of the new pylibfdt methods
Simon Glass [Fri, 6 Jul 2018 16:27:26 +0000 (10:27 -0600)]
dtoc: Make use of the new pylibfdt methods

Now that pylibfdt supports a fuller API we don't need to directly call
the libfdt stubs. Update the code to use the Fdt methods instead.

Some other cases remain which will be tidied up in a later commit, since
they need larger changes.

Signed-off-by: Simon Glass <sjg@chromium.org>
6 years agodtoc: Update tests to write failures to /tmp
Simon Glass [Fri, 6 Jul 2018 16:27:25 +0000 (10:27 -0600)]
dtoc: Update tests to write failures to /tmp

When a test fails due to an output mismatch (e.g. due to a new property
being adding to a test file) it is currently hard to update the test to
the new output. In particular the tabs in the file are written as \t in
the Python tests.

To make this easier, write both the expected and actual results to /tmp
to allow use of meld, and copying into the test.

Signed-off-by: Simon Glass <sjg@chromium.org>
6 years agodtoc: Add some tests for the fdt module
Simon Glass [Fri, 6 Jul 2018 16:27:24 +0000 (10:27 -0600)]
dtoc: Add some tests for the fdt module

At present this module is tested via the dtoc tests. This is a bit painful
since the tests are at a higher level and so failures are more difficult
to diagnose.

Add some tests that exercise the fdt module directly.

Signed-off-by: Simon Glass <sjg@chromium.org>
6 years agobinman: Move coverage logic into a new test_util file
Simon Glass [Fri, 6 Jul 2018 16:27:23 +0000 (10:27 -0600)]
binman: Move coverage logic into a new test_util file

At present only binman has the logic for determining Python test coverage
but this is useful for other tools also. Move it out into a separate file
so it can be used by other tools.

Signed-off-by: Simon Glass <sjg@chromium.org>
6 years agolibfdt: Add get_property() and del_node()
Simon Glass [Fri, 6 Jul 2018 16:27:22 +0000 (10:27 -0600)]
libfdt: Add get_property() and del_node()

Add support for these functions in the Python binding. This patch stands
in for a pending upstream change.

Signed-off-by: Simon Glass <sjg@chromium.org>
6 years agolibfdt: Fix the Python pack() function
Simon Glass [Fri, 6 Jul 2018 16:27:21 +0000 (10:27 -0600)]
libfdt: Fix the Python pack() function

This currently fails to reduce the device-tree bytearray size. Fix this.

This stands in for a pending upstream change.

Signed-off-by: Simon Glass <sjg@chromium.org>
6 years agolibfdt: Bring in proposed pylibfdt changes
Simon Glass [Fri, 6 Jul 2018 16:27:20 +0000 (10:27 -0600)]
libfdt: Bring in proposed pylibfdt changes

This provides various patches sent to the devicetree-compiler mailing list
to enhance the Python bindings. A final version of this patch may be
created once upstreaming is complete, but if it takes too long, this can
act as a placeholder.

New pylibfdt features:
- Support for most remaining, relevant libfdt functions
- Support for sequential-write functions

Changes are applied to existing U-Boot tools as needed.

Signed-off-by: Simon Glass <sjg@chromium.org>
6 years agobinman: Tidy up setting of entry contents
Simon Glass [Fri, 6 Jul 2018 16:27:19 +0000 (10:27 -0600)]
binman: Tidy up setting of entry contents

At present the contents of an entry are set in subclasses simply by
assigning to the data and content_size properties. Add some methods to do
this, so that we have more control. In particular, add a method to set the
contents without changing its size, so we can validate that case.

Add a test case for trying to change the size when this is not allowed.

Signed-off-by: Simon Glass <sjg@chromium.org>
6 years agobinman: Tidy up execution of tests
Simon Glass [Fri, 6 Jul 2018 16:27:18 +0000 (10:27 -0600)]
binman: Tidy up execution of tests

Move all the test execution into the same mechanism so that we can request
a particular test (from any suite) by passing it as an argument to
'binman -t'.

Signed-off-by: Simon Glass <sjg@chromium.org>
6 years agobinman: Correct operation of ObtainContents()
Simon Glass [Fri, 6 Jul 2018 16:27:17 +0000 (10:27 -0600)]
binman: Correct operation of ObtainContents()

This method is supposed to return the contents of an entry. However at
present there is no check that it actually does. Also some implementations
do not return 'True' to indicate success, as required.

Add a check for things working as expected, and correct the
implementations.

This requires some additional test cases to cover things which were missed
originally. Add these at the same time.

Signed-off-by: Simon Glass <sjg@chromium.org>
6 years agobinman: Tidy up variables in _RunMicrocodeTest()
Simon Glass [Fri, 6 Jul 2018 16:27:16 +0000 (10:27 -0600)]
binman: Tidy up variables in _RunMicrocodeTest()

At present we call the three entries first, second and third. Rename them
to reflect their contents instead, for clarity.

Signed-off-by: Simon Glass <sjg@chromium.org>
6 years agobinman: Make the operation of Entry__testing explicit
Simon Glass [Fri, 6 Jul 2018 16:27:15 +0000 (10:27 -0600)]
binman: Make the operation of Entry__testing explicit

This fake entry is used for testing. At present it only has one behaviour
which is to return an invalid set of entry positions, to cause an error.

The fake entry will need to be used for other things too. Allow the test
.dts file to specify the behaviour of the fake entry, so we can control
its behaviour easily.

While we are here, drop the ReadContents() method, since this only applies
to subclasses of Entry_blob, which Entry__testing is not.

Signed-off-by: Simon Glass <sjg@chromium.org>
6 years agobinman: Switch to 'python-coverage'
Tom Rini [Fri, 6 Jul 2018 16:27:14 +0000 (10:27 -0600)]
binman: Switch to 'python-coverage'

The most portable way to get access to coverage is to invoke it as
'python-coverage'.

Cc: Simon Glass <sjg@chromium.org>
Signed-off-by: Tom Rini <trini@konsulko.com>
Signed-off-by: Simon Glass <sjg@chromium.org>
6 years agodm: core: Add logging of some common errors
Simon Glass [Mon, 11 Jun 2018 19:07:19 +0000 (13:07 -0600)]
dm: core: Add logging of some common errors

Add additional logging so that common errors when finding a device by
ofnode are easier to debug.

Signed-off-by: Simon Glass <sjg@chromium.org>
6 years agodm: core: Add a function to decode a memory region
Simon Glass [Mon, 11 Jun 2018 19:07:18 +0000 (13:07 -0600)]
dm: core: Add a function to decode a memory region

Add a way to decode a memory region, including the memory type (sram or
sdram) and its start address and size.

Signed-off-by: Simon Glass <sjg@chromium.org>
6 years agodm: core: Update of_read_fmap_entry() for livetree
Simon Glass [Mon, 11 Jun 2018 19:07:17 +0000 (13:07 -0600)]
dm: core: Update of_read_fmap_entry() for livetree

Update this function to take an ofnode so that it can work with livetree.

Signed-off-by: Simon Glass <sjg@chromium.org>
6 years agodm: spi: Update sandbox SPI emulation driver to use ofnode
Simon Glass [Mon, 11 Jun 2018 19:07:16 +0000 (13:07 -0600)]
dm: spi: Update sandbox SPI emulation driver to use ofnode

Update the parameters sandbox_sf_bind_emul to support livetree.

Signed-off-by: Simon Glass <sjg@chromium.org>
6 years agodm: core: Add a way to bind a device by ofnode
Simon Glass [Mon, 11 Jun 2018 19:07:15 +0000 (13:07 -0600)]
dm: core: Add a way to bind a device by ofnode

Add a new device_bind_ofnode() function which can bind a device given its
ofnode. This allows binding devices more easily with livetree nodes.

Signed-off-by: Simon Glass <sjg@chromium.org>
6 years agolog: Add a way to log a return value with a message
Simon Glass [Mon, 11 Jun 2018 19:07:14 +0000 (13:07 -0600)]
log: Add a way to log a return value with a message

It is sometimes useful to show a message when logging an error return
value, perhaps to add a few details about the problem. Add a function to
support this.

Signed-off-by: Simon Glass <sjg@chromium.org>
6 years agodm: core: Add a way to find an ofnode by compatible string
Simon Glass [Mon, 11 Jun 2018 19:07:13 +0000 (13:07 -0600)]
dm: core: Add a way to find an ofnode by compatible string

Add an ofnode_by_compatible() to allow iterating through ofnodes with a
given compatible string.

Signed-off-by: Simon Glass <sjg@chromium.org>
6 years agodm: core: Add comments to ofnode_read_resource() functoins
Simon Glass [Mon, 11 Jun 2018 19:07:12 +0000 (13:07 -0600)]
dm: core: Add comments to ofnode_read_resource() functoins

These functions are missing comments. Add some.

Signed-off-by: Simon Glass <sjg@chromium.org>
6 years agodm: core: Fix a few ofnode function comments
Simon Glass [Mon, 11 Jun 2018 19:07:11 +0000 (13:07 -0600)]
dm: core: Fix a few ofnode function comments

Tidy up three return-value errors.

Signed-off-by: Simon Glass <sjg@chromium.org>
6 years agodm: core: Add ofnode function to read a 64-bit int
Simon Glass [Mon, 11 Jun 2018 19:07:10 +0000 (13:07 -0600)]
dm: core: Add ofnode function to read a 64-bit int

We have a 32-bit version of this function. Add a 64-bit version as well so
we can easily read 64-bit ints from the device tree.

Signed-off-by: Simon Glass <sjg@chromium.org>
6 years agofdt: Add device tree memory bindings
Michael Pratt [Mon, 11 Jun 2018 19:07:09 +0000 (13:07 -0600)]
fdt: Add device tree memory bindings

Support a default memory bank, specified in reg, as well as
board-specific memory banks in subtree board-id nodes.

This allows memory information to be provided in the device tree,
rather than hard-coded in, which will make it simpler to handle
similar devices with different memory banks, as the board-id values
or masks can be used to match devices.

Signed-off-by: Michael Pratt <mpratt@chromium.org>
Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Vadim Bendebury <vbendeb@chromium.org>