oweals/u-boot.git
4 years agoimx: nandbcb: add support for writing BCB only
Igor Opaniuk [Sun, 3 Nov 2019 15:49:46 +0000 (16:49 +0100)]
imx: nandbcb: add support for writing BCB only

Add subcommand for add writing BCB only, where we provide appropriate
offsets for firmware1 and firmware2 and size.

Example of usage:
> nandbcb bcbonly 0x00180000 0x00080000 0x00200000
Writing 1024 bytes to 0x0: randomizing
OK
Writing 1024 bytes to 0x20000: randomizing
OK

Signed-off-by: Igor Opaniuk <igor.opaniuk@toradex.com>
Tested-by: Max Krummenacher <max.krummenacher@toradex.com>
Reviewed-by: Oleksandr Suvorov <oleksandr.suvorov@toradex.com>
4 years agoimx: nandbcb: refactor update function
Igor Opaniuk [Sun, 3 Nov 2019 15:49:45 +0000 (16:49 +0100)]
imx: nandbcb: refactor update function

Move code for writing FCB/DBBT pages to a separate function

Signed-off-by: Igor Opaniuk <igor.opaniuk@toradex.com>
Tested-by: Max Krummenacher <max.krummenacher@toradex.com>
Reviewed-by: Oleksandr Suvorov <oleksandr.suvorov@toradex.com>
4 years agoimx: nandbcb: add support for i.MX7
Igor Opaniuk [Sun, 3 Nov 2019 15:49:44 +0000 (16:49 +0100)]
imx: nandbcb: add support for i.MX7

Add support for updating FCB/DBBT on i.MX7:
- additional new fields in FCB structure
- Leverage hardware BCH/randomizer for writing FCB

Signed-off-by: Igor Opaniuk <igor.opaniuk@toradex.com>
Tested-by: Max Krummenacher <max.krummenacher@toradex.com>
Reviewed-by: Oleksandr Suvorov <oleksandr.suvorov@toradex.com>
4 years agonand: mxs_nand: add API for switching different BCH layouts
Igor Opaniuk [Sun, 3 Nov 2019 15:49:43 +0000 (16:49 +0100)]
nand: mxs_nand: add API for switching different BCH layouts

On i.MX7 in a sake of reducing the disturbances caused by a neighboring
cells in the FCB page in the NAND chip, a randomizer is enabled when
reading the FCB page by ROM bootloader.

Add API for setting BCH to specific layout (and restoring it back) used by
ROM bootloader to be able to burn it in a proper way to NAND using
nandbcb command.

Signed-off-by: Igor Opaniuk <igor.opaniuk@toradex.com>
Signed-off-by: Anti Sullin <anti.sullin@artecdesign.ee>
Tested-by: Max Krummenacher <max.krummenacher@toradex.com>
Reviewed-by: Oleksandr Suvorov <oleksandr.suvorov@toradex.com>
4 years agoimx: gpmi: add defines for hw randominizer
Igor Opaniuk [Sun, 3 Nov 2019 15:49:42 +0000 (16:49 +0100)]
imx: gpmi: add defines for hw randominizer

Extend GPMI Integrated ECC Control Register Description, include
additional defines for enabling randomizer function and providing
proper randomizer type.

For additional details check i.MX7 APR, section
9.6.6.3 GPMI Integrated ECC Control Register Description
(GPMI_ECCCTRLn)

Signed-off-by: Igor Opaniuk <igor.opaniuk@toradex.com>
Tested-by: Max Krummenacher <max.krummenacher@toradex.com>
Reviewed-by: Oleksandr Suvorov <oleksandr.suvorov@toradex.com>
4 years agotbs2910: Disable Plan9/RTEMS bootm support
Tom Rini [Sun, 3 Nov 2019 12:41:12 +0000 (07:41 -0500)]
tbs2910: Disable Plan9/RTEMS bootm support

We have once again reached a point where this board does not build in
some cases with supported toolchains due to reaching a size constraint.
To regain some space, disable support for Plan 9 / RTEMS images with the
bootm command.

Signed-off-by: Tom Rini <trini@konsulko.com>
Acked-by: Stefano Babic <sbabic@denx.de>
4 years agoimx: support i.MX8QM ROM 7720 a1 board
Oliver Graute [Fri, 20 Sep 2019 07:08:41 +0000 (07:08 +0000)]
imx: support i.MX8QM ROM 7720 a1 board

Add i.MX8QM ROM 7720a1 board support

Boot log as below:
U-Boot 2019.10-rc3-00004-gd073e0242f (Sep 20 2019 - 08:24:13 +0200)

CPU:   NXP i.MX8QM RevB A53 at 1200 MHz

Model: Advantech iMX8QM Qseven series
Board: ROM-7720-A1 4GB
Build: SCFW 65afe5f6
Boot:  SD2
DRAM:  4 GiB
MMC:   FSL_SDHC: 0, FSL_SDHC: 1, FSL_SDHC: 2
Loading Environment from MMC... OK
In:    serial@5a060000
Out:   serial@5a060000
Err:   serial@5a060000
Net:   eth0: ethernet@5b040000Could not get PHY for FEC1: addr 1
, eth-1: ethernet@5b050000
Hit any key to stop autoboot:  0

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>
4 years agoarm: dts: imx8mm: sync dts from Linux Kernel
Peng Fan [Wed, 16 Oct 2019 10:24:30 +0000 (10:24 +0000)]
arm: dts: imx8mm: sync dts from Linux Kernel

Sync dts for i.MX8MM from Linux Kernel 5.4.0-rc1

Signed-off-by: Peng Fan <peng.fan@nxp.com>
4 years agoboard/BuR/brppt2: initial commit
Hannes Schmelzer [Wed, 17 Jul 2019 12:29:53 +0000 (14:29 +0200)]
board/BuR/brppt2: initial commit

This commit adds support for the brppt2 board. The board is based on the
i.mx6 dual-lite SoC.

Signed-off-by: Hannes Schmelzer <hannes.schmelzer@br-automation.com>
4 years agoimx8: output SECO-FW and ATF commit IDs
Anatolij Gustschin [Sat, 26 Oct 2019 14:24:04 +0000 (16:24 +0200)]
imx8: output SECO-FW and ATF commit IDs

Borrow ID reading code from Ye Li (NXP U-Boot, commit ID 5b443e3e2617)
but drop imx-mkimage commit ID reading since we now use in tree mkimage.

Signed-off-by: Anatolij Gustschin <agust@denx.de>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
4 years agomach-imx: Adding new argument for SIP call interface
Ye Li [Sat, 26 Oct 2019 14:24:03 +0000 (16:24 +0200)]
mach-imx: Adding new argument for SIP call interface

Need to pass total 5 arguments for SIP HAB call on i.MX8MQ,
so update the interface to add new argument.

Signed-off-by: Ye Li <ye.li@nxp.com>
[agust: fixed imx8m-power-domain build]
Signed-off-by: Anatolij Gustschin <agust@denx.de>
Reviewed-by: Patrick Wildt <patrick@blueri.se>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
4 years agoimx8qxp: mek: add secure boot script
Peng Fan [Wed, 25 Sep 2019 08:11:19 +0000 (08:11 +0000)]
imx8qxp: mek: add secure boot script

Add secure boot script, use ahab to verify image

Signed-off-by: Peng Fan <peng.fan@nxp.com>
4 years agoimx8qm: mek: add secure boot script
Peng Fan [Wed, 25 Sep 2019 08:11:17 +0000 (08:11 +0000)]
imx8qm: mek: add secure boot script

Add secure boot script, use ahab to verify image

Signed-off-by: Peng Fan <peng.fan@nxp.com>
4 years agoimx8: Add AHAB secure boot support
Peng Fan [Wed, 25 Sep 2019 08:11:14 +0000 (08:11 +0000)]
imx8: Add AHAB secure boot support

Add function and new command "auth_cntr" for secure boot support.
When booting with life cycle set to OEM closed, we need to use
this function to authenticate the OS container and load kernel & FDT
from OS container to their destination.

Also add image authentication call when loading container images.

Users can set CONFIG_AHAB_BOOT=y to enable the feature. It is not
set at default.

Signed-off-by: Ye Li <ye.li@nxp.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
4 years agoimx8mm: evk: enable bd71837 pmic
Peng Fan [Wed, 16 Oct 2019 10:24:42 +0000 (10:24 +0000)]
imx8mm: evk: enable bd71837 pmic

Enable bd71837 pmic for i.MX8MM EVK board, need to set voltage for
DRAM and linux suspend voltage requirement.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
4 years agoimx8m: evk: spl: probe clk in spl early stage
Peng Fan [Wed, 16 Oct 2019 10:24:39 +0000 (10:24 +0000)]
imx8m: evk: spl: probe clk in spl early stage

We are going to add i2c pmic support before dram could be used.
So we need enable clk driver earlier, so use spl_early_init
and move clock controller probe eariler to board_init_f.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
4 years agopower: pmic: Kconfig: add CONFIG_SPL_DM_PMIC_BD71837
Peng Fan [Wed, 16 Oct 2019 10:24:36 +0000 (10:24 +0000)]
power: pmic: Kconfig: add CONFIG_SPL_DM_PMIC_BD71837

Add CONFIG_SPL_DM_PMIC_BD71837 to make this driver could be
used in SPL stage

Signed-off-by: Peng Fan <peng.fan@nxp.com>
4 years agopmic: bd71837: drop DEBUG macro
Peng Fan [Wed, 16 Oct 2019 10:24:34 +0000 (10:24 +0000)]
pmic: bd71837: drop DEBUG macro

Drop DEBUG macro definition which is used for debug purpose.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
4 years agodt-bindings: import usb pd
Peng Fan [Wed, 16 Oct 2019 10:24:28 +0000 (10:24 +0000)]
dt-bindings: import usb pd

Import usb pd bindings from Linux 5.4.0-rc1.
This file will be included by imx8mm-evk.dts.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
4 years agoimx: spl: implement spl_boot_mode for i.MX7/8/8M
Peng Fan [Wed, 16 Oct 2019 10:24:25 +0000 (10:24 +0000)]
imx: spl: implement spl_boot_mode for i.MX7/8/8M

It will be easy to separate SD/EMMC when booting in SPL stage, then
no need to bother which device is BOOT_DEVICE_MMC1/2.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
4 years agoimx: imx8mq: add init_nand_clk
Peng Fan [Wed, 16 Oct 2019 10:24:22 +0000 (10:24 +0000)]
imx: imx8mq: add init_nand_clk

Add init_nand_clk to enable gpmi nand clock. Since i.MX8MQ not use CCF,
so we still use legacy mode to configure the clock.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
4 years agoimx8m: clock: improve irq response latency
Peng Fan [Wed, 16 Oct 2019 10:24:20 +0000 (10:24 +0000)]
imx8m: clock: improve irq response latency

Improve the IRQ response latency by setting GIC root clock source to
sys_pll2_200m from osc.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
4 years agoimx8m: imx8mq: get chip rev for B1 revision
Peng Fan [Wed, 16 Oct 2019 10:24:17 +0000 (10:24 +0000)]
imx8m: imx8mq: get chip rev for B1 revision

The i.MX8MQ B1 uses OCOTP_HW_OCOTP_READ_FUSE_DATA register for chip id.
It returns a magic number 0xff0055aa. update get_cpu_rev to support it,
and enable ocotp clock to access ocotp.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
4 years agovideo: mxsfb: set gd->fb_base
Sébastien Szymanski [Mon, 21 Oct 2019 13:33:04 +0000 (15:33 +0200)]
video: mxsfb: set gd->fb_base

Set gd->fb_base so it can be shown with bdinfo command.

Signed-off-by: Sébastien Szymanski <sebastien.szymanski@armadeus.com>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
4 years agoopos6uldev: migrate to DM_VIDEO
Sébastien Szymanski [Mon, 21 Oct 2019 13:33:03 +0000 (15:33 +0200)]
opos6uldev: migrate to DM_VIDEO

Migrate to DM_VIDEO, update the device tree and remove code that is no
longer necessary.

Reviewed-by: Peng Fan <peng.fan@nxp.com>
Signed-off-by: Sébastien Szymanski <sebastien.szymanski@armadeus.com>
4 years agoimx6ul: opos6ul: migrate to DM_ETH
Sébastien Szymanski [Mon, 21 Oct 2019 13:33:02 +0000 (15:33 +0200)]
imx6ul: opos6ul: migrate to DM_ETH

Migrate to DM_ETH and remove code that is no longer necessary.

Reviewed-by: Peng Fan <peng.fan@nxp.com>
Signed-off-by: Sébastien Szymanski <sebastien.szymanski@armadeus.com>
4 years agoimx: update i.MX8MQ device trees
Patrick Wildt [Mon, 14 Oct 2019 11:19:00 +0000 (13:19 +0200)]
imx: update i.MX8MQ device trees

This updates the i.MX8MQ device trees and, necessarily, also the
i.MX8MQ clock bindings.  These are taken verbatim from from the
Linux kernel version v5.4-rc2, which three small changes which
were already part of the previous device tree:

 * Keep the PSCI reserved memory range
 * Keep the alias for ethernet, so that the MAC address can be set
 * Keep the modified #include for the IOMUXC pins

Signed-off-by: Patrick Wildt <patrick@blueri.se>
Acked-by: Peng Fan <peng.fan@nxp.com>
4 years agomccmon6: defconfig: nor: Enable usage of *_TINY_* drivers in SPL
Lukasz Majewski [Tue, 15 Oct 2019 08:28:47 +0000 (10:28 +0200)]
mccmon6: defconfig: nor: Enable usage of *_TINY_* drivers in SPL

After this change the SPL size has been reduced from 38K to 34K.

Signed-off-by: Lukasz Majewski <lukma@denx.de>
4 years agoARM: imx: Convert mccmon6 to use fitImage instead of uImage+DTB
Lukasz Majewski [Tue, 15 Oct 2019 08:28:46 +0000 (10:28 +0200)]
ARM: imx: Convert mccmon6 to use fitImage instead of uImage+DTB

This commit enabled support for fitImage on mccmon6 when we
switch to DT/DTS (including falcon mode).

Signed-off-by: Lukasz Majewski <lukma@denx.de>
4 years agospl: nor: Provide falcon boot support for NOR memories
Lukasz Majewski [Tue, 15 Oct 2019 08:28:45 +0000 (10:28 +0200)]
spl: nor: Provide falcon boot support for NOR memories

This commit adds falcon boot support (by also copying args necessary for
booting) to the SPL NOR memory driver.

After this change it is possible to use the falcon boot in the same way
as on NAND memories. The necessary configs (i.e. CONFIG_CMD_SPL_NOR_OFS)
are now defined in Kconfig.

Signed-off-by: Lukasz Majewski <lukma@denx.de>
Reviewed-by: Tom Rini <trini@konsulko.com>
4 years agoARM: imx: Decouple mccmon6's SPL and u-boot proper code
Lukasz Majewski [Tue, 15 Oct 2019 08:28:44 +0000 (10:28 +0200)]
ARM: imx: Decouple mccmon6's SPL and u-boot proper code

The mccmon6 has been used a "mixed" approach between SPL and
U-Boot proper sources.

This commit decoupes SPL and u-boot proper, which allows clear
distinction between those two code bases and facilitates
conversion to DM/DTS on this particular board.

Signed-off-by: Lukasz Majewski <lukma@denx.de>
4 years agoARM: imx: Convert mccmon6 to use DM/DTS in the u-boot proper
Lukasz Majewski [Tue, 15 Oct 2019 08:28:43 +0000 (10:28 +0200)]
ARM: imx: Convert mccmon6 to use DM/DTS in the u-boot proper

This commit converts mccmon6's u-boot proper (in a single commit to avoid
build breaks) to use solely DM/DTS.

The DTS description of the mccmon6 has been ported from Linux kernel
(v4.20, SHA1: 8fe28cb58bcb235034b64cbbb7550a8a43fd88be)

Signed-off-by: Lukasz Majewski <lukma@denx.de>
4 years agoimx: Enable RTC (ds1307) support in the U-Boot proper on TPC70 board
Lukasz Majewski [Tue, 15 Oct 2019 10:40:51 +0000 (12:40 +0200)]
imx: Enable RTC (ds1307) support in the U-Boot proper on TPC70 board

The TPC70 is equipped with DS1307 RTC device. Add code to enable support
for it.

Signed-off-by: Lukasz Majewski <lukma@denx.de>
4 years agoARM: imx6: DHCOM i.MX6 PDK: spl: Add eMMC initialization to SPL code
Claudius Heine [Tue, 29 Oct 2019 12:17:56 +0000 (13:17 +0100)]
ARM: imx6: DHCOM i.MX6 PDK: spl: Add eMMC initialization to SPL code

In order for 'bmode emmc' to work, the eMMC needs to be initialized in the
SPL. This change initializes the eMMC as BOOT_DEVICE_MMC1 (index=0).

Signed-off-by: Claudius Heine <ch@denx.de>
4 years agoARM: imx6: DHCOM i.MX6 PDK: defconfig: Enable MMC support of SPL
Claudius Heine [Tue, 29 Oct 2019 12:17:57 +0000 (13:17 +0100)]
ARM: imx6: DHCOM i.MX6 PDK: defconfig: Enable MMC support of SPL

Signed-off-by: Claudius Heine <ch@denx.de>
4 years agoARM: imx6: DHCOM i.MX6 PDK: fix board_boot_modes emmc entry
Claudius Heine [Tue, 29 Oct 2019 12:17:55 +0000 (13:17 +0100)]
ARM: imx6: DHCOM i.MX6 PDK: fix board_boot_modes emmc entry

The board_boot_modes contained the wrong values for the emmc entry.

The eMMC here is connected over a 8-bit bus.

This change allows to use the 'bmode emmc' command to boot from emmc.

Signed-off-by: Claudius Heine <ch@denx.de>
4 years agowatchdog: imx: Use immediate reset bits for expire_now
Robert Hancock [Tue, 6 Aug 2019 17:05:30 +0000 (11:05 -0600)]
watchdog: imx: Use immediate reset bits for expire_now

The expire_now function was previously setting the watchdog timeout to
minimum and waiting for the watchdog to expire. However, this watchdog
also has bits to trigger immediate reset. Use those instead, like the
Linux imx2_wdt driver does.

Signed-off-by: Robert Hancock <hancock@sedsystems.ca>
4 years agowatchdog: imx: Add DT ext-reset handling
Robert Hancock [Tue, 6 Aug 2019 17:05:29 +0000 (11:05 -0600)]
watchdog: imx: Add DT ext-reset handling

The Linux imx2_wdt driver uses a fsl,ext-reset-output boolean in the
device tree to specify whether the board design should use the external
reset instead of the internal reset. Use this boolean to determine which
mode to use rather than using external reset unconditionally.

For the legacy non-DM mode, the external reset is always used in order
to maintain the previous behavior.

Signed-off-by: Robert Hancock <hancock@sedsystems.ca>
4 years agoARM: dts: imx6ull-colibri: pre-reloc for uart pinmux modes
Igor Opaniuk [Wed, 16 Oct 2019 10:39:36 +0000 (13:39 +0300)]
ARM: dts: imx6ull-colibri: pre-reloc for uart pinmux modes

Add u-boot,dm-pre-reloc properties for uart pinmux configuration
nodes, which enables UART as early as possible (before relocation).

Without this we miss almost the half of output (U-boot version,
CPU defails, Reset cause, DRAM details etc.).

Fixes: cd69e8ef9b ("colibri-imx6ull: migrate pinctrl and regulators to dtb/dm")
Reviewed-by: Oleksandr Suvorov <oleksandr.suvorov@toradex.com>
Reviewed-by: Fabio Estevam <festevam@gmail.com>
Signed-off-by: Igor Opaniuk <igor.opaniuk@toradex.com>
4 years agoARM: dts: imx6ull-colibri: change hierarchy of DTS files
Igor Opaniuk [Wed, 16 Oct 2019 10:39:35 +0000 (13:39 +0300)]
ARM: dts: imx6ull-colibri: change hierarchy of DTS files

Introduce imx6ull-colibri-u-boot.dtsi for u-boot specific properties to
keep original imx6ull-colibri.dts in sync with Linux.

Move all contents of imx6ull-colibri.dts to imx6ull-colibri.dtsi +
additionally fix checkpatch warnings.

Reviewed-by: Oleksandr Suvorov <oleksandr.suvorov@toradex.com>
Reviewed-by: Fabio Estevam <festevam@gmail.com>
Signed-off-by: Igor Opaniuk <igor.opaniuk@toradex.com>
4 years agoarm: mxs: Increase VDDD voltage to match specification
Marek Vasut [Tue, 15 Oct 2019 16:26:57 +0000 (18:26 +0200)]
arm: mxs: Increase VDDD voltage to match specification

According to IMX28CEC rev. 4, 10/2018, Table 15. Recommended Operating
Conditions, page 16, the VDDD should be set to 1.55V when the CPU is
operating at 454MHz. This is the case in U-Boot, hence increase the
VDDD voltage. This fixes instability when performing TFTP transfers.
Increase the brownout threshold to 1.4V. The documentation recommends
1.45V setting for the brownout, however, this triggers failure during
power block init, so keep the brownout slightly lower.

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Stefano Babic <sbabic@denx.de>
Reviewed-by: Fabio Estevam <festevam@gmail.com>
4 years agoARM: imx: Use IMX6_SRC_GPR10_BMODE instead of magic number
Claudius Heine [Tue, 29 Oct 2019 12:08:44 +0000 (13:08 +0100)]
ARM: imx: Use IMX6_SRC_GPR10_BMODE instead of magic number

Signed-off-by: Claudius Heine <ch@denx.de>
4 years agoARM: imx: Fix bmode detection from grp10
Claudius Heine [Tue, 29 Oct 2019 12:08:43 +0000 (13:08 +0100)]
ARM: imx: Fix bmode detection from grp10

imx6_is_bmode_from_gpr9 always returns false, because
IMX6_SRC_GPR10_BMODE is 1<<28 and gets casted to u8 on return.

This moves the function body into imx6_src_get_boot_mode, since that is the
only one using it and it is on the same abstraction level (accessing
registers directly).

Signed-off-by: Claudius Heine <ch@denx.de>
4 years agoarm: dts: Add devicetree support for iMXQXP AI_ML board
Manivannan Sadhasivam [Thu, 15 Aug 2019 08:27:24 +0000 (13:57 +0530)]
arm: dts: Add devicetree support for iMXQXP AI_ML board

Add devicetree support for iMXQXP AI_ML board from Einfochips.

Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
Reviewed-by: Lukasz Majewski <lukma@denx.de>
4 years agoi.MX6: nand: extend nandbcb command for imx6UL(L)
Parthiban Nallathambi [Fri, 18 Oct 2019 09:46:19 +0000 (11:46 +0200)]
i.MX6: nand: extend nandbcb command for imx6UL(L)

Firmware Configuration Block(FCB) for imx6ul(l) needs to be
BCH encoded.

Signed-off-by: Parthiban Nallathambi <pn@denx.de>
Acked-by: Shyam Saini <shyam.saini@amarulasolutions.com>
Acked-by: Peng Fan <peng.fan@nxp.com>
4 years agoimx: defconfig: Enable CONFIG_SPL_FORCE_MMC_BOOT on display5
Lukasz Majewski [Mon, 14 Oct 2019 15:43:34 +0000 (17:43 +0200)]
imx: defconfig: Enable CONFIG_SPL_FORCE_MMC_BOOT on display5

After the following commit:
commit 772b55723bcb ("imx: Introduce CONFIG_SPL_FORCE_MMC_BOOT to force MMC
boot on falcon mode")
it is possible to set the CONFIG_SPL_FORCE_MMC_BOOT flag, which allows
using MMC device as boot device regardless of the device used by Boot ROM
(FBL) as the first boot medium.

Display5 board needs this flag set to allow falcon boot from eMMC device.

Signed-off-by: Lukasz Majewski <lukma@denx.de>
4 years agomx6: clock: Introduce disable_ipu_clock()
Fabio Estevam [Fri, 12 Jul 2019 12:32:23 +0000 (09:32 -0300)]
mx6: clock: Introduce disable_ipu_clock()

Introduce disable_ipu_clock(). This is done in preparation for
configuring the NoC registers on i.MX6QP in SPL.

Afer the NoC registers are set the IPU clocks can be disabled.

Signed-off-by: Fabio Estevam <festevam@gmail.com>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
4 years agomx6: clock: Use setbits_le32()
Fabio Estevam [Fri, 12 Jul 2019 12:32:22 +0000 (09:32 -0300)]
mx6: clock: Use setbits_le32()

The code can be made simpler by using setbits_le32(), so switch
to it.

Signed-off-by: Fabio Estevam <festevam@gmail.com>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
4 years agoazure: Update the script to prepend PATH not override PATH
Tom Rini [Fri, 1 Nov 2019 17:59:14 +0000 (13:59 -0400)]
azure: Update the script to prepend PATH not override PATH

Similar to 90d3d78a1c68 ("gitlab-ci: Prepend to PATH rather than replace
it") we need to prepend the PATH with our additional binaries and not
replace the value fully as doing so breaks virtualenv.

Signed-off-by: Tom Rini <trini@konsulko.com>
4 years agoMerge tag 'efi-2020-01-rc2' of https://gitlab.denx.de/u-boot/custodians/u-boot-efi
Tom Rini [Fri, 1 Nov 2019 13:37:02 +0000 (09:37 -0400)]
Merge tag 'efi-2020-01-rc2' of https://gitlab.denx.de/u-boot/custodians/u-boot-efi

Pull request for UEFI sub-system for efi-2020-01-rc2

Provide a better user interface for setting UEFI variables.

Bug fixes:
- ext4 file system not discovered on UEFI block device
- 'make tests' build error on 32bit systems

4 years agoMerge tag 'video-for-2020.01-rc1' of https://gitlab.denx.de/u-boot/custodians/u-boot...
Tom Rini [Fri, 1 Nov 2019 13:35:37 +0000 (09:35 -0400)]
Merge tag 'video-for-2020.01-rc1' of https://gitlab.denx.de/u-boot/custodians/u-boot-video

 - fix splash build breakage with newer llvm-7

4 years agoMerge tag 'dm-pull-29oct19' of git://git.denx.de/u-boot-dm
Tom Rini [Fri, 1 Nov 2019 13:34:35 +0000 (09:34 -0400)]
Merge tag 'dm-pull-29oct19' of git://git.denx.de/u-boot-dm

- Fix for patman with email addresses containing commas
- Bootstage improvements for TPL, SPL
- Various sandbox and dm improvements and fixes

4 years agoMerge branch '2019-10-30-master-imports'
Tom Rini [Fri, 1 Nov 2019 13:23:21 +0000 (09:23 -0400)]
Merge branch '2019-10-30-master-imports'

- Migrate test.py to use python3 and current pytest.
- NVMe bugfixes
- Assorted other fixes
- Android AVB updates.

4 years agoazure: Update for python3 and current pytest
Tom Rini [Thu, 31 Oct 2019 14:45:03 +0000 (10:45 -0400)]
azure: Update for python3 and current pytest

Similar to the rework for GitLab-CI and Travis-CI, rework the Azure
Pipeline to use python3 and requirements.txt to install the necessary
modules.

Signed-off-by: Tom Rini <trini@konsulko.com>
4 years agocmd: avb: Support A/B slots
Sam Protsenko [Mon, 21 Oct 2019 10:55:16 +0000 (13:55 +0300)]
cmd: avb: Support A/B slots

Add optional parameter to 'avb verify' sub-command, so that user is able
to specify which slot to use, in case when user's partitions are
slotted. If that parameter is omitted, the behavior of 'avb verify' will
be the same as before, so user API is content.

Signed-off-by: Sam Protsenko <semen.protsenko@linaro.org>
Reviewed-by: Igor Opaniuk <igor.opaniuk@gmail.com>
Acked-by: Igor Opaniuk <igor.opaniuk@gmail.com>
4 years agocmd: avb: Fix requested partitions list
Sam Protsenko [Thu, 15 Aug 2019 17:49:47 +0000 (20:49 +0300)]
cmd: avb: Fix requested partitions list

The requested_partitions[] array should contain only boot partitions.
Usually it's only 'boot' partition, as can be seen in [1]. Also, seems
like the requested_partitions[] are only used when there is no 'vbmeta'
partition [2], which is not a regular use-case.

Make requested_partitions[] contain only 'boot' partition as it was
supposed to be, and also make that array to be a local in
do_avb_verify_part() function, as nobody else needs that.

[1] https://android.googlesource.com/platform/external/avb/+/5fbb42a189aa/test/avb_slot_verify_unittest.cc#108
[2] https://android.googlesource.com/platform/external/avb/+/5fbb42a189aa/libavb/avb_slot_verify.c#1461

Signed-off-by: Sam Protsenko <semen.protsenko@linaro.org>
Reviewed-by: Igor Opaniuk <igor.opaniuk@gmail.com>
4 years agolibavb: Fix build warnings after updating the lib
Sam Protsenko [Thu, 15 Aug 2019 20:04:03 +0000 (23:04 +0300)]
libavb: Fix build warnings after updating the lib

After updating libavb to most recent version from AOSP/master, two new
warnings appear:

Warning #1:

    lib/libavb/avb_cmdline.c: In function 'avb_append_options':
    lib/libavb/avb_cmdline.c:365:15: warning: 'dm_verity_mode' may be
                                     used uninitialized in this function
                                     [-Wmaybe-uninitialized]
         new_ret = avb_replace(
                   ^~~~~~~~~~~~
             slot_data->cmdline, "$(ANDROID_VERITY_MODE)", dm_verity_mode);
             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    lib/libavb/avb_cmdline.c:374:8: warning: 'verity_mode' may be used
                                    uninitialized in this function
                                    [-Wmaybe-uninitialized]
       if (!cmdline_append_option(
            ^~~~~~~~~~~~~~~~~~~~~~
               slot_data, "androidboot.veritymode", verity_mode)) {
               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Warning #2:

    lib/libavb/avb_slot_verify.c: In function 'avb_slot_verify':
    lib/libavb/avb_slot_verify.c:1349:23: warning: 'ret' may be used
                                          uninitialized in this function
                                          [-Wmaybe-uninitialized]
       AvbSlotVerifyResult ret;
                           ^~~

Fix those by providing default return values to affected functions.

Signed-off-by: Sam Protsenko <semen.protsenko@linaro.org>
4 years agolibavb: Update libavb to current AOSP master
Sam Protsenko [Thu, 15 Aug 2019 20:04:02 +0000 (23:04 +0300)]
libavb: Update libavb to current AOSP master

Update libavb to commit 5fbb42a189aa in AOSP/master, because new version
has support for super partition [1], which we need for implementing
Android dynamic partitions. All changes from previous patches for libavb
in U-Boot are accounted for in this commit:
  - commit ecc6f6bea6a2 ("libavb: Handle wrong hashtree_error_mode in
                          avb_append_options()")
  - commit 897a1d947e7e ("libavb: Update SPDX tag style")
  - commit d8f9d2af96b3 ("avb2.0: add Android Verified Boot 2.0 library")

Tested on X15:

    ## Android Verified Boot 2.0 version 1.1.0
    read_is_device_unlocked not supported yet
    read_rollback_index not supported yet
    read_is_device_unlocked not supported yet
    Verification passed successfully
    AVB verification OK.

Unit test passes:

    $ ./test/py/test.py --bd sandbox --build -k test_avb

      test/py/tests/test_android/test_avb.py ss..s.

[1] https://android.googlesource.com/platform/external/avb/+/49936b4c0109411fdd38bd4ba3a32a01c40439a9

Signed-off-by: Sam Protsenko <semen.protsenko@linaro.org>
Reviewed-by: Eugeniu Rosca <rosca.eugeniu@gmail.com>
Acked-by: Igor Opaniuk <igor.opaniuk@gmail.com>
4 years agomkimage: Set correct FDT type and ramdisk architecture in FIT auto mode
Michal Sojka [Fri, 13 Sep 2019 10:43:12 +0000 (12:43 +0200)]
mkimage: Set correct FDT type and ramdisk architecture in FIT auto mode

When running the following command

    mkimage -f auto -A arm -O linux -T kernel -C none -a 0x8000 -e 0x8000 \
            -d zImage -b zynq-microzed.dtb -i initramfs.cpio image.ub

the type of fdt subimage is the same as of the main kernel image and
the architecture of the initramfs image is not set. Such an image is
refused by U-Boot when booting. This commits sets the mentioned
attributes, allowing to use the "-f auto" mode in this case instead of
writing full .its file.

Following is the diff of mkimage output without and with this commit:

 FIT description: Kernel Image image with one or more FDT blobs
 Created:         Thu Sep 12 23:23:16 2019
  Image 0 (kernel-1)
   Description:
   Created:      Thu Sep 12 23:23:16 2019
   Type:         Kernel Image
   Compression:  uncompressed
   Data Size:    4192744 Bytes = 4094.48 KiB = 4.00 MiB
   Architecture: ARM
   OS:           Linux
   Load Address: 0x00008000
   Entry Point:  0x00008000
  Image 1 (fdt-1)
   Description:  zynq-microzed
   Created:      Thu Sep 12 23:23:16 2019
-  Type:         Kernel Image
+  Type:         Flat Device Tree
   Compression:  uncompressed
   Data Size:    9398 Bytes = 9.18 KiB = 0.01 MiB
   Architecture: ARM
-  OS:           Unknown OS
-  Load Address: unavailable
-  Entry Point:  unavailable
  Image 2 (ramdisk-1)
   Description:  unavailable
   Created:      Thu Sep 12 23:23:16 2019
   Type:         RAMDisk Image
   Compression:  Unknown Compression
   Data Size:    760672 Bytes = 742.84 KiB = 0.73 MiB
-  Architecture: Unknown Architecture
+  Architecture: ARM
   OS:           Linux
   Load Address: unavailable
   Entry Point:  unavailable
  Default Configuration: 'conf-1'
  Configuration 0 (conf-1)
   Description:  zynq-microzed
   Kernel:       kernel-1
   Init Ramdisk: ramdisk-1
   FDT:          fdt-1
   Loadables:    kernel-1

Signed-off-by: Michal Sojka <michal.sojka@cvut.cz>
4 years agodrivers: phy: Handle gracefully NULL pointers
Jean-Jacques Hiblot [Tue, 1 Oct 2019 12:03:26 +0000 (14:03 +0200)]
drivers: phy: Handle gracefully NULL pointers

For some controllers PHYs can be optional. Handling NULL pointers without
crashing nor failing, makes it easy to handle optional PHYs.

Signed-off-by: Jean-Jacques Hiblot <jjhiblot@ti.com>
4 years agolinux_compat: fix potential NULL pointer access
Marek Szyprowski [Wed, 2 Oct 2019 12:37:20 +0000 (14:37 +0200)]
linux_compat: fix potential NULL pointer access

malloc_cache_aligned() might return zero, so fix potential NULL pointer
access if __GFP_ZERO flag is set.

Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Reviewed-by: Ralph Siemsen <ralph.siemsen@linaro.org>
4 years agotiny-printf: Support vsnprintf()
Simon South [Wed, 2 Oct 2019 14:55:07 +0000 (10:55 -0400)]
tiny-printf: Support vsnprintf()

Add a simple implementation of this function, to allow logging to be
enabled in the SPL or TPL for systems that rely on the tiny printf()
implementation.

To keep the code size small,

- The function is built only when logging is enabled, as it
  (currently) is not needed otherwise; and
- Like the existing implementation of snprintf(), its buffer-size
  parameter is ignored.

Signed-off-by: Simon South <simon@simonsouth.net>
4 years agocommon: Kconfig: Fix typo in TPL_LOG_CONSOLE description
Simon South [Wed, 2 Oct 2019 14:55:06 +0000 (10:55 -0400)]
common: Kconfig: Fix typo in TPL_LOG_CONSOLE description

Signed-off-by: Simon South <simon@simonsouth.net>
4 years agolib: errno: avoid error format-overflow
Heinrich Schuchardt [Sun, 6 Oct 2019 11:58:57 +0000 (13:58 +0200)]
lib: errno: avoid error format-overflow

In cmd/regulator.c an error occurs with GCC 9.2.1 if CONFIG_ERRNO_STR is
not defined:

cmd/regulator.c: In function ‘failure’:
cmd/regulator.c:20:2: error: ‘%s’ directive argument is null
[-Werror=format-overflow=]
   20 |  printf("Error: %d (%s)\n", ret, errno_str(ret));
      |  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In function ‘constraint’,
    inlined from ‘constraint’ at cmd/regulator.c:111:12:
cmd/regulator.c:115:3: error: ‘%s’ directive argument is null
[-Werror=format-overflow=]
  115 |   printf(" %s (err: %d)\n", errno_str(val), val);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

errno_str() should return a valid string instead of NULL if
CONFIG_ERRNO_STR is not defined.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
4 years agolib: errno: sync error codes
Heinrich Schuchardt [Sun, 6 Oct 2019 11:22:21 +0000 (13:22 +0200)]
lib: errno: sync error codes

Macro ERRNO_MSG() ignores the error number but we should still use the same
constants as in include/linux/errno.h.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
4 years agodts: fix MULTI_DTB_FIT compression choice prompt
Baruch Siach [Mon, 7 Oct 2019 12:05:47 +0000 (15:05 +0300)]
dts: fix MULTI_DTB_FIT compression choice prompt

This choice is not about SPL for which we have a separate choice.

Fixes: 95f4bbd581 ("lib: fdt: Allow LZO and GZIP DT compression in U-Boot")
Cc: Marek Vasut <marek.vasut+renesas@gmail.com>
Signed-off-by: Baruch Siach <baruch@tkos.co.il>
4 years agoata: ahci allow 64-bit DMA for SATA
Roman Kapl [Mon, 14 Oct 2019 09:21:09 +0000 (11:21 +0200)]
ata: ahci allow 64-bit DMA for SATA

Allow 64-bit DMA on AHCI. If not supported by the host controller, at
least print a message and fail.

Signed-off-by: Roman Kapl <rka@sysgo.com>
4 years agodisk: part_dos: correctly detect DOS PBR
Heinrich Schuchardt [Tue, 15 Oct 2019 18:43:42 +0000 (20:43 +0200)]
disk: part_dos: correctly detect DOS PBR

The signature 0x55 0xAA in bytes 510 and 511 of the first sector can either
indicate a DOS partition table of the first sector of a FAT file system.

The current code tries to check if the partition table is valid by looking
at the boot indicator of the partition entries. But first of all it does
not count from 0 to 3 but only from 0 to 2. And second it misses to
increment the pointer for the partition entry.

If it is a FAT file system can be discovered by looking for the text 'FAT'
at offset 0x36 or 'FAT32' at offset 0x52. In a DOS PBR there are no
partition entries, so those bytes are undefined. Don't require the byte at
offset 0x1BE to differ from 0x00 and 0x80.

With the patch the logic is changed as follows:

If the partition table has either an invalid boot flag for any partition or
has no partition at all, check if the first sector is a DOS PBR by looking
at the FAT* signature.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
4 years agotest: provide test for errno_str()
Heinrich Schuchardt [Tue, 15 Oct 2019 19:46:04 +0000 (21:46 +0200)]
test: provide test for errno_str()

Provide a unit test for errno_str(). Test that known and unknown error
numbers are handled correctly.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Reviewed-by: Simon Glass <sjg@chromium.org>
4 years agolib: errno: check for unsupported error number
Heinrich Schuchardt [Tue, 15 Oct 2019 19:46:03 +0000 (21:46 +0200)]
lib: errno: check for unsupported error number

If errno_str() is called with an unsupported error number, do not return a
random pointer but a reasonable text.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Reviewed-by: Simon Glass <sjg@chromium.org>
4 years agolib: time: Add microsecond timer
Marek Vasut [Tue, 15 Oct 2019 20:43:41 +0000 (22:43 +0200)]
lib: time: Add microsecond timer

Add get_timer_us(), which is useful e.g. when we need higher
precision timestamps.

Signed-off-by: Marek Vasut <marek.vasut+renesas@gmail.com>
Cc: Tom Rini <trini@konsulko.com>
Cc: Simon Glass <sjg@chromium.org>
[trini: Fixup arch/arm/mach-bcm283x/include/mach/timer.h]
Signed-off-by: Tom Rini <trini@konsulko.com>
4 years agoNVMe: do PCI enumerate before nvme scan
Patrick Wildt [Thu, 3 Oct 2019 09:10:57 +0000 (11:10 +0200)]
NVMe: do PCI enumerate before nvme scan

Make sure that the PCI busses are enumerated before trying to
find a NVMe device.

Signed-off-by: Patrick Wildt <patrick@blueri.se>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
4 years agonvme: use page-aligned buffer for identify command
Patrick Wildt [Wed, 16 Oct 2019 06:42:04 +0000 (08:42 +0200)]
nvme: use page-aligned buffer for identify command

Change the stack-allocated buffer for the identification command
to explicitly allocate page-aligned buffers.  Even though the spec
seems to allow having admin queue commands on non page-aligned
buffers, it seems to not be possible on my i.MX8MQ board with a
a Silicon Power P34A80.  Since all of the NVMe drivers I have seen
always do admin commands on a page-aligned buffer, which does work
on my system, it makes sense for us to do that as well.

Signed-off-by: Patrick Wildt <patrick@blueri.se>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
4 years agonvme: flush dcache on both r/w, and the prp list
Patrick Wildt [Wed, 16 Oct 2019 21:22:50 +0000 (23:22 +0200)]
nvme: flush dcache on both r/w, and the prp list

It's possible that the data cache for the buffer still holds data
to be flushed to memory, since the buffer was probably used as stack
before.  Thus we need to make sure to flush it also on reads, since
it's possible that the cache is automatically flused to memory after
the NVMe DMA transfer happened, thus overwriting the NVMe transfer's
data.  Also add a missing dcache flush for the prp list.

Signed-off-by: Patrick Wildt <patrick@blueri.se>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
4 years agovirtio: pci: use correct type in virtio_pci_bind()
Heinrich Schuchardt [Wed, 16 Oct 2019 10:59:49 +0000 (12:59 +0200)]
virtio: pci: use correct type in virtio_pci_bind()

For printing as %u we should use an unsigned int.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
4 years agocheckpatch.pl: update from Linux kernel v5.4-rc3
Heinrich Schuchardt [Sat, 19 Oct 2019 07:06:38 +0000 (09:06 +0200)]
checkpatch.pl: update from Linux kernel v5.4-rc3

Update from upstream.

Just minor changes like checking that the author has also done a sign-off.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
4 years agosplash: fix build breakage with newer llvm-7
Anatolij Gustschin [Wed, 30 Oct 2019 14:04:10 +0000 (15:04 +0100)]
splash: fix build breakage with newer llvm-7

Some configurations (i.e. sandbox) result in unused
splash_display_banner() and we get build errors like:

  common/splash.c:148:20: error: unused function 'splash_display_banner' [-Werror,-Wunused-function]
  static inline void splash_display_banner(void) { }

Drop empty inline function and add guards around the call.

Fixes: d2a8271c8851 ("splash: fix splash banner output")
Signed-off-by: Anatolij Gustschin <agust@denx.de>
Reported-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
4 years agodts: Kconfig: Fix help for SPL_OF_CONTROL
Walter Lozano [Tue, 22 Oct 2019 14:50:19 +0000 (11:50 -0300)]
dts: Kconfig: Fix help for SPL_OF_CONTROL

As initially this feature was implemented as a negative CONFIG and
later it was redesigned to be positive the help text should be
updated to reflect this change.

This commit updates the help text to match the current implementation.

Signed-off-by: Walter Lozano <wlozano@collabora.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
4 years agoMakefile: Fix printing problem in size_check on overflow
Tom Rini [Wed, 23 Oct 2019 19:39:41 +0000 (15:39 -0400)]
Makefile: Fix printing problem in size_check on overflow

When we have an excess size growth, fix the "limit" printf call to pass
in just the limit variable rather than the string bytes to the format
character.

Signed-off-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Simon Goldschmidt <simon.k.r.goldschmidt@gmail.com>
4 years agogpio: da8xx_gpio: Fix the _gpio_direction_output function
Keerthy [Thu, 24 Oct 2019 08:22:28 +0000 (13:52 +0530)]
gpio: da8xx_gpio: Fix the _gpio_direction_output function

_gpio_direction_output function currently calls gpio_set_value
with the wrong gpio number. gpio_set_value in the uclass driver
expects a different gpio number and the _gpio_direction_output
is currently providing the number specific to the bank.

Hence fix it by calling the _gpio_set_value function instead.

Reported-by: Faiz Abbas <faiz_abbas@ti.com>
Fixes: 8e51c0f254 ("dm: gpio: Add DM compatibility to GPIO driver for Davinci")
Signed-off-by: Keerthy <j-keerthy@ti.com>
4 years agotest/py: Use raw strings more to avoid deprecation warnings
Tom Rini [Thu, 24 Oct 2019 15:59:28 +0000 (11:59 -0400)]
test/py: Use raw strings more to avoid deprecation warnings

We have two further uses of raw string usage in the test/py codebase
that are used under CI.  The first of which is under the bind test and
is a direct update.  The second of which is to strip VT100 codes from
the match buffer.  While switching this to a raw string is also a direct
update, the comment it notes that problems were encountered on Ubuntu
14.04 (and whatever Python 2 version that was) that required slight
tweaks to the regex.  Replace that now that we're saying Python 3.5 is
the minimum.

Reviewed-by: Simon Glass <sjg@chromium.org>
Tested-by: Stephen Warren <swarren@nvidia.com>
Tested-by: Simon Glass <sjg@chromium.org> [on sandbox]
Signed-off-by: Tom Rini <trini@konsulko.com>
4 years agogitlab/travis: Rework how and when we use virtualenv in order to use python3
Tom Rini [Thu, 24 Oct 2019 15:59:27 +0000 (11:59 -0400)]
gitlab/travis: Rework how and when we use virtualenv in order to use python3

As things stand today, we have tools that CI requires where "python"
must be "python2".  We need to use a virtualenv and pip in order to
ensure that our pytest tests can be run.  Rework things slightly so
that:
- On Travis-CI, we install python-pyelftools for the platforms that
  require pyelftools to be installed.
- On GitLab-CI, we move to a newer base image that includes python3-pip
  and continue to use a virtualenv per job that needs it, for the
  correct set of packages.

Reviewed-by: Simon Glass <sjg@chromium.org>
Tested-by: Stephen Warren <swarren@nvidia.com>
Tested-by: Simon Glass <sjg@chromium.org> [on sandbox]
Signed-off-by: Tom Rini <trini@konsulko.com>
4 years agotest/py: Update docs, add requirements.txt for pip
Tom Rini [Thu, 24 Oct 2019 15:59:26 +0000 (11:59 -0400)]
test/py: Update docs, add requirements.txt for pip

To be more closely aligned with Python community best practices, we need
to better document our usage of pip and make use of a requirements.txt
file that shows the versions of the tools that we are using.  This will
aide in ensuring reproducibility of our tests as well.

Reviewed-by: Simon Glass <sjg@chromium.org>
Tested-by: Stephen Warren <swarren@nvidia.com>
Tested-by: Simon Glass <sjg@chromium.org> [on sandbox]
Signed-off-by: Tom Rini <trini@konsulko.com>
4 years agotest/py: Rework test.py to be a different kind of wrapper
Tom Rini [Thu, 24 Oct 2019 15:59:25 +0000 (11:59 -0400)]
test/py: Rework test.py to be a different kind of wrapper

Now that we have moved to being based on pytest for python3 we need to
make our test.py wrapper more robust in terms of only calling python3
rather than possibly finding and using python2.  To do this, change from
execvp()'ing pytest to invoking the package itself via python.  In the
event that pytest is unavailable we still get a user-friendly error:

pkg_resources.DistributionNotFound: The 'pytest' distribution was not found and is required by the application

Reviewed-by: Simon Glass <sjg@chromium.org>
Tested-by: Stephen Warren <swarren@nvidia.com>
Tested-by: Simon Glass <sjg@chromium.org> [on sandbox]
Signed-off-by: Tom Rini <trini@konsulko.com>
4 years agotest/py: Update test_fs to decode check_output calls
Tom Rini [Thu, 24 Oct 2019 15:59:24 +0000 (11:59 -0400)]
test/py: Update test_fs to decode check_output calls

The check_output function from the subprocess Python module by default
returns data as encoded bytes and leaves decoding to the application.
Given our uses of the call, it makes the most sense to immediately
decode the results.

Reviewed-by: Simon Glass <sjg@chromium.org>
Tested-by: Stephen Warren <swarren@nvidia.com>
Tested-by: Simon Glass <sjg@chromium.org> [on sandbox]
Signed-off-by: Tom Rini <trini@konsulko.com>
4 years agotest/py: test_efi_selftest.py: Updates for python 3 support
Tom Rini [Thu, 24 Oct 2019 15:59:23 +0000 (11:59 -0400)]
test/py: test_efi_selftest.py: Updates for python 3 support

- In python 3 you must use raw strings for regex as other forms are
  deprecated and would require further changes to the pattern here.
  In one case this lets us have a simpler match pattern.
- As strings are now Unicode our complex tests (Euro symbol,
  SHIFT+ALT+FN 5) we need to declare that as a bytes string and then
  decode it for use.

Cc: Heinrich Schuchardt <xypron.glpk@gmx.de>
Reviewed-by: Simon Glass <sjg@chromium.org>
Tested-by: Stephen Warren <swarren@nvidia.com>
Tested-by: Simon Glass <sjg@chromium.org> [on sandbox]
Signed-off-by: Tom Rini <trini@konsulko.com>
4 years agotest/py: test_ut.py: Ensure we use bytes
Tom Rini [Thu, 24 Oct 2019 15:59:22 +0000 (11:59 -0400)]
test/py: test_ut.py: Ensure we use bytes

In the case of some unit tests we are working with providing a fake
flash device that we have written some text strings in to.  In this case
we want to tell Python to encode things to bytes for us.

Reviewed-by: Stephen Warren <swarren@nvidia.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Tested-by: Stephen Warren <swarren@nvidia.com>
Tested-by: Simon Glass <sjg@chromium.org> [on sandbox]
Signed-off-by: Tom Rini <trini@konsulko.com>
4 years agotest/py: Manual python3 fixes
Tom Rini [Thu, 24 Oct 2019 15:59:21 +0000 (11:59 -0400)]
test/py: Manual python3 fixes

- Modern pytest is more visible in telling us about parameters that we
  had not described, so describe a few more.
- ConfigParser.readfp(...) is now configparser.read_file(...)
- As part of the "strings vs bytes" conversions in Python 3, we use the
  default encoding/decoding of utf-8 but in some places tell Python to
  replace problematic conversions rather than throw a fatal error.
- Fix a typo noticed while doing the above ("tot he" -> "to the").
- As suggested by Stephen, re-alphabetize the import list
- Per Heinrich, replace how we write contents in test_fit.py

Reviewed-by: Simon Glass <sjg@chromium.org>
Tested-by: Stephen Warren <swarren@nvidia.com>
Tested-by: Simon Glass <sjg@chromium.org> [on sandbox]
Signed-off-by: Tom Rini <trini@konsulko.com>
4 years agotest/py: Automated conversion to Python 3
Tom Rini [Thu, 24 Oct 2019 15:59:20 +0000 (11:59 -0400)]
test/py: Automated conversion to Python 3

Use the 2to3 tool to perform numerous automatic conversions from Python
2 syntax to Python 3.  Also fix whitespace problems that Python 3
catches that Python 2 did not.

Reviewed-by: Stephen Warren <swarren@nvidia.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Tested-by: Stephen Warren <swarren@nvidia.com>
Tested-by: Simon Glass <sjg@chromium.org> [on sandbox]
Signed-off-by: Tom Rini <trini@konsulko.com>
4 years agotest/py: Fix pytest4 deprecation warnings
Marek Vasut [Thu, 24 Oct 2019 15:59:19 +0000 (11:59 -0400)]
test/py: Fix pytest4 deprecation warnings

Fix the following spit from pytest:

u-boot/test/py/conftest.py:438: RemovedInPytest4Warning: MarkInfo objects are deprecated as they contain merged marks which are hard to deal with correctly.
  Please use node.get_closest_marker(name) or node.iter_markers(name).
  Docs: https://docs.pytest.org/en/latest/mark.html#updating-code
    for board in mark.args:

In both cases, the later suggestion is applicable.

Reviewed-by: Stephen Warren <swarren@nvidia.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Marek Vasut <marek.vasut+renesas@gmail.com>
Cc: Igor Opaniuk <igor.opaniuk@gmail.com>
[trini: Update for current file with a few more cases, un-pin pytest in CI]
Tested-by: Simon Glass <sjg@chromium.org> [on sandbox]
Tested-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Tom Rini <trini@konsulko.com>
4 years agotest/py: Split mark to multiple lines
Tom Rini [Thu, 24 Oct 2019 15:59:18 +0000 (11:59 -0400)]
test/py: Split mark to multiple lines

We inconsistently note multiple dependencies today in our tests,
sometimes with a single line that declares multiple and sometimes
multiple single lines.  Current pytest seems to fail on the single line
format so change to multiple declarations.

Reviewed-by: Stephen Warren <swarren@nvidia.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Tested-by: Stephen Warren <swarren@nvidia.com>
Tested-by: Simon Glass <sjg@chromium.org> [on sandbox]
Signed-off-by: Tom Rini <trini@konsulko.com>
4 years agogitlab-ci: Prepend to PATH rather than replace it
Tom Rini [Thu, 24 Oct 2019 15:59:17 +0000 (11:59 -0400)]
gitlab-ci: Prepend to PATH rather than replace it

Currently we set the entire PATH rather than prepend the new paths that
we need to have searched.  This however breaks parts of the "virtualenv"
that was have set up and need to use as that also will be modifying
PATH.  To fix this, prepend our new locations instead.

Reviewed-by: Stephen Warren <swarren@nvidia.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Tested-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Tom Rini <trini@konsulko.com>
4 years agogitlab-ci: Fix indentation in some stanzas
Tom Rini [Thu, 24 Oct 2019 15:59:16 +0000 (11:59 -0400)]
gitlab-ci: Fix indentation in some stanzas

In a number of our stanzas we had multi-line commands that were one
space short of alignment, correct this.

Reviewed-by: Stephen Warren <swarren@nvidia.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Tested-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Tom Rini <trini@konsulko.com>
4 years agoMerge tag 'u-boot-clk-23Oct2019' of https://gitlab.denx.de/u-boot/custodians/u-boot-clk
Tom Rini [Wed, 30 Oct 2019 17:13:46 +0000 (13:13 -0400)]
Merge tag 'u-boot-clk-23Oct2019' of https://gitlab.denx.de/u-boot/custodians/u-boot-clk

- Add I2C clocks for i.MX6Q CCF driver
- Fix check in clk_set_default_parents()
- Managed API to get clock from device tree
- Fixes for core clock code (including sandbox regression tests)

4 years agoPrepare v2020.01-rc1 v2020.01-rc1
Tom Rini [Wed, 30 Oct 2019 17:01:05 +0000 (13:01 -0400)]
Prepare v2020.01-rc1

Signed-off-by: Tom Rini <trini@konsulko.com>
4 years agoefi_loader: correct includes in efi_variable.c
Heinrich Schuchardt [Sat, 26 Oct 2019 21:53:48 +0000 (23:53 +0200)]
efi_loader: correct includes in efi_variable.c

'make tests' on an 32bit ARM system leads to

In file included from ../lib/efi_loader/efi_variable.c:9:
../include/malloc.h:364:7: error: conflicting types for ‘memset’
 void* memset(void*, int, size_t);
       ^~~~~~
In file included from ../include/compiler.h:126,
                 from ../include/env.h:12,
                 from ../lib/efi_loader/efi_variable.c:8:
../include/linux/string.h:103:15:
note: previous declaration of ‘memset’ was here
 extern void * memset(void *,int,__kernel_size_t);
               ^~~~~~
In file included from ../lib/efi_loader/efi_variable.c:9:
../include/malloc.h:365:7: error: conflicting types for ‘memcpy’
 void* memcpy(void*, const void*, size_t);
       ^~~~~~
In file included from ../include/compiler.h:126,
                 from ../include/env.h:12,
                 from ../lib/efi_loader/efi_variable.c:8:
../include/linux/string.h:106:15:
note: previous declaration of ‘memcpy’ was here
 extern void * memcpy(void *,const void *,__kernel_size_t);
               ^~~~~~

Use common.h as first include as recommended by the U-Boot coding style
guide.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
4 years agocmd: env: extend "env [set|print] -e" to manage UEFI variables
AKASHI Takahiro [Thu, 24 Oct 2019 06:17:13 +0000 (15:17 +0900)]
cmd: env: extend "env [set|print] -e" to manage UEFI variables

With this patch, when setting UEFI variable with "env set -e" command,
we will be able to
- specify vendor guid with "-guid guid",
- specify variable attributes,  BOOTSERVICE_ACCESS, RUNTIME_ACCESS,
  respectively with "-bs" and "-rt",
- append a value instead of overwriting with "-a",
- use memory as variable's value instead of explicit values given
  at the command line with "-i address,size"

If guid is not explicitly given, default value will be used.

Meanwhile, "env print -e," will be modified so that it will NOT dump
a variable's value if '-n' is specified.

Signed-off-by: AKASHI Takahiro <takahiro.akashi@linaro.org>
Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
4 years agoblk: set log2blksz in blk_create_device()
Heinrich Schuchardt [Fri, 25 Oct 2019 10:15:31 +0000 (12:15 +0200)]
blk: set log2blksz in blk_create_device()

The ext4 file system requires log2blksz to be set. So when setting the
block size on the block descriptor we should fill this field too.

This fixes a problem with EFI block devices providing ext4 partitions, cf.
https://lists.denx.de/pipermail/u-boot/2019-October/387702.html.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Reviewed-by: Simon Glass <sjg@chromium.org>
4 years agoMerge tag 'mmc-10-29-2019' of https://gitlab.denx.de/u-boot/custodians/u-boot-mmc
Tom Rini [Wed, 30 Oct 2019 13:06:33 +0000 (09:06 -0400)]
Merge tag 'mmc-10-29-2019' of https://gitlab.denx.de/u-boot/custodians/u-boot-mmc

- fsl_esdhc driver cleanup
- spl_mmc bug fix to avoid access wrong emmc partition

4 years agoMerge branch '2019-10-28-azure-ci-support'
Tom Rini [Wed, 30 Oct 2019 13:05:13 +0000 (09:05 -0400)]
Merge branch '2019-10-28-azure-ci-support'

- Clean up Travis-CI slightly and then add support for Microsoft Azure
  pipelines, all from Bin Meng.