]> git.dujemihanovic.xyz Git - u-boot.git/log
u-boot.git
4 years agodm: core: Read parent ofdata before children
Simon Glass [Sun, 5 Apr 2020 21:38:19 +0000 (15:38 -0600)]
dm: core: Read parent ofdata before children

At present a device can read its ofdata before its parent has done the
same. This can cause problems in the case where the parent has a 'ranges'
property, thus affecting the operation of dev_read_addr(), for example.

We already probe parent devices before children so it does not seem to be
a large step to do the same with ofdata.

Make the change and update the documentation in this area.

Signed-off-by: Simon Glass <sjg@chromium.org>
Tested-by: Ley Foon Tan <ley.foon.tan@intel.com>
4 years agotest: fdtdec: test fdtdec_set_carveout()
Laurentiu Tudor [Fri, 3 Apr 2020 10:43:04 +0000 (13:43 +0300)]
test: fdtdec: test fdtdec_set_carveout()

Add a new test for fdtdec_set_carveout().

Signed-off-by: Laurentiu Tudor <laurentiu.tudor@nxp.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Drop blank line at EFO:
Signed-off-by: Simon Glass <sjg@chromium.org>
4 years agofdtdec: support multiple phandles in memory carveout
Laurentiu Tudor [Fri, 3 Apr 2020 10:43:03 +0000 (13:43 +0300)]
fdtdec: support multiple phandles in memory carveout

fdtdec_set_carveout() is limited to only one phandle. Fix this
limitation by adding support for multiple phandles.

Signed-off-by: Laurentiu Tudor <laurentiu.tudor@nxp.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
4 years agodm: core: remove the duplicated function dm_ofnode_pre_reloc
Patrick Delaunay [Fri, 3 Apr 2020 09:39:18 +0000 (11:39 +0200)]
dm: core: remove the duplicated function dm_ofnode_pre_reloc

The content dm_ofnode_pre_reloc() is identical with ofnode_pre_reloc()
defined in drivers/core/ofnode.c and used only three times:
- drivers/core/lists.c:lists_bind_fdt()
- drivers/clk/at91/pmc.c::at91_clk_sub_device_bind
- drivers/clk/altera/clk-arria10.c::socfpga_a10_clk_bind

So this function dm_ofnode_pre_reloc can be removed and replaced
by these function calls by ofnode_pre_reloc().

Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com>
Acked-by: Simon Glass <sjg@chromium.org>
4 years agodm: core: refactor functions reading an u32 from dt
Dario Binacchi [Sun, 29 Mar 2020 16:04:42 +0000 (18:04 +0200)]
dm: core: refactor functions reading an u32 from dt

Now reading a 32 bit value from a device-tree property can be expressed
as reading the first element of an array with a single value.

Signed-off-by: Dario Binacchi <dariobin@libero.it>
Reviewed-by: Simon Glass <sjg@chromium.org>
4 years agodm: core: support reading a single indexed u32 value
Dario Binacchi [Sun, 29 Mar 2020 16:04:41 +0000 (18:04 +0200)]
dm: core: support reading a single indexed u32 value

The patch adds helper functions to allow reading a single indexed u32
value from a device-tree property containing multiple u32 values, that
is an array of integers.

Signed-off-by: Dario Binacchi <dariobin@libero.it>
Reviewed-by: Simon Glass <sjg@chromium.org>
4 years agodm: test: add test case for dev_read_u64 function
Dario Binacchi [Sun, 29 Mar 2020 16:04:40 +0000 (18:04 +0200)]
dm: test: add test case for dev_read_u64 function

Add test case to cover dev_read_u64 and dev_read_u64_default functions.

Signed-off-by: Dario Binacchi <dariobin@libero.it>
Reviewed-by: Simon Glass <sjg@chromium.org>
4 years agodm: core: Add a way to skip powering down power domains
Simon Glass [Sat, 28 Mar 2020 20:03:48 +0000 (14:03 -0600)]
dm: core: Add a way to skip powering down power domains

When removing a device the power domains it uses are generally powered
off. But when we are trying to unbind all devices (e.g. for running tests)
we don't want to probe a device in the 'remove' path.

Add a new flag to skip this power-down step.

Signed-off-by: Simon Glass <sjg@chromium.org>
4 years agodm: core: Add logging on unbind failure
Simon Glass [Sat, 28 Mar 2020 20:03:47 +0000 (14:03 -0600)]
dm: core: Add logging on unbind failure

This failure path is tricky to debug since it continues after failure and
there are a lot of error paths. Add logging to help.

Signed-off-by: Simon Glass <sjg@chromium.org>
4 years agofdt: Fix 'system' command
Tom Warren [Thu, 26 Mar 2020 22:20:44 +0000 (15:20 -0700)]
fdt: Fix 'system' command

'fdt systemsetup' wasn't working, due to the fact that the 'set' command
was being parsed in do_fdt() by only testing for the leading 's' instead
of "se", which kept the "sys" test further down from executing. Changed
to test for "se" instead, now 'fdt systemsetup' works (to test the
ft_system_setup proc w/o having to boot a kernel).

Signed-off-by: Tom Warren <twarren@nvidia.com>
4 years agosandbox: enable CMD_BOOTEFI_HELLO and CMD_EFIDEBUG
Heinrich Schuchardt [Sat, 14 Mar 2020 11:27:02 +0000 (12:27 +0100)]
sandbox: enable CMD_BOOTEFI_HELLO and CMD_EFIDEBUG

'bootefi hello' is used in one of the Python tests.

efidebug can be used to verify the correct initialization of the UEFI
sub-system.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Reviewed-by: Simon Glass <sjg@chromum.org>
4 years agosandbox: implement ft_board_setup()
Heinrich Schuchardt [Sat, 14 Mar 2020 11:13:40 +0000 (12:13 +0100)]
sandbox: implement ft_board_setup()

Currently we are not able to test reservations created by ft_board_setup().

Implement ft_board_setup() to create an arbitrary reservation and enable
OF_BOARD_SETUP.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Reviewed-by: Simon Glass <sjg@chromum.org>
4 years agosandbox: add reserved-memory node in device tree
Heinrich Schuchardt [Sat, 14 Mar 2020 11:13:39 +0000 (12:13 +0100)]
sandbox: add reserved-memory node in device tree

For testing the handling of memory reservations create a reserved-memory
node in sandbox.dts and sandbox64.dts.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Reviewed-by: Simon Glass <sjg@chromum.org>
4 years agopatman: Apply the cc limit to the cover letter also
Simon Glass [Fri, 28 Feb 2020 01:49:23 +0000 (18:49 -0700)]
patman: Apply the cc limit to the cover letter also

Quite often on a series that has clean-up patches, the individual patches
may fit within the cc limit but the cover letter does not. Apply the same
limit to the cover letter.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Chris Packham <judge.packham@gmail.com>
4 years agodoc: driver-model: there is no UCLASS_ETHERNET
Heinrich Schuchardt [Wed, 26 Feb 2020 19:18:54 +0000 (20:18 +0100)]
doc: driver-model: there is no UCLASS_ETHERNET

%s/UCLASS_ETHERNET/UCLASS_ETH/g

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Reviewed-by: Simon Glass <sjg@chromium.org>
4 years agoconfigs: sandbox: enable LOG_SYSLOG
Heinrich Schuchardt [Wed, 26 Feb 2020 20:48:20 +0000 (21:48 +0100)]
configs: sandbox: enable LOG_SYSLOG

For testing purposes enable the syslog logging driver.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Reviewed-by: Simon Glass <sjg@chromium.org>
4 years agotest: log: test syslog logging driver
Heinrich Schuchardt [Wed, 26 Feb 2020 20:48:19 +0000 (21:48 +0100)]
test: log: test syslog logging driver

Provide unit tests for the syslog logging driver.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Reviewed-by: Simon Glass <sjg@chromium.org>
4 years agotest: log functions with CONFIG_LOG=n
Heinrich Schuchardt [Wed, 26 Feb 2020 20:48:18 +0000 (21:48 +0100)]
test: log functions with CONFIG_LOG=n

If CONFIG_LOG=n, we still expect output for log_err(), log_warning(),
log_notice(), log_info() and in case of DEBUG=1 also for log_debug().

Provide unit tests verifying this.

The tests depend on:

CONFIG_CONSOLE_RECORD=y
CONFIG_LOG=n
CONFIG_UT_LOG=y

It may be necessary to increase the value of CONFIG_SYS_MALLOC_F_LEN to
accommodate CONFIG_CONSOLE_RECORD=y.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Reviewed-by: Simon Glass <sjg@chromium.org>
4 years agolog: output for CONFIG_LOG=n
Heinrich Schuchardt [Wed, 26 Feb 2020 20:48:17 +0000 (21:48 +0100)]
log: output for CONFIG_LOG=n

If CONFIG_LOG=n, we should still output errors, warnings, notices, infos,
and for DEBUG=1 also debug messages.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Reviewed-by: Simon Glass <sjg@chromium.org>
4 years agolog: syslog driver
Heinrich Schuchardt [Wed, 26 Feb 2020 20:48:16 +0000 (21:48 +0100)]
log: syslog driver

Provide a log driver that broadcasts RFC 3164 messages to syslog servers.
rsyslog is one implementation of such a server.

The messages are sent to the local broadcast address 255.255.255.255 on
port 514.

The environment variable log_hostname can be used to provide the HOSTNAME
field for the messages. The optional TIMESTAMP field of RFC 3164 is not
provided.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Reviewed-by: Simon Glass <sjg@chromium.org>
4 years agolog: correct CONFIG_LOG_TEST prerequisites
Heinrich Schuchardt [Wed, 26 Feb 2020 20:48:15 +0000 (21:48 +0100)]
log: correct CONFIG_LOG_TEST prerequisites

An error

undefined reference to `do_log_test'

occurs for CONFIG_CMD_LOG=y, CONFIG_LOG_TEST=y, CONGIG_UNIT_TEST=n

Make CONFIG_UNIT_TEST a prerequisite.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Reviewed-by: Simon Glass <sjg@chromium.org>
4 years agodm: core: Move "/chosen" and "/firmware" node scan
Patrick Delaunay [Tue, 18 Feb 2020 14:43:46 +0000 (15:43 +0100)]
dm: core: Move "/chosen" and "/firmware" node scan

Use the new function dm_scan_fdt_ofnode_path() to scan all the nodes
which aren't devices themselves but may contain some:
- "/chosen"
- "/clocks"
- "/firmware"

The patch removes the strcmp call in recursive function dm_scan_fdt_live()
and also corrects a conflict with the 2 applied patches in
the commit 1712ca21924b ("dm: core: Scan /firmware node by default")
and in the commit 747558d01457 ("dm: fdt: scan for devices under
/firmware too"): the subnodes of "/firmware" (optee for example)
are bound 2 times.

For example the dm tree command result on STM32MP1 is:

STM32MP> dm tree
 Class     Index  Probed  Driver                Name
 -----------------------------------------------------------
 root          0  [ + ]   root_driver           root_driver
 firmware      0  [   ]   psci                  |-- psci
 sysreset      0  [   ]   psci-sysreset         |   `-- psci-sysreset
 simple_bus    0  [ + ]   generic_simple_bus    |-- soc
...
 tee           0  [ + ]   optee                 |-- optee
...
 tee           1  [   ]   optee                 `-- optee

Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com>
Tested-by: Michal Simek <michal.simek@xilinx.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
4 years agodm: core: remove redundant assignment
Heinrich Schuchardt [Sat, 15 Feb 2020 20:46:04 +0000 (21:46 +0100)]
dm: core: remove redundant assignment

Variable count is initialized at the start of every round of the while
loop and it is not used after the while loop. So there is no need to
initialize it beforehand.

Identified by cppcheck.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Reviewed-by: Simon Glass <sjg@chromium.org>
4 years agodm: core: remove redundant if statement
Heinrich Schuchardt [Sat, 15 Feb 2020 20:38:48 +0000 (21:38 +0100)]
dm: core: remove redundant if statement

The value of parent is not changed in the first if statement. So we can
merge the two if statements depending on parent.

Indicated by cppcheck.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Reviewed-by: Simon Glass <sjg@chromium.org>
4 years agosandbox: also restore terminal settings when killed by SIGINT
Rasmus Villemoes [Fri, 14 Feb 2020 10:58:37 +0000 (10:58 +0000)]
sandbox: also restore terminal settings when killed by SIGINT

Hitting Ctrl-C is a documented way to exit the sandbox, but it is not
actually equivalent to the reset command. The latter, since it follows
normal process exit, takes care to reset terminal settings and
restoring the O_NONBLOCK behaviour of stdin (and, in a terminal, that
is usually the same file description as stdout and stderr, i.e. some
/dev/pts/NN).

Failure to restore (remove) O_NONBLOCK from stdout/stderr can cause
very surprising and hard to debug problems back in the terminal. For
example, I had "make -j8" consistently failing without much
information about just exactly what went wrong, but sometimes I did
get a "echo: write error". I was at first afraid my disk was getting
bad, but then a simple "dmesg" _also_ failed with write error - so it
was writing to the terminal that was buggered. And both "make -j8" and
dmesg in another terminal window worked just fine.

So install a SIGINT handler so that if the chosen terminal
mode (cooked or raw-with-sigs) means Ctrl-C sends a SIGINT, we will
still call os_fd_restore(), then reraise the signal and die as usual
from SIGINT.

Before:

$ grep flags /proc/$$/fdinfo/1
flags:  0102002
$ ./u-boot
# hit Ctrl-C
$ grep flags /proc/$$/fdinfo/1
flags:  0106002

After:

$ grep flags /proc/$$/fdinfo/1
flags:  0102002
$ ./u-boot
# hit Ctrl-C
$ grep flags /proc/$$/fdinfo/1
flags:  0102002

Signed-off-by: Rasmus Villemoes <rasmus.villemoes@prevas.dk>
Reviewed-by: Simon Glass <sjg@chromium.org>
4 years agosandbox: Update PCI nodes in dts files
Tom Rini [Tue, 11 Feb 2020 17:41:23 +0000 (12:41 -0500)]
sandbox: Update PCI nodes in dts files

The way the PCI nodes are written today causes a number of warnings if
we stop disabling some of the warnings we pass to DTC.  As these
warnings aren't disabled in current Linux Kernel builds, we should aim
to not disable them here either, so rewrite these slightly.  Update the
driver model doc as well.

Cc: Simon Glass <sjg@chromium.org>
Signed-off-by: Tom Rini <trini@konsulko.com>
4 years agosandbox: p2sb: Silence compiler warning
Simon Glass [Sat, 8 Feb 2020 14:53:10 +0000 (07:53 -0700)]
sandbox: p2sb: Silence compiler warning

Some compilers produce a warning about 'child' being used before init.
Silence this by setting to NULL at the start.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
4 years agoserial: Set baudrate on boot
Sean Anderson [Sun, 2 Feb 2020 18:15:17 +0000 (13:15 -0500)]
serial: Set baudrate on boot

Currently, the baud rate is never set on boot. This works ok when a previous
bootloader has configured the baudrate properly, or when the baudrate is set to
a reasonable default in the serial driver's probe(). However, when this is not
the case, we could be using a different baud rate than what was configured.

Signed-off-by: Sean Anderson <seanga2@gmail.com>
4 years agoMerge tag 'u-boot-stm32-20200415' of https://gitlab.denx.de/u-boot/custodians/u-boot-stm
Tom Rini [Wed, 15 Apr 2020 16:10:51 +0000 (12:10 -0400)]
Merge tag 'u-boot-stm32-20200415' of https://gitlab.denx.de/u-boot/custodians/u-boot-stm

- Replace STM32MP1_TRUSTED by TFABOOT flag
- Enable bootd, iminfo, imxtract on ST defconfig
- Rename LEDs to match silkscreen on AV96
- Add KS8851-16MLL ethernet on FMC2
- Define FMC2 base address
- net: dwc_eth_qos: implement reset-gpios for stm32
- net: dwc_eth_qos: implement phy reg and max-speed for stm32

4 years agoMerge branch 'master' of git://git.denx.de/u-boot-marvell
Tom Rini [Wed, 15 Apr 2020 12:30:16 +0000 (08:30 -0400)]
Merge branch 'master' of git://git.denx.de/u-boot-marvell

- Common: honour hw_margin_ms property (Rasmus)
- sp805_wdt: get platform clock from dt (Rayagonda)

4 years agoboard: stm32mp1: correct CONFIG_IS_ENABLED usage for LED
Patrick Delaunay [Fri, 10 Apr 2020 17:14:01 +0000 (19:14 +0200)]
board: stm32mp1: correct CONFIG_IS_ENABLED usage for LED

Use the correct macro to test presence CONFIG_LED:
replace CONFIG_IS_ENABLED(CONFIG_LED) by CONFIG_IS_ENABLED(LED)

Issue see during review unrelated patch
"board: stm32mp1: update management of boot-led"
http://patchwork.ozlabs.org/patch/1264823/

Cc: Marek Vasut <marex@denx.de>
Cc: Patrice Chotard <patrice.chotard@st.com>
Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com>
Reviewed-by: Marek Vasut <marex@denx.de>
Reviewed-by: Patrice Chotard <patrice.chotard@st.com>
4 years agoARM: stm32: Enable bootd, iminfo, imxtract on ST defconfig
Patrick Delaunay [Fri, 10 Apr 2020 16:13:19 +0000 (18:13 +0200)]
ARM: stm32: Enable bootd, iminfo, imxtract on ST defconfig

Enable these standard U-Boot commands for image manipulation and for
starting the default boot command using 'boot' command in U-Boot shell.

Cc: Marek Vasut <marex@denx.de>
Cc: Patrice Chotard <patrice.chotard@st.com>
Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com>
4 years agoARM: dts: stm32: Rename LEDs to match silkscreen on AV96
Marek Vasut [Mon, 6 Apr 2020 13:05:58 +0000 (15:05 +0200)]
ARM: dts: stm32: Rename LEDs to match silkscreen on AV96

The LED labels do not match the silkscreen on the board, fix it.

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
Cc: Patrick Delaunay <patrick.delaunay@st.com>
Cc: Patrice Chotard <patrice.chotard@st.com>
Cc: Tom Rini <trini@konsulko.com>
Reviewed-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
4 years agoconfigs: stm32mp1: replace STM32MP1_TRUSTED by TFABOOT
Patrick Delaunay [Wed, 1 Apr 2020 07:07:33 +0000 (09:07 +0200)]
configs: stm32mp1: replace STM32MP1_TRUSTED by TFABOOT

Activate ARCH_SUPPORT_TFABOOT and replace the arch stm32mp
specific config CONFIG_STM32MP1_TRUSTED by the generic CONFIG_TFABOOT
introduced by the commit 535d76a12150 ("armv8: layerscape: Add TFABOOT
support").
This config CONFIG_TFABOOT is activated for the trusted boot chain,
when U-Boot is loaded by TF-A.

Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com>
Reviewed-by: Patrice Chotard <patrice.chotard@st.com>
4 years agoARM: dts: stm32: Add KS8851-16MLL ethernet on FMC2
Marek Vasut [Sat, 28 Mar 2020 01:01:58 +0000 (02:01 +0100)]
ARM: dts: stm32: Add KS8851-16MLL ethernet on FMC2

Add DT entries, Kconfig entries and board-specific entries to configure
FMC2 bus and make KS8851-16MLL on that bus accessible to U-Boot.

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Patrick Delaunay <patrick.delaunay@st.com>
Cc: Patrice Chotard <patrice.chotard@st.com>
Reviewed-by: Patrice Chotard <patrice.chotard@st.com>
Reviewed-by: Patrick Delaunay <patrick.delaunay@st.com>
4 years agoARM: dts: stm32: Define FMC2 base address
Marek Vasut [Thu, 26 Mar 2020 15:57:26 +0000 (16:57 +0100)]
ARM: dts: stm32: Define FMC2 base address

Define FMC2 base address, for use in board files, until there is an
actual FMC2 bus driver.

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Patrick Delaunay <patrick.delaunay@st.com>
Cc: Patrice Chotard <patrice.chotard@st.com>
Reviewed-by: Patrice Chotard <patrice.chotard@st.com>
Reviewed-by: Patrick Delaunay <patrick.delaunay@st.com>
4 years agonet: dwc_eth_qos: implement phy reg and max-speed for stm32
Patrick Delaunay [Wed, 18 Mar 2020 09:50:16 +0000 (10:50 +0100)]
net: dwc_eth_qos: implement phy reg and max-speed for stm32

Add management of property "reg" to configure @ of phy and
also "max-speed" property to specify maximum speed in Mbit/s
supported by the device

Signed-off-by: Christophe Roullier <christophe.roullier@st.com>
Reviewed-by: Patrick DELAUNAY <patrick.delaunay@st.com>
Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com>
4 years agonet: dwc_eth_qos: implement reset-gpios for stm32
Christophe Roullier [Wed, 18 Mar 2020 09:50:15 +0000 (10:50 +0100)]
net: dwc_eth_qos: implement reset-gpios for stm32

Add management of property "reset-gpios" in the node identified by
"phy-handle" to configure any GPIO used to reset the PHY.

Signed-off-by: Christophe Roullier <christophe.roullier@st.com>
Reviewed-by: Patrice CHOTARD <patrice.chotard@st.com>
Reviewed-by: Patrick DELAUNAY <patrick.delaunay@st.com>
Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com>
4 years agowatchdog: sp805_wdt: get platform clock from dt file
Rayagonda Kokatanur [Mon, 6 Apr 2020 07:59:52 +0000 (13:29 +0530)]
watchdog: sp805_wdt: get platform clock from dt file

Get the watchdog platform clock from the DTS file
using clk subsystem and use the same for calculating
ticks in msec.

Signed-off-by: Rayagonda Kokatanur <rayagonda.kokatanur@broadcom.com>
Signed-off-by: Bharat Kumar Reddy Gooty <bharat.gooty@broadcom.com>
Reviewed-by: Stefan Roese <sr@denx.de>
4 years agowatchdog: honour hw_margin_ms DT property
Rasmus Villemoes [Fri, 13 Mar 2020 16:04:58 +0000 (17:04 +0100)]
watchdog: honour hw_margin_ms DT property

Some watchdog devices, e.g. external gpio-triggered ones, must be
reset more often than once per second, which means that the current
rate-limiting logic in watchdog_reset() fails to keep the board alive.

gpio-wdt.txt in the linux source tree defines a "hw_margin_ms"
property used to specifiy the maximum time allowed between resetting
the device. Allow any watchdog device to specify such a property, and
then use a reset period of one quarter of that. We keep the current
default of resetting once every 1000ms.

Signed-off-by: Rasmus Villemoes <rasmus.villemoes@prevas.dk>
Reviewed-by: Stefan Roese <sr@denx.de>
4 years agowatchdog: move initr_watchdog() to wdt-uclass.c
Rasmus Villemoes [Fri, 13 Mar 2020 16:04:57 +0000 (17:04 +0100)]
watchdog: move initr_watchdog() to wdt-uclass.c

This function is a bit large for an inline function, and for U-Boot
proper, it is called via a function pointer anyway (in board_r.c), so
cannot be inlined.

It will shortly set a global variable to be used by the
watchdog_reset() function in wdt-uclass.c, so this also allows making
that variable local to wdt-uclass.c.

The WATCHDOG_TIMEOUT_SECS define is not used elsewhere.

Signed-off-by: Rasmus Villemoes <rasmus.villemoes@prevas.dk>
Reviewed-by: Stefan Roese <sr@denx.de>
4 years agowatchdog: remove stale ifndef CONFIG_WATCHDOG_TIMEOUT_MSECS from wdt.h
Rasmus Villemoes [Fri, 13 Mar 2020 16:04:56 +0000 (17:04 +0100)]
watchdog: remove stale ifndef CONFIG_WATCHDOG_TIMEOUT_MSECS from wdt.h

Since WATCHDOG_TIMEOUT_MSECS was converted to Kconfig (commit
ca51ef7c0c), CONFIG_WATCHDOG_TIMEOUT_MSECS has been guaranteed to be
defined. So remove the dead fallback ifdeffery.

Signed-off-by: Rasmus Villemoes <rasmus.villemoes@prevas.dk>
Reviewed-by: Stefan Roese <sr@denx.de>
4 years agoMerge branch 'master' of git://git.denx.de/u-boot-marvell
Tom Rini [Tue, 14 Apr 2020 12:47:07 +0000 (08:47 -0400)]
Merge branch 'master' of git://git.denx.de/u-boot-marvell

- Misc enhancements to Clearfog, including board variant detection
  (Joel)
- Misc enhancements to Turris Mox, including generalization of the
  ARMADA37xx DDR size detection (Marek)

4 years agoarm: mvebu: turris_mox: fix PCIe ranges in device tree
Marek Behún [Wed, 8 Apr 2020 17:25:22 +0000 (19:25 +0200)]
arm: mvebu: turris_mox: fix PCIe ranges in device tree

Use the new a3700_fdt_fix_pcie_regions function in turris_mox.c so that
MOX boards with 4 GB RAM are fully supported.

Signed-off-by: Marek Behún <marek.behun@nic.cz>
Reviewed-by: Stefan Roese <sr@denx.de>
4 years agoarm64: mvebu: a37xx: add device-tree fixer for PCIe regions
Marek Behún [Wed, 8 Apr 2020 17:25:21 +0000 (19:25 +0200)]
arm64: mvebu: a37xx: add device-tree fixer for PCIe regions

In case when ARM Trusted Firmware changes the default address of PCIe
regions (which can be done for devices with 4 GB RAM to maximize the
amount of RAM the device can use) we add code that looks at how ATF
changed the PCIe windows in the CPU Address Decoder and changes given
device-tree blob accordingly.

Signed-off-by: Marek Behún <marek.behun@nic.cz>
Reviewed-by: Stefan Roese <sr@denx.de>
4 years agoarm: mvebu: turris_mox: support devices with RAM > 1 GB
Marek Behún [Wed, 8 Apr 2020 17:25:20 +0000 (19:25 +0200)]
arm: mvebu: turris_mox: support devices with RAM > 1 GB

In order to support MOX boards with 2 GB or 4 GB RAM, we use the new
Armada-3700 generic code for memory information structures. This is done
by removing dram_init and dram_init_banksize from turris_mox.c, in order
for the generic, weak definitions to be used.

Also for boards with 4 GB RAM it is needed to increase
CONFIG_NR_DRAM_BANKS to 2 in turris_mox_defconfig.

Signed-off-by: Marek Behún <marek.behun@nic.cz>
Reviewed-by: Stefan Roese <sr@denx.de>
4 years agoarm64: mvebu: a37xx: improve code determining memory info structures
Marek Behún [Wed, 8 Apr 2020 17:25:19 +0000 (19:25 +0200)]
arm64: mvebu: a37xx: improve code determining memory info structures

Currently on Armada-37xx the mem_map structure is statically defined to
map first 2 GB of memory as RAM region, and system registers and PCIe
region device region.

This is insufficient for when there is more RAM or when for example the
PCIe windows is mapped to another address by the CPU Address Decoder.
In the case when the board has 4 GB RAM, on some boards the ARM Trusted
Firmware can move the PCIe window to another address, in order to
maximize possible usable RAM.

Also the dram_init and dram_init_banksize looks for information in
device-tree, and therefore different device trees are needed for boards
with different RAM sizes.

Therefore we add code that looks at how the ARM Trusted Firmware has
configured the CPU Address Decoder windows, and then we update the
mem_map structure and compute gd->ram_size and gd->bd->bi_dram bank
base addresses and sizes accordingly.

Signed-off-by: Marek Behún <marek.behun@nic.cz>
Reviewed-by: Stefan Roese <sr@denx.de>
4 years agoarm64: mvebu: armada-8k: move dram init code
Marek Behún [Wed, 8 Apr 2020 17:25:18 +0000 (19:25 +0200)]
arm64: mvebu: armada-8k: move dram init code

Move Armada-8k specific DRAM init code into armada-8k specific
directory.

Signed-off-by: Marek Behún <marek.behun@nic.cz>
Reviewed-by: Stefan Roese <sr@denx.de>
4 years agoarm: mvebu: turris_mox: sort headers alphabetically
Marek Behún [Wed, 8 Apr 2020 10:02:08 +0000 (12:02 +0200)]
arm: mvebu: turris_mox: sort headers alphabetically

Sort #includes alphabetically, the only exception is common.h, which is
included first in most parts of U-Boot.

Signed-off-by: Marek Behún <marek.behun@nic.cz>
Reviewed-by: Stefan Roese <sr@denx.de>
4 years agoarm: mvebu: turris_mox: don't use hardcoded addresses
Marek Behún [Wed, 8 Apr 2020 10:02:07 +0000 (12:02 +0200)]
arm: mvebu: turris_mox: don't use hardcoded addresses

Use macro MVEBU_REGISTER to access register addresses instead of
hardcoded addresses.

Signed-off-by: Marek Behún <marek.behun@nic.cz>
Reviewed-by: Stefan Roese <sr@denx.de>
4 years agoarm: mvebu: dts: turris_mox: fix USB3 regulator
Marek Behún [Wed, 8 Apr 2020 10:02:06 +0000 (12:02 +0200)]
arm: mvebu: dts: turris_mox: fix USB3 regulator

Commit e8e9715df2d4 requires the USB3 regulator node to have the
enable-active-high property for the regulator to work properly. The
GPIO_ACTIVE_HIGH constant is not enough anymore.

Signed-off-by: Marek Behún <marek.behun@nic.cz>
Fixes: e8e9715df2d4 ("regulator: fixed: Modify enable-active-high...")
Reviewed-by: Stefan Roese <sr@denx.de>
4 years agoarm: mvebu: turris_mox: Setup Linux's device tree before boot
Marek Behún [Wed, 8 Apr 2020 10:02:05 +0000 (12:02 +0200)]
arm: mvebu: turris_mox: Setup Linux's device tree before boot

Patch Linux's device tree according to which Mox modules are connected.
Linux's device tree has all possible Mox module nodes preprogrammed, but
in disabled state.

If MOX B, MOX F or MOX G module is present, this code enables the PCI
node.

For the network modules (MOX C, MOX D and MOX E) are present, the code
enables corresponding ethernet and swtich nodes and DSA connections.
For the SFP cage the SFP GPIO controller node and SFP node are also
enabled.

Signed-off-by: Marek Behún <marek.behun@nic.cz>
Reviewed-by: Stefan Roese <sr@denx.de>
4 years agoarm: mvebu: dts: turris_mox: update sdhci properties
Marek Behún [Wed, 8 Apr 2020 10:02:04 +0000 (12:02 +0200)]
arm: mvebu: dts: turris_mox: update sdhci properties

With recent changes to the mmc subsystem (chip detect code etc) update
the sdhci node of the Turris Mox device tree.

Signed-off-by: Marek Behún <marek.behun@nic.cz>
Reviewed-by: Stefan Roese <sr@denx.de>
4 years agoarm: mvebu: turris_mox: Fix early SPI communication
Marek Behún [Wed, 8 Apr 2020 10:02:03 +0000 (12:02 +0200)]
arm: mvebu: turris_mox: Fix early SPI communication

The SPI clock signal changes value when the SPI configuration register
is configured. This can sometimes lead to the device misinterpreting
the enablement of the SPI controller as actual clock tick.
This can be solved by first setting the SPI CS1 pin from GPIO to SPI mode,
and only after that writing the SPI configuration register.

Signed-off-by: Marek Behún <marek.behun@nic.cz>
Reviewed-by: Stefan Roese <sr@denx.de>
4 years agoarm: mvebu: clearfog: Use Pro DT by default
Joel Johnson [Mon, 23 Mar 2020 20:21:40 +0000 (14:21 -0600)]
arm: mvebu: clearfog: Use Pro DT by default

Switch to explicitly using the Pro variant DT, which has been
available since Linux 4.11.

Signed-off-by: Joel Johnson <mrjoel@lixil.net>
Reviewed-by: Stefan Roese <sr@denx.de>
4 years agoarm: mvebu: clearfog: move ENV params to Kconfig
Joel Johnson [Mon, 23 Mar 2020 20:21:38 +0000 (14:21 -0600)]
arm: mvebu: clearfog: move ENV params to Kconfig

Migrate the values for ENV_SIZE and ENV_OFFSET into board specific
Kconfig defaults so they're more accessible for configuration.

Signed-off-by: Joel Johnson <mrjoel@lixil.net>
Reviewed-by: Stefan Roese <sr@denx.de>
4 years agoarm: mvebu: clearfog: add SPI offsets
Joel Johnson [Mon, 23 Mar 2020 20:21:36 +0000 (14:21 -0600)]
arm: mvebu: clearfog: add SPI offsets

Add reasonable default SPI offsets and ENV size when configured to
boot from SPI flash.

Signed-off-by: Joel Johnson <mrjoel@lixil.net>
Reviewed-by: Stefan Roese <sr@denx.de>
4 years agoarm: mvebu: clearfog: Unify DT selection paths
Joel Johnson [Mon, 23 Mar 2020 20:21:35 +0000 (14:21 -0600)]
arm: mvebu: clearfog: Unify DT selection paths

Unify the location of DT selection into board_late_init instead of
split between detection and static configuration paths.

Signed-off-by: Joel Johnson <mrjoel@lixil.net>
Reviewed-by: Stefan Roese <sr@denx.de>
4 years agoarm: mvebu: clearfog: Add SATA mode flags
Joel Johnson [Mon, 23 Mar 2020 20:21:34 +0000 (14:21 -0600)]
arm: mvebu: clearfog: Add SATA mode flags

The mPCIe slots on ClearFog Pro and ClearFog Base may be alternately
configured for SATA usage.

Signed-off-by: Joel Johnson <mrjoel@lixil.net>
Reviewed-by: Stefan Roese <sr@denx.de>
4 years agoarm: mvebu: clearfog: Add option for 2.5 Gbps SFP
Joel Johnson [Mon, 23 Mar 2020 20:21:33 +0000 (14:21 -0600)]
arm: mvebu: clearfog: Add option for 2.5 Gbps SFP

While newer Linux kernels provide autoconfiguration of SFP, provide
an option for setting in U-Boot Kconfig for use prior to booting.

Signed-off-by: Joel Johnson <mrjoel@lixil.net>
Reviewed-by: Stefan Roese <sr@denx.de>
4 years agoarm: mvebu: clearfog: initial ClearFog Base variant
Joel Johnson [Mon, 23 Mar 2020 20:21:32 +0000 (14:21 -0600)]
arm: mvebu: clearfog: initial ClearFog Base variant

Add a unique entry for ClearFog Base variant, reflected in the board
name and adjusted SerDes topology.

Signed-off-by: Joel Johnson <mrjoel@lixil.net>
Reviewed-by: Stefan Roese <sr@denx.de>
4 years agoarm: mvebu: clearfog: use Pro name by default
Joel Johnson [Mon, 23 Mar 2020 20:21:31 +0000 (14:21 -0600)]
arm: mvebu: clearfog: use Pro name by default

Make the board version printed indicate the Pro variant default.
Also adjust static name casing to match what is expected for
EEPROM product name to share string constants.

Signed-off-by: Joel Johnson <mrjoel@lixil.net>
Reviewed-by: Stefan Roese <sr@denx.de>
4 years agoarm: mvebu: solidrun: remove hardcoded DTS MAC address
Joel Johnson [Mon, 23 Mar 2020 20:21:30 +0000 (14:21 -0600)]
arm: mvebu: solidrun: remove hardcoded DTS MAC address

Using a consistent hardcoded MAC address from the DTS file causes
issues when using multiple devices on the same network segment.
Instead rely on environment configuration or random generation.

Signed-off-by: Joel Johnson <mrjoel@lixil.net>
Reviewed-by: Stefan Roese <sr@denx.de>
4 years agoarm: mvebu: fix SerDes table alignment
Joel Johnson [Mon, 23 Mar 2020 20:21:29 +0000 (14:21 -0600)]
arm: mvebu: fix SerDes table alignment

Tested on Solidrun ClearFog Base. Table alignment was:
 | Lane #  | Speed |  Type       |
 --------------------------------
 |   0    |  3   |  SATA0       |
 |   1    |  0   |  SGMII1      |
 |   2    |  3   |  SATA1       |
 |   3    |  5   |  USB3 HOST1  |
 |   4    |  5   |  USB3 HOST0  |
 |   5    |  4   |  SGMII2      |
 --------------------------------

After the change, it's correctly aligned as:
 | Lane # | Speed |  Type       |
 --------------------------------
 |   0    |   3   | SATA0       |
 |   1    |   0   | SGMII1      |
 |   2    |   5   | PCIe1       |
 |   3    |   5   | USB3 HOST1  |
 |   4    |   5   | PCIe2       |
 |   5    |   0   | SGMII2      |
 --------------------------------

Signed-off-by: Joel Johnson <mrjoel@lixil.net>
Reviewed-by: Stefan Roese <sr@denx.de>
4 years agoarm: mvebu: clearfog: support multiple SATA boot
Joel Johnson [Mon, 23 Mar 2020 17:26:32 +0000 (11:26 -0600)]
arm: mvebu: clearfog: support multiple SATA boot

Enable distro bootcmd support for additional SATA ports if enabled.

Signed-off-by: Joel Johnson <mrjoel@lixil.net>
Reviewed-by: Stefan Roese <sr@denx.de>
4 years agoarm: mvebu: clearfog: add SCSI to distro bootcmd
Joel Johnson [Mon, 23 Mar 2020 17:26:31 +0000 (11:26 -0600)]
arm: mvebu: clearfog: add SCSI to distro bootcmd

Include attempting to boot from SCSI (SATA) devices within generated
board distro bootcmd environment. The reasoning for boot ordering is
that MMC and USB are external and removable, while when a case is in
use, replacing M.2 or mSATA drives requires disassembly. Therefore,
to boot SCSI, [bootable] external media must be removed. If SCSI were
placed before MMC or USB, then removing a bootable SCSI drive to
enable MMC or USB booting would be more difficult.

Signed-off-by: Joel Johnson <mrjoel@lixil.net>
Reviewed-by: Stefan Roese <sr@denx.de>
4 years agoarm: mvebu: update RTC values for PCIe memory wrappers
Chris Packham [Wed, 26 Feb 2020 06:53:50 +0000 (19:53 +1300)]
arm: mvebu: update RTC values for PCIe memory wrappers

Update the RTC (Read Timing Control) values for PCIe memory wrappers
following an ERRATA (ERRATA# TDB). This means the PCIe accesses will
used slower memory Read Timing, to allow more efficient energy
consumption, in order to lower the minimum VDD of the memory.  Will lead
to more robust memory when voltage drop occurs (VDDSEG)

The code is based on changes from Marvell's U-Boot, specifically:

https://github.com/MarvellEmbeddedProcessors/u-boot-marvell/commit/20cd2704072512de176e048970f2883db901674b
https://github.com/MarvellEmbeddedProcessors/u-boot-marvell/commit/eb608a7c8dd0d42b87601a61b9c0cc5615ab94b2
https://github.com/MarvellEmbeddedProcessors/u-boot-marvell/commit/c4af19ae2bf08cf6e450e741ce4f04d402a5cb6b

Signed-off-by: Chris Packham <chris.packham@alliedtelesis.co.nz>
Signed-off-by: Chris Packham <judge.packham@gmail.com>
Reviewed-by: Stefan Roese <sr@denx.de>
4 years agoarm: mvebu: clearfog: add scsi target to distro-boot
Josua Mayer [Mon, 17 Feb 2020 18:37:28 +0000 (19:37 +0100)]
arm: mvebu: clearfog: add scsi target to distro-boot

Support for sata devices via the scsi command is available and already
enabled by default for the Clearfog Base and Pro. This change adds scsi
to the list of boot targets used by distro-boot.

Signed-off-by: Josua Mayer <josua@solid-run.com>
Cc: Stefan Roese <sr@denx.de>
Reviewed-by: Stefan Roese <sr@denx.de>
4 years agoarm: mvebu: drivers/ddr: remove redundant assignment
Heinrich Schuchardt [Sat, 15 Feb 2020 20:58:31 +0000 (21:58 +0100)]
arm: mvebu: drivers/ddr: remove redundant assignment

The value of local variable ecc is immediately overwritten. So we can
remove the first assignment.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Reviewed-by: Stefan Roese <sr@denx.de>
4 years agoarm: mvebu: dts: Sort Armada series dts alphabetically
Josip Kelecic [Thu, 13 Feb 2020 13:38:49 +0000 (14:38 +0100)]
arm: mvebu: dts: Sort Armada series dts alphabetically

Sort the Armada series dts in the Makefile alphabetically
prior to adding new board support.

Signed-off-by: Josip Kelečić <josip.kelecic@sartura.hr>
Reviewed-by: Luka Kovacic <luka.kovacic@sartura.hr>
Reviewed-by: Stefan Roese <sr@denx.de>
4 years agoddr: marvell: a38x: Allow boards to specify CK_DELAY parameter
Chris Packham [Wed, 29 Jan 2020 23:50:44 +0000 (12:50 +1300)]
ddr: marvell: a38x: Allow boards to specify CK_DELAY parameter

For some layouts it is necessary to adjust the CK_DELAY parameter to
successfully complete DDR training. Add the ability to specify the
CK_DELAY in the mv_ddr_topology_map.

Signed-off-by: Chris Packham <judge.packham@gmail.com>
4 years agoMerge branch 'master' of git://git.denx.de/u-boot-socfpga
Tom Rini [Mon, 13 Apr 2020 20:06:51 +0000 (16:06 -0400)]
Merge branch 'master' of git://git.denx.de/u-boot-socfpga

4 years agoMerge branch 'master' of git://git.denx.de/u-boot-usb
Tom Rini [Mon, 13 Apr 2020 20:06:36 +0000 (16:06 -0400)]
Merge branch 'master' of git://git.denx.de/u-boot-usb

4 years agoMerge branch 'next'
Tom Rini [Mon, 13 Apr 2020 15:27:00 +0000 (11:27 -0400)]
Merge branch 'next'

Pull in changes that have been pending in our 'next' branch.  This
includes:
- A large number of CI improvements including moving to gcc-9.2 for all
  platforms.
- amlogic, xilinx, stm32, TI SoC updates
- USB and i2c subsystem updtaes
- Re-sync Kbuild/etc logic with v4.19 of the Linux kernel.
- RSA key handling improvements

4 years agoPrepare v2020.04
Tom Rini [Mon, 13 Apr 2020 15:02:18 +0000 (11:02 -0400)]
Prepare v2020.04

Signed-off-by: Tom Rini <trini@konsulko.com>
4 years agoarm: socfpga: arria10: Enable cache driver in SPL
Ley Foon Tan [Tue, 7 Apr 2020 07:43:14 +0000 (15:43 +0800)]
arm: socfpga: arria10: Enable cache driver in SPL

Adding "u-boot,dm-pre-reloc" and enable CONFIG_SPL_CACHE
to enable cache driver in SPL.

This fixed error below in SPL:
cache controller driver NOT found!

Signed-off-by: Ley Foon Tan <ley.foon.tan@intel.com>
4 years agoarm: dts: arria10: Update dtsi/dts from Linux
Ley Foon Tan [Tue, 7 Apr 2020 07:43:13 +0000 (15:43 +0800)]
arm: dts: arria10: Update dtsi/dts from Linux

Update these 3 files from Linux:.
- socfpga_arria10.dtsi (Commit ID c1459a9d7e92)
- socfpga_arria10_socdk.dtsi (Commit ID d9b9f805ee2b)
- socfpga_arria10_socdk_sdmmc.dts (Commit ID 17808d445b6f)

Change in socfpga_arria10.dtsi:
- Add clkmgr label, so that can reference to it in u-boot.dtsi.

Change in socfpga_arria10-u-boot.dtsi:
- Add compatible and altr,sysmgr-syscon for uboot.

Signed-off-by: Ley Foon Tan <ley.foon.tan@intel.com>
4 years agoarm: dts: arria10: Move uboot specific properties to u-boot.dtsi
Ley Foon Tan [Tue, 7 Apr 2020 07:43:12 +0000 (15:43 +0800)]
arm: dts: arria10: Move uboot specific properties to u-boot.dtsi

Move Uboot specific properties to *u-boot.dtsi files.
Preparation to sync Arria 10 device tree from Linux.

Signed-off-by: Ley Foon Tan <ley.foon.tan@intel.com>
4 years agoARM: socfpga: Enable DM RTC bootcount on ABB SECU1
Marek Vasut [Fri, 6 Mar 2020 20:52:21 +0000 (21:52 +0100)]
ARM: socfpga: Enable DM RTC bootcount on ABB SECU1

Add and enable RTC-backed boot counter on ABB SECU1 platform.

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>
Reviewed-by: Ley Foon Tan <ley.foon.tan@intel.com>
4 years agodrivers: usb: host: Add BRCM xHCI driver
Rayagonda Kokatanur [Thu, 9 Apr 2020 03:53:15 +0000 (09:23 +0530)]
drivers: usb: host: Add BRCM xHCI driver

Base driver for Broadcom xHCI controllers

Signed-off-by: Bharat Kumar Reddy Gooty <bharat.gooty@broadcom.com>
Signed-off-by: Rayagonda Kokatanur <rayagonda.kokatanur@broadcom.com>
Signed-off-by: Vladimir Olovyannikov <vladimir.olovyannikov@broadcom.com>
4 years agousb: Migrate to support live DT for some driver
Kever Yang [Wed, 4 Mar 2020 00:59:50 +0000 (08:59 +0800)]
usb: Migrate to support live DT for some driver

Use ofnode_ instead of fdt_ APIs so that the drivers can support live DT.
This patch updates usb_get_dr_mode() and usb_get_maximum_speed() to use
ofnode as parameter instead of fdt offset. And all the drivers who use
these APIs update to use live dt APIs at the same time.

Signed-off-by: Kever Yang <kever.yang@rock-chips.com>
4 years agousb: ehci-msm: Use dev interface to get device address
Kever Yang [Wed, 4 Mar 2020 00:59:49 +0000 (08:59 +0800)]
usb: ehci-msm: Use dev interface to get device address

Use dev_read_addr_ptr() instead of devfdt_get_addr() so that we can support
live DT.

Signed-off-by: Kever Yang <kever.yang@rock-chips.com>
Reviewed-by: Ramon Fried <rfried.dev@gmail.com>
4 years agousb: dwc3-of-simple: Drop redundant inclding header file
Kever Yang [Wed, 4 Mar 2020 00:59:48 +0000 (08:59 +0800)]
usb: dwc3-of-simple: Drop redundant inclding header file

The fdtdec.h is no use in this file, remove the include code.

Signed-off-by: Kever Yang <kever.yang@rock-chips.com>
4 years agoMerge https://gitlab.denx.de/u-boot/custodians/u-boot-mpc85xx
Tom Rini [Sun, 12 Apr 2020 12:10:13 +0000 (08:10 -0400)]
Merge https://gitlab.denx.de/u-boot/custodians/u-boot-mpc85xx

- Fixes DDR initialization failure on PowerPC boards like P3041DS,
  P4080DS

4 years agoMerge branch '2020-04-11-CI-further-improvements' into next
Tom Rini [Sat, 11 Apr 2020 15:18:14 +0000 (11:18 -0400)]
Merge branch '2020-04-11-CI-further-improvements' into next

- Further clean up and improve our Azure/GitLab/Travis CI loops

4 years agotravis/gitlab/azure: Run cppcheck in parallel
Simon Glass [Sun, 5 Apr 2020 20:35:43 +0000 (14:35 -0600)]
travis/gitlab/azure: Run cppcheck in parallel

This takes ages to run single-threaded. Adjust it to use all available
processors.

Signed-off-by: Simon Glass <sjg@chromium.org>
4 years agotest/py: Allow using buildman to build U-Boot
Simon Glass [Wed, 18 Mar 2020 15:43:01 +0000 (09:43 -0600)]
test/py: Allow using buildman to build U-Boot

It is a pain to have to set the CROSS_COMPILE environment variable when
using test.py's --build option. It is possible to get this using the -A
option from buildman. But it seems better to just use buildman to do the
build when it is available.

However using buildman adds a new dependency to the test system which we
want to avoid. So leave the default as is and add a flag to make it use
buildman.

Note that most of these changes relate to test.py and the parts of the
travis/gitlab/azure scripts which relate to running test and building a
suitable U-Boot to run the tests on.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
4 years agotravis/gitlab/azure: Drop repeated buildman call with test.py
Simon Glass [Wed, 18 Mar 2020 15:43:00 +0000 (09:43 -0600)]
travis/gitlab/azure: Drop repeated buildman call with test.py

It does not seem to be necessary to run buildman again to show errors,
since any errors can be shown by the first invocation and there is only
a single board being built. Update this to simplify the code, using the
-e flag to make sure errors are shown.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
4 years agotravis/gitlab/azure: Simplify the exit code for test.py
Simon Glass [Wed, 18 Mar 2020 15:42:59 +0000 (09:42 -0600)]
travis/gitlab/azure: Simplify the exit code for test.py

It seems unnecessary to read the exit code and then check it again. Drop
this and just let the test.py provide the exit code directly.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
4 years agotravis/gitlab/azure: Enable test_handoff
Simon Glass [Wed, 18 Mar 2020 15:42:58 +0000 (09:42 -0600)]
travis/gitlab/azure: Enable test_handoff

Ensure that this SPL test runs on gitlab.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
4 years agotravis/gitlab/azure: Use -W to avoid warnings check
Simon Glass [Wed, 18 Mar 2020 15:42:57 +0000 (09:42 -0600)]
travis/gitlab/azure: Use -W to avoid warnings check

We can use the -W flag to tell buildman to ignore warnings. Since we also
have -E defined, compiler warnings are promoted to errors, so they will
still cause a failure. But migration warnings of the form:

    ===================== WARNING ======================
    This board does not use CONFIG_DM. CONFIG_DM will be
    compulsory starting with the v2020.01 release.
    Failure to update may result in board removal.
    See doc/driver-model/migration.rst for more info.

will now be ignored.

Signed-off-by: Simon Glass <sjg@chromium.org>
Fixes: 329f5ef51d2 (travis.yml: run buildman with option -E)
Reviewed-by: Tom Rini <trini@konsulko.com>
4 years agotravis/gitlab/azure: Use bash to avoid a_test_which_does_not_exist
Simon Glass [Wed, 18 Mar 2020 15:42:56 +0000 (09:42 -0600)]
travis/gitlab/azure: Use bash to avoid a_test_which_does_not_exist

Bash allows for variables to expand only if non-empty:

$ var=test
$ echo ${var:+"$var"}
test
$ echo ${var:+"-k $var"}
-k test
$ var=
$ echo ${var:+"-k $var"}

Use this feature to avoid the workaround.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
4 years agogitlab/azure: Use -w flag for all test.py builds
Simon Glass [Wed, 18 Mar 2020 15:42:55 +0000 (09:42 -0600)]
gitlab/azure: Use -w flag for all test.py builds

Avoid needing to know about the internal .bm-work directory, by passing
the -w flag to buildman.

This is not needed on travis since the -w flag is already used (from a
previous patch).

Drop the -P flag since this has no effect if -w is used.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
4 years agogitlab/azure: Drop unnecessary if..fi when using test.py
Simon Glass [Wed, 18 Mar 2020 15:42:54 +0000 (09:42 -0600)]
gitlab/azure: Drop unnecessary if..fi when using test.py

Since TEST_PY_BD is always defined we can drop this check.

This does not affect travis since it has a single, unified script.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
4 years agotravis/gitlab/azure: Drop the buildman -d flag
Simon Glass [Wed, 18 Mar 2020 15:42:53 +0000 (09:42 -0600)]
travis/gitlab/azure: Drop the buildman -d flag

This has no effect since -S is not given also. Drop it.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
4 years agotravis/gitlab/azure: Drop BUILDMAN variable with test.py
Simon Glass [Wed, 18 Mar 2020 15:42:52 +0000 (09:42 -0600)]
travis/gitlab/azure: Drop BUILDMAN variable with test.py

This is not needed in the test.py part of the config, now since we use the
same name as the pytests.

Drop BUILDMAN, retaining it only for the 'build' parts of the config, i.e.
where we build multiple boards and don't run any tests.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
4 years agotravis/gitlab/azure: Use --board buildman flag with test.py
Simon Glass [Wed, 18 Mar 2020 15:42:51 +0000 (09:42 -0600)]
travis/gitlab/azure: Use --board buildman flag with test.py

The current method of selecting the board to build with test.py is a bit
error-prone, e.g. with "^sandbox$" it actually builds 5 boards (all of
those in the sandbox architecture).

Use the (newish) --board flag instead, to get the same result.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
4 years agogitlab/azure: Use the -w option for sandbox_spl
Simon Glass [Wed, 18 Mar 2020 15:42:50 +0000 (09:42 -0600)]
gitlab/azure: Use the -w option for sandbox_spl

Avoid needing to know about the internal .bm-work directory, by passing
the -w flag to buildman.

This does not affect travis since the previous commit already used the -w
flag.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
4 years agotravis: Split the building into two parts
Simon Glass [Wed, 18 Mar 2020 15:42:49 +0000 (09:42 -0600)]
travis: Split the building into two parts

Buildman is used in two ways:

- to build a selection of boards (with no testing)
- to build a single board (and run pytest)

The gitlab and azure scrips do this in separate places, but travis does
not. To aid the refactoring process and keep the following patches in sync
across all three environments, split the code out in travis as well.

Use the buildman -w option for the single board. It is easier to
understand since it specifies the output directory directly. Also it
avoids needing to look at the internal .bm-work directory.

This initially creates some duplicate code, but by the end of the series
we have two completely different build paths with different arguments.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
4 years agotravis: Don't copy files into .bm-work/
Simon Glass [Wed, 18 Mar 2020 15:42:48 +0000 (09:42 -0600)]
travis: Don't copy files into .bm-work/

At present if TEST_PY_BD is empty the script copies various files into a
directory, to no purpose. This happens because UBOOT_TRAVIS_BUILD_DIR is
set before TEST_PY_BD is tested.

Move the 'if' to fix this.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Tom Rini <trini@konsulko.com>