oweals/u-boot.git
6 years agospl: add option to disable SPL banner output
Anatolij Gustschin [Thu, 25 Jan 2018 17:45:22 +0000 (18:45 +0100)]
spl: add option to disable SPL banner output

Selecting this option will reduce SPL boot time by approx. 6 ms
(e. g. with 70 bytes long banner string at 115200 baud).

Signed-off-by: Anatolij Gustschin <agust@denx.de>
Tested-by: Lukasz Majewski <lukma@denx.de>
Reviewed-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
6 years agobcm2835_pinctrl: Probe pre-reloc
Alexander Graf [Thu, 25 Jan 2018 11:05:56 +0000 (12:05 +0100)]
bcm2835_pinctrl: Probe pre-reloc

The serial drivers now depend on the pinctrl driver to determine whether
they are enabled. That means if a serial device wants to be used pre-reloc,
we also need the pinctrl device pre-reloc.

Adapt the pinctrl driver as well as dts overlay accordingly.

Signed-off-by: Alexander Graf <agraf@suse.de>
6 years agobcm2835_pl011_serial: Add BCM2835 specific serial driver
Alexander Graf [Thu, 25 Jan 2018 11:05:55 +0000 (12:05 +0100)]
bcm2835_pl011_serial: Add BCM2835 specific serial driver

On bcm2835 we need to ensure we only access serial devices that are
muxed to the serial output pins of the pin header. To achieve this
for the pl011 device, add a bcm2835 specific pl011 wrapper device
that does this check but otherwise behaves like a pl011 device.

Signed-off-by: Alexander Graf <agraf@suse.de>
6 years agoMAINTAINERS: Take over BCM2835 maintainership
Alexander Graf [Thu, 25 Jan 2018 11:05:54 +0000 (12:05 +0100)]
MAINTAINERS: Take over BCM2835 maintainership

It seems as if I have more interest in BCM2835 support than most others,
so I'll bite the bullet and declare myself maintainer. It'd be a shame
to leave that platform orphaned.

Signed-off-by: Alexander Graf <agraf@suse.de>
6 years agobcm2835_mu_serial: Convert to Kconfig
Alexander Graf [Thu, 25 Jan 2018 11:05:53 +0000 (12:05 +0100)]
bcm2835_mu_serial: Convert to Kconfig

Setting config options using headers is deprecated. This patch converts
the BCM2835 Mini-UART to Kconfig.

Signed-off-by: Alexander Graf <agraf@suse.de>
6 years agopl01x: Convert CONFIG_PL01X_SERIAL to Kconfig
Alexander Graf [Thu, 25 Jan 2018 11:05:52 +0000 (12:05 +0100)]
pl01x: Convert CONFIG_PL01X_SERIAL to Kconfig

We want to use Kconfig logic to depend on whether pl01x devices
are built in, so let's convert their inclusion selection to Kconfig.

This round goes to pl01x.

Signed-off-by: Alexander Graf <agraf@suse.de>
6 years agopl011: Convert CONFIG_PL011_SERIAL to Kconfig
Alexander Graf [Thu, 25 Jan 2018 11:05:51 +0000 (12:05 +0100)]
pl011: Convert CONFIG_PL011_SERIAL to Kconfig

We want to use Kconfig logic to depend on whether pl01x devices
are built in, so let's convert their inclusion selection to Kconfig.

This round goes to pl011.

Signed-off-by: Alexander Graf <agraf@suse.de>
6 years agopl010: Convert CONFIG_PL010_SERIAL to Kconfig
Alexander Graf [Thu, 25 Jan 2018 11:05:50 +0000 (12:05 +0100)]
pl010: Convert CONFIG_PL010_SERIAL to Kconfig

We want to use Kconfig logic to depend on whether pl01x devices
are built in, so let's convert their inclusion selection to Kconfig.

This round goes to pl010.

Signed-off-by: Alexander Graf <agraf@suse.de>
6 years agopl01x: Convert to dev_read
Alexander Graf [Thu, 25 Jan 2018 11:05:49 +0000 (12:05 +0100)]
pl01x: Convert to dev_read

The fdtdec API is deprecated, convert the pl010 and pl011 devices to
use the dev_read API instead.

Signed-off-by: Alexander Graf <agraf@suse.de>
6 years agoserial_bcm283x_mu: Fail loading if not muxed
Alexander Graf [Thu, 25 Jan 2018 11:05:48 +0000 (12:05 +0100)]
serial_bcm283x_mu: Fail loading if not muxed

The bcm283x mini-uart is only really usable as U-Boot serial output
when it is muxed to the UART pins of the RPi pin header.

So fail probing in case it is not muxed correctly, as in that case
firmware did not initialize it properly either.

Signed-off-by: Alexander Graf <agraf@suse.de>
6 years agoserial_bcm283x_mu: Always skip init
Alexander Graf [Thu, 25 Jan 2018 11:05:47 +0000 (12:05 +0100)]
serial_bcm283x_mu: Always skip init

The serial initialization doesn't always quite work for me, so let's
always skip it for now. We know that firmware on the RPi initializes
us properly already.

Signed-off-by: Alexander Graf <agraf@suse.de>
6 years agoserial_bcm283x_mu: Convert to dev_read
Alexander Graf [Thu, 25 Jan 2018 11:05:46 +0000 (12:05 +0100)]
serial_bcm283x_mu: Convert to dev_read

The fdtdec API got deprecated in favor of dev_read calls.
Use those instead.

Signed-off-by: Alexander Graf <agraf@suse.de>
6 years agorpi: Determine PL011/Mini-UART availability at runtime
Alexander Graf [Thu, 25 Jan 2018 11:05:45 +0000 (12:05 +0100)]
rpi: Determine PL011/Mini-UART availability at runtime

Firmware on the Raspberry Pi family of devices can dynamically configure either
the PL011, Mini-UART or no device at all to be routed to the user accessible
UART pins.

That means we need to always include both drivers, because we can never be sure
which of the two serial devices firmware actually chooses to use.

Signed-off-by: Alexander Graf <agraf@suse.de>
6 years agoserial: bcm283x_mu: Remove support for post-init disabling
Alexander Graf [Thu, 25 Jan 2018 11:05:44 +0000 (12:05 +0100)]
serial: bcm283x_mu: Remove support for post-init disabling

We are switching to a model where a serial device doesn't even get probed when
it's not muxed properly, so we don't need device specific disabling
functionality anymore.

Signed-off-by: Alexander Graf <agraf@suse.de>
6 years agorpi: Remove runtime disabling support for serial
Alexander Graf [Thu, 25 Jan 2018 11:05:43 +0000 (12:05 +0100)]
rpi: Remove runtime disabling support for serial

We are switching to a model where our board file can directly fail probing
of serial devices when they're not usable, so remove the current runtime
hack we have.

Signed-off-by: Alexander Graf <agraf@suse.de>
6 years agoserial: Use next serial device if probing fails
Alexander Graf [Thu, 25 Jan 2018 11:05:42 +0000 (12:05 +0100)]
serial: Use next serial device if probing fails

Currently our serial device search chokes on the fact that the serial
probe function could fail. If it does, instead of searching for the next
usable serial device, it just quits.

This patch changes the fallback logic so that even when a serial device
was not probed correctly, we just try the next ones until we find one that
works.

Signed-off-by: Alexander Graf <agraf@suse.de>
Reviewed-by: Simon Glass <sjg@chromium.org>
6 years agoam33xx: board: Call spl_early_init() to support sdram_init()
Faiz Abbas [Wed, 24 Jan 2018 09:14:49 +0000 (14:44 +0530)]
am33xx: board: Call spl_early_init() to support sdram_init()

With driver model enabled in SPL, sdram_init() requires device tree
and malloc to be initialized.
Therefore call spl_early_init() in early_system_init().

Signed-off-by: Faiz Abbas <faiz_abbas@ti.com>
Reviewed-by: Lokesh Vutla <lokeshvutla@ti.com>
6 years agoarm: add support for PDU001
Felix Brack [Tue, 23 Jan 2018 17:27:22 +0000 (18:27 +0100)]
arm: add support for PDU001

This patch adds support for the PDU001 board.

Signed-off-by: Felix Brack <fb@ltec.ch>
Reviewed-by: Tom Rini <trini@konsulko.com>
6 years agommc: Add bcm2835 sdhost controller
Alexander Graf [Tue, 23 Jan 2018 17:05:22 +0000 (18:05 +0100)]
mmc: Add bcm2835 sdhost controller

The BCM2835 family of SoCs has 2 different SD controllers: One based on
the SDHCI spec and a custom, home-grown one.

This patch implements a driver for the latter based on the Linux driver.
This is needed so that we can make use of device trees that assume driver
presence of both SD controllers.

Signed-off-by: Alexander Graf <agraf@suse.de>
6 years agobcm283x: Add pinctrl driver
Alexander Graf [Tue, 23 Jan 2018 17:05:21 +0000 (18:05 +0100)]
bcm283x: Add pinctrl driver

The bcm283x family of SoCs have a GPIO controller that also acts as
pinctrl controller.

This patch introduces a new pinctrl driver that can actually properly mux
devices into their device tree defined pin states and is now the primary
owner of the gpio device. The previous GPIO driver gets moved into a
subdevice of the pinctrl driver, bound to the same OF node.

That way whenever a device asks for pinctrl support, it gets it
automatically from the pinctrl driver and GPIO support is still available
in the normal command line phase.

Signed-off-by: Alexander Graf <agraf@suse.de>
6 years agopowerpc: Drop CONFIG_WALNUT and other related dead code
Tuomas Tynkkynen [Sun, 21 Jan 2018 16:16:42 +0000 (18:16 +0200)]
powerpc: Drop CONFIG_WALNUT and other related dead code

CONFIG_WALNUT was dropped in June 2017 in:
commit 98f705c9cefdfd ("powerpc: remove 4xx support")

While at it, the related CONFIG_MACH_SPECIFIC and the have_of
and _machine variables are unused as well, so drop them too.

Signed-off-by: Tuomas Tynkkynen <tuomas@tuxera.com>
6 years agolibfdt: migrate include/libfdt_env.h to a wrapper
Masahiro Yamada [Sun, 21 Jan 2018 10:19:18 +0000 (19:19 +0900)]
libfdt: migrate include/libfdt_env.h to a wrapper

libfdt_env.h is supposed to provide system-dependent defines.

scripts/dtc/libfdt/libfdt_env.h from upstream DTC is suitable
for user-space, so we should use this for USE_HOSTCC case.

For compiling U-Boot, we need to override such system-dependent
defines, so use <linux/libfdt_env.h> imported from Linux.

<libfdt.h> selects a proper one.  Maybe, we should split header
inclusion completely, but I do not want too many patches at one.

I can rip off the include/libfdt_env.h from HOST_EXTRACFLAGS.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
6 years agolibfdt: migrate libfdt.h to a wrapper + U-Boot own code
Masahiro Yamada [Sun, 21 Jan 2018 10:19:17 +0000 (19:19 +0900)]
libfdt: migrate libfdt.h to a wrapper + U-Boot own code

There is tons of code duplication between lib/libfdt/libfdt.h and
scripts/dtc/libfdt/libfdt.h.  Evacuate the U-Boot own code to
include/libfdt.h and remove lib/libfdt/libfdt.h.

For host tools, <libfdt.h> should include scripts/dtc/libfdt/libfdt.h,
which is already suitable for user-space.

For compiling U-Boot, <linux/libfdt.h> should be included because we
need a different libfdt_env.h .

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
6 years agolibfdt: move working_fdt and FDT_RAMDISK_OVERHEAD to include/libfdt.h
Masahiro Yamada [Sun, 21 Jan 2018 10:19:16 +0000 (19:19 +0900)]
libfdt: move working_fdt and FDT_RAMDISK_OVERHEAD to include/libfdt.h

libfdt_env.h exists to contain system-dependent defines:

  - typedef of fdt*_t
  - fdt*_to_cpu(), cpu_to_fdt*

working_fdt and FDT_RAMDISK_OVERHEAD are unrelated to the environment,
so they must get out of this header.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
6 years agotools: include necessary headers explicitly
Masahiro Yamada [Sun, 21 Jan 2018 10:19:15 +0000 (19:19 +0900)]
tools: include necessary headers explicitly

Several host-tools use "bool" type without including <stdbool.h>.
This relies on the crappy header inclusion chain.

tools/Makefile has the following line:

  HOST_EXTRACFLAGS += -include $(srctree)/include/libfdt_env.h \

All host-tools are forced to include libfdt_env.h even if they are
totally unrelated to FDT.  Then, <stdbool.h> is indirectly included
as follows:

     include/libfdt_env.h
  -> include/linux/types.h
  -> <stdbool.h>

I am fixing this horrible crap.  In advance, I need to add necessary
include directives explicitly.  tools/fdtgrep.c needs more; <fctl.h>
for open() and <errno.h> for errno.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Reviewed-by: Joe Hershberger <joe.hershberger@ni.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
6 years agolibfdt: fix <linux/libfdt.h>
Masahiro Yamada [Sun, 21 Jan 2018 10:19:14 +0000 (19:19 +0900)]
libfdt: fix <linux/libfdt.h>

I do not remember why, but this is apparently a file-copy mistake.
The file name is libfdt.h, but its content is that of libfdt_env.h

Re-import it from upstream Linux.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
6 years agolibfdt: migrate fdt_rw.c to a wrapper of scripts/dtc/libfdt/fdt_rw.c
Masahiro Yamada [Sun, 21 Jan 2018 10:19:13 +0000 (19:19 +0900)]
libfdt: migrate fdt_rw.c to a wrapper of scripts/dtc/libfdt/fdt_rw.c

The only difference between scripts/dtc/libfdt/fdt_rw.c and
lib/libfdt/fdt_rw.c is fdt_remove_unused_strings().

It is only used by fdtgrep, so we do not need to compile it for U-Boot
image.  Move it to tools/libfdt/fdw_rw.c so that lib/libfdt/fdt_rw.c
can be a wrapper of scripts/dtc/libfdt/fdt_rw.c.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
6 years agohost-tools: use python2 explicitly for shebang
Masahiro Yamada [Sun, 21 Jan 2018 09:34:57 +0000 (18:34 +0900)]
host-tools: use python2 explicitly for shebang

All of these host tools are apparently written for Python2,
not Python3.

Use 'python2' in the shebang line according to PEP 394
(https://www.python.org/dev/peps/pep-0394/).

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
6 years agoARM: omap3: evm: Fix distro bootcmd UBIFS and MMC support
Derald D. Woods [Sun, 21 Jan 2018 03:16:14 +0000 (21:16 -0600)]
ARM: omap3: evm: Fix distro bootcmd UBIFS and MMC support

The omap3_evm board does not boot when commit:
    a47ca2cf67 ("ARM: omap3: evm: Add kernel image loading from UBIFS and EXT4")
is applied after commit:
    3dde8f2037 ("Merge git://git.denx.de/u-boot-mmc")

This commit reduces the CONFIG_EXTRA_ENV_SETTINGS size and better
leverages the existing distro bootcmd infrastructure.

- Use updated UBIFS support from config_distro_bootcmd.h
- Use LEGACY_MMC naming found in am335x_evm.h and ti_omap4_common.h
- Remove extra environment content that is no longer needed

[MMC(0:1)/extlinux/extlinux.conf]
---8<-------------------------------------------------------------------
default omap3-evm-mmc-fat
label omap3-evm-mmc-fat
kernel /zImage
fdt /omap3-evm.dtb
append console=ttyO0,115200n8 root=/dev/mmcblk0p2 rw rootfstype=ext4 rootwait
---8<-------------------------------------------------------------------

[MMC(0:2)/boot/extlinux/extlinux.conf]
---8<-------------------------------------------------------------------
default omap3-evm-mmc-ext4
label omap3-evm-mmc-ext4
kernel /boot/zImage
fdt /boot/omap3-evm.dtb
append console=ttyO0,115200n8 root=/dev/mmcblk0p2 rw rootfstype=ext4 rootwait
---8<-------------------------------------------------------------------

[NAND(ubi0:rootfs)/boot/extlinux/extlinux.conf]
---8<-------------------------------------------------------------------
default omap3-evm-nand-ubifs
label omap3-evm-nand-ubifs
kernel /boot/zImage
fdt /boot/omap3-evm.dtb
append console=ttyO0,115200n8 root=ubi0:rootfs rw ubi.mtd=rootfs noinitrd rootfstype=ubifs rootwait
---8<-------------------------------------------------------------------

Fixes: a47ca2cf67 ("ARM: omap3: evm: Add kernel image loading from UBIFS and EXT4")
Signed-off-by: Derald D. Woods <woods.technical@gmail.com>
6 years agodistro bootcmd: Allow board defined UBI partition and volume names
Derald D. Woods [Sun, 21 Jan 2018 03:16:13 +0000 (21:16 -0600)]
distro bootcmd: Allow board defined UBI partition and volume names

This commit allows overriding the default assumption that the boot UBI
MTD partition is named 'UBI' and the UBI volume is 'boot'. A board
desiring to use a legacy or alternative NAND layout can now define the
following two extra environment variables:

bootubipart=<some_ubi_partition_name>
bootubivol=<some_ubi_volume_name>

EXAMPLE:

[include/configs/some_board.h]
---8<-------------------------------------------------------------------
[...]
#include <config_distro_defaults.h>

#define MEM_LAYOUT_ENV_SETTINGS \
DEFAULT_LINUX_BOOT_ENV

#define BOOT_TARGET_DEVICES(func) \
func(UBIFS, ubifs, 0)

#include <config_distro_bootcmd.h>
[...]
#define CONFIG_EXTRA_ENV_SETTINGS \
MEM_LAYOUT_ENV_SETTINGS \
"bootubivol=rootfs\0" \
"bootubipart=rootfs\0" \
BOOTENV
[...]
---8<-------------------------------------------------------------------

Signed-off-by: Derald D. Woods <woods.technical@gmail.com>
6 years agospl: use different BOARD_INIT MACRO for spl and tpl
Kever Yang [Sat, 20 Jan 2018 10:00:26 +0000 (18:00 +0800)]
spl: use different BOARD_INIT MACRO for spl and tpl

SPL and TPL may not always need spl_board_init() at the same time.

Signed-off-by: Kever Yang <kever.yang@rock-chips.com>
Reviewed-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
6 years agofs: btrfs: Fix unaligned memory accesses
Alberto Sánchez Molero [Sat, 20 Jan 2018 07:17:57 +0000 (09:17 +0200)]
fs: btrfs: Fix unaligned memory accesses

Loading files stored with lzo compression from a btrfs filesystem was
producing unaligned memory accesses, which were causing a data abort
and a reset on an Orange Pi Zero.

The change in hash.c is not triggered by any error but follows the
same pattern. Please confirm.

Fixed according to doc/README.unaligned-memory-access.txt

Signed-off-by: Alberto Sánchez Molero <alsamolero@gmail.com>
Tested-by: Robert Nelson <robertcnelson@gmail.com>
6 years agoclk: clk_stm32f: Fix PLLSAICFGR_PLLSAIP_4 divider value
Patrice Chotard [Fri, 19 Jan 2018 17:02:40 +0000 (18:02 +0100)]
clk: clk_stm32f: Fix PLLSAICFGR_PLLSAIP_4 divider value

PLLSAIP divider uses 2 bits (bits 16 and 17) into RCC_PLLSAICFGR
register, available combination are :
  00: PLLSAIP = 2
  01: PLLSAIP = 4
  10: PLLSAIP = 6
  11: PLLSAIP = 8

Previously, the divider value was incorrectly set to 6.

Signed-off-by: Patrice Chotard <patrice.chotard@st.com>
6 years agoARM: AM43XX: Call hw_data_init() again after relocation to update *ctrl
Faiz Abbas [Fri, 19 Jan 2018 10:02:48 +0000 (15:32 +0530)]
ARM: AM43XX: Call hw_data_init() again after relocation to update *ctrl

hw_data_init() is called before relocation to initialise hardware data.
Since ctrl is initialized to OMAP_SRAM_SCRATCH_SYS_CTRL in
arch/arm/mach-omap2/am33xx/hw_data.c, the pointer *ctrl will not be
updated during relocation and will hold a stale value.

Therefore call hw_data_init() again after relocation to
reinitialize *ctrl.

Signed-off-by: Faiz Abbas <faiz_abbas@ti.com>
6 years agoconfigs: Replace CONFIG_ISW_ENTRY_ADDR with CONFIG_SYS_TEXT_BASE
Faiz Abbas [Fri, 19 Jan 2018 10:02:47 +0000 (15:32 +0530)]
configs: Replace CONFIG_ISW_ENTRY_ADDR with CONFIG_SYS_TEXT_BASE

Since 7e0ed13 ("Convert ARCH_OMAP2PLUS boards' CONFIG_SYS_TEXT_BASE to
Kconfig"), a default SYS_TEXT_BASE was set for all ARCH_OMAP2PLUS devices.
CONFIG_ISW_ENTRY_ADDR is used to set SYS_TEXT_BASE in qspi boot.

Simplify this by directly assigning SYS_TEXT_BASE in the defconfig.

Signed-off-by: Faiz Abbas <faiz_abbas@ti.com>
6 years agotools: remove unused ret
Jelle van der Waa [Thu, 18 Jan 2018 19:19:43 +0000 (20:19 +0100)]
tools: remove unused ret

Remove unused ret from fw_env_flush.

Signed-off-by: Jelle van der Waa <jelle@vdwaa.nl>
Reviewed-by: Simon Glass <sjg@chromium.org>
6 years agoclk: clk_stm32f: Move SYSCFG clock setup into configure_clocks()
Patrice Chotard [Thu, 18 Jan 2018 13:10:05 +0000 (14:10 +0100)]
clk: clk_stm32f: Move SYSCFG clock setup into configure_clocks()

Move SYSCFG clock setup into configure_clocks() instead of calling
clock_setup() from board file.

As this clock is only needed in case of ethernet enabled and as
both stm32f4 and stm32f7 are using the Designware ethernet IP,
we use CONFIG_ETH_DESIGNWARE to only enable this clock if needed.

Move the RMII setup from board_early_init_f() to board_init()
to insure that RMII bit is set only when clock driver is initialized.

Signed-off-by: Patrice Chotard <patrice.chotard@st.com>
6 years agoclk: clk_stm32f: Remove STMMAC clock setup
Patrice Chotard [Thu, 18 Jan 2018 13:10:04 +0000 (14:10 +0100)]
clk: clk_stm32f: Remove STMMAC clock setup

Thanks to 'commit ba1f96672522 ("net: designware: add clock support")'
we don't need anymore to setup the STMMAC clock in board.

Signed-off-by: Patrice Chotard <patrice.chotard@st.com>
Reviewed-by: Vikas Manocha <vikas.manocha@st.com>
6 years agoARM: dts: stm32: Add STMMAC clocks for stm32f746
Patrice Chotard [Thu, 18 Jan 2018 13:10:03 +0000 (14:10 +0100)]
ARM: dts: stm32: Add STMMAC clocks for stm32f746

Add ETHMAC, ETHMACRX and ETHMACTX clocks for STMMAC.

Signed-off-by: Patrice Chotard <patrice.chotard@st.com>
Reviewed-by: Vikas Manocha <vikas.manocha@st.com>
6 years agoatomic-long: Fix warnings on arm64
Bradley Bolen [Sat, 27 Jan 2018 03:11:04 +0000 (22:11 -0500)]
atomic-long: Fix warnings on arm64

Several inline functions in this file reference undefined functions in
U-Boot.  For example:

atomic-long.h:73:9: warning: implicit declaration of function
'atomic64_sub_and_test'
atomic-long.h:80:9: warning: implicit declaration of function
'atomic64_dec_and_test'
atomic-long.h:87:9: warning: implicit declaration of function
'atomic64_inc_and_test'

Handle this the same as the 32 bit build by wrapping these functions in
a __UBOOT__ check.

Signed-off-by: Bradley Bolen <bradleybolen@gmail.com>
6 years agoARM: dts: stm32: add stm32429-eval-u-boot dts file
Patrice Chotard [Thu, 18 Jan 2018 12:39:34 +0000 (13:39 +0100)]
ARM: dts: stm32: add stm32429-eval-u-boot dts file

   _ Add gpio compatible and aliases for stm32f469
   _ Add FMC sdram node
   _ Add "u-boot,dm-pre-reloc" for rcc, fmc, fixed-clock, pinctrl,
     pwrcfg and gpio nodes.

Signed-off-by: Patrice Chotard <patrice.chotard@st.com>
6 years agoARM: dts: stm32: Add STM32F429 Evaluation board support
Patrice Chotard [Thu, 18 Jan 2018 12:39:33 +0000 (13:39 +0100)]
ARM: dts: stm32: Add STM32F429 Evaluation board support

This DT file comes from kernel v4.15, this board offers :

   _ STM32F429NIH6 microcontroller
   _ 4.3” color TFT LCD with resistive touchscreen (480 x 272 pixels)
   _ Six 5 V power supply options:
        Power jack
        ST-LINK/V2 USB connector
        User USB HS connector
        User USB FS1 connector
        User USB FS2 connector
        Daughterboard
   _ SAI Audio DAC, stereo audio jack which supports headset with
     microphone
   _ Stereo digital microphone, audio terminal connector used to connect
     external speakers
   _ 2 GBytes (or more) SDIO interface MicroSD card
   _ RF EEPROM on I2 C compatible serial interface
   _ RS-232 communication
   _ IrDA transceiver
   _ JTAG/SWD and ETM trace debug support, ST-LINK/V2 embedded
   _ IEEE-802.3-2002 compliant Ethernet connector
   _ Camera module
   _ 8M x 32-bit SDRAM, 1M x 16-bit SRAM and 8M x 16-bit NOR Flash
   _ Joystick with 4-directional control and selector
   _ Reset, Wakeup and Tamper buttons
   _ 4 color user LEDs
   _ Extension connectors & memory connectors for daughterboard or
     wrapping board
   _ USB OTG HS and FS with Micro-AB connectors
   _ RTC with backup battery
   _ CAN2.0A/B compliant connection
   _ Potentiometer
   _ Motor control connector

Signed-off-by: Patrice Chotard <patrice.chotard@st.com>
6 years agoboard: stm32: Add stm32f429-evaluation board support
Patrice Chotard [Thu, 18 Jan 2018 12:39:32 +0000 (13:39 +0100)]
board: stm32: Add stm32f429-evaluation board support

Add stm32f429-evaluation board support.
For more information, please visit:
http://www.st.com/en/evaluation-tools/stm32429i-eval.html

Signed-off-by: Patrice Chotard <patrice.chotard@st.com>
6 years agoconfigs: stm32f: Remove STM32_HSE_HZ for all STM32F series
Patrice Chotard [Thu, 18 Jan 2018 12:39:31 +0000 (13:39 +0100)]
configs: stm32f: Remove STM32_HSE_HZ for all STM32F series

As clk_stm32f driver is able to retrieve HSE frequency from DT,
CONFIG_STM32_HSE_HZ becomes useless.

Signed-off-by: Patrice Chotard <patrice.chotard@st.com>
6 years agoclk: stm32: retrieve external oscillator frequency from DT
Patrice Chotard [Thu, 18 Jan 2018 12:39:30 +0000 (13:39 +0100)]
clk: stm32: retrieve external oscillator frequency from DT

All current STM32F4 supported boards uses a 8MHz external oscillator.
All current STM32F7 supported boards uses a 25MHz external oscillator.

In order to introduce the new stm32f429-evaluation board which uses a
25MHz external oscillator without creating a dedicated struct
stm32_clk_info for this board, retrieve the external oscillator
frequency from DT and set pll_m accordingly to obtain 1MHz for the VCO.

Signed-off-by: Patrice Chotard <patrice.chotard@st.com>
6 years agoARM: dts: stm32: add "u-boot, dm-pre-reloc" for clk_hse in stm32f7-u-boot
Patrice Chotard [Thu, 18 Jan 2018 12:39:29 +0000 (13:39 +0100)]
ARM: dts: stm32: add "u-boot, dm-pre-reloc" for clk_hse in stm32f7-u-boot

In order to retrieve the clk_hse fixed clock phandle in clk_stm32f driver,
add "u-boot,dm-pre-reloc" property in Uboot specific DT file.

Signed-off-by: Patrice Chotard <patrice.chotard@st.com>
6 years agoarm: bootm-fdt.c: fix compiler warning
Heiko Schocher [Wed, 17 Jan 2018 06:00:37 +0000 (07:00 +0100)]
arm: bootm-fdt.c: fix compiler warning

compiling U-Boot with bosch_mpcxxxxd_sd_defconfig
drops warning:

arch/arm/lib/bootm-fdt.c: In function ‘arch_fixup_fdt’:
arch/arm/lib/bootm-fdt.c:37:6: warning: unused variable ‘ret’ [-Wunused-variable]
  int ret = 0;
      ^~~

Fix it.

Signed-off-by: Heiko Schocher <hs@denx.de>
6 years agoarm: mach-omap2: Pass args to secure ROM in SRAM in SPL
Andrew F. Davis [Tue, 16 Jan 2018 20:25:48 +0000 (14:25 -0600)]
arm: mach-omap2: Pass args to secure ROM in SRAM in SPL

When in early SPL we make some secure ROM calls that can effect
DRAM, due to this it is more stable to store the args for these
calls in SRAM, but uninitialized and zero'd globals are placed
in BSS, located in DRAM. Force our args into the data section
which is in SRAM during SPL.

Signed-off-by: Andrew F. Davis <afd@ti.com>
6 years agocommon: board_r: Fix style violations
Mario Six [Mon, 15 Jan 2018 10:10:30 +0000 (11:10 +0100)]
common: board_r: Fix style violations

Fix some style violations in the board_r file.

Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Mario Six <mario.six@gdsys.cc>
6 years agocommon: board_f: Fix style violations
Mario Six [Mon, 15 Jan 2018 10:10:02 +0000 (11:10 +0100)]
common: board_f: Fix style violations

Fix some style violations in the board_f file.

Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Mario Six <mario.six@gdsys.cc>
6 years agoserial: ns16550: Fix style violation
Mario Six [Mon, 15 Jan 2018 10:09:49 +0000 (11:09 +0100)]
serial: ns16550: Fix style violation

Clarify the computation precedence in two ternary operator
constructions.

Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Mario Six <mario.six@gdsys.cc>
6 years agoinclude: dm: Fix 'devioe'/'devuce' typos
Mario Six [Mon, 15 Jan 2018 10:09:36 +0000 (11:09 +0100)]
include: dm: Fix 'devioe'/'devuce' typos

There are some typos in the documentation of some functions in read.h;
fix those.

Signed-off-by: Mario Six <mario.six@gdsys.cc>
Reviewed-by: Simon Glass <sjg@chromium.org>
6 years agogpio: mpc8xxx: Make live-tree compatible
Mario Six [Mon, 15 Jan 2018 10:07:50 +0000 (11:07 +0100)]
gpio: mpc8xxx: Make live-tree compatible

Make the MPC8xxx GPIO driver compatible with a live device tree.

Signed-off-by: Mario Six <mario.six@gdsys.cc>
6 years agogpio: mpc8xxx: Make compatible with more SoCs
Mario Six [Mon, 15 Jan 2018 10:07:49 +0000 (11:07 +0100)]
gpio: mpc8xxx: Make compatible with more SoCs

Finally, make the mpc8xxx driver capable of handling more GPIO devices;
this entails adding a special case for the MPC5121 SoC, and adding a set
of new compatible strings.

Signed-off-by: Mario Six <mario.six@gdsys.cc>
6 years agogpio: mpc8xxx: Rename Kconfig option, structures, and functions
Mario Six [Mon, 15 Jan 2018 10:07:48 +0000 (11:07 +0100)]
gpio: mpc8xxx: Rename Kconfig option, structures, and functions

Rename the Kconfig option, structures (and their members), as well as
functions of the mpc85xx driver to include mpc8xxx to reflect the more
generic usage.

Signed-off-by: Mario Six <mario.six@gdsys.cc>
6 years agogpio: mpc85xx: Rename driver file to mpc8xxx
Mario Six [Mon, 15 Jan 2018 10:07:47 +0000 (11:07 +0100)]
gpio: mpc85xx: Rename driver file to mpc8xxx

In preparation to making the MPC85xx GPIO driver useable for a broader
range of SoCs, rename the driver file.

Signed-off-by: Mario Six <mario.six@gdsys.cc>
6 years agogpio: mpc85xx_gpio: Fix style violations
Mario Six [Mon, 15 Jan 2018 10:07:46 +0000 (11:07 +0100)]
gpio: mpc85xx_gpio: Fix style violations

Fix some style violations in the MPC85XX GPIO driver.

Signed-off-by: Mario Six <mario.six@gdsys.cc>
6 years agogpio: pca953x_gpio: Make live-tree compatible
Mario Six [Mon, 15 Jan 2018 10:07:45 +0000 (11:07 +0100)]
gpio: pca953x_gpio: Make live-tree compatible

Make the pca953x_gpio driver compatible with a live device tree.

Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Mario Six <mario.six@gdsys.cc>
6 years agogpio: pca953x_gpio: Fix style violations
Mario Six [Mon, 15 Jan 2018 10:07:44 +0000 (11:07 +0100)]
gpio: pca953x_gpio: Fix style violations

Fix some style violations in the pca953x_gpio driver.

Signed-off-by: Mario Six <mario.six@gdsys.cc>
6 years agoInitialize SHA buffer size var in passwd_abort
Martin Etnestad [Fri, 12 Jan 2018 08:04:38 +0000 (09:04 +0100)]
Initialize SHA buffer size var in passwd_abort

The call to hash_block in passwd_abort fails with error ENOSPC on some
systems. The reason is that the variable which specifies the size of the
buffer to contain the computed hash does not get initialized.

This patch initializes the variable with the size of the buffer.

Signed-off-by: Martin Etnestad <martin.etnestad@appeartv.com>
6 years agoMerge git://git.denx.de/u-boot-usb
Tom Rini [Sun, 28 Jan 2018 14:21:53 +0000 (09:21 -0500)]
Merge git://git.denx.de/u-boot-usb

6 years agousb: host: Drop unused hcd_name from r8a66597-hcd.c
Tom Rini [Sat, 27 Jan 2018 20:22:56 +0000 (15:22 -0500)]
usb: host: Drop unused hcd_name from r8a66597-hcd.c

The variable hcd_name is unsued, drop.

Cc: Marek Vasut <marex@denx.de>
Cc: Chris Brandt <chris.brandt@renesas.com>
Signed-off-by: Tom Rini <trini@konsulko.com>
6 years agousb: Remove isp116x-hcd support
Tom Rini [Sat, 27 Jan 2018 20:21:47 +0000 (15:21 -0500)]
usb: Remove isp116x-hcd support

The isp116x-hcd driver is extremely long unused, so just remove it.

Cc: Marek Vasut <marex@denx.de>
Signed-off-by: Tom Rini <trini@konsulko.com>
6 years agoMerge git://git.denx.de/u-boot-uniphier
Tom Rini [Sun, 28 Jan 2018 02:55:04 +0000 (21:55 -0500)]
Merge git://git.denx.de/u-boot-uniphier

6 years agoMerge branch 'rmobile-mx' of git://git.denx.de/u-boot-sh
Tom Rini [Sat, 27 Jan 2018 19:50:52 +0000 (14:50 -0500)]
Merge branch 'rmobile-mx' of git://git.denx.de/u-boot-sh

6 years agoARM: uniphier: enable HS200 support for uniphier_v8_defconfig
Masahiro Yamada [Thu, 25 Jan 2018 04:43:19 +0000 (13:43 +0900)]
ARM: uniphier: enable HS200 support for uniphier_v8_defconfig

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Reviewed-by: Jaehoon Chung <jh80.chung@samsung.com>
6 years agoMerge git://git.denx.de/u-boot-usb
Tom Rini [Sat, 27 Jan 2018 19:48:52 +0000 (14:48 -0500)]
Merge git://git.denx.de/u-boot-usb

6 years agoMerge git://git.denx.de/u-boot-socfpga
Tom Rini [Sat, 27 Jan 2018 19:48:41 +0000 (14:48 -0500)]
Merge git://git.denx.de/u-boot-socfpga

6 years agoARM: rmobile: Convert R8A7791 Porter board to DM and DT
Marek Vasut [Sun, 7 Jan 2018 18:32:56 +0000 (19:32 +0100)]
ARM: rmobile: Convert R8A7791 Porter board to DM and DT

Convert the R8A7791 Porter board to DM and DT. This implies mostly
enabling the necessary configuration options and plucking out the
ad-hoc configuration from the board file. Moreover, the pre-reloc
malloc size was increased to allow the clock driver to start up
early without running out of malloc space and the early stack was
moved further up in the DRAM to avoid rewriting U-Boot itself.

Signed-off-by: Marek Vasut <marek.vasut+renesas@gmail.com>
Cc: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
6 years agoARM: rmobile: Enable OF_CONTROL on RCar Gen2
Marek Vasut [Sun, 7 Jan 2018 19:26:04 +0000 (20:26 +0100)]
ARM: rmobile: Enable OF_CONTROL on RCar Gen2

Since the DTs are now in place, enable OF control so that they get
bundled into the U-Boot.

Signed-off-by: Marek Vasut <marek.vasut+renesas@gmail.com>
Cc: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
6 years agoARM: dts: rmobile: Add SoC and board U-Boot DT extras
Marek Vasut [Wed, 17 Jan 2018 21:47:21 +0000 (22:47 +0100)]
ARM: dts: rmobile: Add SoC and board U-Boot DT extras

Add U-Boot DT extras for each SoC and board. This marks the required
nodes with u-boot,dm-pre-reloc to start clock and PRR early on while
avoiding modification of the DTs imported from Linux.

Signed-off-by: Marek Vasut <marek.vasut+renesas@gmail.com>
Cc: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
6 years agoARM: dts: rmobile: Add rudimentary R8A7790 Stout DT
Marek Vasut [Wed, 24 Jan 2018 14:52:56 +0000 (15:52 +0100)]
ARM: dts: rmobile: Add rudimentary R8A7790 Stout DT

The Stout board is not supported in Linux, so add a rudimentary DTS
for H2 Stout as a placeholder for when a proper DTS is available.

Signed-off-by: Marek Vasut <marek.vasut+renesas@gmail.com>
Cc: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
---
NOTE: The Stout is already being shipped over, so proper DTS for both
      U-Boot and Linux will happen once it's delivered :-)

6 years agoARM: dts: rmobile: Import R8A7794 DTS from Linux 4.15-rc8
Marek Vasut [Sun, 7 Jan 2018 19:18:28 +0000 (20:18 +0100)]
ARM: dts: rmobile: Import R8A7794 DTS from Linux 4.15-rc8

Import the Renesas R8A7794 DTS and headers from upstream Linux kernel v4.15-rc8,
commit bebc6082da0a9f5d47a1ea2edc099bf671058bd4 .

Signed-off-by: Marek Vasut <marek.vasut+renesas@gmail.com>
Cc: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
6 years agoARM: dts: rmobile: Import R8A7793 DTS from Linux 4.15-rc8
Marek Vasut [Sun, 7 Jan 2018 19:18:11 +0000 (20:18 +0100)]
ARM: dts: rmobile: Import R8A7793 DTS from Linux 4.15-rc8

Import the Renesas R8A7793 DTS and headers from upstream Linux kernel v4.15-rc8,
commit bebc6082da0a9f5d47a1ea2edc099bf671058bd4 .

Signed-off-by: Marek Vasut <marek.vasut+renesas@gmail.com>
Cc: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
6 years agoARM: dts: rmobile: Import R8A7792 DTS from Linux 4.15-rc8
Marek Vasut [Sun, 7 Jan 2018 19:17:53 +0000 (20:17 +0100)]
ARM: dts: rmobile: Import R8A7792 DTS from Linux 4.15-rc8

Import the Renesas R8A7792 DTS and headers from upstream Linux kernel v4.15-rc8,
commit bebc6082da0a9f5d47a1ea2edc099bf671058bd4 .

Signed-off-by: Marek Vasut <marek.vasut+renesas@gmail.com>
Cc: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
6 years agoARM: dts: rmobile: Import R8A7791 DTS from Linux 4.15-rc8
Marek Vasut [Sun, 7 Jan 2018 19:17:39 +0000 (20:17 +0100)]
ARM: dts: rmobile: Import R8A7791 DTS from Linux 4.15-rc8

Import the Renesas R8A7791 DTS and headers from upstream Linux kernel v4.15-rc8,
commit bebc6082da0a9f5d47a1ea2edc099bf671058bd4 .

Signed-off-by: Marek Vasut <marek.vasut+renesas@gmail.com>
Cc: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
6 years agoARM: dts: rmobile: Import R8A7790 DTS from Linux 4.15-rc8
Marek Vasut [Sun, 7 Jan 2018 19:17:23 +0000 (20:17 +0100)]
ARM: dts: rmobile: Import R8A7790 DTS from Linux 4.15-rc8

Import the Renesas R8A7790 DTS and headers from upstream Linux kernel v4.15-rc8,
commit bebc6082da0a9f5d47a1ea2edc099bf671058bd4 .

Signed-off-by: Marek Vasut <marek.vasut+renesas@gmail.com>
Cc: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
6 years agonet: sh_eth: Add DM and DT support
Marek Vasut [Fri, 19 Jan 2018 17:57:17 +0000 (18:57 +0100)]
net: sh_eth: Add DM and DT support

Add DM capable code into the SH ethernet driver and support probing
both from DT and pdata. The legacy non-DM, non-DT support is retained
as there are still systems in the tree which are not DM or DT capable.

Signed-off-by: Marek Vasut <marek.vasut+renesas@gmail.com>
Cc: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
Cc: Joe Hershberger <joe.hershberger@ni.com>
6 years agonet: sh_eth: Clump legacy functions together
Marek Vasut [Sun, 21 Jan 2018 14:31:48 +0000 (15:31 +0100)]
net: sh_eth: Clump legacy functions together

Move the legacy functions around, so that they can be wrapped in a
massive ifdef CONFIG_DM_ETH once DM support is added. No functional
change.

Signed-off-by: Marek Vasut <marek.vasut+renesas@gmail.com>
Cc: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
Cc: Joe Hershberger <joe.hershberger@ni.com>
6 years agonet: sh_eth: Split sh_eth_init
Marek Vasut [Sun, 21 Jan 2018 14:10:21 +0000 (15:10 +0100)]
net: sh_eth: Split sh_eth_init

Split sh_eth_init() function into smaller chunks, which can
be called from both DM and non-DM code while handling the
specifics of both configurations.

Signed-off-by: Marek Vasut <marek.vasut+renesas@gmail.com>
Cc: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
Cc: Joe Hershberger <joe.hershberger@ni.com>
6 years agonet: sh_eth: Separate out MAC address programming
Marek Vasut [Sun, 21 Jan 2018 13:55:44 +0000 (14:55 +0100)]
net: sh_eth: Separate out MAC address programming

Pull out the code for writing MAC address into the NIC into a
separate function, so it can be reused by both DM and non-DM
code. This is done in preparation for DM support, which handles
MAC address programming separately.

Signed-off-by: Marek Vasut <marek.vasut+renesas@gmail.com>
Cc: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
Cc: Joe Hershberger <joe.hershberger@ni.com>
6 years agonet: sh_eth: Split sh_eth_recv
Marek Vasut [Sun, 21 Jan 2018 14:39:50 +0000 (15:39 +0100)]
net: sh_eth: Split sh_eth_recv

Split sh_eth_recv into two functions, one which checks whether
a packet was received and one which handles the received packet.
This is done in preparation for DM support, which handles these
two parts separately.

Signed-off-by: Marek Vasut <marek.vasut+renesas@gmail.com>
Cc: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
Cc: Joe Hershberger <joe.hershberger@ni.com>
6 years agonet: sh_eth: Pass sh_eth_dev around
Marek Vasut [Sun, 21 Jan 2018 13:27:51 +0000 (14:27 +0100)]
net: sh_eth: Pass sh_eth_dev around

Pass sh_eth_dev structure around instead of eth_device, since the
later is specific to the legacy networking support. This change is
done in preparation for the DM addition.

Signed-off-by: Marek Vasut <marek.vasut+renesas@gmail.com>
Cc: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
Cc: Joe Hershberger <joe.hershberger@ni.com>
6 years agonet: sh_eth: Unify CONFIG_R8A779[01234] as CONFIG_RCAR_GEN2
Marek Vasut [Mon, 22 Jan 2018 00:42:32 +0000 (01:42 +0100)]
net: sh_eth: Unify CONFIG_R8A779[01234] as CONFIG_RCAR_GEN2

Use the common RCAR_GEN2 config option instead of enumerating
each SoC and having a lengthy ifdef clause. No functional change.

Signed-off-by: Marek Vasut <marek.vasut+renesas@gmail.com>
Cc: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
Cc: Joe Hershberger <joe.hershberger@ni.com>
6 years agonet: ravb: staticize ravb_start
Marek Vasut [Fri, 19 Jan 2018 22:58:32 +0000 (23:58 +0100)]
net: ravb: staticize ravb_start

Cosmetic fix, make ravb_start() static.

Signed-off-by: Marek Vasut <marek.vasut+renesas@gmail.com>
Cc: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
Cc: Joe Hershberger <joe.hershberger@ni.com>
6 years agopci: rmobile: Add RCar Gen2 PCIe controller driver
Marek Vasut [Thu, 18 Jan 2018 13:35:35 +0000 (14:35 +0100)]
pci: rmobile: Add RCar Gen2 PCIe controller driver

Add driver for the Renesas RCar PCIe controller present on Gen2 SoCs.
The PCIe on Gen2 is used both to connect external PCIe peripherals as
well as access the on-SoC USB EHCI controller.

Signed-off-by: Marek Vasut <marek.vasut+renesas@gmail.com>
6 years agogpio: rmobile: Add RCar Gen2 compatible string
Marek Vasut [Wed, 17 Jan 2018 23:52:15 +0000 (00:52 +0100)]
gpio: rmobile: Add RCar Gen2 compatible string

Add DT compatible string for RCar Gen2.

Signed-off-by: Marek Vasut <marek.vasut+renesas@gmail.com>
Cc: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
6 years agoenv: sunxi: Enable FAT-based environment support by default
Maxime Ripard [Tue, 23 Jan 2018 20:17:04 +0000 (21:17 +0100)]
env: sunxi: Enable FAT-based environment support by default

Now that we have everything in place to implement the transition scheme,
let's enable it by default.

Reviewed-by: Andre Przywara <andre.przywara@arm.com>
Reviewed-by: Lukasz Majewski <lukma@denx.de>
Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
6 years agosunxi: Transition from the MMC to a FAT-based environment
Maxime Ripard [Tue, 23 Jan 2018 20:17:03 +0000 (21:17 +0100)]
sunxi: Transition from the MMC to a FAT-based environment

The current environment has been hardcoded to an offset that starts to be
an issue given the current size of our main U-Boot binary.

By implementing a custom environment location routine, we can always favor
the FAT-based environment, and fallback to the MMC if we don't find
something in the FAT partition. We also implement the same order when
saving the environment, so that hopefully we can slowly migrate the users
over to FAT-based environment and away from the raw MMC one.

Eventually, and hopefully before we reach that limit again, we will have
most of our users using that setup, and we'll be able to retire the raw
environment, and gain more room for the U-Boot binary.

Reviewed-by: Lukasz Majewski <lukma@denx.de>
Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
6 years agoenv: Mark env_get_location as weak
Maxime Ripard [Tue, 23 Jan 2018 20:17:02 +0000 (21:17 +0100)]
env: Mark env_get_location as weak

Allow boards and architectures to override the default environment lookup
code by overriding env_get_location.

Reviewed-by: Andre Przywara <andre.przywara@arm.com>
Reviewed-by: Lukasz Majewski <lukma@denx.de>
Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
6 years agoenv: Allow to build multiple environments in Kconfig
Maxime Ripard [Tue, 23 Jan 2018 20:17:01 +0000 (21:17 +0100)]
env: Allow to build multiple environments in Kconfig

Now that we have everything in place in the code, let's allow to build
multiple environments backend through Kconfig.

Reviewed-by: Andre Przywara <andre.przywara@arm.com>
Reviewed-by: Lukasz Majewski <lukma@denx.de>
Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
6 years agoenv: mmc: depends on the MMC framework
Maxime Ripard [Tue, 23 Jan 2018 20:17:00 +0000 (21:17 +0100)]
env: mmc: depends on the MMC framework

The raw MMC environment directly calls into the MMC framework. Make sure
it's enabled before we can select it.

Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
Reviewed-by: Jaehoon Chung <jh80.chung@samsung.com>
6 years agoenv: Initialise all the environments
Maxime Ripard [Tue, 23 Jan 2018 20:16:59 +0000 (21:16 +0100)]
env: Initialise all the environments

Since we want to have multiple environments, we will need to initialise
all the environments since we don't know at init time what drivers might
fail when calling load.

Let's init all of them, and only consider for further operations the ones
that have not reported any errors at init time.

Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
6 years agoenv: Support multiple environments
Maxime Ripard [Tue, 23 Jan 2018 20:16:58 +0000 (21:16 +0100)]
env: Support multiple environments

Now that we have everything in place to support multiple environment, let's
make sure the current code can use it.

The priority used between the various environment is the same one that was
used in the code previously.

At read / init times, the highest priority environment is going to be
detected, and we'll use the same one without lookup during writes. This
should implement the same behaviour than we currently have.

Reviewed-by: Andre Przywara <andre.przywara@arm.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
6 years agoenv: common: Make the debug messages play a little nicer
Maxime Ripard [Tue, 23 Jan 2018 20:16:57 +0000 (21:16 +0100)]
env: common: Make the debug messages play a little nicer

Since we have global messages to indicate what's going on, the custom
messages in the environment drivers only make the output less readable.

Make the common code play a little nicer by removing all the extra output
in the standard case.

Reviewed-by: Andre Przywara <andre.przywara@arm.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
6 years agoenv: mmc: Make the debug messages play a little nicer
Maxime Ripard [Tue, 23 Jan 2018 20:16:56 +0000 (21:16 +0100)]
env: mmc: Make the debug messages play a little nicer

Since we have global messages to indicate what's going on, the custom
messages in the environment drivers only make the output less readable.

Make MMC play a little nicer by removing all the extra \n and formatting
that is redundant with the global output.

Reviewed-by: Andre Przywara <andre.przywara@arm.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
Reviewed-by: Jaehoon Chung <jh80.chung@samsung.com>
6 years agoenv: fat: Make the debug messages play a little nicer
Maxime Ripard [Tue, 23 Jan 2018 20:16:55 +0000 (21:16 +0100)]
env: fat: Make the debug messages play a little nicer

Since we have global messages to indicate what's going on, the custom
messages in the environment drivers only make the output less readable.

Make FAT play a little nicer by removing all the extra \n and formatting
that is redundant with the global output.

Reviewed-by: Andre Przywara <andre.przywara@arm.com>
Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
6 years agoenv: Make it explicit where we're loading our environment from
Maxime Ripard [Tue, 23 Jan 2018 20:16:54 +0000 (21:16 +0100)]
env: Make it explicit where we're loading our environment from

Since we can have multiple environments now, it's better to provide a
decent indication on what environments were tried and which were the one to
fail and succeed.

Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
6 years agoenv: Make the env save message a bit more explicit
Maxime Ripard [Tue, 23 Jan 2018 20:16:53 +0000 (21:16 +0100)]
env: Make the env save message a bit more explicit

Since we'll soon have support for multiple environments, the environment
saving message might end up being printed multiple times if the higher
priority environment cannot be used.

That might confuse the user, so let's make it explicit if the operation
failed or not.

Reviewed-by: Andre Przywara <andre.przywara@arm.com>
Reviewed-by: Lukasz Majewski <lukma@denx.de>
Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
6 years agoenv: Pass additional parameters to the env lookup function
Maxime Ripard [Tue, 23 Jan 2018 20:16:52 +0000 (21:16 +0100)]
env: Pass additional parameters to the env lookup function

In preparation for the multiple environment support, let's introduce two
new parameters to the environment driver lookup function: the priority and
operation.

The operation parameter is meant to identify, obviously, the operation you
might want to perform on the environment.

The priority is a number passed to identify the environment priority you
want to retrieve. The lowest priority parameter (0) will be the primary
source.

Combining the two parameters allow you to support multiple environments
through different priorities, and to change those priorities between read
and writes operations.

This is especially useful to implement migration mechanisms where you want
to always use the same environment first, be it to read or write, while the
common case is more likely to use the same environment it has read from to
write it to.

Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>