]> git.ipfire.org Git - thirdparty/u-boot.git/log
thirdparty/u-boot.git
5 months agoconfigs: airoha: en7523: enable reset controller support
Mikhail Kshevetskiy [Sat, 1 Nov 2025 00:44:57 +0000 (03:44 +0300)] 
configs: airoha: en7523: enable reset controller support

This patch activates reset controller support for en7523 based boards

Signed-off-by: Mikhail Kshevetskiy <mikhail.kshevetskiy@iopsys.eu>
5 months agodts: airoha: en7523: add reset controller support
Mikhail Kshevetskiy [Sat, 1 Nov 2025 00:44:56 +0000 (03:44 +0300)] 
dts: airoha: en7523: add reset controller support

This patch adds reset controller support to en7523 dts

Signed-off-by: Mikhail Kshevetskiy <mikhail.kshevetskiy@iopsys.eu>
5 months agoreset: airoha: add support for airoha en7523 SoC family
Mikhail Kshevetskiy [Sat, 1 Nov 2025 00:44:55 +0000 (03:44 +0300)] 
reset: airoha: add support for airoha en7523 SoC family

This adds reset controller support for airoha en7523/en7529/en7562 SoCs.

Signed-off-by: Mikhail Kshevetskiy <mikhail.kshevetskiy@iopsys.eu>
5 months agodt-bindings: reset: Add reset support for Airoha EN7523
Mikhail Kshevetskiy [Sat, 1 Nov 2025 00:44:54 +0000 (03:44 +0300)] 
dt-bindings: reset: Add reset support for Airoha EN7523

Introduce reset capability for EN7523 device-tree binding

Signed-off-by: Mikhail Kshevetskiy <mikhail.kshevetskiy@iopsys.eu>
5 months agoreset: airoha: unify code using SCU regmap helper
Mikhail Kshevetskiy [Sat, 1 Nov 2025 00:44:53 +0000 (03:44 +0300)] 
reset: airoha: unify code using SCU regmap helper

This patch unify probing code using airoha SCU regmap helper, thus a
common function can be used instead of an7581/an7583 specific ones.

Signed-off-by: Mikhail Kshevetskiy <mikhail.kshevetskiy@iopsys.eu>
5 months agoreset: airoha: convert to regmap API
Christian Marangi [Sat, 1 Nov 2025 00:44:52 +0000 (03:44 +0300)] 
reset: airoha: convert to regmap API

In preparation for support for Airoha AN7583, convert the driver to
regmap API. This is needed as Airoha AN7583 will use syscon to access
reset registers.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
5 months agoconfigs: airoha: en7523: enable clk support
Mikhail Kshevetskiy [Sat, 1 Nov 2025 00:44:51 +0000 (03:44 +0300)] 
configs: airoha: en7523: enable clk support

This patch activates clk support for en7523 based boards

Signed-off-by: Mikhail Kshevetskiy <mikhail.kshevetskiy@iopsys.eu>
5 months agoclk: airoha: add support for airoha en7523 SoC family
Mikhail Kshevetskiy [Sat, 1 Nov 2025 00:44:50 +0000 (03:44 +0300)] 
clk: airoha: add support for airoha en7523 SoC family

This adds clock driver for airoha en7523/en7529/en7562 SoCs. The code
is based on corresponding linux driver.

Signed-off-by: Mikhail Kshevetskiy <mikhail.kshevetskiy@iopsys.eu>
5 months agoclk: airoha: use CHIP_SCU regmap helper
Mikhail Kshevetskiy [Sat, 1 Nov 2025 00:44:49 +0000 (03:44 +0300)] 
clk: airoha: use CHIP_SCU regmap helper

Use common helper to get CHIP_SCU registers.

Signed-off-by: Mikhail Kshevetskiy <mikhail.kshevetskiy@iopsys.eu>
5 months agoarm: airoha: introduce EN7523 helpers to get SCU and CHIP_SCU regmaps
Mikhail Kshevetskiy [Sat, 1 Nov 2025 00:44:48 +0000 (03:44 +0300)] 
arm: airoha: introduce EN7523 helpers to get SCU and CHIP_SCU regmaps

We need access SCU and CHIP_SCU regmaps in several places (clk-airoha,
reset-airoha, airoha_eth). Unfortunately these regmaps can't be easily
retrieved with a common code, because of different Airoha SoCs uses
a different dts structure.

To make life easy we can write a commonly named SoC specific helpers
for these tasks. This patch implements helpers for Airoha EN7523 SoC.

Signed-off-by: Mikhail Kshevetskiy <mikhail.kshevetskiy@iopsys.eu>
5 months agoarm: airoha: introduce AN7581 helpers to get SCU and CHIP_SCU regmaps
Mikhail Kshevetskiy [Sat, 1 Nov 2025 00:44:47 +0000 (03:44 +0300)] 
arm: airoha: introduce AN7581 helpers to get SCU and CHIP_SCU regmaps

We need access SCU and CHIP_SCU regmaps in several places (clk-airoha,
reset-airoha, airoha_eth). Unfortunately these regmaps can't be easily
retrieved with a common code, because of different Airoha SoCs uses
a different dts structure.

To make life easy we can write a commonly named SoC specific helpers
for these tasks. This patch implements helpers for Airoha AN7581 SoC.

Signed-off-by: Mikhail Kshevetskiy <mikhail.kshevetskiy@iopsys.eu>
5 months agoarm/airoha: add support for airoha en7523 SoC family
Mikhail Kshevetskiy [Sat, 1 Nov 2025 00:44:46 +0000 (03:44 +0300)] 
arm/airoha: add support for airoha en7523 SoC family

Basic support for en7523/en7529/en7562 SoCs. Within a patch
only serial console will be supported.

Signed-off-by: Mikhail Kshevetskiy <mikhail.kshevetskiy@iopsys.eu>
5 months agoairoha/an7581: add CONFIG_TARGET_AN7581=y to the defconfig
Mikhail Kshevetskiy [Sat, 1 Nov 2025 00:44:45 +0000 (03:44 +0300)] 
airoha/an7581: add CONFIG_TARGET_AN7581=y to the defconfig

This is required because airoha/en7523 will be added with the following
patches. Without this line config for en7523 will be created instead of
an7581.

Signed-off-by: Mikhail Kshevetskiy <mikhail.kshevetskiy@iopsys.eu>
5 months agoblock: typo 'to be write'
Heinrich Schuchardt [Wed, 5 Nov 2025 01:26:49 +0000 (02:26 +0100)] 
block: typo 'to be write'

%s/to be write/to write/

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
5 months agovirtio: typo 'private date'
Heinrich Schuchardt [Tue, 4 Nov 2025 23:42:31 +0000 (00:42 +0100)] 
virtio: typo 'private date'

%s/private date/private data/

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
5 months agovirtio: typo complaint
Heinrich Schuchardt [Tue, 4 Nov 2025 23:39:15 +0000 (00:39 +0100)] 
virtio: typo complaint

%s/v1.0 complaint/v1.0 compliant/

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
5 months agosound: typos 'to be write', 'writen'
Heinrich Schuchardt [Tue, 4 Nov 2025 23:02:03 +0000 (00:02 +0100)] 
sound: typos 'to be write', 'writen'

%s/to be write/to be written/
%s/writen/written/

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
5 months agosound: all sound devices must depend on CONFIG_SOUND
Heinrich Schuchardt [Fri, 31 Oct 2025 21:07:00 +0000 (22:07 +0100)] 
sound: all sound devices must depend on CONFIG_SOUND

Clean up the sound Kconfig options to let all sound devices depend on
CONFIG_SOUND.

Before this patch it was possible to select CONFIG_SOUND_MAX98357A even
with CONFIG_SOUND=n.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
5 months agotoradex: verdin-am62: sync rm-cfg with SDK 11.01.05.03 baseline
Vitor Soares [Tue, 28 Oct 2025 15:10:11 +0000 (15:10 +0000)] 
toradex: verdin-am62: sync rm-cfg with SDK 11.01.05.03 baseline

Update the resource management configuration (rm-cfg.yaml) to align
with the default configuration provided in TI's AM62xx Processor SDK
Linux version 11.01.05.03, generated using the K3 Resource Partitioning
Tool.

This matches the configuration from board/ti/am62x/rm-cfg.yaml and the
notable change is the sharing of MCU GPIO interrupts between DM R5 and
A53 cores, and reservation of an additional virtual interrupt and event
for TIFS usage.

Signed-off-by: Vitor Soares <vitor.soares@toradex.com>
Reviewed-by: Francesco Dolcini <francesco.dolcini@toradex.com>
Reviewed-by: Anshul Dalal <anshuld@ti.com>
5 months agoext4: include missing blk.h
Quentin Schulz [Tue, 28 Oct 2025 14:02:19 +0000 (15:02 +0100)] 
ext4: include missing blk.h

If missing, lbaint_t typedef will not be found in some cases.

[The proper fix for the commit above at the time would have been to
 include ide.h as only since commit 1a73661bc7a7 ("dm: Add a new header
 for block devices") is the typedef in blk.h]

Fixes: 04735e9c5578 ("Fix ext2/ext4 filesystem accesses beyond 2TiB")
Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
5 months agotest/py: multiplexed_log.py: Clean up and correct RunAndLog()
Tom Rini [Fri, 24 Oct 2025 17:26:42 +0000 (11:26 -0600)] 
test/py: multiplexed_log.py: Clean up and correct RunAndLog()

The general python documentation for the subprocess class recommends
that run() be used in all cases that it can handle. What we do in
RunAndLog is simple enough that run() is easy to switch to. In fact,
looking at this exposed a problem we have today, which is that we had
combined stdout and stderr but then looked at both stdout and stderr as
if they were separate. Stop combining them.

Signed-off-by: Tom Rini <trini@konsulko.com>
5 months agoMerge patch series "pwm: put symbols into a menu + use if DM_PWM block instead of...
Tom Rini [Fri, 7 Nov 2025 19:02:07 +0000 (13:02 -0600)] 
Merge patch series "pwm: put symbols into a menu + use if DM_PWM block instead of depends on"

Quentin Schulz <foss+uboot@0leil.net> says:

This improves readability in menuconfig by putting PWM symbols under a
Kconfig menu.

It also groups PWM symbols that depend on DM_PWM together under an if
DM_PWM block so that we don't need to always list the dependency in the
depends on of the symbol.

No intended change in behavior except how it shows in menuconfig.

Link: https://lore.kernel.org/r/20251030-pwm-kconfig-v2-0-d151a42784ce@cherry.de
5 months agopwm: fix typo in PWM_MESON help text
Quentin Schulz [Thu, 30 Oct 2025 10:03:58 +0000 (11:03 +0100)] 
pwm: fix typo in PWM_MESON help text

Reviewed-by: Tom Rini <trini@konsulko.com>
Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
5 months agopwm: put all PWM DM drivers under an if condition on DM_PWM
Quentin Schulz [Thu, 30 Oct 2025 10:03:57 +0000 (11:03 +0100)] 
pwm: put all PWM DM drivers under an if condition on DM_PWM

This simplifies the "depends on" since we don't need DM_PWM listed
explicitly there as it already is made explicit via the surrounding
"if". No intended change in behavior.

Reviewed-by: Tom Rini <trini@konsulko.com>
Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
5 months agopwm: make sandbox depend on DM_PWM
Quentin Schulz [Thu, 30 Oct 2025 10:03:56 +0000 (11:03 +0100)] 
pwm: make sandbox depend on DM_PWM

Since it is registered as a U_CLASS_DRIVER, Sandbox PWM driver is a
Driver Model Driver and thus to be usable depends on DM_PWM to be
selected.

Let's make sure of that via the appropriate Kconfig option.

Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
5 months agopwm: move all PWM related topics inside a Kconfig menu
Quentin Schulz [Thu, 30 Oct 2025 10:03:55 +0000 (11:03 +0100)] 
pwm: move all PWM related topics inside a Kconfig menu

So it's visually better split from the other subsystems when using
menuconfig.

Reviewed-by: Tom Rini <trini@konsulko.com>
Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
5 months agommc: renesas-sdhi: Add R-Car Gen5 support
Hai Pham [Mon, 27 Oct 2025 16:40:01 +0000 (17:40 +0100)] 
mmc: renesas-sdhi: Add R-Car Gen5 support

Add support for R-Car Gen5 SoCs into the driver.
The default quirk is identical to previous generation.

Signed-off-by: Hai Pham <hai.pham.ud@renesas.com>
Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org> # Tweak commit message
5 months agomailbox: Allow operation without .recv callback
Marek Vasut [Mon, 27 Oct 2025 16:38:38 +0000 (17:38 +0100)] 
mailbox: Allow operation without .recv callback

Some shared memory mailboxes may have empty receive operation,
because the data are polled by upper layers directly from the
shared memory region, and there is no completion interrupt or
bit of any sort. Allow empty .recv callback, and if the .recv
callback is empty, exit from mbox_recv() right away, because
any polling for completion here would be meaningless.

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
Reviewed-by: Alice Guo <alice.guo@nxp.com>
5 months agoclk: renesas: Isolate R-Car Gen3 driver to Gen3, Gen4 and RZ/G2L
Marek Vasut [Mon, 27 Oct 2025 16:33:29 +0000 (17:33 +0100)] 
clk: renesas: Isolate R-Car Gen3 driver to Gen3, Gen4 and RZ/G2L

Isolate Renesas R-Car Gen3 clock driver to R-Car Gen3 and Gen4 and RZ/G2L.
The Renesas R-Car Gen5 uses SCMI clock protocol driver instead. This is
a preparatory change for R-Car Gen5. No functional change.

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
5 months agoconfigs: Resync with savedefconfig
Tom Rini [Fri, 7 Nov 2025 15:15:38 +0000 (09:15 -0600)] 
configs: Resync with savedefconfig

Resync all defconfig files using qconfig.py

Signed-off-by: Tom Rini <trini@konsulko.com>
5 months agoMerge tag 'u-boot-dfu-20251107' of https://source.denx.de/u-boot/custodians/u-boot-dfu
Tom Rini [Fri, 7 Nov 2025 14:56:22 +0000 (08:56 -0600)] 
Merge tag 'u-boot-dfu-20251107' of https://source.denx.de/u-boot/custodians/u-boot-dfu

u-boot-dfu-20251107:

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

Android:
* Add bootargs environment to kernel commandline

DFU:
* Support DFU over PCIe in SPL

5 months agoMerge tag 'efi-2026-01-rc2' of https://source.denx.de/u-boot/custodians/u-boot-efi
Tom Rini [Fri, 7 Nov 2025 14:26:59 +0000 (08:26 -0600)] 
Merge tag 'efi-2026-01-rc2' of https://source.denx.de/u-boot/custodians/u-boot-efi

Pull request efi-2026-01-rc2

CI: https://source.denx.de/u-boot/custodians/u-boot-efi/-/pipelines/28208

Documentation:

* bootstd: Describe environment variable extension_overlay_addr
  environment and remove extension support from TODO list

EFI:

* Correct the detection of the video mode in the EFI payload app:
  - Use struct efi_gop_mode_info in the definition of struct
    efi_entry_gopmode.
  - In function get_mode_from_entry() use the correct type for the video
    mode structure.
* Use a valid error code as return value in efi_store_memory_map().
* Avoid a memory leak for the variable name in efi_bl_create_block_device().
* Correct the code indentation in efi_uc_stop().
* Correct the description of struct efi_priv.
* Fix typos in code comments.

Other:

* qfw: Add more fields and a heading to qfw list
* Fix the support for ACPI pass-through on ARM and RISC-V:
  Avoid zeroing out the XSDT address
* test: provide unit test for 'acpi list' command

# -----BEGIN PGP SIGNATURE-----
#
# iQIzBAABCAAdFiEEbcT5xx8ppvoGt20zxIHbvCwFGsQFAmkNj/kACgkQxIHbvCwF
# GsS8NQ/6Aj+Z54HJTIEfoXssvElLr5ATactrCxszq42i/yy6dLqa2Ym1afG6w1XS
# 1ZbCeU/bCXFke5Tsz+x89gEfckUm83oTwngwcID0WR1qn8mWjwR7tM5MuORq8NxU
# 7NwLuFs9O/QZihagKdz6hv1/Y+cBwiAYLY16EYVSuUlbLaKQo3QvxwWkqG3jdKWV
# Rm58/PolU+2h04MBwP0SxSduX4OyRF/tMOGjf5RGLyqCyj8kIgdu7PvUAPMM+Gps
# KemL59V0Bdv8hlF4JknmPz+idtZg2nHIDdNrBZvoxwzwGQeRZ1YXAMruRxZXqDYL
# tiuDp6HMv/GfIIGkz14tJtJMdboaAybAnluPWGalx8JQJqJzEPww0R+9s4KKQeWL
# mHgRyl6PxVV9p19f79Qq6q6ETwrFDX0YH3pdrGUk3DBa3lDt0UsEAnuW4FvaJ8tx
# 3PMrjKAxpxocT0hglsMVnptnfvDEigMsjwH/TWrau83mY+juxFQLjm+U4vye+qCa
# 4zXjjLas18+eRcrv2KxU7teakyi1Jp+WbqHq37L26YcQMaLq/RkBc0bTrsreKKLu
# jprYFpvc7EJpH2Fd1XWaZ2EnxXcVSJSvrY/iwRQqb6wbwQ6XGtMvSh3IFY8IzAoh
# N2Pj78oaYqyL1q/TftuZWhEHo3a0M/HfM4D+oMSHzJtWCb0wZHE=
# =OGcS
# -----END PGP SIGNATURE-----
# gpg: Signature made Fri 07 Nov 2025 12:21:45 AM CST
# gpg:                using RSA key 6DC4F9C71F29A6FA06B76D33C481DBBC2C051AC4
# gpg: Good signature from "Heinrich Schuchardt <xypron.glpk@gmx.de>" [unknown]
# gpg:                 aka "[jpeg image of size 1389]" [unknown]
# gpg: WARNING: This key is not certified with a trusted signature!
# gpg:          There is no indication that the signature belongs to the owner.
# Primary key fingerprint: 6DC4 F9C7 1F29 A6FA 06B7  6D33 C481 DBBC 2C05 1AC4

5 months agoMerge tag 'mmc-master-2025-11-07' of https://source.denx.de/u-boot/custodians/u-boot-mmc
Tom Rini [Fri, 7 Nov 2025 14:26:10 +0000 (08:26 -0600)] 
Merge tag 'mmc-master-2025-11-07' of https://source.denx.de/u-boot/custodians/u-boot-mmc

CI: https://source.denx.de/u-boot/custodians/u-boot-mmc/-/pipelines/28218

- Disabling FMP on Exynos850 to make eMMC functional when U-Boot is
  executed during USB boot
- Drop extra included errno.h

5 months agospl: mmc: avoid including errno.h twice
Heinrich Schuchardt [Wed, 5 Nov 2025 00:13:51 +0000 (01:13 +0100)] 
spl: mmc: avoid including errno.h twice

Each include should only be included once.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
5 months agommc: exynos_dw_mmc: Disable FMP for Exynos850 chip
Sam Protsenko [Sun, 26 Oct 2025 01:06:58 +0000 (20:06 -0500)] 
mmc: exynos_dw_mmc: Disable FMP for Exynos850 chip

Add DWMCI_QUIRK_DISABLE_FMP flag to Exynos850 driver data to make the
driver disable FMP in case of Exynos850 chip. That makes eMMC on
Exynos850 functional when U-Boot is executed during USB boot.

Signed-off-by: Sam Protsenko <semen.protsenko@linaro.org>
Reviewed-by: Anand Moon <linux.amoon@gmail.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
5 months agommc: exynos_dw_mmc: Add exynos850 compatible
Sam Protsenko [Sun, 26 Oct 2025 01:06:57 +0000 (20:06 -0500)] 
mmc: exynos_dw_mmc: Add exynos850 compatible

Up until now "samsung,exynos7-dw-mshc-smu" compatible was used for
Exynos850 SoC, as it's present in its device tree. But Exynos850 device
tree also supports "samsung,exynos850-dw-mshc-smu" compatible string.
Add it in compatible ID list in the driver so that it can be matched
against this string for Exynos850 device tree.

No functional change, as the driver data is just a copy of
"samsung,exynos7-dw-mshc-smu" data for now.

Signed-off-by: Sam Protsenko <semen.protsenko@linaro.org>
Reviewed-by: Anand Moon <linux.amoon@gmail.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
5 months agommc: exynos_dw_mmc: Add quirk for disabling FMP
Sam Protsenko [Sun, 26 Oct 2025 01:06:56 +0000 (20:06 -0500)] 
mmc: exynos_dw_mmc: Add quirk for disabling FMP

Add DWMCI_QUIRK_DISABLE_FMP which disables Flash Memory Protector (FMP)
during driver's init. It's usually done by early bootloaders, but in
some cases (like USB boot) the FMP may be left unconfigured. The issue
was observed on Exynos850 SoC (the E850-96 board). Enabling this quirk
makes eMMC functional even in such cases.

No functional change, as this feature is only added here but not enabled
for any chips yet.

Signed-off-by: Sam Protsenko <semen.protsenko@linaro.org>
Reviewed-by: Anand Moon <linux.amoon@gmail.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
5 months agommc: exynos_dw_mmc: Improve coding style
Sam Protsenko [Sun, 26 Oct 2025 01:06:55 +0000 (20:06 -0500)] 
mmc: exynos_dw_mmc: Improve coding style

Exynos DW MMC glue layer driver have seen a lot of changes recently.
Stabilize the coding style.

No functional change.

Signed-off-by: Sam Protsenko <semen.protsenko@linaro.org>
Reviewed-by: Anand Moon <linux.amoon@gmail.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
5 months agommc: dw_mmc: Do not export dwmci_send_cmd() and dwmci_set_ios()
Sam Protsenko [Sun, 26 Oct 2025 01:06:54 +0000 (20:06 -0500)] 
mmc: dw_mmc: Do not export dwmci_send_cmd() and dwmci_set_ios()

Do not over-expose the private dw_mmc API. The glue layer drivers at
this point shouldn't be aware and shouldn't use the generic
dwmci_send_cmd() and dwmci_set_ios() functions. Making those functions
public causes a "leaky abstraction" issue. It clutters the public
interface of generic dw_mmc driver and possibly leads to improper usage
of those functions, so it's a bad design.

If struct dm_dwmci_ops has to be extended, do so by copying it first
(like it's done for example in snps_dw_mmc driver). That also makes sure
the future changes to struct dm_dwmci_ops in dw_mmc driver will be
automatically reflected in all extended copies, and avoid code
duplication.

This effectively reverts commit ef3b16bb8e73 ("mmc: dw_mmc: export
dwmci_send_cmd() and dwmci_set_ios()").

No functional change.

Fixes: ef3b16bb8e73 ("mmc: dw_mmc: export dwmci_send_cmd() and dwmci_set_ios()")
Signed-off-by: Sam Protsenko <semen.protsenko@linaro.org>
Reviewed-by: Anand Moon <linux.amoon@gmail.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
5 months agommc: exynos_dw_mmc: Extend dm_dwmci_ops without code duplication
Sam Protsenko [Sun, 26 Oct 2025 01:06:53 +0000 (20:06 -0500)] 
mmc: exynos_dw_mmc: Extend dm_dwmci_ops without code duplication

Instead of extending dm_dwmci_ops by copy-pasting the structure code
first, copy the actual structure data with memcpy() and then set the
.execute_tuning field. Now if struct dm_dwmci_ops gets modified in
future, these changes will be automatically reflected in struct
exynos_dwmmc_ops, which prevents possible issues in future. It also
avoids code duplication.

No functional change, but it can prevent possible isssues in future.

Fixes: eda4bd29929c ("mmc: exynos_dw_mmc: add support for MMC HS200 and HS400 modes")
Signed-off-by: Sam Protsenko <semen.protsenko@linaro.org>
Reviewed-by: Anand Moon <linux.amoon@gmail.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
5 months agospl: remove redundant prints in boot_from_devices
Anshul Dalal [Fri, 31 Oct 2025 07:46:26 +0000 (13:16 +0530)] 
spl: remove redundant prints in boot_from_devices

The null check for loader in boot_from_devices was moved earlier in the
code path by the commit ae409a84e7bff ("spl: NULL check variable before
dereference"), therefore the subsequent null checks for loader are not
necessary.

This patch removes those checks and refactors the prints to be more
useful in case of errors.

Signed-off-by: Anshul Dalal <anshuld@ti.com>
5 months agoMerge patch series "Allow falcon boot from R5 SPL on TI's AM62 devices"
Tom Rini [Thu, 6 Nov 2025 23:41:28 +0000 (17:41 -0600)] 
Merge patch series "Allow falcon boot from R5 SPL on TI's AM62 devices"

Anshul Dalal <anshuld@ti.com> says:

This patch set adds support for falcon boot on AM62a, 62p and 62x by bypassing
A53 SPL and U-boot.

Existing Boot flow:
R5 SPL -> ATF -> A53 SPL -> U-Boot -> Linux Kernel

Updated flow:
R5 SPL -> ATF -> Linux Kernel

U-Boot's falcon mode expects the jump from SPL to kernel to happen on the same
core which is not directly applicable for our heterogeneous platforms since
ATF, OPTEE and other non SPL binaries from tispl.bin should be loaded before the
kernel by the R5 SPL.

So we have to use a different flow to bypass A53 SPL and U-Boot, we first load
the newly added tispl_falcon.bin instead of tispl.bin which lacks u-boot-spl.bin
(A53's SPL) and the corresponding fdt. This sets up dm, tifs, optee and
atf. Once loaded, we load the kernel and the dtb (with fixups) at ATF's
PRELOADED_BL33_BASE and K3_HW_CONFIG_BASE.

NOTE:

Since we're now using the SPL to load the kernel and kernel expects a 2MiB
aligned load address, the existing PRELOADED_BL33_BASE has to be changed for ATF
to 0x82000000 with K3_HW_CONFIG_BASE set to 0x88000000 for the DTB.

Link: https://lore.kernel.org/r/20251031073800.344500-1-anshuld@ti.com
5 months agodoc: ti: document R5 falcon mode for AM62 platforms
Anshul Dalal [Fri, 31 Oct 2025 07:37:57 +0000 (13:07 +0530)] 
doc: ti: document R5 falcon mode for AM62 platforms

This patch adds user documentation for R5 falcon mode for AM62
platforms. The main section is added to am62x_sk.rst and other documents
just include the relevant sections. Steps to build falcon support, usage
and the modified R5 memory map have been documented.

Two svg images have also been added for reference, one for the modified
tifalcon.bin and other for the fitImage format specific to R5 falcon
mode.

Signed-off-by: Anshul Dalal <anshuld@ti.com>
5 months agomach-k3: r5: common: add bootargs to kernel's dtb
Anshul Dalal [Fri, 31 Oct 2025 07:37:56 +0000 (13:07 +0530)] 
mach-k3: r5: common: add bootargs to kernel's dtb

The bootargs are passed to the kernel in the chosen node, this patch
adds support for populating bootargs in the dtb if missing.

The values for kernel boot params is taken from the env, with 'boot' and
'bootpart' specifying the rootfs for the kernel similar to the
non-falcon boot flow.

Signed-off-by: Anshul Dalal <anshuld@ti.com>
5 months agomach-k3: r5: common: add fdt fixups for falcon mode
Anshul Dalal [Fri, 31 Oct 2025 07:37:55 +0000 (13:07 +0530)] 
mach-k3: r5: common: add fdt fixups for falcon mode

This patch adds fdt fixups to the kernel device-tree in R5 falcon mode,
these fixups include fixing up the core-count, reserved-memory etc.

The users can opt out by disabling the respective CONFIG_OF_*_SETUP
config options.

Signed-off-by: Anshul Dalal <anshuld@ti.com>
5 months agomach-k3: common: support only MMC in R5 falcon mode
Anshul Dalal [Fri, 31 Oct 2025 07:37:54 +0000 (13:07 +0530)] 
mach-k3: common: support only MMC in R5 falcon mode

To simplify the boot process and prevent the R5 SPL size from growing,
this patch restricts the boot media to load the next stage payload
(tifalcon.bin and kernel FIT) to MMC only.

We select between eMMC/SD by checking "mmcdev" in env to conform with
how U-Boot proper handles loading binaries from MMC1 or MMC2.

Note that tiboot3.bin (the initial bootloader) can be loaded from any
boot mode supported by the ROM since the restriction only applies to
tifalcon.bin and fitImage.

Signed-off-by: Anshul Dalal <anshuld@ti.com>
5 months agomach-k3: common: enable falcon mode from R5 SPL
Anshul Dalal [Fri, 31 Oct 2025 07:37:53 +0000 (13:07 +0530)] 
mach-k3: common: enable falcon mode from R5 SPL

We use the spl_board_prepare_for_boot hook to call k3_r5_falcon_prep
which is ran after tispl is loaded but before jump_to_image.

In k3_r5_falcon_prep, we find the boot media and load the kernel FIT
just as standard secure falcon mode (since spl_start_uboot returns 0
now). Once the kernel and args are loaded.

Now when the flow goes to jump_to_image, we do the regular pre-jump
procedure and jump to TFA which jumps to the kernel directly since we
have already loaded the kernel and dtb at their respective addresses
(PRELOADED_BL33_BASE and K3_HW_CONFIG_BASE).

Overall execution for the R5 SPL after this patch:

  board_init_r
  |-> boot_from_devices
  |   +-> load_image (we load tifalcon.bin here since spl_start_uboot
  |                   returns 1)
  |
  +-> spl_prepare_for_boot
  |   +-> k3_falcon_prep
  |       +-> load_image (we load fitImage here since spl_start_uboot
  |                       returns 0 now)
  |
  +-> jump_to_image

Signed-off-by: Anshul Dalal <anshuld@ti.com>
5 months agoconfigs: add falcon mode fragment for k3 devices
Anshul Dalal [Fri, 31 Oct 2025 07:37:52 +0000 (13:07 +0530)] 
configs: add falcon mode fragment for k3 devices

This fragment enables falcon mode for K3 platforms and modifies the
memory map.

To have enough stack and heap space for loading kernel image as
FIT the memory map was modified by expanding stack + heap size, the
PRELOADED_BL33_BASE in TFA has to also be updated to 0x82000000 since
the kernel needs to be loaded at 2MiB aligned address along with
updating K3_HW_CONFIG_BASE to 0x88000000 for the DT passed to kernel.

Modified memory map for R5 SPL (modified addresses marked with *):

0x80000000 +-------------------------------+ Start of DDR
  512KiB   |   TFA reserved memory space   | CONFIG_K3_ATF_LOAD_ADDR*
0x80080000 +-------------------------------+
 31.5MiB   |            Unused             |
0x82000000 +-------------------------------+ PRELOADED_BL33_BASE* in TFA
           |                               | CONFIG_SYS_LOAD_ADDR*
   57MiB   |   Kernel + initramfs Image    | CONFIG_SPL_LOAD_FIT_ADDRESS*
           |                               |
0x85900000 +-------------------------------+
           |                               |
           |  R5 U-Boot SPL Stack + Heap   |
   39MiB   |       (size defined by        |
           |SPL_STACK_R_MALLOC_SIMPLE_LEN*)|
           |                               |
0x88000000 +-------------------------------+ CONFIG_SPL_STACK_R_ADDR*
           |                               | K3_HW_CONFIG_BASE* in TFA
   16MiB   |          Kernel DTB           | CONFIG_SPL_PAYLOAD_ARGS_ADDR*
           |                               |
0x89000000 +-------------------------------+
  331MiB   | Device Manager (DM) Load Addr |
0x9db00000 +-------------------------------+
   12MiB   |          DM Reserved          |
0x9e700000 +-------------------------------+
    1MiB   |            Unused             |
0x9e800000 +-------------------------------+ BL32_BASE in TFA
   24MiB   |             OPTEE             |
0xa0000000 +-------------------------------+ End of DDR (512MiB)

Signed-off-by: Anshul Dalal <anshuld@ti.com>
5 months agoarm: k3-binman: add tifalcon.bin for falcon mode
Anshul Dalal [Fri, 31 Oct 2025 07:37:51 +0000 (13:07 +0530)] 
arm: k3-binman: add tifalcon.bin for falcon mode

This patch adds creation of tifalcon.bin for the AM62a, 62p and 62x.

The contents are the same as the existing tispl.bin but A53's SPL and
the FDT have been removed as they are not needed in R5 falcon mode.

This reduces boot time since the payload size is smaller compared to the
regular tispl.bin.

tispl.bin    = TFA + TEE + TIFS-STUB + A53 SPL + FDT
tifalcon.bin = TFA + TEE + TIFS-STUB

Signed-off-by: Anshul Dalal <anshuld@ti.com>
5 months agoboot: fix typo in SYS_BOOTM_LEN description
Quentin Schulz [Wed, 29 Oct 2025 11:19:14 +0000 (12:19 +0100)] 
boot: fix typo in SYS_BOOTM_LEN description

Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Mattijs Korpershoek <mkorpershoek@kernel.org>
5 months agoserial: make VPL_DM_SERIAL depend on VPL_DM
Quentin Schulz [Wed, 29 Oct 2025 11:17:43 +0000 (12:17 +0100)] 
serial: make VPL_DM_SERIAL depend on VPL_DM

I have a hunch VPL_DM_SERIAL should not be selectable if VPL isn't set
as implied by the prefix. Additionally, still based on the prefix, I'm
assuming VPL_DM should be a dependency. Since VPL_DM can only be
selectable when VPL is enabled, only depend on VPL_DM.

This mirrors SPL_DM_SERIAL and TPL_DM_SERIAL so seems right to me.

Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
Reviewed-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
5 months agoboot: specify SPL_FIT_FULL_CHECK applies to SPL
Quentin Schulz [Wed, 29 Oct 2025 11:08:58 +0000 (12:08 +0100)] 
boot: specify SPL_FIT_FULL_CHECK applies to SPL

SPL_FIT_FULL_CHECK currently shares its description and help text with
FIT_FULL_CHECK which is quite confusing, so let's specify this applies
to SPL.

Fixes: 6f3c2d8aa5e6 ("image: Add an option to do a full check of the FIT")
Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
Reviewed-by: Mattijs Korpershoek <mkorpershoek@kernel.org>
5 months agorsa: fix typo in $(PHASE_)RSA_VERIFY_WITH_PKEY help text
Quentin Schulz [Wed, 29 Oct 2025 11:20:27 +0000 (12:20 +0100)] 
rsa: fix typo in $(PHASE_)RSA_VERIFY_WITH_PKEY help text

Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
5 months agoMerge branch 'master' of https://source.denx.de/u-boot/custodians/u-boot-sh
Tom Rini [Thu, 6 Nov 2025 23:21:46 +0000 (17:21 -0600)] 
Merge branch 'master' of https://source.denx.de/u-boot/custodians/u-boot-sh

This is mostly R-Car Gen5 drivers for GPIO, pin control, RSwitch3 and
matching PHYs. There is also a few trivial clean ups for arch headers
and configs. Board code, DT and clock are coming in follow up PR.

5 months agoefi_loader: typo 'mange' in efi_net.c
Heinrich Schuchardt [Tue, 4 Nov 2025 21:48:04 +0000 (22:48 +0100)] 
efi_loader: typo 'mange' in efi_net.c

%s/mange/manage/

Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
5 months agoefi_driver: don't leak name in efi_bl_create_block_device()
Heinrich Schuchardt [Wed, 5 Nov 2025 12:24:26 +0000 (13:24 +0100)] 
efi_driver: don't leak name in efi_bl_create_block_device()

blk_create_devicef() uses a copy of parameter name.
We can use a local variable.

Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
5 months agoefi_driver: typo 'to be write'
Heinrich Schuchardt [Wed, 5 Nov 2025 01:30:45 +0000 (02:30 +0100)] 
efi_driver: typo 'to be write'

%s/to be write/to write/

Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
5 months agoefi_driver: correct formatting in efi_uc_stop()
Heinrich Schuchardt [Tue, 4 Nov 2025 23:29:33 +0000 (00:29 +0100)] 
efi_driver: correct formatting in efi_uc_stop()

Correct indentation.

Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
5 months agoefi_client: efi_store_memory_map() must return int
Heinrich Schuchardt [Tue, 4 Nov 2025 22:27:12 +0000 (23:27 +0100)] 
efi_client: efi_store_memory_map() must return int

The type efi_status_t is not compatible with the return type int.

Let efi_store_memory_map() return -EFAULT instead of a truncated EFI error
code.

Acked-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
5 months agoefi_loader: correct struct efi_priv description
Heinrich Schuchardt [Tue, 4 Nov 2025 11:02:40 +0000 (12:02 +0100)] 
efi_loader: correct struct efi_priv description

Add a missing colon ':' to match Sphinx style.

Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
5 months agodoc: bootstd: Describe the optional extension_overlay_addr environment
Kory Maincent (TI.com) [Tue, 4 Nov 2025 10:45:28 +0000 (11:45 +0100)] 
doc: bootstd: Describe the optional extension_overlay_addr environment

Add extension_overlay_addr description to the list of environment
variables that can be useful during the standard boot.

Signed-off-by: Kory Maincent (TI.com) <kory.maincent@bootlin.com>
Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
5 months agodoc: bootstd: Remove extension support from TODO list
Kory Maincent (TI.com) [Tue, 4 Nov 2025 10:06:38 +0000 (11:06 +0100)] 
doc: bootstd: Remove extension support from TODO list

Now that extension support has been added to extlinux and efi bootmeths
we can remove this line from the TODO list.

Signed-off-by: Kory Maincent (TI.com) <kory.maincent@bootlin.com>
Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
5 months agoefi: video: fix mode info in payload mode
Ben Wolsieffer [Mon, 27 Oct 2025 20:56:27 +0000 (16:56 -0400)] 
efi: video: fix mode info in payload mode

Currently, the EFI framebuffer is non-functional in payload mode. It
always reports: "No video mode configured in EFI!"

This is caused by a copy-paste error that replaced
"struct efi_entry_gopmode" with "struct efi_gop_mode".

Fixes: 88753816cf54 ("efi: video: Move payload code into a function")
Signed-off-by: Ben Wolsieffer <ben.wolsieffer@hefring.com>
Reviewed-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
5 months agoefi: Use struct efi_gop_mode_info in struct efi_entry_gopmode
Heinrich Schuchardt [Tue, 4 Nov 2025 11:07:02 +0000 (12:07 +0100)] 
efi: Use struct efi_gop_mode_info in struct efi_entry_gopmode

Since C99 flexible array members are allowed at the end of structures.
We require C11.

Use struct efi_gop_mode_info in the definition of struct efi_entry_gopmode
to avoid code duplication and unnecessary conversions.

Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
5 months agotest: provide test for 'acpi list' command
Heinrich Schuchardt [Fri, 31 Oct 2025 19:59:30 +0000 (20:59 +0100)] 
test: provide test for 'acpi list' command

Check that some mandatory ACPI tables exist:

  - RSDP
  - RSDT or XSDT
  - FADT

Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
5 months agoqfw/acpi: do not zero out XSDT address
Heinrich Schuchardt [Fri, 31 Oct 2025 19:59:29 +0000 (20:59 +0100)] 
qfw/acpi: do not zero out XSDT address

On RISC-V QEMU provides an XSDT table. The RSDP table points to it.
We must not zero out this pointer because otherwise no ACPI table can be
found.

Fixes: 15ca25e31ed5 ("x86: emulation: Support BLOBLIST_TABLES properly")
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
5 months agoqfw: Add more fields and a heading to qfw list
Simon Glass [Wed, 29 Oct 2025 14:14:32 +0000 (15:14 +0100)] 
qfw: Add more fields and a heading to qfw list

Update the command to show the size and selected file, since this is
useful information at times. Add a heading so it is clear what each
field refers to.

Add a simple test as well.

Signed-off-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
5 months agoGitlab CI: Rework our tag usage again 829/head
Tom Rini [Thu, 30 Oct 2025 04:35:58 +0000 (22:35 -0600)] 
Gitlab CI: Rework our tag usage again

Now that we've had jobs running on both amd64 and arm64 hosts for a
while, we have enough data to look at usage and findings. For the world
build job, make use of the new DEFAULT_FAST_TAG and only build it once,
on either amd64 or arm64 as we don't run in to host specific results
there. For sandbox, continue to build on both arm64 and amd64 hosts as
we can find host specific breakage that way. Remove the mistaken
restriction on sandbox64_lwip.

Signed-off-by: Tom Rini <trini@konsulko.com>
5 months agoMerge patch series "ARM: bootm: Add support for starting Linux through OPTEE-OS on...
Tom Rini [Thu, 6 Nov 2025 17:32:57 +0000 (11:32 -0600)] 
Merge patch series "ARM: bootm: Add support for starting Linux through OPTEE-OS on ARMv7a"

This series from Marek Vasut <marek.vasut@mailbox.org> brings some
enhancements to use cases using OPTEE-OS on ARMv7a platforms, some of
which already existed on ARMv8.

Link: https://lore.kernel.org/r/20251030212359.12824-1-marek.vasut@mailbox.org
5 months agoMerge patch series "Fix AArch32 compilation with Clang"
Tom Rini [Thu, 6 Nov 2025 17:23:10 +0000 (11:23 -0600)] 
Merge patch series "Fix AArch32 compilation with Clang"

Dmitrii Sharshakov <d3dx12.xx@gmail.com> says:

I faced some minor compatibility issues when choosing Clang as the
cross-compiler for my target.

Please review these two fixes, aiming at enabling Clang-based builds
(still using GNU binutils) for 32-bit ARM targets.

Tested to fix build with (also run-tested on qemu arm and arm64 with clang):

make ARCH=arm HOSTCC=clang CROSS_COMPILE=arm-none-eabi- CC=clang imx6ulz_smm_m2b_defconfig
make ARCH=arm HOSTCC=clang CROSS_COMPILE=arm-none-eabi- CC=clang -j20

Link: https://lore.kernel.org/r/20251101-clang-fixes-v1-0-a8398475226e@gmail.com
5 months agoarm64: renesas: Clean up default boot command
Marek Vasut [Wed, 22 Oct 2025 13:17:16 +0000 (15:17 +0200)] 
arm64: renesas: Clean up default boot command

The current default boot command does not respect the Linux kernel 2 MiB
alignment requirement, present on aarch64 [1]:

"
The Image must be placed text_offset bytes from a 2MB aligned base
address anywhere in usable system RAM and called there.
"

Adjust the boot command such, that it always places both Image and DT at
the nearest highest 2 MiB aligned offset. The DT is placed at lower 2 MiB
aligned address, the aarch64 Image is placed at the next higher 2 MiB
aligned address. Is is unlikely that a DT would be larger than 2 MiB on
these systems.

Replace use of hard-coded load addresses with generic ${loadaddr} aligned
using setexpr. This way, if user picks valid ${loadaddr}, their kernel and
DT address will be correctly set as well.

Fix up boot commands to use && instead of ; to exit the boot command early
in case of failure.

[1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/arch/arm64/booting.rst#n138

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
5 months agoarm64: renesas: Use reset macro from common header
Hai Pham [Mon, 27 Oct 2025 17:08:52 +0000 (18:08 +0100)] 
arm64: renesas: Use reset macro from common header

Clean up to avoid more reset macro duplication.

Signed-off-by: Hai Pham <hai.pham.ud@renesas.com>
Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
5 months agoarm64: renesas: Use BIT() macro in R-Car Gen3 header
Marek Vasut [Mon, 27 Oct 2025 17:08:12 +0000 (18:08 +0100)] 
arm64: renesas: Use BIT() macro in R-Car Gen3 header

Use the BIT() macro consistently in R-Car Gen3 header.
Fix indent with spaces to tabs at the same time. No
functional change.

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
5 months agoarm64: renesas: Make CONFIG_SYS_LOAD_ADDR family-specific
Hai Pham [Mon, 27 Oct 2025 17:09:24 +0000 (18:09 +0100)] 
arm64: renesas: Make CONFIG_SYS_LOAD_ADDR family-specific

Make CONFIG_SYS_LOAD_ADDR family-specific to prepare for R-Car Gen5
support. R-Car Gen5 uses different memory map compared to the current
R-Car Gen3 and Gen4 and also different CONFIG_SYS_LOAD_ADDR. This is
a preparatory change for R-Car Gen5. No functional change.

Signed-off-by: Hai Pham <hai.pham.ud@renesas.com>
Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org> # Upport
5 months agoarm64: renesas: Drop encoded file name from R-Car Gen3/Gen4 header
Marek Vasut [Mon, 27 Oct 2025 17:08:33 +0000 (18:08 +0100)] 
arm64: renesas: Drop encoded file name from R-Car Gen3/Gen4 header

Checkpatch warns that it's generally not useful to have
the filename in the file. The warning is valid, drop the
encoded file name. No functional change.

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
5 months agopinctrl: renesas: Add initial R8A78000 R-Car X5H PFC tables
Huy Bui [Mon, 27 Oct 2025 16:53:54 +0000 (17:53 +0100)] 
pinctrl: renesas: Add initial R8A78000 R-Car X5H PFC tables

Add initial pin control tables for the Renesas R-Car X5H R8A78000 SoC.
This SoC is the first one which includes custom DRV register handling,
different from previous generations due to change in DRV register bit
layout.

Signed-off-by: Huy Bui <huy.bui.wm@renesas.com>
Signed-off-by: Khanh Le <khanh.le.xr@renesas.com>
Signed-off-by: Hai Pham <hai.pham.ud@renesas.com>
Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
5 months agopinctrl: renesas: Move drive strength configuration into sh_pfc_soc_operations
Hai Pham [Mon, 27 Oct 2025 16:53:53 +0000 (17:53 +0100)] 
pinctrl: renesas: Move drive strength configuration into sh_pfc_soc_operations

The upcoming Renesas R-Car Gen5 uses different mapping of bits in DRV
control register, which is incompatible with existing DRV register bit
mapping. Add .set_drive_strength callback into sh_pfc_soc_operations
and call it from sh_pfc_pinconf_set(), to allow each SoC specific PFC
driver to implement replacement .set_drive_strength. Make the current
sh_pfc_pinconf_set_drive_strength() non-static, rename it with rcar_
prefix, and pass it as .set_drive_strength for existing PFC drivers.
This is a preparatory patch for R-Car Gen5, no functional change.

Signed-off-by: Hai Pham <hai.pham.ud@renesas.com>
Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
[Marek: Consistently use .set_drive_strength() and pass exisiting
        sh_pfc_pinconf_set_drive_strength() as its parameter for
all PFC drivers. Rewrite commit message.]

5 months agopinctrl: renesas: Show bit position in config write
Hai Pham [Mon, 27 Oct 2025 16:53:52 +0000 (17:53 +0100)] 
pinctrl: renesas: Show bit position in config write

Show bit position in config write debug log, which is helpful for cases
where the p port setting is applied at the exact p bit position.

Signed-off-by: Hai Pham <hai.pham.ud@renesas.com>
Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org> # Unsplit the string
5 months agopinctrl: renesas: Align Kconfig entry indent
Marek Vasut [Mon, 27 Oct 2025 16:53:51 +0000 (17:53 +0100)] 
pinctrl: renesas: Align Kconfig entry indent

Fix Kconfig entry indent to be always consistently indented with
leading tabs, never with leading spaces. No functional change.

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
5 months agogpio: renesas: Add R-Car Gen5 support
Huy Bui [Mon, 27 Oct 2025 16:35:38 +0000 (17:35 +0100)] 
gpio: renesas: Add R-Car Gen5 support

Add support for the GPIO controller block in the R-Car Gen5 SoC family.
The GPIO controller has a General Input Enable Register (INEN), whose
reset state is to have all input disabled. The GPIO controller also has
updated offsets for its control registers. U-Boot uses three registers,
INDT, POSNEG, INEN, which have updated offsets, those are handled by the
driver.

Signed-off-by: Huy Bui <huy.bui.wm@renesas.com>
Signed-off-by: Hai Pham <hai.pham.ud@renesas.com>
Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
[Marek: - Access Gen5 specific registers via driver data offsets,
        - Update commit message]

5 months agogpio: renesas: Access INDT, POSNEG, INEN registers via match data offsets
Marek Vasut [Mon, 27 Oct 2025 16:35:37 +0000 (17:35 +0100)] 
gpio: renesas: Access INDT, POSNEG, INEN registers via match data offsets

The Renesas R-Car Gen5 GPIO controller has INDT, POSNEG, INEN registers
at different offsets compared to previous generations. Introduce three
new entries in struct rcar_gpio_data {} match data to describe these
register offsets for each GPIO controller. Update the driver to access
these three registers through the match data offsets. No functional
change.

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
5 months agogpio: renesas: Wrap quirks in struct rcar_gpio_data
Marek Vasut [Mon, 27 Oct 2025 16:35:36 +0000 (17:35 +0100)] 
gpio: renesas: Wrap quirks in struct rcar_gpio_data

Wrap the RCAR_GPIO_HAS_INEN quirk in more flexible struct rcar_gpio_data {}
in preparation for addition of Renesas R-Car Gen5 GPIO controller support.
The Renesas R-Car Gen5 GPIO controller requires more than a single quirk
to properly describe it, therefore increase the flexibility and introduce
full match data structure, and use it throughout the driver. No functional
change.

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
5 months agogpio: renesas: Drop unused register macros
Marek Vasut [Mon, 27 Oct 2025 16:35:35 +0000 (17:35 +0100)] 
gpio: renesas: Drop unused register macros

Remove register macros for registers which are not used by this driver.
This makes it easier to get an overview of which registers are really
used by the driver. No functional change.

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
5 months agogpio: renesas: Drop pfc_offset parsing
Marek Vasut [Mon, 27 Oct 2025 16:35:34 +0000 (17:35 +0100)] 
gpio: renesas: Drop pfc_offset parsing

The PFC offset is no longer used directly in the driver since commit
fbf26bea3964 ("gpio: renesas: Migrate to pinctrl GPIO accessors")
Drop the pfc_offset parsing.

Fixes: fbf26bea3964 ("gpio: renesas: Migrate to pinctrl GPIO accessors")
Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
5 months agophy: renesas: Add Multi-Protocol PHY driver for R-Car X5H
Thanh Quan [Mon, 27 Oct 2025 16:52:21 +0000 (17:52 +0100)] 
phy: renesas: Add Multi-Protocol PHY driver for R-Car X5H

Add PHY driver for Multi-Protocol PHY present on Renesas R-Car X5H
R8A78000 SoC. Currently, the PHY driver only supports configuring
the MPPHY for ethernet operation.

Signed-off-by: Thanh Quan <thanh.quan.xn@renesas.com>
Signed-off-by: Phong Hoang <phong.hoang.wz@renesas.com>
Signed-off-by: Hai Pham <hai.pham.ud@renesas.com> #Fix License-Identifier
Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
[Marek: Clean up macros, indent, clock and reset handling in probe,
        rename the driver and add r8a78000- into compatible string,
update commit message.]

5 months agophy: renesas: Add PCS driver for Renesas R-Car X5H R8A78000
Tam Nguyen [Mon, 27 Oct 2025 16:50:24 +0000 (17:50 +0100)] 
phy: renesas: Add PCS driver for Renesas R-Car X5H R8A78000

Add support for the Ethernet Physical Coding Sublayer (PCS) controller
on R-Car Gen5 SoCs, specifically the Renesas R-Car X5H R8A78000.

The controller is based on the SERDES infrastructure used in previous
R-Car generations, with updates for Gen5 register layout and features.

Because majority of this driver is SoC-specific register programming,
the majority of this driver is different enough from R8A779F0 SerDes
driver to justify its own driver. Deduplication of the remaining bits
of code does not yield any improvement.

Signed-off-by: Hai Pham <hai.pham.ud@renesas.com>
Signed-off-by: Phong Hoang <phong.hoang.wz@renesas.com>
Signed-off-by: Tam Nguyen <tam.nguyen.xa@renesas.com>
Signed-off-by: Thanh Quan <thanh.quan.xn@renesas.com>
Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
[Marek: Add missing clk_bulk_disable() in fail path.
        Drop always-true aneg_on setting.
Reduce poll delay from 100s to 100ms.
Use bulk reset operations to finalize reset handling.]

5 months agonet: rswitch: Add Renesas R-Car X5H Ethernet Switch3 support
Marek Vasut [Mon, 27 Oct 2025 16:45:42 +0000 (17:45 +0100)] 
net: rswitch: Add Renesas R-Car X5H Ethernet Switch3 support

Add support for the Renesas Ethernet Switch3 (RSW3) controller,
present in R-Car Gen5 SoCs such as R-Car X5H (R8A78000). The
hardware offset differences are handled via driver match data.

The driver newly detects whether the switch prot is connected
to xPCS or not, and if so, turns on MIOC bit 3. This is new on
R-Car X5H. GWCKSC register is also programmed only on X5H. The
rest of the operation is identical to RSwitch2.

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
Signed-off-by: Tam Nguyen <tam.nguyen.xa@renesas.com>
Signed-off-by: Phong Hoang <phong.hoang.wz@renesas.com>
Signed-off-by: Thanh Quan <thanh.quan.xn@renesas.com>
Signed-off-by: Hai Pham <hai.pham.ud@renesas.com>
5 months agonet: rswitch: Parametrize MPIC_MDC_CLK_SET clock setting
Marek Vasut [Mon, 27 Oct 2025 16:45:41 +0000 (17:45 +0100)] 
net: rswitch: Parametrize MPIC_MDC_CLK_SET clock setting

The MPIC_MDC_CLK clock setting value differs between R-Car S4
and R-Car X5H. Parametrize the value in preparation for R-Car
X5H addition into this driver. No functional change.

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
5 months agonet: rswitch: Parametrize GWDCBAC, FWPBFCSDC, CABPIRM register offsets
Marek Vasut [Mon, 27 Oct 2025 16:45:40 +0000 (17:45 +0100)] 
net: rswitch: Parametrize GWDCBAC, FWPBFCSDC, CABPIRM register offsets

The GWDCBAC0, GWDCBAC1, FWPBFCSDC, CABPIRM register offsets changed
between R-Car S4 and R-Car X5H. Parametrize their offsets in preparation
for R-Car X5H addition into this driver. No functional change.

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
5 months agonet: rswitch: Inline FWRO, CARO, GWRO, TARO, RMRO macros
Marek Vasut [Mon, 27 Oct 2025 16:45:39 +0000 (17:45 +0100)] 
net: rswitch: Inline FWRO, CARO, GWRO, TARO, RMRO macros

Inline FWRO, CARO, GWRO, TARO, RMRO macros directly into the
follow up register macros. FWRO, CARO, GWRO, TARO are already
zero, drop them. RMRO is 0x1000, increment all registers which
add RMRO by 0x1000 directly. No functional change.

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
5 months agonet: rswitch: Parametrize forwarding engine CSD register offset
Marek Vasut [Mon, 27 Oct 2025 16:45:38 +0000 (17:45 +0100)] 
net: rswitch: Parametrize forwarding engine CSD register offset

The forwarding engine CSD register offset changed between the
R-Car S4 and R-Car X5H. Parametrize this offset in preparation
for R-Car X5H addition into this driver. Clean up the macro
parameter names and make them more obvious. No functional change.

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
5 months agonet: rswitch: Parametrize port count
Marek Vasut [Mon, 27 Oct 2025 16:45:37 +0000 (17:45 +0100)] 
net: rswitch: Parametrize port count

The total port counts differ across variants of this IP in
R-Car S4 and R-Car X5H. Parametrize port count in preparation
for R-Car X5H addition into this driver. No functional change.

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
5 months agonet: rswitch: Parametize COMA, ETHA, GWCA offsets
Marek Vasut [Mon, 27 Oct 2025 16:45:36 +0000 (17:45 +0100)] 
net: rswitch: Parametize COMA, ETHA, GWCA offsets

The COMA, ETHA, GWCA offsets differ across variants of this IP in
R-Car S4 and R-Car X5H. Parametrize these offsets in preparation
for R-Car X5H addition into this driver. No functional change.

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
5 months agonet: rswitch: Add support for split MII and SerDes
Marek Vasut [Mon, 27 Oct 2025 16:45:35 +0000 (17:45 +0100)] 
net: rswitch: Add support for split MII and SerDes

This IP does support operating MII and SerDes via different ports.
Currently, the driver assumes that MII and SerDes are always bound
together on the same port, but this may not be the case. Implement
support for controlling MII and SerDes separately.

While the change is extensive, the gist of the change is to pass
pointer to the selected port registers to MII or SerDes functions,
depending on which port and operations should be done on that port.
Each combined ETHA instance contains both MII and SerDes register
pointers, which may not point to the same port, and passes those
registers to MII and SerDes functions respectively to control the
MII or SerDes of each port.

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
5 months agonet: rswitch: Use bulk clock operations
Marek Vasut [Mon, 27 Oct 2025 16:45:34 +0000 (17:45 +0100)] 
net: rswitch: Use bulk clock operations

The new version of RSwitch3 in Renesas R-Car Gen5 uses multiple
clock to supply the IP. Convert the driver to bulk clock API to
cater for both single clock of R-Car S4 and multiple clock of
R-Car Gen5. No functional change.

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
5 months agonet: rswitch: Initialize RX DMA descriptor .die_dt field to DT_FEMPTY
Marek Vasut [Mon, 27 Oct 2025 16:45:33 +0000 (17:45 +0100)] 
net: rswitch: Initialize RX DMA descriptor .die_dt field to DT_FEMPTY

Empty RX DMA descriptor must contain .die_dt field set to DT_FEMPTY,
because hardware DMA overwrites this field to non-DT_FEMPTY when data
are received, and the .recv callback tests the content of RX descriptor
.die_dt field to determine whether hardware did receive any data and
updated the .die_dt field, and based on that information, receives a
packet or not. Fix the incorrect RX DMA descriptor initialization to
assure the .recv callback always works correctly.

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
5 months agonet: rswitch: Drop unused macros
Marek Vasut [Mon, 27 Oct 2025 16:45:32 +0000 (17:45 +0100)] 
net: rswitch: Drop unused macros

Remove macros which are not used in the driver. No functional change.

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
5 months agonet: rswitch: Switch indent from spaces to tabs
Marek Vasut [Mon, 27 Oct 2025 16:45:31 +0000 (17:45 +0100)] 
net: rswitch: Switch indent from spaces to tabs

Fix indent from multiple spaces to tabs, to be consistent with
coding style and the rest of the driver. No functional change.

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
5 months agospl: fit: Add ability to jump to Linux via OPTEE-OS on ARMv7a
Marek Vasut [Thu, 30 Oct 2025 21:23:50 +0000 (22:23 +0100)] 
spl: fit: Add ability to jump to Linux via OPTEE-OS on ARMv7a

Add support for jumping to Linux kernel through OPTEE-OS on ARMv7a to SPL.
This is already supported on ARMv8a, this patch adds the ARMv7a support.
Extend the SPL fitImage loader to record OPTEE-OS load address and in case
the load address is non-zero, use the same bootm-optee.S code used by the
U-Boot fitImage jump code to start OPTEE-OS first and jump to Linux next.

Signed-off-by: Marek Vasut <marek.vasut@mailbox.org>
5 months agoARM: bootm: Add support for starting Linux through OPTEE-OS on ARMv7a
Marek Vasut [Thu, 30 Oct 2025 21:23:49 +0000 (22:23 +0100)] 
ARM: bootm: Add support for starting Linux through OPTEE-OS on ARMv7a

Add support for jumping to Linux kernel through OPTEE-OS on ARMv7a.
This is only supported if U-Boot runs in PL1 secure. This change adds
two components, one is fitImage OPTEE-OS loadable handler, which makes
a note of OPTEE-OS being loaded and stores the load address for later
jump to it. The second part is the actual jump to Linux through OPTEE-OS.
The jump through OPTEE-OS requires set up of multiple CPU registers, r1
and r2 are passed through, r0 and r3 have to be set to 0, lr is set to
Linux kernel entry point. This setup is done by new assembler function
boot_jump_linux_via_optee().

The boot_jump_linux_via_optee() also includes STM32MP13xx late TZC
configuration write, this cannot be moved easily, hence the ifdef.

Signed-off-by: Marek Vasut <marek.vasut@mailbox.org>