]> git.ipfire.org Git - thirdparty/u-boot.git/log
thirdparty/u-boot.git
18 hours agospl: remove redundant prints in boot_from_devices master
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>
18 hours 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
18 hours 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>
18 hours 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>
18 hours 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>
18 hours 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>
18 hours 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>
18 hours 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>
18 hours 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>
18 hours 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>
18 hours 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>
18 hours 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>
18 hours 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>
18 hours 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.

21 hours 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>
22 hours 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
22 hours 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
23 hours 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>
23 hours 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>
23 hours 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>
23 hours 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
23 hours 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>
23 hours 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>
23 hours 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.]

23 hours 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
23 hours 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>
23 hours 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]

23 hours 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>
23 hours 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>
23 hours 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>
23 hours 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>
23 hours 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.]

23 hours 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.]

23 hours 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>
23 hours 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>
23 hours 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>
23 hours 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>
23 hours 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>
23 hours 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>
23 hours 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>
23 hours 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>
23 hours 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>
23 hours 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>
23 hours 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>
23 hours 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>
24 hours 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>
24 hours 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>
25 hours agobuild: fix building u-boot.lds with Clang as a cross-compiler
Dmitrii Sharshakov [Sat, 1 Nov 2025 09:39:59 +0000 (10:39 +0100)] 
build: fix building u-boot.lds with Clang as a cross-compiler

Make sure to pass Clang flags to the KBUILD_CPPFLAGS as well, as this
variable is used for flags during compiling for target

Skipping this leads to Clang being invoked with args for target, but
without target indication, thus defaulting to host arch:

  LDS     u-boot.lds
clang: error: ... '-mabi=' for target 'x86_64-suse-linux'
clang: error: ... '-mno-thumb' for target 'x86_64-suse-linux'
clang: error: ... '-mno-unaligned-access' for target 'x86_64-suse-linux'
clang: error: ... '-ffixed-r9' for target 'x86_64-suse-linux'
clang: error: ... '-mno-movt' for target 'x86_64-suse-linux'
make: *** [Makefile:2345: u-boot.lds] Fehler 1

Signed-off-by: Dmitrii Sharshakov <d3dx12.xx@gmail.com>
25 hours agoarch: arm: build: only set -mgeneral-regs-only for AArch64
Dmitrii Sharshakov [Sat, 1 Nov 2025 09:39:58 +0000 (10:39 +0100)] 
arch: arm: build: only set -mgeneral-regs-only for AArch64

This option is not available for 32-bit ARM targets and causes an error
when building with Clang:

clang: error: unsupported option '-mgeneral-regs-only' for
target 'arm-none-eabi'

This fixes the following patch (also seems to only concern AArch64):

Link: https://lists.denx.de/pipermail/u-boot/2021-August/458067.html
Signed-off-by: Dmitrii Sharshakov <d3dx12.xx@gmail.com>
27 hours agoInvalidate cached FAT device upon boot error
Prasad Kale [Thu, 30 Oct 2025 17:03:01 +0000 (22:33 +0530)] 
Invalidate cached FAT device upon boot error

When spl boot device list has multiple FAT devices, any previousely
registered FAT device should be deregistered before registering
next FAT boot device, otherwise the function may not attempt boot
from next FAT device.One of the situations where this issue can be
observed is when the boot device list has two FAT partitions of a
memory device and if booting fails on first partition (because of
file or partition related errors), boot from next partition actually
gets attempted on previous boot device only, as the previous device
has remained marked as registered. Call the function that invalidates
cached boot device in case of failure in booting from current FAT
boot device.

Signed-off-by: Prasad Kale <prasad.kale@live.com>
Cc: Dan Murphy <dmurphy@ti.com>
Cc: Sean Anderson <seanga2@gmail.com>
27 hours agotools: key2dtsi: Write out modulus and r-squared with the correct length
Jan Kiszka [Fri, 31 Oct 2025 09:35:16 +0000 (10:35 +0100)] 
tools: key2dtsi: Write out modulus and r-squared with the correct length

Align the implementation to rsa_add_verify_data() by writing the modulus
and r-squared properties with the same length as the key itself. This
fixes signature verification issues when one of the parameters has
leading zeros.

Reported-by: Hans Gfirtner (Nokia) <hans.gfirtner@nokia.com>
Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
27 hours agocommon/spl: fix endless loop in spl_fit_append_fdt()
Michael Walle [Fri, 31 Oct 2025 13:13:52 +0000 (14:13 +0100)] 
common/spl: fix endless loop in spl_fit_append_fdt()

Technically, commit 24bf44cf88e7 ("spl: fit: Do not fail immediately if
an overlay is not available") introduced that regression as the code
will never advance if spl_fit_get_image_name() will return an error. But
at that time, spl_fit_get_image_node() was used in spl_fit_append_fdt()
which calls fdt_subnode_offset() to get the image node. And I presume
the commit was about the latter failing gracefully and trying the next
one.

But with commit b13eaf3bb4e6 ("spl: fit: Add board level function to
decide application of DTO") that behavior changed and the loop in
spl_fit_append_fdt() no longer uses spl_fit_get_image_node() but
spl_fit_get_image_name() directly. Thus it doesn't make any sense to not
break the loop if that fails.

Also, the original use case of commit 24bf44cf88e7 ("spl: fit: Do not
fail immediately if an overlay is not available") is preserved because
spl_subnode_offset() is now called within the loop and errors are
handled gracefully (and advancing the index).

Fixes: b13eaf3bb4e6 ("spl: fit: Add board level function to decide application of DTO")
Signed-off-by: Michael Walle <mwalle@kernel.org>
27 hours agoacpi: use U-Boot ACPI vendor ID
Heinrich Schuchardt [Fri, 31 Oct 2025 19:52:53 +0000 (20:52 +0100)] 
acpi: use U-Boot ACPI vendor ID

The U-Boot project has been assigned the vendor ID 'UBOO' [1]. Use this
vendor ID and our release version in the ACPI table headers.

[1] ACPI ID Registry
    https://uefi.org/ACPI_ID_List

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
27 hours agoAzure: Ensure we do a shallow git clone
Tom Rini [Mon, 3 Nov 2025 22:12:14 +0000 (16:12 -0600)] 
Azure: Ensure we do a shallow git clone

In Azure, older pipelines such as ours do not default to a shallow fetch
but rather do a complete clone. This introduces a marginal time increase
in each task, but also more importantly takes up significant disk space.
We are now getting warnings in some cases about using more than 95% of
our available disk space so take this as a first easy step to resolve
that problem.

Signed-off-by: Tom Rini <trini@konsulko.com>
28 hours agoRevert "power: regulator: Add vin-supply for GPIO and Fixed regulators"
Jonas Karlman [Sat, 1 Nov 2025 20:34:26 +0000 (20:34 +0000)] 
Revert "power: regulator: Add vin-supply for GPIO and Fixed regulators"

Rockchip boards may depend on a working MMC regulator in SPL to
successfully load FIT payload from MMC. Typically, these boards only
include the vmmc-supply regulator and not its vin-supply in SPL control
FDT.

The commit f98d812e5353 ("power: regulator: Add vin-supply for GPIO and
Fixed regulators") breaks loading FIT from MMC in SPL on some of these
boards due to now requiring the vin-supply to be included in the SPL
control FDT.

The commit also strangely enables any found vin-supply in
regulator_common_of_to_plat() and not when a regulator is enabled or as
part of regulator_autoset().

Revert the commit to fix FIT loading in SPL on broken boards.

If a board needs to have its vin-supply enabled, two options come to
mind:

- Add regulator-always-on prop to the regulator in the -u-boot.dtsi for
  any board.

- Implement full support for reference counting of regulators and then
  update the regulator-uclass to enable any found vin-supply when a
  regulator is enabled.

This reverts commit f98d812e5353408ef77a46bad1f1cdc793ff8a03.

Reported-by: Dang Huynh <danct12@riseup.net>
Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Dragan Simic <dsimic@manjaro.org>
28 hours agogpio: Return -ENODEV if gpio_hog_lookup_name() is empty
Wolfgang Wallner [Fri, 24 Oct 2025 12:52:45 +0000 (14:52 +0200)] 
gpio: Return -ENODEV if gpio_hog_lookup_name() is empty

If CONFIG_GPIO_HOG is not set, then gpio_hog_lookup_name() is empty,
and thus does not initialize any of its parameters. It does still
return 0 though, and so any calling function might assume that the
parameters have been initialized successfully.

Change the return value to -ENODEV in this case, as the function
would in the case when CONFIG_GPIO_HOG is set but the gpio hog
could not be found.

Signed-off-by: Wolfgang Wallner <wolfgang.wallner@br-automation.com>
Reviewed-by: Heiko Schocher <hs@nabladev.com>
28 hours agoarmv8: implement workaround for broken CNTFRQ_EL0 value
Kaustabh Chakraborty [Wed, 22 Oct 2025 21:02:57 +0000 (02:32 +0530)] 
armv8: implement workaround for broken CNTFRQ_EL0 value

In devices where the U-Boot is used as a secondary bootloader, we rely
on the device's primary bootloader to implement CNTFRQ_EL0. However,
this reliance may lead to a non-functional timer in broken firmware.

For instance, some versions of Samsung's S-Boot don't implement it. It's
also not possible to set it in the U-Boot, because it's booted in a lower
exception level. CNTFRQ_EL0 is reported to be 0.

Use gd->arch.timer_rate_hz to override the queried value if set. This
setting needs to be done in the board file, preferrably in timer_init().
This feature is present only when the CONFIG_ARMV8_CNTFRQ_BROKEN is
enabled.

Signed-off-by: Kaustabh Chakraborty <kauschluss@disroot.org>
2 days agoMerge tag 'u-boot-imx-master-20251104' of https://gitlab.denx.de/u-boot/custodians... 824/head
Tom Rini [Tue, 4 Nov 2025 19:06:26 +0000 (13:06 -0600)] 
Merge tag 'u-boot-imx-master-20251104' of https://gitlab.denx.de/u-boot/custodians/u-boot-imx

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

- Extend USB support for the i.MX9 family.
- Update memory controller for imx6ulz_smm_m2.
- Add remoteproc support for several i.MX boards.
- Add support for iMX95 15x15 EVK.

3 days agoGitlab: Drop vexpress_fvp from tests
Tom Rini [Tue, 4 Nov 2025 17:34:57 +0000 (11:34 -0600)] 
Gitlab: Drop vexpress_fvp from tests

Now that we have a test for QEMU using transfer list from the previous
stage, there are two platforms testing this particular infrastructure. A
problem with the vexpress_fvp platform emulation in Gitlab is that we
often run it on hosts that are fast enough that we run in to a race
condition when trying to acquire the console and the test fails. Remove
both vexpress_fvp tests from Gitlab (they can remain in Azure) to remove
these spurious failures.

Signed-off-by: Tom Rini <trini@konsulko.com>
3 days agoCI: Move to Ubuntu 'Jammy' 20251001 tag
Tom Rini [Tue, 4 Nov 2025 17:33:41 +0000 (11:33 -0600)] 
CI: Move to Ubuntu 'Jammy' 20251001 tag

This also incorporates the following commits to the Dockerfile:
da7942de29f7 Dockerfile: remove Python 2.7
183299d9a400 docker: add OP-TEE and TF-A build for testing Firmware Handoff

Signed-off-by: Tom Rini <trini@konsulko.com>
3 days agoDockerfile: remove Python 2.7
Heinrich Schuchardt [Wed, 29 Oct 2025 13:48:33 +0000 (14:48 +0100)] 
Dockerfile: remove Python 2.7

We don't use Python 2 anywhere. Remove the package from our Docker image.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
3 days agoMerge patch series "Enable Firmware Handoff CI test on qemu_arm64"
Tom Rini [Tue, 4 Nov 2025 16:59:50 +0000 (10:59 -0600)] 
Merge patch series "Enable Firmware Handoff CI test on qemu_arm64"

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

This patch series enable Firmware Handoff [1] CI tests on qemu_arm64 by:
1. fetch MbedTLS (v3.6), OP-TEE (v4.7.0) and TF-A (v2.13.0);
2. build bl1 and fip with both Firmware Handoff and Measured Boot
   enabled;
3. pytest to validate the Firmware Handoff feature via bloblist by
   checking the existence of expected FDT nodes and TPM events generated
   and handed over from TF-A/OP-TEE.

[1] https://github.com/FirmwareHandoff/firmware_handoff

Link: https://lore.kernel.org/r/20251021181703.598342-1-raymond.mao@linaro.org
3 days agoci: add test entries for qemu_arm64_tfa_fw_handoff
Raymond Mao [Tue, 21 Oct 2025 18:16:58 +0000 (11:16 -0700)] 
ci: add test entries for qemu_arm64_tfa_fw_handoff

Add qemu_arm64_tfa_fw_handoff test entries to azure and gitlab
pipelines.

Signed-off-by: Raymond Mao <raymond.mao@linaro.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
3 days agoci: check existence of bl1 and fip in the test script
Raymond Mao [Tue, 21 Oct 2025 18:16:57 +0000 (11:16 -0700)] 
ci: check existence of bl1 and fip in the test script

Check the existence of bl1 and fip from:
1. /opt/tf-a/${board_type}_${board_ident}, if not exist, then;
2. /opt/tf-a/${board_type}

This change allows to test with TF-A with specified board ID only.

Signed-off-by: Raymond Mao <raymond.mao@linaro.org>
3 days agoconfigs: select CMD_BLOBLIST for Firmware Handoff testing
Raymond Mao [Tue, 21 Oct 2025 18:16:56 +0000 (11:16 -0700)] 
configs: select CMD_BLOBLIST for Firmware Handoff testing

Firmware Handoff tests will leverage the same board type 'qemu_arm64'
with a new board ID 'fw_handoff_tfa_optee', thus select CMD_BLOBLIST
in qemu_arm64_defconfig for running the test.

Signed-off-by: Raymond Mao <raymond.mao@linaro.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
3 days agopytest: add test script to validate Firmware Handoff
Raymond Mao [Tue, 21 Oct 2025 18:16:55 +0000 (11:16 -0700)] 
pytest: add test script to validate Firmware Handoff

Add test cases to validate FDT and TPM eventlog handoff from TF-A
and OP-TEE via bloblist.

For FDT, the nodes 'reserved-memory' and 'firmware' appended by
OP-TEE indicates a successful handoff.

For TPM eventlog, the events 'SECURE_RT_EL3', 'SECURE_RT_EL1_OPTEE'
and 'SECURE_RT_EL1_OPTEE_EXTRA1' created by TF-A indicates a
successful handoff.

Signed-off-by: Raymond Mao <raymond.mao@linaro.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
3 days agodocker: add OP-TEE and TF-A build for testing Firmware Handoff
Raymond Mao [Tue, 21 Oct 2025 18:16:54 +0000 (11:16 -0700)] 
docker: add OP-TEE and TF-A build for testing Firmware Handoff

Fetch OP-TEE (4.7.0), TF-A (v2.13.0), MbedTLS (v3.6) and build
bl1 and fip with both Firmware Handoff and Measured Boot enabled.

Signed-off-by: Raymond Mao <raymond.mao@linaro.org>
Acked-by: Jerome Forissier <jerome.forissier@linaro.org>
3 days agoarm: armv8: mmu: fix mem_map_from_dram_banks
Anshul Dalal [Fri, 31 Oct 2025 16:17:31 +0000 (21:47 +0530)] 
arm: armv8: mmu: fix mem_map_from_dram_banks

mem_map_from_dram_banks calls fdtdec_setup_memory_banksize to setup the
dram banks though that is expected to be done by dram_init_banksize as
part of board_r sequence.

This has the side effect of modifying gd->bd->bi_dram as well, therefore
this patch removes the call and updates spl_enable_cache for K3 to call
dram_init_banksize.

Signed-off-by: Anshul Dalal <anshuld@ti.com>
Reported-by: Francesco Dolcini <francesco@dolcini.it>
Closes: https://lore.kernel.org/u-boot/20251027165225.GA71553@francesco-nb/
Fixes: fe2647f2a0d4 ("arm: armv8: mmu: add mem_map_from_dram_banks")
Tested-by: Emanuele Ghidoli <emanuele.ghidoli@toradex.com>
3 days agoimx95_evk: Add basic support for iMX95 15x15 EVK
Ye Li [Tue, 4 Nov 2025 15:05:37 +0000 (23:05 +0800)] 
imx95_evk: Add basic support for iMX95 15x15 EVK

Add boot support and peripherals like eMMC/SD, UART, I2C, GPIO, ENETC0/1
and PCIE0/1 for iMX95 15x15 LPDDR4X EVK.
Updated doc for build instructions.

Signed-off-by: Ye Li <ye.li@nxp.com>
3 days agoarm: dts: imx95-15x15-evk: Add -u-boot.dtsi for SPL and binman
Ye Li [Tue, 4 Nov 2025 15:05:36 +0000 (23:05 +0800)] 
arm: dts: imx95-15x15-evk: Add -u-boot.dtsi for SPL and binman

Add -u-boot.dtsi for iMX95 15x15 EVK used by SPL and binman.
iMX95 15x15 EVK uses LPDDR4X which needs dedicated DDR FW.

Signed-off-by: Ye Li <ye.li@nxp.com>
3 days agoimx95_evk: Share the env file for both 19x19 EVK and 15x15 EVK
Ye Li [Tue, 4 Nov 2025 15:05:35 +0000 (23:05 +0800)] 
imx95_evk: Share the env file for both 19x19 EVK and 15x15 EVK

Rename the env file to imx95_evk.env to share it with iMX95 15x15 EVK

Signed-off-by: Ye Li <ye.li@nxp.com>
3 days agoimx: kontron-sl-mx8mm: Add support for reading HW UIDs
Frieder Schrempf [Tue, 4 Nov 2025 12:54:28 +0000 (13:54 +0100)] 
imx: kontron-sl-mx8mm: Add support for reading HW UIDs

The factory provides a CPU UID in the OTPs and the SoM module
and the carrier board might provide additional UIDs in the GP
registers of the OTPs. Load these values in the following order
and create a serial number string:

* Board UID (GP2)
* SoM UID (GP1)
* CPU UID (UNIQUE_ID)

The string is stored in the "serial#" env variable and
exported to Linux. Further this prints the used UID to the
console which looks like this

  ID:    0042152331 (Board)

or:

  ID:    0030124840 (SoM)

or:

  ID:    4696668CD9516886 (CPU)

Signed-off-by: Frieder Schrempf <frieder.schrempf@kontron.de>
3 days agoimx: kontron-sl-mx6ul: Add support for reading HW UIDs
Frieder Schrempf [Tue, 4 Nov 2025 12:54:27 +0000 (13:54 +0100)] 
imx: kontron-sl-mx6ul: Add support for reading HW UIDs

The factory provides a CPU UID in the OTPs and the SoM module
and the carrier board might provide additional UIDs in the GP
registers of the OTPs. Load these values in the following order
and create a serial number string:

* Board UID (GP2)
* SoM UID (GP1)
* CPU UID (UNIQUE_ID)

The string is stored in the "serial#" env variable and
exported to Linux. Further this prints the used UID to the
console which looks like this

  ID:    0042152331 (Board)

or:

  ID:    0030124840 (SoM)

or:

  ID:    4696668CD9516886 (CPU)

Signed-off-by: Frieder Schrempf <frieder.schrempf@kontron.de>
3 days agoimx: kontron: Add common function to get HW UIDs from OTPs
Frieder Schrempf [Tue, 4 Nov 2025 12:54:26 +0000 (13:54 +0100)] 
imx: kontron: Add common function to get HW UIDs from OTPs

The factory provides a CPU UID in the OTPs and the SoM module
and the carrier board might provide additional UIDs in the GP
registers of the OTPs.

Provide a common function to load UIDs from arbitrary OTP
registers and generate a serial number string that is saved
in the "serial#" env variable.

Signed-off-by: Frieder Schrempf <frieder.schrempf@kontron.de>
3 days agoimx: kontron-sl-mx6ul: Enable CONFIG_BOARD_LATE_INIT to fix auto fastboot
Frieder Schrempf [Tue, 4 Nov 2025 12:54:25 +0000 (13:54 +0100)] 
imx: kontron-sl-mx6ul: Enable CONFIG_BOARD_LATE_INIT to fix auto fastboot

Recently code was added in board_late_init() to autostart fastboot
in case of booting from USB OTG. This change was ineffective as
enabling CONFIG_BOARD_LATE_INIT got lost during upstreaming.

Fixes: 410d9ccc0388 ("imx: kontron-sl-mx6ul: Autostart fastboot if booted from USB")
Signed-off-by: Frieder Schrempf <frieder.schrempf@kontron.de>
3 days agoimx: kontron-sl-mx8mm: Implement spl_board_loader_name()
Frieder Schrempf [Tue, 4 Nov 2025 10:30:08 +0000 (11:30 +0100)] 
imx: kontron-sl-mx8mm: Implement spl_board_loader_name()

This allows to print user-friendly names for the boot device
probed by SPL to the console.

Signed-off-by: Frieder Schrempf <frieder.schrempf@kontron.de>
3 days agoimx: kontron-sl-mx8mm: Adjust offset for U-Boot proper in case of eMMC fastboot
Frieder Schrempf [Tue, 4 Nov 2025 10:30:07 +0000 (11:30 +0100)] 
imx: kontron-sl-mx8mm: Adjust offset for U-Boot proper in case of eMMC fastboot

The image offset on SD/MMC devices is 33 KiB, except for eMMC boot if
fastboot is enabled. In this case it is 1 KiB. In order to make the
the bootloader universal, check the fastboot OTP boot fuse and adjust
the offset.

Signed-off-by: Frieder Schrempf <frieder.schrempf@kontron.de>
3 days agodoc: cmd: Document remoteproc usage
Peng Fan [Tue, 4 Nov 2025 10:06:01 +0000 (18:06 +0800)] 
doc: cmd: Document remoteproc usage

Add documentation for rproc cmd usage.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
3 days agodoc: board: nxp: Add remoteproc guide
Peng Fan [Tue, 4 Nov 2025 10:06:00 +0000 (18:06 +0800)] 
doc: board: nxp: Add remoteproc guide

Add guide on how to use the Remote Processors on i.MX8M and i.MX93.

Update MAINTAINERS to include doc/board/nxp.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
3 days agoimx93: Enable remoteproc for i.MX93-EVK/QSB/FRDM
Peng Fan [Tue, 4 Nov 2025 10:05:59 +0000 (18:05 +0800)] 
imx93: Enable remoteproc for i.MX93-EVK/QSB/FRDM

Select configs to enable remoteproc for i.MX93-EVK/QSB/FRDM

Reviewed-by: Ye Li <ye.li@nxp.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
3 days agoimx8mq: Enable remoteproc for i.MX8MQ EVK
Peng Fan [Tue, 4 Nov 2025 10:05:58 +0000 (18:05 +0800)] 
imx8mq: Enable remoteproc for i.MX8MQ EVK

Select configs to enable remoteproc for i.MX8MQ EVK

Reviewed-by: Ye Li <ye.li@nxp.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
3 days agoimx8mn: Enable remoteproc for i.MX8MN EVK
Peng Fan [Tue, 4 Nov 2025 10:05:57 +0000 (18:05 +0800)] 
imx8mn: Enable remoteproc for i.MX8MN EVK

Select configs to enable remoteproc for NXP i.MX8MN EVK boards

Reviewed-by: Ye Li <ye.li@nxp.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
3 days agoimx8mm: Enable remoteproc for i.MX8MM EVK
Peng Fan [Tue, 4 Nov 2025 10:05:56 +0000 (18:05 +0800)] 
imx8mm: Enable remoteproc for i.MX8MM EVK

Select configs for remoteproc on i.MX8MM EVK boards

Reviewed-by: Ye Li <ye.li@nxp.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
3 days agoimx8mp: Enable remoteproc for i.MX8MP EVK
Peng Fan [Tue, 4 Nov 2025 10:05:55 +0000 (18:05 +0800)] 
imx8mp: Enable remoteproc for i.MX8MP EVK

Select configs to enable remoteproc for NXP i.MX8MP EVK

Reviewed-by: Ye Li <ye.li@nxp.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
3 days agoarm: dts: imx8m: Add remoteproc node
Peng Fan [Tue, 4 Nov 2025 10:05:54 +0000 (18:05 +0800)] 
arm: dts: imx8m: Add remoteproc node

Add CM7/4 nodes for i.MX8MQ/M/N/P.

Reviewed-by: Ye Li <ye.li@nxp.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
3 days agoremoteproc: imx_rproc: Add support for i.MX93 CM33
Peng Fan [Tue, 4 Nov 2025 10:05:53 +0000 (18:05 +0800)] 
remoteproc: imx_rproc: Add support for i.MX93 CM33

Introduce remote processor configuration for the i.MX93 Cortex-M33 core.

This patch adds:
- Address translation table (ATT) for i.MX93, including TCM
  (secure and non-secure) and DDR regions.
- A new device configuration structure `imx_rproc_cfg_imx93` using SMC
  method and ARM SMC ops.
- Device tree match entry for "fsl,imx93-cm33"

This enables remoteproc framework to properly initialize and manage the
Cortex-M33 core on i.MX93 platforms.

Reviewed-by: Ye Li <ye.li@nxp.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
3 days agoremoteproc: imx_rproc: Support i.MX8MQ/M
Peng Fan [Tue, 4 Nov 2025 10:05:52 +0000 (18:05 +0800)] 
remoteproc: imx_rproc: Support i.MX8MQ/M

i.MX8MQ/M use MMIO based method to directly configure SRC registers
to start/stop M4.

Add mmio ops to start/stop/is_running.
Add i.MX8MQ cfg data, i.MX8MN reuses i.MX8MQ data.

Reviewed-by: Ye Li <ye.li@nxp.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
3 days agoremoteproc: Add imx_rproc driver to support NXP i.MX8MP/N
Peng Fan [Tue, 4 Nov 2025 10:05:51 +0000 (18:05 +0800)] 
remoteproc: Add imx_rproc driver to support NXP i.MX8MP/N

Support i.MX8MP/N with start/stop/device_to_virt/is_running/load
implemented. The device static configuration is mostly reused from
Linux Kernel with adapation to U-Boot dm_rproc_ops.
The booting method:
 - load mmc 2:2 0x90000000 /lib/firmware/imx8mp_m7_DDR_rpmsg_lite_str_echo_
   rtos.elf
 - rproc load 0 0x90000000 ${filesize}
 - rproc start 0

Reviewed-by: Ye Li <ye.li@nxp.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
3 days agoremoteproc: Extend device_to_virt with a is_iomem parameter
Peng Fan [Tue, 4 Nov 2025 10:05:50 +0000 (18:05 +0800)] 
remoteproc: Extend device_to_virt with a is_iomem parameter

Some areas needs to be initialized by using memcpy_toio and memset_io.
Following Linux Kernel commit: 40df0a91b2a5 ("remoteproc: add is_iomem to
da_to_va"), add this to U-Boot.

Reviewed-by: Ye Li <ye.li@nxp.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
3 days agoarm64: dts: imx8mp: Add missing LED enumerators for DH electronics i.MX8M Plus DHCOM...
Marek Vasut [Tue, 4 Nov 2025 01:52:03 +0000 (02:52 +0100)] 
arm64: dts: imx8mp: Add missing LED enumerators for DH electronics i.MX8M Plus DHCOM on PDK2

The LED enumerators are missing, which prevents the LEDs from being
accurately told apart by label. Fill in the enumerators the same way
they are already present on PDK3. Put this into local DT extras until
matching kernel patch lands in Linux.

Signed-off-by: Marek Vasut <marek.vasut@mailbox.org>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
3 days agoarm64: imx8ulp: Split SRAM0 mapping to isolate the SCMI shared memory as non-cacheable
Alice Guo [Mon, 3 Nov 2025 07:36:54 +0000 (15:36 +0800)] 
arm64: imx8ulp: Split SRAM0 mapping to isolate the SCMI shared memory as non-cacheable

This patch splits the 2MB SRAM0 mapping into three regions:
- 0x22000000~0x2201f000: cacheable normal memory
- 0x2201f000~0x22020000: non-cacheable device memory
- 0x22020000~0x22200000: cacheable normal memory

The change ensures the SCMI shared memory is non-cacheable, which
avoids cache-related issues after removing
mmu_set_region_dcache_behaviour() from scmi_dt_get_smt_buffer().

Signed-off-by: Alice Guo <alice.guo@nxp.com>
Reviewed-by: Marek Vasut <marek.vasut@mailbox.org>
3 days agoARM: imx: Enable DFU SF on all i.MX6 DHSOM and include dfu_alt_info in env
Marek Vasut [Sun, 2 Nov 2025 21:45:33 +0000 (22:45 +0100)] 
ARM: imx: Enable DFU SF on all i.MX6 DHSOM and include dfu_alt_info in env

Enable DFU SF on all i.MX6 DHSOM so the SPI NOR can be exposed via
DFU, and include dfu_alt_info which exposes the full SPI NOR via DFU.
To install new bootloader into the SPI NOR using DFU, it is necessary
to pad the u-boot-with-spl.imx to 0x400 Bytes offset first and then
send it to the board as follows:

"
u-boot=> dfu 0 sf
"

"
host$ dd if=/dev/zero of=pad.bin bs=1024 count=1
host$ cat pad.bin u-boot-with-spl.imx > flash.bin
host$ dfu-util -w -a 0 -D flash.bin
"

Signed-off-by: Marek Vasut <marek.vasut@mailbox.org>
3 days agoimx9: scmi: Drop parenthesis around enable
Marek Vasut [Tue, 4 Nov 2025 15:42:39 +0000 (12:42 -0300)] 
imx9: scmi: Drop parenthesis around enable

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
3 days agoconfigs: toradex-smarc-imx95: enable USB Gadget OS Descriptors for fastboot
Francesco Dolcini [Fri, 31 Oct 2025 08:39:04 +0000 (09:39 +0100)] 
configs: toradex-smarc-imx95: enable USB Gadget OS Descriptors for fastboot

USB OS Descriptors are used to install and configure the device without
requiring any user interaction on OS which support them (e.g. Windows).
Enable them in order to improve the user experience when fastboot is used.

Fixes: ff0540fcfe49 ("board: toradex: add Toradex SMARC iMX95")
Signed-off-by: Francesco Dolcini <francesco.dolcini@toradex.com>
3 days agobsh: imx6ulz_smm_m2: Update imx6ulz BSH SMM M2B board
Andrea Calabrese [Fri, 31 Oct 2025 07:46:10 +0000 (08:46 +0100)] 
bsh: imx6ulz_smm_m2: Update imx6ulz BSH SMM M2B board

Improve support for the BSH SystemMaster (SMM) M2B board.
In particular, this patch adds the timing for the 512 MB version, and
the spi.c reflects it by removing the safe guards.

Signed-off-by: Andrea Calabrese <andrea.calabrese@amarulasolutions.com>
3 days agobsh: update readme with instructions to build M2B
Andrea Calabrese [Fri, 31 Oct 2025 07:46:09 +0000 (08:46 +0100)] 
bsh: update readme with instructions to build M2B

readme was missing instructions to build M2B. Now added.

Signed-off-by: Andrea Calabrese <andrea.calabrese@amarulasolutions.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
3 days agoimx943_evk: Enable ENETC1 and ENETC2
Alice Guo [Tue, 28 Oct 2025 02:46:31 +0000 (10:46 +0800)] 
imx943_evk: Enable ENETC1 and ENETC2

With this patch, both ENETC1 and ENETC2 are functional on the i.MX943
EVK board and can be used for networking.

Signed-off-by: Alice Guo <alice.guo@nxp.com>
3 days agonet: fsl_enetc_mdio: Add support for phy-supply property
Ye Li [Tue, 28 Oct 2025 02:46:30 +0000 (10:46 +0800)] 
net: fsl_enetc_mdio: Add support for phy-supply property

Add support for the optional 'phy-supply' property in the ENETC MDIO
driver. This allows the driver to enable and manage the PHY's power
supply via the regulator framework when specified in device tree.

Signed-off-by: Ye Li <ye.li@nxp.com>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
Signed-off-by: Alice Guo <alice.guo@nxp.com>
3 days agonet: fsl_enetc: Add i.MX94 support to NETC block control driver
Ye Li [Tue, 28 Oct 2025 02:46:29 +0000 (10:46 +0800)] 
net: fsl_enetc: Add i.MX94 support to NETC block control driver

Extend the NETC block control driver to support the i.MX94 SoC.

Acked-by: Peng Fan <peng.fan@nxp.com>
Reviewed-by: Jacky Bai <ping.bai@nxp.com>
Signed-off-by: Ye Li <ye.li@nxp.com>
Signed-off-by: Alice Guo <alice.guo@nxp.com>
3 days agoimx943_evk: Add support for booting from USB SDP on USB3.0
Alice Guo [Tue, 28 Oct 2025 02:46:28 +0000 (10:46 +0800)] 
imx943_evk: Add support for booting from USB SDP on USB3.0

This patch is used to enable USB Gadget in SPL to make i.MX943 evk board
can use SDP on USB3.0 interface.

Signed-off-by: Alice Guo <alice.guo@nxp.com>