]> git.ipfire.org Git - thirdparty/u-boot.git/log
thirdparty/u-boot.git
3 weeks agoboot: Make ft_board_setup_ex() generic
João Paulo Gonçalves [Mon, 23 Jun 2025 17:39:54 +0000 (14:39 -0300)] 
boot: Make ft_board_setup_ex() generic

In some use cases, board-specific device tree changes must not be
overwritten by system fixups. Although U-Boot provides
ft_board_setup_ex() for this purpose, it is currently only used on TI
Keystone. Make ft_board_setup_ex() to be a generic option, allowing its
use by other architectures/boards. To maintain backward compatibility,
enable it by default on TI Keystone.

Signed-off-by: João Paulo Gonçalves <joao.goncalves@toradex.com>
6 weeks agoMerge patch series "Consistent Kconfig environment options CONFIG_ENV_ prefix"
Tom Rini [Fri, 20 Jun 2025 18:54:41 +0000 (12:54 -0600)] 
Merge patch series "Consistent Kconfig environment options CONFIG_ENV_ prefix"

Marek Vasut <marek.vasut+renesas@mailbox.org> says:

Rename the environment related variables and add ENV_ prefix, so that
all configuration options which are related to environment would have
an CONFIG_ENV_ prefix. No functional change.

Link: https://lore.kernel.org/r/20250609192701.20260-1-marek.vasut+renesas@mailbox.org
6 weeks agoenv: Drop DELAY_ENVIRONMENT
Marek Vasut [Mon, 9 Jun 2025 19:26:43 +0000 (21:26 +0200)] 
env: Drop DELAY_ENVIRONMENT

There are no users of DELAY_ENVIRONMENT and the same effect can
be achieved either using DT /config/load-environment property,
or by using ENV_IS_NOWHERE . Remove this configuration option
and matching functionality.

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
6 weeks agoenv: Rename DEFAULT_ENV_FILE to ENV_DEFAULT_ENV_TEXT_FILE
Marek Vasut [Mon, 9 Jun 2025 19:26:42 +0000 (21:26 +0200)] 
env: Rename DEFAULT_ENV_FILE to ENV_DEFAULT_ENV_TEXT_FILE

Rename the variable and add ENV_ prefix, so that all configuration
options which are related to environment would have an CONFIG_ENV_
prefix. No functional change.

Also rename USE_DEFAULT_ENV_FILE to USE_ENV_DEFAULT_ENV_TEXT_FILE .

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
6 weeks agoenv: Rename ENV_MMC_PARTITION to ENV_MMC_SW_PARTITION
Marek Vasut [Mon, 9 Jun 2025 19:26:41 +0000 (21:26 +0200)] 
env: Rename ENV_MMC_PARTITION to ENV_MMC_SW_PARTITION

Rename the variable and add ENV_ prefix, so that all configuration
options which are related to environment would have an CONFIG_ENV_
prefix. No functional change.

Use ENV_MMC_SW_PARTITION to clarify this is the SD/MMC software
partition table entry selector. Update the help text accordingly.

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
6 weeks agoenv: Rename SYS_MMC_ENV_PART to ENV_MMC_EMMC_HW_PARTITION
Marek Vasut [Mon, 9 Jun 2025 19:26:40 +0000 (21:26 +0200)] 
env: Rename SYS_MMC_ENV_PART to ENV_MMC_EMMC_HW_PARTITION

Rename the variable and add ENV_ prefix, so that all configuration
options which are related to environment would have an CONFIG_ENV_
prefix. No functional change.

Use ENV_MMC_EMMC_HW_PARTITION to clarify this is the eMMC hardware
partition selector, not a software partition table entry selector.
Retain the ENV_MMC_ prefix to make it easier to search for all the
SD/MMC related ENV options. Update the help text accordingly.

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
6 weeks agoenv: Rename SYS_MMC_ENV_DEV to ENV_MMC_DEVICE_INDEX
Marek Vasut [Mon, 9 Jun 2025 19:26:39 +0000 (21:26 +0200)] 
env: Rename SYS_MMC_ENV_DEV to ENV_MMC_DEVICE_INDEX

Rename the variable and add ENV_ prefix, so that all configuration
options which are related to environment would have an CONFIG_ENV_
prefix. No functional change.

Use ENV_MMC_DEVICE_INDEX to clarify this is the SD/MMC device
index, a number, as enumerated by U-Boot. Update the help text
accordingly.

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
6 weeks agoenv: Rename SYS_RELOC_GD_ENV_ADDR to ENV_RELOC_GD_ENV_ADDR
Marek Vasut [Mon, 9 Jun 2025 19:26:38 +0000 (21:26 +0200)] 
env: Rename SYS_RELOC_GD_ENV_ADDR to ENV_RELOC_GD_ENV_ADDR

Rename the variable and add ENV_ prefix, so that all configuration
options which are related to environment would have an CONFIG_ENV_
prefix. No functional change.

Reviewed-by: Tom Rini <trini@konsulko.com>
Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
6 weeks agoenv: Rename SYS_REDUNDAND_ENVIRONMENT to ENV_REDUNDANT
Marek Vasut [Mon, 9 Jun 2025 19:26:37 +0000 (21:26 +0200)] 
env: Rename SYS_REDUNDAND_ENVIRONMENT to ENV_REDUNDANT

Rename the variable and add ENV_ prefix, so that all configuration
options which are related to environment would have an CONFIG_ENV_
prefix. No functional change.

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
6 weeks agoenv: Rename OVERWRITE_ETHADDR_ONCE to ENV_OVERWRITE_ETHADDR_ONCE
Marek Vasut [Mon, 9 Jun 2025 19:26:36 +0000 (21:26 +0200)] 
env: Rename OVERWRITE_ETHADDR_ONCE to ENV_OVERWRITE_ETHADDR_ONCE

Rename the variable and add ENV_ prefix, so that all configuration
options which are related to environment would have an CONFIG_ENV_
prefix. No functional change.

Reviewed-by: Quentin Schulz <quentin.schulz@cherry.de>
Reviewed-by: Tom Rini <trini@konsulko.com>
Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
6 weeks agoMerge patch series "bootstd: Fix efi_mgr usage in bootmeths env var"
Tom Rini [Fri, 20 Jun 2025 14:01:16 +0000 (08:01 -0600)] 
Merge patch series "bootstd: Fix efi_mgr usage in bootmeths env var"

Sam Protsenko <semen.protsenko@linaro.org> says:

Defining the 'bootmeths' environment variable with efi_mgr causes NULL
pointer dereference when running 'bootflow scan' on the E850-96 board.
This patch series fixes that, and cleans up the surrounding code a
little while at it.

Link: https://lore.kernel.org/r/20250112034213.13153-1-semen.protsenko@linaro.org
6 weeks agobootstd: Fix incorrect struct name in bootmeth_setup_iter_order()
Sam Protsenko [Sun, 12 Jan 2025 03:42:13 +0000 (21:42 -0600)] 
bootstd: Fix incorrect struct name in bootmeth_setup_iter_order()

There is no such thing as struct bootmeth, it's probably a typo. This
issue doesn't affect the execution as it's a pointer, and pointer sizes
are the same for all data types. But it can be confusing, so make it
struct udevice, as it should be.

Fixes: a950d31abe98 ("bootstd: Add the bootmeth uclass and helpers")
Signed-off-by: Sam Protsenko <semen.protsenko@linaro.org>
6 weeks agobootstd: Probe bootmeth devices for bootmeths env var
Sam Protsenko [Sun, 12 Jan 2025 03:42:12 +0000 (21:42 -0600)] 
bootstd: Probe bootmeth devices for bootmeths env var

Specifying efi_mgr in 'bootmeths' environment variable leads to NULL
pointer dereference when 'bootflow scan' is executed, with call trace
like this:

    priv->fake_dev // NULL pointer dereference
    .read_bootflow = efi_mgr_read_bootflow()
    bootmeth_get_bootflow()
    bootflow_check()
    bootflow_scan_first()
    do_bootflow_scan()
    'bootflow scan -l'

That happens because in case when 'bootmeths' env var is defined the
bootmeth_efi_mgr driver is not probed, and the memory for its private
data isn't allocated by .priv_auto. In case when 'bootmeths' env var is
not defined, the std->bootmeth_count is 0, and the execution flow in
bootmeth_setup_iter_order() takes "no ordering" path, which in turn runs
uclass_get_device_by_seq() -> ... -> device_probe(), so issue isn't
present there. But when 'bootmeths' is defined and contains efi_mgr, the
std->bootmeth_count > 0, so bootmeth_setup_iter_order() follows the "we
have an ordering" path, where devices are not probed. In other words:

    'bootmeths' defined           'bootmeths' not defined
    --------------------------------------------------------
    priv == NULL                    priv != NULL
         ^                                ^
         |                        device_alloc_priv()
     no probe                     device_of_to_plat()
         ^                        device_probe()
         |                        uclass_get_device_tail()
    dev = order[i]                uclass_get_device_by_seq()
         ^                                ^
         | have an ordering               | no ordering
         +----------------+---------------+
                          |
             bootmeth_setup_iter_order()
             bootflow_scan_first()
             do_bootflow_scan()

Add an explicit device_probe() call in "we have an ordering" case to fix
the issue.

Fixes: c627cfc14c08 ("bootstd: Allow scanning for global bootmeths separately")
Signed-off-by: Sam Protsenko <semen.protsenko@linaro.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
6 weeks agobootstd: Fix memleak on errors in bootmeth_setup_iter_order()
Sam Protsenko [Sun, 12 Jan 2025 03:42:11 +0000 (21:42 -0600)] 
bootstd: Fix memleak on errors in bootmeth_setup_iter_order()

Free memory allocated for 'order' (array of bootmeths) on error paths in
bootmeth_setup_iter_order() function.

Fixes: c627cfc14c08 ("bootstd: Allow scanning for global bootmeths separately")
Fixes: 10d16faa436c ("bootstd: Detect empty bootmeth")
Signed-off-by: Sam Protsenko <semen.protsenko@linaro.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
6 weeks agoMerge tag 'u-boot-at91-2025.10-a' of https://source.denx.de/u-boot/custodians/u-boot...
Tom Rini [Fri, 20 Jun 2025 13:59:34 +0000 (07:59 -0600)] 
Merge tag 'u-boot-at91-2025.10-a' of https://source.denx.de/u-boot/custodians/u-boot-at91 into next

First set of u-boot-at91 features for the 2025.10 cycle:

This feature set includes the addition of new sam9x7 SoC and a new board
named sam9x7-curiosity. There is also new support for sam9x60 compatible
at91 watchdog.

6 weeks agodtc: Add Kconfig option to pad device tree blob
Eric Schikschneit [Tue, 3 Jun 2025 17:06:24 +0000 (12:06 -0500)] 
dtc: Add Kconfig option to pad device tree blob

This will allow arch(s) that use device tree blobs to pad the end of the
device tree so they can be modified by board files at run time. This will
help prevent errors such as FDT_ERR_NOSPACE from occurring.

Signed-off-by: Eric Schikschneit <eric.schikschneit@novatechautomation.com>
[trini: Change default order so that X86 && EFI_APP works correctly]

6 weeks agoMerge branch 'next' of https://source.denx.de/u-boot/custodians/u-boot-sh into next
Tom Rini [Thu, 19 Jun 2025 14:11:25 +0000 (08:11 -0600)] 
Merge branch 'next' of https://source.denx.de/u-boot/custodians/u-boot-sh into next

- Assorted cleanups and R-Car Gen4 watchdog driver

6 weeks agoconfigs: sam9x75_curiosity: Add initial mmc default config
Manikandan Muralidharan [Tue, 3 Jun 2025 05:05:56 +0000 (10:35 +0530)] 
configs: sam9x75_curiosity: Add initial mmc default config

Add default configuration for sd-card to boot the linux kernel.

Signed-off-by: Manikandan Muralidharan <manikandan.m@microchip.com>
Reviewed-by: Eugen Hristev <eugen.hristev@linaro.org>
6 weeks agoboard: sam9x75_curiosity: Add support for sam9x75 curiosity
Manikandan Muralidharan [Tue, 3 Jun 2025 05:05:55 +0000 (10:35 +0530)] 
board: sam9x75_curiosity: Add support for sam9x75 curiosity

Add board specific functions for sam9x75 curiosity

Signed-off-by: Manikandan Muralidharan <manikandan.m@microchip.com>
Reviewed-by: Eugen Hristev <eugen.hristev@linaro.org>
6 weeks agoARM: dts: at91: sam9x75_curiosity: add tweaks for sam9x75 curiosity board
Manikandan Muralidharan [Tue, 3 Jun 2025 05:05:54 +0000 (10:35 +0530)] 
ARM: dts: at91: sam9x75_curiosity: add tweaks for sam9x75 curiosity board

Since the SoC and board DT are already available in dts/upstream,
add the difference from upstream DTS to at91-sam9x75_curiosity-u-boot.dtsi

Signed-off-by: Manikandan Muralidharan <manikandan.m@microchip.com>
Reviewed-by: Eugen Hristev <eugen.hristev@linaro.org>
6 weeks agoARM: at91: Add sam9x7 soc
Varshini Rajendran [Tue, 3 Jun 2025 05:05:53 +0000 (10:35 +0530)] 
ARM: at91: Add sam9x7 soc

Add new Microchip sam9x7 SoC based on an ARM926.

Signed-off-by: Varshini Rajendran <varshini.rajendran@microchip.com>
Signed-off-by: Balamanikandan Gunasundar <balamanikandan.gunasundar@microchip.com>
Signed-off-by: Manikandan Muralidharan <manikandan.m@microchip.com>
6 weeks agoclk: at91: sam9x7: add pmc driver for sam9x7 SoC family
Varshini Rajendran [Tue, 3 Jun 2025 05:05:52 +0000 (10:35 +0530)] 
clk: at91: sam9x7: add pmc driver for sam9x7 SoC family

Add PMC driver support for sam9x7 SoC family

Signed-off-by: Varshini Rajendran <varshini.rajendran@microchip.com>
[balamanikandan.gunasundar@microchip.com: Add peripheral clock id for pmecc]
Signed-off-by: Balamanikandan Gunasundar <balamanikandan.gunasundar@microchip.com>
6 weeks agoclk: at91: clk-main: drop parent_name check when registering main_rc oscillator
Manikandan Muralidharan [Tue, 3 Jun 2025 05:05:51 +0000 (10:35 +0530)] 
clk: at91: clk-main: drop parent_name check when registering main_rc oscillator

The clk_register function logs an error if parent_name is missing from the
Device Tree.On the SAM9X7, the main_rc node is omitted to stay aligned with
the Linux Device Tree.Remove the parent_name check in at91_clk_main_rc()
to allow it to pass NULL when the parent is not specified.

Signed-off-by: Manikandan Muralidharan <manikandan.m@microchip.com>
6 weeks agoclk: at91: sam9x60-pll: add support for HW PLL freq dividers
Varshini Rajendran [Tue, 3 Jun 2025 05:05:50 +0000 (10:35 +0530)] 
clk: at91: sam9x60-pll: add support for HW PLL freq dividers

Add support for hardware dividers for PLL IDs.In sam9x7 SoC,
PLL_ID_PLLA and PLL_ID_PLLA_DIV2 has /2 hardware dividers
each.

fcorepllack -----> HW Div = 2 -+--> fpllack
                               |
                               +--> HW Div = 2 ---> fplladiv2ck

Signed-off-by: Varshini Rajendran <varshini.rajendran@microchip.com>
6 weeks agoclk: at91: sam9x60-pll: add support for core clock frequency inputs
Varshini Rajendran [Tue, 3 Jun 2025 05:05:49 +0000 (10:35 +0530)] 
clk: at91: sam9x60-pll: add support for core clock frequency inputs

Add support for different core clock frequency input ranges
for different PLL IDs in the PLL driver and align sam9x60, sama7g5 SOC
platforms.

Signed-off-by: Varshini Rajendran <varshini.rajendran@microchip.com>
6 weeks agodt-bindings: drop at91.h from clock includes
Manikandan Muralidharan [Tue, 3 Jun 2025 05:05:48 +0000 (10:35 +0530)] 
dt-bindings: drop at91.h from clock includes

Remove clock/at91.h file as it is subset of
dts/upstream/include/dt-bindings/clock/at91.h.
The constants defined in this header are being used only in dts

Signed-off-by: Manikandan Muralidharan <manikandan.m@microchip.com>
6 weeks agoboard: sama5d27_wlsom1_ek: Get RAM size and base from devicetree
Fabio Estevam [Thu, 8 May 2025 00:07:10 +0000 (21:07 -0300)] 
board: sama5d27_wlsom1_ek: Get RAM size and base from devicetree

Instead of using defines for the RAM size and base address, retrieve these
information from the devicetree.

This aligns with the sama5d27_som1_ek board in commit 73c1589f025d9
("board: sama5d27_som1_ek: Get dram size and base from device tree").

While at it, remove a spurious '/* SPL */' comment.

Signed-off-by: Fabio Estevam <festevam@denx.de>
6 weeks agoARM: dts: at91: sam9x60-curiosity: Enable watchdog node
Zixun LI [Mon, 28 Apr 2025 09:16:28 +0000 (11:16 +0200)] 
ARM: dts: at91: sam9x60-curiosity: Enable watchdog node

Enable watchdog node on SAM9X60-Curiosity board.

A default timeout of 16s is added which is the maximum supported value,
also matching Linux driver's behavior.

Signed-off-by: Zixun LI <admin@hifiphile.com>
Reviewed-by: Eugen Hristev <eugen.hristev@linaro.org>
Reviewed-by: Stefan Roese <sr@denx.de>
6 weeks agoARM: dts: sam9x60: Add watchdog DT node
Zixun LI [Mon, 28 Apr 2025 09:16:27 +0000 (11:16 +0200)] 
ARM: dts: sam9x60: Add watchdog DT node

Add the watchdog timer node for the sam9x60 SoC's.

Signed-off-by: Zixun LI <admin@hifiphile.com>
Reviewed-by: Eugen Hristev <eugen.hristev@linaro.org>
Reviewed-by: Stefan Roese <sr@denx.de>
6 weeks agowatchdog: at91sam9_wdt: Add SAM9X60 support
Zixun LI [Mon, 28 Apr 2025 09:16:26 +0000 (11:16 +0200)] 
watchdog: at91sam9_wdt: Add SAM9X60 support

SAM9X60 has a slightly different watchdog implementation:
- Timer value moved into a new register WLR
- Some MR register fields have their position changed

This patch add SAM9X60 support, also adds a compatible
for SAMA5D4 which is the same as existing SAM9260.

Signed-off-by: Zixun LI <admin@hifiphile.com>
Reviewed-by: Stefan Roese <sr@denx.de>
6 weeks agowatchdog: at91sam9_wdt: Rename priv to wdt
Zixun LI [Mon, 28 Apr 2025 09:16:25 +0000 (11:16 +0200)] 
watchdog: at91sam9_wdt: Rename priv to wdt

"wdt" is a better name for watchdog rather than generic "priv".

Signed-off-by: Zixun LI <admin@hifiphile.com>
Reviewed-by: Stefan Roese <sr@denx.de>
6 weeks agoarm: at91: wdt: Rename regval in priv data to mr
Zixun LI [Mon, 28 Apr 2025 09:16:24 +0000 (11:16 +0200)] 
arm: at91: wdt: Rename regval in priv data to mr

Use the name "mr" since we are referring to timer mode register.

Signed-off-by: Zixun LI <admin@hifiphile.com>
Reviewed-by: Stefan Roese <sr@denx.de>
6 weeks agoarm: at91: wdt: Remove at91_wdt struct
Zixun LI [Mon, 28 Apr 2025 09:16:23 +0000 (11:16 +0200)] 
arm: at91: wdt: Remove at91_wdt struct

at91_wdt struct is only used by spl, remove this reference and the struct
itself.

Signed-off-by: Zixun LI <admin@hifiphile.com>
Reviewed-by: Stefan Roese <sr@denx.de>
6 weeks agoMerge patch series "Print version of the DM firmware"
Tom Rini [Wed, 18 Jun 2025 18:20:41 +0000 (12:20 -0600)] 
Merge patch series "Print version of the DM firmware"

Moteen Shah <m-shah@ti.com> says:

This patch series adds the functionality to print the DM firmware
version being used. Before requesting TISCI for the DM version we
first check if the DM split mode capability exists, if yes, we proceed
onto making the call to TISCI for retrieving the version information.

DM split mode capability indicates that the DM is a separate binary
altogether and has its own versioning information similar to TIFS.

Boot Logs: https://gist.github.com/Jamm02/37864f605445944a0c0caf426e0aba50

Link: https://software-dl.ti.com/tisci/esd/latest/2_tisci_msgs/general/core.html#tisci-msg-query-fw-caps
Link: https://lore.kernel.org/r/20250609081434.1000377-1-m-shah@ti.com
6 weeks agoMerge patch series "Add IPC support on MCU R5F cluster in Split Mode"
Tom Rini [Wed, 18 Jun 2025 18:16:50 +0000 (12:16 -0600)] 
Merge patch series "Add IPC support on MCU R5F cluster in Split Mode"

Beleswar Padhi <b-padhi@ti.com> says:

This series adds remoteproc support on MCU R5F in Split mode.

During boot, ROM can bring up the boot R5F cores in either lockstep or
split mode based on X509 certificate flags. If booted in lockstep mode,
the MCU R5F cores will run first the R5 SPL, and then once A72 comes up,
will run the Device Manager (DM) firmware. But if booted in split mode, core
0 will run DM firmware and second core sits in WFI. Shut it down so that
other firmwares can later be loaded on them.

The shutdown of MCU R5 Core 1 is invoked at A72 SPL init, as by that
time Device Manager (DM) is up and running on R5 Core 0. The shutdown
of MCU R5 Core 1 is handled by Device Manager itself.

Test logs:
https://gist.github.com/3V3RYONE/ee8e3cb9aa5f4c5c00b059b9c14bfa98

Link: https://lore.kernel.org/r/20250609081429.1724643-1-b-padhi@ti.com
6 weeks agoMerge patch series "bootstd: New bootmeth for RAUC A/B systems"
Tom Rini [Wed, 18 Jun 2025 18:16:29 +0000 (12:16 -0600)] 
Merge patch series "bootstd: New bootmeth for RAUC A/B systems"

Martin Schwan <m.schwan@phytec.de> says:

This series implements a new bootmeth for RAUC A/B systems. RAUC (Robust
Auto Update Controller) is a lightweight update client, providing "Safe
and Secure OTA Updates for Embedded Linux". See the following links for
more information about RAUC:

  https://rauc.io/
  https://rauc.readthedocs.io/en/latest/

PHYTEC uses RAUC in its Yocto based distribution "Ampliphy" as the
default way of updating embedded devices based on PHYTEC hardware. So
far, the logic selecting the correct partitions and files to boot was
being implemented in the U-Boot environment. While this is a
straightforward way to do it, adding and supporting new platforms became
somewhat tedious and is platform-specific. The introduction of U-Boot's
"Standard Boot" provided a convincing alternative, promising a simpler
and more portable way of booting, even for RAUC systems. This led me to
implement a new bootmeth supporting RAUC A/B systems. Note, that this
new bootmeth is not proprietary to PHYTEC products and is designed to
work on other hardware with a RAUC A/B system, too.

The bootmeth currently only supports symmetric A/B partitioning layouts.
E.g. A/rescue is not (yet) supported. The partition indexes and default
slot tries can be specified via configuration options.

For now, the bootmeth_rauc uses a similar approach for loading the
Kernel and device tree as the bootmeth_script, in that it requires a FIT
containing a U-Boot script loading the desired distro. It could be
possible to support booting without a script and load the Kernel and DT
directly with this bootmeth, but I found the script method to be very
flexible for now, in letting the distro decide what to load.

The bootmeth_rauc was tested on a phyBOARD-Pollux i.MX8M Plus [1] with
BSP-Yocto-Ampliphy-i.MX8MP-PD24.1.2 [2].

Supported boot devices are currently only MMC devices, but it should be
possible to add SPI flashes in the future.

To test this patch stack with PHYTEC's phyBOARD-Pollux i.MX8M Plus
board, you need to adjust the boot files to include the boot.scr.uimg
containing the distro's boot script and set "optargs" to "${raucargs}"
in it. Also disable any legacyboot in the U-Boot environment and simply
boot with Standard Boot:

  bootmeth order rauc
  bootflow scan -lb

[1]: https://www.phytec.eu/en/produkte/single-board-computer/phyboard-pollux/
[2]: https://download.phytec.de/Software/Linux/BSP-Yocto-i.MX8MP/BSP-Yocto-Ampliphy-i.MX8MP-PD24.1.2/

Link: https://lore.kernel.org/r/20250604-wip-bootmeth-rauc-v3-0-f9fad913c57e@phytec.de
[trini: Don't enable by default]

6 weeks agoarm: mach-k3: Print version of DM firmware during boot process
Moteen Shah [Mon, 9 Jun 2025 08:14:34 +0000 (13:44 +0530)] 
arm: mach-k3: Print version of DM firmware during boot process

Print DM firmware's version in the boot up process of K3 devices,
having DM capability(DM as a separate binary).

Signed-off-by: Moteen Shah <m-shah@ti.com>
6 weeks agoarm: mach-k3: Add a function for printing DM version
Moteen Shah [Mon, 9 Jun 2025 08:14:33 +0000 (13:44 +0530)] 
arm: mach-k3: Add a function for printing DM version

Add a function to print version of the DM firmware in use.
The function queries the firmware capabilities first and if
DM split mode bit is set, sends a request to TISCI for
retrieving the version information.

The DM split mode bit indicates that DM is a separate binary
altogether and hence it will have its own versioning.

Signed-off-by: Moteen Shah <m-shah@ti.com>
Reviewed-by: Neha Malcom Francis <n-francis@ti.com>
6 weeks agofirmware: ti_sci.c: Add a function to request DM metadata using ti_sci* calls
Moteen Shah [Mon, 9 Jun 2025 08:14:32 +0000 (13:44 +0530)] 
firmware: ti_sci.c: Add a function to request DM metadata using ti_sci* calls

Add a function to retrieve information of the DM firmware's ABI versions,
RM/PM HAL, firmware version, etc using TI_SCI protocol.

Signed-off-by: Moteen Shah <m-shah@ti.com>
Reviewed-by: Neha Malcom Francis <n-francis@ti.com>
Reviewed-by: Dhruva Gole <d-gole@ti.com>
6 weeks agofirmware: ti_sci.c: Add a function to query DM firmware's capability
Moteen Shah [Mon, 9 Jun 2025 08:14:31 +0000 (13:44 +0530)] 
firmware: ti_sci.c: Add a function to query DM firmware's capability

Add a new function to query the capabilities of the DM firmware, using
TI SCI protocol to retrieve a 64-bit firmware capability, where each bit
represents a specific capability supported by the firmware.

Signed-off-by: Moteen Shah <m-shah@ti.com>
Reviewed-by: Neha Malcom Francis <n-francis@ti.com>
Reviewed-by: Dhruva Gole <d-gole@ti.com>
6 weeks agoti_sci_* : Add capability to access DM firmware's metadata
Moteen Shah [Mon, 9 Jun 2025 08:14:30 +0000 (13:44 +0530)] 
ti_sci_* : Add capability to access DM firmware's metadata

Introduce response and request structs to receive and request
information regarding DM version, etc from TI SCI.

Signed-off-by: Moteen Shah <m-shah@ti.com>
Reviewed-by: Neha Malcom Francis <n-francis@ti.com>
Reviewed-by: Dhruva Gole <d-gole@ti.com>
6 weeks agoti_sci_*: Add utility to access tisci firmware and SOC capability
Moteen Shah [Mon, 9 Jun 2025 08:14:29 +0000 (13:44 +0530)] 
ti_sci_*: Add utility to access tisci firmware and SOC capability

Introduce response and request structs for receiving information
regarding FW/SOC capability from DM. The received capability can
further be used to call certain API's based on the feature supoorted
by the DM firmware.

Signed-off-by: Moteen Shah <m-shah@ti.com>
Reviewed-by: Neha Malcom Francis <n-francis@ti.com>
Reviewed-by: Dhruva Gole <d-gole@ti.com>
6 weeks agoboard: ti: j7*: Add firmware for MCU R5 core1
Beleswar Padhi [Mon, 9 Jun 2025 08:14:29 +0000 (13:44 +0530)] 
board: ti: j7*: Add firmware for MCU R5 core1

Link the default firmware in the environment variable for MCU R5 core1
for all J7 platforms.

Signed-off-by: Beleswar Padhi <b-padhi@ti.com>
Reviewed-by: Neha Malcom Francis <n-francis@ti.com>
6 weeks agoremoteproc: k3-r5: Acquire processor control before reset ops
Beleswar Padhi [Mon, 9 Jun 2025 08:14:28 +0000 (13:44 +0530)] 
remoteproc: k3-r5: Acquire processor control before reset ops

Acquire processor control before doing core reset operations in probe
routine. Release the control afterwards, so that it can be acquired
during core loading operations.

Signed-off-by: Beleswar Padhi <b-padhi@ti.com>
Reviewed-by: Neha Malcom Francis <n-francis@ti.com>
6 weeks agoarch: mach-k3: common: Add support to shutdown MCU R5 Core 1
Beleswar Padhi [Mon, 9 Jun 2025 08:14:27 +0000 (13:44 +0530)] 
arch: mach-k3: common: Add support to shutdown MCU R5 Core 1

During boot, ROM can bring up the MCU R5F cores in either lockstep or
split mode based on X509 certificate flags. If booted in split mode,
core 0 will run DM firmware and second core sits in WFI. Add support to
shut down core 1 so that other firmwares can later be loaded on them.

The shutdown of MCU R5 Core 1 is invoked at A72 SPL init, as by that
time Device Manager (DM) is up and running on R5 Core 0. The shutdown
request of Core 1 is handled by Device Manager itself.

Signed-off-by: Beleswar Padhi <b-padhi@ti.com>
6 weeks agoarm: mach-k3: {am6/j7}*_hardware.h: Expose MCU R5 proc and device ids
Beleswar Padhi [Mon, 9 Jun 2025 08:14:26 +0000 (13:44 +0530)] 
arm: mach-k3: {am6/j7}*_hardware.h: Expose MCU R5 proc and device ids

Currently the MCU R5 processor ids and device ids are only defined for
R5 SPL Stage. Expose these ids always so that A72 SPL can utilize this
information to shutdown MCU R5 Core 1 when booted in Split mode.

Signed-off-by: Beleswar Padhi <b-padhi@ti.com>
Reviewed-by: Neha Malcom Francis <n-francis@ti.com>
6 weeks agodoc: Add description for bootmeth rauc
Martin Schwan [Wed, 4 Jun 2025 12:15:30 +0000 (14:15 +0200)] 
doc: Add description for bootmeth rauc

Add documentation for the bootmeth "rauc", which boots an A/B system
with RAUC from MMC.

Signed-off-by: Martin Schwan <m.schwan@phytec.de>
6 weeks agobootstd: Add implementation for bootmeth rauc
Martin Schwan [Wed, 4 Jun 2025 12:15:29 +0000 (14:15 +0200)] 
bootstd: Add implementation for bootmeth rauc

Add a bootmeth driver which supports booting A/B system with RAUC as
their update client.

Signed-off-by: Martin Schwan <m.schwan@phytec.de>
Tested-by: Wadim Egorov <w.egorov@phytec.de>
6 weeks agorenesas: Renesas R-Car Gen4 watchdog driver
Shmuel Leib Melamud [Wed, 11 Jun 2025 00:25:52 +0000 (03:25 +0300)] 
renesas: Renesas R-Car Gen4 watchdog driver

Add support of Renesas R-Car Gen4 watchdog timer. Timeouts up to
8184.0s are supported (CKS1 register is not involved). The watchdog
uses the clock of type CLK_TYPE_GEN4_MDSEL.

The timeout is set in
dts/upstream/src/arm64/renesas/r8a779f0-spider-cpu.dtsi section &rwdt.

This driver is based on upstream linux commit:
e70140ba0d2b("Get rid of 'remove_new' relic from platform driver struct")

Signed-off-by: Shmuel Leib Melamud <smelamud@redhat.com>
Reviewed-by: Mattijs Korpershoek <mkorpershoek@kernel.org>
Reviewed-by: Stefan Roese <sr@denx.de>
Reviewed-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
6 weeks agoMerge patch series "list.h/treewide: get rid of no-op prefetch()"
Tom Rini [Wed, 18 Jun 2025 14:05:29 +0000 (08:05 -0600)] 
Merge patch series "list.h/treewide: get rid of no-op prefetch()"

Rasmus Villemoes <ravi@prevas.dk> says:

While looking through list.h, I saw that the regular list_* helpers
(and one of the hlist_* ones) still contain the prefetch() that was
removed in linux 14 years ago. It doesn't do anything, but makes the
macros harder to read, so get rid of it, and the fallback, no-op
definition that they relied on. That requires removing a few uses
outside list.h as well.

checkpatch warns about some whitespace issues in list.h, but as I've
copied whole kerneldoc+#define blocks directly from the linux kernel,
I think it's better to just accept that so that we don't introduce
needless diffs. The "macro argument reuse" arguments should also be
ignored, as e.g. the "member" arguments are obviously always just bare
identifiers, and the "pos" arguments must be assigned to multiple
times.

Link: https://lore.kernel.org/r/20250507121246.518691-1-ravi@prevas.dk
6 weeks agolinux/list.h: drop fallback definition of prefetch()
Rasmus Villemoes [Wed, 7 May 2025 12:12:46 +0000 (14:12 +0200)] 
linux/list.h: drop fallback definition of prefetch()

None of the list helpers use prefetch() anymore, and no C code relies
on getting this definition from list.h. In any case, such an arch/cpu
specific thing does not belong in a header that just consists of cpp
helper macros.

Signed-off-by: Rasmus Villemoes <ravi@prevas.dk>
6 weeks agomips: drop unused prefetch code and logic
Rasmus Villemoes [Wed, 7 May 2025 12:12:45 +0000 (14:12 +0200)] 
mips: drop unused prefetch code and logic

AFAICT, CONFIG_CPU_HAS_PREFETCH has never existed as a proper Kconfig
symbol in U-Boot, nor has any board include file ever defined it.

Signed-off-by: Rasmus Villemoes <ravi@prevas.dk>
6 weeks agotreewide: drop no-op prefetch() calls
Rasmus Villemoes [Wed, 7 May 2025 12:12:44 +0000 (14:12 +0200)] 
treewide: drop no-op prefetch() calls

These all end up using the no-op prefetch() defined in linux/list.h,
because the only possible real implementation is in
arch/mips/include/asm/processor.h, which is behing
CONFIG_CPU_HAS_PREFETCH which is nowhere defined.

In order to be able to drop that fallback definition from list.h,
first remove all uses.

Signed-off-by: Rasmus Villemoes <ravi@prevas.dk>
6 weeks agolinux/list.h: drop use of prefetch()
Rasmus Villemoes [Wed, 7 May 2025 12:12:43 +0000 (14:12 +0200)] 
linux/list.h: drop use of prefetch()

The use of prefetch() in these list helpers was dropped back in 2011
in linux (e66eed651fd1 ("list: remove prefetching from regular list
iterators")). No arch in U-Boot defines any actual prefetch(), and as
the referenced commit says, it's usually not a win anyway.

Whole-sale sync of list.h is not really feasible, but we can
synchronize the macros containing a prefetch() with their linux
implementations as of v6.15-rc5, also importing the various helpers
needed, e.g. list_is_head() and list_next_entry().

Signed-off-by: Rasmus Villemoes <ravi@prevas.dk>
6 weeks agoclk: renesas: Handle CLK_TYPE_GEN4_MDSEL in gen3_clk_get_rate64()
Shmuel Leib Melamud [Wed, 11 Jun 2025 00:25:51 +0000 (03:25 +0300)] 
clk: renesas: Handle CLK_TYPE_GEN4_MDSEL in gen3_clk_get_rate64()

Add support of CLK_TYPE_GEN4_MDSEL clock type to gen3_clk_get_rate64()
function. In particular, this type of clock is used by Renesas R-Car
Gen4 watchdog. It operates similarly to CLK_TYPE_GEN3_MDSEL clock.

Signed-off-by: Shmuel Leib Melamud <smelamud@redhat.com>
Reviewed-by: Mattijs Korpershoek <mkorpershoek@kernel.org>
Reviewed-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
Reviewed-by: Stefan Roese <sr@denx.de>
6 weeks agoARM: dts: renesas: Drop most of bootph-* tags
Marek Vasut [Sun, 8 Jun 2025 19:04:14 +0000 (21:04 +0200)] 
ARM: dts: renesas: Drop most of bootph-* tags

The bootph-* tags are now part of mainline Linux DTs as commits:
f1a1268572cc ("ARM: dts: renesas: rcar-gen2: Add boot phase tags")
399f14ff6625 ("arm64: dts: renesas: rcar: Add boot phase tags")
624b2a23d46a ("arm64: dts: renesas: rzg2: Add boot phase tags")
Drop local duplicates of the same tags, as well as duplicate
property assignments which are part of the core DTs themselves.

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
Reviewed-by: Sumit Garg <sumit.garg@oss.qualcomm.com>
6 weeks agoMerge tag 'u-boot-imx-next-20250617' of https://gitlab.denx.de/u-boot/custodians...
Tom Rini [Tue, 17 Jun 2025 14:12:39 +0000 (08:12 -0600)] 
Merge tag 'u-boot-imx-next-20250617' of https://gitlab.denx.de/u-boot/custodians/u-boot-imx into next

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

- Add support for imx28 BTT boards.

6 weeks agoARM: imx: mxs: Add support for imx287 based BTT devices
Lukasz Majewski [Fri, 6 Jun 2025 10:38:38 +0000 (12:38 +0200)] 
ARM: imx: mxs: Add support for imx287 based BTT devices

The btt[c3] devices are based on imx287 SoC.

U-Boot SPL 2025.04-01081-g07e086681d26 (Apr 16 2025 - 12:24:36 +0200)
Trying to boot from MMC1

U-Boot 2025.04-01081-g07e086681d26 (Apr 16 2025 - 12:24:36 +0200)

CPU:   Freescale i.MX28 rev1.2 at 454 MHz
BOOT:  SSP SPI #3, master, 3V3 NOR
Model: BTT3
Board: LWE BTT SoM HW rev 0
DRAM:  256 MiB
Core:  86 devices, 15 uclasses, devicetree: separate
MMC:   MXS MMC: 0
Loading Environment from SPIFlash... SF: Detected is25lp128 with page
                    size 256 Bytes, erase size 64 KiB, total 16 MiB
OK
In:    serial@80074000
Out:   serial@80074000
Err:   serial@80074000
Net:   eth0: ethernet@800f0000
Hit any key to stop autoboot:  0

Signed-off-by: Lukasz Majewski <lukma@denx.de>
6 weeks agoMerge tag 'u-boot-dfu-next-20250616' of https://source.denx.de/u-boot/custodians...
Tom Rini [Mon, 16 Jun 2025 17:06:51 +0000 (11:06 -0600)] 
Merge tag 'u-boot-dfu-next-20250616' of https://source.denx.de/u-boot/custodians/u-boot-dfu into next

u-boot-dfu-next-20250616

CI: https://source.denx.de/u-boot/custodians/u-boot-dfu/-/pipelines/26704

Usb gadget:
- Atmel: Improve gadget disconnect stability by power cycling

6 weeks agoMerge tag 'u-boot-dfu-next-20250616' of https://source.denx.de/u-boot/custodians...
Tom Rini [Mon, 16 Jun 2025 15:39:31 +0000 (09:39 -0600)] 
Merge tag 'u-boot-dfu-next-20250616' of https://source.denx.de/u-boot/custodians/u-boot-dfu into next

u-boot-dfu-next-20250616

CI: https://source.denx.de/u-boot/custodians/u-boot-dfu/-/pipelines/26704

Usb gadget:
- Fix ti_musb driver in gadget mode (with DM_USB_GADGET)

DFU:
- mmc/scsi backends when using 10 or more partitions

6 weeks agousb: gadget: atmel: reliably generate disconnect by disabling controller
Zixun LI [Mon, 2 Jun 2025 15:45:08 +0000 (17:45 +0200)] 
usb: gadget: atmel: reliably generate disconnect by disabling controller

Contrary to the datasheet, setting both DETACH and PULLD_DIS bits to 1
does not always drive the DP and DM lines to high-impedance. This
prevents the host from reliably detecting a USB disconnect and subsequent
reconnect.

The symptom is that the first gadget command (e.g., dhcp) succeeds, while
subsequent commands (e.g., nfs) fail.

Disabling and re-enabling the controller entirely, instead of toggling the
PULLD_DIS bit, reliably generates a disconnect event.

The Linux driver works correctly because gadget_disconnect/gadget_connect
are always followed by gadget_udc_start/gadget_udc_stop. In U-Boot
pullup() is used solely.

This behavior has been observed on the SAM9X60-Curiosity and
AT91SAM9G25-EK boards and has been reported to Microchip.

Signed-off-by: Zixun LI <admin@hifiphile.com>
Link: https://lore.kernel.org/r/20250602-pullup-v1-1-edcde5a050dd@hifiphile.com
[mkorpershoek: reworded commit title + comment to usba_udc_pullup()]
Signed-off-by: Mattijs Korpershoek <mkorpershoek@kernel.org>
6 weeks agousb: gadget: musb: Fix duplicate ops assignment in ti_musb_peripheral
Kory Maincent [Wed, 11 Jun 2025 17:10:30 +0000 (19:10 +0200)] 
usb: gadget: musb: Fix duplicate ops assignment in ti_musb_peripheral

Remove duplicate .ops assignment that was overriding the correct
ti_musb_gadget_ops with musb_usb_ops (host ops) in the ti_musb_peripheral
driver. This was causing U-Boot crashes when trying to call the
handle_interrupts operation since the wrong ops structure was being used.

Fixes: 7d98dbcc3dc ("usb: musb-new: Add support for DM_USB")
Fixes: 281eaf1ed83a ("usb: gadget: musb: Convert interrupt handling to usb_gadget_generic_ops")
Signed-off-by: Kory Maincent <kory.maincent@bootlin.com>
Reviewed-by: Mattijs Korpershoek <mkorpershoek@kernel.org>
Link: https://lore.kernel.org/r/20250611171031.840277-1-kory.maincent@bootlin.com
Signed-off-by: Mattijs Korpershoek <mkorpershoek@kernel.org>
6 weeks agodfu: fix dev_part_str for file operations
Ivan Pang [Wed, 11 Jun 2025 05:00:38 +0000 (05:00 +0000)] 
dfu: fix dev_part_str for file operations

The third_arg for a dfu alt is read as an integer and is overloaded for
different supported backends. For ext4 and fat, this third_arg
represents the partition and forms the dev part string, which should
have its partition in hex. This commit fixes dfu ext4/fat usage for
devices with ten or more partitions.

Signed-off-by: Ivan Pang <ipman@amazon.com>
Reviewed-by: Mattijs Korpershoek <mkorpershoek@kernel.org>
Reviewed-by: Lukasz Majewski <lukma@denx.de>
Link: https://lore.kernel.org/r/20250611050127.38011-1-ipman@amazon.com
Signed-off-by: Mattijs Korpershoek <mkorpershoek@kernel.org>
6 weeks agoMerge tag 'rpi-2025.07-rc4' of https://source.denx.de/u-boot/custodians/u-boot-raspbe...
Tom Rini [Sun, 15 Jun 2025 16:31:03 +0000 (10:31 -0600)] 
Merge tag 'rpi-2025.07-rc4' of https://source.denx.de/u-boot/custodians/u-boot-raspberrypi

Updates for RPi for 2025.07-rc5:

- configs: rpi: set NR_DRAM_BANKS to 8 to accommodate RAM on 16GB models

6 weeks agoarm: dts: rockchip: Fix eMMC write on RK3528
Jonas Karlman [Fri, 13 Jun 2025 22:43:40 +0000 (22:43 +0000)] 
arm: dts: rockchip: Fix eMMC write on RK3528

Writing to eMMC on RK3528 is affected with the same or a similar issue
as on RK3588, where eMMC must init to HS200 at least once to fully work.

Trying to write u-boot-rockchip.bin to eMMC fails with:

  => mmc write $fileaddr 40 5000
  MMC write: dev # 0, block # 64, count 20480 ... mmc write failed
  0 blocks written: ERROR

For U-Boot to enable HS200 mode the mmc-hs200-1_8v prop must be defined
in the device tree. Linux does not seem to be affected and is able to
detect and use HS200 without this prop.

Enable use of HS200 and fix eMMC write on RK3528 by adding the missing
mmc-hs200-1_8v prop for affected boards:

  => mmc write $fileaddr 40 5000
  MMC write: dev # 0, block # 64, count 20480 ... 20480 blocks written: OK

Fixes: b112a44531cb ("board: rockchip: Add minimal generic RK3528 board")
Fixes: ccbddf645310 ("board: rockchip: Add Radxa E20C")
Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
6 weeks agoconfigs: rpi: set NR_DRAM_BANKS to 8 to accommodate RAM on 16GB models
Jan Čermák [Wed, 30 Apr 2025 17:15:35 +0000 (19:15 +0200)] 
configs: rpi: set NR_DRAM_BANKS to 8 to accommodate RAM on 16GB models

Raspberry Pi 5 can now have up to 16 GiB of RAM where the memory spans 8
DRAM banks in total. Increase the config value to 8 to initialize the
whole RAM. Without this change, kernel only sees 8 GiB of RAM on the 16
GiB CM5 as reported in [1].

[1] https://github.com/home-assistant/operating-system/issues/3989

Signed-off-by: Jan Čermák <sairon@sairon.cz>
Reviewed-by: Matthias Brugger <mbrugger@suse.com>
6 weeks agoMerge patch series "linux/bitfield.h: sync <linux/bitfield.h> from Linux 6.15 + winbond"
Tom Rini [Sat, 14 Jun 2025 15:13:39 +0000 (09:13 -0600)] 
Merge patch series "linux/bitfield.h: sync <linux/bitfield.h> from Linux 6.15 + winbond"

Christian Marangi <ansuelsmth@gmail.com> says:

This small series sync linux/bitfield.h from Linux 6.15 and fix all
the compilation error due to a change in the header include.

The sync is needed to make it easier to support the winbond changes.

The changes are CI test with [1]

[1] https://github.com/u-boot/u-boot/pull/777

Link: https://lore.kernel.org/r/20250607211133.2005-1-ansuelsmth@gmail.com
6 weeks agomtd: spinand: winbond: add Winbond W25N04KV flash support
Christian Marangi [Sat, 7 Jun 2025 21:11:21 +0000 (23:11 +0200)] 
mtd: spinand: winbond: add Winbond W25N04KV flash support

Add Winbond W25N04KV flash support that use a different value to detect
ECC bitflip.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
6 weeks agolinux/bitfield.h: sync <linux/bitfield.h> from Linux 6.15
Christian Marangi [Sat, 7 Jun 2025 21:11:20 +0000 (23:11 +0200)] 
linux/bitfield.h: sync <linux/bitfield.h> from Linux 6.15

Sync bitfield.h header with Linux 6.15 version. Mainly is to permit the
introduction of FIELD_PREP_CONST. The bug.h header changed to
build_bug.h doesn't cause any regression as we also ship split header
similar to how it's done with in Linux.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
6 weeks agoarm: apple: rtkit: add missing header linux/bug.h and linux/bitops.h
Christian Marangi [Sat, 7 Jun 2025 21:11:19 +0000 (23:11 +0200)] 
arm: apple: rtkit: add missing header linux/bug.h and linux/bitops.h

The GENMASK/GENMASK_ULL macro requires inclusion of linux/bitops.h
header. It does currently work as bitfield.h includes it indirectly
but this will change when bitfield.h will be synced with new Linux
version.

Also raw printf require linux/bug.h header (also currently included
indirectly by bitfield.h)

Explicitly include the headers to fix future compilation error.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
6 weeks agoiommu: qcom-smmu: add missing linux/bug.h header for WARN_ON
Christian Marangi [Sat, 7 Jun 2025 21:11:18 +0000 (23:11 +0200)] 
iommu: qcom-smmu: add missing linux/bug.h header for WARN_ON

The WARN macro requires inclusion of linux/bug.h header. It does
currently work as bitfield.h includes it indirectly but this will
change when bitfield.h will be synced with new Linux version.

Explicitly include the header to fix future compilation error.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
6 weeks agoclk: imx: add missing linux/bug.h header for WARN
Christian Marangi [Sat, 7 Jun 2025 21:11:17 +0000 (23:11 +0200)] 
clk: imx: add missing linux/bug.h header for WARN

The WARN macro requires inclusion of linux/bug.h header. It does
currently work as bitfield.h includes it indirectly but this will
change when bitfield.h will be synced with new Linux version.

Explicitly include the header to fix future compilation error.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
6 weeks agoMerge patch series "Hex value prefix case cleanup"
Tom Rini [Sat, 14 Jun 2025 15:10:48 +0000 (09:10 -0600)] 
Merge patch series "Hex value prefix case cleanup"

E Shattow <e@freeshell.de> says:

Make consistent use of lowercase hexadecimal prefix '0x' throughout U-Boot.

There are a few remaining uses of uppercase 'X' to denote hexadecimal prefix
or placeholder in documentation and error messages.

External devicetree-rebasing dts/upstream and the generated code of
xilinx/zynq are ignored for the series.

Link: https://lore.kernel.org/r/20250606224558.1117422-1-e@freeshell.de
6 weeks agoinclude: use lowercase hex prefix style
E Shattow [Fri, 6 Jun 2025 22:45:02 +0000 (15:45 -0700)] 
include: use lowercase hex prefix style

Use consistent lowercase hex prefix style in include/*

Signed-off-by: E Shattow <e@freeshell.de>
6 weeks agoarch: use lowercase hex prefix style
E Shattow [Fri, 6 Jun 2025 22:45:01 +0000 (15:45 -0700)] 
arch: use lowercase hex prefix style

Use consistent lowercase hex prefix style in arch/*

Signed-off-by: E Shattow <e@freeshell.de>
6 weeks agolib: use lowercase hex prefix style
E Shattow [Fri, 6 Jun 2025 22:45:00 +0000 (15:45 -0700)] 
lib: use lowercase hex prefix style

Use consistent lowercase hex prefix style in lib/*

Signed-off-by: E Shattow <e@freeshell.de>
6 weeks agotools: use lowercase hex prefix style
E Shattow [Fri, 6 Jun 2025 22:44:59 +0000 (15:44 -0700)] 
tools: use lowercase hex prefix style

Use consistent lowercase hex prefix style in tools/*

Signed-off-by: E Shattow <e@freeshell.de>
6 weeks agodrivers: use lowercase hex prefix style
E Shattow [Fri, 6 Jun 2025 22:44:58 +0000 (15:44 -0700)] 
drivers: use lowercase hex prefix style

Use consistent lowercase hex prefix style in drivers/*

Does not change hex prefix case in allcaps uppercase style error messages

Signed-off-by: E Shattow <e@freeshell.de>
6 weeks agoboard: use lowercase hex prefix style
E Shattow [Fri, 6 Jun 2025 22:44:57 +0000 (15:44 -0700)] 
board: use lowercase hex prefix style

Use consistent lowercase hex prefix style in board/*

Does not change auto-generated files in xilinx/zynq/*/ps7_init_gpl.c

Signed-off-by: E Shattow <e@freeshell.de>
6 weeks agoconfigs: use lowercase hex prefix style
E Shattow [Fri, 6 Jun 2025 22:44:56 +0000 (15:44 -0700)] 
configs: use lowercase hex prefix style

Use consistent lowercase hex prefix style in configs/*

Signed-off-by: E Shattow <e@freeshell.de>
6 weeks agoMerge patch series "drop volatile from global data"
Tom Rini [Fri, 13 Jun 2025 22:57:34 +0000 (16:57 -0600)] 
Merge patch series "drop volatile from global data"

Rasmus Villemoes <ravi@prevas.dk> says:

There's really no reason for the gd pointer to have the volatile
qualifier.

In fact, I claim that it's completely unnecessary and just pessimizes
code generation and forces ugly casts in lots of places. For example,
see the casts in drivers/core/tag.c where elements are added to
gd->dm_taglist, or a helper such as cyclic_get_list() that should not
be needed.

Also, it is what ends up standing in the way of an otherwise
innocent code cleanup of list.h:
https://lore.kernel.org/u-boot/20250522165656.GB2179216@bill-the-cat/

Note that riscv, x86 as well as arm64 with LTO enabled has not had
this volatile qualifier, so it's unlikely there's any generic code
that depends on it.

Link: https://lore.kernel.org/r/20250604195612.2312979-1-ravi@prevas.dk
6 weeks agoriscv: remove volatile from set_gd prototype
Rasmus Villemoes [Wed, 4 Jun 2025 19:56:12 +0000 (21:56 +0200)] 
riscv: remove volatile from set_gd prototype

It's slightly ironic that riscv at very first had the gd pointer
volatile qualified [6020faf62c3 ("riscv: nx25: include: Add header
files to support RISC-V")], removed that back in 2018
[40717eb849c ("riscv: checkpatch: Fix use of volatile")], and then in
2020 this helper was added [6b9966e1aa3 ("riscv: define function
set_gd()")] which needlessly had volatile in the prototype.

Signed-off-by: Rasmus Villemoes <ravi@prevas.dk>
6 weeks agoarm: remove volatile from set_gd prototype
Rasmus Villemoes [Wed, 4 Jun 2025 19:56:11 +0000 (21:56 +0200)] 
arm: remove volatile from set_gd prototype

The global gd pointer is no longer volatile-qualified. Callers of this
helper function have been updated to no longer use volatile-qualifed
temporary variables, so update the prototype accordingly.

Signed-off-by: Rasmus Villemoes <ravi@prevas.dk>
6 weeks agolib/trace: drop volatile qualifier from "save gd" variables
Rasmus Villemoes [Wed, 4 Jun 2025 19:56:10 +0000 (21:56 +0200)] 
lib/trace: drop volatile qualifier from "save gd" variables

The global gd pointer is no longer volatile-qualified, so drop that
qualifier from these bookkeeping variables.

Signed-off-by: Rasmus Villemoes <ravi@prevas.dk>
6 weeks agoefi: drop volatile qualifier from "save gd" variables
Rasmus Villemoes [Wed, 4 Jun 2025 19:56:09 +0000 (21:56 +0200)] 
efi: drop volatile qualifier from "save gd" variables

The global gd pointer is no longer volatile-qualified, so drop that
qualifier from these bookkeeping variables.

Signed-off-by: Rasmus Villemoes <ravi@prevas.dk>
Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
6 weeks agoarm: imx: remove unnecessary volatile qualifiers from "save gd" variables
Rasmus Villemoes [Wed, 4 Jun 2025 19:56:08 +0000 (21:56 +0200)] 
arm: imx: remove unnecessary volatile qualifiers from "save gd" variables

Now that the global gd pointer is no longer volatile-qualified,
there's no reason for the temporary variables used for
saving/restoring it to have that qualifier.

Signed-off-by: Rasmus Villemoes <ravi@prevas.dk>
Tested-by: Anshul Dalal <anshuld@ti.com>
6 weeks agoarc: drop volatile qualifier from gd pointer
Rasmus Villemoes [Wed, 4 Jun 2025 19:56:07 +0000 (21:56 +0200)] 
arc: drop volatile qualifier from gd pointer

Signed-off-by: Rasmus Villemoes <ravi@prevas.dk>
6 weeks agom68k: drop pointless #if 0 block
Rasmus Villemoes [Wed, 4 Jun 2025 19:56:06 +0000 (21:56 +0200)] 
m68k: drop pointless #if 0 block

The way DECLARE_GLOBAL_DATA_PTR is used, the stuff under #if 0 can
never compile as you cannot have a non-constant initializer at global
scope (and one would get linker errors as well because the 'gd' symbol
would be defined in multiple TUs).

Signed-off-by: Rasmus Villemoes <ravi@prevas.dk>
Acked-by: Angelo Dureghello <angelo@kernel-space.org>
6 weeks agom68k: drop volatile qualifier from gd pointer
Rasmus Villemoes [Wed, 4 Jun 2025 19:56:05 +0000 (21:56 +0200)] 
m68k: drop volatile qualifier from gd pointer

Signed-off-by: Rasmus Villemoes <ravi@prevas.dk>
6 weeks agomicroblaze: drop volatile qualifier from gd pointer
Rasmus Villemoes [Wed, 4 Jun 2025 19:56:04 +0000 (21:56 +0200)] 
microblaze: drop volatile qualifier from gd pointer

Signed-off-by: Rasmus Villemoes <ravi@prevas.dk>
6 weeks agomips: drop volatile qualifier from gd pointer
Rasmus Villemoes [Wed, 4 Jun 2025 19:56:03 +0000 (21:56 +0200)] 
mips: drop volatile qualifier from gd pointer

Signed-off-by: Rasmus Villemoes <ravi@prevas.dk>
6 weeks agopowerpc: drop volatile qualifier from gd pointer
Rasmus Villemoes [Wed, 4 Jun 2025 19:56:02 +0000 (21:56 +0200)] 
powerpc: drop volatile qualifier from gd pointer

Signed-off-by: Rasmus Villemoes <ravi@prevas.dk>
6 weeks agoarm: drop volatile qualifier from gd pointer
Rasmus Villemoes [Wed, 4 Jun 2025 19:56:01 +0000 (21:56 +0200)] 
arm: drop volatile qualifier from gd pointer

There's a bunch of other places where this qualifier should be
dropped, e.g. in the set_gd() prototype and for various variables used
for stashing the value in the mach-imx/ directory and elsewhere. But
that will be done in follow-up patches.

Signed-off-by: Rasmus Villemoes <ravi@prevas.dk>
Tested-by: Anshul Dalal <anshuld@ti.com>
6 weeks agosandbox: solve undefined reference to pthread_kill symbol
Raymond Mao [Wed, 4 Jun 2025 15:48:11 +0000 (08:48 -0700)] 
sandbox: solve undefined reference to pthread_kill symbol

This patch is to solve the sandbox building error:
$ make O=build-sandbox -s sandbox_defconfig
$ make O=build-sandbox -s -j2
/usr/bin/ld: /tmp/u-boot.27rzOu.ltrans58.ltrans.o: undefined reference to symbol 'pthread_kill@@GLIBC_2.2.5'
/usr/bin/ld: /lib/x86_64-linux-gnu/libpthread.so.0: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
[...]

Fixes: b989f9ed9fe1 ("test: lib: add initjmp() test")
Signed-off-by: Raymond Mao <raymond.mao@linaro.org>
Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org>
Tested-by: Patrice Chotard <patrice.chotard@foss.st.com>
7 weeks agospl: Rename jump_to_image_no_args()
Simon Glass [Wed, 28 May 2025 12:32:08 +0000 (06:32 -0600)] 
spl: Rename jump_to_image_no_args()

This function is currently a misnomer at times as we have cases where it
passes arguments to the image. In preparation for making that be a more
common case rename this function to jump_to_image(...). In order to do
this, rename jump_to_image in board_init_r(...) to jumper so that we do
not have a conflict.

Signed-off-by: Simon Glass <sjg@chromium.org>
[trini: Reword the commit message, adding missing cases of
        jump_to_image_no_args()]
Signed-off-by: Tom Rini <trini@konsulko.com>
7 weeks agox86: Move Intel GNVS file into the common include directory
Simon Glass [Wed, 28 May 2025 12:32:07 +0000 (06:32 -0600)] 
x86: Move Intel GNVS file into the common include directory

Move this so we can include it from sandbox, needed since it is in a
bloblist and must have a check.

Signed-off-by: Simon Glass <sjg@chromium.org>
7 weeks agoMerge patch series "ti: Add support for eCAP PWM and LCD pin mux"
Tom Rini [Thu, 12 Jun 2025 22:27:02 +0000 (16:27 -0600)] 
Merge patch series "ti: Add support for eCAP PWM and LCD pin mux"

Sukrut Bellary <sbellary@baylibre.com> says:

This patch series adds the support for

1. In am33xx SoC[1], enhanced capture (eCAP) supports auxiliary PWM (APWM).
This series adds the PWM driver support for the APWM feature for eCAP on
AM33xx. AM335X_ECAP0_IN_PWM0_OUT is used to enable the backlight.

2. Fix build warning in ti-ehrpwm driver in dev_deb().

3. Enable eCAP0 PWM and LCD pin muxing to support splash screen on
AM335x EVM[2].

[1] AM335x TRM - https://www.ti.com/lit/ug/spruh73q/spruh73q.pdf
[2] AM335x EVM - https://www.ti.com/tool/TMDXEVM3358

per discussion on the earlier patch series,
https://lore.kernel.org/all/20250319202516.3300444-1-sbellary@baylibre.com/
dropping the device tree changes in this series due to OF_UPSTREAM
conflict.
As we are dropping the DT patch, started with the new series instead of
V2.

This series doesn't contain defconfig changes since we don't want to
enable LCD, splash screen and PWM support by default.
Enabling splash screen and PWM support in defconfig causes u-boot crash
on AM335x based beaglebone black. This will be handled in a separate
patch.

Link: https://lore.kernel.org/r/20250530212232.1686613-1-sbellary@baylibre.com
7 weeks agoboard: ti: am335x: Enable eCAP0 PWM and LCD pin muxing
Sukrut Bellary [Fri, 30 May 2025 21:22:32 +0000 (14:22 -0700)] 
board: ti: am335x: Enable eCAP0 PWM and LCD pin muxing

On AM335x EVM[1],
1. pin AM335X_ECAP0_IN_PWM0_OUT is used to enable the
backlight. ECAP0 can be configured in single channel PWM mode.
If CONFIG_PWM_TI_ECAP is enabled, perform eCAP0 pin muxing.

2. Pins LCD_DATA0 - LCD_DATA15, gpmc_ad8 - gpmc_ad15 and
lcd_vsync, lcd_sync, lcd_ac_bias_en, lcd_pclk are used for driving LCD.
If CONFIG_AM335X_LCD is enabled, perform the LCD pin muxing.

This is required to enable splash screen support on AM335x EVM.
[1] AM335x EVM - https://www.ti.com/tool/TMDXEVM3358

Signed-off-by: Sukrut Bellary <sbellary@baylibre.com>
7 weeks agopwm: ti: am33xx: Fix build warnings in dev_dbg()
Sukrut Bellary [Fri, 30 May 2025 21:22:31 +0000 (14:22 -0700)] 
pwm: ti: am33xx: Fix build warnings in dev_dbg()

If CONFIG_PWM_TI_EHRPWM is enabled, it throws the build warning in
dev_dbg() due to incorrect format specifier as,

"warning: format ‘%lx’ expects argument of type ‘long unsigned int’, but
argument 4 has type ‘fdt_addr_t’ {aka ‘unsigned int’}".

Fix this with the correct format specifier.

Signed-off-by: Sukrut Bellary <sbellary@baylibre.com>
7 weeks agopwm: ti: am33xx: Enable Auxiliary PWM using eCAP
Sukrut Bellary [Fri, 30 May 2025 21:22:30 +0000 (14:22 -0700)] 
pwm: ti: am33xx: Enable Auxiliary PWM using eCAP

In am33xx SoC[1], enhanced capture (eCAP) supports auxiliary PWM (APWM).
This series adds the PWM driver support for the APWM feature for eCAP on
AM33xx.

eCAP HW also supports the capture mode. Currently, this driver only
supports APWM.

This is based on the Linux kernel driver -> drivers/pwm/pwm-tiecap.c
Version: v6.12

Tested on AM335x EVM[2].

[1] AM335x TRM - https://www.ti.com/lit/ug/spruh73q/spruh73q.pdf
[2] AM335x EVM - https://www.ti.com/tool/TMDXEVM3358

Signed-off-by: Sukrut Bellary <sbellary@baylibre.com>