oweals/u-boot.git
7 years agoimx: move imximage header to common location
Stefan Agner [Wed, 16 Aug 2017 18:00:50 +0000 (11:00 -0700)]
imx: move imximage header to common location

Move the imximage.h header file to a common location so we can make
use of it from U-Boot too.

Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
Reviewed-by: Łukasz Majewski <lukma@denx.de>
7 years agofastboot: Ensure we treat CONFIG_FASTBOOT_BUF_ADDR as long
Tom Rini [Tue, 22 Aug 2017 12:20:02 +0000 (08:20 -0400)]
fastboot: Ensure we treat CONFIG_FASTBOOT_BUF_ADDR as long

Otherwise:
drivers/usb/gadget/f_fastboot.c:564:32: warning: format "%lx" expects
argument of type "long unsigned int", but argument 3 has type "unsigned
int" [-Wformat=]

Signed-off-by: Tom Rini <trini@konsulko.com>
7 years agoMerge git://www.denx.de/git/u-boot-marvell
Tom Rini [Mon, 21 Aug 2017 11:17:15 +0000 (07:17 -0400)]
Merge git://www.denx.de/git/u-boot-marvell

7 years agoMerge git://git.denx.de/u-boot-usb
Tom Rini [Mon, 21 Aug 2017 11:16:56 +0000 (07:16 -0400)]
Merge git://git.denx.de/u-boot-usb

7 years agoMerge git://git.denx.de/u-boot-uniphier
Tom Rini [Mon, 21 Aug 2017 11:16:16 +0000 (07:16 -0400)]
Merge git://git.denx.de/u-boot-uniphier

 - Fix unmet direct dependencies warning
 - Remove old sLD3 SoC support
 - Update reset data
 - Add dr_mode DT property to avoid warning

7 years agoARM: mvebu: set correct mem_size for db-88f6820-amc
Chris Packham [Thu, 17 Aug 2017 10:27:03 +0000 (22:27 +1200)]
ARM: mvebu: set correct mem_size for db-88f6820-amc

The db-88f6820-amc has four chips with 2Gb density giving a total of 1GB
DRAM. Update the board_topology_map to reflect the correct
configuration.

Signed-off-by: Chris Packham <judge.packham@gmail.com>
Reviewed-by: Stefan Roese <sr@denx.de>
Signed-off-by: Stefan Roese <sr@denx.de>
7 years agodoc: license: Add license header to the README.dfutftp file
Lukasz Majewski [Thu, 17 Aug 2017 21:10:49 +0000 (23:10 +0200)]
doc: license: Add license header to the README.dfutftp file

Signed-off-by: Lukasz Majewski <lukma@denx.de>
7 years agofb_mmc.c: Correct blk_dread() return value checks
Tom Rini [Tue, 15 Aug 2017 01:00:44 +0000 (21:00 -0400)]
fb_mmc.c: Correct blk_dread() return value checks

The function blk_dread will return -ENOSYS on failure or on success the
number of blocks read, which must be the number asked to read (otherwise
it failed somewhere).  Correct this check.

Cc: Lukasz Majewski <lukma@denx.de>
Signed-off-by: Tom Rini <trini@konsulko.com>
7 years agocommon/fb_mmc.c: Fix warnings about casts
Tom Rini [Sat, 10 Jun 2017 13:15:37 +0000 (09:15 -0400)]
common/fb_mmc.c: Fix warnings about casts

When building the flash zImage code on aarch64 we see warnings about
pointer size casts.  Use uintptr_t instead to correct these.

Cc: Sam Protsenko <semen.protsenko@linaro.org>
Signed-off-by: Tom Rini <trini@konsulko.com>
Reviewed-By: Sam Protsenko <semen.protsenko@linaro.org>
7 years agofastboot: avoid printing invalid data
John Keeping [Mon, 19 Sep 2016 09:59:40 +0000 (10:59 +0100)]
fastboot: avoid printing invalid data

There is no guarantee that commands are null-terminated in the USB
request buffer, so limit the length of data that is printed.

Signed-off-by: John Keeping <john@metanate.com>
Tested-by: Steve Rae <steve.rae@raedomain.com>
7 years agoFix fastboot boot address
Peter Chubb [Thu, 8 Sep 2016 20:51:57 +0000 (20:51 +0000)]
Fix fastboot boot address

Fastboot loads an image at CONFIG_FASTBOOT_BUF_ADDR, but currently
tells do_bootm() to look for an image at $loadaddr.  This breaks if
CONFIG_FASTBOOT_BUF_ADDR is different from the current user-set
loadaddr.

Instead, tell do_bootm() to pick up the image where it was laoded.

Signed-off-by: Peter Chubb <peter.chubb@data61.csiro.au>
Reviewed-by: Tom Rini <trini@konsulko.com>
Acked-by: Steve Rae <steve.rae@raedomain.com>
7 years agousb: ehci: Convert CONFIG_USB_EHCI_PCI to Kconfig
Bin Meng [Wed, 9 Aug 2017 07:21:54 +0000 (00:21 -0700)]
usb: ehci: Convert CONFIG_USB_EHCI_PCI to Kconfig

This converts CONFIG_USB_EHCI_PCI to a Kconfig option, and updates
all boards that use it.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
7 years agoenv: Replace all open-coded gd->env_valid values with ENV_ flags
Simon Glass [Sun, 20 Aug 2017 10:45:15 +0000 (04:45 -0600)]
env: Replace all open-coded gd->env_valid values with ENV_ flags

Some of these were missed in the conversion.
Signed-off-by: Simon Glass <sjg@chromium.org>
7 years agoenv: Allow env_load() to detect errors
Simon Glass [Sun, 20 Aug 2017 10:45:14 +0000 (04:45 -0600)]
env: Allow env_load() to detect errors

Now that we have errors available in the environment driver's load()
method, check the return valid.

Signed-off-by: Simon Glass <sjg@chromium.org>
7 years agoenv: Correct case of no sub-init function
Tom Rini [Sun, 20 Aug 2017 02:27:57 +0000 (22:27 -0400)]
env: Correct case of no sub-init function

With the change to the environment code to remove the common init stage
of pointing to the default environment and setting it as valid, combined
with the change to switch gd->env_valid from 0/1/2 to an enum we now
must set env_valid to one of the enum values rather than an int.  And in
this case, not only was setting it to an int wrong, it was now the wrong
value.  Finally, in the case of ENV_IS_NOWHERE we must still say that
our envionrment is invalid after init for things to continue to
function.

Fixes: 7938822a6b75 ("env: Drop common init() functions")
Tested-by: Marek Vasut <marek.vasut@gmail.com>
Reported-by: Marek Vasut <marek.vasut@gmail.com>
Reported-by: Andy Shevchenko <andy.shevchenko@gmail.com>
Signed-off-by: Tom Rini <trini@konsulko.com>
---
Changes in v3:
- Actually include changes for env/nowhere.c

7 years agoARM: dts: uniphier: add dr_mode property to dwc3 node
Masahiro Yamada [Sun, 13 Aug 2017 00:01:17 +0000 (09:01 +0900)]
ARM: dts: uniphier: add dr_mode property to dwc3 node

Since commit 576e3cc700c5 ("usb: host: xhci-dwc3: Add dual role mode
support from DT"), warning is displayed if dr_mode is not specified.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
7 years agoreset: uniphier: refactor reset data and add NAND/eMMC reset lines
Masahiro Yamada [Sun, 13 Aug 2017 00:01:16 +0000 (09:01 +0900)]
reset: uniphier: refactor reset data and add NAND/eMMC reset lines

  - Merge sys_reset data of LD4, Pro4, sLD8 and Pro5

  - Merge sys_reset data of LD11 and LD20

  - Use primitive UNIPHIER_RESETX() macro because bit assignments for
    system reset will be changed for every SoC in the future

  - Add NAND and eMMC resets

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
7 years agoRevert "ARM: uniphier: fix ROM boot mode for PH1-sLD3"
Masahiro Yamada [Sun, 13 Aug 2017 00:01:15 +0000 (09:01 +0900)]
Revert "ARM: uniphier: fix ROM boot mode for PH1-sLD3"

This reverts commit 82d075e79fa509ffb8ecd8dd2dc216929d6e8289.

Commit 82d075e79fa5 ("ARM: uniphier: fix ROM boot mode for PH1-sLD3")
was a workaround for sLD3.  Now the sLD3 SoC support has been removed.

Revert it to allow to simplify the init code.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
7 years agoRevert "ARM: uniphier: move lowlevel debug init code after page table switch"
Masahiro Yamada [Sun, 13 Aug 2017 00:01:14 +0000 (09:01 +0900)]
Revert "ARM: uniphier: move lowlevel debug init code after page table switch"

This reverts commit bcc51c1512a3deb6a9fdd37362c6dde32ad3da23.

Commit bcc51c1512a3 ("ARM: uniphier: move lowlevel debug init code
after page table switch") was intended to support lowlevel debug for
sLD3.  Now the sLD3 SoC support has been removed.

Revert it to allow to enable lowlevel debug earlier.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
7 years agoARM: uniphier: remove sLD3 SoC support
Masahiro Yamada [Sun, 13 Aug 2017 00:01:13 +0000 (09:01 +0900)]
ARM: uniphier: remove sLD3 SoC support

This SoC is too old.  It is difficult to maintain any longer.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
7 years agoclk: uniphier: fix unmet direct dependencies warning
Masahiro Yamada [Sun, 20 Aug 2017 13:59:36 +0000 (22:59 +0900)]
clk: uniphier: fix unmet direct dependencies warning

Since commit f0776a551764 ("spl: dm: Kconfig: SPL_CLK depends on
SPL_DM"), the following warning is displayed:

  $ make uniphier_v8_defconfig
  warning: (ARCH_ZYNQ && ARCH_ZYNQMP && STM32F7 && CLK_UNIPHIER) selects
  SPL_CLK which has unmet direct dependencies (CLK && SPL_DM)

While I am here, I am removing the prompt to make it user-unconfigurable
option so that "select CLK_UNIPHIER" can be omitted.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
7 years agoFix 'notes' typos
Anatolij Gustschin [Fri, 18 Aug 2017 15:58:51 +0000 (17:58 +0200)]
Fix 'notes' typos

s/notes/nodes

Signed-off-by: Anatolij Gustschin <agust@denx.de>
7 years agoenv: Sort selection of default choices
Andy Shevchenko [Fri, 18 Aug 2017 10:14:47 +0000 (13:14 +0300)]
env: Sort selection of default choices

It would be easier to catch out which platform is using which default.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
7 years agoarm, at91: fix taurus board
Heiko Schocher [Wed, 16 Aug 2017 07:47:45 +0000 (09:47 +0200)]
arm, at91: fix taurus board

since commit: b529993e0222 "spl: add hierarchical defaults for SPL_LDSCRIPT"

taurus board stopped working. Use the ldscript from
arch/arm/cpu/u-boot-spl.lds (as before this patch) fixed it.

Signed-off-by: Heiko Schocher <hs@denx.de>
Reviewed-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
7 years agocommon/board_f.c: remove CONFIG_SYS_GENERIC_GLOBAL_DATA
Thomas Petazzoni [Tue, 15 Aug 2017 21:11:02 +0000 (23:11 +0200)]
common/board_f.c: remove CONFIG_SYS_GENERIC_GLOBAL_DATA

CONFIG_SYS_GENERIC_GLOBAL_DATA is no longer used by any board or
platform, so support for it can be dropped.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Reviewed-by: Vladimir Zapolskiy <vz@mleia.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
7 years agoARM: hisilicon: hikey: Fix eMMC with latest ATF & U-Boot
Peter Griffin [Tue, 15 Aug 2017 16:18:16 +0000 (17:18 +0100)]
ARM: hisilicon: hikey: Fix eMMC with latest ATF & U-Boot

ATF can leave the MMC IP in a state where U-Boot mmc driver
can't enumerate the eMMC.

This patch provides a mmc0_reset_clk() function like we
already so do sd card controller which resets the IP
when entering U-Boot.

With this patch applied eMMC partitions are successfully
enumerated again.

=> mmc dev 0
switch to partitions #0, OK
mmc0(part 0) is current device
=> mmc part

Partition Map for MMC device 0  --   Partition Type: EFI

Part Start LBA End LBA Name
Attributes
Type GUID
Partition GUID
  1 0x00000800 0x00000fff "vrl"
attrs: 0x0000000000000000
type: ebd0a0a2-b9e5-4433-87c0-68b6b72699c7
guid: 496847ab-56a1-4cd5-a1ad-47f4acf055c9
  2 0x00001000 0x000017ff "vrl_backup"
attrs: 0x0000000000000000
type: ebd0a0a2-b9e5-4433-87c0-68b6b72699c7
guid: 61a36fc1-8efb-4899-84d8-b61642efa723
  3 0x00001800 0x00001fff "mcuimage"
<snip>

Signed-off-by: Peter Griffin <peter.griffin@linaro.org>
7 years agofs/fat: Correct blk_dread() return value check
Tom Rini [Tue, 15 Aug 2017 01:02:08 +0000 (21:02 -0400)]
fs/fat: Correct blk_dread() return value check

The function blk_dread will return -ENOSYS on failure or on success the
number of blocks read, which must be the number asked to read (otherwise
it failed somewhere).  Correct this check.

Signed-off-by: Tom Rini <trini@konsulko.com>
7 years agospl: spl_mmc.c Correct blk_dread() return value check
Tom Rini [Tue, 15 Aug 2017 01:01:30 +0000 (21:01 -0400)]
spl: spl_mmc.c Correct blk_dread() return value check

The function blk_dread will return -ENOSYS on failure or on success the
number of blocks read, which must be the number asked to read (otherwise
it failed somewhere).  Correct this check.

Signed-off-by: Tom Rini <trini@konsulko.com>
7 years agocmd/read.c: Fix checking blk_dread return value
Tom Rini [Tue, 15 Aug 2017 00:58:50 +0000 (20:58 -0400)]
cmd/read.c: Fix checking blk_dread return value

The function blk_dread will return -ENOSYS on failure or on success the
number of blocks read, which must be the number asked to read (otherwise
it failed somewhere).  Correct this check.

Reported-by: Coverity (CID: 166335)
Cc: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
Cc: Simon Glass <sjg@chromium.org>
Cc: Bin Meng <bmeng.cn@gmail.com>
Signed-off-by: Tom Rini <trini@konsulko.com>
7 years agomtdparts: Fix various issues reported by Coverity
Tom Rini [Tue, 15 Aug 2017 00:42:27 +0000 (20:42 -0400)]
mtdparts: Fix various issues reported by Coverity

Now that sandbox is building cmd/mtdparts.c Coverity has looked at the
code and found a number of issues.  In index_partitions() it is possible
that part will be NULL, so re-work the checks and debug statements to
take this into account.  We have a number of string buffers that we
print to in the exact size of, and use string functions on, so we need
to ensure they are large enough to be NULL terminated.  In
device_parse() it is not possible for num_partitions to be 0 (we would
have hit a different error first) so remove logically dead code.
Finally, in parse_mtdparts() if we have an error we need to free the
memory allocated to dev.

Cc: Lothar Waßmann <LW@KARO-electronics.de>
Cc: Maxime Ripard <maxime.ripard@free-electrons.com>
Reported-by: Coverity (CID: 166334, 166333, 166332, 166329, 166328)
Signed-off-by: Tom Rini <trini@konsulko.com>
7 years agohash: Compile only hardware or software versions of SHA algorithms
Tom Rini [Mon, 14 Aug 2017 20:38:07 +0000 (16:38 -0400)]
hash: Compile only hardware or software versions of SHA algorithms

Commit 089df18bfe9d ("lib: move hash CONFIG options to Kconfig") moved
CONFIG_SHA1, CONFIG_SHA256, CONFIG_SHA_HW_ACCEL, and
CONFIG_SHA_PROG_HW_ACCEL config options to Kconfig. So in the case of
SPL, CONFIG_SPL_HASH_SUPPORT enables CONFIG_SHA1 and CONFIG_SHA256 which
enables SHA SW library by default.  But in the case of platforms with
SHA HW library support, SHA SW library becomes redundant and increases
size of SPL by approx 18K.  Rework the code so that we have named
members and only have either software or hardware versions of the
algorithm, depending on the relevant config options.  Update the comment
around hash_algo to reflect this as well.

Reported-by: Sumit Garg <sumit.garg@nxp.com>
Cc: Sumit Garg <sumit.garg@nxp.com>
Signed-off-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Sumit Garg <sumit.garg@nxp.com>
7 years agoMakefile: honor PYTHON configuration properly
Clément Bœsch [Mon, 14 Aug 2017 06:59:11 +0000 (08:59 +0200)]
Makefile: honor PYTHON configuration properly

On some systems `python` is `python3` (for instance, Archlinux). The
`PYTHON` variable can be used to point to `python2` to have a successful
build.

The use of `PYTHON` is currently limited in the Makefile and needs to be
extended in other places:

First, pylibfdt is required to be a Python 2 binding (binman imports
pylibfdt and is only compatible Python 2), so its setup.py needs to be
called accordingly. An alternative would be to change the libfdt
setup.py shebang to python2, but the binding is actually portable. Also,
it would break on system where there is no such thing as `python2`.

Secondly, the libfdt import checks need to be done against Python 2 as
well since the Python 2 compiled modules (in this case _libdft.so) can
not be imported from Python 3.

Note on the libfdt imports: "@if ! PYTHONPATH=tools $(PYTHON) -c 'import
libfdt'; then..." is probably simpler than the currently sub-optimal
pipe.
Reviewed-by: Jonathan Gray <jsg@jsg.id.au>
7 years agoMerge git://git.denx.de/u-boot-video
Tom Rini [Sun, 20 Aug 2017 02:11:05 +0000 (22:11 -0400)]
Merge git://git.denx.de/u-boot-video

7 years agolcd: avoid possible NULL dereference
xypron.glpk@gmx.de [Sun, 30 Jul 2017 19:59:23 +0000 (21:59 +0200)]
lcd: avoid possible NULL dereference

Do not dereference bmp before the check if it is NULL.

The problem was indicated by cppcheck.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
7 years agoMerge tag 'signed-efi-next' of git://github.com/agraf/u-boot
Tom Rini [Fri, 18 Aug 2017 22:24:58 +0000 (18:24 -0400)]
Merge tag 'signed-efi-next' of git://github.com/agraf/u-boot

EFI Fixes for 2017.09:
  - Fix GOP w/o display
  - Fix LocateHandle
  - Fix exit return value truncation
  - Fix missing EFIAPI in efi_locate_handle (for x86)

7 years agoMerge branch 'master' of git://git.denx.de/u-boot-mmc
Tom Rini [Fri, 18 Aug 2017 22:24:36 +0000 (18:24 -0400)]
Merge branch 'master' of git://git.denx.de/u-boot-mmc

7 years agoMerge branch 'master' of git://git.denx.de/u-boot-coldfire
Tom Rini [Fri, 18 Aug 2017 22:24:08 +0000 (18:24 -0400)]
Merge branch 'master' of git://git.denx.de/u-boot-coldfire

7 years agoMerge branch 'master' of git://git.denx.de/u-boot-rockchip
Tom Rini [Fri, 18 Aug 2017 22:23:58 +0000 (18:23 -0400)]
Merge branch 'master' of git://git.denx.de/u-boot-rockchip

7 years agorockchip: rk322x: pinctrl: fix IO MASK error on sdcard pin
Kever Yang [Thu, 17 Aug 2017 07:17:36 +0000 (15:17 +0800)]
rockchip: rk322x: pinctrl: fix IO MASK error on sdcard pin

Fix the IOMUX setting for SDcard CMD pin at the same time.

Signed-off-by: Kever Yang <kever.yang@rock-chips.com>
Reviewed-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
7 years agorockchip: rk322x: pinctrl: using compatible name same with dts
Kever Yang [Thu, 17 Aug 2017 07:17:35 +0000 (15:17 +0800)]
rockchip: rk322x: pinctrl: using compatible name same with dts

The dts from kernel is using rk3228-pinctrl as compatible name,
need to sync with it to make the driver work.

Signed-off-by: Kever Yang <kever.yang@rock-chips.com>
Reviewed-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
7 years agorockchip: rk322x: update MACRO for mmc clksel reg
Kever Yang [Thu, 3 Aug 2017 12:07:45 +0000 (20:07 +0800)]
rockchip: rk322x: update MACRO for mmc clksel reg

The description for eMMC/SDIO/SDMMC src is not correct,
update the CRU_CLKSEL11_CON value definition according to TRM.

Signed-off-by: Kever Yang <kever.yang@rock-chips.com>
Acked-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
Reviewed-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
7 years agorockchip: rk322x: update dram bank size
Kever Yang [Fri, 21 Jul 2017 10:21:07 +0000 (18:21 +0800)]
rockchip: rk322x: update dram bank size

The DRAM start address is not 0, so need to update the last bank size
as:
DRAM start addr + DRAM_SIZE - last bank start addr

Signed-off-by: Kever Yang <kever.yang@rock-chips.com>
Acked-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
Reviewed-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
7 years agorockchip: rk3399: spl: remove unused header inclusion
Philipp Tomsich [Wed, 16 Aug 2017 17:24:02 +0000 (19:24 +0200)]
rockchip: rk3399: spl: remove unused header inclusion

fdtdec.h is included, but not used in rk3399-board-spl.c: remove the
'#include'-statement.

Signed-off-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
7 years agorockchip: dts: rk3399-evb: remove redundant gmac node
Kever Yang [Wed, 9 Aug 2017 10:51:30 +0000 (18:51 +0800)]
rockchip: dts: rk3399-evb: remove redundant gmac node

There are two same gmac node, remove one.

Signed-off-by: Kever Yang <kever.yang@rock-chips.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
Acked-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
7 years agoefi_loader: do not cast return value in EFI_EXIT
xypron.glpk@gmx.de [Thu, 17 Aug 2017 16:57:36 +0000 (18:57 +0200)]
efi_loader: do not cast return value in EFI_EXIT

UEFI API functions have different return types.
Some return a value of type EFI_STATUS other don't.

We therefore should not cast the return value of EFI_EXIT
to another type than the expression passed to EFI_EXIT.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Signed-off-by: Alexander Graf <agraf@suse.de>
7 years agommc: Support generic PCI SD host controller
Bin Meng [Wed, 9 Aug 2017 07:21:00 +0000 (00:21 -0700)]
mmc: Support generic PCI SD host controller

This changes pci_mmc driver to use PCI_CLASS_SYSTEM_SDHCI instead of
individual vendor id & device id pair to support generic PCI SD host
controller.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
7 years agom68k: add board stmark2, mcf5441x based
Angelo Dureghello [Sun, 6 Aug 2017 23:17:18 +0000 (01:17 +0200)]
m68k: add board stmark2, mcf5441x based

Sysam stmark2 board is a generic and fully (hw and sw) open board, with
a mcf54415 Coldfire CPU, 128MB of DDR2, 16MB of SPI flash and SD card
as non volatile memories, and a wifi module included on-board.
The board is actually used mainly for Coldfire custodian testing activity
related to the mcf5441x Coldfire family.

For further information please see: http://sysam.it/cff_stmark2.html

Signed-off-by: Angelo Dureghello <angelo@sysam.it>
---

Changes in v2:
 - remove CMD_REGINFO
 - add board information in commit message

7 years agom68k: mcf5445x: allow CS0 to be undefined
Angelo Dureghello [Sun, 14 May 2017 22:17:48 +0000 (00:17 +0200)]
m68k: mcf5445x: allow CS0 to be undefined

On some boards, CONFIG_SYS_CS0_BASE can be undefined, since
CS0 is not connected to any signal.

Signed-off-by: Angelo Dureghello <angelo@sysam.it>
7 years agom68k: fix cache.c for Coldfire V4E
Angelo Dureghello [Wed, 31 May 2017 19:32:48 +0000 (21:32 +0200)]
m68k: fix cache.c for Coldfire V4E

- fix cache.c CONFIG_CF_V4e to CONFIG_CF_V4E
- fix cache.c to properly enable/disable cache for V4E

Signed-off-by: Angelo Dureghello <angelo@sysam.it>
7 years agom68k: mcf5445x: move early ddr init as board-specific
Angelo Dureghello [Sun, 14 May 2017 19:42:27 +0000 (21:42 +0200)]
m68k: mcf5445x: move early ddr init as board-specific

For certain boot types and sbf, for V4 cpu's, an early ddr/sdram init
is required. This patch moves this ddr/sdram early initalization
away from start.S (to be board related).

Signed-off-by: Angelo Dureghello <angelo@sysam.it>
7 years agospl: fix Makefile for NOR, XIP and YMODEM
Philipp Tomsich [Thu, 17 Aug 2017 08:06:59 +0000 (10:06 +0200)]
spl: fix Makefile for NOR, XIP and YMODEM

During the the conversion to $(SPL_TPL_), the SPL_ fragment was
left over for the NOR, XIP and YMODEM boot methods in SPL, making
these unselectable.

This commit fixes this by dropping the spurious 'SPL_' fragment
from each line.

Signed-off-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
Reported-by: Bo Shen <voice.shen@gmail.com>
Fixes: f94e643 (spl: consistently use $(SPL_TPL_) to select features for SPL and TPL builds)

7 years agorockchip: dts: rk3399-firefly: update gmac parameter
Kever Yang [Tue, 1 Aug 2017 01:40:04 +0000 (09:40 +0800)]
rockchip: dts: rk3399-firefly: update gmac parameter

Update the tx_delay and rx_delay to match the timing for
rk3399-firefly board to improve the stability of gmac data
transfer.

Signed-off-by: Kever Yang <kever.yang@rock-chips.com>
Acked-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
Reviewed-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
7 years agocmd: mmc: add mmc partconf read capability
Angelo Dureghello [Tue, 1 Aug 2017 12:27:10 +0000 (14:27 +0200)]
cmd: mmc: add mmc partconf read capability

This patch allows to show the EXT_CSD[179] partition_config
register info, just by specifying the dev param:

  U-Boot> mmc partconf 0
  EXT_CSD[179], PARTITION_CONFIG:
  BOOT_ACK: 0x0
  BOOT_PARTITION_ENABLE: 0x0
  PARTITION_ACCESS: 0x0

Signed-off-by: Angelo Dureghello <angelo@sysam.it>
Signed-off-by: Anatolij Gustschin <agust@denx.de>
7 years agodm: mmc: Drop CONFIG_DM_MMC_OPS
Simon Glass [Sat, 29 Jul 2017 17:35:31 +0000 (11:35 -0600)]
dm: mmc: Drop CONFIG_DM_MMC_OPS

All boards which use DM_MMC have now been converted to use DM_MMC_OPS.
Drop the option and good riddance.

Signed-off-by: Simon Glass <sjg@chromium.org>
7 years agodm: mmc: Correct Kconfig condition for SPL_DM_MMC_OPS
Simon Glass [Sat, 29 Jul 2017 17:35:30 +0000 (11:35 -0600)]
dm: mmc: Correct Kconfig condition for SPL_DM_MMC_OPS

This should depend on SPL_DM_MMC, not SPL_DM. For it and update the only
affected board's defconfig.

Signed-off-by: Simon Glass <sjg@chromium.org>
7 years agodm: imx: Move i.MX devices to use CONFIG_DM_MMC_OPS
Simon Glass [Sat, 29 Jul 2017 17:35:29 +0000 (11:35 -0600)]
dm: imx: Move i.MX devices to use CONFIG_DM_MMC_OPS

Now that the driver supports it, move these boards over to use driver
model fully for MMC.

Signed-off-by: Simon Glass <sjg@chromium.org>
7 years agodm: imx: cm_fx6: Enable more driver model support
Simon Glass [Sat, 29 Jul 2017 17:35:28 +0000 (11:35 -0600)]
dm: imx: cm_fx6: Enable more driver model support

Enable driver model for MMC (including BLK), SATA and USB. Note that USB
does not yet work correctly since the nodes are disabled. Hopefully this
can be resolved by the maintainer.

Signed-off-by: Simon Glass <sjg@chromium.org>
7 years agodm: imx: cm_fx6: Add MMC support for CONFIG_BLK
Simon Glass [Sat, 29 Jul 2017 17:35:27 +0000 (11:35 -0600)]
dm: imx: cm_fx6: Add MMC support for CONFIG_BLK

When CONFIG_BLK is enabled our weak board_mmc_init() will not be called.
Since there is no clock driver for MX6 yet, we must manually enable the
clocks.

Signed-off-by: Simon Glass <sjg@chromium.org>
7 years agodm: imx: cm_fx6: Add device tree for cm_fx6
Simon Glass [Sat, 29 Jul 2017 17:35:26 +0000 (11:35 -0600)]
dm: imx: cm_fx6: Add device tree for cm_fx6

Add this file so we can use device-tree control for cm_fx6. It comes from
linux 4.12.

Signed-off-by: Simon Glass <sjg@chromium.org>
7 years agodm: imx: cm_fx6: Support driver model for SATA
Simon Glass [Sat, 29 Jul 2017 17:35:25 +0000 (11:35 -0600)]
dm: imx: cm_fx6: Support driver model for SATA

Add support for using driver model for SATA with the cm_fx6 board. The old
code remains for now to permit testing.

Signed-off-by: Simon Glass <sjg@chromium.org>
7 years agodm: mmc: fsl_esdhc: Update to support MMC operations
Simon Glass [Sat, 29 Jul 2017 17:35:24 +0000 (11:35 -0600)]
dm: mmc: fsl_esdhc: Update to support MMC operations

This driver does not currently support CONFIG_DM_MMC_OPS. Update it to
fully convert it to driver model.

Signed-off-by: Simon Glass <sjg@chromium.org>
7 years agodm: mmc: fsl_esdhc: Update to support livetree
Simon Glass [Sat, 29 Jul 2017 17:35:23 +0000 (11:35 -0600)]
dm: mmc: fsl_esdhc: Update to support livetree

Update this driver to support a live device tree.

Signed-off-by: Simon Glass <sjg@chromium.org>
7 years agodm: mmc: fsl_esdhc: Drop mmc_init() call from fsl_esdhc_init()
Simon Glass [Sat, 29 Jul 2017 17:35:22 +0000 (11:35 -0600)]
dm: mmc: fsl_esdhc: Drop mmc_init() call from fsl_esdhc_init()

We want to use fsl_esdhc_init() with driver model. Move the mmc_init() out
of this function so that we can use it for our common init.

Signed-off-by: Simon Glass <sjg@chromium.org>
7 years agodm: mmc: fsl_esdhc: Set up platform data
Simon Glass [Sat, 29 Jul 2017 17:35:21 +0000 (11:35 -0600)]
dm: mmc: fsl_esdhc: Set up platform data

With driver model we want to store the mmc and configuration structure in
platform data. Set up structure up and use it for non-DM as well.

Signed-off-by: Simon Glass <sjg@chromium.org>
7 years agodm: mmc: fsl_esdhc: Detect init failure
Simon Glass [Sat, 29 Jul 2017 17:35:20 +0000 (11:35 -0600)]
dm: mmc: fsl_esdhc: Detect init failure

Since esdhc_init_common() can fail it should return an error code. Update
this and also adjust the timeout mechanism to use get_timer(), which is a
more common approach.

Signed-off-by: Simon Glass <sjg@chromium.org>
7 years agodm: mmc: fsl_esdhc: Detect reset failure
Simon Glass [Sat, 29 Jul 2017 17:35:19 +0000 (11:35 -0600)]
dm: mmc: fsl_esdhc: Detect reset failure

Since esdhc_reset() can fail it should return an error code. Update this
and also adjust the timeout mechanism to use get_timer(), which is a more
common approach.

Signed-off-by: Simon Glass <sjg@chromium.org>
7 years agodm: mmc: fsl_esdhc: Set up common versions of operations
Simon Glass [Sat, 29 Jul 2017 17:35:18 +0000 (11:35 -0600)]
dm: mmc: fsl_esdhc: Set up common versions of operations

Driver model wants to use the core functions in this file but accesses the
driver-private data in a different way. Move the code into new 'common'
functions and set up stubs to call these. Also sort the operations into
alphabetical order for consistency.

Signed-off-by: Simon Glass <sjg@chromium.org>
7 years agodm: mmc: fsl_esdhc: Pass private data to internal functions
Simon Glass [Sat, 29 Jul 2017 17:35:17 +0000 (11:35 -0600)]
dm: mmc: fsl_esdhc: Pass private data to internal functions

With driver model we will not use mmc->priv to access driver-private data.
To accomodate this, update internal functions so that we can pass the
private data directly. This will allow the caller to obtain it as it
prefers.

Signed-off-by: Simon Glass <sjg@chromium.org>
7 years agodm: sata: dwc_ahsata: Add support for driver model
Simon Glass [Sat, 29 Jul 2017 17:35:16 +0000 (11:35 -0600)]
dm: sata: dwc_ahsata: Add support for driver model

Update this driver to support driver model. This involves implementing the
AHCI operations and reusing existing common code.

Signed-off-by: Simon Glass <sjg@chromium.org>
7 years agodm: sata: Update the AHCI uclass to support operations
Simon Glass [Sat, 29 Jul 2017 17:35:15 +0000 (11:35 -0600)]
dm: sata: Update the AHCI uclass to support operations

At present the AHCI uclass is just a shell and we still use the global
functions to access SATA. Fix this by adding operations to the uclass.

Signed-off-by: Simon Glass <sjg@chromium.org>
7 years agodm: sata: imx: Allow driver model to be used for sata
Simon Glass [Sat, 29 Jul 2017 17:35:14 +0000 (11:35 -0600)]
dm: sata: imx: Allow driver model to be used for sata

Update the sata call to work with driver model.

Signed-off-by: Simon Glass <sjg@chromium.org>
7 years agodm: sata: Support driver model with the 'sata' command
Simon Glass [Sat, 29 Jul 2017 17:35:13 +0000 (11:35 -0600)]
dm: sata: Support driver model with the 'sata' command

Update this command to support driver model. This has a different way of
starting and stopping SATA.

Signed-off-by: Simon Glass <sjg@chromium.org>
7 years agodm: sata: dw_sata: Set up common versions of operations
Simon Glass [Sat, 29 Jul 2017 17:35:12 +0000 (11:35 -0600)]
dm: sata: dw_sata: Set up common versions of operations

Driver model wants to use the core functions in this file but accesses the
uclass-private data in a different way. Move the code into new 'common'
functions and set up stubs to call these.

Signed-off-by: Simon Glass <sjg@chromium.org>
7 years agodm: sata: dw_sata: More ahci_init_one() futher down
Simon Glass [Sat, 29 Jul 2017 17:35:11 +0000 (11:35 -0600)]
dm: sata: dw_sata: More ahci_init_one() futher down

This function will not be used with driver model and it relates to the
other exported functions. Move it down next to them.

Signed-off-by: Simon Glass <sjg@chromium.org>
7 years agodm: sata: dw_sata: Drop is_ready
Simon Glass [Sat, 29 Jul 2017 17:35:10 +0000 (11:35 -0600)]
dm: sata: dw_sata: Drop is_ready

This variable is set but never used. Drop it.

Signed-off-by: Simon Glass <sjg@chromium.org>
7 years agodm: sata: dw_sata: Rename the dwc_ahsata private header
Simon Glass [Sat, 29 Jul 2017 17:35:09 +0000 (11:35 -0600)]
dm: sata: dw_sata: Rename the dwc_ahsata private header

Rename dwc_ahsata.h to indicate that it is a private header file. We plan
to create another header with some public functions.

Signed-off-by: Simon Glass <sjg@chromium.org>
7 years agodm: sata: dw_sata: Sort #include directives
Simon Glass [Sat, 29 Jul 2017 17:35:08 +0000 (11:35 -0600)]
dm: sata: dw_sata: Sort #include directives

Sort the header file inclusions into the correct order.

Signed-off-by: Simon Glass <sjg@chromium.org>
7 years agodm: sata: dw_sata: Drop unnecessary brackets
Simon Glass [Sat, 29 Jul 2017 17:35:07 +0000 (11:35 -0600)]
dm: sata: dw_sata: Drop unnecessary brackets

There is a strange &(var) coding style in this driver. Adjust it to use
&var instead, which is more usual.

Signed-off-by: Simon Glass <sjg@chromium.org>
7 years agodm: sata: dw_sata: Pass uc_priv to internal functions
Simon Glass [Sat, 29 Jul 2017 17:35:06 +0000 (11:35 -0600)]
dm: sata: dw_sata: Pass uc_priv to internal functions

With driver model sata_dev_desc[] does not exist. We still want to use the
common code of this driver so update it to pass struct ahci_uc_priv * to
each of these functions, instead of an integer which must be looked up in
sata_dev_desc[].

Signed-off-by: Simon Glass <sjg@chromium.org>
7 years agodm: sata: dw_sata: Drop unnecessary casts
Simon Glass [Sat, 29 Jul 2017 17:35:05 +0000 (11:35 -0600)]
dm: sata: dw_sata: Drop unnecessary casts

Most of the casts in this driver are not necessary. With driver model we
do not cast from void *. Update the driver to follow this rule.

Signed-off-by: Simon Glass <sjg@chromium.org>
7 years agodm: sata: dw_sata: Rename 'probe_ent' to uc_priv
Simon Glass [Sat, 29 Jul 2017 17:35:04 +0000 (11:35 -0600)]
dm: sata: dw_sata: Rename 'probe_ent' to uc_priv

With driver model this becomes uclass-private data. Rename the parameter
varable to reflect this.

With the driver model conversion we will not have any exported functions.
Move all exported functions to be together at the end of the file so that
we can deal with them in one #ifdef block.

Signed-off-by: Simon Glass <sjg@chromium.org>
7 years agodm: sata: dw_sata: Move exported functions to the end
Simon Glass [Sat, 29 Jul 2017 17:35:03 +0000 (11:35 -0600)]
dm: sata: dw_sata: Move exported functions to the end

With the driver model conversion we will not have any exported functions.
Move all exported functions to be together at the end of the file so that
we can deal with them in one #ifdef block.

Signed-off-by: Simon Glass <sjg@chromium.org>
7 years agodm: sata: dw_sata: Drop dwc_ahsata_rw_ncq_cmd()
Simon Glass [Sat, 29 Jul 2017 17:35:02 +0000 (11:35 -0600)]
dm: sata: dw_sata: Drop dwc_ahsata_rw_ncq_cmd()

This function is not called from anywhere. Drop it.

Signed-off-by: Simon Glass <sjg@chromium.org>
7 years agodm: sata: dwc_ahsata: Make functions static
Simon Glass [Sat, 29 Jul 2017 17:35:01 +0000 (11:35 -0600)]
dm: sata: dwc_ahsata: Make functions static

Some functions are not called from outside this file. Make these static
to make that obvious.

Signed-off-by: Simon Glass <sjg@chromium.org>
7 years agodm: core: Add a comment about the device_remove() flags
Simon Glass [Sat, 29 Jul 2017 17:35:00 +0000 (11:35 -0600)]
dm: core: Add a comment about the device_remove() flags

We should explain which flags are used for this function. Update the
comment to indicate this.

Signed-off-by: Simon Glass <sjg@chromium.org>
7 years agodm: blk: Update return value in blk_create_devicef()
Simon Glass [Sat, 29 Jul 2017 17:34:59 +0000 (11:34 -0600)]
dm: blk: Update return value in blk_create_devicef()

This returns 'ret' but the value is always zero. Update it to simply
return 0, for clarity.

Signed-off-by: Simon Glass <sjg@chromium.org>
7 years agodm: usb: Adjust the 'usb' command to use blk_common_cmd()
Simon Glass [Sat, 29 Jul 2017 17:34:58 +0000 (11:34 -0600)]
dm: usb: Adjust the 'usb' command to use blk_common_cmd()

Instead of having separate code in the 'usb' command, adjust it to use
the common function.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
7 years agodm: ide: Adjust the 'ide' command to use blk_common_cmd()
Simon Glass [Sat, 29 Jul 2017 17:34:57 +0000 (11:34 -0600)]
dm: ide: Adjust the 'ide' command to use blk_common_cmd()

Instead of having separate code in the 'ide' command, adjust it to use
the common function.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
7 years agodm: scsi: Adjust the 'scsi' command to use blk_common_cmd()
Simon Glass [Sat, 29 Jul 2017 17:34:56 +0000 (11:34 -0600)]
dm: scsi: Adjust the 'scsi' command to use blk_common_cmd()

Instead of having separate code in the 'scsi' command, adjust it to use
the common function.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
7 years agodm: sata: Adjust the 'sata' command to use blk_common_cmd()
Simon Glass [Sat, 29 Jul 2017 17:34:55 +0000 (11:34 -0600)]
dm: sata: Adjust the 'sata' command to use blk_common_cmd()

Instead of having separate code in the 'sata' command, adjust it to use
the common function.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
7 years agodm: blk: Add a generic function for block device commands
Simon Glass [Sat, 29 Jul 2017 17:34:54 +0000 (11:34 -0600)]
dm: blk: Add a generic function for block device commands

Most block devices provide a command (e.g. 'sata', 'scsi', 'ide') and
these commands generally do the same thing. This makes it harder to
maintain this code and keep it consistent.

We now have a block device interface which is either implemented by driver
model (when CONFIG_BLK is enabled) or with a legacy interface. Therefore
it is possible to handle most of what these commands do with generic code.

Add a new generic function to process block-device commands using the
interface type and the current device number for that type.

Signed-off-by: Simon Glass <sjg@chromium.org>
7 years agodm: blk: Add a function to find an interface-type name
Simon Glass [Sat, 29 Jul 2017 17:34:53 +0000 (11:34 -0600)]
dm: blk: Add a function to find an interface-type name

Add a function to find the name of an interface type (e.g. "sata", "scsi")
from the interface type enum.

This is useful for generic code (not specific to SATA or SCSI, for
example) that wants to display the type of interface it is dealing with.

Signed-off-by: Simon Glass <sjg@chromium.org>
7 years agodm: core: Avoid calling dm_scan_fdt_dev() with of-platdata
Simon Glass [Sat, 29 Jul 2017 17:34:52 +0000 (11:34 -0600)]
dm: core: Avoid calling dm_scan_fdt_dev() with of-platdata

We cannot call dm_scan_fdt_dev() with of-platdata since there is no device
tree. Fix this with an #if check.

Fixes: 3be9a37 (dm: syscon: scan sub-nodes of the syscon node)
Signed-off-by: Simon Glass <sjg@chromium.org>
7 years agommc: gen_atmel_mci: Fix wrong arguments used of bind()
Wenyou.Yang@microchip.com [Wed, 26 Jul 2017 06:35:42 +0000 (14:35 +0800)]
mmc: gen_atmel_mci: Fix wrong arguments used of bind()

The bind() method is called before the device is probed and so the
device has no private data, should use the platform data, and set up
a new struct to hold the mmc and cfg members.

Signed-off-by: Wenyou Yang <wenyou.yang@microchip.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
7 years agommc: sd_sdhi: Enable clock using clock framework
Marek Vasut [Fri, 21 Jul 2017 21:22:56 +0000 (23:22 +0200)]
mmc: sd_sdhi: Enable clock using clock framework

Since we now have clock driver for the RCar Gen3 , add support for
enabling the clock into the SH SDHI driver to prevent hacks in the
board files.

Signed-off-by: Marek Vasut <marek.vasut+renesas@gmail.com>
Cc: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
Cc: Jaehoon Chung <jh80.chung@samsung.com>
Reviewed-by: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
7 years agommc: sh_sdhi: Fix the ACMD handling
Marek Vasut [Fri, 21 Jul 2017 21:22:55 +0000 (23:22 +0200)]
mmc: sh_sdhi: Fix the ACMD handling

The command handling in this driver is awful, esp. because the driver
depends on command numbers to determine whether this is APPCMD or not.
Also, handling of command RSP response types is totally wrong.

This patch at least plucks out some of the custom command encoding and
fixes the APPCMD handling. The RSP handling still needs work, yet that
might not be needed as it turns out the uniphier-sd.c driver is in much
better shape and supports the same IP, so we might be able to just drop
this driver in favor of the uniphier one.

Signed-off-by: Marek Vasut <marek.vasut+renesas@gmail.com>
Cc: Hiroyuki Yokoyama <hiroyuki.yokoyama.vx@renesas.com>
Cc: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
Cc: Jaehoon Chung <jh80.chung@samsung.com>
Reviewed-by: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
7 years agommc: sh_sdhi: Add DM and DT probing support
Marek Vasut [Fri, 21 Jul 2017 21:22:54 +0000 (23:22 +0200)]
mmc: sh_sdhi: Add DM and DT probing support

Add MMC DM and DT probing support into the SH SDHI driver.
This patch abstracts out the common bits of the send command
and set ios functions, so they can be used both by DM and non
DM setups and adds the DM probe support.

Signed-off-by: Marek Vasut <marek.vasut+renesas@gmail.com>
Cc: Hiroyuki Yokoyama <hiroyuki.yokoyama.vx@renesas.com>
Cc: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
Cc: Jaehoon Chung <jh80.chung@samsung.com>
Reviewed-by: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
7 years agommc: uniphier-sd: Fix long response processing
Marek Vasut [Fri, 21 Jul 2017 21:11:59 +0000 (23:11 +0200)]
mmc: uniphier-sd: Fix long response processing

The long response entry 0..3 LSByte comes from the next response
register MSByte, not from the next response register LSByte. Fix
this to make the driver report correct values in response 136 .

Signed-off-by: Marek Vasut <marek.vasut+renesas@gmail.com>
Cc: Masahiro Yamada <yamada.masahiro@socionext.com>
Cc: Jaehoon Chung <jh80.chung@samsung.com>
Acked-by: Masahiro Yamada <yamada.masahiro@socionext.com>
7 years agoMerge git://git.denx.de/u-boot-tegra
Tom Rini [Wed, 16 Aug 2017 22:12:58 +0000 (18:12 -0400)]
Merge git://git.denx.de/u-boot-tegra

7 years agoMerge git://git.denx.de/u-boot-sunxi
Tom Rini [Wed, 16 Aug 2017 22:12:35 +0000 (18:12 -0400)]
Merge git://git.denx.de/u-boot-sunxi

Update A20-OLinuXino-Lime2-eMMC_defconfig to include CONFIG_SCSI

Signed-off-by: Tom Rini <trini@konsulko.com>