oweals/u-boot.git
4 years agotreewide: Remove CONFIG_SYS_UBOOT_START from configs board files
Patrice Chotard [Fri, 6 Dec 2019 14:01:49 +0000 (15:01 +0100)]
treewide: Remove CONFIG_SYS_UBOOT_START from configs board files

As previous CONFIG_SYS_UBOOT_START is now set by default to
CONFIG_SYS_TEXT_BASE when not defined, CONFIG_SYS_UBOOT_START
can be removed from include/configs board files.

Signed-off-by: Patrice Chotard <patrice.chotard@st.com>
Acked-by: Lukasz Majewski <lukma@denx.de>
4 years agoMakefile: Fix CONFIG_SYS_UBOOT_START default value
Patrice Chotard [Fri, 6 Dec 2019 14:01:48 +0000 (15:01 +0100)]
Makefile: Fix CONFIG_SYS_UBOOT_START default value

This patches restores boot on boards which rely on
CONFIG_SYS_UBOOT_START equal to CONFIG_SYS_TEXT_BASE when using SPL

Fixes: d3e97b53c1f2 ("spl: fix entry_point equal to load_addr")

Signed-off-by: Patrice Chotard <patrice.chotard@st.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
4 years agocmd/Kconfig: Add more dependencies to OSE bootm support
Tom Rini [Thu, 5 Dec 2019 23:46:11 +0000 (18:46 -0500)]
cmd/Kconfig: Add more dependencies to OSE bootm support

Per Enea OSE documentation, it supports some classes of ARM, PowerPC and
X86.  Limit the option to those platforms.

Signed-off-by: Tom Rini <trini@konsulko.com>
4 years agobdinfo: show multi_dtb_fit
Heiko Schocher [Sat, 9 Nov 2019 03:56:10 +0000 (04:56 +0100)]
bdinfo: show multi_dtb_fit

if MULTI_DTB_FIT is enabled it is helpful to display
the value of gd->multi_dtb_fit in bdinfo.

Signed-off-by: Heiko Schocher <hs@denx.de>
Reviewed-by: Simon Glass <sjg@chromium.org>
4 years agocmd_ut: add a parameter prefix to the function cmd_ut_category
Philippe Reynes [Tue, 17 Dec 2019 18:07:04 +0000 (19:07 +0100)]
cmd_ut: add a parameter prefix to the function cmd_ut_category

There is black magic in the file conftest.py that list
all the test unit. Then, all those test unit are called
in pytest. This call is done with the end of the name
(for example checksum if the full name is bloblist_test_checksum).

The result is that only test for dm are really executed.
by pytest, all others tests are listed but never executed.

This behaviour happens because the dm test unit only check
the end of the name and others tests checks the full name.

To fix this issue, I've added a prefix to the function
cmd_ut_category, and this prefix is removed when looking
for the unit test.

Signed-off-by: Philippe Reynes <philippe.reynes@softathome.com>
Tested-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
4 years agopower: regulator: support off-on-delay-us
Peng Fan [Mon, 4 Nov 2019 09:27:23 +0000 (09:27 +0000)]
power: regulator: support off-on-delay-us

off-on-delay-us has been supported by Linux, so let's use it.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
4 years agoremoteproc: stm32: load resource table from firmware
Fabien Dessenne [Wed, 30 Oct 2019 13:38:33 +0000 (14:38 +0100)]
remoteproc: stm32: load resource table from firmware

Load the optional resource table from the firmware, and write its
address in the dedicated backup register.

Signed-off-by: Fabien Dessenne <fabien.dessenne@st.com>
Acked-by: Patrick Delaunay <patrick.delaunay@st.com>
4 years agostm32mp1: remove copro_state environment variable
Fabien Dessenne [Wed, 30 Oct 2019 13:38:32 +0000 (14:38 +0100)]
stm32mp1: remove copro_state environment variable

Since the coprocessor state is tracked in a backup register, there is
no more need for tracking it in an environment variable : remove it.

Signed-off-by: Fabien Dessenne <fabien.dessenne@st.com>
Acked-by: Patrick Delaunay <patrick.delaunay@st.com>
4 years agoremoteproc: stm32: track the coprocessor state in a backup register
Fabien Dessenne [Wed, 30 Oct 2019 13:38:31 +0000 (14:38 +0100)]
remoteproc: stm32: track the coprocessor state in a backup register

Update the dedicated backup register to track the coprocessor state and
rely on that register to compute the .is_running() value (which expects
a return value of 0 -not 1- if the processor is running).

Signed-off-by: Fabien Dessenne <fabien.dessenne@st.com>
Acked-by: Patrick Delaunay <patrick.delaunay@st.com>
4 years agostm32mp1: reset coprocessor status at cold boot
Fabien Dessenne [Wed, 30 Oct 2019 13:38:30 +0000 (14:38 +0100)]
stm32mp1: reset coprocessor status at cold boot

Reset ResourceTableAddress and CoprocessorState at cold boot, preserve
these values at standby wakeup.

Signed-off-by: Fabien Dessenne <fabien.dessenne@st.com>
Acked-by: Patrick Delaunay <patrick.delaunay@st.com>
4 years agostm32mp1: declare backup registers for coprocessor
Fabien Dessenne [Wed, 30 Oct 2019 13:38:29 +0000 (14:38 +0100)]
stm32mp1: declare backup registers for coprocessor

Use the backup register #17 as coprocessor resource table address and
backup register #18 as coprocessor state.

Signed-off-by: Fabien Dessenne <fabien.dessenne@st.com>
Acked-by: Patrick Delaunay <patrick.delaunay@st.com>
4 years agoremoteproc: elf_loader: Add elf resource table load support
Fabien Dessenne [Wed, 30 Oct 2019 13:38:28 +0000 (14:38 +0100)]
remoteproc: elf_loader: Add elf resource table load support

Add rproc_elf_load_rsc_table(), which searches for a resource table in
an elf64/elf32 image, and if found, copies it to device memory.
Add also the elf32 and elf64 variants of this API.
Add a test for this.

Signed-off-by: Fabien Dessenne <fabien.dessenne@st.com>
Acked-by: Patrick Delaunay <patrick.delaunay@st.com>
Reviewed-by: Lokesh Vutla <lokeshvutla@ti.com>
4 years agospl: fit: Allow the board to tell if more images must be loaded from FIT
Jean-Jacques Hiblot [Tue, 22 Oct 2019 14:39:22 +0000 (16:39 +0200)]
spl: fit: Allow the board to tell if more images must be loaded from FIT

spl_fit_get_image_name() is used to get the names of the images that the
SPL must load from the FIT. It relies on the content of a property present
in the FIT. The list of images is thus statically defined in the FIT.
With this scheme, it quickly becomes hard to manage combinations of more
than a handful of images.
To address this problem, give the board driver code the opportunity to
add to the list of images. The images from the FIT property are loaded
first, and then the board_get_fit_loadable() is called to get more image
names.

Signed-off-by: Jean-Jacques Hiblot <jjhiblot@ti.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
4 years agodts: Add support for adding DT overlays in u-boot.img
Jean-Jacques Hiblot [Tue, 22 Oct 2019 14:39:21 +0000 (16:39 +0200)]
dts: Add support for adding DT overlays in u-boot.img

If u-boot.img is a FIT image, CONFIG_OF_OVERLAY_LIST can be used to add
DT overlays to u-boot.img.

Signed-off-by: Jean-Jacques Hiblot <jjhiblot@ti.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
4 years agoinclude: board: provide empty stubs when the BOARD option is not selected
Jean-Jacques Hiblot [Tue, 22 Oct 2019 14:39:20 +0000 (16:39 +0200)]
include: board: provide empty stubs when the BOARD option is not selected

Useful to avoid #ifdef throughout the code that uses the board driver API.

Signed-off-by: Jean-Jacques Hiblot <jjhiblot@ti.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
4 years agodrivers: board: Add get_fit_loadable()
Jean-Jacques Hiblot [Tue, 22 Oct 2019 14:39:19 +0000 (16:39 +0200)]
drivers: board: Add get_fit_loadable()

This function will be used by the SPL to get the names of images to load
from the FIT. This allows to load different images based on runtime HW
detection.

Signed-off-by: Jean-Jacques Hiblot <jjhiblot@ti.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
4 years agodrivers: board: Make the board drivers available in SPL
Jean-Jacques Hiblot [Tue, 22 Oct 2019 14:39:18 +0000 (16:39 +0200)]
drivers: board: Make the board drivers available in SPL

Make the board driver available in the SPL too. The board driver is a way
to provide useful information about the board and that can be useful in
the SPL too.

Signed-off-by: Jean-Jacques Hiblot <jjhiblot@ti.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
4 years agospl: fit: constify the output parameter of spl_fit_get_image_name()
Jean-Jacques Hiblot [Tue, 22 Oct 2019 14:39:17 +0000 (16:39 +0200)]
spl: fit: constify the output parameter of spl_fit_get_image_name()

There is no need for it to be non-constant. Making it constant, allows to
return constant string without warning.

Signed-off-by: Jean-Jacques Hiblot <jjhiblot@ti.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
4 years agoMakefile.lib: include /__symbols__ in dtb if SPL_LOAD_FIT_APPLY_OVERLAY is enabled
Jean-Jacques Hiblot [Tue, 22 Oct 2019 14:39:16 +0000 (16:39 +0200)]
Makefile.lib: include /__symbols__ in dtb if SPL_LOAD_FIT_APPLY_OVERLAY is enabled

In order to apply an overlay to a DTB. The DTB must have been generated
with the option '-@'.

Signed-off-by: Jean-Jacques Hiblot <jjhiblot@ti.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
4 years agospl: fit: be more verbose when an error occurs when applying the overlays
Jean-Jacques Hiblot [Tue, 22 Oct 2019 14:39:15 +0000 (16:39 +0200)]
spl: fit: be more verbose when an error occurs when applying the overlays

There are many ways the overlay application can fail.
2 of them are probably the most common:
- the application itself failed. Usually this is comes from an unresolved
  reference
- DTBO not available in FIT (could be because of a typo)

In both case it is good to be more explicit about the error and at least
show which overlay is failing.

Signed-off-by: Jean-Jacques Hiblot <jjhiblot@ti.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
4 years agospl: fit: Do not fail immediately if an overlay is not available
Jean-Jacques Hiblot [Tue, 22 Oct 2019 14:39:14 +0000 (16:39 +0200)]
spl: fit: Do not fail immediately if an overlay is not available

If one overlay that must be applied cannot be found in the FIT, the current
implementation stops applying the overlays. Let's make it skip only the
failing overlay instead.

Signed-off-by: Jean-Jacques Hiblot <jjhiblot@ti.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
4 years agospl: fit: allocate a temporary buffer to load the overlays
Jean-Jacques Hiblot [Tue, 22 Oct 2019 14:39:13 +0000 (16:39 +0200)]
spl: fit: allocate a temporary buffer to load the overlays

If the node describing an overlay does not specify a load address, it will
be loaded at the address previously used.
Fixing it by allocating a temporary buffer that will be used as a
default load address. By default, the size of the buffer is 64kB which
should be plenty for most use cases.

Signed-off-by: Jean-Jacques Hiblot <jjhiblot@ti.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
4 years agospl: fit: Make room in the FDT before applying overlays
Jean-Jacques Hiblot [Tue, 22 Oct 2019 14:39:12 +0000 (16:39 +0200)]
spl: fit: Make room in the FDT before applying overlays

Make room in the FDT before applying the overlay, otherwise it may fail if
the overlay is big. As the exact added size is not known in advance, just
add the size of the overlay.
Move after the end of the application of the overlays, the resize  of the
FDT for the injection of the details on the loadables.

Signed-off-by: Jean-Jacques Hiblot <jjhiblot@ti.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
4 years agospl: fit: Add support for applying DT overlay
Michal Simek [Tue, 22 Oct 2019 14:39:11 +0000 (16:39 +0200)]
spl: fit: Add support for applying DT overlay

doc/uImage.FIT/overlay-fdt-boot.txt is describing how to create FIT
image with DT overlays in it.
Add support for this feature to SPL.

Here is the ZynqMP fragment where dtb points to full DT and dtbo is
overlay which should be applied on the top of dtb.
config {
        description = "ATF with full u-boot overlay";
        firmware = "atf";
        loadables = "uboot";
        fdt = "dtb", "dtbo";
};

The whole feature depends on OF_LIBFDT_OVERLAY which is adding +4kB code
and 0 for platforms which are not enabling this feature.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Signed-off-by: Jean-Jacques Hiblot <jjhiblot@ti.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
4 years agospl: fit: don't load the firmware twice
Jean-Jacques Hiblot [Tue, 22 Oct 2019 14:39:10 +0000 (16:39 +0200)]
spl: fit: don't load the firmware twice

When u-boot.img is a FIT image generated automatically by mkimage, the
configuration node has the following structure:
conf-1 {
   description = "k3-am654-base-board";
   firmware = "firmware-1";
   loadables = "firmware-1";
   fdt = "fdt-1";
};

The firmware is referenced twice. Once by the 'firmware' property and
once by the 'loadables' property. Currently this result in the firmware
being loaded twice. This is not a big problem but has an impact on the
boot time.
Fixing it by not loading a loadable image if it is also the firmware image.

Signed-off-by: Jean-Jacques Hiblot <jjhiblot@ti.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Tested-by: Andreas Dannenberg <dannenberg@ti.com>
4 years agotools: dumpimage: Fall-though to print usage for help command
Andrew F. Davis [Tue, 17 Sep 2019 21:09:35 +0000 (17:09 -0400)]
tools: dumpimage: Fall-though to print usage for help command

This has the same result but some compilers will warn about this
fall-through if there are statements as part of the label block.

Signed-off-by: Andrew F. Davis <afd@ti.com>
Reviewed-by: Lokesh Vutla <lokeshvutla@ti.com>
4 years agotools: fit_image: Use fit_image_get_data_and_size for getting offset/size
Andrew F. Davis [Tue, 17 Sep 2019 21:09:34 +0000 (17:09 -0400)]
tools: fit_image: Use fit_image_get_data_and_size for getting offset/size

This is very similar to fit_image_get_data but has the benefit of working
on FIT images with external data unlike fit_image_get_data. This is
useful for extracting sub-images from type of FIT image as this would
previously just silently fail. Add an error message also so if this
still fails it is easier to find out why.

Signed-off-by: Andrew F. Davis <afd@ti.com>
Reviewed-by: Lokesh Vutla <lokeshvutla@ti.com>
4 years agotools: dumpimage: Provide more feedback on internal errors
Andrew F. Davis [Tue, 17 Sep 2019 21:09:33 +0000 (17:09 -0400)]
tools: dumpimage: Provide more feedback on internal errors

The dumpimage utility errors out in a number of places without providing
sufficient feedback to allow the user to easily determine what has gone
wrong. Add additional error messages to make the cause of the failure
more obvious.

Signed-off-by: Andrew F. Davis <afd@ti.com>
Reviewed-by: Lokesh Vutla <lokeshvutla@ti.com>
4 years agoMerge tag 'u-boot-imx-20200107' of https://gitlab.denx.de/u-boot/custodians/u-boot-imx
Tom Rini [Tue, 7 Jan 2020 13:45:43 +0000 (08:45 -0500)]
Merge tag 'u-boot-imx-20200107' of https://gitlab.denx.de/u-boot/custodians/u-boot-imx

New for 2020.04
---------------

- New boards
Embedded Artists COM board
Xea Board
- Switch to DM:
Aristainetos boards
Toradex colibri (DM_ETH)
iCubox
GE bx50v3
mx7dsabre (DM_ETH)
cx9020
- New features:
Bootaux with elf files
Default SYS_THUMB_BUILD for i.MX6/7
- Fixes:
DHCOM i.MX6 PDK
Engicam
i.MX8M tools (imx8m_image)

Travis: https://travis-ci.org/sbabic/u-boot-imx/builds/633679664

4 years agoMerge tag 'u-boot-atmel-2020.04-a' of https://gitlab.denx.de/u-boot/custodians/u...
Tom Rini [Tue, 7 Jan 2020 13:44:56 +0000 (08:44 -0500)]
Merge tag 'u-boot-atmel-2020.04-a' of https://gitlab.denx.de/u-boot/custodians/u-boot-atmel

First set of u-boot-atmel features for 2020.04 cycle

This feature set is a patch series from Tudor Ambarus which includes
parsing of the spi flash SFDP parser for SST flashes, and using those
tables to retrieve unique saved per device MAC address. This is then
used as base mac address on the SAMA5D2 Wireless SOM EK board.

4 years agoARM: mxs: spl_boot.c: make early_delay more robust
Rasmus Villemoes [Tue, 10 Sep 2019 08:32:01 +0000 (08:32 +0000)]
ARM: mxs: spl_boot.c: make early_delay more robust

It's true that booting normally doesn't take long enough for the
register to roll (which actually happens in a little over an hour, not
just a few seconds). However, the counter starts at power-on, and if
the board is held in reset to be booted over USB, one actually risks
hitting wrap-around during boot, which can both result in too short
delays (if the "st += delay" calculation makes st small) and
theoretically also unbound delays (if st ends up being UINT_MAX and
one just misses sampling digctl_microseconds at that point).

It doesn't take more code to DTRT, and once bitten, twice shy.

Signed-off-by: Rasmus Villemoes <rasmus.villemoes@prevas.dk>
4 years agoARM: dts: imx6qdl-icore-1.5: Remove duplicate phy reset methods
Michael Trimarchi [Mon, 30 Dec 2019 12:04:08 +0000 (17:34 +0530)]
ARM: dts: imx6qdl-icore-1.5: Remove duplicate phy reset methods

Engicam i.CoreM6 1.5 Quad/Dual MIPI dtsi is reusing fec node
from Engicam i.CoreM6 dtsi but have sampe copy of phy-reset-gpio
and phy-mode properties.

So, drop this phy reset methods from imx6qdl-icore-1.5 dsti file.

Cc: Jacopo Mondi <jacopo@jmondi.org>
Signed-off-by: Michael Trimarchi <michael@amarulasolutions.com>
Signed-off-by: Jagan Teki <jagan@amarulasolutions.com>
4 years agoARM: dts: imx6q-icore-mipi: Use 1.5 version of i.Core MX6DL
Jagan Teki [Mon, 30 Dec 2019 12:04:07 +0000 (17:34 +0530)]
ARM: dts: imx6q-icore-mipi: Use 1.5 version of i.Core MX6DL

The EDIMM STARTER KIT i.Core 1.5 MIPI Evaluation is based on
the 1.5 version of the i.Core MX6 cpu module. The 1.5 version
differs from the original one for a few details, including the
ethernet PHY interface clock provider.

With this commit, the ethernet interface works properly:
SMSC LAN8710/LAN8720 2188000.ethernet-1:00: attached PHY driver

While before using the 1.5 version, ethernet failed to startup
do to un-clocked PHY interface:
fec 2188000.ethernet eth0: could not attach to PHY

Similar fix has merged for i.Core MX6Q but missed to update for DL.

Signed-off-by: Michael Trimarchi <michael@amarulasolutions.com>
Signed-off-by: Jagan Teki <jagan@amarulasolutions.com>
4 years agoARM: dts: icorem6: Sync engicam device trees from v5.4
Jagan Teki [Mon, 30 Dec 2019 12:04:06 +0000 (17:34 +0530)]
ARM: dts: icorem6: Sync engicam device trees from v5.4

Sync Engicam device tree file from v5.4 linux-next.

Signed-off-by: Michael Trimarchi <michael@amarulasolutions.com>
Signed-off-by: Jagan Teki <jagan@amarulasolutions.com>
4 years agoconfigs: imx6-engicam: Drop fec phy address and mode
Michael Trimarchi [Mon, 30 Dec 2019 12:04:04 +0000 (17:34 +0530)]
configs: imx6-engicam: Drop fec phy address and mode

Now all the fec related phy properties are now accessible
via dts. So drop the explicit config items from common
config file, imx6-engicam.h

Signed-off-by: Michael Trimarchi <michael@amarulasolutions.com>
Signed-off-by: Jagan Teki <jagan@amarulasolutions.com>
4 years agoboard: engicam: Fix the ethernet clock initialization
Michael Trimarchi [Mon, 30 Dec 2019 12:04:03 +0000 (17:34 +0530)]
board: engicam: Fix the ethernet clock initialization

According to the SOM and reference board the clock
can be taken from the external pin or provided from
ENET_REF_CLK. Add a new function that make the proper
set according the board type.

Signed-off-by: Michael Trimarchi <michael@amarulasolutions.com>
Signed-off-by: Jagan Teki <jagan@amarulasolutions.com>
4 years agoboard: engicam: Cleanup fdt file and board mapping
Michael Trimarchi [Mon, 30 Dec 2019 12:04:02 +0000 (17:34 +0530)]
board: engicam: Cleanup fdt file and board mapping

Make easy to map fdt file to board in order to use
this information later to apply specific change to
specific board combination.

Signed-off-by: Michael Trimarchi <michael@amarulasolutions.com>
Signed-off-by: Jagan Teki <jagan@amarulasolutions.com>
4 years agoarm: mxs: be more careful when enabling gpmi_clk
Rasmus Villemoes [Thu, 12 Sep 2019 09:17:11 +0000 (09:17 +0000)]
arm: mxs: be more careful when enabling gpmi_clk

The data sheet says that the DIV field cannot change while the CLKGATE
bit is set or modified. So do it a little more carefully, by first
clearing the bit, waiting for that to appear, then setting the DIV
field.

Signed-off-by: Rasmus Villemoes <rasmus.villemoes@prevas.dk>
4 years agoarm: mxs: fix comments in arch_cpu_init to match the code
Rasmus Villemoes [Thu, 12 Sep 2019 09:17:10 +0000 (09:17 +0000)]
arm: mxs: fix comments in arch_cpu_init to match the code

The comment says to clear the bypass bit, but in fact it sets it, thus
selecting ref_xtal. And the next line of code does not set the divider
to 12, but to (the reset value of) 1.

Signed-off-by: Rasmus Villemoes <rasmus.villemoes@prevas.dk>
4 years agoarm: mxs: fix register definitions for clkctrl_gpmi and clkctrl_sspX
Rasmus Villemoes [Thu, 12 Sep 2019 09:17:09 +0000 (09:17 +0000)]
arm: mxs: fix register definitions for clkctrl_gpmi and clkctrl_sspX

I tried clearing a bit by writing to hw_clkctrl_gpmi_clr, then
busy-waiting for it to actually clear. My board hung. The data sheet
agrees, these registers do not have _set, _clr, _tog, so fix up the
definitions. git grep -E 'clkctrl_(gpmi|ssp[0-9])_' says that nobody
uses those non-existing ops registers.

Signed-off-by: Rasmus Villemoes <rasmus.villemoes@prevas.dk>
4 years agoimx8mm_evk: Adjust the environment for booting a mainline kernel
Fabio Estevam [Mon, 16 Dec 2019 19:09:22 +0000 (16:09 -0300)]
imx8mm_evk: Adjust the environment for booting a mainline kernel

Adjust the environment for booting a mainline kernel by default.

Signed-off-by: Fabio Estevam <festevam@gmail.com>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
4 years agomach-imx: nandbcb: improve cmd help
Igor Opaniuk [Mon, 16 Dec 2019 12:06:44 +0000 (14:06 +0200)]
mach-imx: nandbcb: improve cmd help

Add info about supported i.MX7, improve details the usage of
bcbonly subcommand.

Signed-off-by: Igor Opaniuk <igor.opaniuk@toradex.com>
Reviewed-by: Oleksandr Suvorov <oleksandr.suvorov@toradex.com>
4 years agomx6slevk: Fix the pmic_get() parameter in the DM case
Fabio Estevam [Fri, 20 Dec 2019 17:59:28 +0000 (14:59 -0300)]
mx6slevk: Fix the pmic_get() parameter in the DM case

When pmic_get() is used with DM the first parameter must be
the complete node name plus the unit address, so fix it
accordingly.

Reported-by: Igor Opaniuk <igor.opaniuk@toradex.com>
Signed-off-by: Fabio Estevam <festevam@gmail.com>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
4 years agomx6sllevk: Fix the pmic_get() parameter in the DM case
Fabio Estevam [Fri, 20 Dec 2019 17:59:27 +0000 (14:59 -0300)]
mx6sllevk: Fix the pmic_get() parameter in the DM case

When pmic_get() is used with DM the first parameter must be
the complete node name plus the unit address, so fix it
accordingly.

Reported-by: Igor Opaniuk <igor.opaniuk@toradex.com>
Signed-off-by: Fabio Estevam <festevam@gmail.com>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
4 years agomx7dsabresd: Fix the pmic_get() parameter in the DM case
Fabio Estevam [Fri, 20 Dec 2019 17:59:26 +0000 (14:59 -0300)]
mx7dsabresd: Fix the pmic_get() parameter in the DM case

When pmic_get() is used with DM the first parameter must be
the complete node name plus the unit address, so fix it
accordingly.

Reported-by: Igor Opaniuk <igor.opaniuk@toradex.com>
Signed-off-by: Fabio Estevam <festevam@gmail.com>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
4 years agoddr: imx8m: Return error values from LPDDR4 training
Frieder Schrempf [Wed, 11 Dec 2019 10:01:19 +0000 (10:01 +0000)]
ddr: imx8m: Return error values from LPDDR4 training

In cases when the same SPL should run on boards with i.MX8MM, that
differ in DDR configuration, it is necessary to try different
parameters and check if the training done by the firmware suceeds or
not.

Therefore we return the DDR training/initialization success to the
upper layer in order to be able to retry with different settings if
necessary.

Signed-off-by: Frieder Schrempf <frieder.schrempf@kontron.de>
4 years agotools: imx8m_image: Change source path for DDR firmware to build dir
Frieder Schrempf [Wed, 11 Dec 2019 10:06:06 +0000 (10:06 +0000)]
tools: imx8m_image: Change source path for DDR firmware to build dir

The DDR firmware binaries are not part of the U-Boot source code, so
we should look for them in the build directory, where they need to be
copied to before building U-Boot.

The ATF binary is already fetched from the build directory, but the
README files for the i.MX8M EVKs claim that it needs to be copied to
the source directory (which is still true for in-tree builds, but not
in general). Therefore we also fix the READMEs to use the build
directory as the correct location for all additional binary files.

Sined-off-by: Frieder Schrempf <frieder.schrempf@kontron.de>
4 years agoarm: imx: Default to SYS_THUMB_BUILD for i.MX6/7
Tom Rini [Tue, 3 Dec 2019 14:28:03 +0000 (09:28 -0500)]
arm: imx: Default to SYS_THUMB_BUILD for i.MX6/7

In the case of i.MX6 and i.MX7 family SoCs it is safe (from an errata
point of view) to use thumb2 by default to save space.

Cc: Stefano Babic <sbabic@denx.de>
Cc: Fabio Estevam <festevam@gmail.com>
Signed-off-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Fabio Estevam <festevam@gmail.com>
4 years agomach-imx: bootaux: elf firmware support
Igor Opaniuk [Mon, 30 Dec 2019 11:56:44 +0000 (13:56 +0200)]
mach-imx: bootaux: elf firmware support

Currently imx-specific bootaux command doesn't support ELF format
firmware for Cortex-M4 core.

This patches introduces a PoC implementation of handling elf firmware
(load_elf_image_phdr() was copy-pasted from elf.c just for PoC).
ELF64 binaries isn't supported yet.

This has the advantage that the user does not need to know to which
address the binary has been linked to. However, in order to handle
and load the elf sections to the right address, we need to translate the
Cortex-M4 core memory addresses to primary/host CPU memory
addresses (Cortex A7/A9 cores).

This allows to boot firmwares from any location with just using
bootaux, e.g.:
> tftp ${loadaddr} hello_world.elf && bootaux ${loadaddr}

Similar translation table can be found in the Linux remoteproc
driver [1].

[1] https://elixir.bootlin.com/linux/latest/source/drivers/remoteproc/imx_rproc.c

Signed-off-by: Igor Opaniuk <igor.opaniuk@toradex.com>
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
Reviewed-by: Oleksandr Suvorov <oleksandr.suvorov@toradex.com>
4 years agocolibri_imx7: migrate to DM_ETH
Igor Opaniuk [Mon, 4 Nov 2019 10:12:04 +0000 (11:12 +0100)]
colibri_imx7: migrate to DM_ETH

Migrate to DM_ETH and remove hardcoded pinmux configuration.

Signed-off-by: Igor Opaniuk <igor.opaniuk@toradex.com>
Reviewed-by: Oleksandr Suvorov <oleksandr.suvorov@toradex.com>
4 years agoARM: dts: imx7: imx7_colibri: introduce fec node
Igor Opaniuk [Mon, 4 Nov 2019 10:12:03 +0000 (11:12 +0100)]
ARM: dts: imx7: imx7_colibri: introduce fec node

Sync DTS with the mainline Linux and introduce fec node and
regulator configuration for rn5t567 PMU.

Signed-off-by: Igor Opaniuk <igor.opaniuk@toradex.com>
Reviewed-by: Oleksandr Suvorov <oleksandr.suvorov@toradex.com>
4 years agoapalis_imx6: migrate to DM_ETH
Igor Opaniuk [Mon, 4 Nov 2019 10:12:02 +0000 (11:12 +0100)]
apalis_imx6: migrate to DM_ETH

Migrate to DM_ETH and remove hardcoded pinmux configuration.

Signed-off-by: Igor Opaniuk <igor.opaniuk@toradex.com>
Reviewed-by: Oleksandr Suvorov <oleksandr.suvorov@toradex.com>
4 years agoARM: dts: imx6_apalis: introduce fec node
Igor Opaniuk [Mon, 4 Nov 2019 10:12:01 +0000 (11:12 +0100)]
ARM: dts: imx6_apalis: introduce fec node

Sync DTS with the mainline Linux and introduce fec node.

Signed-off-by: Igor Opaniuk <igor.opaniuk@toradex.com>
Reviewed-by: Oleksandr Suvorov <oleksandr.suvorov@toradex.com>
4 years agocolibri_imx6: migrate to DM_ETH
Igor Opaniuk [Mon, 4 Nov 2019 10:12:00 +0000 (11:12 +0100)]
colibri_imx6: migrate to DM_ETH

Migrate to DM_ETH and remove hardcoded pinmux configuration.

Signed-off-by: Igor Opaniuk <igor.opaniuk@toradex.com>
Reviewed-by: Oleksandr Suvorov <oleksandr.suvorov@toradex.com>
4 years agoARM: dts: imx6_colibri: introduce fec node
Igor Opaniuk [Mon, 4 Nov 2019 10:11:59 +0000 (11:11 +0100)]
ARM: dts: imx6_colibri: introduce fec node

Sync DTS with the mainline Linux and introduce fec node.

Signed-off-by: Igor Opaniuk <igor.opaniuk@toradex.com>
Reviewed-by: Oleksandr Suvorov <oleksandr.suvorov@toradex.com>
4 years agoMAINTAINERS: change colibri_imx6/imx6ull/t30/vf maintainers
Igor Opaniuk [Mon, 4 Nov 2019 11:56:53 +0000 (12:56 +0100)]
MAINTAINERS: change colibri_imx6/imx6ull/t30/vf maintainers

Take over maintainership for colibri_imx6/imx6ull/t30/vf modules.

Signed-off-by: Igor Opaniuk <igor.opaniuk@toradex.com>
Acked-by: Max Krummenacher <max.krummenacher@toradex.com>
Acked-by: Stefan Agner <stefan.agner@toradex.com>
4 years agoMAINTAINERS: change apalis_imx6/colibri_imx6 maintainers
Igor Opaniuk [Mon, 4 Nov 2019 11:56:52 +0000 (12:56 +0100)]
MAINTAINERS: change apalis_imx6/colibri_imx6 maintainers

Take over maintainership for apalis_imx6 and colibri_imx6 modules.

Signed-off-by: Igor Opaniuk <igor.opaniuk@toradex.com>
Acked-by: Max Krummenacher <max.krummenacher@toradex.com>
4 years agomx7dsabre: Remove warning about DM_SPI_FLASH
Joris Offouga [Sun, 8 Dec 2019 17:02:28 +0000 (18:02 +0100)]
mx7dsabre: Remove warning about DM_SPI_FLASH

This defconfig doesn't need it.

Signed-off-by: Joris Offouga <offougajoris@gmail.com>
4 years agomx7dsabre: Convert to distroboot support
Joris Offouga [Sun, 8 Dec 2019 17:02:31 +0000 (18:02 +0100)]
mx7dsabre: Convert to distroboot support

Signed-off-by: Joris Offouga <offougajoris@gmail.com>
4 years agomx7dsabre: Enable DM_ETH
Joris Offouga [Sun, 8 Dec 2019 17:02:30 +0000 (18:02 +0100)]
mx7dsabre: Enable DM_ETH

Also sync device tree with v5.5-rc1
Signed-off-by: Joris Offouga <offougajoris@gmail.com>
4 years agomx7ulp: Add support for Embedded Artists COM board
Fabio Estevam [Mon, 9 Dec 2019 13:43:03 +0000 (10:43 -0300)]
mx7ulp: Add support for Embedded Artists COM board

The Embedded Artists COM board is based on NXP i.MX7ULP.

It has a BD70528 PMIC from Rohm with discrete DCDC powering option and
improved current observability (compared to the existing NXP i.MX7ULP EVK).

Add the initial support for the board.

Signed-off-by: Fabio Estevam <festevam@gmail.com>
4 years agocolibri_vf: add update_uboot wrapper
Igor Opaniuk [Mon, 9 Dec 2019 10:33:32 +0000 (12:33 +0200)]
colibri_vf: add update_uboot wrapper

Add universal update_uboot wrapper that helps to update
U-Boot image on internal storage.

Usage example:
> tftpboot ${loadaddr} ${board_name}/u-boot-nand.imx
> run update_uboot

Signed-off-by: Igor Opaniuk <igor.opaniuk@toradex.com>
4 years agocolibri-imx6ull: add update_uboot wrapper
Igor Opaniuk [Mon, 9 Dec 2019 10:33:31 +0000 (12:33 +0200)]
colibri-imx6ull: add update_uboot wrapper

Add universal update_uboot wrapper that helps to update
U-Boot image on internal storage.

Usage example:
> tftpboot ${loadaddr} ${board_name}/u-boot-nand.imx
> run update_uboot

Signed-off-by: Igor Opaniuk <igor.opaniuk@toradex.com>
4 years agocolibri_imx6: add update_uboot wrapper
Igor Opaniuk [Mon, 9 Dec 2019 10:33:30 +0000 (12:33 +0200)]
colibri_imx6: add update_uboot wrapper

Add universal update_uboot wrapper that helps to update
U-Boot image on internal storage.

> tftpboot ${loadaddr} ${board_name}/u-boot.img
> run update_uboot
> tftpboot ${loadaddr} ${board_name}/SPL
> run update_spl

Signed-off-by: Igor Opaniuk <igor.opaniuk@toradex.com>
4 years agoapalis_imx6: add update_uboot wrapper
Igor Opaniuk [Mon, 9 Dec 2019 10:33:29 +0000 (12:33 +0200)]
apalis_imx6: add update_uboot wrapper

Add universal update_uboot wrapper that helps to update
U-Boot image on internal storage.

Usage example:
> tftpboot ${loadaddr} ${board_name}/u-boot.img
> run update_uboot
> tftpboot ${loadaddr} ${board_name}/SPL
> run update_spl

Signed-off-by: Igor Opaniuk <igor.opaniuk@toradex.com>
4 years agocolibri_imx7: add update_uboot wrapper
Igor Opaniuk [Mon, 9 Dec 2019 10:33:28 +0000 (12:33 +0200)]
colibri_imx7: add update_uboot wrapper

Add universal update_uboot wrapper that helps to update
U-Boot image on internal storage.

Usage example:
> tftpboot ${loadaddr} ${board_name}/u-boot-dtb.imx
> run update_uboot

Signed-off-by: Igor Opaniuk <igor.opaniuk@toradex.com>
4 years agoimx: cx9020: use distro boot
Steffen Dirkwinkel [Wed, 23 Oct 2019 05:40:43 +0000 (07:40 +0200)]
imx: cx9020: use distro boot

We switch from custom boot commands relying on uEnv.txt to distro boot.
This removes the automatic fpga bitstream loading in favor of loading
bitstreams via custom bootscripts (boot.scr) or after booting the
kernel.

Acked-by: Patrick Bruenn <p.bruenn@beckhoff.com>
Signed-off-by: Steffen Dirkwinkel <s.dirkwinkel@beckhoff.com>
4 years agoimx: cx9020: enable vidconsole by default
Steffen Dirkwinkel [Wed, 23 Oct 2019 05:40:42 +0000 (07:40 +0200)]
imx: cx9020: enable vidconsole by default

Acked-by: Patrick Bruenn <p.bruenn@beckhoff.com>
Signed-off-by: Steffen Dirkwinkel <s.dirkwinkel@beckhoff.com>
4 years agoimx: cx9020: migrate cx9020 to CONFIG_DM_USB
Steffen Dirkwinkel [Wed, 23 Oct 2019 05:40:41 +0000 (07:40 +0200)]
imx: cx9020: migrate cx9020 to CONFIG_DM_USB

Note: gpio7_8 was never used for usb power regulator so we remove it here

Acked-by: Patrick Bruenn <p.bruenn@beckhoff.com>
Signed-off-by: Steffen Dirkwinkel <s.dirkwinkel@beckhoff.com>
4 years agoimx: cx9020: migrate cx9020 to CONFIG_DM_ETH
Steffen Dirkwinkel [Wed, 23 Oct 2019 05:40:40 +0000 (07:40 +0200)]
imx: cx9020: migrate cx9020 to CONFIG_DM_ETH

Acked-by: Patrick Bruenn <p.bruenn@beckhoff.com>
Signed-off-by: Steffen Dirkwinkel <s.dirkwinkel@beckhoff.com>
4 years agoimx: sync with kernel device tree for Phycore SoM
Parthiban Nallathambi [Mon, 4 Nov 2019 18:50:07 +0000 (19:50 +0100)]
imx: sync with kernel device tree for Phycore SoM

Sync the Linux Kernel 5.4-rc6 device tree for Phytec Phycore
SoM and Segin board based on imx6UL and imx6ULL.

Changes includes Phytec naming convention for the devicetree files.

Signed-off-by: Parthiban Nallathambi <parthitce@gmail.com>
Acked-by: Peng Fan <peng.fan@nxp.com>
4 years agomach-imx: bootaux: add dcache flushing before enabling M4
Igor Opaniuk [Thu, 28 Nov 2019 13:56:20 +0000 (15:56 +0200)]
mach-imx: bootaux: add dcache flushing before enabling M4

This patch fixes the issue with broken bootaux command,
when M4 binary is loaded and data cache isn't flushed
before M4 core is enabled.

Reproducing:
> tftpboot ${loadaddr} ${board_name}/hello_world.bin
> cp.b ${loadaddr} 0x7F8000 $filesize
> bootaux 0x7F8000

Signed-off-by: Igor Opaniuk <igor.opaniuk@toradex.com>
Reviewed-by: Oleksandr Suvorov <oleksandr.suvorov@toradex.com>
4 years agomach-imx: bootaux: print stack pointer and reset vector
Igor Opaniuk [Thu, 28 Nov 2019 13:56:19 +0000 (15:56 +0200)]
mach-imx: bootaux: print stack pointer and reset vector

1. Change information printed about loaded M4 binary, print the stack
pointer and reset vector addressed.
2. Add sanity check for the address provided as param.

Signed-off-by: Igor Opaniuk <igor.opaniuk@toradex.com>
Reviewed-by: Oleksandr Suvorov <oleksandr.suvorov@toradex.com>
4 years agopci: imx: Add iMX6SX compatible
Marek Vasut [Tue, 26 Nov 2019 08:33:29 +0000 (09:33 +0100)]
pci: imx: Add iMX6SX compatible

The driver works fine with iMX6SX, add the missing compatible string.

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Bin Meng <bmeng.cn@gmail.com>
Cc: Fabio Estevam <fabio.estevam@nxp.com>
Cc: Stefano Babic <sbabic@denx.de>
4 years agoarm: imx6: cm_fx6: Enable DM SPI and SPI_FLASH, fix SPL build errors
Suniel Mahesh [Wed, 27 Nov 2019 10:47:48 +0000 (16:17 +0530)]
arm: imx6: cm_fx6: Enable DM SPI and SPI_FLASH, fix SPL build errors

Enable driver model for SPI and SPI_FLASH to remove the following
compile warning on CM-FX6 SOM:
===================== WARNING ======================
This board does not use CONFIG_DM_SPI_FLASH. Please update
the board to use CONFIG_SPI_FLASH before the v2019.07 release.
====================================================

This change introduced SPL build error as shown:

In file included from include/common.h:47:0,
                 from drivers/mtd/spi/sf_probe.c:10:
drivers/mtd/spi/sf_probe.c: In function 'spi_flash_std_probe':
drivers/mtd/spi/sf_probe.c:149:54: error: dereferencing pointer to incomplete type 'struct dm_spi_slave_platdata'
scripts/Makefile.build:278: recipe for target 'spl/drivers/mtd/spi/sf_probe.o' failed
make[3]: *** [spl/drivers/mtd/spi/sf_probe.o] Error 1
scripts/Makefile.build:432: recipe for target 'spl/drivers/mtd/spi' failed
make[2]: *** [spl/drivers/mtd/spi] Error 2

Disabling DM for SPI support(SPI and SF) in SPL resolves the issue.
Target was compile tested, build was clean.

Signed-off-by: Suniel Mahesh <sunil.m@techveda.org>
4 years agoboard: cm_fx6: Enable CONFIG_DM_ETH
Suniel Mahesh [Wed, 20 Nov 2019 09:55:01 +0000 (15:25 +0530)]
board: cm_fx6: Enable CONFIG_DM_ETH

Enable CONFIG_DM_ETH to remove compile warning on CM-FX6
SOM based target:

===================== WARNING ======================
This board does not use CONFIG_DM_ETH (Driver Model
for Ethernet drivers). Please update the board to use
CONFIG_DM_ETH before the v2020.07 release.
====================================================

Signed-off-by: Suniel Mahesh <sunil.m@techveda.org>
4 years agoboard: cm_fx6: Enable DM support for video, fix build error
Suniel Mahesh [Wed, 20 Nov 2019 09:55:00 +0000 (15:25 +0530)]
board: cm_fx6: Enable DM support for video, fix build error

Enable driver model for Video to remove the following
compile warning on CM-FX6 SOM based target:

===================== WARNING ======================
This board does not use CONFIG_DM_VIDEO Please update
the board to use CONFIG_DM_VIDEO before the v2019.07 release.
====================================================

This change introduced build error as shown:

LD      u-boot
drivers/built-in.o: In function ipu_displays_init'
arm-linux-ld.bfd: BFD (GNU Binutils) 2.29.1 assertion fail elf32-arm.c:9509
Makefile:1621: recipe for target 'u-boot' failed
make: *** [u-boot] Error 1

The DM converted video driver calls ipu_displays_init
in its probe, which inturn calls relevant board_video_skip.
Defining ipu_displays_init in the board file fixes build error.
Target was compile tested, build was clean.

Signed-off-by: Suniel Mahesh <sunil.m@techveda.org>
4 years agoARM: mx6: ddr: Add support for iMX6SX
Marek Vasut [Tue, 26 Nov 2019 08:34:52 +0000 (09:34 +0100)]
ARM: mx6: ddr: Add support for iMX6SX

This patch adds support for iMX6SX MMDC into the DDR calibration
code. The only difference between MX6DQ and MX6SX is that the SX
has 2 SDQS registers, while the DQ has 8.

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Eric Nelson <eric@nelint.com>
Cc: Fabio Estevam <fabio.estevam@nxp.com>
Cc: Stefano Babic <sbabic@denx.de>
Reviewed-by: Eric Nelson <eric@nelint.com>
4 years agoARM: mx6: ddr: Configure all SDQS pullups using loop
Marek Vasut [Tue, 26 Nov 2019 08:34:51 +0000 (09:34 +0100)]
ARM: mx6: ddr: Configure all SDQS pullups using loop

Instead of explicitly setting up each SDQS register, use a loop.
No functional change.

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Eric Nelson <eric@nelint.com>
Cc: Fabio Estevam <fabio.estevam@nxp.com>
Cc: Stefano Babic <sbabic@denx.de>
Reviewed-by: Eric Nelson <eric@nelint.com>
4 years agoARM: mx6: ddr: Factor out SDQS configuration code
Marek Vasut [Tue, 26 Nov 2019 08:34:50 +0000 (09:34 +0100)]
ARM: mx6: ddr: Factor out SDQS configuration code

Pull out the code turning SDQS pullups on and off into a separate
function, since it is replicated in two places in the code and it
is the single place in the entire function which is SoC dependent.

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Eric Nelson <eric@nelint.com>
Cc: Fabio Estevam <fabio.estevam@nxp.com>
Cc: Stefano Babic <sbabic@denx.de>
Reviewed-by: Eric Nelson <eric@nelint.com>
4 years agoARM: mx6: ddr: Make debug prints work with tiny printf
Marek Vasut [Tue, 26 Nov 2019 08:34:49 +0000 (09:34 +0100)]
ARM: mx6: ddr: Make debug prints work with tiny printf

The %08X format returns just zeroes with tiny printf, which is
horribly confusing, especially when debugging DRAM calibration
problems. Change the format to %08x (with lowercase x), which
behaves correctly with either implementation of printf in SPL.

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Eric Nelson <eric@nelint.com>
Cc: Fabio Estevam <fabio.estevam@nxp.com>
Cc: Stefano Babic <sbabic@denx.de>
Reviewed-by: Eric Nelson <eric@nelint.com>
4 years agoARM: imx6: DHCOM i.MX6 PDK: Enable sysreset driver and wdt command
Claudius Heine [Fri, 29 Nov 2019 07:59:03 +0000 (08:59 +0100)]
ARM: imx6: DHCOM i.MX6 PDK: Enable sysreset driver and wdt command

The SPL does not have DM enabled and therefor still needs to use the
hardware watchdog interface provided by the imx-watchdog driver.

Fixes: broken reset command after f2929d11a639 ("watchdog: imx: Use
       immediate reset bits for expire_now")

Signed-off-by: Claudius Heine <ch@denx.de>
4 years agoARM: dts: dh-imx6: add u-boot specific wdt-reboot node
Claudius Heine [Fri, 29 Nov 2019 07:59:02 +0000 (08:59 +0100)]
ARM: dts: dh-imx6: add u-boot specific wdt-reboot node

The wdt-reboot node is needed for the sysreset_watchdog driver to
register a watchdog as a reset handler in case 'CONFIG_SYSRESET' is
enabled.

Signed-off-by: Claudius Heine <ch@denx.de>
4 years agomx6cuboxi: enable OF_CONTROL with DM_MMC and DM_USB
Baruch Siach [Sun, 10 Nov 2019 12:38:07 +0000 (14:38 +0200)]
mx6cuboxi: enable OF_CONTROL with DM_MMC and DM_USB

Make first step in DT/DM migration. Enable OF_CONTROL only for the main
U-Boot image for now.

Remove mmc_init_main() because board_mmc_init() is not called when
DM_MMC is enabled.

DM_MMC requires DM_GPIO for card-detect to work. That in turn makes gpio
request mandatory. Add code to request/free gpios in platform code.

MMC devices are now numbered according to DT. The SD card is 1, and eMMC
is 2. Account for that in board_mmc_get_env_dev(), BOOT_TARGET_DEVICES,
and has_emmc().

DM_MMC requires BLK. However, the (BLK && !DM_USB) combination disables
USB_STORAGE. Enable DM_USB to preserve USB functionality. Add also
DM_REGULATORS for the USB power controller. This allows us to drop
board_ehci_hcd_init() and setup_usb().

Runtime selection of DT is necessary because of the i.MX6QD vs i.MX6SDL
incompatibility. DT selection does not rely on GPIOs, since DM_GPIO
depends on DT. Instead, we take one "fully featured" DT of each variant.
That should be enough to boot from both SD card and eMMC.

Since we don't select the exact DT, override the generic
show_board_info() that shows the selected DT 'model' field.

Signed-off-by: Baruch Siach <baruch@tkos.co.il>
Reviewed-by: Fabio Estevam <festevam@gmail.com>
4 years agoarm: dts: hummingboard: add cubox/hummingboard DT (part 2 of 2)
Baruch Siach [Sun, 10 Nov 2019 12:38:06 +0000 (14:38 +0200)]
arm: dts: hummingboard: add cubox/hummingboard DT (part 2 of 2)

These DT files are copied from kernel v5.3 with no changes.

This is part 2 of 2 commits. Included are DT files for SOM rev 1.5, and
Hummingboard2 Gate/Edge.

Signed-off-by: Baruch Siach <baruch@tkos.co.il>
Reviewed-by: Fabio Estevam <festevam@gmail.com>
4 years agoarm: dts: hummingboard: add cubox/hummingboard DT (part 1 of 2)
Baruch Siach [Sun, 10 Nov 2019 12:38:05 +0000 (14:38 +0200)]
arm: dts: hummingboard: add cubox/hummingboard DT (part 1 of 2)

These DT files are copied from kernel v5.3 with no changes.

This is part 1 of 2 commits. Included are DT files for the original
Cubox-i and Hummingboard Base/Pro.

Signed-off-by: Baruch Siach <baruch@tkos.co.il>
Reviewed-by: Fabio Estevam <festevam@gmail.com>
4 years agodt-bindings: add imx-audmux macro definitions
Baruch Siach [Sun, 10 Nov 2019 12:38:04 +0000 (14:38 +0200)]
dt-bindings: add imx-audmux macro definitions

Import fsl-imx-audmux.h from Linux as of v5.4-rc6. The header is
unchanged since v4.18.

That would make it easier to import DT files that depend on imx-audmux
definitions from the kernel tree.

Signed-off-by: Baruch Siach <baruch@tkos.co.il>
Reviewed-by: Fabio Estevam <festevam@gmail.com>
4 years agoboard: ge: mx53ppd: use imx wdt
Robert Beckett [Tue, 12 Nov 2019 19:15:20 +0000 (19:15 +0000)]
board: ge: mx53ppd: use imx wdt

Enable DM imx WDT
Enable SYSRESET_WATCHDOG to maintain WDT based reset ability

Signed-off-by: Robert Beckett <bob.beckett@collabora.com>
4 years agoboard: ge: bx50v3: use imx wdt
Robert Beckett [Tue, 12 Nov 2019 19:15:19 +0000 (19:15 +0000)]
board: ge: bx50v3: use imx wdt

Enable DM imx WDT
Enable SYSRESET_WATCHDOG to maintain WDT based reset ability

Signed-off-by: Robert Beckett <bob.beckett@collabora.com>
4 years agoboard: ge: pass rtc_status via device tree
Ian Ray [Tue, 12 Nov 2019 19:15:18 +0000 (19:15 +0000)]
board: ge: pass rtc_status via device tree

Pass rtc_status via the device tree, instead of on kernel command line.
Additionally, the 2038 mitigation is reported, if applied successfully.

Signed-off-by: Ian Ray <ian.ray@ge.com>
Signed-off-by: Robert Beckett <bob.beckett@collabora.com>
4 years agoboard: ge: bx50v3: Enable DM for PCI and ethernet
Denis Zalevskiy [Tue, 12 Nov 2019 19:15:17 +0000 (19:15 +0000)]
board: ge: bx50v3: Enable DM for PCI and ethernet

DM for PCI pulls DM for ethernet that also needs other changes described
below to build u-boot and keep existing functionality - ability to update
MAC addresses of FEC ethernet adapter and I210 adapter connected to the
Marvell switch.

- fec_mxc driver with DM needs PHYLIB;

- configuration items are moved from ge_bx50v3.h to ge_bx50v3_defconfig;

- FEC is marked as eth0 because it is always present, so indices changed:
  I210 are still probed in the same order;

- board_eth_init() was used by legacy ethernet, setup for enet iomux and
  pcie is moved to the board_late_init();

- pci_init() is called from the board_late_init() to initiate PCI bus
  probing, so I210 devices are propagated to the device tree;

Signed-off-by: Denis Zalevskiy <denis.zalevskiy@ge.com>
[Describe PHY reset in device tree]
Signed-off-by: Ian Ray <ian.ray@ge.com>
Signed-off-by: Robert Beckett <bob.beckett@collabora.com>
4 years agoconfigs: ppd: DM for USB and regulators PPD
Denis Zalevskiy [Tue, 12 Nov 2019 19:15:16 +0000 (19:15 +0000)]
configs: ppd: DM for USB and regulators PPD

DM should be used for USB since 2019.07, it also requires DM for
regulators.

Signed-off-by: Denis Zalevskiy <denis.zalevskiy@ge.com>
Signed-off-by: Robert Beckett <bob.beckett@collabora.com>
4 years agoboard: ge: bx50v3: Fix message output to video console
Ian Ray [Tue, 12 Nov 2019 19:15:15 +0000 (19:15 +0000)]
board: ge: bx50v3: Fix message output to video console

Use vidconsole for output to the LCD, now that DM_VIDEO is used.  Write
white text on a black background, like before migrating to DM_VIDEO.

Signed-off-by: Ian Ray <ian.ray@ge.com>
Signed-off-by: Robert Beckett <bob.beckett@collabora.com>
4 years agoboard: ge: bx50v3: Fix run-time warning
Ian Ray [Tue, 12 Nov 2019 19:15:14 +0000 (19:15 +0000)]
board: ge: bx50v3: Fix run-time warning

Fix GPIO reservation warning on code paths that do not need LVDS power.

Signed-off-by: Ian Ray <ian.ray@ge.com>
Signed-off-by: Robert Beckett <bob.beckett@collabora.com>
4 years agoconfigs: bx50v3: Fix boot hang with video
Ian Ray [Tue, 12 Nov 2019 19:15:13 +0000 (19:15 +0000)]
configs: bx50v3: Fix boot hang with video

Fixes commit: 0b09f7b15052bb419e318e38da453be46e5a13e5, which converted
to DM_VIDEO, but requires more memory.

[Inspired by 9002e735e71754a90adbb9676c0ffb1964dbc288]

Signed-off-by: Ian Ray <ian.ray@ge.com>
Signed-off-by: Robert Beckett <bob.beckett@collabora.com>
4 years agoboard: ge: ppd: sync device tree from Linux
Robert Beckett [Tue, 12 Nov 2019 19:15:12 +0000 (19:15 +0000)]
board: ge: ppd: sync device tree from Linux

Copy device tree from linux for PPD.

Signed-off-by: Robert Beckett <bob.beckett@collabora.com>
4 years agoboard: ge: bx50v3: sync devicetrees from Linux
Robert Beckett [Tue, 12 Nov 2019 19:15:11 +0000 (19:15 +0000)]
board: ge: bx50v3: sync devicetrees from Linux

Copy device trees from linux, keeping them as separate files for
each board to ease future sync.

Update board code to use generic bx50v3 dt initially, then select
the specific dt based on board detection.

Signed-off-by: Robert Beckett <bob.beckett@collabora.com>
4 years agoimx: Add support for i.MX28 based XEA board
Lukasz Majewski [Sun, 8 Dec 2019 21:06:56 +0000 (22:06 +0100)]
imx: Add support for i.MX28 based XEA board

This patch introduces support for i.MX28 based XEA board.

This board supports DM/DTS in U-Boot proper as well as DM aware drivers
in SPL (u-boot.sb) by using OF_PLATDATA.
More detailed information regarding usage of it can be found in
./board/liebherr/xea/README file.

U-Boot SPL 2019.10-rc1-00233-g6aa549f05c (Aug 12 2019 - 09:23:36 +0200)
Trying to boot from MMC1
MMC0: Command 8 timeout (status 0xf0344020)
mmc_load_image_raw_sector: mmc block read error

U-Boot 2019.10-rc1-00233-g6aa549f05c (Aug 12 2019 - 09:23:36 +0200)

CPU:   Freescale i.MX28 rev1.2 at 454 MHz
BOOT:  SSP SPI #3, master, 3V3 NOR
Model: Liebherr (LWE) XEA i.MX28 Board
DRAM:  128 MiB
MMC:   MXS MMC: 0
Loading Environment from SPI Flash... SF: Detected n25q128a13 with page size 256 Bytes, erase size 64 KiB, total 16 MiB
OK
In:    serial
Out:   serial
Err:   serial
Net:
Warning: ethernet@800f0000 (eth0) using random MAC address - ce:e1:9e:46:f3:a2
eth0: ethernet@800f0000
Hit any key to stop autoboot:  0

Signed-off-by: Lukasz Majewski <lukma@denx.de>
4 years agoimx6: aristainetos: add support for rev C board
Heiko Schocher [Sun, 1 Dec 2019 10:23:32 +0000 (11:23 +0100)]
imx6: aristainetos: add support for rev C board

add support for revision C boards. This board has
no longer a NAND.

Signed-off-by: Heiko Schocher <hs@denx.de>
4 years agoimx6: aristainetos: add aristainetos 2b csl
Heiko Schocher [Sun, 1 Dec 2019 10:23:31 +0000 (11:23 +0100)]
imx6: aristainetos: add aristainetos 2b csl

add aristainetso board version CSL.

Signed-off-by: Heiko Schocher <hs@denx.de>