oweals/u-boot.git
9 years agodm: core: Don't use pinctrl for the root device
Simon Glass [Sat, 12 Sep 2015 14:45:19 +0000 (08:45 -0600)]
dm: core: Don't use pinctrl for the root device

Currently when driver model starts up it finds the root uclass and the
pinctrl uclass. This is because even the root node handles pinctrl
processing.

But this is not useful. The root node is not a real hardware device so
cannot require any particular pinmux settings. Also it means that the
memory leak tests fails, since they end up freeing more memory than
they allocate: the marker it set after the root device and pinctrl
uclass are allocated, and later once the pinctrl uclass is freed the memory
used by driver model is less than when the marker was set.

If a platform needs 'core' pin mulitplex settings it can do this with
a driver that is probed on start-up. It would be an abuse of the root node
to use this for pinctrl.

To avoid this problem, only process pinctrl settings for non-root nodes.

Signed-off-by: Simon Glass <sjg@chromium.org>
9 years agoMerge branch 'master' of git://git.denx.de/u-boot-fdt
Tom Rini [Sat, 3 Oct 2015 14:48:06 +0000 (10:48 -0400)]
Merge branch 'master' of git://git.denx.de/u-boot-fdt

9 years agotrats: fdt: disable unused DW MMC
Przemyslaw Marczak [Wed, 30 Sep 2015 11:14:53 +0000 (13:14 +0200)]
trats: fdt: disable unused DW MMC

This device uses SDHCI driver, for eMMC and SD cards.
Trying bind the DW MMC driver with fdt node without all
required properties, causes printing an error.

This commit disables the DW MMC node.

Tested-on: Trats

Signed-off-by: Przemyslaw Marczak <p.marczak@samsung.com>
Cc: Ɓukasz Majewski <l.majewski@samsung.com>
Cc: Minkyu Kang <mk7.kang@samsung.com>
9 years agomach-exynos: clock: restore calling dead exynos4_get_mmc_clk()
Przemyslaw Marczak [Wed, 30 Sep 2015 11:14:52 +0000 (13:14 +0200)]
mach-exynos: clock: restore calling dead exynos4_get_mmc_clk()

After rework of code by:

commit: d952796 Exynos5: Use clock_get_periph_rate generic API

function get_mmc_clk() always returns -1 for Exynos 4.

This was caused by omitting, that SDHCI driver for Exynos 4,
calls get_mmc_clk(), with mmc device number as argument,
instead of pinmux peripheral id, like DW MMC driver for Exynos 5.

By this commit, the code directly calls a proper function
to get mmc clock for Exynos 4, without checking the peripheral id.

Tested on: Odroid U3/X2, Trats, Trats2, Odroid XU3, Snow (by Simon).

Signed-off-by: Przemyslaw Marczak <p.marczak@samsung.com>
Acked-by: Jaehoon Chung <jh80.chung@samsung.com>
Acked-by: Simon Glass <sjg@chromium.org>
Tested-by: Simon Glass <sjg@chromium.org>
9 years agogpio: s5p: call: dev_get_addr() instead of fdtdec_get_addr()
Przemyslaw Marczak [Wed, 30 Sep 2015 11:14:51 +0000 (13:14 +0200)]
gpio: s5p: call: dev_get_addr() instead of fdtdec_get_addr()

After rework in lib/fdtdec.c, the function fdtdec_get_addr()
doesn't work for nodes with #size-cells property set to 0.

To get GPIO's 'reg' property, the code should use one of:
fdtdec_get_addr_size_auto_no/parent() function.

Fortunately dm core provides a function to get the property.

This commit reworks function gpio_exynos_bind(), to properly
use dev_get_addr() for GPIO device.

This prevents setting a wrong base register for Exynos GPIOs.

Tested on: Odroid U3/X2, Trats, Trats2, Odroid XU3, Snow (by Simon).

Signed-off-by: Przemyslaw Marczak <p.marczak@samsung.com>
Acked-by: Stephen Warren <swarren@nvidia.com>
Acked-by: Simon Glass <sjg@chromium.org>
Tested-by: Simon Glass <sjg@chromium.org>
9 years agofdtdec: fix parsing 'reg' property with zero value in '#size-cells'
Przemyslaw Marczak [Wed, 30 Sep 2015 11:14:50 +0000 (13:14 +0200)]
fdtdec: fix parsing 'reg' property with zero value in '#size-cells'

After rework of lib/fdtdec.c by:

commit: 02464e3 fdt: add new fdt address parsing functions

the function fdtdec_get_addr() doesn't work as previous,
because the implementation assumes that properties '#address-cells'
and '#size-cells' are equal to 1, which can be not true sometimes.

The new API introduced fdtdec_get_addr_size_auto_parent() for the 'reg'
property parsing, but the implementation assumes, that #size-cells
can't be less than 1.

This causes that the following children's 'reg' property can't be reached:

parent@0x0 {
     #address-cells = <1>;
     #size-cells = <0>;
     children@0x100 {
         reg = < 0x100 >;
     };
};

Change the condition value from '1' to '0', which allows parsing property
with at least zero #size-cells, fixes the issue.

Now, fdtdec_get_addr_size_auto_parent() works properly.

Tested on: Odroid U3/X2, Trats, Trats2, Odroid XU3, Snow (by Simon).

Signed-off-by: Przemyslaw Marczak <p.marczak@samsung.com>
Acked-by: Stephen Warren <swarren@nvidia.com>
Acked-by: Simon Glass <sjg@chromium.org>
Tested-by: Simon Glass <sjg@chromium.org>
9 years agofdt: fix fdtdec_get_addr_size not to require any size cells
Stephen Warren [Fri, 25 Sep 2015 16:11:41 +0000 (10:11 -0600)]
fdt: fix fdtdec_get_addr_size not to require any size cells

fdtdec_get_addr_size() may be used in two cases:
a) With sizep supplied, in which case both an address and a size are
parsed from DT. In this case, the DT property must be large enough to
contain both values.
b) With sizep NULL, in which case only an address is parsed from DT.
In this case, the DT property only need be large enough to contain this
address value. Commit 02464e386bb5 "fdt: add new fdt address parsing
functions" broke this relaxed checking, and required the DT property to
contain both an address and a size value in all cases.

Fix fdtdec_get_addr_size() to vary ns based on whether the size value
is being parsed from the DT or not. This is safe since the function only
parses the first entry in the property, so the overall value of (na + ns)
need not be accurate, since it is never used to step through the property
data to find other entries. Besides, this fixed behaviour essentially
matches the original behaviour before the patch this patch fixes. (The
original code validated that the property was exactly the length of
either na or (na + ns), whereas the current code only validates that the
property is at least that long. For non-failure cases, the two behaviours
are identical).

Cc: Przemyslaw Marczak <p.marczak@samsung.com>
Cc: Simon Glass <sjg@chromium.org>
Cc: Thierry Reding <treding@nvidia.com>
Cc: Bin Meng <bmeng.cn@gmail.com>
Cc: Michal Suchanek <hramrach@gmail.com>
Fixes: 02464e386bb5 ("fdt: add new fdt address parsing functions")
Reported-by: Przemyslaw Marczak <p.marczak@samsung.com>
Signed-off-by: Stephen Warren <swarren@nvidia.com>
Tested-by: Przemyslaw Marczak <p.marczak@samsung.com>
Acked-by: Simon Glass <sjg@chromium.org>
9 years agodts: Add a comment about CONFIG_OF_EMBED being for local use
Simon Glass [Tue, 1 Sep 2015 00:47:52 +0000 (18:47 -0600)]
dts: Add a comment about CONFIG_OF_EMBED being for local use

This comment from README.fdt-control did not end up in the Kconfig, which
is what most people will see. Add it with a few tweaks.

Signed-off-by: Simon Glass <sjg@chromium.org>
Acked-by: Michal Simek <michal.simek@xilinx.com>
9 years agosunxi: Add generic defconfigs for A23 Q8 tablets with 800x480 LCD
Hans de Goede [Tue, 29 Sep 2015 09:48:01 +0000 (11:48 +0200)]
sunxi: Add generic defconfigs for A23 Q8 tablets with 800x480 LCD

The 7" Q8 tablet enclosure is used for a ton of slightly different cheap
chinese tablets. There are some differences in which accelerometer /
wifi is used, but other then that these are all the same from a u-boot /
kernel pov.

When we get to adding accelerometer support the plan is to add some kind
of autodetection and mangle the dt accordingly (likely using the new quirks
mechanism).

For now this is a non issue as we do not yet have accelerometer
support, and in the future, some sort of auto-detect is the way to go
as we cannot expect users to exactly know what is inside their tablet.

The dts files this commit adds are identical to the ones submitted
to the upstream kernel.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Acked-by: Ian Campbell <ijc@hellion.org.uk>
9 years agoMerge branch 'master' of git://git.denx.de/u-boot-tegra
Tom Rini [Sat, 3 Oct 2015 00:35:49 +0000 (20:35 -0400)]
Merge branch 'master' of git://git.denx.de/u-boot-tegra

9 years agogpio: tegra: use named constants
Stephen Warren [Fri, 25 Sep 2015 16:44:08 +0000 (10:44 -0600)]
gpio: tegra: use named constants

In order to make it clear what the parameters to set_config() and
set_direction() mean, and similarly for the return values from the
respective get_*(), define named constants for these values.

Disassembly shows no diff in the generated code, except that the
order of the code in the branches of tegra_gpio_get_function() gets
modified without affecting behaviour.

Suggested-by: Tom Warren <twarren@nvidia.com>
Signed-off-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Tom Warren <twarren@nvidia.com>
9 years agogpio: tegra: remove unused type
Stephen Warren [Fri, 25 Sep 2015 16:44:07 +0000 (10:44 -0600)]
gpio: tegra: remove unused type

These enum values aren't used anywhere. Remove them.

Signed-off-by: Stephen Warren <swarren@nvidia.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Tom Warren <twarren@nvidia.com>
9 years agoARM: tegra: expand all SPL sizes to be consistent
Stephen Warren [Wed, 23 Sep 2015 18:34:01 +0000 (12:34 -0600)]
ARM: tegra: expand all SPL sizes to be consistent

The size allocation for SPL is increased in all cases to match the
already-expanded value used on Tegra124. This is both for general
consistency, and because the seaboard build trips over the limit already
when using one of the ARM compilers packaged with 14.04. For the record,
when building Seaboard:

arm-linux-gnueabi- SPL is too big by 0x36 bytes
arm-linux-gnueabihf- SPL fits by 0x2a bytes
arm-none-eabi- SPL fits by 0xa bytes

(Those figures are from builds with the expanded SPL size allocation,
relative to the non-expanded SPL size limit; they're better by about
6 bytes in the more constrained build.)

Fixes: ba521994229c ("tegra124: Expand SPL space by 8KB")
Signed-off-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Tom Warren <twarren@nvidia.com>
9 years agoARM: tegra: don't enable GPIOs until direction is set
Stephen Warren [Wed, 23 Sep 2015 18:13:00 +0000 (12:13 -0600)]
ARM: tegra: don't enable GPIOs until direction is set

Tegra's GPIO driver currently enables pins as GPIO as soon as they're
requested. This is not safe, since the desired direction and output value
are not yet known. This could cause a glitch on the output pins between
gpio_request() and gpio_direction_*(), depending on what values happen to
be in the GPIO controller's in/out and out-value registers vs. the final
desired configuration.

To solve this, defer enabling pins as GPIOs until some gpio_direction_*()
is invoked, and the desired configuration is explicitly programmed.

In theory this change could cause regressions, if code exists that claims
a GPIO, never explicitly sets a direction, and then gets/sets the GPIO
value based on that assumption. However, I've read through all the Tegra-
related board files and device drivers that touch GPIOs and I do not see
such buggy code anywhere.

Signed-off-by: Stephen Warren <swarren@nvidia.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Tom Warren <twarren@nvidia.com>
9 years agoARM: tegra: fix GPIO init table programming
Stephen Warren [Wed, 23 Sep 2015 18:12:59 +0000 (12:12 -0600)]
ARM: tegra: fix GPIO init table programming

Tegra's gpio_config_table() currently uses common GPIO APIs. These used
to work without requesting the GPIO, but since commit 2fccd2d96bad "tegra:
Convert tegra GPIO driver to use driver model" no longer do so. This
prevents any of the GPIO initialization table from being applied to HW.
Fix gpio_config_table() to directly program the HW to solve this.

Fixes: 2fccd2d96bad ("tegra: Convert tegra GPIO driver to use driver model")
Signed-off-by: Stephen Warren <swarren@nvidia.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Tom Warren <twarren@nvidia.com>
9 years agoARM: tegra: p2371-2180: import latest pinmux
Stephen Warren [Mon, 21 Sep 2015 22:45:22 +0000 (16:45 -0600)]
ARM: tegra: p2371-2180: import latest pinmux

In order to avoid any assumptions about any device connected to
P2371-2180's expansion connector, the latest pinmux spreadsheet
configures all muxable pins on that connector to be GPIO inputs, with
on-chip pulls where appropriate.

Signed-off-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Tom Warren <twarren@nvidia.com>
9 years agoMerge branch 'master' of git://www.denx.de/git/u-boot-imx
Tom Rini [Fri, 2 Oct 2015 13:38:44 +0000 (09:38 -0400)]
Merge branch 'master' of git://denx.de/git/u-boot-imx

9 years agomx6sabre_common: Add DFU support
Fabio Estevam [Wed, 23 Sep 2015 03:52:33 +0000 (00:52 -0300)]
mx6sabre_common: Add DFU support

Add DFU support.

Tested by flashing SPL and u-boot.img into SPI NOR flash with the
following commands:

=> setenv dfu_alt_info ${dfu_alt_info_spl}

=> run dfuspi

On the host PC:

$ sudo dfu-util -D SPL -a spl

On the target:

CTRL+C
=> setenv dfu_alt_info ${dfu_alt_info_img}

=> run dfuspi

On the host PC:

$ sudo dfu-util -D u-boot.img -a u-boot

Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
9 years agovf610: add support for Phytec PCM052
Albert ARIBAUD \(3ADEV\) [Mon, 21 Sep 2015 20:43:39 +0000 (22:43 +0200)]
vf610: add support for Phytec PCM052

Devices supported are:
- NFC (NAND FLASH)
- MMC
- QSPI (SPI NOR FLASH)
- I2C (only bus 2)
- I2C RTC
- I2C EEPROM
- FEC

Patch-series: 2
- remove useless CONFIG_SYS_SPD_BUS_NUM from config
- remove include of config_cmd_default.h
- remove duplicate CONFIG_CMD_NET

Signed-off-by: Albert ARIBAUD (3ADEV) <albert.aribaud@3adev.fr>
9 years agoI2C: mxc_i2c: make I2C1 and I2C2 optional
Albert ARIBAUD \\(3ADEV\\) [Mon, 21 Sep 2015 20:43:38 +0000 (22:43 +0200)]
I2C: mxc_i2c: make I2C1 and I2C2 optional

The driver assumed that I2C1 and I2C2 were always enabled,
and if they were not, then an asynchronous abort was (silently)
raised, to be caught much later on in the Linux kernel.

Fix this by making I2C1 and I2C2 optional just like I2C3 and I2C4
are.

To make the change binary-invariant, declare I2C1 and I2C2 in
every include/configs/ file which defines CONFIG_SYS_I2C_MXC.

Also, while updating README about CONFIG_SYS_I2C_MXC_I2C1 and
CONFIG_SYS_I2C_MXC_I2C2, add missing descriptions for I2C4 speed
(CONFIG_SYS_MXC_I2C4_SPEED) and slave (CONFIG_SYS_MXC_I2C4_SLAVE)
config options.

Signed-off-by: Albert ARIBAUD (3ADEV) <albert.aribaud@3adev.fr>
9 years agovf610: refactor DDRMC code
Albert ARIBAUD \\(3ADEV\\) [Mon, 21 Sep 2015 20:43:37 +0000 (22:43 +0200)]
vf610: refactor DDRMC code

The VF610 DDRMC driver code contains settings which are
board-specific. Move these out to boards so that new boards
can define their own without having to modify the driver.

Signed-off-by: Albert ARIBAUD (3ADEV) <albert.aribaud@3adev.fr>
9 years agotbs2910: explicitly set boot address
Soeren Moch [Thu, 1 Oct 2015 20:48:04 +0000 (22:48 +0200)]
tbs2910: explicitly set boot address

Set missing boot address in bootm command. This fixes the error:
 Wrong Image Format for bootm command
 ERROR: can't get kernel image!

Reported-by: Uwe Scheffler <scheffler.u@web.de>
Signed-off-by: Soeren Moch <smoch@web.de>
Tested-by: Uwe Scheffler <scheffler.u@web.de>
9 years agoimx: mx6: correct enable_fec_anatop_clock
Peng Fan [Sun, 6 Sep 2015 09:15:47 +0000 (17:15 +0800)]
imx: mx6: correct enable_fec_anatop_clock

We should follow 'read->set/clr bit->write' flow for enable_fec_anatop_clock,
otherwise we may overridden configuration before enable_fec_anatop_clock.

Signed-off-by: Peng Fan <Peng.Fan@freescale.com>
Cc: Stefano Babic <sbabic@denx.de>
Cc: Cc: Fabio Estevam <fabio.estevam@freescale.com>
9 years agoMerge branch 'master' of git://git.denx.de/u-boot-atmel
Tom Rini [Thu, 1 Oct 2015 11:53:15 +0000 (07:53 -0400)]
Merge branch 'master' of git://git.denx.de/u-boot-atmel

9 years agoarm, at91: small updates for the smartweb board
Heiko Schocher [Mon, 28 Sep 2015 09:36:05 +0000 (11:36 +0200)]
arm, at91: small updates for the smartweb board

- add CONFIG_BOOT_RETRY_TIME to 30
- fex LED colors
- fix button pressed combination
- add
  CONFIG_USB_HOST_ETHER
  CONFIG_USB_ETHER_ASIX
  CONFIG_USB_ETHER_MCS7830

Signed-off-by: Heiko Schocher <hs@denx.de>
Signed-off-by: Matthias Michel <matthias.michel@siemens.com>
9 years agoARM: at91: sama5: add support for CONFIG_ENV_IS_IN_MMC
Josh Wu [Wed, 16 Sep 2015 03:34:14 +0000 (11:34 +0800)]
ARM: at91: sama5: add support for CONFIG_ENV_IS_IN_MMC

If defined CONFIG_ENV_IS_IN_MMC, then u-boot environment is saved in
mmc's raw sectors. Otherwise, u-boot environment is saved as a file:
uboot.env.

Signed-off-by: Josh Wu <josh.wu@atmel.com>
Reviewed-by: Bo Shen <voice.shen@gmail.com>
9 years agoMerge git://git.denx.de/u-boot-marvell
Tom Rini [Thu, 1 Oct 2015 00:20:59 +0000 (20:20 -0400)]
Merge git://git.denx.de/u-boot-marvell

9 years agotools: kwboot: Add support for UART boot mode patching for Armada XP/38x
Stefan Roese [Tue, 29 Sep 2015 07:19:59 +0000 (09:19 +0200)]
tools: kwboot: Add support for UART boot mode patching for Armada XP/38x

Currently, kwboot only allows dynamic UART boot mode patching for SoCs
with header version 0 (Orion, Kirkwood). This patch now enables this "-p"
feature also for SoCs with header version 1 (Armada XP / 38x etc). With
this its possible now to use the UART boot mode without on images that
are generated for other boot devices, like SPI. So no need to change
BOOT_FROM to "uart" for UART xmodem booting any more.

Signed-off-by: Stefan Roese <sr@denx.de>
Tested-by: Kevin Smith <kevin.smith@elecsyscorp.com>
Cc: Luka Perkov <luka.perkov@sartura.hr>
Cc: Dirk Eibach <eibach@gdsys.de>
9 years agoarm: mvebu: timer.c: Explicitly move "init_done" var to data section
Stefan Roese [Thu, 3 Sep 2015 10:47:07 +0000 (12:47 +0200)]
arm: mvebu: timer.c: Explicitly move "init_done" var to data section

As reported by Simon Guinot, commit ade741b3
"arm: mvebu: Call timer_init early before PHY and DDR init" breaks
Kirkwood platforms. As the static variable "init_done" is not
available at that early boot time. This patch moves it to explicitly
to the data section, making it available at that time.

Signed-off-by: Stefan Roese <sr@denx.de>
Reported-by: Simon Guinot <simon.guinot@sequanux.org>
Cc: Luka Perkov <luka.perkov@sartura.hr>
Tested-by: Simon Guinot <simon.guinot@sequanux.org>
9 years agoarm: mvebu: Fix internal register config on A38x
Stefan Roese [Mon, 24 Aug 2015 09:03:50 +0000 (11:03 +0200)]
arm: mvebu: Fix internal register config on A38x

Currently booting on A38x is broken. As the current code tries to detect
the SoC family to disable the MMU for the A38x at runtime. But before the
internal registers are switched to the new location (0xf100.0000), this
runtime detection does not work. As all macros / defines are already
assigned to the new location at 0xf100.0000. But the registers are sill
mapped to the default location at 0xd000.0000.

This patch now makes sure, no such runtime detection is used before
the internal registers are configured to the new location. After this,
the remaining cache cleanup is executed.

Signed-off-by: Stefan Roese <sr@denx.de>
Reported-by: Kevin Smith <kevin.smith@elecsyscorp.com>
Cc: Luka Perkov <luka.perkov@sartura.hr>
9 years agoMerge branch 'master' of git://git.denx.de/u-boot-net
Tom Rini [Wed, 30 Sep 2015 22:51:51 +0000 (18:51 -0400)]
Merge branch 'master' of git://git.denx.de/u-boot-net

9 years agosunxi: add NetConsole by default for Banana Pi/Pro
Bernhard Nortmann [Mon, 14 Sep 2015 13:29:47 +0000 (15:29 +0200)]
sunxi: add NetConsole by default for Banana Pi/Pro

Simon Glass and Joe Hershberger suggested adding at least one
test case for the CONFIG_DM_ETH plus CONFIG_NETCONSOLE options.

This patch enables NetConsole as a default for the "Banana Pi/Pro"
sunxi boards.

(By the nature of this patch it could probably be extended later
to include all sunxi boards using CONFIG_SUNXI_[EG]MAC.)

Signed-off-by: Bernhard Nortmann <bernhard.nortmann@web.de>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
9 years agonet: support NETCONSOLE option via Kconfig
Bernhard Nortmann [Mon, 14 Sep 2015 13:29:46 +0000 (15:29 +0200)]
net: support NETCONSOLE option via Kconfig

This patch introduces CONFIG_NETCONSOLE as an option to the
Kconfig system.

Joe Hershberger pointed out that it may not be entirely free of
problems, as many boards predating the driver model define this
symbol directly via include files. In case they're not properly
migrated, their NetConsole might 'vanish' if they start to use
CONFIG_NET or CONFIG_NETDEVICES.

Signed-off-by: Bernhard Nortmann <bernhard.nortmann@web.de>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
9 years agonet: avoid eth_unregister() call when function is unavailable
Bernhard Nortmann [Mon, 14 Sep 2015 13:29:45 +0000 (15:29 +0200)]
net: avoid eth_unregister() call when function is unavailable

CONFIG_NETCONSOLE causes common/bootm.c to call eth_unregister()
for network device shutdown. However, with CONFIG_DM_ETH this
function is no longer defined.

This is a workaround to avoid the call in that case, and solely
rely on eth_halt(). In case this is insufficient, a proper way
to unregister / remove network devices needs to be implemented.

Signed-off-by: Bernhard Nortmann <bernhard.nortmann@web.de>
Reviewed-by: Simon Glass <sjg@chromium.org>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
9 years agonet: fix netconsole when CONFIG_DM_ETH is set
Bernhard Nortmann [Mon, 14 Sep 2015 13:29:44 +0000 (15:29 +0200)]
net: fix netconsole when CONFIG_DM_ETH is set

This patch uses the eth_is_active() function to work around
issues that prevented compilation with the newer driver model.

Signed-off-by: Bernhard Nortmann <bernhard.nortmann@web.de>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
9 years agonet: expose eth_is_active() function to test network device state
Bernhard Nortmann [Mon, 14 Sep 2015 13:29:43 +0000 (15:29 +0200)]
net: expose eth_is_active() function to test network device state

The previous eth_device struct returned by eth_get_dev() allowed
code to directly query the state member field. However, with
CONFIG_DM_ETH this data gets encapsulated (i.e. private), and
eth_get_dev() returns a udevice struct 'abstraction' instead.

This breaks legacy code relying on the former behaviour - e.g.
netconsole.
(see http://lists.denx.de/pipermail/u-boot/2015-June/216528.html)

The patch introduces a method to retrieve the ethernet device
state in a 'clean' and uniform way, supporting both legacy code
and driver model. The new function eth_is_active() accepts a
device struct pointer and tests it for ETH_STATE_ACTIVE.

Signed-off-by: Bernhard Nortmann <bernhard.nortmann@web.de>
Reviewed-by: Simon Glass <sjg@chromium.org>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
9 years agonet: phy: on phy device create do not initialize link to 1
Mugunthan V N [Thu, 3 Sep 2015 10:20:21 +0000 (15:50 +0530)]
net: phy: on phy device create do not initialize link to 1

Currently when phy device is created the link variable is
initialized to 1 which denoted phy link is already up. On a power
reset there is no issue as phy status register link status will
not be set, so phy auto negotiate will be started. But when a cpu
reset is issued (ex: dra72x-evm) phy's link status bit is already
set which leads to assume that link is already setup in
genphy_update_link() initial check which results in ehternet not
working. So do not assume that link is already up and on phy
device create set link to zero. This is verified on dra72x-evm.

Reported-by: Franklin S Cooper Jr <fcooper@ti.com>
Signed-off-by: Mugunthan V N <mugunthanvnm@ti.com>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
9 years agoMerge git://git.denx.de/u-boot-x86
Tom Rini [Tue, 29 Sep 2015 17:14:21 +0000 (13:14 -0400)]
Merge git://git.denx.de/u-boot-x86

9 years agosunxi: Add generic defconfigs for A33 Q8 tablets with 1024x600 / 800x480 LCD
Hans de Goede [Sun, 20 Sep 2015 23:46:49 +0000 (19:46 -0400)]
sunxi: Add generic defconfigs for A33 Q8 tablets with 1024x600 / 800x480 LCD

The 7" Q8 tablet enclosure is used for a ton of slightly different cheap
chinese tablets. There are some differences in which accelerometer /
wifi is used, but other then that these are all the same from a u-boot /
kernel pov.

When we get to adding accelerometer support the plan is to add some kind
of autodetection and mangle the dt accordingly (likely using the new quirks
mechanism).

For now this is a non issue as we do not yet have accelerometer
support, and in the future, some sort of auto-detect is the way to go
as we cannot expect users to exactly know what is inside their tablet.

The dts[i] files this commit adds are identical to the ones submitted
to the upstream kernel.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Acked-by: Ian Campbell <ijc@hellion.org.uk>
9 years agosunxi: mmc: Fix clk-delay settings
Hans de Goede [Wed, 23 Sep 2015 14:13:10 +0000 (16:13 +0200)]
sunxi: mmc: Fix clk-delay settings

In recent allwinner kernel sources the mmc/sdio clk-delay settings have
been slightly tweaked, and for sun9i they are completely different then
what we are using.

This commit brings us in sync with what allwinner does, fixing problems
accessing sdcards on some A33 devices (and likely others).

For pre sun9i hardware this makes the following changes:
-At 400Khz change the sample delay from 7 to 0 (first introduced in A31 sdk)
-At 50 Mhz change the sample delay from 5 to 4 (first introduced in A23 sdk)
-Above 50 MHz change the out delay from 2 to 1 (first introduced in A20 sdk)

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Acked-by: Ian Campbell <ijc@hellion.org.uk>
9 years agosunxi_nand_spl: Be smarter about where to look for backup u-boot.bin
Hans de Goede [Mon, 31 Aug 2015 14:00:56 +0000 (16:00 +0200)]
sunxi_nand_spl: Be smarter about where to look for backup u-boot.bin

We know when u-boot is written to its own partition, in this case the
layout always is:

eb 0 spl
eb 1 spl-backup
eb 2 u-boot
eb 3 u-boot-backup

eb: erase-block

So if we cannot load u-boot from its primary offset we know exactly where
to look for it.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Acked-by: Ian Campbell <ijc@hellion.org.uk>
9 years agosunxi: add "fel" boot target
Bernhard Nortmann [Thu, 17 Sep 2015 16:52:53 +0000 (18:52 +0200)]
sunxi: add "fel" boot target

This patch makes use of the previous changes to add a new "fel" boot
target for sunxi boards.

When booting via FEL, it's often desirable to work around the absence
of other (usable) boot devices - or to be able to override them,
deviating from the standard boot sequence. To achieve this, the "fel"
boot target gets the highest priority, but won't actually do anything
unless certain criteria are met.

The "bootcmd_fel" implementation proposed here first tests if an actual
FEL boot takes place (using the "fel_booted" env var), and secondly
checks that "fel_scriptaddr" was set (originating from the 'loader',
i.e. the sunxi-tools fel utility). If both checks pass, then it will
try to execute the boot script (boot.scr) at the given address. In case
of an error (e.g. an invalid image), the source command might return
"false", causing "distro_bootcmd" to proceed with the next boot target.

Signed-off-by: Bernhard Nortmann <bernhard.nortmann@web.de>
Acked-by: Siarhei Siamashka <siarhei.siamashka@gmail.com>
Acked-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
9 years agosunxi: retrieve FEL-provided values to environment variables
Bernhard Nortmann [Thu, 17 Sep 2015 16:52:52 +0000 (18:52 +0200)]
sunxi: retrieve FEL-provided values to environment variables

This patch extends the misc_init_r() function on sunxi boards
to test for the presence of a suitable "sunxi" SPL header. If
found, and the loader ("fel" utility) provided a non-zero value
for the boot.scr address, then the corresponding environment
variable fel_scriptaddr gets set.

misc_init_r() also sets (or clears) the "fel_booted" variable depending
on the active boot device, using the same logic as spl_boot_device().

The goal is to provide sufficient information (within the U-Boot
environment) to make intelligent decisions on how to continue the boot
process, allowing specific customizations for the "FEL boot" case.

Signed-off-by: Bernhard Nortmann <bernhard.nortmann@web.de>
Acked-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
9 years agosunxi: (mksunxiboot) signature to indicate "sunxi" SPL variant
Bernhard Nortmann [Thu, 17 Sep 2015 16:52:51 +0000 (18:52 +0200)]
sunxi: (mksunxiboot) signature to indicate "sunxi" SPL variant

This patch follows up on a discussion of ways to improve support
for the sunxi FEL ("USB boot") mechanism, especially with regard
to boot scripts, see:
https://groups.google.com/d/msg/linux-sunxi/wBEGUoLNRro/rHGq6nSYCQAJ

The idea is to convert the (currently unused) "pad" bytes in the
SPL header into an area where data can be passed to U-Boot. To
do this safely, we have to make sure that we're actually using
our "sunxi" flavor of the SPL, and not the Allwinner boot0.

The modified mksunxiboot introduces a special signature to the
SPL header in place of the "pub_head_size" field. This can be
used to reliably distinguish between compatible versions of sunxi
SPL and anything else (older variants or Allwinner's boot0).

Signed-off-by: Bernhard Nortmann <bernhard.nortmann@web.de>
Acked-by: Siarhei Siamashka <siarhei.siamashka@gmail.com>
Acked-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
9 years agosunxi: move SPL-related definitions to platform-specific include
Bernhard Nortmann [Thu, 17 Sep 2015 16:52:50 +0000 (18:52 +0200)]
sunxi: move SPL-related definitions to platform-specific include

The sunxi platform currently doesn't seem to make any use of the
asm/arch-sunxi/spl.h file. This patch moves some declarations from
tools/mksunxiboot.c into it.

This enables us to reuse those definitions when extending the
sunxi board code (boards/sunxi/boards.c).

Signed-off-by: Bernhard Nortmann <bernhard.nortmann@web.de>
Acked-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
9 years agosunxi: Simplify spl board_init_f function
Hans de Goede [Sun, 13 Sep 2015 13:33:34 +0000 (15:33 +0200)]
sunxi: Simplify spl board_init_f function

crt0.S will both memset the bss sectioan and call board_init_r for us,
so there is no need to do either ourselves.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Acked-by: Ian Campbell <ijc@hellion.org.uk>
9 years agosunxi: Tweak various memory addresses
Hans de Goede [Sun, 13 Sep 2015 15:16:54 +0000 (17:16 +0200)]
sunxi: Tweak various memory addresses

For the upcoming nand support we need a bigger heap, esp. ubi[fs] uses
quite a bit of memory, increase the heap size to 64 MB.

Our video code returns unused reserved framebuffer memory to the kernel
before booting it. Drop the #ifdef-ery and simply always reserve 16 MB.

Adjust bootm_size for the above changes.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Acked-by: Ian Campbell <ijc@hellion.org.uk>
9 years agosunxi: sunxi-common.h cleanup
Hans de Goede [Sun, 13 Sep 2015 15:29:33 +0000 (17:29 +0200)]
sunxi: sunxi-common.h cleanup

Move some #define-s around from one #ifdef block to another to
reduce the number of #ifdef blocks (note this causes no functional
changes even though the conditions are not always exactly the same)
and move generic #include statements to the top.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Acked-by: Ian Campbell <ijc@hellion.org.uk>
9 years agosunxi: Rename A10s-Wobo-i5_defconfig to Wobo_i5_defconfig
Hans de Goede [Sat, 12 Sep 2015 10:42:50 +0000 (12:42 +0200)]
sunxi: Rename A10s-Wobo-i5_defconfig to Wobo_i5_defconfig

We only prefix the board defconfig name with the SoC if the SoC is part
of the official board-name, such as with Olimex OLinuxIno boards, for the
Wobo i5 this is not the case so remove the A10s prefix from the defconfig
filename.

Also fix the double listing of A10s-OLinuXino-M_defconfig in MAINTAINERS
which the original Wobo i5 addition commit introduced.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
9 years agox86: fsp: Report correct number of E820 table entries
Bin Meng [Mon, 28 Sep 2015 09:11:59 +0000 (02:11 -0700)]
x86: fsp: Report correct number of E820 table entries

The logic to calculate the number of E820 table entries is wrong
when walking through the FSP HOB tables. Fix it.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Tested-by: Jian Luo <jian.luo4@boschrexroth.de>
Acked-by: Simon Glass <sjg@chromium.org>
9 years agox86: chromebook_link: Expand early malloc() memory
Simon Glass [Tue, 8 Sep 2015 23:52:45 +0000 (17:52 -0600)]
x86: chromebook_link: Expand early malloc() memory

Now that PCI bridges are probed before relocation we need additional memory.
Each PCI bridge takes 240 bytes at present since it uses the same uclass as
the PCI controller. Probably we should split this out so that bridges have
their own uclass.

Expand the memory on link so that it works correctly.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
9 years agoPrepare v2015.10-rc4 v2015.10-rc4
Tom Rini [Mon, 28 Sep 2015 20:57:42 +0000 (16:57 -0400)]
Prepare v2015.10-rc4

Signed-off-by: Tom Rini <trini@konsulko.com>
9 years agommc: dw_mmc: Increase timeout to 4 minutes (as in Linux kernel)
Ɓukasz Majewski [Fri, 25 Sep 2015 16:25:25 +0000 (18:25 +0200)]
mmc: dw_mmc: Increase timeout to 4 minutes (as in Linux kernel)

The commit: d9dbb97be0e4a550457aec5f11afefb446169c90
"mmc: dw_mmc: Zap endless timeout" removed endless loop waiting for end
of dw mmc transfer.

For some workloads - dfu test @ Odroid XU3 (sending 8MiB file) -
and SD cards (e.g. MicroSD Kingston 4GiB, Adata 4GiB)
the default timeout is to short.

The new value - 4 minutes (240 seconds) - is the same as the one used in
Linux kernel driver. Such fix should be good enough until we come up
with better fix for this issue.

Signed-off-by: Lukasz Majewski <l.majewski@samsung.com>
Cc: Marek Vasut <marex@denx.de>
Cc: Pantelis Antoniou <panto@antoniou-consulting.com>
Cc: Tom Rini <trini@konsulko.com>
Tested-by: Przemyslaw Marczak <p.marczak@samsung.com>
9 years agotools: moveconfig: Update the URL for nds32 toolchain
Bin Meng [Fri, 25 Sep 2015 08:22:39 +0000 (01:22 -0700)]
tools: moveconfig: Update the URL for nds32 toolchain

Give a full URL for a working nds32 toolchain for U-Boot.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Reviewed-by: Masahiro Yamada <yamada.masahiro@socionext.com>
9 years agotools: gen_eth_addr: add getpid() to time(0) to avoid duplicated seed
Josh Wu [Wed, 16 Sep 2015 10:21:04 +0000 (18:21 +0800)]
tools: gen_eth_addr: add getpid() to time(0) to avoid duplicated seed

As 'time(0) | getpid()' will have a lot of duplicated value. It is not a
expected behavior. We expect different value for the seed when when run
it in many times.

So this patch will left shift the getpid() and add to time(0). That
avoid duplicated value.

Test command is like:
  % RUN=0; while [ $RUN -lt 10000 ]; do
  tools/gen_eth_addr; RUN=$(($RUN+1)); done | sort | uniq | wc -l
  10000

This patch is incorporated with suggestions made by Wolfgang Denk and Andreas
Bießmann. Thanks them a lot.

Signed-off-by: Josh Wu <josh.wu@atmel.com>
Acked-by: Andreas Bießmann <andreas.devel@googlemail.com>
Acked-by: Wolfgang Denk <wd@denx.de>
Tested-by: Wolfgang Denk <wd@denx.de>
9 years agoarm: Drop old non-generic-board code
Simon Glass [Sat, 12 Sep 2015 17:50:10 +0000 (11:50 -0600)]
arm: Drop old non-generic-board code

This code is no-longer used. Drop it.

Signed-off-by: Simon Glass <sjg@chromium.org>
Acked-by: Andreas Bießmann <andreas.devel@gmail.com>
9 years agoarm: Remove wireless_space board
Simon Glass [Sat, 12 Sep 2015 17:50:09 +0000 (11:50 -0600)]
arm: Remove wireless_space board

This board has not been converted to generic board by the deadline.
Remove it.

Signed-off-by: Simon Glass <sjg@chromium.org>
9 years agoarm: Remove da830evm board
Simon Glass [Sat, 12 Sep 2015 17:50:08 +0000 (11:50 -0600)]
arm: Remove da830evm board

This board has not been converted to generic board by the deadline.
Remove it.

Signed-off-by: Simon Glass <sjg@chromium.org>
9 years agoARM: hikey: Adjust SDRAM_1_SIZE to 0x3EFFFFFF
Peter Griffin [Thu, 10 Sep 2015 20:55:18 +0000 (21:55 +0100)]
ARM: hikey: Adjust SDRAM_1_SIZE to 0x3EFFFFFF

DRAM region 0x3f000000 - 0x3fffffff is reserved for OP-TEE. Touching
0x3f000000 memory location from unsecure world causes the board
to hang.

Signed-off-by: Peter Griffin <peter.griffin@linaro.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
9 years agoARM: hikey: hi6220: Migrate over to DM_SERIAL and use UART3 by default.
Peter Griffin [Thu, 10 Sep 2015 20:55:17 +0000 (21:55 +0100)]
ARM: hikey: hi6220: Migrate over to DM_SERIAL and use UART3 by default.

Use DM for the pl01x serial driver on hikey. Also allow UART0 or
UART3 to be chosen via Kconfig.

By default we now output to UART3 as the latest version of ATF outputs
to this UART. Also UART3 comes out on the LS connector, as opposed to
UART0 which goes to a unpopulated header.

As part of this change we also enable CONFIG_BOARD_EARLY_INIT_F and
call the pinmux configuration code for the UART. Before we were
relying on ATF having already configured the pin configuration.

NB: Upstream Linux kernel doesn't yet support UART3, so serial console
will still be output on UART0 when booting a upstream kernel.

Signed-off-by: Peter Griffin <peter.griffin@linaro.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
9 years agoARM: hikey: Select DM, DM_GPIO from Kconfig
Peter Griffin [Thu, 10 Sep 2015 20:55:16 +0000 (21:55 +0100)]
ARM: hikey: Select DM, DM_GPIO from Kconfig

Most platforms enable these options from Kconfig rather
than the configs header file.

Signed-off-by: Peter Griffin <peter.griffin@linaro.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
9 years agoARM: hikey: Remove resetting gd->flags in board_init()
Peter Griffin [Thu, 10 Sep 2015 20:55:15 +0000 (21:55 +0100)]
ARM: hikey: Remove resetting gd->flags in board_init()

This causes exceptions and other strange behaviour
when enabling CONFIG_SYS_MALLOC_F_LEN which is required to
migrate the serial driver over to DM_SERIAL.

As GD_FLG_FULL_MALLOC_INIT flag gets reset, after relocation
we don't end up using the full malloc which ultimately ends up
causing a synchronus abort.

Signed-off-by: Peter Griffin <peter.griffin@linaro.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
9 years agoARM: hi6220: Add UART0 and UART3 base addresses
Peter Griffin [Thu, 10 Sep 2015 20:55:14 +0000 (21:55 +0100)]
ARM: hi6220: Add UART0 and UART3 base addresses

Signed-off-by: Peter Griffin <peter.griffin@linaro.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
9 years agoARM: hikey: Use linux/sizes.h for malloc size
Peter Griffin [Thu, 10 Sep 2015 20:55:13 +0000 (21:55 +0100)]
ARM: hikey: Use linux/sizes.h for malloc size

Use the #defines in linux/sizes for malloc size as it is
more readable.

Signed-off-by: Peter Griffin <peter.griffin@linaro.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
9 years agoARM: hikey: Add ATF makefile referenced by README
Peter Griffin [Thu, 10 Sep 2015 20:55:12 +0000 (21:55 +0100)]
ARM: hikey: Add ATF makefile referenced by README

Rather than relying on an external URL in the README
include the Makefile in the hikey directory.

Signed-off-by: Peter Griffin <peter.griffin@linaro.org>
9 years agoARM: hikey: Update README with various corrections
Peter Griffin [Thu, 10 Sep 2015 20:55:11 +0000 (21:55 +0100)]
ARM: hikey: Update README with various corrections

The README had a few mistakes, and one of the URL's
had changed. Also update the boot log with the latest
boot trace from ATF, which now includes the mcuimage.bin.

Signed-off-by: Peter Griffin <peter.griffin@linaro.org>
9 years agomalloc_simple: fix malloc_ptr calculation
Philipp Rosenberger [Tue, 8 Sep 2015 10:41:24 +0000 (12:41 +0200)]
malloc_simple: fix malloc_ptr calculation

The gd->malloc_ptr and the gd->malloc_limit are offsets to gd->malloc_base.
But the addr variable contains the absolute address. The new_ptr must be:
addr + bytes - gd->malloc_base.

Signed-off-by: Philipp Rosenberger <ilu@linutronix.de>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
9 years agoam437x_evm: increase phy autoneg timeout
Sekhar Nori [Mon, 28 Sep 2015 10:28:15 +0000 (15:58 +0530)]
am437x_evm: increase phy autoneg timeout

When AM437x EVM is connected to Gigabit switch, it takes
more time to finish auto-negotiation than on a 10/100 switch.

The default 4 second limit times-out more often than not. This is
observed when testing with a D-Link DGS-1008A desktop switch.

Increase the auto-negotiation time-out for AM437x EVM to handle
this case.

Signed-off-by: Sekhar Nori <nsekhar@ti.com>
9 years agoKconfig: fix typo in CONFIG_FIT description
Igor Grinberg [Wed, 26 Aug 2015 14:54:45 +0000 (17:54 +0300)]
Kconfig: fix typo in CONFIG_FIT description

Fix typo in CONFIG_FIT description - remove the accidentially added
redundand 'the'.

Signed-off-by: Igor Grinberg <grinberg@compulab.co.il>
Cc: Masahiro Yamada <yamada.masahiro@socionext.com>
Cc: Simon Glass <sjg@chromium.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
9 years agoconfigs: remove remnants of CONFIG_SYS_NAND_QUIET_TEST
Igor Grinberg [Wed, 26 Aug 2015 14:54:44 +0000 (17:54 +0300)]
configs: remove remnants of CONFIG_SYS_NAND_QUIET_TEST

The config option has been removed by one of the syncs with the Linux
mainline MTD subsystem:
ff94bc40af (mtd, ubi, ubifs: resync with Linux-3.14)
It has been left inside the config files. Currently does not look to
serve any purpose, so remove it now from all the configs.

Signed-off-by: Igor Grinberg <grinberg@compulab.co.il>
Cc: Matthias Fuchs <matthias.fuchs@esd-electronics.com>
Cc: Stefan Roese <sr@denx.de>
Cc: "Albert ARIBAUD (3ADEV)" <albert.aribaud@3adev.fr>
Cc: Peter Barada <peter.barada@logicpd.com>
Cc: Steve Sakoman <sakoman@gmail.com>
Cc: Peter Tyser <ptyser@xes-inc.com>
Cc: Joe Hershberger <joe.hershberger@ni.com>
Cc: Simon Glass <sjg@chromium.org>
Acked-by: Stefan Roese <sr@denx.de>
9 years agoReorder defconfigs with 'savedefconfig'
Bin Meng [Mon, 28 Sep 2015 12:14:15 +0000 (05:14 -0700)]
Reorder defconfigs with 'savedefconfig'

Some boards' defconfigs are disordered. Reorder them.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
9 years agoMerge branch 'master' of git://www.denx.de/git/u-boot-imx
Tom Rini [Thu, 24 Sep 2015 16:28:10 +0000 (12:28 -0400)]
Merge branch 'master' of git://denx.de/git/u-boot-imx

9 years agoMerge git://git.denx.de/u-boot-socfpga
Tom Rini [Thu, 24 Sep 2015 16:28:06 +0000 (12:28 -0400)]
Merge git://git.denx.de/u-boot-socfpga

9 years agoMerge branch 'master' of git://git.denx.de/u-boot-uniphier
Tom Rini [Thu, 24 Sep 2015 16:28:02 +0000 (12:28 -0400)]
Merge branch 'master' of git://git.denx.de/u-boot-uniphier

9 years agoARM: dts: uniphier: use SPDX-License-Identifier
Masahiro Yamada [Thu, 24 Sep 2015 15:16:44 +0000 (00:16 +0900)]
ARM: dts: uniphier: use SPDX-License-Identifier

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
9 years agoARM: uniphier: fix init page table for ProXstream2/PH1-LD6b USB boot
Masahiro Yamada [Mon, 21 Sep 2015 15:27:42 +0000 (00:27 +0900)]
ARM: uniphier: fix init page table for ProXstream2/PH1-LD6b USB boot

Currently, the USB boot mode is supported by an external loader and
U-boot proper image is put on the section 0.  This commit allows
access there.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
9 years agoARM: uniphier: add ProXstream2 and PH1-LD6b support
Masahiro Yamada [Mon, 21 Sep 2015 15:27:41 +0000 (00:27 +0900)]
ARM: uniphier: add ProXstream2 and PH1-LD6b support

The DDR SDRAM initialization code has not been mainlined yet, but
U-Boot proper should work.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
9 years agoARM: uniphier: add PH1-Pro5 support
Masahiro Yamada [Mon, 21 Sep 2015 15:27:40 +0000 (00:27 +0900)]
ARM: uniphier: add PH1-Pro5 support

The DDR SDRAM initialization code has not been mainlined yet, but
U-Boot proper should work.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
9 years agoARM: uniphier: allow to enable multiple SoCs
Masahiro Yamada [Mon, 21 Sep 2015 15:27:39 +0000 (00:27 +0900)]
ARM: uniphier: allow to enable multiple SoCs

Before this commit, the Kconfig menu in mach-uniphier only allowed us
to choose one SoC to be compiled.  Each SoC has its own defconfig file
for the build-test coverage.  Consequently, some defconfig files are
duplicated with only the difference in CONFIG_DEFAULT_DEVICE_TREE and
CONFIG_{SOC_NAME}=y.

Now, most of board-specific parameters have been moved to device trees,
so it makes sense to include init code of multiple SoCs into a single
image as long as the SoCs have similar architecture.  In fact, some
SoCs of UniPhier family are very similar:
 - PH1-LD4 and PH1-sLD8
 - PH1-LD6b and ProXstream2 (will be added in the upcoming commit)

This commit will be helpful to merge some defconfig files for better
maintainability.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
9 years agoARM: uniphier: remove kernel parameter settings from environment
Masahiro Yamada [Mon, 21 Sep 2015 15:27:38 +0000 (00:27 +0900)]
ARM: uniphier: remove kernel parameter settings from environment

Currently, console=ttyS0 is hard-coded in CONFIG_EXTRA_ENV_SETTINGS
and it replaces the bootargs in the chosen node of the device tree
passed to the kernel.  This is not preferable because I am going to
add some boards whose console is not ttyS0.

Drop bootargs settings from U-Boot's environment and use the one in
device tree by default.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
9 years agoARM: uniphier: unify low-level debug init code
Masahiro Yamada [Mon, 21 Sep 2015 15:27:37 +0000 (00:27 +0900)]
ARM: uniphier: unify low-level debug init code

Move init code of low-level debug into a single file.
This is helpful to create an image that runs on multiple SoCs.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
9 years agoARM: uniphier: fix glitch signal problem for low-level debug
Masahiro Yamada [Mon, 21 Sep 2015 15:27:36 +0000 (00:27 +0900)]
ARM: uniphier: fix glitch signal problem for low-level debug

Currently, IECTRL is enabled after pin-mux settings for the low-level
debugging for PH1-LD4 and PH1-sLD8.  While IECTRL is disabled, input
signals are pulled-down, i.e. glitch signal (Low to High transition)
problem occurs if pin-mux is set up first.  As a result, one invalid
character is input to the UART block and the auto-boot counting is
terminated immediately.

The correct initialization procedure is:
 [1] Enable IECTRL (if IECTRL exists for the pins)
 [2] Set up pin-muxing
 [3] Deassert the reset of the hardware block

Currently, the low-level debugging is working for PH1-sLD3 and
PH1-Pro4, but just in case, follow the sequence for all the SoCs.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
9 years agoARM: uniphier: delete unneeded input enable for low-level debug
Masahiro Yamada [Mon, 21 Sep 2015 15:27:35 +0000 (00:27 +0900)]
ARM: uniphier: delete unneeded input enable for low-level debug

The UART I/O ports for PH1-Pro4 has no input enable controlling.
This code is useless.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
9 years agoARM: uniphier: rename CONFIG_MACH_* to CONFIG_ARCH_UNIPHIER_*
Masahiro Yamada [Mon, 21 Sep 2015 15:27:34 +0000 (00:27 +0900)]
ARM: uniphier: rename CONFIG_MACH_* to CONFIG_ARCH_UNIPHIER_*

I want these prefixed with CONFIG_ARCH_UNIPHIER_ to clarify
they belong to UniPhier SoC family.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
9 years agoARM: uniphier: allow to disable CONFIG_MICRO_SUPPORT_CARD
Masahiro Yamada [Mon, 21 Sep 2015 15:27:33 +0000 (00:27 +0900)]
ARM: uniphier: allow to disable CONFIG_MICRO_SUPPORT_CARD

Without this, build fails if CONFIG_MICRO_SUPPORT_CARD is disabled.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
9 years agoARM: uniphier: move CONFIG_SUPPORT_CARD_* macros to local file
Masahiro Yamada [Mon, 21 Sep 2015 15:27:32 +0000 (00:27 +0900)]
ARM: uniphier: move CONFIG_SUPPORT_CARD_* macros to local file

It is no longer necessary to define CONFIG_SUPPORT_CARD_* globally.
Move them to a C file as local macros.  Also, rename the C file.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
9 years agoARM: uniphier: refactor LED function
Masahiro Yamada [Mon, 21 Sep 2015 15:27:31 +0000 (00:27 +0900)]
ARM: uniphier: refactor LED function

The macro, led_write(), is now only used in C sources.  There is no
more reason to keep the tricky assembly macro.  Replace it with a
new C function led_puts().

Also, rename board.h to micro-support-card.h.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
9 years agoARM: uniphier: remove useless wrapper functions
Masahiro Yamada [Mon, 21 Sep 2015 15:27:30 +0000 (00:27 +0900)]
ARM: uniphier: remove useless wrapper functions

The wrapper functions, uniphier_board_*, are just making function
calls complex.  Remove them.

Also, use empty inline functions in case CONFIG_MICRO_SUPPORT_CARD
is disabled, so that prototype checking works.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
9 years agoARM: uniphier: remove unused header file
Masahiro Yamada [Mon, 21 Sep 2015 15:27:29 +0000 (00:27 +0900)]
ARM: uniphier: remove unused header file

This has been unused since commit f4e190e317b8 ("ARM: uniphier:
enable SPL_OF_CONTROL").

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
9 years agoARM: uniphier: parse device tree to determine DRAM base and size
Masahiro Yamada [Fri, 11 Sep 2015 11:17:49 +0000 (20:17 +0900)]
ARM: uniphier: parse device tree to determine DRAM base and size

Device tree specifies the available memory ranges in its "/memory"
node.  Use it to simplify the CONFIG defines.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
9 years agoARM: uniphier: remove ifdef CONFIG_{SOC} conditionals from sg-regs.h
Masahiro Yamada [Fri, 11 Sep 2015 11:17:48 +0000 (20:17 +0900)]
ARM: uniphier: remove ifdef CONFIG_{SOC} conditionals from sg-regs.h

To achieve the complete run-time configuration by device trees, ifdef
conditionals in header files are not preferable.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
9 years agoARM: uniphier: change the external bus address mapping
Masahiro Yamada [Fri, 11 Sep 2015 11:17:47 +0000 (20:17 +0900)]
ARM: uniphier: change the external bus address mapping

In UniPhier SoCs before ProXstream2 and PH1-LD6b, two address spaces
 0x00000000 - 0x0fffffff
 0x40000000 - 0x4fffffff
are both mapped to the external bus (also called system bus),
so either was OK.

In the newest two SoCs, the former (0x00000000 - 0x0fffffff) is
assigned for the serial NOR interface.

Going forward, use the latter for the external bus.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
9 years agoARM: uniphier: enable setexpr command
Masahiro Yamada [Fri, 11 Sep 2015 11:17:46 +0000 (20:17 +0900)]
ARM: uniphier: enable setexpr command

This command will be used in the next commit to calculate
base-offseted addresses.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
9 years agoARM: uniphier: drop DCC micro support card support
Masahiro Yamada [Fri, 11 Sep 2015 11:17:45 +0000 (20:17 +0900)]
ARM: uniphier: drop DCC micro support card support

Historically (for compatibility with very old platforms), two
different types of micro support cards have been used with the
UniPhier SoC development boards.  It has been painful to maintain
both.  Having one of them is enough.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
9 years agoARM: uniphier: drop ad-hoc input enable settings
Masahiro Yamada [Fri, 11 Sep 2015 11:17:44 +0000 (20:17 +0900)]
ARM: uniphier: drop ad-hoc input enable settings

These input enable settings are handled by the pinctrl drivers.

Because the external bus pins are input-enabled by default, on-board
devices such as LED still work fine even with this delayed input
enabling.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
9 years agoARM: uniphier: drop ad-hoc early pin-muxing settings
Masahiro Yamada [Fri, 11 Sep 2015 11:17:43 +0000 (20:17 +0900)]
ARM: uniphier: drop ad-hoc early pin-muxing settings

As the UniPhier serial driver had already switched to Drive Model
and the pinctrl drivers are now enabled, these pin-muxing settings
are properly handled by the pinctrl drivers.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
9 years agoARM: uniphier: enable PINCTRL and SPL_PINCTRL
Masahiro Yamada [Fri, 11 Sep 2015 11:17:42 +0000 (20:17 +0900)]
ARM: uniphier: enable PINCTRL and SPL_PINCTRL

Now, UniPhier SoCs are ready to enable pinctrl drivers.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
9 years agoARM: dts: uniphier: prepare device trees to use pinctrl in SPL
Masahiro Yamada [Fri, 11 Sep 2015 11:17:41 +0000 (20:17 +0900)]
ARM: dts: uniphier: prepare device trees to use pinctrl in SPL

Add "u-boot,dm-pre-reloc" for device nodes we want in SPL DTB
(spl/u-boot-spl.dtb).

The "soc" node (this is simple-bus node) also needs the property
to bind the pinctrl node located under it.

I am collecting this U-Boot specific hack to the bottom of board
DTS rather than inserting "u-boot,dm-pre-reloc" into SoC DTSI.
My goal is to sync DTSI with Linux for easier maintenance.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
9 years agoARM: uniphier: increase CONFIG_SYS_MALLOC_F_LEN to bind all nodes
Masahiro Yamada [Fri, 11 Sep 2015 11:17:40 +0000 (20:17 +0900)]
ARM: uniphier: increase CONFIG_SYS_MALLOC_F_LEN to bind all nodes

In the next commit, I will add "u-boot,dm-pre-reloc" to the "soc"
(simple-bus) nodes in UniPhier device trees.  But, before that,
CONFIG_SYS_MALLOC_F_LEN must be increased.

Adding "u-boot,dm-pre-reloc" to a simple-bus node causes it to bind
all of its child nodes.  (See simple_bus_post_bind() function)

Actually, I want only UART0 and pinctrl to be bound in SPL and before
relocation in U-boot proper.  But, with "u-boot,dm-pre-reloc" in the
simple-bus node, all the other unwanted nodes are also bound.  The
default value for CONFIG_SYS_MALLOC_F_LEN, 0x400, is not enough for
that.  Increase the pre-reloc malloc size to 0x2000, hoping the root
cause will be fixed later.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
9 years agoARM: uniphier: enable simple-bus driver for SPL
Masahiro Yamada [Fri, 11 Sep 2015 11:17:39 +0000 (20:17 +0900)]
ARM: uniphier: enable simple-bus driver for SPL

In UniPhier device trees, pinctrl device nodes are located under the
simple-bus (AMBA).

This is needed to bind pinctrl devices in SPL.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>