platform/kernel/u-boot.git
6 years agommc: read ssr only if MMC write support is enabled
Jean-Jacques Hiblot [Thu, 4 Jan 2018 14:23:33 +0000 (15:23 +0100)]
mmc: read ssr only if MMC write support is enabled

The content of ssr is useful only for erase operations.
on ARM, removing sd_read_ssr() saves around 300 bytes.

Signed-off-by: Jean-Jacques Hiblot <jjhiblot@ti.com>
6 years agommc: add a Kconfig option to enable the support for MMC write operations
Jean-Jacques Hiblot [Thu, 4 Jan 2018 14:23:32 +0000 (15:23 +0100)]
mmc: add a Kconfig option to enable the support for MMC write operations

This allows using CONFIG_IS_ENABLED(MMC_WRITE) to compile out code
needed only if write support is required.
The option is added for u-boot and for SPL

Signed-off-by: Jean-Jacques Hiblot <jjhiblot@ti.com>
6 years agommc: reworked version lookup in mmc_startup_v4
Jean-Jacques Hiblot [Thu, 4 Jan 2018 14:23:31 +0000 (15:23 +0100)]
mmc: reworked version lookup in mmc_startup_v4

Using a table versus a switch() structure saves a bit of space

Signed-off-by: Jean-Jacques Hiblot <jjhiblot@ti.com>
6 years agommc: compile out more code if support for UHS and HS200 is not enabled
Jean-Jacques Hiblot [Thu, 4 Jan 2018 14:23:30 +0000 (15:23 +0100)]
mmc: compile out more code if support for UHS and HS200 is not enabled

Signed-off-by: Jean-Jacques Hiblot <jjhiblot@ti.com>
6 years agommc: atmel: when sending a data command, use the provided block size
Jean-Jacques Hiblot [Thu, 4 Jan 2018 14:23:29 +0000 (15:23 +0100)]
mmc: atmel: when sending a data command, use the provided block size

struct mmc_data contains the block size to use for the data transfer.
Use this information instead of using the default value or the block length
information stored in struct mmc.

Signed-off-by: Jean-Jacques Hiblot <jjhiblot@ti.com>
6 years agocommon: do not compile common fastboot code when building the SPL
Jean-Jacques Hiblot [Thu, 4 Jan 2018 14:23:28 +0000 (15:23 +0100)]
common: do not compile common fastboot code when building the SPL

This is not required as fastboot can't be started from SPL.

Signed-off-by: Jean-Jacques Hiblot <jjhiblot@ti.com>
6 years agoam335x_hs_evm: Trim options in SPL to reduce binary size
Tom Rini [Sun, 17 Dec 2017 04:01:22 +0000 (23:01 -0500)]
am335x_hs_evm: Trim options in SPL to reduce binary size

The am335x_hs_evm runs into size constraint problems at times with
various toolchains as changes come in due to the config have a large
number of options in SPL (to showcase what is possible) while also
having rather constrained binary limits.  Gain some of this room back by
lowering the loglevel, disabling HW partition support and switching over
to the tiny FIT image support.

Cc: Andrew F. Davis <afd@ti.com>
Signed-off-by: Tom Rini <trini@konsulko.com>
---
I'd really appreciate a run-time test of this patch if at all possible
as I'm a little worried about TINY_FIT being incompatible with all of
the security options.  Thanks!

6 years agodm: mmc: sandbox: Update SD card emulation
Jean-Jacques Hiblot [Thu, 14 Dec 2017 10:47:14 +0000 (11:47 +0100)]
dm: mmc: sandbox: Update SD card emulation

The SDcard initialization procedure does a few more things than it did earlier:
* switch the bus width even for 1-bit bus width
* check that speed has been properly set (in resp[4] of SD_CMD_SWITCH_FUNC)

Update the SD simulator to handle those requests gracefully.

Signed-off-by: Jean-Jacques Hiblot <jjhiblot@ti.com>
Reviewed-by: Jaehoon Chung <jh80.chung@samsung.com>
6 years agoconfigs: omapl138_lcdk: decrease the loglevel to reduce the size of the SPL
Jean-Jacques Hiblot [Thu, 30 Nov 2017 16:44:04 +0000 (17:44 +0100)]
configs: omapl138_lcdk: decrease the loglevel to reduce the size of the SPL

The changes in the MMC stack have increased its footprint up to the point
were its breaks the generation of the SPL for this platform.
Fix this by reducing the loglevel.

Signed-off-by: Jean-Jacques Hiblot <jjhiblot@ti.com>
Reviewed-by: Peter Howard <phoward@gme.net.au>
6 years agoconfigs: openrd: removed support for eMMC hardware partitioning
Jean-Jacques Hiblot [Thu, 30 Nov 2017 16:44:03 +0000 (17:44 +0100)]
configs: openrd: removed support for eMMC hardware partitioning

builds are broken because the size of the binary exceeds the limit.
Make some space by removing support for hardware partitioning as those
boards don't have any eMMC.

Signed-off-by: Jean-Jacques Hiblot <jjhiblot@ti.com>
6 years agommc: make optional the support for eMMC hardware partitioning
Jean-Jacques Hiblot [Thu, 30 Nov 2017 16:44:02 +0000 (17:44 +0100)]
mmc: make optional the support for eMMC hardware partitioning

Not all boards have an eMMC and not all users have a need for this.
Allow to compile it out. By default it is still included.

Signed-off-by: Jean-Jacques Hiblot <jjhiblot@ti.com>
6 years agommc: make UHS and HS200 optional
Jean-Jacques Hiblot [Thu, 30 Nov 2017 16:44:01 +0000 (17:44 +0100)]
mmc: make UHS and HS200 optional

Supporting USH and HS200 increases the code size as it brings in IO voltage
control, tuning and fatter data structures.
Use Kconfig configuration to select which of those features should be
built in.

Signed-off-by: Jean-Jacques Hiblot <jjhiblot@ti.com>
6 years agommc: convert most of printf() to pr_err() and pr_warn()
Jean-Jacques Hiblot [Thu, 30 Nov 2017 16:44:00 +0000 (17:44 +0100)]
mmc: convert most of printf() to pr_err() and pr_warn()

This allows to compile out the log message by tweaking the LOGLEVEL.

Signed-off-by: Jean-Jacques Hiblot <jjhiblot@ti.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
6 years agommc: don't use malloc_cache_aligned()
Jean-Jacques Hiblot [Thu, 30 Nov 2017 16:43:59 +0000 (17:43 +0100)]
mmc: don't use malloc_cache_aligned()

Not using this function reduces the size of the binary. It's replaces by
a standard malloc() and the alignment requirement is handled by an
intermediate buffer on the stack.

Also make sure that the allocated buffer is freed in case of error.

Signed-off-by: Jean-Jacques Hiblot <jjhiblot@ti.com>
6 years agommc: fix for old MMCs (below version 4)
Jean-Jacques Hiblot [Thu, 30 Nov 2017 16:43:58 +0000 (17:43 +0100)]
mmc: fix for old MMCs (below version 4)

The ext_csd is allocated only for MMC above version 4. The compare will
crash or fail for older MMCs.

Signed-off-by: Jean-Jacques Hiblot <jjhiblot@ti.com>
6 years agommc: all hosts support 1-bit bus width and legacy timings
Jean-Jacques Hiblot [Thu, 30 Nov 2017 16:43:57 +0000 (17:43 +0100)]
mmc: all hosts support 1-bit bus width and legacy timings

Make sure that those basic capabilities are advertised by the host.

Signed-off-by: Jean-Jacques Hiblot <jjhiblot@ti.com>
Reviewed-by: Lukasz Majewski <lukma@denx.de>
Reviewed-by: Simon Glass <sjg@chromium.org>
6 years agommc: Fixed a problem with old sd or mmc that do not support High speed
Jean-Jacques Hiblot [Thu, 30 Nov 2017 16:43:56 +0000 (17:43 +0100)]
mmc: Fixed a problem with old sd or mmc that do not support High speed

As the legacy modes were not added to the list of supported modes, old
cards that do not support other modes could not be used.

Signed-off-by: Jean-Jacques Hiblot <jjhiblot@ti.com>
Reviewed-by: Lukasz Majewski <lukma@denx.de>
Reviewed-by: Simon Glass <sjg@chromium.org>
6 years agodm: mmc: update mmc_of_parse()
Jean-Jacques Hiblot [Thu, 30 Nov 2017 16:43:55 +0000 (17:43 +0100)]
dm: mmc: update mmc_of_parse()

* convert to livetree API
* don't fail because of an invalid bus-width, instead default to 1-bit.
* recognize 1.2v DDR and 1.2v HS200 flags

Signed-off-by: Jean-Jacques Hiblot <jjhiblot@ti.com>
6 years agommc: dump card and host capabilities if debug is enabled
Jean-Jacques Hiblot [Thu, 30 Nov 2017 16:43:54 +0000 (17:43 +0100)]
mmc: dump card and host capabilities if debug is enabled

This is a useful information while debugging the initialization process or
performance issues.
Also dump this information with the other mmc info if the verbose option
is selected

Signed-off-by: Jean-Jacques Hiblot <jjhiblot@ti.com>
6 years agommc: meson_gx_mmc: fix the complie error
Jaehoon Chung [Mon, 27 Nov 2017 09:42:05 +0000 (18:42 +0900)]
mmc: meson_gx_mmc: fix the complie error

mmc_set_clock() is changed.
This patch is for fixing complie error.

Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com>
6 years agodm: mmc: Add a library function to parse generic dt binding
Kishon Vijay Abraham I [Thu, 21 Sep 2017 14:30:13 +0000 (16:30 +0200)]
dm: mmc: Add a library function to parse generic dt binding

Add a new function to parse host controller dt node and
set mmc_config. This function can be used by mmc controller
drivers to set the generic mmc_config.
This function can be extended to set other UHS mode caps
once UHS mode support is added.

Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Signed-off-by: Jean-Jacques Hiblot <jjhiblot@ti.com>
6 years agommc: add a library function to send tuning command
Jean-Jacques Hiblot [Thu, 21 Sep 2017 14:30:12 +0000 (16:30 +0200)]
mmc: add a library function to send tuning command

HS200/SDR104 requires tuning command to be sent to the card.
Add a simple function to send tuning command and to read and
compare the received data with the tuning block pattern.
This function can be used by platform driver to perform DLL
tuning.
This patch is similar to
commit 996903de92f0 ("mmc: core: add core-level function for
sending tuning commands") added in linux kernel.

Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Signed-off-by: Jean-Jacques Hiblot <jjhiblot@ti.com>
6 years agommc: use the right voltage level for MMC DDR and HS200 modes
Jean-Jacques Hiblot [Thu, 21 Sep 2017 14:30:11 +0000 (16:30 +0200)]
mmc: use the right voltage level for MMC DDR and HS200 modes

HS200 only supports 1.2v and 1.8v signal voltages. DDR52 supports 3.3v/1.8v
or 1.2v signal voltages.
Select the lowest voltage available when using those modes.

Signed-off-by: Jean-Jacques Hiblot <jjhiblot@ti.com>
6 years agommc: Retry some MMC cmds on failure
Kishon Vijay Abraham I [Thu, 21 Sep 2017 14:30:10 +0000 (16:30 +0200)]
mmc: Retry some MMC cmds on failure

With certain SD cards like Kingston 8GB/16GB UHS card, it is seen that
MMC_CMD_ALL_SEND_CID cmd fails on first attempt, but succeeds
subsequently. Therefore, retry MMC_CMD_ALL_SEND_CID cmd a few time
as done in Linux kernel.
Similarly, it is seen that MMC_CMD_SET_BLOCKLEN may fail on first
attempt, therefore retry this cmd a few times as done in kernel.

To make it clear that those are optionnal workarounds, a new Kconfig
option 'MMC_QUIRKS' is added (enabled by default).

Signed-off-by: Vignesh R <vigneshr@ti.com>
Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Signed-off-by: Jean-Jacques Hiblot <jjhiblot@ti.com>
6 years agommc: Change mode when switching to a boot partition
Jean-Jacques Hiblot [Thu, 21 Sep 2017 14:30:09 +0000 (16:30 +0200)]
mmc: Change mode when switching to a boot partition

Boot partitions do not support HS200. Changing to a lower performance mode
is required to access them.
mmc_select_mode_and_width() and sd_select_mode_and_width() are modified to
make it easier to call them outside of the initialization context.

Signed-off-by: Jean-Jacques Hiblot <jjhiblot@ti.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
6 years agommc: disable UHS modes if Vcc cannot be switched on and off
Jean-Jacques Hiblot [Thu, 21 Sep 2017 14:30:08 +0000 (16:30 +0200)]
mmc: disable UHS modes if Vcc cannot be switched on and off

If a power cycle cannot be done on Vcc, it is safer not to try the UHS
modes because we wouldn't be able to recover from an error occurring
during the UHS initialization.

Signed-off-by: Jean-Jacques Hiblot <jjhiblot@ti.com>
6 years agommc: Add support for UHS modes
Jean-Jacques Hiblot [Thu, 21 Sep 2017 14:30:07 +0000 (16:30 +0200)]
mmc: Add support for UHS modes

Add UHS modes to the list of supported modes, get the UHS capabilites of
the SDcard and implement the procedure to switch the voltage (UHS modes
use 1v8 IO lines)
During the voltage switch procedure, DAT0 is used by the card to signal
when it's ready. The optional card_busy() callback can be used to get this
information from the host driver.

Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Signed-off-by: Jean-Jacques Hiblot <jjhiblot@ti.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
6 years agommc: add HS200 support in MMC core
Kishon Vijay Abraham I [Thu, 21 Sep 2017 14:30:06 +0000 (16:30 +0200)]
mmc: add HS200 support in MMC core

Add HS200 to the list of supported modes and introduce tuning in the MMC
startup process.

Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Signed-off-by: Jean-Jacques Hiblot <jjhiblot@ti.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
6 years agommc: Add a execute_tuning() callback to the mmc operations.
Kishon Vijay Abraham I [Thu, 21 Sep 2017 14:30:05 +0000 (16:30 +0200)]
mmc: Add a execute_tuning() callback to the mmc operations.

Tuning is a mandatory step in the initialization of SDR104 and HS200 modes.
This callback execute the tuning process.

Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Signed-off-by: Jean-Jacques Hiblot <jjhiblot@ti.com>
6 years agommc: disable the mmc clock during power off
Kishon Vijay Abraham I [Thu, 21 Sep 2017 14:30:04 +0000 (16:30 +0200)]
mmc: disable the mmc clock during power off

There is no point in having the mmc clock enabled during
power off. Disable the mmc clock. This is similar to how it's
programmed in Linux Kernel.

Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Signed-off-by: Vignesh R <vigneshr@ti.com>
Signed-off-by: Jean-Jacques Hiblot <jjhiblot@ti.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
6 years agommc: add a new mmc parameter to disable mmc clock
Kishon Vijay Abraham I [Thu, 21 Sep 2017 14:30:03 +0000 (16:30 +0200)]
mmc: add a new mmc parameter to disable mmc clock

mmc clock has to be disabled in certain cases like during
the voltage switch sequence. Modify mmc_set_clock function
to take disable as an argument that signifies if the
clock has to be enabled or disabled.

Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Signed-off-by: Jean-Jacques Hiblot <jjhiblot@ti.com>
6 years agommc: add power cyle support in mmc core
Kishon Vijay Abraham I [Thu, 21 Sep 2017 14:30:02 +0000 (16:30 +0200)]
mmc: add power cyle support in mmc core

mmc/sd specification requires vdd to be disabled for 1 ms
and then enabled again during power cycle. Add a
function in mmc core to perform power cycle and set
the io signal to it's initial state.

Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Signed-off-by: Jean-Jacques Hiblot <jjhiblot@ti.com>
6 years agommc: Add a new callback function to perform the 74 clocks cycle sequence
Jean-Jacques Hiblot [Thu, 21 Sep 2017 14:30:01 +0000 (16:30 +0200)]
mmc: Add a new callback function to perform the 74 clocks cycle sequence

Add a new callback function *send_init_stream* which start a sequence of
at least 74 clock cycles.
The mmc core uses *mmc_send_init_stream* in order to invoke the callback
function. This will be used during power cycle where the specification
requires such a sequence after power up.

Signed-off-by: Jean-Jacques Hiblot <jjhiblot@ti.com>
6 years agommc: Enable signal voltage to be selected from mmc core
Kishon Vijay Abraham I [Thu, 21 Sep 2017 14:30:00 +0000 (16:30 +0200)]
mmc: Enable signal voltage to be selected from mmc core

Add a new function *mmc_set_signal_voltage* in mmc core
which can be used during mmc initialization to select the
signal voltage. Platform driver should use the set_ios
callback function to select the signal voltage.

Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Signed-off-by: Jean-Jacques Hiblot <jjhiblot@ti.com>
6 years agommc: make mmc_set_ios() return status
Kishon Vijay Abraham I [Thu, 21 Sep 2017 14:29:59 +0000 (16:29 +0200)]
mmc: make mmc_set_ios() return status

set_ios callback has a return value of 'int' but the mmc_set_ios()
function ignore this. Modify mmc_set_ios() and the callers of mmc_set_ios() to
to return the error status.

Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Signed-off-by: Jean-Jacques Hiblot <jjhiblot@ti.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
6 years agommc: refactor MMC startup to make it easier to support new modes
Jean-Jacques Hiblot [Thu, 21 Sep 2017 14:29:58 +0000 (16:29 +0200)]
mmc: refactor MMC startup to make it easier to support new modes

The MMC startup process currently handles 4 modes. To make it easier to
add support for more modes, let's make the process more generic and use a
list of the modes to try.
The major functional change is that when a mode fails we try the next one.
Not all modes are tried, only those supported by the card and the host.

Signed-off-by: Jean-Jacques Hiblot <jjhiblot@ti.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
6 years agommc: refactor SD startup to make it easier to support new modes
Jean-Jacques Hiblot [Thu, 21 Sep 2017 14:29:57 +0000 (16:29 +0200)]
mmc: refactor SD startup to make it easier to support new modes

The SDcard startup process currently handles only 2 modes. To make it
easier to add support for more modes, let's make the process more generic
and use a list of the modes to try.
The major functional change is that when a mode fails we try the next one.
Not all modes are tried, only those supported by the card and the host.

Signed-off-by: Jean-Jacques Hiblot <jjhiblot@ti.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
6 years agocmd: mmc: display the mode name and current bus speed in the mmc info
Jean-Jacques Hiblot [Thu, 21 Sep 2017 14:29:56 +0000 (16:29 +0200)]
cmd: mmc: display the mode name and current bus speed in the mmc info

Display the mode name when the user execute 'mmc info'. Also instead of
displaying tran_speed, display the actual bus speed.

Signed-off-by: Jean-Jacques Hiblot <jjhiblot@ti.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
6 years agommc: use mmc modes to select the correct bus speed
Jean-Jacques Hiblot [Thu, 21 Sep 2017 14:29:55 +0000 (16:29 +0200)]
mmc: use mmc modes to select the correct bus speed

Signed-off-by: Jean-Jacques Hiblot <jjhiblot@ti.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
6 years agommc: Add a function to dump the mmc capabilities
Jean-Jacques Hiblot [Thu, 21 Sep 2017 14:29:54 +0000 (16:29 +0200)]
mmc: Add a function to dump the mmc capabilities

This adds a simple helper function to display information (bus width and
mode) based on a capability mask. Useful for debug.

Signed-off-by: Jean-Jacques Hiblot <jjhiblot@ti.com>
6 years agommc: introduce mmc modes
Jean-Jacques Hiblot [Thu, 21 Sep 2017 14:29:53 +0000 (16:29 +0200)]
mmc: introduce mmc modes

no functionnal changes.
In order to add the support for the high speed SD and MMC modes, it is
useful to track this information.

Signed-off-by: Jean-Jacques Hiblot <jjhiblot@ti.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
6 years agommc: add a function to read and test the ext csd (mmc >= 4)
Jean-Jacques Hiblot [Thu, 21 Sep 2017 14:29:52 +0000 (16:29 +0200)]
mmc: add a function to read and test the ext csd (mmc >= 4)

This will be reused later in the selection of high speed and ddr modes.

Signed-off-by: Jean-Jacques Hiblot <jjhiblot@ti.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
6 years agommc: make ext_csd part of struct mmc
Jean-Jacques Hiblot [Thu, 21 Sep 2017 14:29:51 +0000 (16:29 +0200)]
mmc: make ext_csd part of struct mmc

The ext csd is used for comparison many times. Keep a reference content
of the ext csd in the struct mmc to avoid reading multiple times

Signed-off-by: Jean-Jacques Hiblot <jjhiblot@ti.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
6 years agommc: move the MMC startup for version above v4.0 in a separate function
Jean-Jacques Hiblot [Thu, 21 Sep 2017 14:29:50 +0000 (16:29 +0200)]
mmc: move the MMC startup for version above v4.0 in a separate function

no functionnal change. This is only to further reduce the size o
mmc_startup().

Signed-off-by: Jean-Jacques Hiblot <jjhiblot@ti.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
6 years agommc: split mmc_startup()
Jean-Jacques Hiblot [Thu, 21 Sep 2017 14:29:49 +0000 (16:29 +0200)]
mmc: split mmc_startup()

No functionnal change here. The function is really big and can be split.
The part related to bus configuration are put in 2 separate functions: one
for MMC and one for SD.

Signed-off-by: Jean-Jacques Hiblot <jjhiblot@ti.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
6 years agommc: dm: get the IO-line and main voltage regulators from the dts
Jean-Jacques Hiblot [Thu, 21 Sep 2017 14:29:48 +0000 (16:29 +0200)]
mmc: dm: get the IO-line and main voltage regulators from the dts

Get a reference to the regulator devices from the dts and store them
in the struct mmc for later use.

Signed-off-by: Jean-Jacques Hiblot <jjhiblot@ti.com>
6 years agommc: sdhci: do not compare pointer to 0
Heinrich Schuchardt [Fri, 10 Nov 2017 20:13:34 +0000 (21:13 +0100)]
mmc: sdhci: do not compare pointer to 0

data is defined as struct mmc_data *data.
So it should not be compared to 0.

Problem identified with Coccinelle.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
6 years agommc: sdhci: don't clear SDHCI_INT_STATUS register during CMD_INHIBIT
Jorge Ramirez-Ortiz [Thu, 2 Nov 2017 14:10:21 +0000 (15:10 +0100)]
mmc: sdhci: don't clear SDHCI_INT_STATUS register during CMD_INHIBIT

Fixes emmc initialization regression on the db410c platform.

Clearing this register while SDHCI_PRESENT_STATE reports
SDHCI_CMD_INHIBIT leads to undefined behaviour on the db410c.

When commit 7dde50 was merged (mmc: sdhci: Wait for SDHCI_INT_DATA_END
when transferring), SDHCI transfers transitioned to wait for bit
SDHCI_INT_DATA_END before flagging transfers done.

Without this patch, the db410 platform fails to initialize its eMMC
due to all of its transfers timing out (SDHCI_INT_DATA_END is never
raised after all the blocks have been transferred).

Signed-off-by: Jorge Ramirez-Ortiz <jorge.ramirez-ortiz@linaro.org>
6 years agommc: sanitize includes for DM i2c
Felix Brack [Wed, 11 Oct 2017 15:05:28 +0000 (17:05 +0200)]
mmc: sanitize includes for DM i2c

This patch fixes some warnings when building boards that do not define
DM_I2C_COMPAT i.e. boards that entirely rely on the new i2c layer.
Signed-off-by: Felix Brack <fb@ltec.ch>
6 years agodrivers: mmc: Avoid memory leak in case of failure
Suniel Mahesh [Thu, 5 Oct 2017 06:18:56 +0000 (11:48 +0530)]
drivers: mmc: Avoid memory leak in case of failure

priv pointer should be freed before returning with an error value
from exynos_dwmci_get_config().

Signed-off-by: Suniel Mahesh <sunil.m@techveda.org>
Signed-off-by: Raghu Bharadwaj <raghu@techveda.org>
6 years agodrivers: mmc: Change buffer type in ALLOC_CACHE_ALIGN_BUFFER macro
Suniel Mahesh [Thu, 5 Oct 2017 06:02:00 +0000 (11:32 +0530)]
drivers: mmc: Change buffer type in ALLOC_CACHE_ALIGN_BUFFER macro

__be32_to_cpu() accepts argument of type __be32. This patch changes
type of the buffer in ALLOC_CACHE_ALIGN_BUFFER macro to __be32, which
is then passed to __be32_to_cpu().
This prevents sparse build warnings.
drivers/mmc/mmc.c: warning: cast to restricted __be32

Signed-off-by: Suniel Mahesh <sunil.m@techveda.org>
Signed-off-by: Karthik Tummala <karthik@techveda.org>
6 years agoPrepare v2018.01 v2018.01
Tom Rini [Tue, 9 Jan 2018 01:25:29 +0000 (20:25 -0500)]
Prepare v2018.01

Signed-off-by: Tom Rini <trini@konsulko.com>
6 years agoMerge git://git.denx.de/u-boot-imx
Tom Rini [Mon, 8 Jan 2018 17:51:47 +0000 (12:51 -0500)]
Merge git://git.denx.de/u-boot-imx

6 years agomtd: nand: mxs_nand_spl: Remove nand size print
Jagan Teki [Fri, 5 Jan 2018 07:04:23 +0000 (12:34 +0530)]
mtd: nand: mxs_nand_spl: Remove nand size print

It is not much needed to print nand size in SPL during nand boot,
and most of nand spl drivers doesn't print the same.

Signed-off-by: Jagan Teki <jagan@amarulasolutions.com>
6 years agoboard: engicam: Fix to remove legacy board/icorem6_rqs
Jagan Teki [Fri, 5 Jan 2018 07:04:21 +0000 (12:34 +0530)]
board: engicam: Fix to remove legacy board/icorem6_rqs

board/icorem6_rqs/ is forgot to remove while moving
common board files together in
(sha1: 52aaddd6f415397bb2eae0d68a8cc1c5c4a98bb3)
"i..MX6: engicam: Add imx6q/imx6ul boards for existing boards"

Signed-off-by: Jagan Teki <jagan@amarulasolutions.com>
6 years agoimx: initialize and use generic timer on i.MX 6UL/ULL
Stefan Agner [Fri, 5 Jan 2018 14:08:19 +0000 (15:08 +0100)]
imx: initialize and use generic timer on i.MX 6UL/ULL

The i.MX 6UL/ULL feature a Cortex-A7 CPU which suppor the ARM
generic timer. This change makes use of the ARM generic timer in
U-Boot.

This is crucial to make the ARM generic timers usable in Linux since
timer_init() initalizes the system counter module, which is necessary
to use the generic timers CP15 registers.

Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
Reviewed-by: Fabio Estevam <fabio.estevam@nxp.com>
6 years agoimx: introduce CONFIG_GPT_TIMER
Stefan Agner [Fri, 5 Jan 2018 14:08:18 +0000 (15:08 +0100)]
imx: introduce CONFIG_GPT_TIMER

Introduce a new config symbol to select the i.MX
General Purpose Timer (GPT).

Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
Reviewed-by: Fabio Estevam <fabio.estevam@nxp.com>
6 years agoimx: move CONFIG_SYSCOUNTER_TIMER to Kconfig
Stefan Agner [Fri, 5 Jan 2018 14:08:17 +0000 (15:08 +0100)]
imx: move CONFIG_SYSCOUNTER_TIMER to Kconfig

Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
Reviewed-by: Fabio Estevam <fabio.estevam@nxp.com>
6 years agoMerge git://git.denx.de/u-boot-x86
Tom Rini [Mon, 8 Jan 2018 13:26:46 +0000 (08:26 -0500)]
Merge git://git.denx.de/u-boot-x86

6 years agocrypto/fsl: fix BLOB encapsulation and decapsulation
Clemens Gruber [Sun, 7 Jan 2018 19:26:29 +0000 (20:26 +0100)]
crypto/fsl: fix BLOB encapsulation and decapsulation

The blob_encap and blob_decap functions were not flushing the dcache
before passing data to CAAM/DMA and not invalidating the dcache when
getting data back.
Therefore, blob encapsulation and decapsulation failed with errors like
the following due to data cache incoherency:
"40000006: DECO: desc idx 0: Invalid KEY command"

To ensure coherency, we require the key_mod, src and dst buffers to be
aligned to the cache line size and flush/invalidate the memory regions.
The same requirements apply to the job descriptor.

Tested on an i.MX6Q board.

Reviewed-by: Sumit Garg <sumit.garg@nxp.com>
Signed-off-by: Clemens Gruber <clemens.gruber@pqgruber.com>
6 years agox86: tangier: Add Bluetooth to ACPI table
Andy Shevchenko [Thu, 4 Jan 2018 16:40:13 +0000 (18:40 +0200)]
x86: tangier: Add Bluetooth to ACPI table

As defined on reference board followed by Intel Edison a Bluetooth
device is attached to HSU0, i.e. PCI 0000:04.1.

Describe it in ACPI accordingly.

Note, we use BCM2E95 ID here as one most suitable for such device based
on the description in commit message of commit 89ab37b489d1
("Bluetooth: hci_bcm: Add support for BCM2E95 and BCM2E96")
in the Linux kernel source tree.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Acked-by: Bin Meng <bmeng.cn@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
6 years agox86: tangier: Use actual GPIO hardware numbers
Andy Shevchenko [Thu, 4 Jan 2018 16:40:12 +0000 (18:40 +0200)]
x86: tangier: Use actual GPIO hardware numbers

The recent commit 03c4749dd6c7
  ("gpio / ACPI: Drop unnecessary ACPI GPIO to Linux GPIO translation")
in the Linux kernel reveals the issue we have in ACPI tables here,
i.e. we must use hardware numbers for GPIO resources and,
taking into consideration that GPIO and pin control are *different* IPs
on Intel Tangier, we need to supply numbers properly.

Besides that, it improves user experience since the official documentation
for Intel Edison board is referring to GPIO hardware numbering scheme.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Acked-by: Bin Meng <bmeng.cn@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
6 years agox86: Move commands from under arch/x86 to cmd/x86/
Tom Rini [Wed, 3 Jan 2018 13:54:27 +0000 (08:54 -0500)]
x86: Move commands from under arch/x86 to cmd/x86/

We only need to compile and link these files when building for full
U-Boot.  Move them to under cmd/x86/ to make sure they aren't linked in
and undiscarded due to u_boot_list_2_cmd_* being included).

Cc: Bin Meng <bmeng.cn@gmail.com>
Signed-off-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
6 years agomx6ull: Handle the CONFIG_MX6ULL cases correctly
Fabio Estevam [Wed, 3 Jan 2018 14:33:05 +0000 (12:33 -0200)]
mx6ull: Handle the CONFIG_MX6ULL cases correctly

Since commit 051ba9e082f7 ("Kconfig: mx6ull: Deselect MX6UL from
CONFIG_MX6ULL") CONFIG_MX6ULL does not select CONFIG_MX6UL anymore, so
take this into consideration in all the checks for CONFIG_MX6UL.

This fixes a boot regression.

Reported-by: Stefan Agner <stefan@agner.ch>
Signed-off-by: Fabio Estevam <fabio.estevam@nxp.com>
Reviewed-by: Stefan Agner <stefan@agner.ch>
Tested-by: Breno Lima <breno.lima@nxp.com>
Tested-by: Peng Fan <peng.fan@nxp.com>
Reviewed-by: Stefano Babic <sbabic@denx.de>
Tested-by: Jörg Krause <joerg.krause@embedded.rocks>
6 years agoMerge git://git.denx.de/u-boot-rockchip
Tom Rini [Wed, 3 Jan 2018 17:27:12 +0000 (12:27 -0500)]
Merge git://git.denx.de/u-boot-rockchip

6 years agoARM: imx: cm_fx6: env: don't run boot scripts twice
Christopher Spinrath [Sat, 9 Dec 2017 15:37:43 +0000 (16:37 +0100)]
ARM: imx: cm_fx6: env: don't run boot scripts twice

Boot scripts located in the root directory of the first partition of
USB, mmc, and SATA drives are executed twice: first by the distro boot
command and then by the legacy boot command. This may have weird side
effects if those scripts only change or extend the environment
(including parts of the boot command itself).

Removing the script execution from the legacy boot command has its own
caveats. For instance, the distro boot command may execute the boot.scr
on the mmc drive, then the boot.scr on the SATA drive, before the
legacy boot command actually boots from the mmc drive. However, the
current behavior would only execute the boot.scr once more before the
actual boot, but it does not prevent the script located on the SATA
drive from being executed, and thus, both scripts from being mixed up.

Considering that the legacy boot command is only in place to boot old
(standard) installations, let's go with the resolution having less
custom code and remove the script execution from the legacy boot
command.

Signed-off-by: Christopher Spinrath <christopher.spinrath@rwth-aachen.de>
Reviewed-by: Fabio Estevam <fabio.estevam@nxp.com>
6 years agoARM: imx: cm_fx6: env: support distro boot command
Christopher Spinrath [Sat, 9 Dec 2017 15:37:42 +0000 (16:37 +0100)]
ARM: imx: cm_fx6: env: support distro boot command

The current default environment of the cm_fx6 is not suitable for
booting modern distributions.

Instead of extending the custom environment, let's use the distro
boot command, which has been developed for precisely this use case.

If the distro boot command fails, fall back to the old behavior
(except for USB drives where the old behaviour is completely covered
by the distro boot command). That way it is still possible to create
"rescue SD cards" for old installations (e.g. if one messes up the
on-flash environment).

Signed-off-by: Christopher Spinrath <christopher.spinrath@rwth-aachen.de>
Reviewed-by: Fabio Estevam <fabio.estevam@nxp.com>
6 years agoARM: imx: cm_fx6: env: use standard variables
Christopher Spinrath [Sat, 9 Dec 2017 15:37:41 +0000 (16:37 +0100)]
ARM: imx: cm_fx6: env: use standard variables

In preparation for supporting the distro boot command, introduce the
standard variables for specifying load addresses, which are documented
in README and doc/README.distro, and replace the custom variables
used so far with them.

Since the current address layout disregards an address for an initramfs,
also switch to the load addresses used and proven by other imx6 boards
(e.g. the wandboard and nitrogen6x), instead of going on with our own
way.

Signed-off-by: Christopher Spinrath <christopher.spinrath@rwth-aachen.de>
Reviewed-by: Fabio Estevam <fabio.estevam@nxp.com>
6 years agorockchip: firefly-rk3399: enable SPL_ATF_NO_PLATFORM_PARAM
Philipp Tomsich [Tue, 2 Jan 2018 20:16:44 +0000 (21:16 +0100)]
rockchip: firefly-rk3399: enable SPL_ATF_NO_PLATFORM_PARAM

The Rockchip-released ATF for the Firefly apparently (i.e. Kever
reported this) does not tolerate a FDT being passed as the platform
parameter and will run into a hard stop.

To work around this limitation in the ATF parameter handling, we
enable SPL_ATF_NO_PLATFORM_PARAM (which will force passing NULL for
the platform parameters).

Note that this only affects this platform, as the ATF releases for the
RK3368 and RK3399 have always either ignored the platform parameter
(i.e. before the FDT-based parameters were supported) or support
receiving a pointer to a FDT.

Signed-off-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
6 years agospl: atf: add SPL_ATF_NO_PLATFORM_PARAM option
Philipp Tomsich [Tue, 2 Jan 2018 20:16:43 +0000 (21:16 +0100)]
spl: atf: add SPL_ATF_NO_PLATFORM_PARAM option

While we expect to call a pointer to a valid FDT (or NULL) as the
platform parameter to an ATF, some ATF versions are not U-Boot aware
and have an insufficiently robust (or an overzealour) parameter
validation: either way, this may cause a hard-stop with uncooperative
ATF versions.

This change adds the option to suppress passing a platform parameter
and will always pass NULL.

Debug output from ATF w/ this option disabled (i.e. default):
      INFO:    plat_param_from_bl2: 0x291450
Debug output from ATF w/ this option enabled:
      INFO:    plat_param_from_bl2: 0

Signed-off-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
Tested-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
6 years agoimx: spl: Fix NAND bootmode detection
Eran Matityahu [Thu, 14 Dec 2017 18:20:02 +0000 (20:20 +0200)]
imx: spl: Fix NAND bootmode detection

commit 20f14714169 ("imx: spl: Update NAND bootmode detection bit")
broke the NAND bootmode detection by checking if
BOOT_CFG1[7:4] == 0x8 for NAND boot mode.
This commit essentially reverts it, while using the IMX6_BMODE_*
macros that were introduced since.

Tables 8-7 & 8-10 from IMX6DQRM say the NAND boot mode selection
is done when BOOT_CFG1[7] is 1, but BOOT_CFG1[6:4] is not
necessarily 0x0 in this case.
Actually, NAND boot mode is when 0x8 <= BOOT_CFG1[7:4] <= 0xf,
like it was in the code before.

Signed-off-by: Eran Matityahu <eran.m@variscite.com>
Cc: Stefano Babic <sbabic@denx.de>
Cc: Jagan Teki <jagan@openedev.com>
Cc: Tim Harvey <tharvey@gateworks.com>
6 years agomx6: Add board mx6memcal for use in validating DDR
Eric Nelson [Mon, 11 Dec 2017 15:52:11 +0000 (13:52 -0200)]
mx6: Add board mx6memcal for use in validating DDR

This is a virtual "board" that uses configuration files and
Kconfig to define the memory layout used by a real board during
the board bring-up process.

It generates an SPL image that can be loaded using imx_usb or
SB_LOADER.exe.

When run, it will generate a set of calibration constants for
use in either or both a DCD configuration file for boards that
use u-boot.imx or struct mx6_mmdc_calibration for boards that
boot via SPL.

In essence, it is a configurable, open-source variant of the
Freescale ddr-stress tool.

https://community.nxp.com/docs/DOC-105652

File mx6memcal_defconfig configures the board for use with
mx6sabresd or mx6qsabreauto.

Signed-off-by: Eric Nelson <eric@nelint.com>
Signed-off-by: Fabio Estevam <fabio.estevam@nxp.com>
6 years agovideo: Support multiple lines version string display
Peng Fan [Tue, 2 Jan 2018 07:25:37 +0000 (15:25 +0800)]
video: Support multiple lines version string display

The calculation of left space for version string is not correct, should
use VIDEO_COLS not VIDEO_LINE_LEN / 2, otherwise we will get larger space
than actual have and cause string to overlay logo picture.

Also current version string display only supports two lines words at max.
This also causes overlay when the LCD pixel column size is not enough.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
Tested-by: Anatolij Gustschin <agust@denx.de>
6 years agovideo: ipu: Fix dereferencing NULL pointer problem
Peng Fan [Tue, 2 Jan 2018 07:25:36 +0000 (15:25 +0800)]
video: ipu: Fix dereferencing NULL pointer problem

The clk_set_rate function dereferences the clk pointer without
checking whether it is NULL. This may cause problem when clk is NULL.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
Signed-off-by: Anatolij Gustschin <agust@denx.de>
6 years agorockchip: board: lion-rk3368: reduce env-size default to 8KiB
Philipp Tomsich [Tue, 2 Jan 2018 17:43:37 +0000 (18:43 +0100)]
rockchip: board: lion-rk3368: reduce env-size default to 8KiB

We want to have the same configuration defaults for the RK3368-uQ7
as for the RK3399-Q7: this change reduces the default env-size to
8KiB to ensure that it does not overlap the boot-payload on SD/MMC
configurations.

References: commit fe529e6597c0 ("rockchip: rk3399-puma: reduce env size to 8kiB")
Signed-off-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
6 years agoboards: amlogic: khadas-vim: Typo fixup
Neil Armstrong [Tue, 2 Jan 2018 12:34:59 +0000 (13:34 +0100)]
boards: amlogic: khadas-vim: Typo fixup

Khadas VIM is an Open Source DIY Box manufactured by Shenzhen Wesion NOT 'Tomato'

The fix was provided by Khadas Team member 'numbqq'.

Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
6 years agoPrepare v2018.01-rc3 v2018.01-rc3
Tom Rini [Tue, 2 Jan 2018 00:46:43 +0000 (19:46 -0500)]
Prepare v2018.01-rc3

Signed-off-by: Tom Rini <trini@konsulko.com>
6 years agoMerge branch 'master' of git://git.denx.de/u-boot-rockchip
Tom Rini [Mon, 1 Jan 2018 14:04:35 +0000 (09:04 -0500)]
Merge branch 'master' of git://git.denx.de/u-boot-rockchip

6 years agopower: tps65910: replace error() by pr_err()
Felix Brack [Mon, 18 Dec 2017 14:38:28 +0000 (15:38 +0100)]
power: tps65910: replace error() by pr_err()

The patch replaces the former error() by the new pr_err().
This makes the TPS65910 driver conform to Masahiro's patch
'treewide:replace with error() with pr_err()' introduced
October 2017.

Signed-off-by: Felix Brack <fb@ltec.ch>
Reviewed-by: Simon Glass <sjg@chromium.org>
6 years agoconfigs: am335x_boneblack: Bring back missed bootcmd
Sam Protsenko [Thu, 28 Dec 2017 21:03:25 +0000 (23:03 +0200)]
configs: am335x_boneblack: Bring back missed bootcmd

Commit b6251db8c3f0 ("Kconfig: Introduce USE_BOOTCOMMAND and migrate
BOOTCOMMAND") removed CONFIG_BOOTCOMMAND option from
include/configs/am335x_evm.h file. But that option wasn't added to
defconfig files for BeagleBone Black board.

Because of this we can't boot Linux from SD card using just
"run bootcmd", getting next error:

    ** File not found /boot/undefined **

That's because "fdtfile" variable has "undefined" value by default, and
"bootcmd" doesn't call "run findfdt" command, which assigns "fdtfile" to
correct device tree file for current board name (obtained from EEPROM).

So we are forced to either call "run findfdt" command manually, or
assign manually "fdtfile=am335x-boneblack.dtb" (e.g. in uEnv.txt file).

Bring back CONFIG_BOOTCOMMAND to BBB defconfigs so that we can boot
Linux rootfs from SD card automatically without any addition actions.

Signed-off-by: Sam Protsenko <semen.protsenko@linaro.org>
6 years agodm: core: remove orphaned parameter description in platdata.h
Heinrich Schuchardt [Sun, 24 Dec 2017 12:14:12 +0000 (13:14 +0100)]
dm: core: remove orphaned parameter description in platdata.h

struct driver_info has no field 'flags'.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Reviewed-by: Simon Glass <sjg@chromium.org>
6 years agoARM: omap3: evm: Refactor 'board_eth_init'
Derald D. Woods [Sat, 16 Dec 2017 20:14:50 +0000 (14:14 -0600)]
ARM: omap3: evm: Refactor 'board_eth_init'

This commit clears 'ethaddr' before calling 'smc911x_initialize' to
allow the SROM MAC address to be assigned properly.

Signed-off-by: Derald D. Woods <woods.technical@gmail.com>
6 years agoARM: dts: omap3-evm: Enable DM and devicetree for TMDSEVM{3530, 3730}
Derald D. Woods [Wed, 27 Dec 2017 15:40:16 +0000 (09:40 -0600)]
ARM: dts: omap3-evm: Enable DM and devicetree for TMDSEVM{3530, 3730}

This commit updates the configuration files needed to support OF_CONTROL
on the OMAP3 EVM baseboard.

Additionally:
- CONFIG_SYS_THUMB_BUILD is enabled
- CONFIG_SPL_ENV_SUPPORT is enabled

Tested using GCC 7.2.0 [--with-float=hard --with-mode=thumb].

Signed-off-by: Derald D. Woods <woods.technical@gmail.com>
6 years agoARM: dts: omap3-evm: Add support for TMDSEVM{3530, 3730}
Derald D. Woods [Sat, 16 Dec 2017 20:14:48 +0000 (14:14 -0600)]
ARM: dts: omap3-evm: Add support for TMDSEVM{3530, 3730}

This commit adds OMAP3 EVM devicetree files from Linux v4.15-rc3. Note
that this is the first addition of OMAP34XX devicetree files.

Signed-off-by: Derald D. Woods <woods.technical@gmail.com>
6 years agoARM: omap3: evm: Do not relocate FDT address
Derald D. Woods [Thu, 28 Dec 2017 07:25:43 +0000 (01:25 -0600)]
ARM: omap3: evm: Do not relocate FDT address

This commit keeps the 'fdtaddr' as provided by DEFAULT_LINUX_BOOT_ENV.

Signed-off-by: Derald D. Woods <woods.technical@gmail.com>
6 years agorockchip: dts: rk3399-evb: support boot from sd-card
Kever Yang [Wed, 20 Dec 2017 02:40:40 +0000 (10:40 +0800)]
rockchip: dts: rk3399-evb: support boot from sd-card

Enable sdmmc node in SPL and add it to boot order.

Signed-off-by: Kever Yang <kever.yang@rock-chips.com>
Acked-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
Reviewed-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
[Fixed commit tags:]
Signed-off-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
6 years agorockchip: rk3399-puma: reduce env size to 8kiB
Jakob Unterwurzacher [Thu, 21 Dec 2017 10:03:01 +0000 (11:03 +0100)]
rockchip: rk3399-puma: reduce env size to 8kiB

This commit changes the size of the enviroment (for the RK3399-Q7) to
8kiB for all possible locations of the environment (i.e. even when the
environment is saved to SD card).

With the default of 32kiB, the environment overwrites the SPL
stage which lives at 16kiB.

Signed-off-by: Jakob Unterwurzacher <jakob.unterwurzacher@theobroma-systems.com>
Acked-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
Reviewed-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
Tested-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
[Reworked commit-message:]
Signed-off-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
6 years agoMerge git://git.denx.de/u-boot-imx
Tom Rini [Fri, 29 Dec 2017 14:27:04 +0000 (09:27 -0500)]
Merge git://git.denx.de/u-boot-imx

6 years agoarm: imx: add tzic interrupt controller for imx53
Patrick Bruenn [Mon, 11 Dec 2017 12:09:14 +0000 (13:09 +0100)]
arm: imx: add tzic interrupt controller for imx53

Since commit 999a78d5cf00 ("scripts/dtc: Update to upstream version v1.4.5-3-gb1a60033c110")
dtc warns about:
arch/arm/dts/imx53-cx9020.dtb: Warning (interrupts_property): Missing interrupt-parent for /soc/aips@50000000/serial@53fc0000
arch/arm/dts/imx53-cx9020.dtb: Warning (interrupts_property): Missing interrupt-parent for /soc/aips@50000000/ccm@53fd4000
arch/arm/dts/imx53-cx9020.dtb: Warning (interrupts_property): Missing interrupt-parent for /soc/aips@50000000/gpio@53fe4000
arch/arm/dts/imx53-cx9020.dtb: Warning (interrupts_property): Missing interrupt-parent for /soc/aips@60000000/sdma@63fb0000
arch/arm/dts/imx53-cx9020.dtb: Warning (interrupts_property): Missing interrupt-parent for /soc/aips@60000000/ethernet@63fec000

Fix this by adding a node for the tzic interrupt controller.
Copied from "<Linux>/arch/arm/boot/dts/imx53.dts"

Signed-off-by: Patrick Bruenn <p.bruenn@beckhoff.com>
Reviewed-by: Fabio Estevam <fabio.estevam@nxp.com>
6 years agoARM: imx6: Disable DDR DRAM calibration DHCOM i.MX6 PDK
Marek Vasut [Mon, 11 Dec 2017 15:19:33 +0000 (16:19 +0100)]
ARM: imx6: Disable DDR DRAM calibration DHCOM i.MX6 PDK

The DDR DRAM calibration doesn't work on T-topology sometimes, so disable it.

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Stefano Babic <sbabic@denx.de>
6 years agoimx: Fix missing spl_sd configuration for wandboard.
Vagrant Cascadian [Thu, 7 Dec 2017 00:31:50 +0000 (16:31 -0800)]
imx: Fix missing spl_sd configuration for wandboard.

In commit 6e6cf015e7cdd7ca83a933320a81201972bd5e5e ("Merge
git://www.denx.de/git/u-boot-imx") the line defining spl_sd
configuration for wandboard was removed, which resulted in no SPL
target being built.

Add it back.

Signed-off-by: Vagrant Cascadian <vagrant@debian.org>
Reviewed-by: Fabio Estevam <fabio.estevam@nxp.com>
6 years agoimx: Kconfig: Add HAS_CAAM option
Breno Lima [Mon, 27 Nov 2017 23:09:00 +0000 (21:09 -0200)]
imx: Kconfig: Add HAS_CAAM option

Currently CONFIG_SECURE_BOOT is selecting FSL_CAAM for all i.MX devices,
this causes the following error when building mx6sl boards since
this SoC doesn't have the CAAM block:

In file included from drivers/crypto/fsl/jobdesc.c:12:0:
drivers/crypto/fsl/jobdesc.c: In function 'inline_cnstr_jobdesc_blob_dek':
include/fsl_sec.h:268:25: error: 'CAAM_ARB_BASE_ADDR' undeclared (first use
in this function)
 #define SEC_MEM_PAGE1  (CAAM_ARB_BASE_ADDR + 0x1000)
                         ^
drivers/crypto/fsl/jobdesc.c:140:21: note: in expansion of macro 'SEC_MEM_PAGE1'
  memcpy((uint32_t *)SEC_MEM_PAGE1, (uint32_t *)plain_txt, in_sz);
                     ^
include/fsl_sec.h:268:25: note: each undeclared identifier is reported only
once for each function it appears in
 #define SEC_MEM_PAGE1  (CAAM_ARB_BASE_ADDR + 0x1000)
                         ^
drivers/crypto/fsl/jobdesc.c:140:21: note: in expansion of macro 'SEC_MEM_PAGE1'
  memcpy((uint32_t *)SEC_MEM_PAGE1, (uint32_t *)plain_txt, in_sz);
                     ^
scripts/Makefile.build:280: recipe for target 'drivers/crypto/fsl/jobdesc.o'
failed
make[3]: *** [drivers/crypto/fsl/jobdesc.o] Error 1
scripts/Makefile.build:425: recipe for target 'drivers/crypto/fsl' failed
make[2]: *** [drivers/crypto/fsl] Error 2
scripts/Makefile.build:425: recipe for target 'drivers/crypto' failed
make[1]: *** [drivers/crypto] Error 2

Add HAS_CAAM configuration to avoid this error.

Signed-off-by: Breno Lima <breno.lima@nxp.com>
Reviewed-by: Fabio Estevam <fabio.estevam@nxp.com>
6 years agoKconfig: mx6ull: Deselect MX6UL from CONFIG_MX6ULL
Breno Lima [Mon, 27 Nov 2017 23:07:40 +0000 (21:07 -0200)]
Kconfig: mx6ull: Deselect MX6UL from CONFIG_MX6ULL

MX6UL contains features that MX6ULL doesn't support.
Deselect CONFIG_MX6UL and select SYS_L2CACHE_OFF and ROM_UNIFIED_SECTIONS.

The motivation for doing this change is that MX6UL supports CAAM and
MX6ULL does not.

Signed-off-by: Breno Lima <breno.lima@nxp.com>
Reviewed-by: Fabio Estevam <fabio.estevam@nxp.com>
6 years agomx6sl: Select MX6SL option via Kconfig
Breno Lima [Mon, 27 Nov 2017 23:06:01 +0000 (21:06 -0200)]
mx6sl: Select MX6SL option via Kconfig

Currently the MX6SL option is selected via CONFIG_SYS_EXTRA_OPTIONS,
but it is better to select it directly via Kconfig.

Signed-off-by: Breno Lima <breno.lima@nxp.com>
Reviewed-by: Fabio Estevam <fabio.estevam@nxp.com>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
6 years agowarp: imximage.cfg: Handle the CONFIG_SECURE_BOOT case
Breno Lima [Mon, 27 Nov 2017 23:04:11 +0000 (21:04 -0200)]
warp: imximage.cfg: Handle the CONFIG_SECURE_BOOT case

Secure boot is not enabled in warp imximage.cfg, add support for it.

Signed-off-by: Breno Lima <breno.lima@nxp.com>
Reviewed-by: Fabio Estevam <fabio.estevam@nxp.com>
6 years agomx6slevk: imximage.cfg: Handle the CONFIG_SECURE_BOOT case
Breno Lima [Mon, 27 Nov 2017 23:02:43 +0000 (21:02 -0200)]
mx6slevk: imximage.cfg: Handle the CONFIG_SECURE_BOOT case

Secure boot is not enabled in mx6slevk imximage.cfg, add support for it.

Signed-off-by: Breno Lima <breno.lima@nxp.com>
Reviewed-by: Fabio Estevam <fabio.estevam@nxp.com>
Acked-by: Peng Fan <peng.fan@nxp.com>
6 years agomx6sxsabresd: Load the correct dtb for revA board
Fabio Estevam [Mon, 27 Nov 2017 12:25:10 +0000 (10:25 -0200)]
mx6sxsabresd: Load the correct dtb for revA board

Currently only imx6sx-sdb.dtb is loaded, but if revA board is used the
correct dtb is imx6sx-sdb-reva.dtb, so make this possible.

While at it, remove an extra 'mmc dev'.

Signed-off-by: Fabio Estevam <fabio.estevam@nxp.com>
6 years agoimx: Add a common way for detecting NXP boards revision
Fabio Estevam [Mon, 27 Nov 2017 12:25:09 +0000 (10:25 -0200)]
imx: Add a common way for detecting NXP boards revision

NXP development boards based on i.MX6/i.MX7 contain the board
revision information stored in the fuses.

Introduce a common function that can be shared by different boards and
convert mx6sabreauto to use this new mechanism.

Signed-off-by: Fabio Estevam <fabio.estevam@nxp.com>
6 years agoARM: imx: display5: config: Update display5_factory_defconfig to use USE_BOOTCOMMAND
Lukasz Majewski [Mon, 27 Nov 2017 11:29:18 +0000 (12:29 +0100)]
ARM: imx: display5: config: Update display5_factory_defconfig to use USE_BOOTCOMMAND

This commit switch display5_factory_defconfig to use new, generic
USE_BOOTCOMMAND Kconfig option.

Signed-off-by: Lukasz Majewski <lukma@denx.de>
6 years agopower: pmic.h: include dm/ofnode.h
Peng Fan [Mon, 4 Dec 2017 04:31:20 +0000 (12:31 +0800)]
power: pmic.h: include dm/ofnode.h

Include dm/ofnode.h.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Cc: Stefano Babic <sbabic@denx.de>
Reviewed-by: Fabio Estevam <fabio.estevam@nxp.com>