platform/kernel/u-boot.git
3 years agoMerge tag 'efi-2022-01-rc1' of https://source.denx.de/u-boot/custodians/u-boot-efi
Tom Rini [Fri, 22 Oct 2021 12:56:45 +0000 (08:56 -0400)]
Merge tag 'efi-2022-01-rc1' of https://source.denx.de/u-boot/custodians/u-boot-efi

Pull request for efi-2022-01-rc1

Documentation:
Use Sphinx 3.43.
Move system reset documentation to HTML

UEFI:
Fix linking EFI apps with LLVM
Fix alignment of loaded image
Correct simple network protocol test
Code cleanup

3 years agoMerge tag 'dm-pull-21oct21' of https://source.denx.de/u-boot/custodians/u-boot-dm
Tom Rini [Fri, 22 Oct 2021 01:41:47 +0000 (21:41 -0400)]
Merge tag 'dm-pull-21oct21' of https://source.denx.de/u-boot/custodians/u-boot-dm

Refactoring of env_get_char() etc.
Update buildman to use gcc-11.1.0
Use in-container toolchain for nokia_rx51 CI test

# gpg: Signature made Thu 21 Oct 2021 09:34:07 PM EDT
# gpg:                using RSA key B25C0022AF86A7CC1655B6277F173A3E9008ADE6
# gpg:                issuer "sjg@chromium.org"
# gpg: Good signature from "Simon Glass <sjg@chromium.org>" [unknown]
# gpg: WARNING: This key is not certified with a trusted signature!
# gpg:          There is no indication that the signature belongs to the owner.
# Primary key fingerprint: B25C 0022 AF86 A7CC 1655  B627 7F17 3A3E 9008 ADE6

3 years agoenv: Move non-cli env functions to env/common.c
Marek Behún [Sun, 17 Oct 2021 15:36:38 +0000 (17:36 +0200)]
env: Move non-cli env functions to env/common.c

Move the following functions from cmd/nvedit.c to env/common.c:
  env_set_ulong()
  env_set_hex()
  env_get_hex()
  eth_env_get_enetaddr()
  eth_env_set_enetaddr()
  env_get()
  from_env()
  env_get_f()
  env_get_ulong()
since these functions are not specific for U-Boot's CLI.

We leave env_set() in cmd/nvedit.c, since it calls _do_env_set(), which
is a static function in that file.

Signed-off-by: Marek Behún <marek.behun@nic.cz>
Reviewed-by: Simon Glass <sjg@chromium.org>
3 years agoenv: Simplify env_match() and inline into env_get_f()
Marek Behún [Sun, 17 Oct 2021 15:36:37 +0000 (17:36 +0200)]
env: Simplify env_match() and inline into env_get_f()

In the past the env_match() function was used to match envs with
- name, i.e. string "name"
- variable assignment, i.e. string "name=other_value"

The latter is not the case anymore, since the env_match() function is
now used only in env_get_f(), and so we can simplify the function into
a simple strncmp() with an additional comparison to '='.

Let's do this, and since the resulting function is quite simple, let's
also inline its code into env_get_f().

Signed-off-by: Marek Behún <marek.behun@nic.cz>
Reviewed-by: Simon Glass <sjg@chromium.org>
3 years agoenv: Use memcpy() instead of ad-hoc code to copy variable value
Marek Behún [Sun, 17 Oct 2021 15:36:36 +0000 (17:36 +0200)]
env: Use memcpy() instead of ad-hoc code to copy variable value

Copy the value of the found variable into given buffer with memcpy()
instead of ad-hoc code.

Signed-off-by: Marek Behún <marek.behun@nic.cz>
Reviewed-by: Simon Glass <sjg@chromium.org>
3 years agoenv: Make return value of env_get_f() behave like sprintf() on success
Marek Behún [Sun, 17 Oct 2021 15:36:35 +0000 (17:36 +0200)]
env: Make return value of env_get_f() behave like sprintf() on success

Currently the env_get_f() function's return value behaves weirdly: it
returns the number of bytes written into `buf`, but whether this is
excluding the terminating NULL-byte or including it depends on whether
there was enough space in `buf`.

Change the function to always return the actual length of the value of
the environment variable (excluding the terminating NULL-byte) on
success. This makes it behave like sprintf().

All users of this function in U-Boot are compatible with this change.

Signed-off-by: Marek Behún <marek.behun@nic.cz>
Reviewed-by: Simon Glass <sjg@chromium.org>
3 years agoenv: Early return from env_get_f() on NULL name
Marek Behún [Sun, 17 Oct 2021 15:36:34 +0000 (17:36 +0200)]
env: Early return from env_get_f() on NULL name

Test non-NULL name immediately, not in env_match().

Signed-off-by: Marek Behún <marek.behun@nic.cz>
Reviewed-by: Simon Glass <sjg@chromium.org>
3 years agoenv: Don't match empty variable name in env_match()
Marek Behún [Sun, 17 Oct 2021 15:36:33 +0000 (17:36 +0200)]
env: Don't match empty variable name in env_match()

Do we really allow zero-length variable name? I guess not.

Signed-off-by: Marek Behún <marek.behun@nic.cz>
Reviewed-by: Simon Glass <sjg@chromium.org>
3 years agoenv: Use better name for variable in env_get_f()
Marek Behún [Sun, 17 Oct 2021 15:36:32 +0000 (17:36 +0200)]
env: Use better name for variable in env_get_f()

The `nxt` variable actually points to the terminating null-byte of the
current env var, and the next env var is at `nxt + 1`, not `nxt`. So a
better name for this variable is `end`.

Signed-off-by: Marek Behún <marek.behun@nic.cz>
Reviewed-by: Simon Glass <sjg@chromium.org>
3 years agoenv: Use string pointer instead of indexes in env_get_f()
Marek Behún [Sun, 17 Oct 2021 15:36:31 +0000 (17:36 +0200)]
env: Use string pointer instead of indexes in env_get_f()

Since we no longer use env_get_char() to access n-th character of
linearized environment data, but rather access the arrays themselves, we
can convert the iteration to use string pointers instead of position
indexes.

Signed-off-by: Marek Behún <marek.behun@nic.cz>
Reviewed-by: Simon Glass <sjg@chromium.org>
3 years agoenv: Inline env_get_char() into its only user
Marek Behún [Sun, 17 Oct 2021 15:36:30 +0000 (17:36 +0200)]
env: Inline env_get_char() into its only user

This function is a relic from the past when environment was read from
underlying device one character at a time.

It is used only in the case when getting an environemnt variable prior
relocation, and the function is simple enough to be inlined there.

Since env_get_char() is being changed to simple access to an array, we
can drop the failing cases and simplify the code (this could have been
done before, since env_get_char() did not fail even before).

Signed-off-by: Marek Behún <marek.behun@nic.cz>
Reviewed-by: Simon Glass <sjg@chromium.org>
3 years agoenv: Change env_match() to static and remove from header
Marek Behún [Sun, 17 Oct 2021 15:36:29 +0000 (17:36 +0200)]
env: Change env_match() to static and remove from header

This function was used by other parts of U-Boot in the past when
environment was read from underlying device one character at a time.

This is not the case anymore.

Signed-off-by: Marek Behún <marek.behun@nic.cz>
Reviewed-by: Simon Glass <sjg@chromium.org>
3 years agoexamples: api: glue: Remove comment that does not apply anymore
Marek Behún [Sun, 17 Oct 2021 15:36:28 +0000 (17:36 +0200)]
examples: api: glue: Remove comment that does not apply anymore

This comment is not true since commit 6215bd4c1fd6 ("api: Use hashtable
function for API_env_enum").

Signed-off-by: Marek Behún <marek.behun@nic.cz>
Reviewed-by: Simon Glass <sjg@chromium.org>
3 years agoenv: Drop env_get_char_spec() and old, unused .get_char() implementations
Marek Behún [Sun, 17 Oct 2021 15:36:27 +0000 (17:36 +0200)]
env: Drop env_get_char_spec() and old, unused .get_char() implementations

Commit b2cdef4861be ("env: restore old env_get_char() behaviour")
dropped the .get_char() method from struct env_driver, but left the two
existing implementations (eeprom and nvram) in case someone would use
them by overwriting weak function env_get_char_spec().

Since this was never done in the 3.5 years, let's drop these methods and
simplify the code.

Signed-off-by: Marek Behún <marek.behun@nic.cz>
Reviewed-by: Simon Glass <sjg@chromium.org>
3 years agoenv: Fix documentation for env_get_f()
Marek Behún [Sun, 17 Oct 2021 15:36:26 +0000 (17:36 +0200)]
env: Fix documentation for env_get_f()

This function actually returns:
- the number of bytes written into @buf excluding the terminating
  NULL-byte, if there was enough space in @buf
- the number of bytes written into @buf including the terminating
  NULL-byte, if there wasn't enough space in @buf
- -1 if the variable is not found

Signed-off-by: Marek Behún <marek.behun@nic.cz>
Reviewed-by: Simon Glass <sjg@chromium.org>
3 years agodm: Fix util.h's broken include guard
Pierre-Clément Tosi [Thu, 30 Sep 2021 15:52:45 +0000 (17:52 +0200)]
dm: Fix util.h's broken include guard

Fix up the header's include guard to contain the definition of
dm_priv_to_rw(), which was erroneously added outside of it, by moving
its #endif to the end of the file (i.e. where it belongs). This removes
the risk of compilation errors resulting from the redefinition of that
function where the header might have been (indirectly) included more
than once.

Fixes: cfb9c9b77c2 ("dm: core: Use separate priv/plat data region")
Signed-off-by: Pierre-Clément Tosi <ptosi@google.com>
Cc: Simon Glass <sjg@chromium.org>
3 years agosandbox: provide /chosen/boot-hartid property
Heinrich Schuchardt [Sat, 28 Aug 2021 09:42:09 +0000 (11:42 +0200)]
sandbox: provide /chosen/boot-hartid property

On RISC-V the sandbox must provide the /chosen/boot-hartid in the
devicetree.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
3 years agobuildman: Add gcc-11.1.0 to the directory list
Tom Rini [Tue, 5 Oct 2021 16:20:36 +0000 (12:20 -0400)]
buildman: Add gcc-11.1.0 to the directory list

While CI has been using gcc-11.1.0 for a long time, we have not updated
buildman to match.  Correct this omission.

Signed-off-by: Tom Rini <trini@konsulko.com>
3 years agoCI: Switch running the nokia_rx51 test with in-container toolchain
Tom Rini [Fri, 15 Oct 2021 02:21:29 +0000 (22:21 -0400)]
CI: Switch running the nokia_rx51 test with in-container toolchain

Instead of fetching an arm toolchain to use, run the test with the one
that's already in the container image.

Signed-off-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Tested-by: Simon Glass <sjg@chromium.org>
3 years agoMerge https://source.denx.de/u-boot/custodians/u-boot-marvell
Tom Rini [Thu, 21 Oct 2021 11:52:15 +0000 (07:52 -0400)]
Merge https://source.denx.de/u-boot/custodians/u-boot-marvell

- Turris MOX and Omnia changes, mostly moving to Kconfig (Marek)
- a37xx: pci: Misc smaller fixes (Pali)
- cmd: tlv_eeprom: Fix building with DEBUG enabled (Sven)
- termios_linux.h: Fix tcsendbreak() implementation (Pali)
- mvebu: Add missing "if SPL" (Tom)

3 years agoarm: a37xx: pci: Fix condition for CRS response
Pali Rohár [Tue, 19 Oct 2021 09:05:01 +0000 (11:05 +0200)]
arm: a37xx: pci: Fix condition for CRS response

As stated in comment above the code, CRS response can be returned to OS
only for 4-byte PCI_VENDOR_ID config read request. So fix the code.

Fixes: 1d7ad68559e2 ("arm: a37xx: pci: Handle propagation of CRSSVE bit from PCIe Root Port")
Signed-off-by: Pali Rohár <pali@kernel.org>
Reviewed-by: Stefan Roese <sr@denx.de>
3 years agoarm: mvebu: Add missing "if SPL"
Tom Rini [Fri, 15 Oct 2021 14:54:41 +0000 (10:54 -0400)]
arm: mvebu: Add missing "if SPL"

We can only select SPL_SKIP_LOWLEVEL_INIT if SPL is enabled, otherwise
we get a warning about unmet dependencies on platforms that don't use
SPL.

Fixes: cf47a8cf8f7e ("arm: mvebu: Select SPL_SKIP_LOWLEVEL_INIT on ARMADA_32BIT")
Cc: Stefan Roese <sr@denx.de>
Signed-off-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Stefan Roese <sr@denx.de>
3 years agoarm: a37xx: pci: Do not allow setting bars on PCI Bridge
Pali Rohár [Tue, 12 Oct 2021 11:19:19 +0000 (13:19 +0200)]
arm: a37xx: pci: Do not allow setting bars on PCI Bridge

PCI Bridge which represents Aardvark PCIe Root Port does not have
configurable bars.

So ensure that write operation to bars registers on PCI Bridge is noop and
bars registers always contain zero address which indicates that bars are
unsupported.

After this change U-Boot 'pci bar 0.0.0' command does not show any
allocated bars for PCI Bridge device.

Signed-off-by: Pali Rohár <pali@kernel.org>
Fixes: cb056005dc67 ("arm: a37xx: pci: Add support for accessing PCI Bridge on root bus")
Reviewed-by: Stefan Roese <sr@denx.de>
3 years agoarm: mvebu: turris_omnia: Move CONFIG_SPL_DRIVERS_MISC to Kconfig
Marek Behún [Sat, 9 Oct 2021 17:33:46 +0000 (19:33 +0200)]
arm: mvebu: turris_omnia: Move CONFIG_SPL_DRIVERS_MISC to Kconfig

Instead of declaring CONFIG_SPL_DRIVERS_MISC in board config header,
select it in Kconfig.

Signed-off-by: Marek Behún <marek.behun@nic.cz>
Reviewed-by: Stefan Roese <sr@denx.de>
3 years agoarm: mvebu: turris_omnia: Move SPL's SYS_MALLOC_SIMPLE to Kconfig
Marek Behún [Sat, 9 Oct 2021 17:33:45 +0000 (19:33 +0200)]
arm: mvebu: turris_omnia: Move SPL's SYS_MALLOC_SIMPLE to Kconfig

Instead of declaring CONFIG_SYS_MALLOC_SIMPLE dependant on
CONFIG_SPL_BUILD in board config header, select
CONFIG_SPL_SYS_MALLOC_SIMPLE in Kconfig.

Signed-off-by: Marek Behún <marek.behun@nic.cz>
Reviewed-by: Stefan Roese <sr@denx.de>
3 years agoarm: mvebu: turris_omnia: Use show_board_info()
Marek Behún [Sat, 9 Oct 2021 17:33:44 +0000 (19:33 +0200)]
arm: mvebu: turris_omnia: Use show_board_info()

We are printing board information in checkboard() function, which is
called from the default weak implementation of show_board_info().

Rename checkboard() to show_board_info(). This throws away the weak
implementation of show_board_info().

Signed-off-by: Marek Behún <marek.behun@nic.cz>
Reviewed-by: Stefan Roese <sr@denx.de>
3 years agoarm: mvebu: turris_omnia: Overwrite ethaddr only if invalid
Marek Behún [Sat, 9 Oct 2021 17:33:43 +0000 (19:33 +0200)]
arm: mvebu: turris_omnia: Overwrite ethaddr only if invalid

Currently we always overwrite ethaddrs with those from EEPROM.

In order to allow user to use a cloned MAC address in U-Boot, change the
code so that it sets ethaddr variables only if they aren't set or are
invalid.

Signed-off-by: Marek Behún <marek.behun@nic.cz>
Reviewed-by: Stefan Roese <sr@denx.de>
3 years agoarm: mvebu: turris_mox: Better check for valid ethernet addresses in env
Marek Behún [Sat, 9 Oct 2021 17:33:42 +0000 (19:33 +0200)]
arm: mvebu: turris_mox: Better check for valid ethernet addresses in env

Currently we overwrite ethaddr and eth1addr only if these variables
don't exist.

Better overwrite them even if the env variable exists, but is invalid -
eth_env_get_enetaddr_by_index() checks for validity.

Refactor the code to use a for cycle.

Signed-off-by: Marek Behún <marek.behun@nic.cz>
Reviewed-by: Stefan Roese <sr@denx.de>
3 years agoarm: mvebu: turris_mox: Always handle reset button
Marek Behún [Sat, 9 Oct 2021 17:33:41 +0000 (19:33 +0200)]
arm: mvebu: turris_mox: Always handle reset button

Handle reset button even if we can't configure modules.

This happens if we fail retrieving reset GPIO with which we can reset
the modules.

(Note that this GPIO is different from reset button GPIO.)

Signed-off-by: Marek Behún <marek.behun@nic.cz>
Reviewed-by: Stefan Roese <sr@denx.de>
3 years agoarm: mvebu: turris_mox: Use show_board_info()
Marek Behún [Sat, 9 Oct 2021 17:33:40 +0000 (19:33 +0200)]
arm: mvebu: turris_mox: Use show_board_info()

We are printing board information in last_stage_init(), but U-Boot has
dedicated function, show_board_info(), for this.

Move code which prints board information (board version, serial number,
module topology, ...) to show_board_info().

Signed-off-by: Marek Behún <marek.behun@nic.cz>
Reviewed-by: Stefan Roese <sr@denx.de>
3 years agoarm: mvebu: turris_mox: Cosmetic update for board config header
Marek Behún [Sat, 9 Oct 2021 17:33:39 +0000 (19:33 +0200)]
arm: mvebu: turris_mox: Cosmetic update for board config header

Reorder the definitions in Turris MOX' board config header, drop the
comment relics from when this file was copied, fix indentation.

Signed-off-by: Marek Behún <marek.behun@nic.cz>
Reviewed-by: Stefan Roese <sr@denx.de>
3 years agoarm: kirkwood, mvebu: Remove CONFIG_SYS_RESET_ADDRESS option
Marek Behún [Sat, 9 Oct 2021 17:33:38 +0000 (19:33 +0200)]
arm: kirkwood, mvebu: Remove CONFIG_SYS_RESET_ADDRESS option

This option is not used anywhere.

Signed-off-by: Marek Behún <marek.behun@nic.cz>
Reviewed-by: Stefan Roese <sr@denx.de>
3 years agoarm: mvebu: a3720: Create Kconfig option for I2C_MV
Marek Behún [Sat, 9 Oct 2021 17:33:37 +0000 (19:33 +0200)]
arm: mvebu: a3720: Create Kconfig option for I2C_MV

Move the config option CONFIG_I2C_MV to a Kconfig option
CONFIG_SYS_I2C_MV and move the default definition from config header
files into defconfigs.

Signed-off-by: Marek Behún <marek.behun@nic.cz>
Reviewed-by: Stefan Roese <sr@denx.de>
3 years agoarm: mvebu: turris_mox: Move options to defconfig
Marek Behún [Sat, 9 Oct 2021 17:33:36 +0000 (19:33 +0200)]
arm: mvebu: turris_mox: Move options to defconfig

Move config options CONFIG_LAST_STAGE_INIT and
CONFIG_DISPLAY_BOARDINFO_LATE to turris_mox_defconfig.

Signed-off-by: Marek Behún <marek.behun@nic.cz>
Reviewed-by: Stefan Roese <sr@denx.de>
3 years agotools: termios_linux.h: Fix tcsendbreak() implementation
Pali Rohár [Wed, 6 Oct 2021 12:30:25 +0000 (14:30 +0200)]
tools: termios_linux.h: Fix tcsendbreak() implementation

There are two Linux ioctls which implements tcsendbreak() functionality:
TCSBRK and TCSBRKP

TCSBRK with non-zero parameter implements tcdrain() and with zero parameter
implements tcsendbreak() for duration of 0.25s.

TCSBRKP with zero parameter is same as TCSBRK and with non-zero parameter
implements tcsendbreak() for duration in deciseconds specified by
parameter. TCSBRKP does not have to be provided by older toolchain
versions.

So tcsendbreak() has to either use TCSBRK with zero parameter or TCSBRKP
with any parameter.

Fix code to use TCSBRKP and fallback to TCSBRK with 0.

Signed-off-by: Pali Rohár <pali@kernel.org>
Reviewed-by: Stefan Roese <sr@denx.de>
3 years agocmd: tlv_eeprom
Sven Auhagen [Sun, 12 Sep 2021 07:25:44 +0000 (09:25 +0200)]
cmd: tlv_eeprom

The function show_eeprom is missing int i if debug is enabled.

Signed-off-by: Sven Auhagen <sven.auhagen@voleatech.de>
Reviewed-by: Stefan Roese <sr@denx.de>
3 years agoefi_loader: Fix link of EFI apps with ld.lld
Alistair Delva [Wed, 20 Oct 2021 21:31:31 +0000 (21:31 +0000)]
efi_loader: Fix link of EFI apps with ld.lld

When compiling U-Boot with ld.lld as the linker, the helloworld EFI app
example fails to link:

LD      lib/efi_loader/helloworld_efi.so
ld.lld: error: section: .dynamic is not contiguous with other relro
                        sections

LLD will always create RELRO program header regardless of target
emulation, whereas BFD may automatically disable it for unsupported
targets. Add -znorelro to disable it explicitly in all cases.

Signed-off-by: Alistair Delva <adelva@google.com>
Cc: Heinrich Schuchardt <xypron.glpk@gmx.de>
Cc: Nick Desaulniers <ndesaulniers@google.com>
Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
3 years agoefi_loader: efi_dp_from_lo() should skip VenMedia node
Heinrich Schuchardt [Fri, 15 Oct 2021 00:59:15 +0000 (02:59 +0200)]
efi_loader: efi_dp_from_lo() should skip VenMedia node

The 'efidebug boot dump' command should not display the VenMedia() device
path node preceding the device path of the initial ram disk.

By letting efi_dp_from_lo() skip the VenMedia() device path node we can
simplify the coding.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
3 years agoefi_loader: avoid multiple local copies of lf2_initrd_guid
Heinrich Schuchardt [Fri, 15 Oct 2021 00:33:33 +0000 (02:33 +0200)]
efi_loader: avoid multiple local copies of lf2_initrd_guid

Create the GUID as a global variable.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
3 years agoefi_loader: efi_dp_from_lo() unused parameter size
Heinrich Schuchardt [Fri, 15 Oct 2021 00:03:55 +0000 (02:03 +0200)]
efi_loader: efi_dp_from_lo() unused parameter size

Parameter size is never used in function efi_dp_from_lo(). Remove it.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
3 years agoefi_loader: simplify show_efi_boot_opt_data()
Heinrich Schuchardt [Thu, 14 Oct 2021 23:47:40 +0000 (01:47 +0200)]
efi_loader: simplify show_efi_boot_opt_data()

Use printf code %pD for printing device paths.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
3 years agoefi_loader: efi_dp_from_lo() don't copy GUID
Heinrich Schuchardt [Thu, 14 Oct 2021 23:31:02 +0000 (01:31 +0200)]
efi_loader: efi_dp_from_lo() don't copy GUID

Instead of copying a GUID and then using a pointer to the copy for calling
guidcmp(), just pass the pointer to the orginal GUID.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
3 years agoefi_loader: Fix loaded image alignment
Ilias Apalodimas [Mon, 11 Oct 2021 12:10:23 +0000 (15:10 +0300)]
efi_loader: Fix loaded image alignment

We are ignoring the alignment communicated via the PE/COFF header.
Starting 5.10 the Linux kernel will loudly complain about it. For more
details look at [1] (in linux kernel).

So add a function that can allocate aligned EFI memory and use it for our
relocated loaded image.

[1] c32ac11da3f83 ("efi/libstub: arm64: Double check image alignment at entry")

Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Tested-by: Vincent Stehlé <vincent.stehle@arm.com>
Acked-by: Ard Biesheuvel <ardb@kernel.org>
Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
3 years agoefi_loader: don't load Shim's MOK database from file
Heinrich Schuchardt [Wed, 6 Oct 2021 12:10:14 +0000 (14:10 +0200)]
efi_loader: don't load Shim's MOK database from file

When using a file to store UEFI variables we must make sure that secure
boot related variables are not loaded from this file. With commit
9ef82e29478c ("efi_loader: don't load signature database from file")
this has already been implemented for variables defined in the UEFI
specification. As most Linux distributions use Shim we should do the same
for Shim's MOK database.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
3 years agox86: Show some EFI info with the bdinfo command
Simon Glass [Sat, 25 Sep 2021 00:30:21 +0000 (18:30 -0600)]
x86: Show some EFI info with the bdinfo command

It is useful to see some basic EFI info with the command as it forms part
of the information about a board.

Add a hook for this and show the table address as a start.

While here, fix an invalid cast in setup_efi_info(). Note that this
function is using a data structure defined by Linux so we cannot change
it. Also note that ulong is used since this is the standard in U-Boot
(>6k uses), despite there being quite a bit of the more verbose uintptr_t
(930 uses).

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
3 years agox86: Create a new header for EFI
Simon Glass [Sat, 25 Sep 2021 00:30:20 +0000 (18:30 -0600)]
x86: Create a new header for EFI

The setup routines are called from zimage but don't really belong in the
zimage header. Add a new EFI header to house these. Add comments so it is
clear what the functions do.

Note that these functions are x86-specific. The zimage business is not
used on other architectures.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
3 years agox86: Keep symbol information in u-boot ELF file
Simon Glass [Sat, 25 Sep 2021 00:30:19 +0000 (18:30 -0600)]
x86: Keep symbol information in u-boot ELF file

At present this information is stripped when linking. It is useful to keep
it around. Strip it from the .efi files instead.

Signed-off-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
3 years agoefi: Add a separate maintainer entry for the app
Simon Glass [Sat, 25 Sep 2021 00:30:18 +0000 (18:30 -0600)]
efi: Add a separate maintainer entry for the app

Separate this out slightly from the payload, with a new entry.

We might consider renaming EFI PAYLOAD to EFI LOADER, but that would
require quite a lot of file changes.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
3 years agoefi_loader: Drop code that doesn't work with driver model
Simon Glass [Sat, 25 Sep 2021 00:30:17 +0000 (18:30 -0600)]
efi_loader: Drop code that doesn't work with driver model

This code should never have been added as it builds a new feature on top
of legacy code. This has already been improved with the dependency on BLK.

Add a dependency on DM_ETH also, to avoid needing to deal with this old
code.

Boards which want EFI_LOADER should migrate to driver model first.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
3 years agoefi_selftest: Receive the packets until the receive buffer is empty
Masami Hiramatsu [Thu, 16 Sep 2021 08:53:44 +0000 (17:53 +0900)]
efi_selftest: Receive the packets until the receive buffer is empty

Repeatedly receive the packets until the receive buffer is empty.
If the buffer is empty, EFI_SIMPLE_NETWORK_PROTOCOL::Receive()
returns EFI_NOT_READY. We don't need to use the wait_for_event()
every time.

Signed-off-by: Masami Hiramatsu <masami.hiramatsu@linaro.org>
Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
3 years agoefi_selftest: Do not check EFI_SIMPLE_NETWORK_RECEIVE_INTERRUPT
Masami Hiramatsu [Thu, 16 Sep 2021 08:53:36 +0000 (17:53 +0900)]
efi_selftest: Do not check EFI_SIMPLE_NETWORK_RECEIVE_INTERRUPT

Do not check EFI_SIMPLE_NETWORK_RECEIVE_INTERRUPT in packet
receiving loop. This depends on the implementation and not
related to whether the packet can be received or not.

Whether the received packets are available or not is ensured
by wait_for_packet, and that is already done in the loop.

Signed-off-by: Masami Hiramatsu <masami.hiramatsu@linaro.org>
Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
3 years agoefi_selftest: Use EFI_SIMPLE_NETWORK_PROTOCOL::GetStatus() for media check
Masami Hiramatsu [Thu, 16 Sep 2021 08:53:27 +0000 (17:53 +0900)]
efi_selftest: Use EFI_SIMPLE_NETWORK_PROTOCOL::GetStatus() for media check

According to the UEF specification v2.9, the main purpose of the
EFI_SIMPLE_NETWORK_PROTOCOL::GetStatus() is for checking the link
status via EFI_SIMPLE_NETWORK_MODE::MediaPresent.
So this uses net->get_status() for checking the link status before
running network test.

Signed-off-by: Masami Hiramatsu <masami.hiramatsu@linaro.org>
Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
3 years agoconfigs: add mkeficapsule to tools-only_defconfig
Heinrich Schuchardt [Thu, 9 Sep 2021 05:27:10 +0000 (07:27 +0200)]
configs: add mkeficapsule to tools-only_defconfig

mkeficapsule is used to create capsules for UEFI firmware update.
To ease inclusion into U-Boot tools packages of Linux distributions we
should add it to the tools-only_defconfig.

Provide dummy values for CONFIG_AVB_BUF_ADDR, CONFIG_AVB_BUF_SIZE to
satisfy Kconfig.

Suggested-by: Vagrant Cascadian <vagrant@debian.org>
Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
3 years agodoc: Remove obsolete README.440-DDR-performance file
Thomas Huth [Tue, 19 Oct 2021 07:25:52 +0000 (09:25 +0200)]
doc: Remove obsolete README.440-DDR-performance file

The PPC 440 support has been removed in commit 98f705c9cefd
("powerpc: remove 4xx support") already, so this file is
certainly not required anymore.

Signed-off-by: Thomas Huth <thuth@redhat.com>
Reviewed-by: Stefan Roese <sr@denx.de>
3 years agodoc: add python3-pkg-resources to build dependencies
Heinrich Schuchardt [Mon, 11 Oct 2021 12:59:48 +0000 (14:59 +0200)]
doc: add python3-pkg-resources to build dependencies

tools/binman/control.py imports Python package pkg_resources.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
3 years agodoc: add system reset to API documentation
Heinrich Schuchardt [Thu, 23 Sep 2021 09:06:16 +0000 (11:06 +0200)]
doc: add system reset to API documentation

Complete the Sphinx documentation in include/sysreset.h
Add the include to the generated HTML documentation of the U-Boot API.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
3 years agodoc: require Sphinx 3.4.3
Heinrich Schuchardt [Thu, 21 Oct 2021 01:17:51 +0000 (03:17 +0200)]
doc: require Sphinx 3.4.3

For enums documented according to the requirements in chapter
"Structure, union, and enumeration documentation" of
https://www.kernel.org/doc/html/latest/doc-guide/kernel-doc.html
errors occur with Sphinx 2.4.4 which disappear with Sphinx 3.4.3,
e.g.
/builds/u-boot/custodians/u-boot-efi/doc/api/sysreset:6:
./include/sysreset.h:60:Unknown interpreted text role "enum".

Sphinx 3.4.3 is the version used by Debian in the current release.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
3 years agoMerge tag 'u-boot-imx-20211020' of https://source.denx.de/u-boot/custodians/u-boot-imx
Tom Rini [Wed, 20 Oct 2021 18:24:09 +0000 (14:24 -0400)]
Merge tag 'u-boot-imx-20211020' of https://source.denx.de/u-boot/custodians/u-boot-imx

u-boot-imx-20211020
-------------------

First PR from u-boot-imx for 2022.01

CI: https://source.denx.de/u-boot/custodians/u-boot-imx/-/pipelines/9535

- new board: kontron-sl-mx8mm
- imx8m:
- fix secure boot
- imx ESDHC: fixes
- i.MX53: Support thum2, bmode and fixes for Menlo board
  usbarmory switch to Ethernet driver model
- imx6 :
- DDR calibration for Toradex boards
- imx7:
- Fixes
- Updated gateworks boards (ventana / venice)

# gpg verification failed.

3 years agoMerge https://source.denx.de/u-boot/custodians/u-boot-riscv
Tom Rini [Wed, 20 Oct 2021 18:23:08 +0000 (14:23 -0400)]
Merge https://source.denx.de/u-boot/custodians/u-boot-riscv

- Assorted warning fixes, io read/write bugfix

3 years agoimx8mm-cl-iot-gate-optee: align config with Kconfig
Stefano Babic [Wed, 20 Oct 2021 10:13:44 +0000 (12:13 +0200)]
imx8mm-cl-iot-gate-optee: align config with Kconfig

Due to missing configs, CI goes in deadlock until an OOM is tracked. Add
CONFIG_SYS_LOAD_ADDR and replace CONFIG_SYS_EXTRA_OPTIONS with
CONFIG_IMX_CONFIG.

Signed-off-by: Stefano Babic <sbabic@denx.de>
CC: Ying-Chun Liu (PaulLiu)" <paul.liu@linaro.org>
CC: Fabio Estevam <festevam@denx.de>
3 years agokontron-sl-mx8mm: fix missing configs and deadlock in CI
Stefano Babic [Wed, 20 Oct 2021 09:55:25 +0000 (11:55 +0200)]
kontron-sl-mx8mm: fix missing configs and deadlock in CI

Even if board can be successfuly built, CI goes in deadlock (see thread
on https://www.mail-archive.com/u-boot@lists.denx.de/msg419663.html).
This is caused by SYS_CONFIG set in header file and because defconfig
for the board is out of sync with Kconfig. As result, buildman goes on
to read from stdin until an OOM is reached.

Signed-off-by: Stefano Babic <sbabic@denx.de>
CC: Frieder Schrempf <frieder.schrempf@kontron.de>
3 years agobuildman: Detect Kconfig loops
Simon Glass [Wed, 20 Oct 2021 03:43:24 +0000 (21:43 -0600)]
buildman: Detect Kconfig loops

Hex and int Kconfig options are supposed to have defaults. This is so we
can configure U-Boot without having to enter particular values for the
items that don't have specific values in the board's defconfig file.

If this rule is not followed, then introducing a new Kconfig can produce
a loop like this:

   Break things (BREAK_ME) [] (NEW)
   Error in reading or end of file.

   Break things (BREAK_ME) [] (NEW)
   Error in reading or end of file.

The continues forever since buildman passes /dev/null to 'conf', and
the build system just tries again. Eventually there is so much output that
buildman runs out of memory.

We can detect this situation by looking for a symbol (like 'BREAK_ME')
which has no default (the '[]' above) and is marked as new. If this
appears multiple times in the output, we know something is wrong.

Add a filter function for the output which detects this situation. Allow
it to return True to terminate the process. Implement this termination in
cros_subprocess.

With this we get a nice message:

   buildman --board sandbox -T0
   Building current source for 1 boards (0 threads, 32 jobs per thread)
      sandbox:  w+   sandbox
   +.config:66:warning: symbol value '' invalid for BREAK_ME
   +
   +Error in reading or end of file.
   +make[3]: *** [scripts/kconfig/Makefile:75: syncconfig] Terminated
   +make[2]: *** [Makefile:569: syncconfig] Terminated
   +make: *** [Makefile:177: sub-make] Terminated
   +(** did you define an int/hex Kconfig with no default? **)

Signed-off-by: Simon Glass <sjg@chromium.org>
3 years agobuildman: Write output even on fatal error
Simon Glass [Wed, 20 Oct 2021 03:43:23 +0000 (21:43 -0600)]
buildman: Write output even on fatal error

At present buildman does not write any output (to the 'out' and 'err)
files if the build terminates with a fatal error. This is to avoid adding
lots of spam to the logs.

However there are times when this is actually useful, such as when the
build fails for an obscure reason such as a Kconfig loop.

Update the logic to always write the output, so that the user gets a clue
as to what is happening.

Signed-off-by: Simon Glass <sjg@chromium.org>
3 years agoriscv: Avoid io read/write cause wrong result
Nick Hu [Mon, 18 Oct 2021 03:50:05 +0000 (11:50 +0800)]
riscv: Avoid io read/write cause wrong result

io read/write may cause wrong result because they may read/write data
from/to register instead of memory. Add 'volatile' to avoid it.

Signed-off-by: Nick Hu <nick.hu@sifive.com>
Reviewed-by: Leo Yu-Chi Liang <ycliang@andestech.com>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
3 years agoboard: sifive: Fix -Wint-to-pointer-cast warning
Bin Meng [Sun, 12 Sep 2021 03:15:16 +0000 (11:15 +0800)]
board: sifive: Fix -Wint-to-pointer-cast warning

The following warning is seen in unleashed.c in a 32-bit build:

  warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]

Cast with uintptr_t.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Reviewed-by: Leo Yu-Chi Liang <ycliang@andestech.com>
3 years agoram: sifive: Fix -Wint-to-pointer-cast warnings
Bin Meng [Sun, 12 Sep 2021 03:15:15 +0000 (11:15 +0800)]
ram: sifive: Fix -Wint-to-pointer-cast warnings

The following warning is seen in sifive_ddr.c in a 32-bit build:

  warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]

Change to use dev_read_addr_index_ptr().

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Reviewed-by: Leo Yu-Chi Liang <ycliang@andestech.com>
3 years agonet: macb: Fix -Wint-to-pointer-cast warnings
Bin Meng [Sun, 12 Sep 2021 03:15:14 +0000 (11:15 +0800)]
net: macb: Fix -Wint-to-pointer-cast warnings

The following warning is seen in macb.c in a 32-bit build:

  warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]

Change to use dev_read_addr_index_ptr(), or cast with uintptr_t.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Reviewed-by: Ramon Fried <rfried.dev@gmail.com>
3 years agodm: Provide dev_read_addr_index_ptr() wrapper
Bin Meng [Sun, 12 Sep 2021 03:15:13 +0000 (11:15 +0800)]
dm: Provide dev_read_addr_index_ptr() wrapper

Like dev_read_addr_ptr(), provide a wrapper for the indexed version.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Reviewed-by: Leo Yu-Chi Liang <ycliang@andestech.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
3 years agodm: core: Add a new API devfdt_get_addr_index_ptr()
Bin Meng [Sun, 12 Sep 2021 03:15:12 +0000 (11:15 +0800)]
dm: core: Add a new API devfdt_get_addr_index_ptr()

At present there is only devfdt_get_addr_ptr() which only returns
the first <addr, size> pair in the 'reg' property. Add a new API
devfdt_get_addr_index_ptr() to return the indexed pointer.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Reviewed-by: Leo Yu-Chi Liang <ycliang@andestech.com>
3 years agoi2c: ocores: Fix -Wint-to-pointer-cast warning
Bin Meng [Sun, 12 Sep 2021 03:15:11 +0000 (11:15 +0800)]
i2c: ocores: Fix -Wint-to-pointer-cast warning

The following warning is seen in ocores_i2c.c in a 32-bit build:

  warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]

Change to use dev_read_addr_ptr().

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Reviewed-by: Leo Yu-Chi Liang <ycliang@andestech.com>
3 years agogpio: sifive: Fix -Wint-to-pointer-cast warning
Bin Meng [Sun, 12 Sep 2021 03:15:10 +0000 (11:15 +0800)]
gpio: sifive: Fix -Wint-to-pointer-cast warning

dev_read_addr() returns a value of type fdt_addr_t which is a 64-bit
address and plat->base is a pointer. In a 32-bit build, this causes the
following warning seen when building sifive-gpio.c:

  warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]

Change to use dev_read_addr_ptr().

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Reviewed-by: Leo Yu-Chi Liang <ycliang@andestech.com>
3 years agoclk: sifive: Fix -Wint-to-pointer-cast warning
Bin Meng [Sun, 12 Sep 2021 03:15:09 +0000 (11:15 +0800)]
clk: sifive: Fix -Wint-to-pointer-cast warning

dev_read_addr() returns a value of type fdt_addr_t which is a 64-bit
address and pd->va is a pointer. In a 32-bit build, this causes the
following warning seen when building sifive-prci.c:

  warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]

Change to use dev_read_addr_ptr().

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Reviewed-by: Leo Yu-Chi Liang <ycliang@andestech.com>
3 years agocache: sifive: Fix -Wint-to-pointer-cast warning
Bin Meng [Sun, 12 Sep 2021 03:15:08 +0000 (11:15 +0800)]
cache: sifive: Fix -Wint-to-pointer-cast warning

The following warning is seen in cache-sifive-ccache.c in a 32-bit build:

  warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]

Fix by casting it with uintptr_t.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Reviewed-by: Leo Yu-Chi Liang <ycliang@andestech.com>
3 years agoboard: sifive: Fix a potential build warning in board_fdt_blob_setup()
Bin Meng [Sat, 11 Sep 2021 14:31:23 +0000 (22:31 +0800)]
board: sifive: Fix a potential build warning in board_fdt_blob_setup()

Commit 47d73ba4f4a4 ("board: sifive: overwrite board_fdt_blob_setup in u-boot proper")
added a board-specific implementation of board_fdt_blob_setup() which
takes a pointer as the return value, but it does not return anything
if CONFIG_OF_SEPARATE is not enabled. This will cause a build warning
seen when testing booting S-mode U-Boot directly from QEMU, per the
instructions in [1]:

  board/sifive/unleashed/unleashed.c: In function ‘board_fdt_blob_setup’:
  board/sifive/unleashed/unleashed.c:125:1: warning: control reaches end of non-void function [-Wreturn-type]

Return &_end as the default case.

[1] https://qemu.readthedocs.io/en/latest/system/riscv/sifive_u.html#running-u-boot

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Reviewed-by: Leo Yu-Chi Liang <ycliang@andestech.com>
Reviewed-by: Rick Chen <rick@andestech.com>
3 years agoMerge branch '2021-10-19-assorted-changes'
Tom Rini [Wed, 20 Oct 2021 00:45:12 +0000 (20:45 -0400)]
Merge branch '2021-10-19-assorted-changes'

- Assorted minor fixes and a new GPIO driver

3 years agoclk: fixed_rate: add dummy disable() function
Samuel Holland [Wed, 13 Oct 2021 00:40:29 +0000 (19:40 -0500)]
clk: fixed_rate: add dummy disable() function

commit 6bf6d81c1112 ("clk: fixed_rate: add dummy enable() function")
implemented .enable, so fixed rate clocks can be used where drivers
might call clk_enable(). Implement the .disable op for the same reason;
some drivers, e.g. USB PHYs, may attempt to disable clocks at runtime.

Signed-off-by: Samuel Holland <samuel@sholland.org>
3 years agoarm: total_compute: increase DRAM to 8GB
Usama Arif [Tue, 12 Oct 2021 12:43:16 +0000 (13:43 +0100)]
arm: total_compute: increase DRAM to 8GB

The extra 6GB start at 0x8080000000.

Signed-off-by: Usama Arif <usama.arif@arm.com>
3 years agotools: Stop re-defining -std= when building tools
Tom Rini [Mon, 11 Oct 2021 15:11:41 +0000 (11:11 -0400)]
tools: Stop re-defining -std= when building tools

While we intentionally set -std=gnu11 for building host tools, and have
for quite some time, we never dropped -std=gnu99 from tools/Makefile.
This resulted in passing -std=gnu11 ... -std=gnu99 when building, and
gnu99 would win.  This in turn would result now in warnings such as:
tools/mkeficapsule.c:25:15: warning: redefinition of typedef 'u32' is a C11 feature [-Wtypedef-redefinition]
typedef __u32 u32;
              ^

Signed-off-by: Tom Rini <trini@konsulko.com>
3 years agoconfigs: am335x_evm: enable CONFIG_CLK_TI_CTRL
Amjad Ouled-Ameur [Mon, 11 Oct 2021 12:27:38 +0000 (14:27 +0200)]
configs: am335x_evm: enable CONFIG_CLK_TI_CTRL

This enables the clock controller driver support on TI's SoCs. This will
fix this GPIO issue at boot time:
request_and_set_gpio: Unable to request GPIO_PR1_MII_CTRL
request_and_set_gpio: Unable to request GPIO_MUX_MII_CTRL
request_and_set_gpio: Unable to request GPIO_FET_SWITCH_CTRL
request_and_set_gpio: Unable to request GPIO_PHY_RESET

This issue comes from the fact that the clock controller is not probed.

Enable the TI's clock controller driver support to solve this.

Signed-off-by: Amjad Ouled-Ameur <aouledameur@baylibre.com>
3 years agodrivers/gpio: add support for MAX7320 i2c i/o expander
Hannes Schmelzer [Fri, 1 Oct 2021 11:37:57 +0000 (13:37 +0200)]
drivers/gpio: add support for MAX7320 i2c i/o expander

This commit adds support for the MAX7320 (and clones) gpio expander.

Signed-off-by: Hannes Schmelzer <hannes.schmelzer@br-automation.com>
3 years agoMakefile: Only build dtc if needed
Simon Glass [Wed, 22 Sep 2021 17:34:44 +0000 (11:34 -0600)]
Makefile: Only build dtc if needed

At present U-Boot always builds dtc if CONFIG_OF_CONTROL is defined, even
when DTC is provided. The built dtc is not actually used, so this is a
waste of time.

Update the Makefile logic to build dtc only if one is not provided to the
build with the DTC variable. Add documentation to explain this.

This saves about 3.5 seconds of elapsed time on a clean build of
sandbox_spl for me.

Signed-off-by: Simon Glass <sjg@chromium.org>
3 years agoRevert "kbuild: remove unused dtc-version.sh script"
Simon Glass [Wed, 22 Sep 2021 17:34:43 +0000 (11:34 -0600)]
Revert "kbuild: remove unused dtc-version.sh script"

We need this to make building dtc optional. It makes no sense to build our
own dtc if the system one works correctly.

This reverts commit ddb87a0b40262ff99d675e946f57427642303938.

Signed-off-by: Simon Glass <sjg@chromium.org>
3 years agoMerge branch '2021-10-18-OF_xxx-cleanup'
Tom Rini [Tue, 19 Oct 2021 13:07:07 +0000 (09:07 -0400)]
Merge branch '2021-10-18-OF_xxx-cleanup'

- Clean things up and rework such that we can drop OF_PRIOR_STAGE

3 years agoARM: imx: mx5: Add altbootcmd and resets to M53Menlo
Marek Vasut [Sat, 11 Sep 2021 22:40:00 +0000 (00:40 +0200)]
ARM: imx: mx5: Add altbootcmd and resets to M53Menlo

Bulletproof the default boot command with reset statements in case
any command in the chain would fail. In case a failure were to happen,
the board will reset, increment boot counter and retry the procedure.
In case the failures persist and the boot counter reaches the bootlimit,
U-Boot starts altbootcmd instead of the default bootcmd boot command.

The altbootcmd swaps the default boot partition for the other boot
partition, which is an identical copy or an older copy, and tries
booting from that one instead.

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Stefano Babic <sbabic@denx.de>
3 years agoARM: imx: mx5: Enable Thumb2 build on MX53 Menlo board
Marek Vasut [Sat, 11 Sep 2021 22:39:59 +0000 (00:39 +0200)]
ARM: imx: mx5: Enable Thumb2 build on MX53 Menlo board

Build U-Boot in Thumb2 mode for M53Menlo board, this makes better
use of the CPU since the instruction density is higher.

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Stefano Babic <sbabic@denx.de>
3 years agoARM: imx: mx5: Enable BMODE command on MX53 Menlo board
Marek Vasut [Sat, 11 Sep 2021 22:39:58 +0000 (00:39 +0200)]
ARM: imx: mx5: Enable BMODE command on MX53 Menlo board

The board can do primary/secondary boot switching, enable the bmode command.

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Stefano Babic <sbabic@denx.de>
3 years agoboard: ea: mx7ulp_com: move setting CONFIG_BOOTCOMMAND to defconfig
Ricardo Salveti [Thu, 26 Aug 2021 11:04:24 +0000 (14:04 +0300)]
board: ea: mx7ulp_com: move setting CONFIG_BOOTCOMMAND to defconfig

Move setting CONFIG_BOOTCOMMAND to the mx7ulp_com_defconfig file.
It also allows replacing the default CONFIG_BOOTCOMMAND without
code modification.

Signed-off-by: Ricardo Salveti <ricardo@foundries.io>
Signed-off-by: Oleksandr Suvorov <oleksandr.suvorov@foundries.io>
Reviewed-by: Fabio Estevam <festevam@gmail.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
3 years agosmegw01: Select IMX_HAB
Fabio Estevam [Tue, 24 Aug 2021 10:58:48 +0000 (07:58 -0300)]
smegw01: Select IMX_HAB

Select IMX_HAB to allow secure boot.

Signed-off-by: Fabio Estevam <festevam@denx.de>
3 years agosmegw01: Add redundant environment support
Fabio Estevam [Tue, 24 Aug 2021 10:58:47 +0000 (07:58 -0300)]
smegw01: Add redundant environment support

Add redundant environment support as it is required
by SWUpdate.

While at it, place the CONFIG_ENV_OFFSET at 0x100000 to allow
more headroom.

Signed-off-by: Fabio Estevam <festevam@denx.de>
3 years agoapalis-imx6: use dynamic DDR calibration
Francesco Dolcini [Tue, 31 Aug 2021 09:46:06 +0000 (11:46 +0200)]
apalis-imx6: use dynamic DDR calibration

Enable dynamic DDR calibration to have a reliable behavior on edge
temperatures conditions.

Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
Signed-off-by: Francesco Dolcini <francesco.dolcini@toradex.com>
3 years agocolibri-imx6: use dynamic DDR calibration
Francesco Dolcini [Tue, 31 Aug 2021 09:46:05 +0000 (11:46 +0200)]
colibri-imx6: use dynamic DDR calibration

Enable dynamic DDR calibration to have a reliable behavior on edge
temperatures conditions.

Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
Signed-off-by: Francesco Dolcini <francesco.dolcini@toradex.com>
3 years agotreewide: Remove OF_PRIOR_STAGE
Ilias Apalodimas [Mon, 11 Oct 2021 21:00:15 +0000 (00:00 +0300)]
treewide: Remove OF_PRIOR_STAGE

The previous patches removed OF_PRIOR_STAGE from the last consumers of the
Kconfig option.  Cleanup any references to it in documentation,  code and
configuration options.

Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
3 years agoboard: arm: Remove OF_PRIOR_STAGE from the remaining Arm boards
Ilias Apalodimas [Mon, 11 Oct 2021 21:00:14 +0000 (00:00 +0300)]
board: arm: Remove OF_PRIOR_STAGE from the remaining Arm boards

At some point back in 2018 prior_stage_fdt_address and OF_PRIOR_STAGE got
introduced,  in order to support a DTB handed over by an earlier stage boo
loader.  However we have another option in the Kconfig (OF_BOARD) which has
identical semantics.

So let's remove the option in an effort to simplify U-Boot's config and DTB
management,  and use OF_BOARD instead.

Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
3 years agoriscv: Remove OF_PRIOR_STAGE from RISC-V boards
Ilias Apalodimas [Mon, 11 Oct 2021 21:00:13 +0000 (00:00 +0300)]
riscv: Remove OF_PRIOR_STAGE from RISC-V boards

At some point back in 2018 prior_stage_fdt_address and OF_PRIOR_STAGE got
introduced,  in order to support a DTB handed over by an earlier stage boo
loader.  However we have another option in the Kconfig (OF_BOARD) which has
identical semantics.

On RISC-V some of the boards pick up the DTB from a1 and copy it in their
private gd_t.  Apart from that they copy it to prior_stage_fdt_address,  if
the Kconfig option is selected, which is unnecessary.

So let's switch the config option for those boards to OF_BOARD and define
the required board_fdt_blob_setup() for them.

Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Leo Yu-Chi Liang <ycliang@andestech.com>
3 years agoMerge tag 'u-boot-rockchip-20211015' of https://source.denx.de/u-boot/custodians...
Tom Rini [Mon, 18 Oct 2021 01:13:49 +0000 (21:13 -0400)]
Merge tag 'u-boot-rockchip-20211015' of https://source.denx.de/u-boot/custodians/u-boot-rockchip

- Fix for Rockchip mmc HS400 mode;
- Fix for px30 board Odroid Go;
- rockchip_sfc update;
- rk3568 clk update;
- doc fix;

3 years agoMerge branch 'master' of https://source.denx.de/u-boot/custodians/u-boot-tegra
Tom Rini [Fri, 15 Oct 2021 19:58:16 +0000 (15:58 -0400)]
Merge branch 'master' of https://source.denx.de/u-boot/custodians/u-boot-tegra

On merge, fixup order of fdtdec_add_reserved_memory parameters in
arch/arm/cpu/armv8/fsl-layerscape/soc.c

Signed-off-by: Tom Rini <trini@konsulko.com>
3 years agoMerge branch '2021-10-15-Kconfig-migrations'
Tom Rini [Fri, 15 Oct 2021 17:45:15 +0000 (13:45 -0400)]
Merge branch '2021-10-15-Kconfig-migrations'

- Assorted Kconfig migration patches

3 years agoconfigs: Resync with savedefconfig
Tom Rini [Fri, 15 Oct 2021 12:06:20 +0000 (08:06 -0400)]
configs: Resync with savedefconfig

Resync all defconfig files using moveconfig.py

Signed-off-by: Tom Rini <trini@konsulko.com>
3 years agoConvert CONFIG_USB_EHCI_IS_TDI to Kconfig
Marek Behún [Sat, 9 Oct 2021 13:27:35 +0000 (15:27 +0200)]
Convert CONFIG_USB_EHCI_IS_TDI to Kconfig

On mvebu this is defined if and only if !ARM64.

Otherwise it is defined for boards with ARCH_MX23, ARCH_TEGRA and
ARCH_ZYNQ, and also for SOC_AR934X (tplink_wdr4300).

Signed-off-by: Marek Behún <marek.behun@nic.cz>
3 years agoDrop CONFIG_USB_EHCI_KIRKWOOD
Marek Behún [Sat, 9 Oct 2021 13:27:34 +0000 (15:27 +0200)]
Drop CONFIG_USB_EHCI_KIRKWOOD

This config option doesn't do anything.

nas220 uses USB_EHCI_MARVELL.

Signed-off-by: Marek Behún <marek.behun@nic.cz>