platform/kernel/u-boot.git
4 years agoefi_loader: get_memory_map: return parameters whenever possible
AKASHI Takahiro [Wed, 11 Mar 2020 06:18:18 +0000 (15:18 +0900)]
efi_loader: get_memory_map: return parameters whenever possible

Currently, if GetMemoryMap API returns EFI_BUFFER_TOO_SMALL, it doesn't
set valid values to other parameters, descriptor_size and
descriptor_version, except memory_map_size.
Some efi applications, however, may use those value; in particular,
xen uses descriptor_size to calculate a size of buffer to be allocated.

While UEFI specification is ambiguous in this point, it would be better
to address this issue proactively to maximize the compatibility with
existing efi applications.

With this patch, for example, xen.efi (and hence linux kernel) can be
started via bootefi without modification.

Signed-off-by: AKASHI Takahiro <takahiro.akashi@linaro.org>
Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
4 years agoarm: mediatek: remove unused binman config
Sam Shih [Wed, 4 Mar 2020 12:03:48 +0000 (20:03 +0800)]
arm: mediatek: remove unused binman config

The binman-option BINMAN_FDT is introduced by this commit:
commit 3c10dc95bdd0 ("binman: Add a library to access binman entries")
BINMAN_FDT being selected when BINMAN=y that resulting in mt7623
and mt7622 are unable to boot. The root cause of this issue is commit:
commit cbd2fba1eca1 ("arm: MediaTek: add basic support for MT7629 boards")
select BINMAN=y in all mediatek SoCs, and others mediatek SoCs not
expect to use BINMAN_FDT.
This patch remove BINMAN=y option when ARCH_MEDIATEK=y and
move this to the specify SoCs part config.

Signed-off-by: Sam Shih <sam.shih@mediatek.com>
Tested-by: Frank Wunderlich <frank-w@public-files.de>
4 years agopower-domain: fix hang in endless loop on i.MX8
Anatolij Gustschin [Mon, 17 Feb 2020 08:42:11 +0000 (09:42 +0100)]
power-domain: fix hang in endless loop on i.MX8

Currently when booting the kernel on i.MX8 U-Boot hangs in an
endless loop when switching off dma, connectivity or lsio power
domains during device removal. It hapens first when removing
gpio0 (gpio@5d080000) device, here its power domain device
'lsio_gpio0' is obtained for switching off power. Since the
obtained 'lsio_gpio0' device is removed afterwards, its power
domain is also switched off and here the parent power domain
device 'lsio_power_domain' is optained for switching off the
power. Thereafter, when the obtained 'lsio_power_domain' is
removed, device_remove() removes its first child 'lsio_gpio0'.
During this child removal the 'lsio_power_domain' device is
obtained again for switching and when removing it later,
the same child removal is repeated, so we are stuck in an
endless loop. Below is a snippet from dm tree on i.MX8QXP
for better illustration of the DM devices relationship:

 Class     Index  Probed  Driver                Name
-----------------------------------------------------------
 root          0  [ + ]   root_driver           root_driver
...
 simple_bus    0  [ + ]   generic_simple_bus    |-- imx8qx-pm
 power_doma    0  [ + ]   imx8_power_domain     |   |-- lsio_power_domain
 power_doma    1  [ + ]   imx8_power_domain     |   |   |-- lsio_gpio0
 power_doma    2  [ + ]   imx8_power_domain     |   |   |-- lsio_gpio1

Do not remove a power domain device if it is a parent of the
currently controlled device.

Fixes: 52edfed65de9 ("dm: core: device: switch off power domain after device removal")
Signed-off-by: Anatolij Gustschin <agust@denx.de>
Reported-by: Oliver Graute <oliver.graute@gmail.com>
Reported-by: Fabio Estevam <festevam@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Lokesh Vutla <lokeshvutla@ti.com>
Tested-by: Fabio Estevam <festevam@gmail.com>
4 years agoMerge tag 'u-boot-imx-20200310' of https://gitlab.denx.de/u-boot/custodians/u-boot-imx
Tom Rini [Tue, 10 Mar 2020 17:13:08 +0000 (13:13 -0400)]
Merge tag 'u-boot-imx-20200310' of https://gitlab.denx.de/u-boot/custodians/u-boot-imx

Fixes for 2020.04
-----------------

- DM : mx6sabresd
- mx6ul_14x14_evk: fix video
- mx8qxp; fix console for booting
- sync DTS with kernel (imx6sx)
- drop obsolete woodburn (mx35)

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

4 years agoMerge tag 'u-boot-atmel-fixes-2020.04-a' of https://gitlab.denx.de/u-boot/custodians...
Tom Rini [Tue, 10 Mar 2020 17:12:21 +0000 (13:12 -0400)]
Merge tag 'u-boot-atmel-fixes-2020.04-a' of https://gitlab.denx.de/u-boot/custodians/u-boot-atmel

First set of u-boot-atmel fixes for 2020.04 cycle:
- Includes two small configuration fixes that will solve the SPL booting
  on sama5d3_xplained board.

4 years agoMerge branch 'master' of https://gitlab.denx.de/u-boot/custodians/u-boot-net
Tom Rini [Tue, 10 Mar 2020 11:51:56 +0000 (07:51 -0400)]
Merge branch 'master' of https://gitlab.denx.de/u-boot/custodians/u-boot-net

4 years agomx6slevk: Convert to DM_ETH
Pedro Jardim [Thu, 13 Feb 2020 12:25:32 +0000 (09:25 -0300)]
mx6slevk: Convert to DM_ETH

This fixes the following warning:

===================== 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. Failure to
update by the deadline may result in board removal.
See doc/driver-model/migration.rst for more info.
====================================================

Signed-off-by: Pedro Jardim <jardim.c.pedro@gmail.com>
Reviewed-by: Fabio Estevam <festevam@gmail.com>
4 years agomx6sabreauto: Convert to DM_ETH
Pedro Jardim [Thu, 13 Feb 2020 17:59:43 +0000 (14:59 -0300)]
mx6sabreauto: Convert to DM_ETH

This fixes the following warning:

===================== 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. Failure to
update by the deadline may result in board removal.
See doc/driver-model/migration.rst for more info.
====================================================

Signed-off-by: Pedro Jardim <jardim.c.pedro@gmail.com>
Reviewed-by: Fabio Estevam <festevam@gmail.com>
4 years agomx7dsabresd: Boot in non secure by default
Fabio Estevam [Tue, 18 Feb 2020 19:09:59 +0000 (16:09 -0300)]
mx7dsabresd: Boot in non secure by default

Booting a mainline kernel in secure mode on i.MX7D causes only
one CPU to be brought up.

Change it to booting in non secure mode by default, which
allows the two CPUs to be brought up.

It does have a side effect of not probing the CAAM driver.
If CAAM driver is needed then a secure world OS such as OPTEE needs
to be used.

Signed-off-by: Fabio Estevam <festevam@gmail.com>
4 years agoimx: imx8qm: enable relocation of fdt and initrd
Oliver Graute [Wed, 12 Feb 2020 12:01:17 +0000 (12:01 +0000)]
imx: imx8qm: enable relocation of fdt and initrd

Set CONFIG_SYS_BOOTMAPSZ to the amount of memory available which is needed
to relocate the kernel, device tree and initrd.

Remove 'fdt_high' and 'initrd_high' environment variables from default
environment which prevents relocation of FDT and initrd.

Signed-off-by: Oliver Graute <oliver.graute@kococonnector.com>
Cc: Stefano Babic <sbabic@denx.de>
Cc: Fabio Estevam <festevam@gmail.com>
Cc: Peng Fan <peng.fan@nxp.com>
Cc: Simon Glass <sjg@chromium.org>
Cc: Ye Li <ye.li@nxp.com>
Cc: uboot-imx <uboot-imx@nxp.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
4 years agoarm: dts: imx8mq-evk: add phy-reset-gpios for fec1
Alifer Moraes [Fri, 14 Feb 2020 19:18:50 +0000 (16:18 -0300)]
arm: dts: imx8mq-evk: add phy-reset-gpios for fec1

Instead of resetting the ethernet phy through functions in imx8mq_evk.c, let the
driver reset the phy via dts description adding a reset duration of 10 ms
following atheros 8031's datasheet recommendation.

Signed-off-by: Alifer Moraes <alifer.wsdm@gmail.com>
4 years agomx6sabresd: Convert ethernet to driver model
Alifer Moraes [Mon, 10 Feb 2020 14:28:01 +0000 (11:28 -0300)]
mx6sabresd: Convert ethernet to driver model

Convert imx6sabresd ethernet to driver model to fix the following warning:

===================== 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. Failure to
update by the deadline may result in board removal.
See doc/driver-model/migration.rst for more info.
====================================================

Signed-off-by: Alifer Moraes <alifer.wsdm@gmail.com>
Reviewed-by: Fabio Estevam <festevam@gmail.com>
4 years agoboard: sama5d3_xplained: Fix uboot size when loaded from NAND by SPL
Fabien Lehoussel [Mon, 24 Feb 2020 15:45:31 +0000 (16:45 +0100)]
board: sama5d3_xplained: Fix uboot size when loaded from NAND by SPL

Uboot size is incorrect.
Uboot SPL use CONFIG_SYS_MONITOR_LEN to read uboot from NAND : 0x80000
With sama5d3_xplained_nandflash_defconfig : u-boot.bin size is ~800Ko 0xC0000

So I increased size to 1MB : 0x100000

Signed-off-by: Fabien Lehoussel <fabien.lehoussel@medianesysteme.com>
4 years agoboard: sama5d3_xplained: Fix SPL DTB read from NAND
Fabien Lehoussel [Mon, 24 Feb 2020 15:28:32 +0000 (16:28 +0100)]
board: sama5d3_xplained: Fix SPL DTB read from NAND

SPL boot cannot find dtb if CONFIG_SPL_SEPARATE_BSS is disabled :

CONFIG_SPL_SEPARATE_BSS=n

RomBOOT
<debug_uart> Missing DTB
 ### ERROR ### Please RESET the board ###
RomBOOT

CONFIG_SPL_SEPARATE_BSS=y

RomBOOT
<debug_uart>
U-Boot SPL 2019.04-linux4sam_6.2-icp-dirty (Feb 24 2020 - 15:34:35 +0100)
Trying to boot from NAND
<debug_uart>

Signed-off-by: Fabien Lehoussel <fabien.lehoussel@medianesysteme.com>
4 years agonet: phy: marvell: Unify 88E151x series phy_driver
Clemens Gruber [Mon, 24 Feb 2020 19:52:20 +0000 (20:52 +0100)]
net: phy: marvell: Unify 88E151x series phy_driver

The PHY models of the Marvell 88E151x series are not reliably
distinguishable by their uid / PHY identifiers.
The 88E1510, 88E1512, 88E1514 and 88E1518 all have the same OUI and
model number and bits 3:0 in the PHY Identifier 2 (Page 0, Reg 3) are
described as HW revision number, but both 88E1510 and 88E1518 PHYs were
observed with the same HW rev number (1).

Before commit 83cfbeb0df9f ("net: phy: Fix mask so that we can identify
Marvell 88E1518"), the 88E151x were detected because the HW revision
bits were masked from the uid. After that change, 88E1510/12/18 were all
detected as 88E1518 and the 88E1510 specific code was no longer run.

I modified the mask to again ignore all four HW revision bits, removed
the 88E1510 specific code (board-specific LED/INTn setup), which was not
called since late 2016 anyway and renamed the config function and
phy_driver struct to the better fitting 88e151x.

The uid and mask bits 3:0 are now again the same as in the Linux kernel.

Signed-off-by: Clemens Gruber <clemens.gruber@pqgruber.com>
4 years agonet: tftp: use correct printf codes
Heinrich Schuchardt [Sat, 22 Feb 2020 07:43:40 +0000 (08:43 +0100)]
net: tftp: use correct printf codes

When printing unsigned numbers use %u.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
4 years agonet: phy: dp83867: Add SGMII mode type switching
Michal Simek [Tue, 18 Feb 2020 12:51:02 +0000 (13:51 +0100)]
net: phy: dp83867: Add SGMII mode type switching

This patch adds ability to switch beetween two PHY SGMII modes.
Some hardware, for example, FPGA IP designs may use 6-wire mode
which enables differential SGMII clock to MAC.

Patch description, dt flags have been done in mainline Linux by
commit a2111c460c0c ("net: phy: dp83867: Add documentation for SGMII mode type")
and by commit 507ddd5c0d47 ("net: phy: dp83867: Add SGMII mode type switching")

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
4 years agodt-bindings: net: dp83867: Remove binding doc from U-Boot tree
Michal Simek [Mon, 17 Feb 2020 09:38:57 +0000 (10:38 +0100)]
dt-bindings: net: dp83867: Remove binding doc from U-Boot tree

U-Boot is having DT which doesn't cover all options currently supported by
driver. DT binding is aligned with Linux kernel version available here.
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/devicetree/bindings/net/ti,dp83867.txt
Based on my talk with Grygorii Strashko better will be to remove it.

Also Linux kernel bindings are being converted to yaml that's another
reason to do it only at one place.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Reviewed-by: Grygorii Strashko <grygorii.strashko@ti.com>
4 years agonet: phy: add XFI, USXGMII types to is_10g_interface() helper
Alex Marginean [Thu, 9 Jan 2020 08:50:05 +0000 (10:50 +0200)]
net: phy: add XFI, USXGMII types to is_10g_interface() helper

The helper is used to reset PHYs on connect and it determines the clause
to use (C22/C45) based on interface type.  This fixes 'PHY reset timed out'
warnings in console for USXGMII/XFI PHYs.

Signed-off-by: Alex Marginean <alexandru.marginean@nxp.com>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
4 years agonet: phy: Fix overlong PHY timeout
Andre Przywara [Fri, 3 Jan 2020 22:08:47 +0000 (22:08 +0000)]
net: phy: Fix overlong PHY timeout

Commit 27c3f70f3b50 ("net: phy: Increase link up delay in
genphy_update_link()") increased the per-iteration waiting time from
1ms to 50ms, without adjusting the timeout counter. This lead to the
timeout increasing from the typical 4 seconds to over three minutes.

Adjust the timeout counter evaluation by that factor of 50 to bring the
timeout back to the intended value.

Signed-off-by: Andre Przywara <andre.przywara@arm.com>
Fixes: net: phy: Increase link up delay in genphy_update_link() ("27c3f70f3b50")
Reviewed-by: Stefan Roese <sr@denx.de>
Tested-by: Matthias Brugger <mbrugger@suse.com>
Tested-by: Simon Goldschmidt <simon.k.r.goldschmidt@gmail.com>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
4 years agodoc: net: Rewrite network driver documentation
Andre Przywara [Mon, 25 Nov 2019 01:32:15 +0000 (01:32 +0000)]
doc: net: Rewrite network driver documentation

doc/README.drivers.eth seems like a good source for understanding
U-Boot's network subsystem, but is only talking about legacy network
drivers. This is particularly sad as proper documentation would help in
porting drivers over to the driver model.

Rewrite the document to describe network drivers in the new driver model
world. Most driver callbacks/methods are almost identical in their
semantic, but recv() differs in some important details.

Also keep some parts of the original text at the end, to help
understanding old drivers. Add some hints on how to port drivers over.

This also uses the opportunity to reformat the document in reST, on the
way moving it into doc/driver-model and adding it into the structure
there.

Signed-off-by: Andre Przywara <andre.przywara@arm.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
4 years agodrivers: net: phy: aquantia: make it less verbose
Alex Marginean [Wed, 4 Dec 2019 13:32:16 +0000 (15:32 +0200)]
drivers: net: phy: aquantia: make it less verbose

The driver now unconditionally prints some information that's not
universally useful.  Replace printf with debug.

Signed-off-by: Alex Marginean <alexandru.marginean@nxp.com>
Reviewed-by: Priyanka Jain <priyanka.jain@nxp.com>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
4 years agodrivers: net: phy: aquantia: drop XGMII as a valid system interface proto
Alex Marginean [Wed, 4 Dec 2019 13:32:15 +0000 (15:32 +0200)]
drivers: net: phy: aquantia: drop XGMII as a valid system interface proto

Use either USXGMII or XFI in aquantia_set_proto and drop XGMII as a valid
protocol configuration.  The PHY doesn't support it, it's just used as an
alias for one of the other two protocols.

Signed-off-by: Florin Chiculita <florinlaurentiu.chiculita@nxp.com>
Signed-off-by: Alex Marginean <alexandru.marginean@nxp.com>
Reviewed-by: Priyanka Jain <priyanka.jain@nxp.com>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
4 years agoenv: Update env_addr for mmc environment driver
Pankit Garg [Tue, 19 Nov 2019 09:49:31 +0000 (09:49 +0000)]
env: Update env_addr for mmc environment driver

Make sure the gd struct is up-to-date.

Signed-off-by: Pankit Garg <pankit.garg@nxp.com>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
4 years agophy: Include NC-SI in phy setup
Samuel Mendoza-Jonas [Tue, 18 Jun 2019 01:37:18 +0000 (11:37 +1000)]
phy: Include NC-SI in phy setup

Add NC-SI to the usual phy handling. This makes two notable changes:
- Somewhat similar to a fixed phy, phy_connect() will create an NC-SI
phy if CONFIG_PHY_NCSI is defined.
- An early return is added to phy_read() and phy_write() to handle a
case like the NC-SI phy which does not define a bus.

Signed-off-by: Samuel Mendoza-Jonas <sam@mendozajonas.com>
Reviewed-by: Joel Stanley <joel@jms.id.au>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
4 years agophy: Add support for the NC-SI protocol
Samuel Mendoza-Jonas [Tue, 18 Jun 2019 01:37:17 +0000 (11:37 +1000)]
phy: Add support for the NC-SI protocol

This introduces support for the NC-SI protocol, modelled as a phy driver
for other ethernet drivers to consume.

NC-SI (Network Controller Sideband Interface) is a protocol to manage a
sideband connection to a proper network interface, for example a BMC
(Baseboard Management Controller) sharing the NIC of the host system.
Probing and configuration occurs by communicating with the "remote" NIC
via NC-SI control frames (Ethernet header 0x88f8).

This implementation is roughly based on the upstream Linux
implementation[0], with a reduced feature set and an emphasis on getting
a link up as fast as possible rather than probing the full possible
topology of the bus.
The current phy model relies on the network being "up", sending NC-SI
command frames via net_send_packet() and receiving them from the
net_loop() loop (added in a following patch).

The ncsi-pkt.h header[1] is copied from the Linux kernel for consistent
field definitions.

[0]: https://github.com/torvalds/linux/tree/master/net/ncsi
[1]: https://github.com/torvalds/linux/blob/master/net/ncsi/ncsi-pkt.h

Signed-off-by: Samuel Mendoza-Jonas <sam@mendozajonas.com>
Reviewed-by: Joel Stanley <joel@jms.id.au>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
4 years agoAzure/Travis: Re-sync jobs and clarify exclusions
Tom Rini [Mon, 9 Mar 2020 17:01:57 +0000 (13:01 -0400)]
Azure/Travis: Re-sync jobs and clarify exclusions

We keep both of these jobs in sync as much as possible even when the
primary motivation is to keep Travis from exceeding the build time limit
there.  With that in mind:
- Use "rk" not "rockchip" to get all Rockchip SoC platforms in one job,
  rather than just all Rockchip vendor platforms.
- The NXP LX216* SoCs have their own job, exclude them from the AArch64
  generic job.
- SoCFPGA SoCs have their own job, exclude them from the AArch64 generic
  job.

Signed-off-by: Tom Rini <trini@konsulko.com>
4 years agoimx: imx8qm_rom7720: added missing USDHC Base address defines
Oliver Graute [Thu, 19 Dec 2019 14:25:53 +0000 (14:25 +0000)]
imx: imx8qm_rom7720: added missing USDHC Base address defines

Added missing USDHC Base address defines

Signed-off-by: Oliver Graute <oliver.graute@kococonnector.com>
Cc: Stefano Babic <sbabic@denx.de>
Cc: Fabio Estevam <festevam@gmail.com>
Cc: Peng Fan <peng.fan@nxp.com>
Cc: Simon Glass <sjg@chromium.org>
Cc: Ye Li <ye.li@nxp.com>
Cc: uboot-imx <uboot-imx@nxp.com>
Reviewed-by: Fabio Estevam <festevam@gmail.com>
4 years agoARM: dts: imx8mm-verdin: drop rgmii_rxc_dly/txc_dly
Max Krummenacher [Fri, 14 Feb 2020 12:36:44 +0000 (14:36 +0200)]
ARM: dts: imx8mm-verdin: drop rgmii_rxc_dly/txc_dly

The FEC in the i.MX8MM doesn't support this feature. So don't pretend one
can use it.

Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
Signed-off-by: Igor Opaniuk <igor.opaniuk@toradex.com>
Acked-by: Peng Fan <peng.fan@nxp.com>
Reviewed-by: Oleksandr Suvorov <oleksandr.suvorov@toradex.com>
4 years agoARM: dts: imx8mm-verdin: dm-spl for pinctrl_usdhc1 node
Igor Opaniuk [Fri, 14 Feb 2020 12:36:43 +0000 (14:36 +0200)]
ARM: dts: imx8mm-verdin: dm-spl for pinctrl_usdhc1 node

Let pinctrl configuration for eMMC node (usdhc1) also be
accessible in SPL.

Signed-off-by: Igor Opaniuk <igor.opaniuk@toradex.com>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
Reviewed-by: Oleksandr Suvorov <oleksandr.suvorov@toradex.com>
4 years agoserial_lpuart: make clock failure less verbose
Giulio Benetti [Fri, 31 Jan 2020 13:39:47 +0000 (14:39 +0100)]
serial_lpuart: make clock failure less verbose

Some device may enable CONFIG_CLK but not still support this clock in
CC, so better use debug() in place of dev_warn() otherwise a lot of
boards will throw useless dev_warn()s.

Signed-off-by: Giulio Benetti <giulio.benetti@benettiengineering.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
4 years agoimx8mm/mn: Add missing root clock entry for ARM core clock
Frieder Schrempf [Wed, 5 Feb 2020 11:45:28 +0000 (11:45 +0000)]
imx8mm/mn: Add missing root clock entry for ARM core clock

The current implementation in arch/arm/mach-imx/cpu.c uses non-DM
code to retrieve the core clock frequency. As the root clock is not
listed we currently get:

CPU:   Freescale i.MX8MMQ rev1.0 at 0 MHz

Fix this by adding the missing entry, which results in:

CPU:   Freescale i.MX8MMQ rev1.0 at 1200 MHz

Signed-off-by: Frieder Schrempf <frieder.schrempf@kontron.de>
Reviewed-by: Fabio Estevam <festevam@gmail.com>
4 years agomx6cuboxi: don't disable fdt relocation
Baruch Siach [Tue, 4 Feb 2020 16:57:08 +0000 (18:57 +0200)]
mx6cuboxi: don't disable fdt relocation

fdt_high value of 0xffffffff disables fdt relocation on boot. We don't
need that for Cubox-i/Hummingboard. Rely on generic code to find the
optimal fdt location at boot time.

Signed-off-by: Baruch Siach <baruch@tkos.co.il>
4 years agoimx: Makefile: added missing ahab.o
Oliver Graute [Wed, 26 Feb 2020 12:15:24 +0000 (12:15 +0000)]
imx: Makefile: added missing ahab.o

added missing ahab.o in Makefile

Signed-off-by: Oliver Graute <oliver.graute@kococonnector.com>
Cc: Stefano Babic <sbabic@denx.de>
Cc: Fabio Estevam <festevam@gmail.com>
Cc: Peng Fan <peng.fan@nxp.com>
Cc: Simon Glass <sjg@chromium.org>
Cc: Ye Li <ye.li@nxp.com>
Cc: uboot-imx <uboot-imx@nxp.com>
Reviewed-by: Fabio Estevam <festevam@gmail.com>
4 years agomx6sxsabresd: Enable DM_PCI
Fabio Estevam [Wed, 19 Feb 2020 12:56:28 +0000 (09:56 -0300)]
mx6sxsabresd: Enable DM_PCI

Enale DM_PCI support in order to avoid board removal from
the project.

Signed-off-by: Fabio Estevam <festevam@gmail.com>
4 years agoconfigs: imxrt1050-evk: enable D/I cache
Giulio Benetti [Sat, 1 Feb 2020 14:29:45 +0000 (15:29 +0100)]
configs: imxrt1050-evk: enable D/I cache

Soc supports cache so let's enable it.

Signed-off-by: Giulio Benetti <giulio.benetti@benettiengineering.com>
4 years agoimx: mx6ul_14x14_evk: configure for 24bpp display
Anatolij Gustschin [Wed, 5 Feb 2020 16:49:59 +0000 (17:49 +0100)]
imx: mx6ul_14x14_evk: configure for 24bpp display

Before DM_VIDEO conversion this board used 24bpp
display configuration, so use it again.

Signed-off-by: Anatolij Gustschin <agust@denx.de>
Reviewed-by: Fabio Estevam <festevam@gmail.com>
4 years agoARM: dts: imx6sx-sdb: Sync with kernel 5.4.16
Fabio Estevam [Wed, 19 Feb 2020 12:56:27 +0000 (09:56 -0300)]
ARM: dts: imx6sx-sdb: Sync with kernel 5.4.16

Sync the imx6sx-sdb dts files with kernel 5.4.16.

Signed-off-by: Fabio Estevam <festevam@gmail.com>
4 years agoARM: dts: imx6sx: Sync with kernel 5.4.16
Fabio Estevam [Wed, 19 Feb 2020 12:56:26 +0000 (09:56 -0300)]
ARM: dts: imx6sx: Sync with kernel 5.4.16

Sync the imx6sx dts files with kernel 5.4.16.

Signed-off-by: Fabio Estevam <festevam@gmail.com>
4 years agoimx8qxp_mek: Add myself as maintainer
Fabio Estevam [Thu, 27 Feb 2020 17:58:55 +0000 (14:58 -0300)]
imx8qxp_mek: Add myself as maintainer

I would like to help co-maintaining this board.

Signed-off-by: Fabio Estevam <festevam@gmail.com>
4 years agomx7dsabresd: Add myself as maintainer
Fabio Estevam [Thu, 27 Feb 2020 17:58:54 +0000 (14:58 -0300)]
mx7dsabresd: Add myself as maintainer

I would like to help co-maintaining this board.

Signed-off-by: Fabio Estevam <festevam@gmail.com>
4 years agoimx8qxp_mek: Fix the console command line string
Fabio Estevam [Mon, 17 Feb 2020 18:17:01 +0000 (15:17 -0300)]
imx8qxp_mek: Fix the console command line string

Currently the expansion of the console variable leads to
the following kernel command line:

console=ttyLP0,${baudrate} earlycon root=/dev/mmcblk1p2 rootwait rw

, which causes the console to not show characters after the LPUART driver
is probed as the 'baudrate' variable is not properly translated.

Fix it by splitting the console variable in two parts: one for the
ttyLP0 part and the other one for the baudrate, which matches the way
it is done on other i.MX targets.

Tested by successfully booting a mainline kernel on a i.MX8QXP MEK
board.

Signed-off-by: Fabio Estevam <festevam@gmail.com>
4 years agoimx: remove woodburn board
Stefano Babic [Wed, 19 Feb 2020 13:36:25 +0000 (14:36 +0100)]
imx: remove woodburn board

Board is not longer used, remove it.

Signed-off-by: Stefano Babic <sbabic@denx.de>
4 years agoimx6, aristainetos2c: add da9063 pmic setup
Heiko Schocher [Mon, 2 Mar 2020 08:44:03 +0000 (09:44 +0100)]
imx6, aristainetos2c: add da9063 pmic setup

On the aristainetos2c boards the PMIC needs to be initialized,
because the Ethernet PHY uses a different regulator that is not
setup per hardware default. This does not influence the other
versions as this regulator isn't used there at all.

Signed-off-by: Heiko Schocher <hs@denx.de>
4 years agoMakefile: fix processing of default environment file
Samuel Mescoff [Mon, 15 Apr 2019 10:28:26 +0000 (12:28 +0200)]
Makefile: fix processing of default environment file

Allow the default environment file to contain long lines split into
multiples lines.

Leading white spaces can be added for readability as well.

Signed-off-by: Samuel Mescoff <samuel@mescoff.fr>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
4 years agoMerge https://gitlab.denx.de/u-boot/custodians/u-boot-x86
Tom Rini [Thu, 5 Mar 2020 12:51:12 +0000 (07:51 -0500)]
Merge https://gitlab.denx.de/u-boot/custodians/u-boot-x86

- Revert "x86: use invd instead of wbinvd in real mode start code"
- Convert toradex boards README to reST
- serial: ns16550: Move PCI access from ofdata_to_platdata() to probe()
- x86: apl: Use cpu_x86_get_count() for cpu_ops.get_count

4 years agox86: apl: Use cpu_x86_get_count() for cpu_ops.get_count
Wolfgang Wallner [Tue, 25 Feb 2020 12:19:48 +0000 (13:19 +0100)]
x86: apl: Use cpu_x86_get_count() for cpu_ops.get_count

Use cpu_x86_get_count() to read the number of cores.

cpu_x86_get_count() reads the number of CPUs from the device tree.
Using this function we can support multiple Apollo Lake
variants, e.g.: E3940 (4 cores) and E3930 (2 cores).

This was tested on the E3940 and E3930 Apollo Lake variants.

Signed-off-by: Wolfgang Wallner <wolfgang.wallner@br-automation.com>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
4 years agox86: cpu_x86: Make cpu_x86_get_count() non-static
Wolfgang Wallner [Tue, 25 Feb 2020 12:19:47 +0000 (13:19 +0100)]
x86: cpu_x86: Make cpu_x86_get_count() non-static

The function cpu_x86_get_count() is also useful for other modules.
Make it non-static and add a prototype + description.

Signed-off-by: Wolfgang Wallner <wolfgang.wallner@br-automation.com>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
4 years agodoc: Chromebook Coral: Fix typo for "Top of CAR region"
Wolfgang Wallner [Fri, 21 Feb 2020 11:20:09 +0000 (12:20 +0100)]
doc: Chromebook Coral: Fix typo for "Top of CAR region"

The value for "Top of CAR region" should be fefc0000, not
fefc000. This matches the Kconfig default values, as
SYS_CAR_ADDR and SYS_CAR_SIZE are 0xfef00000 and 0xc0000
respectively.

Signed-off-by: Wolfgang Wallner <wolfgang.wallner@br-automation.com>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
4 years agox86: p2sb: Drop 'apl' prefix
Wolfgang Wallner [Tue, 18 Feb 2020 14:32:10 +0000 (15:32 +0100)]
x86: p2sb: Drop 'apl' prefix

Drop the Apollo Lake prefix 'apl' from the functions, types and
variables in the P2SB driver.

The P2SB is not Apollo Lake specific, and as such it was moved in
commit 2999846c1127 ("x86: Move P2SB from Apollo Lake to a more generic
location") from the Apollo Lake folder to the intel_common folder.

Signed-off-by: Wolfgang Wallner <wolfgang.wallner@br-automation.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
4 years agoserial: ns16550: Move PCI access from ofdata_to_platdata() to probe()
Wolfgang Wallner [Mon, 2 Mar 2020 13:41:14 +0000 (14:41 +0100)]
serial: ns16550: Move PCI access from ofdata_to_platdata() to probe()

Currently the ofdata_to_platdata() method calls dev_read_addr_pci(),
which potentially accesses the parent PCI bus. If this happens before
the parent PCI bus is probed the resulting address will be wrong.

This behavior was triggered by commit 82de42fa1468 ("dm: core:
Allocate parent data separate from probing parent").

According to a comment in drivers/pci/pci-uclass.c [1] accessing
the PCI parent bus in ofdata_to_platdata() is not allowed, and the
access should be moved to the probe() function.

Move the call to dev_read_addr_pci() and the related handling of the
'addr' value from the ofdata_to_platdata() to its own function,
which is then called from the probe() method.

While moving the code, the comment /* try Processor Local Bus device
first */ was dropped. It was initially added with commit 3db886a5bf38
("serial: ns16550: Support ns16550 compatible pci uart devices") and
later made obsolete with commit 33c215af4b9d ("dm: pci: Add a function
to read a PCI BAR").

[1] Comment in drivers/pci/pci-uclass.c:
"A common cause of this problem is that this function is called in the
ofdata_to_platdata() method of @dev. Accessing the PCI bus in that
method is not allowed, since it has not yet been probed. To fix this,
move that access to the probe() method of @dev instead."

Fixes: 82de42fa1468 ("dm: core: Allocate parent data separate from probing parent")
Signed-off-by: Wolfgang Wallner <wolfgang.wallner@br-automation.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
Tested-by: Bin Meng <bmeng.cn@gmail.com> # Tested on Intel Galileo
4 years agoRevert "x86: use invd instead of wbinvd in real mode start code"
Andy Shevchenko [Mon, 17 Feb 2020 15:30:12 +0000 (17:30 +0200)]
Revert "x86: use invd instead of wbinvd in real mode start code"

This reverts commit 0d67fac29f3187e67f4fd3ef15f73e91be2fad12.

As real hardware testing (*) shows the above mentioned commit
breaks U-Boot on it. Revert for the upcoming release. We may get
more information in the future and optimize the code accordingly.

(*) on Intel Edison board.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Acked-by: Bin Meng <bmeng.cn@gmail.com>
[bmeng: fix a typo in the commit message]
Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
4 years agox86: remove dead code in intel_clk_get_rate()
Heinrich Schuchardt [Sat, 15 Feb 2020 20:22:00 +0000 (21:22 +0100)]
x86: remove dead code in intel_clk_get_rate()

If all branches of a switch statement have a return instruction, all
subsequent lines are unreachable.

Identified with cppcheck.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Reviewed-by: Lukasz Majewski <lukma@denx.de>
Reviewed-by: Simon Glass <sjg@chromium.org>
4 years agotoradex: MAINTAINERS: entries for new reST docs
Igor Opaniuk [Wed, 12 Feb 2020 15:14:32 +0000 (17:14 +0200)]
toradex: MAINTAINERS: entries for new reST docs

Add entries for the newly created documentation files in reST
format.

Signed-off-by: Igor Opaniuk <igor.opaniuk@toradex.com>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
4 years agodoc: board: colibri-imx8x: convert readme to reST
Igor Opaniuk [Wed, 12 Feb 2020 15:14:31 +0000 (17:14 +0200)]
doc: board: colibri-imx8x: convert readme to reST

Convert README to reStructuredText format.

Signed-off-by: Igor Opaniuk <igor.opaniuk@toradex.com>
Reviewed-by: Oleksandr Suvorov <oleksandr.suvorov@toradex.com>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
Tested-by: Bin Meng <bmeng.cn@gmail.com>
4 years agodoc: board: apalis-imx8: convert readme to reST
Igor Opaniuk [Wed, 12 Feb 2020 15:14:30 +0000 (17:14 +0200)]
doc: board: apalis-imx8: convert readme to reST

Convert README to reStructuredText format.

Signed-off-by: Igor Opaniuk <igor.opaniuk@toradex.com>
Reviewed-by: Oleksandr Suvorov <oleksandr.suvorov@toradex.com>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
Tested-by: Bin Meng <bmeng.cn@gmail.com>
4 years agodoc: board: verdin-imx8mm: convert readme to reST
Igor Opaniuk [Wed, 12 Feb 2020 15:14:29 +0000 (17:14 +0200)]
doc: board: verdin-imx8mm: convert readme to reST

Convert README to reStructuredText format.

Signed-off-by: Igor Opaniuk <igor.opaniuk@toradex.com>
Reviewed-by: Oleksandr Suvorov <oleksandr.suvorov@toradex.com>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
Tested-by: Bin Meng <bmeng.cn@gmail.com>
[bmeng: spell out U-Boot correctly]
Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
4 years agodoc: board: toradex: add colibri_imx7.rst
Igor Opaniuk [Wed, 12 Feb 2020 15:14:28 +0000 (17:14 +0200)]
doc: board: toradex: add colibri_imx7.rst

- add initial index for toradex boards reST documentation
- add initial colibri_imx7.rst doc file which provides all needed
information for obtaining a workable image ready for flashing
for both eMMC/NAND versions of Colibri iMX7.

Signed-off-by: Igor Opaniuk <igor.opaniuk@toradex.com>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
Reviewed-by: Oleksandr Suvorov <oleksandr.suvorov@toradex.com>
Tested-by: Bin Meng <bmeng.cn@gmail.com>
[bmeng: make title underline the same length as the title itself]
Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
4 years agox86: Correct error return value in mrccache_get_region()
Simon Glass [Sun, 2 Feb 2020 20:37:06 +0000 (13:37 -0700)]
x86: Correct error return value in mrccache_get_region()

This function doesn't use uclass_find_first_device() correctly. Add a
check that the device is found so we don't try to read properties from a
NULL device.

The fixes booting on minnoxmax.

Fixes: 87f1084a630 ("x86: Adjust mrccache_get_region() to use livetree")

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
4 years agoMerge branch 'master' of git://git.denx.de/u-boot-sh
Tom Rini [Thu, 5 Mar 2020 00:21:00 +0000 (19:21 -0500)]
Merge branch 'master' of git://git.denx.de/u-boot-sh

- Limit bootloader size to 1 MiB on R-Car Gen3

4 years agoMerge branch 'master' of git://git.denx.de/u-boot-socfpga
Tom Rini [Wed, 4 Mar 2020 15:41:41 +0000 (10:41 -0500)]
Merge branch 'master' of git://git.denx.de/u-boot-socfpga

- ABB SECU board
- Assorted minor fixes

4 years agoMerge branch 'master' of git://git.denx.de/u-boot-usb
Tom Rini [Wed, 4 Mar 2020 15:41:27 +0000 (10:41 -0500)]
Merge branch 'master' of git://git.denx.de/u-boot-usb

- DFU / Thor fixes

4 years agoMerge tag 'dm-pull-3mar20' of git://git.denx.de/u-boot-dm
Tom Rini [Wed, 4 Mar 2020 02:48:49 +0000 (21:48 -0500)]
Merge tag 'dm-pull-3mar20' of git://git.denx.de/u-boot-dm

Fixes for power domain on device removal

4 years agoARM: socfpga: Add initial support for the ABB SECU board
Holger Brunck [Wed, 19 Feb 2020 18:55:14 +0000 (19:55 +0100)]
ARM: socfpga: Add initial support for the ABB SECU board

Add initial support for the ABB SECU board, which is an ArriaV-based
SoCFPGA system with ethernet and booting from Denali NAND.

Signed-off-by: Holger Brunck <holger.brunck@ch.abb.com>
Cc: Ley Foon Tan <ley.foon.tan@intel.com>
Cc: Simon Goldschmidt <simon.k.r.goldschmidt@gmail.com>
4 years agovideo: meson: keep power domain up after booting
Anatolij Gustschin [Mon, 17 Feb 2020 11:36:44 +0000 (12:36 +0100)]
video: meson: keep power domain up after booting

Add driver flag to skip power domain disabling on device removal.

Fixes: 52edfed65de9 ("dm: core: device: switch off power domain after device removal")
Signed-off-by: Anatolij Gustschin <agust@denx.de>
Acked-by: Neil Armstrong <narmstrong@baylibre.com>
Tested-by: Guillaume La Roque <glaroque@baylibre.com>
4 years agodm: core: Add a flag for power domain control on device removal
Anatolij Gustschin [Mon, 17 Feb 2020 11:36:43 +0000 (12:36 +0100)]
dm: core: Add a flag for power domain control on device removal

In various cases a power domain must stay enabled after device
removal when booting OS (i.e. serial debug console or display).
Add a flag to selectively skip switching off a power domain.

Fixes: 52edfed65de9 ("dm: core: device: switch off power domain after device removal")
Signed-off-by: Anatolij Gustschin <agust@denx.de>
Acked-by: Neil Armstrong <narmstrong@baylibre.com>
Tested-by: Guillaume La Roque <glaroque@baylibre.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
4 years agoMerge tag 'u-boot-stm32-20200203' of https://gitlab.denx.de/u-boot/custodians/u-boot-stm
Tom Rini [Mon, 2 Mar 2020 14:20:30 +0000 (09:20 -0500)]
Merge tag 'u-boot-stm32-20200203' of https://gitlab.denx.de/u-boot/custodians/u-boot-stm

- convert stm32mp1 board documentation to rst format

4 years agoMerge tag 'xilinx-for-v2020.04-rc4' of https://gitlab.denx.de/u-boot/custodians/u...
Tom Rini [Mon, 2 Mar 2020 14:20:12 +0000 (09:20 -0500)]
Merge tag 'xilinx-for-v2020.04-rc4' of https://gitlab.denx.de/u-boot/custodians/u-boot-microblaze

Xilinx fixes for v2020.04-rc4

- Fix link good bit handling in dp83867
- Rename generic Zynq defconfig
- Fix zybo z7 low leve setup
- Fix error path in zynq_gem driver and fix 64bit usage
- Fix invalid clock name quieries for Versal
- Fix zynq/zynqmp SPL low level configuration via DT selection

4 years agodoc: add board documentation for stm32mp1
Patrick Delaunay [Tue, 25 Feb 2020 18:04:14 +0000 (19:04 +0100)]
doc: add board documentation for stm32mp1

Change plain test README to rst format and move this file
in documentation directory.

Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com>
Tested-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Reviewed-by: Patrice Chotard <patrice.chotard@st.com>
4 years agostm32mp1: rng: remove superfluous assignment
Heinrich Schuchardt [Sun, 16 Feb 2020 09:11:18 +0000 (10:11 +0100)]
stm32mp1: rng: remove superfluous assignment

We should not assign a value that is overwritten before use.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Acked-by: Sughosh Ganu <sughosh.ganu@linaro.org>
Reviewed-by: Patrick Delaunay <patrick.delaunay@st.com>
4 years agoARM: socfpga: Add missing Denali NAND config options
Marek Vasut [Sat, 15 Feb 2020 13:10:09 +0000 (14:10 +0100)]
ARM: socfpga: Add missing Denali NAND config options

The Denali SPL shim won't build without these options set,
set them accordingly to fix the build error and let the SPL
shim to work correctly.

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Ley Foon Tan <ley.foon.tan@intel.com>
Cc: Simon Goldschmidt <simon.k.r.goldschmidt@gmail.com>
4 years agoARM: socfpga: Permit overriding the default timer frequency
Marek Vasut [Sat, 15 Feb 2020 13:10:02 +0000 (14:10 +0100)]
ARM: socfpga: Permit overriding the default timer frequency

The default timer rate may be different than 25 MHz, permit overriding
the default rate in board configuration file. Ultimatelly, this should
be properly handled by a clock driver, however that is not available
on Gen5 yet.

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Ley Foon Tan <ley.foon.tan@intel.com>
Cc: Simon Goldschmidt <simon.k.r.goldschmidt@gmail.com>
4 years agortc: m41t62: add compatible for m41st87
Marek Vasut [Sat, 15 Feb 2020 13:46:10 +0000 (14:46 +0100)]
rtc: m41t62: add compatible for m41st87

This adds a compatible string for m41st87. This ensures that this driver
can be used for m41st87.

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Simon Goldschmidt <simon.k.r.goldschmidt@gmail.com>
Cc: Stefan Roese <sr@denx.de>
Reviewed-by: Stefan Roese <sr@denx.de>
4 years agogadget: f_thor: add missing line breaks for pr_err()
Seung-Woo Kim [Thu, 13 Feb 2020 08:24:11 +0000 (17:24 +0900)]
gadget: f_thor: add missing line breaks for pr_err()

After the commit 9b643e312d52 ("treewide: replace with error()
with pr_err()"), there are pr_err() usages without line break. Add
missing line breaks for pr_err() used in f_thor.

Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com>
4 years agodfu: Reset timeout in case of DFU request
Andy Shevchenko [Wed, 29 Jan 2020 15:23:14 +0000 (17:23 +0200)]
dfu: Reset timeout in case of DFU request

In case dfu command is being executed with timeout option,
the timer may expire in the middle of DFU operation. If there
is DFU request coming, we may simple reset timeout value
to prevent aborting of ongoing DFU operation.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Tested-by: Ferry Toth <ftoth@exalondelft.nl>
4 years agoARM: rmobile: Limit bootloader size to 1 MiB on R-Car Gen3
Marek Vasut [Fri, 24 Jan 2020 00:31:37 +0000 (01:31 +0100)]
ARM: rmobile: Limit bootloader size to 1 MiB on R-Car Gen3

The HF/QSPI flash layout permits up to 1 MiB large bootloader blob,
set CONFIG_BOARD_SIZE_LIMIT to enforce this limit and set the
monitor size to match accordingly.

Signed-off-by: Marek Vasut <marek.vasut+renesas@gmail.com>
Cc: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
4 years agoMerge tag 'efi-2020-04-rc4-2' of https://gitlab.denx.de/u-boot/custodians/u-boot-efi
Tom Rini [Sat, 29 Feb 2020 13:01:07 +0000 (08:01 -0500)]
Merge tag 'efi-2020-04-rc4-2' of https://gitlab.denx.de/u-boot/custodians/u-boot-efi

Pull request for UEFI sub-system for efi-2020-04-rc4 (2)

In Linux next-20200228 patches have been merged to load an initial ramdisk
using an EFI_LOAD_FILE2_PROTOCOL provided by the firmware. See commit
ec93fc371f01 ("efi/libstub: Add support for loading the initrd from a
device path"). The idea behind it is that the firmware should be
responsible for validating the initrd in a secure boot setup.

This pull-request comprises a patch series which let's U-Boot provide an
initial implementation of the EFI_LOAD_FILE2_PROTOCOL providing the initrd.

4 years agoMerge tag 'uniphier-v2020.04-3' of https://gitlab.denx.de/u-boot/custodians/u-boot...
Tom Rini [Sat, 29 Feb 2020 13:00:53 +0000 (08:00 -0500)]
Merge tag 'uniphier-v2020.04-3' of https://gitlab.denx.de/u-boot/custodians/u-boot-uniphier

UniPhier SoC updates for v2020.04 (3rd)

 - Enable ADMA and HS400 for the eMMC driver on 64-bit SoCs

 - Add some convenient environment variables to handle SD card

 - Sanitize the NAND controller reset sequence and its WP handling

 - Sync DT with Linux

4 years agoARM: dts: uniphier: remove U-Boot own EEPROM compatible and property
Masahiro Yamada [Fri, 28 Feb 2020 12:57:21 +0000 (21:57 +0900)]
ARM: dts: uniphier: remove U-Boot own EEPROM compatible and property

The compatible string "i2c-eeprom" is U-Boot own compatible, which
has never been approved by the DT community. "u-boot,i2c-offset-len"
is also a U-Boot own hack.

Linux adds "atmel,*" as generic compatibles, and U-Boot also followed
it by commit d7e28918aa3f ("i2c_eeprom: Add reading support").

The U-Boot own hack is no longer needed. Just sync with Linux.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
4 years agoARM: dts: uniphier: add reset-names to NAND controller node
Masahiro Yamada [Fri, 28 Feb 2020 12:57:20 +0000 (21:57 +0900)]
ARM: dts: uniphier: add reset-names to NAND controller node

Import Linux commits:

37f3e0096f71 ("ARM: dts: uniphier: add reset-names to NAND controller node")
e98d5023fe1f ("arm64: dts: uniphier: add reset-names to NAND controller node")

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
4 years agoARM: dts: uniphier: rename DT nodes to follow json-schema
Masahiro Yamada [Fri, 28 Feb 2020 12:57:19 +0000 (21:57 +0900)]
ARM: dts: uniphier: rename DT nodes to follow json-schema

Import the nodename changes I made in Linux for avoiding dt-schama
warnings. This follows the $nodename patterns in the dt-schema.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
4 years agodoc/efi: add load file 2 protocol to HTML documentation
Heinrich Schuchardt [Sat, 22 Feb 2020 06:47:20 +0000 (07:47 +0100)]
doc/efi: add load file 2 protocol to HTML documentation

The load file 2 protocol can be used by the Linux kernel to load the initial
RAM disk. U-Boot can be configured to provide an implementation.

Add a description to the UEFI overview and document the related functions
in the API section.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
4 years agoefi_selftest: add selftests for loadfile2 used to load initramfs
Ilias Apalodimas [Fri, 21 Feb 2020 07:55:46 +0000 (09:55 +0200)]
efi_selftest: add selftests for loadfile2 used to load initramfs

Provide a unit test loading an initial ramdisk using the
EFI_LOAD_FILE2_PROTOCOL. The test is only executed on request.

An example usage - given a file image with a file system in partition 1
holding file initrd - is:

* Configure the sandbox with

  CONFIG_EFI_SELFTEST=y
  CONFIG_EFI_LOAD_FILE2_INITRD=y
  CONFIG_EFI_INITRD_FILESPEC="host 0:1 initrd"

* Run ./u-boot and execute

    host bind 0 image
    setenv efi_selftest load initrd
    bootefi selftest

This would provide a test output like:

    Testing EFI API implementation

    Selected test: 'load initrd'

    Setting up 'load initrd'
    Setting up 'load initrd' succeeded

    Executing 'load initrd'
    Loaded 12378613 bytes
    CRC32 2997478465
    Executing 'load initrd' succeeded

Now the size and CRC32 can be compared to the provided file.

Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
4 years agoefi_loader: Implement FileLoad2 for initramfs loading
Ilias Apalodimas [Fri, 21 Feb 2020 07:55:45 +0000 (09:55 +0200)]
efi_loader: Implement FileLoad2 for initramfs loading

Following kernel's proposal for an arch-agnostic initrd loading
mechanism [1] let's implement the U-boot counterpart.
This new approach has a number of advantages compared to what we did up
to now. The file is loaded into memory only when requested limiting the
area of TOCTOU attacks. Users will be allowed to place the initramfs
file on any u-boot accessible partition instead of just the ESP one.
Finally this is an attempt of a generic interface across architectures
in the linux kernel so it makes sense to support that.

The file location is intentionally only supported as a config option
argument(CONFIG_EFI_INITRD_FILESPEC), in an effort to enhance security.
Although U-boot is not responsible for verifying the integrity of the
initramfs, we can enhance the offered security by only accepting a
built-in option, which will be naturally verified by UEFI Secure Boot.
This can easily change in the future if needed and configure that via ENV
or UEFI variable.

[1] https://lore.kernel.org/linux-efi/20200207202637.GA3464906@rani.riverdale.lan/T/#m4a25eb33112fab7a22faa0fd65d4d663209af32f

Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
4 years agoconfigs: Resync with savedefconfig
Tom Rini [Fri, 28 Feb 2020 18:28:38 +0000 (13:28 -0500)]
configs: Resync with savedefconfig

Rsync all defconfig files using moveconfig.py

Signed-off-by: Tom Rini <trini@konsulko.com>
4 years agoMerge branch '2020-02-28-mpc8xx-fixes'
Tom Rini [Fri, 28 Feb 2020 16:04:50 +0000 (11:04 -0500)]
Merge branch '2020-02-28-mpc8xx-fixes'

- Fix the watchdog on mpc8xx platforms

4 years agowatchdog: Don't select CONFIG_WATCHDOG and CONFIG_HW_WATCHDOG at the same time
Christophe Leroy [Wed, 26 Feb 2020 16:17:52 +0000 (16:17 +0000)]
watchdog: Don't select CONFIG_WATCHDOG and CONFIG_HW_WATCHDOG at the same time

Commit 06985289d452 ("watchdog: Implement generic watchdog_reset()
version") introduced an automatic selection of CONFIG_WATCHDOG by
CONFIG_WDT. But for boards selecting CONFIG_HW_WATCHDOG, like
boards have a powerpc 8xx, CONFIG_WATCHDOG shall not be selected
as they are mutually exclusive.

Make CONFIG_WATCHDOG dependent on !CONFIG_HW_WATCHDOG

Fixes: 06985289d452 ("watchdog: Implement generic watchdog_reset() version")
Cc: Stefan Roese <sr@denx.de>
Signed-off-by: Christophe Leroy <christophe.leroy@c-s.fr>
Reviewed-by: Stefan Roese <sr@denx.de>
4 years agowatchdog: mpc8xx: Revert the 8xx watchdog back to CONFIG_HW_WATCHDOG
Christophe Leroy [Thu, 20 Feb 2020 07:39:51 +0000 (07:39 +0000)]
watchdog: mpc8xx: Revert the 8xx watchdog back to CONFIG_HW_WATCHDOG

Commit f3729ba6e7b2 ("watchdog: mpc8xx_wdt: Watchdog driver and macros
cleanup") switched the watchdog to CONFIG_WATCHDOG. But this is not
compatible with the 8xx because it starts the watchdog HW timer at
reset and must be serviced from the very beginning including while
U-boot is executed in the firmware before relocation in RAM.

Select CONFIG_HW_WATCHDOG and make hw_watchdog_reset() visible.

Meanwhile, finalise the cleanup of arch/powerpc/cpu/mpc8xx/Kconfig by
removing the lines put in comment in that commit, and also remove
again the selection of CONFIG_MPC8xx_WATCHDOG which was removed by
that commit and brought back by mistake by commit b3134ffbd944
("watchdog: Kconfig: Sort entry alphabetically")

Note that there was an 'imply WATCHDOG' in the original commit but
it disappeared in the Kconfig alphabetical sorting, so no need to
remove it here.

Fixes: f3729ba6e7b2 ("watchdog: mpc8xx_wdt: Watchdog driver and macros cleanup")
Fixes: b3134ffbd944 ("watchdog: Kconfig: Sort entry alphabetically")
Signed-off-by: Christophe Leroy <christophe.leroy@c-s.fr>
Cc: Stefan Roese <sr@denx.de>
Cc: Patrice Chotard <patrice.chotard@st.com>
Reviewed-by: Stefan Roese <sr@denx.de>
4 years agoARM: zynq: Remove single comment about QSPI
Michal Simek [Tue, 25 Feb 2020 14:27:09 +0000 (15:27 +0100)]
ARM: zynq: Remove single comment about QSPI

Very likely configs have been moved to Kconfig by scripts and this just
remains there that's why remove it.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
4 years agoARM: zynq: Rename defconfig to be align with ZynqMP and Versal
Michal Simek [Thu, 13 Feb 2020 13:59:40 +0000 (14:59 +0100)]
ARM: zynq: Rename defconfig to be align with ZynqMP and Versal

Just cosmetic change before real switch.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
4 years agoarm: xilinx: Fill DEVICE_TREE directly in Makefiles
Michal Simek [Thu, 13 Feb 2020 13:36:34 +0000 (14:36 +0100)]
arm: xilinx: Fill DEVICE_TREE directly in Makefiles

DEVICE_TREE variable is not exported from dts/Makefile that's why it is
necessary to setup directly before use.

Fixes: 312f2c5b14fa ("arm: xilinx: Use device tree which can be passed on cmd line")
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
4 years agonet: zynq: Free allocated buffers in case of error
Michal Simek [Thu, 6 Feb 2020 13:36:46 +0000 (14:36 +0100)]
net: zynq: Free allocated buffers in case of error

Driver probe function is called again and again in case of error.
Malloc space is getting full which is is reported by:
 Insufficient RAM for page table: 0x15000 > 0x14000.
 Please increase the size in get_page_table_size()
 ### ERROR ### Please RESET the board ###

The patch is freeing allocated buffers on error path to avoid panic.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
4 years agonet: phy: dp83867: Clean force link good bit
Michal Simek [Thu, 6 Feb 2020 14:59:23 +0000 (15:59 +0100)]
net: phy: dp83867: Clean force link good bit

On Xilinx ZynqMP revA board initial value of PHYCR register is 0x5448 which
means FORCE_LINK_GOOD is already setup. Origin code was doing write but the
new code is doing read/modify/write and keep this bit untouched. That's why
ethernet stop to work.
The patch is cleaning this bit when PHYCR value is composed.

Tested on Xilinx zcu102-revA and zcu104-rev1.0 boards.

Fixes: 37d6265f2bfa ("net: phy: dp83867: refactor rgmii configuration")
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Reviewed-by: Grygorii Strashko <grygorii.strashko@ti.com>
4 years agomtd: nand: Fix on-die ecc issues in arasan_nfc driver
T Karthik Reddy [Mon, 20 Jan 2020 06:59:23 +0000 (23:59 -0700)]
mtd: nand: Fix on-die ecc issues in arasan_nfc driver

Fixed wrong enumeration of nand_config structure. Added chip select
function before reading the nand chip for maf/dev id's, without this
unable to access id's from some of the micron chips. Also added a
print statement to identify if a nand flash is using on-die ecc.

Signed-off-by: T Karthik Reddy <t.karthik.reddy@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
4 years agoversal: drivers: clk: Fix invalid clock name queries
Rajan Vaja [Thu, 16 Jan 2020 11:55:05 +0000 (03:55 -0800)]
versal: drivers: clk: Fix invalid clock name queries

The clock driver makes EEMI call to get the name of invalid clk
when executing versal_get_clock_info() function. This results in
error messages.
Added check for validating clock before saving clock attribute and
calling versal_pm_clock_get_name() in versal_get_clock_info() function.

Signed-off-by: Rajan Vaja <rajan.vaja@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
4 years agoarm: zynq: zybo z7: fix SPL uart init bitrate
Milan Obuch [Mon, 20 Jan 2020 01:32:19 +0000 (22:32 -0300)]
arm: zynq: zybo z7: fix SPL uart init bitrate

The board uses 100 MHz clock for UART bitrate generator,
but is configured as 50 MHz on defconfig.

This produces wrong console output.
The first message, "Debug uart enabled" is received as:
"������b"

Fix the issue by configuring the correct clock for the
UART baudrate generator

Signed-off-by: Milan Obuch <u-boot@dino.sk>
Signed-off-by: Luis Araneda <luaraneda@gmail.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
4 years agoarm: zynq: zybo z7: fix MIO init issue
Milan Obuch [Mon, 20 Jan 2020 01:33:30 +0000 (22:33 -0300)]
arm: zynq: zybo z7: fix MIO init issue

The board has two push button connected to MIO pins
50 and 51, which have a pull-down resistor and are
connected to 1.8V when pressed.

These two pins are wrongly initialized with internal
pull-up enabled so they are reported as 1 all the time
with no change when pressed.

Disable the internal pull-up to fix the issue.

Signed-off-by: Milan Obuch <u-boot@dino.sk>
Signed-off-by: Luis Araneda <luaraneda@gmail.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
4 years agonet: zynq_gem: Use ulong instead of u32 data type
T Karthik Reddy [Wed, 15 Jan 2020 09:15:13 +0000 (02:15 -0700)]
net: zynq_gem: Use ulong instead of u32 data type

flush_dcache_range() expects unsigned long in the arguments. Here u32
variable is unable to hold the higher address value when ddr mapped
to higher addresses & flushing lower address dchache range instead
which is unmapped causing to crash.

Signed-off-by: T Karthik Reddy <t.karthik.reddy@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
4 years agoARM: uniphier: enable CONFIG_MMC_HS400_SUPPORT for uniphier_v8_defconfig
Masahiro Yamada [Thu, 27 Feb 2020 11:31:18 +0000 (20:31 +0900)]
ARM: uniphier: enable CONFIG_MMC_HS400_SUPPORT for uniphier_v8_defconfig

The eMMC controller on LD20 or later supports HS-400 mode. It works on
a quick test. Enable it in case somebody may want to use it.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
4 years agoARM: uniphier: detect the base of micro support card at run-time
Masahiro Yamada [Fri, 14 Feb 2020 11:54:42 +0000 (20:54 +0900)]
ARM: uniphier: detect the base of micro support card at run-time

The base address 0x43f00000 is no longer true for the future SoC.
Extract the base address from the device tree.

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