]> git.dujemihanovic.xyz Git - u-boot.git/log
u-boot.git
9 months agoMerge patch series "An effort to bring DT bindings compliance within U-Boot"
Tom Rini [Fri, 1 Mar 2024 03:24:23 +0000 (22:24 -0500)]
Merge patch series "An effort to bring DT bindings compliance within U-Boot"

Sumit Garg <sumit.garg@linaro.org> says:

Prerequisite
------------

This patch series requires devicetree-rebasing git repo to be added as a
subtree to the main U-Boot repo via:

$ git subtree add --prefix dts/upstream \
      https://git.kernel.org/pub/scm/linux/kernel/git/devicetree/devicetree-rebasing.git \
      v6.7-dts --squash

Background
----------

This effort started while I was reviewing patch series corresponding to
Qcom platforms [1] which was about to import modified devicetree source
files from Linux kernel. I suppose keeping devicetree files sync with
Linux kernel without any DT bindings schema validation has been a pain
for U-Boot SoC/platform maintainers. There has been past discussions
about a single DT repo but that hasn't come up and Linux kernel remained
the place where DT source files as well as bindings are placed and
maintained.

However, Linux kernel DT maintainers proposed [2] for U-Boot to rather
use devicetree-rebasing repo [3] which is a forked copy from Linux
kernel for DT source files as well as bindings. It is tagged at every
Linux kernel major release or intermideate release candidates. So here I
have tried to reuse that to bring DT bingings compliance as well as a
standard way to maintain a regular sync of DT source files with Linux
kernel.

In order to maintain devicetree files sync, U-Boot will maintains a Git
subtree for devicetee-rebasing repo as `dts/upstream` sub-directory.
U-Boot will regularly sync `dts/upstream/` subtree whenever the next window
opens with the next available kernel major release.
`dts/update-dts-subtree.sh` script provides a wrapper around git subtree
pull command, usage from the top level U-Boot source tree, run:

$ ./dts/update-dts-subtree.sh pull <devicetree-rebasing-release-tag>

If required it is also possible to cherry-pick fixes from
devicetree-rebasing tree prior to next sync, usage:

$ ./dts/update-dts-subtree.sh pick <devicetree-rebasing-commit-id>

The RFC/prototype for this series has been discussed with Linux DT
maintainers as well as U-Boot maintainers here [4]. Now we would like to
reach out to wider U-Boot community to seek feedback.

[1] https://lore.kernel.org/all/CAFA6WYMLUD9cnkr=R0Uur+1UeTMkKjM2zDdMJtXb3nmrLk+pDg@mail.gmail.com/
[2] https://lore.kernel.org/all/CAL_JsqKEjv2tSGmT+0ZiO7_qbBfhTycbGnhJhYpKDFzfO9jzDg@mail.gmail.com/
[3] https://git.kernel.org/pub/scm/linux/kernel/git/devicetree/devicetree-rebasing.git/
[4] https://github.com/u-boot/u-boot/pull/451

Changes
-------

Traditionally, U-Boot placed copies of devicetree source files from Linux
kernel into `arch/<arch>/dts/<name>.dts` which can be selected via setting
"<name>" when prompted for `DEFAULT_DEVICE_TREE` by Kconfig.

SoC/board maintainers are encouraged to migrate to use synced copies from
`dts/upstream/src/<arch>/<vendor>`. To do that enable `OF_UPSTREAM` for the
SoC being used via Kconfig and set up "<vendor>/<name>" when prompted for
`DEFAULT_DEVICE_TREE` by Kconfig.

An example have been shown for Amlogic meson-gxbb SoC and corresponding
derived boards via patch #10 and #11.

Devicetree bindings schema checks
---------------------------------

With devicetee-rebasing Git subtree, the devicetree bindings are also
regularly synced with Linux kernel as `dts/upstream/Bindings/`
sub-directory. This allows U-Boot to run devicetree bindings schema checks
which will bring compliance to U-Boot core/drivers regarding usage of
devicetree.

Dependencies
------------

The DT schema project must be installed in order to validate the DT schema
binding documents and validate DTS files using the DT schema. The DT schema
project can be installed with pip:

$ pip3 install dtschema

Note that 'dtschema' installation requires 'swig' and Python development
files installed first. On Debian/Ubuntu systems:

$ apt install swig python3-dev

Several executables (dt-doc-validate, dt-mk-schema, dt-validate) will be
installed. Ensure they are in your PATH (~/.local/bin by default).

Recommended is also to install yamllint (used by dtschema when present).

$ apt install yamllint

Running checks
--------------

In order to perform validation of DTB files, use the ``dtbs_check`` target:

$ make dtbs_check

It is also possible to run checks with a subset of matching schema files by
setting the ``DT_SCHEMA_FILES`` variable to 1 or more specific schema files
or patterns (partial match of a fixed string). Each file or pattern should
be separated by ':'.

$ make dtbs_check DT_SCHEMA_FILES=trivial-devices.yaml:rtc.yaml
$ make dtbs_check DT_SCHEMA_FILES=/gpio/
$ make dtbs_check DT_SCHEMA_FILES=trivial-devices.yaml

9 months agodts: meson-gxbb: Drop redundant devicetree files
Sumit Garg [Thu, 22 Feb 2024 09:36:07 +0000 (15:06 +0530)]
dts: meson-gxbb: Drop redundant devicetree files

Since meson-gxbb based boards switched to using upstream DT, so drop
redundant files from arch/arm/dts directory. Only *-u-boot.dtsi files
kept in arch/arm/dts directory for these boards.

Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Signed-off-by: Sumit Garg <sumit.garg@linaro.org>
9 months agodts: meson-gxbb: Switch to using upstream DT
Sumit Garg [Thu, 22 Feb 2024 09:36:06 +0000 (15:06 +0530)]
dts: meson-gxbb: Switch to using upstream DT

Although there were still some variations in board DTS files based on
meson-gxbb SoC but I think those were minor differences from upstream
and shouldn't impact boot on these devices.

So enable OF_UPSTREAM to use upstream DT and add amlogic/ prefix to the
DEFAULT_DEVICE_TREE. And thereby directly build DTB from dts/upstream/src/
including *-u-boot.dtsi files from arch/$(ARCH)/dts/ directory.

Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Sumit Garg <sumit.garg@linaro.org>
9 months agoMAINTAINERS: Add myself as devicetree-rebasing maintainer
Sumit Garg [Thu, 22 Feb 2024 09:36:05 +0000 (15:06 +0530)]
MAINTAINERS: Add myself as devicetree-rebasing maintainer

Add myself as devicetree-rebasing maintainer.

Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Signed-off-by: Sumit Garg <sumit.garg@linaro.org>
9 months agodoc: devicetree: Updates for devicetree-rebasing subtree
Sumit Garg [Thu, 22 Feb 2024 09:36:04 +0000 (15:06 +0530)]
doc: devicetree: Updates for devicetree-rebasing subtree

Encourage SoC/board maintainers to migrate to using devicetree-rebasing
subtree and maintain a regular sync with Linux kernel devicetree files
and bindings.

Along with that add documentation regarding how to run DT bindings
schema checks.

Signed-off-by: Sumit Garg <sumit.garg@linaro.org>
9 months agodoc: devicetree: Align documentation to use Kconfig options
Sumit Garg [Thu, 22 Feb 2024 09:36:03 +0000 (15:06 +0530)]
doc: devicetree: Align documentation to use Kconfig options

Since U-Boot switched away from manual CONFIG_* defines to Kconfig
options, align devicetree documentation accordingly.

Signed-off-by: Sumit Garg <sumit.garg@linaro.org>
9 months agodts: Add script to uprev dts/upstream subtree
Sumit Garg [Thu, 22 Feb 2024 09:36:02 +0000 (15:06 +0530)]
dts: Add script to uprev dts/upstream subtree

dts/update-dts-subtree.sh is just a wrapper around git subtree commands.
Usage from the top level U-Boot source tree, run:

$ ./dts/update-dts-subtree.sh pull <release-tag>
$ ./dts/update-dts-subtree.sh pick <commit-id>

Signed-off-by: Sumit Garg <sumit.garg@linaro.org>
9 months agodts: Add alternative location for upstream DTB builds
Sumit Garg [Thu, 22 Feb 2024 09:36:01 +0000 (15:06 +0530)]
dts: Add alternative location for upstream DTB builds

Allow platform owners to mirror devicetree files from devitree-rebasing
directory into dts/upstream/src/$(ARCH) (special case for arm64). Then
build then along with any *-u-boot.dtsi file present in arch/$(ARCH)/dts
directory. Also add a new Makefile for arm64.

This will help easy migration for platforms which currently are compliant
with upstream Linux kernel devicetree files.

Signed-off-by: Sumit Garg <sumit.garg@linaro.org>
9 months agoMakefile: Allow upstream DT subtree to provide DT includes
Sumit Garg [Thu, 22 Feb 2024 09:36:00 +0000 (15:06 +0530)]
Makefile: Allow upstream DT subtree to provide DT includes

Allow platforms to reuse DT headers and dtsi includes directly form
upstream DT subtree which will be frequently synced with Linux kernel.
This will further allow us to drop corresponding DT includes copy from
U-Boot tree.

Also, since the DT includes from upstream DT subtree are done after DT
includes from U-Boot tree, so it shouldn't cause any conflicts.

Tested-by: Bryan Brattlof <bb@ti.com>
Signed-off-by: Sumit Garg <sumit.garg@linaro.org>
9 months agoscripts/Makefile.lib: Statically define *-u-boot.dtsi files location
Sumit Garg [Thu, 22 Feb 2024 09:35:59 +0000 (15:05 +0530)]
scripts/Makefile.lib: Statically define *-u-boot.dtsi files location

Allow u-boot to build DTB from a different directory tree such that
*-u-boot.dtsi files can be included from a common location. Currently
that location is arch/$(ARCH)/dts/, so statically define that common
location.

This is needed for platform owners to start building DTB files from
devicetree-rebasing directory but still being able to include
*-u-boot.dtsi files.

Reviewed-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Signed-off-by: Sumit Garg <sumit.garg@linaro.org>
9 months agoMakefile: Add support for DT bindings schema checks
Sumit Garg [Thu, 22 Feb 2024 09:35:58 +0000 (15:05 +0530)]
Makefile: Add support for DT bindings schema checks

This adds the build infrastructure for checking DT binding schema
documents and validating dtb files using the binding schema. Here we use
devicetree-rebasing subtree to provide the DT bindings. Along with that
adapt dts/upstream/Bindings/Makefile to align with old U-Boot Kbuild
infrastructure.

Dependency:
-----------

The DT schema project must be installed in order to validate the DT schema
binding documents and validate DTS files using the DT schema. The DT schema
project can be installed with pip::

    pip3 install dtschema

Note that 'dtschema' installation requires 'swig' and Python development
files installed first. On Debian/Ubuntu systems::

    apt install swig python3-dev

Testing:
--------

Build dts files and check using DT binding schema:
$ make dtbs_check

Optionally, DT_SCHEMA_FILES can be passed in with a schema file(s) to
use for validation. This makes it easier to find and fix errors
generated by a specific schema.

Note, at this point dtbs_check is an optional build target as there are
many warnings generated due to custom DT properties used by many
platforms in u-boot. It is expected with these checks that compliance
with DT bindings to take place. Once that's done it can be added to CI
builds to remain compliant with DT bindings.

Reviewed-by: Simon Glass <sjg@chromium.org>
Tested-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Sumit Garg <sumit.garg@linaro.org>
9 months agoCI: Exclude devicetree-rebasing subtree for CONFIG checks
Sumit Garg [Thu, 22 Feb 2024 09:35:57 +0000 (15:05 +0530)]
CI: Exclude devicetree-rebasing subtree for CONFIG checks

Since devicetree-rebasing is an external repo with its own coding style,
exclude it from Azure and gitlab CI CONFIG checks.

Reviewed-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Sumit Garg <sumit.garg@linaro.org>
9 months agoMerge commit '53633a893a06bd5a0c807287d9cc29337806eaf7' as 'dts/upstream'
Tom Rini [Thu, 29 Feb 2024 17:33:36 +0000 (12:33 -0500)]
Merge commit '53633a893a06bd5a0c807287d9cc29337806eaf7' as 'dts/upstream'

9 months agoSquashed 'dts/upstream/' content from commit aaba2d45dc2a
Tom Rini [Thu, 29 Feb 2024 17:33:36 +0000 (12:33 -0500)]
Squashed 'dts/upstream/' content from commit aaba2d45dc2a

git-subtree-dir: dts/upstream
git-subtree-split: aaba2d45dc2a1b3bbb710f2a3808ee1c9f340abe

9 months agoMerge patch series "Handoff bloblist from previous boot stage"
Tom Rini [Thu, 29 Feb 2024 14:24:49 +0000 (09:24 -0500)]
Merge patch series "Handoff bloblist from previous boot stage"

Raymond Mao <raymond.mao@linaro.org> says:

This patch set adds/adapts a few bloblist APIs and implements Arm arch
custom function to retrieve the bloblist (aka. Transfer List) from
previous loader via boot arguments when BLOBLIST option is enabled and
all boot arguments are compliant to the register conventions defined
in the Firmware Handoff spec v0.9.

If an arch wishes to have different behaviors for loading bloblist
from the previous boot stage, it is required to implement the custom
function xferlist_from_boot_arg().

9 months agodts: OF_HAS_PRIOR_STAGE should depend on !BLOBLIST
Raymond Mao [Sat, 3 Feb 2024 16:36:27 +0000 (08:36 -0800)]
dts: OF_HAS_PRIOR_STAGE should depend on !BLOBLIST

When BLOBLIST is enabled, FDT is expected to be from bloblist
carried from previous stage, instead of from OF_BOARD, therefore
only enable OF_HAS_PRIOR_STAGE when BLOBLIST is disabled.

Signed-off-by: Raymond Mao <raymond.mao@linaro.org>
9 months agobloblist: Load the bloblist from the previous loader
Raymond Mao [Sat, 3 Feb 2024 16:36:26 +0000 (08:36 -0800)]
bloblist: Load the bloblist from the previous loader

During bloblist initialization, load the bloblist via boot arguments
from the previous loader.
If a valid bloblist exists in boot arguments, relocate it into the
fixed bloblist memory region.
If not, fallback to support BLOBLIST_ADDR or BLOBLIST_ALLOC.

Signed-off-by: Raymond Mao <raymond.mao@linaro.org>
9 months agoarm: Get bloblist from boot arguments
Raymond Mao [Sat, 3 Feb 2024 16:36:25 +0000 (08:36 -0800)]
arm: Get bloblist from boot arguments

Add arch custom function to get bloblist from boot arguments.
Check whether boot arguments aligns with the register conventions
defined in FW Handoff spec v0.9.

Signed-off-by: Raymond Mao <raymond.mao@linaro.org>
9 months agoarm: armv8: save boot arguments
Raymond Mao [Sat, 3 Feb 2024 16:36:24 +0000 (08:36 -0800)]
arm: armv8: save boot arguments

Save boot arguments x[0-3] into an array for handover of bloblist from
previous boot stage.

Signed-off-by: Raymond Mao <raymond.mao@linaro.org>
Suggested-by: Ard Biesheuvel <ardb@kernel.org>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
9 months agoarm: armv7: save boot arguments
Raymond Mao [Sat, 3 Feb 2024 16:36:23 +0000 (08:36 -0800)]
arm: armv7: save boot arguments

Save boot arguments r[0-3] into an array for handover of bloblist from
previous boot stage.

Signed-off-by: Raymond Mao <raymond.mao@linaro.org>
Suggested-by: Ard Biesheuvel <ardb@kernel.org>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
9 months agobloblist: refactor of bloblist_reloc()
Raymond Mao [Sat, 3 Feb 2024 16:36:22 +0000 (08:36 -0800)]
bloblist: refactor of bloblist_reloc()

The current bloblist pointer and size can be retrieved from global
data, so we don't need to pass them from the function arguments.
This change also help to remove all external access of gd->bloblist
outside of bloblist module.

Signed-off-by: Raymond Mao <raymond.mao@linaro.org>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
9 months agobloblist: check bloblist with specified buffer size
Raymond Mao [Sat, 3 Feb 2024 16:36:21 +0000 (08:36 -0800)]
bloblist: check bloblist with specified buffer size

Instead of expecting the bloblist total size to be the same as the
pre-allocated buffer size, practically we are more interested in
whether the pre-allocated buffer size is bigger than the bloblist
total size.

Signed-off-by: Raymond Mao <raymond.mao@linaro.org>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
9 months agobloblist: add API to check the register conventions
Raymond Mao [Sat, 3 Feb 2024 16:36:20 +0000 (08:36 -0800)]
bloblist: add API to check the register conventions

Add bloblist_check_reg_conv() to check whether the bloblist is compliant
to the register conventions defined in Firmware Handoff specification.
This API can be used for all Arm platforms.

Signed-off-by: Raymond Mao <raymond.mao@linaro.org>
9 months agoMerge patch series "mux: Drop usage of "u-boot,mux-autoprobe""
Tom Rini [Thu, 29 Feb 2024 00:20:00 +0000 (19:20 -0500)]
Merge patch series "mux: Drop usage of "u-boot,mux-autoprobe""

Roger Quadros <rogerq@kernel.org> says:

MUX driver should autoprobe if the device tree has "idle-states"
property. Drop using the custom "u-boot,mux-autoprobe" property
in TI device trees.

9 months agoarm: dts: k3-u-boot: Add missing "bootph-all" property to MUX nodes.
Roger Quadros [Wed, 31 Jan 2024 13:33:48 +0000 (15:33 +0200)]
arm: dts: k3-u-boot: Add missing "bootph-all" property to MUX nodes.

As it is present for USB and USB won't work without the MUX
initialized correctly, add "bootph-all" property to MUX nodes.

Signed-off-by: Roger Quadros <rogerq@kernel.org>
9 months agoarm: dts: k3-u-boot: Drop usage of "u-boot, mux-autoprobe"
Roger Quadros [Wed, 31 Jan 2024 13:33:47 +0000 (15:33 +0200)]
arm: dts: k3-u-boot: Drop usage of "u-boot, mux-autoprobe"

MUX driver should autoprobe if the device tree has "idle-states"
property. Drop using the custom "u-boot,mux-autoprobe" property.

Signed-off-by: Roger Quadros <rogerq@kernel.org>
9 months agomux: autoprobe if "idle-states" present in device tree
Roger Quadros [Wed, 31 Jan 2024 13:33:46 +0000 (15:33 +0200)]
mux: autoprobe if "idle-states" present in device tree

Some platforms need the MUX state to be auto initialized at
boot time even if there are no explicit users for the MUX.
In these cases, the MUX device tree has "idle-states" property
which specifies what state the MUX should be initialized to.

So far we were relying on custom u-boot property "u-boot,mux-autoprobe"
to autoprobe such MUXes. This patch causes the MUX to autoprobe
if it has "idle-states" property in device tree.

This should allow us to stop using the custom "u-boot,mux-autoprobe"
property.

Signed-off-by: Roger Quadros <rogerq@kernel.org>
9 months agoMerge tag 'efi-next-2024-02-28' of https://source.denx.de/u-boot/custodians/u-boot...
Tom Rini [Wed, 28 Feb 2024 20:09:30 +0000 (15:09 -0500)]
Merge tag 'efi-next-2024-02-28' of https://source.denx.de/u-boot/custodians/u-boot-efi into next

Pull request efi-next-2024-02-28

* set IMAGE_DLLCHARACTERISTICS_NX_COMPAT in EFI binaries
* provide SBI based runtime system reset
* page align EFI binary section on ARMv7
* separate .data and .text sections of EFI binaries on ARMv7

9 months agoarm: separate .data and .text sections of EFI binaries
Heinrich Schuchardt [Mon, 26 Feb 2024 21:24:08 +0000 (22:24 +0100)]
arm: separate .data and .text sections of EFI binaries

EFI binaries should not contain sections that are both writable and
executable. Separate the RX .text section from the RW .data section.

We currently don't created relocation sections (.rel.*) for our EFI
binaries. Anyway these would have to be converted to PE/COFF relocations.
Enumerate them under DISCARD and add a comment.

Correct the characteristics of the sections.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Acked-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
9 months agoarm: page align EFI binary section
Heinrich Schuchardt [Mon, 26 Feb 2024 21:24:07 +0000 (22:24 +0100)]
arm: page align EFI binary section

Change the alignment of the relocation code in EFI binaries to match page
boundaries.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
9 months agoefi_driver: provide SBI based runtime system reset
Heinrich Schuchardt [Mon, 12 Feb 2024 16:18:37 +0000 (17:18 +0100)]
efi_driver: provide SBI based runtime system reset

On RISC-V systems system the Supervisory Binary Interface provides system
reset and poweroff. Use it at EFI runtime.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
9 months agoefi_loader: set IMAGE_DLLCHARACTERISTICS_NX_COMPAT
Heinrich Schuchardt [Wed, 14 Feb 2024 20:43:21 +0000 (21:43 +0100)]
efi_loader: set IMAGE_DLLCHARACTERISTICS_NX_COMPAT

The IMAGE_DLLCHARACTERISTICS_NX_COMPAT flag marks an EFI binary where
the following conditions are met [1]:

* Executable and writable sections are separated.
* The application does not run self-modifying code.
* The application uses the EFI_MEMORY_ATTRIBUTE_PROTOCOL when loading
  executable code.
* The application does not assume that all memory ranges are usable.
* The stack is not expected to be executable.

The only EFI binaries U-Boot provides that do not fulfill these
requirements are the EFI app and the EFI payload.

Once we have implemented separation of writable and executable memory in
U-Boot we can use the IMAGE_DLLCHARACTERISTICS_NX_COMPAT flag to decide
if we will load an EFI binary.

[1] New UEFI CA memory mitigation requirements for signing
    https://techcommunity.microsoft.com/t5/hardware-dev-center/new-uefi-ca-memory-mitigation-requirements-for-signing/ba-p/3608714

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
9 months agoMerge patch series "kbuild: Allow for CONFIG_SYS_CONFIG_NAME to be unset"
Tom Rini [Tue, 27 Feb 2024 19:14:15 +0000 (14:14 -0500)]
Merge patch series "kbuild: Allow for CONFIG_SYS_CONFIG_NAME to be unset"

Perform a little re-organization of Kconfig so that we can have
CONFIG_SYS_CONFIG_NAME be unset and so not require a "board.h" file.
Then go and remove a number of now not required header files.

9 months agoKconfig: Centralize prompting for SYS_CONFIG_NAME
Tom Rini [Mon, 22 Jan 2024 22:39:20 +0000 (17:39 -0500)]
Kconfig: Centralize prompting for SYS_CONFIG_NAME

Generally speaking, we do not prompt for this value and define it in the
board specific Kconfig file. There are some valid use cases however
today where we do prompt for this value, so instead of having this be
done in a number of locations, do this at the top-level location only.

This removes the question from a number of other locations and makes it
consistent that when we do set the value directly, we always do it the
same way. We don't need to specify the type, it's always string.

Signed-off-by: Tom Rini <trini@konsulko.com>
9 months agohc2910-2aghd05: Remove empty config header
Tom Rini [Mon, 22 Jan 2024 22:39:19 +0000 (17:39 -0500)]
hc2910-2aghd05: Remove empty config header

Now that we support having CONFIG_SYS_CONFIG_NAME be unset to indicate a
lack of board.h file, unset this on the hc2910-2aghd05 platform and remove
the otherwise empty file.

Signed-off-by: Tom Rini <trini@konsulko.com>
9 months agoslimbootloader: Remove empty config header
Tom Rini [Mon, 22 Jan 2024 22:39:18 +0000 (17:39 -0500)]
slimbootloader: Remove empty config header

Now that we support having CONFIG_SYS_CONFIG_NAME be unset to indicate a
lack of board.h file, unset this on the slimbootloader platform and remove
the otherwise empty file.

Signed-off-by: Tom Rini <trini@konsulko.com>
9 months agoqemu-x86*: Remove empty config header
Tom Rini [Mon, 22 Jan 2024 22:39:17 +0000 (17:39 -0500)]
qemu-x86*: Remove empty config header

Now that we support having CONFIG_SYS_CONFIG_NAME be unset to indicate a
lack of board.h file, unset this on the qemu-x86* platforms and remove
the otherwise empty file.

Signed-off-by: Tom Rini <trini@konsulko.com>
9 months agominnowmax: Remove empty config header
Tom Rini [Mon, 22 Jan 2024 22:39:16 +0000 (17:39 -0500)]
minnowmax: Remove empty config header

Now that we support having CONFIG_SYS_CONFIG_NAME be unset to indicate a
lack of board.h file, unset this on the minnowmax platform and remove
the otherwise empty file.

Signed-off-by: Tom Rini <trini@konsulko.com>
9 months agogalileo: Remove empty config header
Tom Rini [Mon, 22 Jan 2024 22:39:15 +0000 (17:39 -0500)]
galileo: Remove empty config header

Now that we support having CONFIG_SYS_CONFIG_NAME be unset to indicate a
lack of board.h file, unset this on the galileo platform and remove
the otherwise empty file.

Signed-off-by: Tom Rini <trini@konsulko.com>
9 months agoefi-x86_payload: Remove empty config header
Tom Rini [Mon, 22 Jan 2024 22:39:14 +0000 (17:39 -0500)]
efi-x86_payload: Remove empty config header

Now that we support having CONFIG_SYS_CONFIG_NAME be unset to indicate a
lack of board.h file, unset this on the efi-x86_payload* platforms and remove
the otherwise empty file.

Signed-off-by: Tom Rini <trini@konsulko.com>
9 months agoefi-x86_app: Remove empty config header
Tom Rini [Mon, 22 Jan 2024 22:39:13 +0000 (17:39 -0500)]
efi-x86_app: Remove empty config header

Now that we support having CONFIG_SYS_CONFIG_NAME be unset to indicate a
lack of board.h file, unset this on the efi-x86_app* platforms and remove
the otherwise empty file.

Signed-off-by: Tom Rini <trini@konsulko.com>
9 months agoedison: Remove empty config header
Tom Rini [Mon, 22 Jan 2024 22:39:12 +0000 (17:39 -0500)]
edison: Remove empty config header

Now that we support having CONFIG_SYS_CONFIG_NAME be unset to indicate a
lack of board.h file, unset this on the edison platform and remove
the otherwise empty file.

Acked-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Tom Rini <trini@konsulko.com>
9 months agocrownbay: Remove empty config header
Tom Rini [Mon, 22 Jan 2024 22:39:11 +0000 (17:39 -0500)]
crownbay: Remove empty config header

Now that we support having CONFIG_SYS_CONFIG_NAME be unset to indicate a
lack of board.h file, unset this on the crownbay platform and remove
the otherwise empty file.

Signed-off-by: Tom Rini <trini@konsulko.com>
9 months agocougarcanyon2: Remove empty config header
Tom Rini [Mon, 22 Jan 2024 22:39:10 +0000 (17:39 -0500)]
cougarcanyon2: Remove empty config header

Now that we support having CONFIG_SYS_CONFIG_NAME be unset to indicate a
lack of board.h file, unset this on the cougarcanyon2 platform and remove
the otherwise empty file.

Signed-off-by: Tom Rini <trini@konsulko.com>
9 months agocherryhill: Remove empty config header
Tom Rini [Mon, 22 Jan 2024 22:39:09 +0000 (17:39 -0500)]
cherryhill: Remove empty config header

Now that we support having CONFIG_SYS_CONFIG_NAME be unset to indicate a
lack of board.h file, unset this on the cherryhill platform and remove
the otherwise empty file.

Signed-off-by: Tom Rini <trini@konsulko.com>
9 months agobayleybay: Remove empty config header
Tom Rini [Mon, 22 Jan 2024 22:39:08 +0000 (17:39 -0500)]
bayleybay: Remove empty config header

Now that we support having CONFIG_SYS_CONFIG_NAME be unset to indicate a
lack of board.h file, unset this on the bayleybay platform and remove
the otherwise empty file.

Signed-off-by: Tom Rini <trini@konsulko.com>
9 months agocoreboot: Remove empty config header
Tom Rini [Mon, 22 Jan 2024 22:39:07 +0000 (17:39 -0500)]
coreboot: Remove empty config header

Now that we support having CONFIG_SYS_CONFIG_NAME be unset to indicate a
lack of board.h file, unset this on the coreboot platform and remove
the otherwise empty file.

Signed-off-by: Tom Rini <trini@konsulko.com>
9 months agoxilinx_mbv: Remove empty config header
Tom Rini [Mon, 22 Jan 2024 22:39:06 +0000 (17:39 -0500)]
xilinx_mbv: Remove empty config header

Now that we support having CONFIG_SYS_CONFIG_NAME be unset to indicate a
lack of board.h file, unset this on the xilinx_mbv platforms and remove
the otherwise empty file.

Acked-by: Michal Simek <michal.simek@amd.com>
Signed-off-by: Tom Rini <trini@konsulko.com>
9 months agokbuild: Allow for CONFIG_SYS_CONFIG_NAME to be unset
Tom Rini [Mon, 22 Jan 2024 22:39:05 +0000 (17:39 -0500)]
kbuild: Allow for CONFIG_SYS_CONFIG_NAME to be unset

It is possible to have a platform which does not require a board.h file
to build, but today we need an empty one for our generated config.h file
to be valid. Allow for omitting this file if CONFIG_SYS_CONFIG_NAME is
not set.

Signed-off-by: Tom Rini <trini@konsulko.com>
9 months agoPrepare v2024.04-rc3
Tom Rini [Tue, 27 Feb 2024 02:23:36 +0000 (21:23 -0500)]
Prepare v2024.04-rc3

Signed-off-by: Tom Rini <trini@konsulko.com>
9 months agoMerge tag 'u-boot-imx-master-20240224' of https://source.denx.de/u-boot/custodians...
Tom Rini [Sat, 24 Feb 2024 22:51:50 +0000 (17:51 -0500)]
Merge tag 'u-boot-imx-master-20240224' of https://source.denx.de/u-boot/custodians/u-boot-imx

- Enable the thermal driver for the imx8m phycore boards.
- Convert imx53-qsb to watchdog driver to fix the 'reset' command.
- Remove multiline string from imx6dl-sielaff.
- Add SPI boot support for imxrt1050-evk.
- Convert opos6uldev to watchdog driver to fix the 'reset' command.

9 months agoopos6uldev: Convert to watchdog driver model
Sébastien Szymanski [Fri, 23 Feb 2024 11:28:04 +0000 (12:28 +0100)]
opos6uldev: Convert to watchdog driver model

Commit 68dcbdd594d4 ("ARM: imx: Add weak default reset_cpu()") caused
the 'reset' command in U-Boot to not cause a board reset.

Fix it by switching to the watchdog driver model via sysreset, which
is the preferred method for implementing the watchdog reset.

Signed-off-by: Sébastien Szymanski <sebastien.szymanski@armadeus.com>
Reviewed-by: Fabio Estevam <festevam@gmail.com>
9 months agoimx53-qsb: Convert to watchdog driver model
Fabio Estevam [Wed, 21 Feb 2024 17:39:30 +0000 (14:39 -0300)]
imx53-qsb: Convert to watchdog driver model

Commit 68dcbdd594d4 ("ARM: imx: Add weak default reset_cpu()") caused
the 'reset' command in U-Boot to not cause a board reset.

Fix it by switching to the watchdog driver model via sysreset, which
is the preferred method for implementing the watchdog reset.

Signed-off-by: Fabio Estevam <festevam@gmail.com>
9 months agoimx8mm-phygate-tauri-l_defconfig: Enable CONFIG_IMX_TMU
Benjamin Hahn [Tue, 20 Feb 2024 10:41:45 +0000 (11:41 +0100)]
imx8mm-phygate-tauri-l_defconfig: Enable CONFIG_IMX_TMU

Enable the imx thermal driver to prevent booting when the system is too
hot.

Signed-off-by: Benjamin Hahn <B.Hahn@phytec.de>
9 months agophycore-imx8mm_defconfig: Enable CONFIG_IMX_TMU
Benjamin Hahn [Tue, 20 Feb 2024 10:41:44 +0000 (11:41 +0100)]
phycore-imx8mm_defconfig: Enable CONFIG_IMX_TMU

Enable the imx thermal driver to prevent booting when the system is too
hot.

Signed-off-by: Benjamin Hahn <B.Hahn@phytec.de>
9 months agophycore-imx8mp_defconfig: Enable CONFIG_IMX_TMU
Benjamin Hahn [Tue, 20 Feb 2024 10:41:43 +0000 (11:41 +0100)]
phycore-imx8mp_defconfig: Enable CONFIG_IMX_TMU

Enable the imx thermal driver to prevent booting when the system is too
hot.

Signed-off-by: Benjamin Hahn <B.Hahn@phytec.de>
9 months agoconfigs: imx93_var_som: Add fastboot support.
Mathieu Othacehe [Tue, 20 Feb 2024 10:35:05 +0000 (11:35 +0100)]
configs: imx93_var_som: Add fastboot support.

Enable the `fastboot` command.

Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
9 months agoconfigs: imx93_var_som: Add USB support.
Mathieu Othacehe [Tue, 20 Feb 2024 10:35:04 +0000 (11:35 +0100)]
configs: imx93_var_som: Add USB support.

Enable the `usb` command and some USB drivers.

Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
9 months agoarm: dts: imx93-var-som-symphony: Add USB support.
Mathieu Othacehe [Tue, 20 Feb 2024 10:35:03 +0000 (11:35 +0100)]
arm: dts: imx93-var-som-symphony: Add USB support.

Enable both usbotg1 and usbotg2 ports.

Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
9 months agoarm: dts: imx93: Add USB support.
Mathieu Othacehe [Tue, 20 Feb 2024 10:35:02 +0000 (11:35 +0100)]
arm: dts: imx93: Add USB support.

Copied from:
https://lore.kernel.org/linux-devicetree/20240131114324.3722428-6-xu.yang_2@nxp.com/

Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
9 months agoboard: imx6dl-sielaff: spl.c: Remove multiline string
Frieder Schrempf [Tue, 20 Feb 2024 09:01:00 +0000 (10:01 +0100)]
board: imx6dl-sielaff: spl.c: Remove multiline string

Remove the malformed multiline string and fix the checkpatch warning.

Reported-by: Dan Carpenter <dan.carpenter@linaro.org>
Signed-off-by: Frieder Schrempf <frieder.schrempf@kontron.de>
9 months agoimx: imxrt1050-evk: Add documentation for SPI boot
Jesse Taube [Mon, 19 Feb 2024 23:01:00 +0000 (18:01 -0500)]
imx: imxrt1050-evk: Add documentation for SPI boot

Add documentation for SPI boot.

Signed-off-by: Jesse Taube <Mr.Bossman075@gmail.com>
9 months agoimx: imxrt1050-evk: Add support for SPI flash booting
Jesse Taube [Mon, 19 Feb 2024 23:00:59 +0000 (18:00 -0500)]
imx: imxrt1050-evk: Add support for SPI flash booting

Add support for booting the imxrt1050-evk from spi.
Add imximage config and the ability for SPL to boot from NOR.
Enable binman in Kconfig and device tree for imxrt* as it is used to
prepend fspi_header.bin to SPL and u-boot.img.

Signed-off-by: Jesse Taube <Mr.Bossman075@gmail.com>
9 months agoMerge tag 'u-boot-amlogic-fixes-20240223' of https://source.denx.de/u-boot/custodians...
Tom Rini [Fri, 23 Feb 2024 17:54:03 +0000 (12:54 -0500)]
Merge tag 'u-boot-amlogic-fixes-20240223' of https://source.denx.de/u-boot/custodians/u-boot-amlogic

- fix AVB oom error for Khadas VIM3 Android configs

9 months agoconfigs: khadas-vim3*_android: fix AVB oom error
Mattijs Korpershoek [Fri, 9 Feb 2024 08:58:35 +0000 (09:58 +0100)]
configs: khadas-vim3*_android: fix AVB oom error

When booting Android with AVB enabled, an OOM is observed:

  => avb init ${mmcdev}
  => avb verify _a
  ## Android Verified Boot 2.0 version 1.1.0
  read_is_device_unlocked not supported yet
  read_rollback_index not supported yet
  avb_util.c:182: ERROR: Failed to allocate memory.
  OOM error occurred during verification

A custom malloc length of 128MB is required as documented in
commit 285a83b12bdf ("configs: meson64_android: increase SYS_MALLOC_LEN to 128M for AVB")

However, this 128M custom malloc length was not ported to Kconfig in
commit 7cfbba36e9f8 ("Convert CONFIG_SYS_MALLOC_LEN to Kconfig")

Add it back to fix AVB verification on VIM3/VIM3L.

Fixes: 7cfbba36e9f8 ("Convert CONFIG_SYS_MALLOC_LEN to Kconfig")
Co-developed-by: Guillaume La Roque <glaroque@baylibre.com>
Signed-off-by: Guillaume La Roque <glaroque@baylibre.com>
Signed-off-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Reviewed-by: Igor Opaniuk <igor.opaniuk@gmail.com>
Link: https://lore.kernel.org/r/20240209-vim3-avb-malloc-v1-1-91427d8c19ab@baylibre.com
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
10 months agoMerge branch 'qcom-fixes-2024.04' of https://gitlab.denx.de/u-boot/custodians/u-boot...
Tom Rini [Thu, 22 Feb 2024 16:34:59 +0000 (11:34 -0500)]
Merge branch 'qcom-fixes-2024.04' of https://gitlab.denx.de/u-boot/custodians/u-boot-snapdragon

- Two fixes for the qcom-pmic button driver

10 months agoMerge patch series "board/ti: k3 boards: Stop using findfdt"
Tom Rini [Tue, 20 Feb 2024 22:57:52 +0000 (17:57 -0500)]
Merge patch series "board/ti: k3 boards: Stop using findfdt"

Nishanth Menon <nm@ti.com> says:

This is a wide cleanup to switch to setting fdtfile using env_set
instead of scripted magic. 'fdtfile' is expected to be set by default.
This allows the stdboot triggered efi loaders to find the correct OS
device tree file even if regular boot process is interrupted by user
intervention.

10 months agoinclude: env: ti: Drop default_findfdt
Nishanth Menon [Mon, 12 Feb 2024 19:47:26 +0000 (13:47 -0600)]
include: env: ti: Drop default_findfdt

We shouldn't need finfdt anymore. Drop the env script.

Reviewed-by: Jonathan Humphreys <j-humphreys@ti.com>
Reviewed-by: Roger Quadros <rogerq@kernel.org>
Signed-off-by: Nishanth Menon <nm@ti.com>
10 months agoboard: beagle: beagleplay: Set fdtfile from C code instead of findfdt script
Nishanth Menon [Mon, 12 Feb 2024 19:47:25 +0000 (13:47 -0600)]
board: beagle: beagleplay: Set fdtfile from C code instead of findfdt script

Stop using the findfdt script and switch to setting the fdtfile from C
code.

Reviewed-by: Jonathan Humphreys <j-humphreys@ti.com>
Reviewed-by: Roger Quadros <rogerq@kernel.org>
Signed-off-by: Nishanth Menon <nm@ti.com>
10 months agoboard: beagle: beagleboneai64: Set fdtfile from C code instead of findfdt script
Nishanth Menon [Mon, 12 Feb 2024 19:47:24 +0000 (13:47 -0600)]
board: beagle: beagleboneai64: Set fdtfile from C code instead of findfdt script

Stop using the findfdt script and switch to setting the fdtfile from C
code.

Reviewed-by: Jonathan Humphreys <j-humphreys@ti.com>
Reviewed-by: Roger Quadros <rogerq@kernel.org>
Signed-off-by: Nishanth Menon <nm@ti.com>
10 months agoboard: ti: j721s2: Set fdtfile from C code instead of findfdt script
Nishanth Menon [Mon, 12 Feb 2024 19:47:23 +0000 (13:47 -0600)]
board: ti: j721s2: Set fdtfile from C code instead of findfdt script

We now can provide a map and have the standard fdtfile variable set from
code itself. This allows for bootstd to "just work".

While at this, replace findfdt in environment with a warning as it is no
longer needed.

Reviewed-by: Jonathan Humphreys <j-humphreys@ti.com>
Reviewed-by: Roger Quadros <rogerq@kernel.org>
Signed-off-by: Nishanth Menon <nm@ti.com>
10 months agoboard: ti: j721e: Set fdtfile from C code instead of findfdt script
Nishanth Menon [Mon, 12 Feb 2024 19:47:22 +0000 (13:47 -0600)]
board: ti: j721e: Set fdtfile from C code instead of findfdt script

We now can provide a map and have the standard fdtfile variable set from
code itself. This allows for bootstd to "just work".

While at this, replace findfdt in environment with a warning as it is no
longer needed.

Reviewed-by: Jonathan Humphreys <j-humphreys@ti.com>
Reviewed-by: Roger Quadros <rogerq@kernel.org>
Signed-off-by: Nishanth Menon <nm@ti.com>
10 months agoboard: ti: am65x: Set fdtfile from C code instead of findfdt script
Nishanth Menon [Mon, 12 Feb 2024 19:47:21 +0000 (13:47 -0600)]
board: ti: am65x: Set fdtfile from C code instead of findfdt script

We now can provide a map and have the standard fdtfile variable set from
code itself. This allows for bootstd to "just work".

While at this, replace findfdt in environment with a warning as it is no
longer needed.

Reviewed-by: Jonathan Humphreys <j-humphreys@ti.com>
Reviewed-by: Roger Quadros <rogerq@kernel.org>
Signed-off-by: Nishanth Menon <nm@ti.com>
10 months agoboard: ti: am64x: Set fdtfile from C code instead of findfdt script
Nishanth Menon [Mon, 12 Feb 2024 19:47:20 +0000 (13:47 -0600)]
board: ti: am64x: Set fdtfile from C code instead of findfdt script

We now can provide a map and have the standard fdtfile variable set from
code itself. This allows for bootstd to "just work".

While at this, replace findfdt in environment with a warning as it is no
longer needed.

Reviewed-by: Jonathan Humphreys <j-humphreys@ti.com>
Reviewed-by: Roger Quadros <rogerq@kernel.org>
Signed-off-by: Nishanth Menon <nm@ti.com>
10 months agoboard: ti: am62x: Set fdtfile from C code instead of findfdt script
Nishanth Menon [Mon, 12 Feb 2024 19:47:19 +0000 (13:47 -0600)]
board: ti: am62x: Set fdtfile from C code instead of findfdt script

Stop using the findfdt script and switch to setting the fdtfile from
C code.

While at this, replace findfdt in environment with a warning as it is
no longer needed

Reviewed-by: Jonathan Humphreys <j-humphreys@ti.com>
Reviewed-by: Roger Quadros <rogerq@kernel.org>
Signed-off-by: Nishanth Menon <nm@ti.com>
10 months agoboard: ti: am62ax: Set fdtfile from C code instead of findfdt script
Nishanth Menon [Mon, 12 Feb 2024 19:47:18 +0000 (13:47 -0600)]
board: ti: am62ax: Set fdtfile from C code instead of findfdt script

Stop using the findfdt script and switch to setting the fdtfile from
C code.

While at this, replace findfdt in environment with a warning as it is
no longer needed

Reviewed-by: Jonathan Humphreys <j-humphreys@ti.com>
Reviewed-by: Roger Quadros <rogerq@kernel.org>
Signed-off-by: Nishanth Menon <nm@ti.com>
10 months agoboard: ti: common: Introduce a common fdt ops library
Nishanth Menon [Mon, 12 Feb 2024 19:47:17 +0000 (13:47 -0600)]
board: ti: common: Introduce a common fdt ops library

Introduce a common fdt operations library for basic device tree
operations that are common between various boards.

The first library to introduce here is the capability to set up
fdtfile as a standard variable as part of board identification rather
than depend on scripted ifdeffery.

Reviewed-by: Jonathan Humphreys <j-humphreys@ti.com>
Reviewed-by: Roger Quadros <rogerq@kernel.org>
Signed-off-by: Nishanth Menon <nm@ti.com>
10 months agoboard: ti: Add missing common/Kconfig references
Nishanth Menon [Mon, 12 Feb 2024 19:47:16 +0000 (13:47 -0600)]
board: ti: Add missing common/Kconfig references

Add missing board/ti/common/Kconfig references for the platforms that
missed it. The intent is for the common Kconfig to be usable across TI
reference boards as required.

Reported-by: Tom Rini <trini@konsulko.com>
Signed-off-by: Nishanth Menon <nm@ti.com>
10 months agoMerge https://gitlab.denx.de/u-boot/custodians/u-boot-usb
Tom Rini [Tue, 20 Feb 2024 13:03:21 +0000 (08:03 -0500)]
Merge https://gitlab.denx.de/u-boot/custodians/u-boot-usb

10 months agoMerge https://gitlab.denx.de/u-boot/custodians/u-boot-samsung
Tom Rini [Tue, 20 Feb 2024 13:02:49 +0000 (08:02 -0500)]
Merge https://gitlab.denx.de/u-boot/custodians/u-boot-samsung

10 months agousb: ehci-mx6: Add i.MX93 support
Mathieu Othacehe [Mon, 19 Feb 2024 17:05:31 +0000 (18:05 +0100)]
usb: ehci-mx6: Add i.MX93 support

i.MX93 uses the same USB IP as i.MX8MM. It can then reuse the ehci-mx6
driver.

Reviewed-by: Marek Vasut <marex@denx.de>
Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
Reviewed-by: Fabio Estevam <festevam@gmail.com>
10 months agocommon: usb-hub: Reset USB 3.0 hubs only
Shantur Rathore [Wed, 14 Feb 2024 09:54:03 +0000 (09:54 +0000)]
common: usb-hub: Reset USB 3.0 hubs only

Additional testing of the changes introduced in commit 33e06dcbe57a "common:
usb-hub: Reset hub port before scanning") revealed that some USB 2.0 and 3.0
flash drives didn't work in U-Boot on some Allwinner SoCs that support USB
2.0 interfaces only.  More precisely, some of the tested USB 2.0 and 3.0
flash drives failed to be detected and work on an OrangePi Zero 3, based on
the Allwinner H616 SoC that supports USB 2.0 only, while the same USB flash
drives worked just fine on a Pine64 H64, based on the Allwinner H6 SoC that
supports both USB 2.0 and USB 3.0 interfaces.

The USB ID of the above-mentioned USB 3.0 flash drive that failed to work is
1f75:0917 (Innostor Technology Corporation IS917 Mass storage), it is 32 GB
in size and sold under the PNY brand.  The mentioned USB 2.0 drive is some
inexpensive no-name drive with an invalid USB ID.

Resetting USB 3.0 hubs only, which this patch introduces to the USB hub
resets, has been tested to work as expected, resolving the identified issues
on the Allwinner H616, while not introducing any new issues on other tested
Allwinner SoCs.  Thus, let's fix it that way.

According to the USB 3.0 specification, resetting a USB 3.0 port is required
when an attached USB device transitions between different states, such as
when it resumes from suspend.  Though, the Linux kernel performs additional
USB 3.0 port resets upon initial USB device attachment, as visible in commit
07194ab7be63 ("USB: Reset USB 3.0 devices on (re)discovery") in the kernel
source, to ensure proper state of the USB 3.0 hub port and proper USB mode
negotiation during the initial USB device attachment and enumeration.

These additional types of USB port resets don't exist for USB 2.0 hubs,
according the USB 2.0 specification.  The resets seem to be added to the USB
3.0 specification as part of the port and device mode negotiation.

The Linux kernel resets USB 3.0 (i.e. SuperSpeed) hubs only, as visible in
commit 10d674a82e55 ("USB: When hot reset for USB3 fails, try warm reset.")
in the kernel source.  The check for SuperSpeed hubs is performed in a way
that also applies to newer SuperSpeed Plus (USB 3.1 or 3.2) hubs as well,
which hopefully makes it future proof.

Fixes: 33e06dcbe57a ("common: usb-hub: Reset hub port before scanning")
Link:
https://lore.kernel.org/u-boot/20240207102327.35125-1-i@shantur.com/T/#u
Link:
https://lore.kernel.org/u-boot/20240201164604.13315fa6@donnerap.manchester.arm.com/T/#u

Signed-off-by: Shantur Rathore <i@shantur.com>
Helped-by: Dragan Simic <dsimic@manjaro.org>
Tested-by: Andre Przywara <andre.przywara@arm.com>
Reviewed-by: Dragan Simic <dsimic@manjaro.org>
Reviewed-by: Marek Vasut <marex@denx.de>
10 months agoMerge tag 'u-boot-imx-master-20240219' of https://gitlab.denx.de/u-boot/custodians...
Tom Rini [Mon, 19 Feb 2024 13:55:17 +0000 (08:55 -0500)]
Merge tag 'u-boot-imx-master-20240219' of https://gitlab.denx.de/u-boot/custodians/u-boot-imx

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

- Convert msc_sm2s_imx8mp to DM_SERIAL.
- Make Ethernel functional on msc_sm2s_imx8mp.
- General improvements for msc_sm2s_imx8mp.
- Add suport for the Sielaff i.MX6 Solo board.
- Update GE HealthCare maitainers' e-mail addresses.

10 months agodoc: board: Add minimal documentation for Sielaff i.MX6 Solo board
Frieder Schrempf [Thu, 15 Feb 2024 14:00:36 +0000 (15:00 +0100)]
doc: board: Add minimal documentation for Sielaff i.MX6 Solo board

Describe how to build and boot for the Sielaff i.MX6 Solo board.

Signed-off-by: Frieder Schrempf <frieder.schrempf@kontron.de>
10 months agoboard: Add support for Sielaff i.MX6 Solo board
Frieder Schrempf [Thu, 15 Feb 2024 14:00:35 +0000 (15:00 +0100)]
board: Add support for Sielaff i.MX6 Solo board

The Sielaff i.MX6 Solo board is a control and HMI board for vending
machines. Add support for this board.

The devicetree files are taken from pending changes in the Linux
kernel that are available from linux-next and will likely be
part of Linux v6.9.

Signed-off-by: Frieder Schrempf <frieder.schrempf@kontron.de>
10 months agomtd: spi-nor-ids: Add support for ESMT/EON EN25Q80B
Frieder Schrempf [Thu, 15 Feb 2024 14:00:34 +0000 (15:00 +0100)]
mtd: spi-nor-ids: Add support for ESMT/EON EN25Q80B

The datasheet can be found here:
https://www.esmt.com.tw/upload/pdf/ESMT/datasheets/EN25Q80B_Ver.E.pdf

Signed-off-by: Frieder Schrempf <frieder.schrempf@kontron.de>
Reviewed-by: Fabio Estevam <festevam@gmail.com>
10 months agoMAINTAINERS: Update after GEHC spin-off
Ian Ray [Tue, 13 Feb 2024 13:17:06 +0000 (15:17 +0200)]
MAINTAINERS: Update after GEHC spin-off

Update our email addresses, from @ge.com to @gehealthcare.com, after GE
HealthCare was spun-off from GE.

Remove Antti, who no longer works on the project.

Signed-off-by: Ian Ray <ian.ray@gehealthcare.com>
10 months agomsc_sm2s_imx8mp: Fix CONFIG_DEFAULT_FDT_FILE
Fabio Estevam [Tue, 13 Feb 2024 11:43:42 +0000 (08:43 -0300)]
msc_sm2s_imx8mp: Fix CONFIG_DEFAULT_FDT_FILE

There is no imx8mp-msc-sm2s.dtb file in upstream Linux.

Change it to imx8mp-msc-sm2s-ep1.dtb.

Signed-off-by: Fabio Estevam <festevam@denx.de>
Reviewed-by: Ian Ray <ian.ray@gehealthcare.com>
10 months agomsc_sm2s_imx8mp: Add redundant environment support
Fabio Estevam [Tue, 13 Feb 2024 11:43:41 +0000 (08:43 -0300)]
msc_sm2s_imx8mp: Add redundant environment support

Redundant environment support is required for software updates.

Add support for it.

Signed-off-by: Fabio Estevam <festevam@denx.de>
Reviewed-by: Ian Ray <ian.ray@gehealthcare.com>
10 months agoimx8mp-msc-sm2s: Add mmc aliases
Fabio Estevam [Tue, 13 Feb 2024 11:43:40 +0000 (08:43 -0300)]
imx8mp-msc-sm2s: Add mmc aliases

Add mmc alias so that the eMMC is mmc0 and the SD card
is mmc1 to have a well defined device numbering scheme.

Signed-off-by: Fabio Estevam <festevam@denx.de>
Reviewed-by: Ian Ray <ian.ray@gehealthcare.com>
10 months agomsc_sm2s_imx8mp: Make Ethernet functional
Fabio Estevam [Tue, 13 Feb 2024 11:43:39 +0000 (08:43 -0300)]
msc_sm2s_imx8mp: Make Ethernet functional

Currently, the Ethernet ports are not working.

The Ethernet PHY reset lines are controlled by the TCA6424 I2C GPIO
expander.

The TCA6424 I2C GPIO expander is supported by the CONFIG_DM_PCA953X
driver.

Select the CONFIG_DM_PCA953X option so that the Ethernet PHYs can
go through a proper reset making Ethernet to be functional.

Signed-off-by: Fabio Estevam <festevam@denx.de>
Reviewed-by: Ian Ray <ian.ray@gehealthcare.com>
10 months agomsc_sm2s_imx8mp: Convert to DM_SERIAL
Fabio Estevam [Tue, 13 Feb 2024 11:43:38 +0000 (08:43 -0300)]
msc_sm2s_imx8mp: Convert to DM_SERIAL

The conversion to DM_SERIAL is mandatory, so do the conversion.

Signed-off-by: Fabio Estevam <festevam@denx.de>
Reviewed-by: Ian Ray <ian.ray@gehealthcare.com>
10 months agoMerge branch 'master-porter' of https://source.denx.de/u-boot/custodians/u-boot-sh
Tom Rini [Sat, 17 Feb 2024 23:37:07 +0000 (18:37 -0500)]
Merge branch 'master-porter' of https://source.denx.de/u-boot/custodians/u-boot-sh

- Renesas R-Car Gen2 fixes

10 months agoARM: renesas: Enable LTO on R-Car
Marek Vasut [Sun, 11 Feb 2024 17:34:30 +0000 (18:34 +0100)]
ARM: renesas: Enable LTO on R-Car

Enable LTO globally on Renesas R-Car platforms. This has been enabled
on a subset of boards already, but at this point it is safe to enable
it globally. This saves units or tens of kiB from the resulting build.

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
Reviewed-by: Paul Barker <paul.barker.ct@bp.renesas.com>
10 months agoARM: renesas: Set R-Car Gen2 board size limit to 512 kiB
Marek Vasut [Sun, 11 Feb 2024 17:34:29 +0000 (18:34 +0100)]
ARM: renesas: Set R-Car Gen2 board size limit to 512 kiB

The maximum size of u-boot.img on R-Car Gen2 is 0x80000 or 512 kiB,
set the limit to avoid overflows as new functionality gets pulled in.

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
Reviewed-by: Paul Barker <paul.barker.ct@bp.renesas.com>
10 months agoARM: renesas: Disable EFI on R-Car Gen2
Marek Vasut [Sun, 11 Feb 2024 17:34:28 +0000 (18:34 +0100)]
ARM: renesas: Disable EFI on R-Car Gen2

These systems are unlikely to use EFI as this functionality has not been
enabled until it got pulled in by Kconfig default. This functionality
does add some 60-70 kiB to the u-boot.img size, which overflows the size
limit. Disable it.

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
Reviewed-by: Paul Barker <paul.barker.ct@bp.renesas.com>
10 months agoclk: renesas: Fix broken clocks on all Gen2 boards
Niklas Söderlund [Fri, 9 Feb 2024 21:15:35 +0000 (22:15 +0100)]
clk: renesas: Fix broken clocks on all Gen2 boards

To prepare support for multiple register layouts pointers to register
tables where added to struct cpg_mssr_info. These pointers are suppose
to be filled in at probe time and no intended change in behavior was
intended.

However the new pointers where only filled in by some paths of the
driver implemented in clk-rcar-gen3.c. The path implemented in
clk-rcar-gen2.c was not updated leaving the pointers uninitialized
leading to a crash when trying to probe the clocks.

Fix this by filling in the pointers in the Gen2 code path with the
values used before they where moved to struct cpg_mssr_info.

Fixes: d413214fb748 ("clk: renesas: Add register pointers into struct cpg_mssr_info")
Signed-off-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
Acked-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
Tested-by: Marek Vasut <marek.vasut+renesas@mailbox.org> # R8A7791 Porter
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
10 months agoMerge tag 'u-boot-dfu-20240215' of https://source.denx.de/u-boot/custodians/u-boot-dfu
Tom Rini [Thu, 15 Feb 2024 15:26:24 +0000 (10:26 -0500)]
Merge tag 'u-boot-dfu-20240215' of https://source.denx.de/u-boot/custodians/u-boot-dfu

u-boot-dfu-20240215

- Fix avb_verify command with SD cards
- Add u-boot-dfu maintainer tree for AB/AVB
- Avb: report verified boot state based on lock state
- Misc avb refactors improve code quality

10 months agodoc: android: avb: sync usage details
Igor Opaniuk [Fri, 9 Feb 2024 19:20:45 +0000 (20:20 +0100)]
doc: android: avb: sync usage details

Sync usage info with the one cmd/avb.c.

Signed-off-by: Igor Opaniuk <igor.opaniuk@gmail.com>
Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
Link: https://lore.kernel.org/r/20240209192045.3961832-8-igor.opaniuk@foundries.io
Signed-off-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
10 months agocmd: avb: rework do_avb_verify_part
Igor Opaniuk [Fri, 9 Feb 2024 19:20:44 +0000 (20:20 +0100)]
cmd: avb: rework do_avb_verify_part

Use existing str_avb_slot_error() function for obtaining
verification fail reason details.
Take into account device lock state for setting correct
androidboot.verifiedbootstate kernel cmdline parameter.

Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
Signed-off-by: Igor Opaniuk <igor.opaniuk@gmail.com>
Link: https://lore.kernel.org/r/20240209192045.3961832-7-igor.opaniuk@foundries.io
Signed-off-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>