]> git.ipfire.org Git - thirdparty/u-boot.git/log
thirdparty/u-boot.git
5 days agoMerge tag 'xilinx-for-v2026.10-rc1-v3' of https://git.u-boot-project.org/u-boot/custo... 1007/head
Tom Rini [Wed, 8 Jul 2026 16:13:24 +0000 (10:13 -0600)] 
Merge tag 'xilinx-for-v2026.10-rc1-v3' of https://git.u-boot-project.org/u-boot/custodians/u-boot-amd

AMD/Xilinx/FPGA changes for v2026.10-rc1 v3

AMD:
- Firmware interface decoupling (part 1)

ZynqMP:
- DT updates
- Add TCG variant detection

Versal/Versal2:
- Drop DDR MMU mapping and map it dynamically

tools:
- Add register initialization to mkimage

MAINTAINERS:
- Clean Zynq/ZynqMP fragments

ufs:
- Fix driver reregistration

fpga:
- altera: Simplify driver conditional compilation selection

5 days agoarm: dts: zynqmp: Fix space indentation to use tabs
Michal Simek [Mon, 29 Jun 2026 09:46:36 +0000 (11:46 +0200)] 
arm: dts: zynqmp: Fix space indentation to use tabs

Fix indentation issues where spaces were used instead of tabs in several
ZynqMP device tree overlay files. Device tree files should use tabs for
indentation to maintain consistency with the kernel coding style.

Reviewed-by: Tomas Melin <tomas.melin@vaisala.com>
Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://patch.msgid.link/0dc7b65ebd48676719ace15a505ecec2f324822a.1782726386.git.michal.simek@amd.com
5 days agoarm64: xilinx: Add missing newline in kr260-revA
Michal Simek [Mon, 29 Jun 2026 09:46:35 +0000 (11:46 +0200)] 
arm64: xilinx: Add missing newline in kr260-revA

Add missing newline available in Linux already.

Reviewed-by: Tomas Melin <tomas.melin@vaisala.com>
Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://patch.msgid.link/ab6f006ee87efb54ee17f24a12c9f31aafc2f2ae.1782726386.git.michal.simek@amd.com
5 days agoarm64: zynqmp: Disable ina226 iio-hwmon nodes
Michal Simek [Mon, 29 Jun 2026 09:46:34 +0000 (11:46 +0200)] 
arm64: zynqmp: Disable ina226 iio-hwmon nodes

ina226 IIO driver doesn't need to be enabled by default in Linux that's why
disable iio-hwmon nodes to avoid warnings about it.

Reviewed-by: Tomas Melin <tomas.melin@vaisala.com>
Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://patch.msgid.link/deb2e92d5030a31dbb91b36fa77de3ad2de38a71.1782726386.git.michal.simek@amd.com
5 days agoarch: arm: dts: Add RTC clock nodes for ZynqMP platform
Harini T [Mon, 29 Jun 2026 09:46:33 +0000 (11:46 +0200)] 
arch: arm: dts: Add RTC clock nodes for ZynqMP platform

Add fixed RTC clock nodes at 32.768 kHz for ZynqMP. The RTC driver uses
this clock to calculate the calibration value, replacing the deprecated
calibration device tree property.

Signed-off-by: Harini T <harini.t@amd.com>
Reviewed-by: Tomas Melin <tomas.melin@vaisala.com>
Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://patch.msgid.link/8838c8c4fcd0dfe151bcee2a6c4da51df81e23cb.1782726386.git.michal.simek@amd.com
5 days agoarm64: versal-net: Add mmc_get_env_dev() and deduplicate MMC handling
Michal Simek [Tue, 23 Jun 2026 12:53:43 +0000 (14:53 +0200)] 
arm64: versal-net: Add mmc_get_env_dev() and deduplicate MMC handling

The SD and eMMC cases in boot_targets_setup() duplicated the MMC device
lookup, and versal-net relied on the weak mmc_get_env_dev() default
instead of selecting the device matching the boot mode (unlike versal and
zynqmp).

Factor the lookup into mmc_get_bootseq(), mirroring spi_get_bootseq():
it maps the boot mode to the MMC node and returns the device sequence,
optionally handing back the mode banner so only boot_targets_setup()
prints it. mmc_get_env_dev() is now provided as a thin wrapper, and the
SD/eMMC cases call the helper instead of open-coding the lookups. The
local udevice pointer in boot_targets_setup() is no longer needed.

Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://patch.msgid.link/7750a79c17146c66adeb83ad6d1bfa78b22ec8fa.1782219202.git.michal.simek@amd.com
5 days agoarm64: versal-net: Look up eMMC device in boot_targets_setup()
Michal Simek [Tue, 23 Jun 2026 12:53:42 +0000 (14:53 +0200)] 
arm64: versal-net: Look up eMMC device in boot_targets_setup()

The EMMC_MODE case set bootseq from dev_seq(dev) without ever assigning
dev, so it used an uninitialized pointer and produced a bogus device
sequence in boot_targets.

eMMC is wired to the SD1 controller (mmc@f1050000, see
versal-net-mini-emmc.dts). Look that device up like the SD cases do
before using its sequence number.

Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://patch.msgid.link/bf779dcdd30c900d7614c0fa8382cb3f4cb57c20.1782219202.git.michal.simek@amd.com
5 days agoarm64: versal-net: Do not print bootmode from spi_get_env_dev()
Michal Simek [Tue, 23 Jun 2026 12:53:41 +0000 (14:53 +0200)] 
arm64: versal-net: Do not print bootmode from spi_get_env_dev()

spi_get_bootseq() printed the QSPI/OSPI mode banner, which is noise when
called from spi_get_env_dev() during environment setup. The banner is
only meaningful for the "Bootmode:" announcement in boot_targets_setup().

Make spi_get_bootseq() a pure lookup that returns the banner string
through an optional output argument instead of printing it.
spi_get_env_dev() passes NULL and stays silent, while
boot_targets_setup() prints the returned mode name as before.

Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://patch.msgid.link/ae257af9d2fe026306b32c647e406450319a3c7a.1782219202.git.michal.simek@amd.com
5 days agoarm64: versal-net: Simplify spi_get_bootseq() bootmode switch
Michal Simek [Tue, 23 Jun 2026 12:53:40 +0000 (14:53 +0200)] 
arm64: versal-net: Simplify spi_get_bootseq() bootmode switch

The QSPI and OSPI cases only differ in the SPI device name. Pick the name
in the switch and perform a single uclass_get_device_by_name() lookup
afterwards, instead of repeating the lookup and dev_seq() in every case.

No functional change.

Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://patch.msgid.link/191f0f583e2d02c184ea2a2a2fe0ef473ca9fe61.1782219202.git.michal.simek@amd.com
5 days agoarm64: versal-net: Deduplicate SPI bootmode handling
Michal Simek [Tue, 23 Jun 2026 12:53:39 +0000 (14:53 +0200)] 
arm64: versal-net: Deduplicate SPI bootmode handling

spi_get_env_dev() and boot_targets_setup() both decoded the QSPI/OSPI
boot modes into a SPI device sequence number with identical
uclass_get_device_by_name() lookups.

Factor that logic into a single spi_get_bootseq() helper that takes the
bootmode and returns the device sequence. spi_get_env_dev() becomes a
thin wrapper around it, and boot_targets_setup() calls it for the
QSPI/OSPI cases instead of open-coding the lookups. Passing the bootmode
in avoids reading the bootmode register twice in boot_targets_setup().

No functional change.

Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://patch.msgid.link/f98037220a20c441f0ea964f94647948bc035997.1782219202.git.michal.simek@amd.com
5 days agoarm64: zynqmp: Decouple MMIO accessors from firmware
Michal Simek [Tue, 23 Jun 2026 12:53:38 +0000 (14:53 +0200)] 
arm64: zynqmp: Decouple MMIO accessors from firmware

zynqmp_mmio_read() and zynqmp_mmio_write() selected between direct MMIO
and the firmware (PM_MMIO_READ/WRITE) interface with an in-function
IS_ENABLED(CONFIG_ZYNQMP_FIRMWARE) / current_el() check. Generic arch
code should not carry firmware-specific ifdefs, and with SCMI the access
method changes again.

Split the accessors like the multiboot and bootmode hooks: the weak
default in arch/arm/mach-zynqmp does the direct MMIO access (used in SPL,
at EL3 and when no firmware is present), while firmware-zynqmp.c provides
a strong definition that issues the firmware call and falls back to the
direct access in SPL/EL3 where the SMC path is unavailable. The raw MMIO
primitives zynqmp_mmio_rawread() and zynqmp_mmio_rawwrite() are exported
for the shared fallback, and the read-modify-write helper now uses the
raw read instead of routing through the firmware-aware accessor.

The firmware-vs-MMIO decision is selected at link time, so adding SCMI
later only requires a third strong definition with no changes to generic
code.

Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://patch.msgid.link/d532df144d2c8e34be835bad6d0de3b26befdf01.1782219202.git.michal.simek@amd.com
5 days agoarm64: versal-net: Move bootmode decoding out of board code
Michal Simek [Tue, 23 Jun 2026 12:53:37 +0000 (14:53 +0200)] 
arm64: versal-net: Move bootmode decoding out of board code

versal_net_get_bootmode() open-coded the
IS_ENABLED(CONFIG_ZYNQMP_FIRMWARE) selection between the firmware call
zynqmp_pm_get_bootmode_reg() and a direct readl() in board code. Like
the Versal change, move the whole function behind an overridable hook so
generic board code stays free of firmware specifics and is ready for
SCMI.

The weak versal_net_get_bootmode() in arch/arm/mach-versal-net does the
plain MMIO read via versal_net_bootmode_reg() and decodes it (used at EL3
and without firmware). When CONFIG_ZYNQMP_FIRMWARE is enabled,
firmware-zynqmp.c provides a strong definition that reads the register
through the firmware call, falling back to the direct read at EL3 where
the SMC path to firmware is unavailable. This preserves the existing
firmware-based bootmode behaviour while removing the firmware interface
from board code; the now unused zynqmp_firmware.h include is dropped.

Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://patch.msgid.link/be67e9c6d0bc36840a46594413886d2003967c64.1782219202.git.michal.simek@amd.com
5 days agoarm64: versal-net: Move SoC detection out of board code
Michal Simek [Tue, 23 Jun 2026 12:53:36 +0000 (14:53 +0200)] 
arm64: versal-net: Move SoC detection out of board code

soc_detection() and soc_name_decode() read the PMC_TAP version/idcode
registers and decode the platform. This is SoC information rather than
board policy, and a firmware interface could provide it instead, so it
does not belong in board code.

Move both functions, together with the shared platform_id and
platform_version state, into arch/arm/mach-versal-net where they still
override the weak stubs in the Xilinx common board code. The board file
drops the now unused linux/bitfield.h include.

Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://patch.msgid.link/8757111cb254543d61541fb030d51f62c3c555a8.1782219202.git.michal.simek@amd.com
5 days agoarm64: versal2: Move SoC detection out of board code
Michal Simek [Tue, 23 Jun 2026 12:53:35 +0000 (14:53 +0200)] 
arm64: versal2: Move SoC detection out of board code

soc_detection() and soc_name_decode() read the PMC_TAP version/idcode
registers and decode the platform. This is SoC information rather than
board policy, and a firmware interface could provide it instead, so it
does not belong in board code.

Move both functions, together with the shared platform_id and
platform_version state, into arch/arm/mach-versal2 where they still
override the weak stubs in the Xilinx common board code. The board file
drops the now unused linux/bitfield.h include.

Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://patch.msgid.link/c332ab27f66f1c808f32a4bcb453d9e8da543331.1782219202.git.michal.simek@amd.com
5 days agoarm64: zynqmp: Move board_early_init_r clock setup to mach code
Michal Simek [Tue, 23 Jun 2026 12:53:34 +0000 (14:53 +0200)] 
arm64: zynqmp: Move board_early_init_r clock setup to mach code

board_early_init_r() programmed the system timestamp counter directly
with readl()/writel() in board code. This is SoC register setup rather
than board policy, and similar code exists across the Xilinx SoCs.

Move it into zynqmp_timer_setup() in arch/arm/mach-zynqmp so the board
hook only keeps the EL3 guard and calls the helper. The asm/arch/clk.h
include (for zynqmp_get_system_timer_freq()) moves to cpu.c along with
the code.

Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://patch.msgid.link/2d8f2419fab314b4ff8fd53b846e1dd6151586d3.1782219202.git.michal.simek@amd.com
5 days agoarm64: versal-net: Move board_early_init_r clock setup to mach code
Michal Simek [Tue, 23 Jun 2026 12:53:33 +0000 (14:53 +0200)] 
arm64: versal-net: Move board_early_init_r clock setup to mach code

board_early_init_r() programmed the IOU switch clock and the system
timestamp counter directly with readl()/writel() in board code. This is
SoC register setup rather than board policy, and the same block is
duplicated across the Xilinx SoCs.

Move it into versal_net_timer_setup() in arch/arm/mach-versal-net so the
board hook only keeps the EL3 guard and calls the helper.

Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://patch.msgid.link/10dd9f35d03be0402ce13475f20b2cd3761189a6.1782219202.git.michal.simek@amd.com
5 days agoarm64: versal2: Move board_early_init_r clock setup to mach code
Michal Simek [Tue, 23 Jun 2026 12:53:32 +0000 (14:53 +0200)] 
arm64: versal2: Move board_early_init_r clock setup to mach code

board_early_init_r() programmed the IOU switch clock and the system
timestamp counter directly with readl()/writel() in board code. This is
SoC register setup rather than board policy, and the same block is
duplicated across the Xilinx SoCs.

Move it into versal2_timer_setup() in arch/arm/mach-versal2 so the board
hook only keeps the EL3 guard and calls the helper.

Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://patch.msgid.link/08e835a183c39de6f666375ac390eee6a8f3f12e.1782219202.git.michal.simek@amd.com
5 days agoarm64: versal: Move board_early_init_r clock setup to mach code
Michal Simek [Tue, 23 Jun 2026 12:53:31 +0000 (14:53 +0200)] 
arm64: versal: Move board_early_init_r clock setup to mach code

board_early_init_r() programmed the IOU switch clock and the system
timestamp counter directly with readl()/writel() in board code. This is
SoC register setup rather than board policy, and the same block is
duplicated across the Xilinx SoCs.

Move it into versal_timer_setup() in arch/arm/mach-versal so the board
hook only keeps the EL3 guard and calls the helper.

Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://patch.msgid.link/2234d746ab5b8240e88b1a629d51f93751ee3b60.1782219202.git.michal.simek@amd.com
5 days agoarm64: versal: Move bootmode decoding out of board code
Michal Simek [Tue, 23 Jun 2026 12:53:30 +0000 (14:53 +0200)] 
arm64: versal: Move bootmode decoding out of board code

versal_get_bootmode() lived in board code and open-coded the
IS_ENABLED(CONFIG_ZYNQMP_FIRMWARE) selection between the firmware call
zynqmp_pm_get_bootmode_reg() and a direct readl(). To keep generic board
code free of firmware specifics and SoC register details and ready for
SCMI, move the whole function, including the alt-shift and mask decoding,
behind an overridable hook.

The weak versal_get_bootmode() in arch/arm/mach-versal does the plain
MMIO read via versal_bootmode_reg() and decodes it (used at EL3 and
without firmware). When CONFIG_ZYNQMP_FIRMWARE is enabled,
firmware-zynqmp.c provides a strong definition that reads the register
through the firmware call, falling back to the direct read at EL3 where
the SMC path to firmware is unavailable. This preserves the existing
firmware-based bootmode behaviour while removing the firmware interface
from board code; the now unused zynqmp_firmware.h include is dropped.

Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://patch.msgid.link/d60073feed8da8d3aff9eabee6ab132e0bbd0f8e.1782219202.git.michal.simek@amd.com
5 days agoarm64: versal: Decouple multiboot register access from firmware
Michal Simek [Tue, 23 Jun 2026 12:53:29 +0000 (14:53 +0200)] 
arm64: versal: Decouple multiboot register access from firmware

versal_multi_boot() in board code selected between the firmware call
zynqmp_pm_get_pmc_multi_boot_reg() and a direct readl() based on an
IS_ENABLED(CONFIG_ZYNQMP_FIRMWARE) check. Generic board code should not
carry firmware-specific ifdefs, and this becomes harder to maintain once
SCMI introduces yet another access method.

Introduce an overridable accessor versal_pmc_multi_boot(). The weak
default lives in arch/arm/mach-versal and performs the plain MMIO read
(used at EL3 and when no firmware is present). When CONFIG_ZYNQMP_FIRMWARE
is enabled, firmware-zynqmp.c provides a strong definition that issues the
firmware call, falling back to the direct read at EL3 where the SMC path
to firmware is unavailable. The shared MMIO read is factored into
versal_multi_boot_reg() so the firmware override does not duplicate it.

versal_multi_boot() keeps the generic JTAG/QEMU workaround and simply
calls the accessor, so board code no longer references the firmware
interface for the multiboot register. The firmware-vs-MMIO decision is
selected at link time, and adding SCMI later only requires a third strong
definition with no board-code changes.

Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://patch.msgid.link/199ef6a1411c54f154fe4a43b5fef166b9927f7a.1782219202.git.michal.simek@amd.com
5 days agoarm64: versal2: Move bootmode decoding out of board code
Michal Simek [Tue, 23 Jun 2026 12:53:28 +0000 (14:53 +0200)] 
arm64: versal2: Move bootmode decoding out of board code

versal2_get_bootmode() lived in board code and accessed the CRP boot
mode register with a direct readl(). To keep generic board code free of
SoC register details and ready for firmware/SCMI based access, move the
whole function, including the alt-shift and mask decoding, into
arch/arm/mach-versal2 as a __weak default.

Board code now simply calls versal2_get_bootmode(). When a firmware
based implementation is available and tested it can provide a strong
definition that overrides the weak one at link time; until then only the
weak MMIO version is built.

Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://patch.msgid.link/f3274ec77218373bc0452f6795a3ad6016be0058.1782219202.git.michal.simek@amd.com
5 days agoarm64: versal2: Decouple multiboot register access from firmware
Michal Simek [Tue, 23 Jun 2026 12:53:27 +0000 (14:53 +0200)] 
arm64: versal2: Decouple multiboot register access from firmware

versal2_multi_boot() in board code selected between the firmware call
zynqmp_pm_get_pmc_multi_boot_reg() and a direct readl() based on an
IS_ENABLED(CONFIG_ZYNQMP_FIRMWARE) check. Generic board code should not
carry firmware-specific ifdefs, and this becomes harder to maintain once
SCMI introduces yet another access method.

Introduce an overridable accessor versal2_pmc_multi_boot(). The weak
default lives in arch/arm/mach-versal2 and performs the plain MMIO read
(used at EL3 and when no firmware is present). When CONFIG_ZYNQMP_FIRMWARE
is enabled, firmware-zynqmp.c provides a strong definition that issues the
firmware call, falling back to the direct read at EL3 where the SMC path
to firmware is unavailable. The shared MMIO read is factored into
versal2_multi_boot_reg() so the firmware override does not duplicate it.

versal2_multi_boot() keeps the generic JTAG/QEMU workaround and simply
calls the accessor, so board code no longer references the firmware
interface and the now unused zynqmp_firmware.h include is dropped. The
firmware-vs-MMIO decision is selected at link time, and adding SCMI later
only requires a third strong definition with no board-code changes.

Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://patch.msgid.link/0033a1fa8efb4ae0c3ac6a6f5c5c1b4e0f22f02c.1782219202.git.michal.simek@amd.com
5 days agoarm: xilinx: Guard mach sys_proto.h against multiple inclusion
Michal Simek [Tue, 23 Jun 2026 12:53:26 +0000 (14:53 +0200)] 
arm: xilinx: Guard mach sys_proto.h against multiple inclusion

The Versal and Versal Gen 2 mach sys_proto.h headers lacked an include
guard. mach-versal/sys_proto.h additionally defines enum tcm_mode, so
including it twice in one translation unit fails to build with a
redeclaration error.

This is about to happen in firmware-zynqmp.c, which needs the SoC
prototypes unconditionally for the upcoming weak/strong multiboot and
bootmode accessors. Add the standard _ASM_ARCH_SYS_PROTO_H guard, as
already used by mach-zynqmp, so the header can be included more than once.

Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://patch.msgid.link/1bf5b1d49abb271c2c5e7135837b740179b95553.1782219202.git.michal.simek@amd.com
5 days agosoc: xilinx: zynqmp: Add TCG variant detection for ZU3TCG
Padmarao Begari [Tue, 23 Jun 2026 15:08:22 +0000 (20:38 +0530)] 
soc: xilinx: zynqmp: Add TCG variant detection for ZU3TCG

The XCZU3TCG device shares IDCODE 0x04718093 with XCZU3TEG but has
the GPU disable eFuse bit set (Consumer Grade, no GPU). Previously,
the TEG detection branch appended "teg" unconditionally, causing
U-Boot to report the device as zu3teg and failing bitstream ID
checks for xczu3tcg bitstreams.

Check EFUSE_GPU_DIS_MASK in the TEG branch to distinguish the two
sub-variants, mirroring the existing EG/CG detection logic:
- GPU disabled -> TCG family -> "zu3tcg"
- GPU enabled  -> TEG family -> "zu3teg"

Fixes: fa2f0c97af96 ("soc: zynqmp: Add the IDcode for TEG variant")
Signed-off-by: Padmarao Begari <padmarao.begari@amd.com>
Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://patch.msgid.link/20260623150943.2662500-1-padmarao.begari@amd.com
5 days agodrivers: fpga: Use FPGA_INTEL_SDM_MAILBOX conditional instead of Agilex/Stratix10
Danish Ahmad Rosdi [Mon, 8 Jun 2026 09:45:47 +0000 (17:45 +0800)] 
drivers: fpga: Use FPGA_INTEL_SDM_MAILBOX conditional instead of Agilex/Stratix10

Replace the conditional compilation checks for
CONFIG_ARCH_SOCFPGA_AGILEX and CONFIG_ARCH_SOCFPGA_STRATIX10 with
CONFIG_FPGA_INTEL_SDM_MAILBOX.

Signed-off-by: Danish Ahmad Rosdi <danish.ahmad.rosdi@altera.com>
Signed-off-by: Chen Huei Lok <chen.huei.lok@altera.com>
Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/20260608094547.3026-1-chen.huei.lok@altera.com
5 days agoufs: amd-versal2: Fix missing .priv_auto in driver registration
Pranav Tilak [Tue, 23 Jun 2026 03:53:51 +0000 (09:23 +0530)] 
ufs: amd-versal2: Fix missing .priv_auto in driver registration

Add missing .priv_auto field to the driver. Without it,
struct ufs_versal2_priv is never properly allocated and dev_get_priv()
returns NULL, leading to DDR corruption at low DDR addresses.

Fixes: b5ac5f030720 ("ufs: ufs-amd-versal2: Add support for AMD UFS controller")
Signed-off-by: Pranav Tilak <pranav.vinaytilak@amd.com>
Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/20260623035411.2088224-1-pranav.vinaytilak@amd.com
5 days agoMAINTAINERS: Replace Zynq/ZynqMP with N:
Marek Vasut [Wed, 17 Jun 2026 02:48:46 +0000 (04:48 +0200)] 
MAINTAINERS: Replace Zynq/ZynqMP with N:

Use N: to match on all zynq/zynqmp files, drop the large list of
entries which represent the same set of relevant files and miss a
few in the process. Combine Zynq and ZynqMP entries into single
entry to further cut down the duplication.

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/20260617024902.153555-1-marek.vasut+renesas@mailbox.org
5 days agomkimage: allow zynqmpbif to use a register initialization file
Erich E. Hoover [Fri, 12 Jun 2026 15:04:54 +0000 (09:04 -0600)] 
mkimage: allow zynqmpbif to use a register initialization file

The ZynqMP Boot Image Format allows specifying the register
initialization file with the "[init]" attribute.  Since this
feature is already supported by the "zynqmpimage" backend, this
commit leverages that existing capability to add support for the
"[init]" attribute in the zynqmpbif backend:
https://docs.amd.com/r/en-US/ug1283-bootgen-user-guide/init

This currently uses the same register initialization file format as
zynqmpimage (ASCII text hex values with each line composed of a pair
of register address and value), for example:
===
0xff003248 0x12345678
===
It is not, yet, compatible with the format used by bootgen:
https://docs.amd.com/r/en-US/ug1283-bootgen-user-guide/Initialization-Pairs-and-INT-File-Attribute

Use this feature, with other zynqmpbif options, like so:
===
image : {
     [init] reginit.int
     [bootloader] fsbl.elf
     [pmufw_image] pmufw.elf
     [destination_cpu=a53-0, exception_level=el-3] bl31.elf
     [destination_cpu=a53-0, exception_level=el-2, load=0x08000000,
startup=0x08000000] u-boot.bin
}
===

Signed-off-by: Erich E. Hoover <erich.e.hoover@gmail.com>
Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/20260612150454.2194375-1-erich.e.hoover@gmail.com
5 days agoarm64: versal: Drop static DDR and PCIe MMU mappings
Michal Simek [Thu, 11 Jun 2026 12:10:26 +0000 (14:10 +0200)] 
arm64: versal: Drop static DDR and PCIe MMU mappings

AM011 Versal ACAP TRM, Table 43, defines:
- 0x006_0000_0000 - 0x007_FFFF_FFFF PCIe region 1
- 0x008_0000_0000 - 0x00F_FFFF_FFFF DDR controller 0 region 1
- 0x040_0000_0000 - 0x04F_FFFF_FFFF HBM0
- 0x050_0000_0000 - 0x05F_FFFF_FFFF HBM1
- 0x060_0000_0000 - 0x06F_FFFF_FFFF HBM2
- 0x070_0000_0000 - 0x07F_FFFF_FFFF HBM3
- 0x080_0000_0000 - 0x0BF_FFFF_FFFF PCIe region 2
- 0x0C0_0000_0000 - 0x0FF_FFFF_FFFF DDR controller 0 region 2

The old static normal-memory mapping spans PCIe, while DDR coverage is
already populated later from the DRAM banks discovered by mem_map_fill().
Drop the stale static mapping so the MMU table matches the Versal address
map. Also matting was using wrong attributes.

Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/6fad36f9e7abdfee2fd29943f3a5b63d1421eaf9.1781179823.git.michal.simek@amd.com
5 days agoarm64: versal2: Drop static DDR MMU mappings
Michal Simek [Thu, 11 Jun 2026 12:10:25 +0000 (14:10 +0200)] 
arm64: versal2: Drop static DDR MMU mappings

DDR coverage is already populated later from the DRAM banks discovered by
mem_map_fill(). Drop the stale static mappings so the MMU table matches
address map more closely.

Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/156e48d8228acfeba8866618038b48cd51490ea7.1781179823.git.michal.simek@amd.com
5 days agoamd: versal2: detect spi env bus from boot mode
Suraj Kakade [Wed, 10 Jun 2026 11:05:31 +0000 (16:35 +0530)] 
amd: versal2: detect spi env bus from boot mode

Add spi_get_env_dev() to dynamically detect the correct SPI
bus based on the actual boot mode at runtime. This ensures
environment variables are always loaded from the correct SPI
flash controller regardless of the bus numbering.

For example, on some Versal Gen 2 boards, SPI is disabled in DTS
leaving bus 0 empty in DM. Only QSPI is enabled at bus 1. The
default CONFIG_ENV_SPI_BUS=0 causes U-Boot to search for environment
at bus 0 which does not exist, triggering the warning
"spi_flash_probe_bus_cs() failed, using default environment".

Signed-off-by: Suraj Kakade <suraj.hanumantkakade@amd.com>
Link: https://lore.kernel.org/r/20260610110557.2183203-1-suraj.hanumantkakade@amd.com
Signed-off-by: Michal Simek <michal.simek@amd.com>
5 days agoarm64: zynqmp: Sync compatible string format
Michal Simek [Tue, 9 Jun 2026 07:48:23 +0000 (09:48 +0200)] 
arm64: zynqmp: Sync compatible string format

There is no reason to have non zynqmp-sc compatible string for overlays
which can be applied only with SCs.

Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/4192927ae769e74e4ddbc1cc9814ed0305b64a5d.1780991287.git.michal.simek@amd.com
5 days agoarm64: dts: xilinx: Drop "label" property on dlg, slg7xl45106
Rob Herring (Arm) [Tue, 9 Jun 2026 07:48:22 +0000 (09:48 +0200)] 
arm64: dts: xilinx: Drop "label" property on dlg, slg7xl45106

The "label" property is not documented for the dlg,slg7xl45106. Nor is
it common to use for GPIO controllers. So drop it.

Signed-off-by: Rob Herring (Arm) <robh@kernel.org>
Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/32c5b160de5b8e5ffb91366cbafac0b5fd5c834a.1780991287.git.michal.simek@amd.com
5 days agoarm64: zynqmp: dts: Fix file descriptions to match actual filenames
Michal Simek [Tue, 9 Jun 2026 07:48:21 +0000 (09:48 +0200)] 
arm64: zynqmp: dts: Fix file descriptions to match actual filenames

Fix descriptions that don't match their filenames:
- zynqmp-sc-vpk180-revB.dtso: described as revA instead of revB
- zynqmp-sck-kv-g-revB.dtso: described as revA instead of revB

Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/456e4ff541c60355aa3d35627ec481263113349e.1780991287.git.michal.simek@amd.com
5 days agoarm64: zynqmp: add USB hub supply regulators
Shaikh Mohammed Suhan [Tue, 9 Jun 2026 07:48:20 +0000 (09:48 +0200)] 
arm64: zynqmp: add USB hub supply regulators

Add fixed supply regulators for the onboard USB hub (USB2744) used on
Kria platforms.

The USB hub requires two always-on power rails:
- vdd:  3.3V main supply
- vdd2: auxiliary supply

Model these rails as fixed regulators and reference them from the hub
node to accurately describe the hardware.

Signed-off-by: Shaikh Mohammed Suhan <suhan.sm@amd.com>
Reviewed-by: Radhey Shyam Pandey <radhey.shyam.pandey@amd.com>
Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/541ee484c0f73fda630022528ddc56d01a481bca.1780991287.git.michal.simek@amd.com
5 days agoarm64: zynqmp: Add CMA reserved-memory for runtime FPGA loading
Michal Simek [Tue, 9 Jun 2026 07:48:19 +0000 (09:48 +0200)] 
arm64: zynqmp: Add CMA reserved-memory for runtime FPGA loading

Add CMA (Contiguous Memory Allocator) reserved-memory regions to all
Xilinx arm64 board device trees to support runtime FPGA programming.

The CMA pool uses dynamic allocation constrained to the low 2 GB DDR region
via alloc-ranges so that the kernel places it within the 32-bit addressable
space.

CMA sizes are chosen per silicon family to accommodate the maximum PL
bitstream/PDI size:
  - Kria K24 SOM:                           64 MB
  - ZynqMP boards:                         128 MB

For Kria K24 SOM the CMA inherited from K26 is overridden to 64 MB.
For Kria SOMs, the CMA node is added to the SOM DTS only, not to
carrier board overlays.

Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/837e21582e886f1be9f95901109745ac5a8b2a25.1780991287.git.michal.simek@amd.com
5 days agoarm64: zynqmp: Use fixed-partitions for MTD
Michal Simek [Tue, 9 Jun 2026 07:48:18 +0000 (09:48 +0200)] 
arm64: zynqmp: Use fixed-partitions for MTD

Describe flash and NAND MTD partitions using the fixed-partitions
compatible under a dedicated partitions subnode. U-Boot only creates
slave MTD devices from this binding in add_mtd_partitions_of(), so
mtd list can show named partitions.

Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/a9e72b2c62e1b2e5c485302a861e5bae55ec2b83.1780991287.git.michal.simek@amd.com
5 days agoarm64: zynqmp: Drop incorrect #phy-cells from ethernet-phy nodes
Michal Simek [Tue, 9 Jun 2026 07:48:17 +0000 (09:48 +0200)] 
arm64: zynqmp: Drop incorrect #phy-cells from ethernet-phy nodes

The #phy-cells property is meant for generic PHY providers
(Documentation/devicetree/bindings/phy/phy-bindings.txt) and is not a
valid property for ethernet-phy nodes. Its presence triggers a
dt-validate warning:

  ethernet-phy@x (ethernet-phy-id001c.c816): Unevaluated properties
  are not allowed ('#phy-cells' was unexpected)

Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/d50e4ed12227609f3f827acde885c1d37782b8a9.1780991287.git.michal.simek@amd.com
5 days agoarm64: zynqmp-dlc21-revA: add mac nvmem cell for gem0
Trapti Damodar Balgi [Tue, 9 Jun 2026 07:48:16 +0000 (09:48 +0200)] 
arm64: zynqmp-dlc21-revA: add mac nvmem cell for gem0

Enable nvmem support for MAC address retrieval from EEPROM for
ethernet@ff0b0000.
Add nvmem-cells and nvmem-cell-names to the GEM0 node, and define a
mac-address@20 cell under the EEPROM node on I2C0.

This allows U-Boot to read the MAC address from EEPROM at offset 0x20.

Signed-off-by: Trapti Damodar Balgi <traptidamodar.balgi@amd.com>
Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/49490b1d510f27f47e71e86c7d1f29478111ef81.1780991287.git.michal.simek@amd.com
5 days agoarm64: zynqmp-dlc21-revA: Update GPIO line names mapping
Trapti Damodar Balgi [Tue, 9 Jun 2026 07:48:15 +0000 (09:48 +0200)] 
arm64: zynqmp-dlc21-revA: Update GPIO line names mapping

Update the gpio-line-names property to reflect the latest GPIO mapping,
including PMOD and VCCO labels.

Signed-off-by: Trapti Damodar Balgi <traptidamodar.balgi@amd.com>
Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/c204b6474c821a0b46b94fa87ee69a6693fd8686.1780991287.git.michal.simek@amd.com
7 days agoMerge branch 'next'
Tom Rini [Tue, 7 Jul 2026 00:26:12 +0000 (18:26 -0600)] 
Merge branch 'next'

7 days agoPrepare v2026.07 v2026.07
Tom Rini [Mon, 6 Jul 2026 23:50:43 +0000 (17:50 -0600)] 
Prepare v2026.07

Signed-off-by: Tom Rini <trini@konsulko.com>
7 days agoMerge tag 'fsl-qoriq-next-2026-07-06' of https://source.denx.de/u-boot/custodians... next
Tom Rini [Mon, 6 Jul 2026 18:00:26 +0000 (12:00 -0600)] 
Merge tag 'fsl-qoriq-next-2026-07-06' of https://source.denx.de/u-boot/custodians/u-boot-fsl-qoriq into next

CI: https://source.denx.de/u-boot/custodians/u-boot-fsl-qoriq/-/pipelines/30622

- ls1028ardb: Move environment variables from header to .env file
- crypto: fsl: Hide CAAM_64BIT symbol behind FSL_CAAM dependency
- gpio: mpc8xxx: Add set_flags/get_flags ops
- power: domain: scmi: Allow failure in getting power domain attribute

7 days agoMerge patch series "Remove patman from the U-Boot tree"
Tom Rini [Mon, 6 Jul 2026 14:12:19 +0000 (08:12 -0600)] 
Merge patch series "Remove patman from the U-Boot tree"

Simon Glass <sjg@chromium.org> says:

patman is now maintained as a standalone 'patch-manager' package, so
remove it from the tree. The command becomes a stub that tells people to
run 'pip install patch-manager'.

buildman still imports the shared modules commit and patchstream (along
with their dependencies), so this series leaves those in place. It drops
the tool's code, tests, CI hooks and packaging, and removes the in-tree
documentation, moving the b4 contributor guide alongside the patman note
in the patch-sending docs. It also adds a .patman-defaults file so the external
tool is set up for U-Boot, next to the existing .b4-config. Where the CI
jobs relied on patman's requirements for the setuptools that pylibfdt
needs, they now install scripts/dtc/pylibfdt/requirements.txt instead.

More could be done here: commit and patchstream (and their dependencies
series, get_maintainer and settings) only remain because buildman still
imports them. A follow-up could move those into u_boot_pylib (or
buildman itself) and drop the rest, leaving tools/patman as just the
stub.

Link: https://lore.kernel.org/r/20260705193251.2190705-1-sjg@chromium.org
7 days agopatman: Remove the patch-management code
Simon Glass [Sun, 5 Jul 2026 19:32:17 +0000 (13:32 -0600)] 
patman: Remove the patch-management code

Delete the command-line tool and its supporting modules, now that this
functionality lives in the standalone patch-manager package.

Keep the modules that buildman still imports (commit and patchstream,
plus their dependencies series, get_maintainer and settings), along with
the stub command. Trim __init__.py to match.

Signed-off-by: Simon Glass <sjg@chromium.org>
7 days agopatman: Remove the test suite
Simon Glass [Sun, 5 Jul 2026 19:32:16 +0000 (13:32 -0600)] 
patman: Remove the test suite

These tests cover the patch-management functionality, which is being
removed from the tree in favour of the standalone patch-manager package.
Drop the tests and their data files.

Signed-off-by: Simon Glass <sjg@chromium.org>
7 days agopatman: Replace the tool with a stub for patch-manager
Simon Glass [Sun, 5 Jul 2026 19:32:15 +0000 (13:32 -0600)] 
patman: Replace the tool with a stub for patch-manager

patman is now maintained as a standalone 'patch-manager' package, rather
than in the U-Boot tree. Replace the command with a small stub which
tells people how to install it.

buildman still uses the shared modules commit and patchstream (and their
dependencies), so leave those in place; the patches that follow remove
the patch-management code itself.

Signed-off-by: Simon Glass <sjg@chromium.org>
7 days agopatman: Add a .patman-defaults file for U-Boot
Simon Glass [Sun, 5 Jul 2026 19:32:14 +0000 (13:32 -0600)] 
patman: Add a .patman-defaults file for U-Boot

patman is now installed from the separate patch-manager package. It reads
a .patman-defaults file from the tree root as its lowest-priority config,
so a project can ship defaults that developers still override from their
own ~/.patman, a local .patman or the command line. This behaviour is new
in patman version 0.0.20

Add one for U-Boot, alongside .b4-config, pinning the patchwork server and
the get_maintainer.pl invocation so the tool works out of the box without
depending on patman's built-in defaults. A few other settings are listed,
commented out, as a starting point.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
7 days agotest: Stop running the patman tests
Simon Glass [Sun, 5 Jul 2026 19:32:22 +0000 (13:32 -0600)] 
test: Stop running the patman tests

The patman tests no longer exist in the tree, so drop them from the
test/run script (used by 'make tcheck' and friends) and from the
tools-testing example in the documentation.

Signed-off-by: Simon Glass <sjg@chromium.org>
7 days agotools: Stop packaging patman as a pip module
Simon Glass [Sun, 5 Jul 2026 19:32:21 +0000 (13:32 -0600)] 
tools: Stop packaging patman as a pip module

patman is no longer shipped from the U-Boot tree, so drop it from the
'make pip' target and from make_pip.sh, and remove its packaging files
(setup.py, pyproject.toml, requirements.txt). Nothing else refers to
them by this point in the series, so they can go.

Also fix binman's pyproject.toml, which declares package-data for a
'patman' package (a copy-paste leftover); use 'binman' instead.

Signed-off-by: Simon Glass <sjg@chromium.org>
7 days agotools: docker: Drop patman from the CI image
Simon Glass [Sun, 5 Jul 2026 19:32:20 +0000 (13:32 -0600)] 
tools: docker: Drop patman from the CI image

The CI runner image pre-caches pip packages by downloading each tool's
requirements.txt from master. A later patch removes patman's
requirements.txt from the tree, so stop fetching and installing it.

The same step already installs setuptools explicitly (patman's
requirements list it too), so this needs nothing further.

This takes effect the next time someone rebuilds the image; the existing
image keeps working in the meantime.

Signed-off-by: Simon Glass <sjg@chromium.org>
7 days agoCI: Stop building and testing patman
Simon Glass [Sun, 5 Jul 2026 19:32:19 +0000 (13:32 -0600)] 
CI: Stop building and testing patman

patman is now just a stub, so drop its requirements file and its
'patman test' run from the Azure and GitLab pipelines.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
7 days agoCI: Install pylibfdt's requirements in the tool jobs
Simon Glass [Sun, 5 Jul 2026 19:32:18 +0000 (13:32 -0600)] 
CI: Install pylibfdt's requirements in the tool jobs

The GitLab and Azure tool-test and pylint jobs build the pylibfdt
bindings, which need setuptools. That currently comes only from patman's
requirements.txt, which a later patch drops. Install
scripts/dtc/pylibfdt/requirements.txt in those jobs, the proper source
for that dependency, so setuptools survives patman's removal.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
7 days agodoc: Remove the patman documentation
Simon Glass [Sun, 5 Jul 2026 19:32:13 +0000 (13:32 -0600)] 
doc: Remove the patman documentation

The full patman manual now lives with the standalone patch-manager
package, making the 1000-line copy in the tree redundant.

Remove the in-tree manual, its README and the doc/develop/patman.rst
toctree page.

The sending-patches guide already introduces patman, so point it at the
patch-manager package instead of the now-dead ':doc:' cross-reference
and, with the manual gone, add a couple of lines on how the tool works.
Point the SPI howto at that guide too, rather than repeating the install
details.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Mattijs Korpershoek <mkorpershoek@kernel.org>
7 days agodoc: Move the b4 guide into sending_patches
Simon Glass [Sun, 5 Jul 2026 19:32:12 +0000 (13:32 -0600)] 
doc: Move the b4 guide into sending_patches

The b4 contributor guide sits in the coding-style document, which is an
odd place for it. Move it into sending_patches.rst, next to the patman
note, so both patch-sending tools are described together.

The b4_contrib label moves with it, so the reference from process.rst
still resolves.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Mattijs Korpershoek <mkorpershoek@kernel.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
7 days agoMerge tag 'mmc-for-2026.07' of https://source.denx.de/u-boot/custodians/u-boot-mmc
Tom Rini [Mon, 6 Jul 2026 14:10:22 +0000 (08:10 -0600)] 
Merge tag 'mmc-for-2026.07' of https://source.denx.de/u-boot/custodians/u-boot-mmc

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

- Fix redundant 1.8V voltage switch on cold boot with UHS card
- Revert "mmc: sdhci-cadence: trigger tuning for SD HS mode on SD6HC (v6) PHY"

7 days agoRevert "mmc: sdhci-cadence: trigger tuning for SD HS mode on SD6HC (v6) PHY"
Tanmay Kathpalia [Mon, 29 Jun 2026 06:16:15 +0000 (23:16 -0700)] 
Revert "mmc: sdhci-cadence: trigger tuning for SD HS mode on SD6HC (v6) PHY"

This reverts commit b42c67188c14 ("mmc: sdhci-cadence: trigger tuning
for SD HS mode on SD6HC (v6) PHY").

The reverted patch introduced several issues:

1. Non-standard tuning trigger: The SD Physical Layer Specification
   only mandates execute_tuning for SDR50 and SDR104 UHS-I modes.
   Triggering tuning for SD High Speed mode is outside the spec and
   is handled via a non-standard set_ios_post callback rather than
   through the established SDHCI framework tuning path.

2. Non-standard device tree property: The patch introduced a new
   "cdns,sd-hs-tuning" DT property to opt into SD HS tuning. This
   is not aligned with existing DT bindings and bypasses the standard
   MMC capability negotiation mechanism.

3. Incorrect tunable mode allowlist: The sdhci_cdns6_mode_is_tuned()
   function includes SD_HS, UHS_SDR50, and MMC_HS_400_ES as tunable
   modes. According to the Cadence SD6HC IP User Guide (section 7.5.2,
   Figure 18), tuning is only required for UHS-I SDR104 (SD) and
   HS200 (eMMC). SD High Speed, UHS-I SDR50, and DDR50 only require
   a PHY settings update from the pre-calculation script, not the
   tuning procedure. HS400 transitions through HS200 and reuses its
   tuned DLL value with a partial settings update. HS400ES only
   requires a plain settings update from the calculation script with
   no dependency on HS200 tuning.

4. Tuned state management outside the framework: The patch manually
   tracks tuned DLL state (tuned_mode, tuned_dll_slave_ctrl) and
   restores it across PHY reconfigurations. This duplicates
   responsibility that belongs in the core MMC tuning framework and
   adds unnecessary complexity to the driver.

Reverting to realign the driver with the IP documentation and the SD
Physical Layer Specification.

Signed-off-by: Tanmay Kathpalia <tanmay.kathpalia@altera.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
7 days agommc: sd: fix redundant 1.8V voltage switch on cold boot with UHS card
Tanmay Kathpalia [Thu, 14 May 2026 18:54:11 +0000 (11:54 -0700)] 
mmc: sd: fix redundant 1.8V voltage switch on cold boot with UHS card

When a UHS card successfully negotiates 1.8V signaling during normal
initialization, the host voltage switch is performed as part of the
ACMD41 handshake. Without this fix, the warm-reboot recovery path
would fire again immediately after, switching the host voltage a
second time unnecessarily.

Add a check so the recovery path is only entered when the voltage
switch was not already performed during the current initialization
session.

Fixes: 906ee6785b1c ("mmc: sd: Handle UHS-I voltage signaling without power cycle")
Signed-off-by: Tanmay Kathpalia <tanmay.kathpalia@altera.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
7 days agopower: domain: scmi: Allow failure in getting power domain attribute 1006/head
Ye Li [Tue, 9 Jun 2026 03:54:32 +0000 (11:54 +0800)] 
power: domain: scmi: Allow failure in getting power domain attribute

When one power domain fails to get attribute, continue getting attribute
for remaining power domains, not return probe failure. So other power
domains are still functional.
It is possible that one power domain is assigned to other agent or this
power domain is disabled by HW fuse, so platform returns denied or other
error.

Signed-off-by: Ye Li <ye.li@nxp.com>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
7 days agocrypto: fsl: Hide CAAM_64BIT symbol behind FSL_CAAM
Marek Vasut [Sun, 21 Jun 2026 02:40:23 +0000 (04:40 +0200)] 
crypto: fsl: Hide CAAM_64BIT symbol behind FSL_CAAM

Make CAAM_64BIT selectable only in case FSL_CAAM is selected,
otherwise CAAM_64BIT shows up in configs of unrelated platforms.

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
Reviewed-by: Heiko Schocher <hs@nabladev.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
7 days agogpio: mpc8xxx: add set_flags/get_flags ops
Vincent Jardin [Thu, 2 Jul 2026 15:09:49 +0000 (17:09 +0200)] 
gpio: mpc8xxx: add set_flags/get_flags ops

mpc8xxx_gpio_open_drain_on() / _off() helpers can program GPODR
(open-drain enable) on QorIQ silicon, but they are not called.

The open-drain capability is therefore unreachable from the GPIO uclass.

Adding a set_flags op for the GPIOD_OPEN_DRAIN, plus a get_flags for the
reports of state by reading GPDIR and GPODR back.

For existing callers, it is unchanged: direction_input,
direction_output, get_value, set_value and get_function still drive
the same registers as before. The new ops only become observable when
a caller explicitly asks for the GPIOD_OPEN_DRAIN flag (or queries
flags via the uclass).

Signed-off-by: Vincent Jardin <vjardin@free.fr>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
7 days agols1028ardb: Move environment variables to .env file
Aristo Chen [Wed, 1 Jul 2026 06:21:25 +0000 (06:21 +0000)] 
ls1028ardb: Move environment variables to .env file

Move the bulk of the board environment from CFG_EXTRA_ENV_SETTINGS in
ls1028ardb.h to board/nxp/ls1028a/ls1028ardb.env. Because the board
directory is shared with ls1028aqds, the file is selected through
CONFIG_ENV_SOURCE_FILE rather than the SYS_BOARD default.

The distro_bootcmd machinery cannot be expressed in a .env file. The
BOOTENV macro expands to environment text with embedded NUL separators,
and the board overrides three distro variables (boot_scripts,
boot_a_script and scan_dev_for_boot_part) that must follow BOOTENV to
take effect. BOOTENV and those three overrides therefore remain in
CFG_EXTRA_ENV_SETTINGS, which is concatenated after the .env text, while
every other variable moves to the .env file.

The resulting default environment is functionally unchanged for both the
ls1028ardb_tfa and ls1028ardb_tfa_SECURE_BOOT defconfigs. This was
verified with an order aware comparison of the default environment before
and after the change. The only difference is that three accidental double
spaces in xspi_bootcmd, sd_bootcmd and emmc_bootcmd collapse to single
spaces, because the preprocessor normalises whitespace in the now
unquoted text, which does not affect command parsing.

Signed-off-by: Aristo Chen <aristo.chen@canonical.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
10 days agoMAINTAINERS: Add entry for ARM
Ilias Apalodimas [Tue, 30 Jun 2026 14:42:42 +0000 (17:42 +0300)] 
MAINTAINERS: Add entry for ARM

Since I've added various features in the arm architecture
support and review most of the patches nowadays, add myself
as a co-maintainer

Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Acked-by: Neil Armstrong <neil.armstrong@linaro.org>
Reviewed-by: Peter Robinson <pbrobinson@gmail.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
10 days agotreewide: change email links from mailman to patch.msgid.link with message-id
Neil Armstrong [Thu, 25 Jun 2026 15:36:15 +0000 (17:36 +0200)] 
treewide: change email links from mailman to patch.msgid.link with message-id

In preparation of the migration of the mailman mailing-list currently
hosted on the denx.de infrastructure, migrate the links in the code,
comments and documentation to https://patch.msgid.link to be future proof
and always link to the expected content data and uses the message-id in
the URL which will help find the appropriate e-mail in the future.

Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
10 days agoKconfig: Fix grammatical error in help text
Andrew Goodbody [Mon, 29 Jun 2026 17:06:49 +0000 (18:06 +0100)] 
Kconfig: Fix grammatical error in help text

Fix the incorrect use of 'your' instead of 'you are' and reflow the text
around it.

Fixes: af9e6ad4ab29 ("board_f: Add new function to allow runtime DTB selection")
Signed-off-by: Andrew Goodbody <andrew.goodbody@linaro.org>
10 days ago.mailmap: Run mailmapper and sync name locations
Michal Simek [Mon, 29 Jun 2026 15:44:01 +0000 (17:44 +0200)] 
.mailmap: Run mailmapper and sync name locations

The patch is output from
scripts/mailmapper > tmp; mv tmp .mailmap
with moving <swarren@wwwdotorg.org> and <swarren@wwwdotorg.org> to the same
block with "This contributor prefers not to receive mails" description.

Signed-off-by: Michal Simek <michal.simek@amd.com>
10 days ago.mailmap: update e-mail address for Abbarapu Venkatesh Yadav
Michal Simek [Mon, 29 Jun 2026 15:44:00 +0000 (17:44 +0200)] 
.mailmap: update e-mail address for Abbarapu Venkatesh Yadav

Name and email address has changed but format wasn't correct. Keep origin
line which is doing conversion from xilinx.com to amd.com and then have
conversion from AMD to Qualcomm. Also move name to proper location.

Fixes: f21920f7e795 (".mailmap: update e-mail address for Abbarapu Venkatesh Yadav")
Signed-off-by: Michal Simek <michal.simek@amd.com>
10 days ago.mailmap: map old addresses to their up-to-date counterparts
João Marcos Costa [Thu, 25 Jun 2026 12:03:44 +0000 (14:03 +0200)] 
.mailmap: map old addresses to their up-to-date counterparts

This essentially maps @free-electrons.com to @bootlin.com addresses.

Signed-off-by: João Marcos Costa <joaomarcos.costa@bootlin.com>
Reviewed-by: Quentin Schulz <quentin.schulz@cherry.de>
Reviewed-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
10 days agodrivers: sysreset: revert support for args in request
Quentin Schulz [Fri, 3 Jul 2026 16:43:32 +0000 (18:43 +0200)] 
drivers: sysreset: revert support for args in request

This reverts:
- commit e49c84f7bb7b ("doc: usage: cmd: reset: specify when the -edl
  option is available")
- commit 1076feb8a3f9 ("cmd: boot: fix edl being shown when not
  supported")
- commit 63c806ba0e12 ("qcom_defconfig: enable psci based sysreset")
- commit ef06c5d76ff4 ("cmd: boot: Add '-edl' option to reset command
  documentation")
- commit 32825eaddc37 ("sysreset: Implement PSCI based reset to EDL mode
  for QCOM SoCs")
- commit fcb48b89813b ("drivers: sysreset: Add sysreset op that can take
  arguments")

There was a conflict reverting commit 63c806ba0e12 ("qcom_defconfig:
enable psci based sysreset") due to commit 02ef1859b44f ("configs:
Resync with savedefconfig"), but the conflict resolution was trivial.

The args support for the sysreset uclass contains a logic bug. The first
sysreset device implementing the request_arg callback will consume the
args, not support the specified arg and thus return -EPROTONOSUPPORT
which will stop the iteration over all sysreset devices.

This is an issue if one has multiple sysreset devices and each with
support for different (valid) args. If a sysreset device implements a
-dummy argument and another -foo and a user calls reset -dummy from the
U-Boot CLI, it'll depend on which sysreset device will be attempted
first. If it is the one implementing -foo, it'll return it doesn't
support the argument with -EPROTONOSUPPORT in which case the device
implementing -dummy will never be attempted and instead we'll do a cold
reset which is very likely not what's expected from the user.

Casey suggested[1] we revert this and start from scratch again with a
different implementation instead.

[1] https://lore.kernel.org/u-boot/77ff0f56-5c3b-42e7-bdd1-bf90296da900@linaro.org/

Acked-by: Casey Connolly <casey.connolly@linaro.org>
Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
10 days agoMerge patch series "bootdev: few fixes for automatic boot"
Tom Rini [Fri, 3 Jul 2026 16:14:32 +0000 (10:14 -0600)] 
Merge patch series "bootdev: few fixes for automatic boot"

dmukhin@ford.com <dmukhin@ford.com> says:

This series addresses few findings in bootdev code.

Patch 1 fix for automatic boots in case higher-priority bootdevs fail
        to be hunted.

Patch 2 adds unit test for patch 1.

Link: https://lore.kernel.org/r/20260623220630.2828767-1-dmukhin@ford.com
10 days agotest: bootdev: scan with a broken high-priority device
Denis Mukhin [Tue, 23 Jun 2026 22:06:30 +0000 (15:06 -0700)] 
test: bootdev: scan with a broken high-priority device

Add bootdev_hunt_fallthrough() test to verify that 'bootflow scan -l'
falls back to a lower-priority bootdev when a higher-priority hunter
fails.

Introduce a simple 'sandbox-bootdev' device for the test. The new
bootdev can be configured to produce an error at the hunting stage.

Introduce new host_set_flags_by_label() API and a flags field to
'host_sb_plat' to simulate a bootdev hunter failure for the test.

Adjust boot{dev,flow} tests which depend on bootdev hunters.

Signed-off-by: Denis Mukhin <dmukhin@ford.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
10 days agobootdev: scan boot devices at each priority level
Denis Mukhin [Tue, 23 Jun 2026 22:06:29 +0000 (15:06 -0700)] 
bootdev: scan boot devices at each priority level

Currently, default 'bootflow scan -lb' will stop booting the board if
any of higher-priority bootdevs fail to be hunted even if there are
bootdevs of lower priority.

For example, if the board has both NVMe (priority 4) and USB MSD devices
(priority 5), and if NVMe bootdev hunt fails (in the event of a bad NVMe
firmware update), USB (which may be a recovery bootdev) is never hunted
automatically, leaving the board at the U-Boot prompt (user intervention
is needed, e.g. something like 'bootflow scan usb' to hunt USB).

Fix bootdev_next_prio() to scan bootdevs at the lower priority level by
not exiting the scan loop early.

Keep the existing logging verbosity unchanged and rely on the failing
subsystem to provide a suitable diagnostic message.

Signed-off-by: Denis Mukhin <dmukhin@ford.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
10 days agoMerge patch series "bootm: fix flush_cache() with IH_TYPE_KERNEL_NOLOAD"
Tom Rini [Fri, 3 Jul 2026 16:13:14 +0000 (10:13 -0600)] 
Merge patch series "bootm: fix flush_cache() with IH_TYPE_KERNEL_NOLOAD"

This patch series from Nora Schiffer <nora.schiffer@ew.tq-group.com>
addresses a few issues with correctly handling IH_TYPE_KERNEL_NOLOAD in
a few cases.

Link: https://lore.kernel.org/r/20260622111933.1488593-1-nora.schiffer@ew.tq-group.com
10 days agobootm: allow omitting entry point for IH_TYPE_KERNEL_NOLOAD
Nora Schiffer [Mon, 22 Jun 2026 11:19:33 +0000 (13:19 +0200)] 
bootm: allow omitting entry point for IH_TYPE_KERNEL_NOLOAD

For IH_TYPE_KERNEL_NOLOAD, the entry point is given relative to the
image start, making 0 a valid default, and for IH_OS_EFI, it is ignored
altogether, so it may be preferable to omit it.

Signed-off-by: Nora Schiffer <nora.schiffer@ew.tq-group.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
10 days agobootm: warn about load address for IH_TYPE_KERNEL_NOLOAD in FIT
Nora Schiffer [Mon, 22 Jun 2026 11:19:32 +0000 (13:19 +0200)] 
bootm: warn about load address for IH_TYPE_KERNEL_NOLOAD in FIT

The load address is ignored for IH_TYPE_KERNEL_NOLOAD. Instead of
failing the boot when none is set, it makes more sense to warn when it
*is* set.

Signed-off-by: Nora Schiffer <nora.schiffer@ew.tq-group.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
10 days agobootm: fix flush_cache() with IH_TYPE_KERNEL_NOLOAD
Nora Schiffer [Mon, 22 Jun 2026 11:19:31 +0000 (13:19 +0200)] 
bootm: fix flush_cache() with IH_TYPE_KERNEL_NOLOAD

`flush_start` must be set after `load` has been assigned.

Fixes: 69544c4fd8b1 ("bootm: Support kernel_noload with compression")
Signed-off-by: Nora Schiffer <nora.schiffer@ew.tq-group.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
10 days agoMerge patch series "TI: AM64-EVM/SK: Enable MAIN UART1 for SYSFW tracing"
Tom Rini [Fri, 3 Jul 2026 16:10:34 +0000 (10:10 -0600)] 
Merge patch series "TI: AM64-EVM/SK: Enable MAIN UART1 for SYSFW tracing"

Vishal Mahaveer <vishalm@ti.com> says:

Collecting SYSFW traces from DMSC firmware is broken on the current
codebase. These changes enables MAIN_UART1 for collecting SYSFW traces
when the trace option is enabled in the boardcfg.

Link: https://lore.kernel.org/r/20260605193829.395161-1-vishalm@ti.com
10 days agoarm: dts: k3-am642-evm/sk: enable MAIN UART1 for SYSFW logs
Vishal Mahaveer [Fri, 5 Jun 2026 19:38:29 +0000 (14:38 -0500)] 
arm: dts: k3-am642-evm/sk: enable MAIN UART1 for SYSFW logs

Enable MAIN UART1 in the R5 SPL device tree to collect system SYSFW
debug traces during early boot.

Signed-off-by: Vishal Mahaveer <vishalm@ti.com>
Reviewed-by: Bryan Brattlof <bb@ti.com>
10 days agoarm: mach-k3: am642: Update MAIN UART1 serial alias from 3 to 1
Vishal Mahaveer [Fri, 5 Jun 2026 19:38:28 +0000 (14:38 -0500)] 
arm: mach-k3: am642: Update MAIN UART1 serial alias from 3 to 1

The upstream device tree changed the serial alias for MAIN UART1 from
serial3 to serial1. Update the board initialization code to match this
change by modifying the UCLASS_SERIAL sequence number lookup.

This ensures proper pin control configuration for the UART used by
system firmware (SYSFW).

Signed-off-by: Vishal Mahaveer <vishalm@ti.com>
Fixes: d2edabfa8de5 ("arm: mach-k3: am642: Load SYSFW binary and config from boot media")
Reviewed-by: Bryan Brattlof <bb@ti.com>
12 days agomtd: spi-nor: Add gd55lb02gf chips
Vincent Jardin [Wed, 20 May 2026 15:00:21 +0000 (17:00 +0200)] 
mtd: spi-nor: Add gd55lb02gf chips

Add the GigaDevice GD55LB02GF (256 Mo) similar to gd55lb02ge with
the same read path flags.

SPI_NOR_HAS_LOCK and SPI_NOR_HAS_TB do not match this chip's
status register layout: the GD55LB02GF uses a 5-bit block protect
field BP0..BP4 plus a CMP bit in SR2 for direction (see datasheet
"Status Register Block Protection").

The generic stm-lock helpers drive only BP0..BP2 and assume SR1
bit 5 is TB, but on this part SR1 bit 5 is BP3.
Enabling either flag would leave BP3..BP4 unmanaged or corrupt
BP3 on every lock op.
A proper support needs a vendor specific lock callback, it is out
of scope for this table update.

Signed-off-by: Vincent Jardin <vjardin@free.fr>
Suggested-by: Takahiro Kuwano <Takahiro.Kuwano@infineon.com>
Reviewed-by: Takahiro Kuwano <takahiro.kuwano@infineon.com>
12 days agobootm: move OS index bound check into the legacy path
Aristo Chen [Fri, 19 Jun 2026 14:45:51 +0000 (14:45 +0000)] 
bootm: move OS index bound check into the legacy path

Commit 103b1e7ce8cc ("bootm: bound-check OS index in
bootm_os_get_boot_func()") added a range check to the shared accessor so
an out-of-range OS id can no longer drive an out-of-bounds read of
boot_os[]. That accessor is reached by every image format, but only a
legacy uImage can deliver an unchecked value. bootm_find_os() takes the
raw 8-bit ih_os byte straight from image_get_os() for legacy images,
whereas the FIT path reaches the accessor only after fit_image_load()
has rejected any image whose os is not one of the supported types, and
the Android path hardcodes IH_OS_LINUX. The check can therefore never
fail for FIT, where it only adds confusion and code.

Move the test to the legacy branch of bootm_find_os(), rejecting an
out-of-range OS where the untrusted byte enters. This keeps the FIT path
clear and lets the check be compiled out when CONFIG_LEGACY_IMAGE_FORMAT
is disabled. A valid OS id that has no handler is still reported by the
existing NULL return path in bootm_run_states().

Suggested-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Aristo Chen <aristo.chen@canonical.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
12 days agoMAINTAINERS: Remove merge garbage
Tom Rini [Wed, 1 Jul 2026 17:17:06 +0000 (11:17 -0600)] 
MAINTAINERS: Remove merge garbage

When I merged the changes in commit 0d8e33717d7e ("Merge patch series
"arm: aspeed: add initial AST2700 SoC support"") I didn't fully remove
the before/after changes. Finish this merge now.

Reported-by: Yao Zi <me@ziyao.cc>
Signed-off-by: Tom Rini <trini@konsulko.com>
12 days agoMerge tag 'u-boot-pci-next-20260701' of https://source.denx.de/u-boot/custodians...
Tom Rini [Wed, 1 Jul 2026 14:39:53 +0000 (08:39 -0600)] 
Merge tag 'u-boot-pci-next-20260701' of https://source.denx.de/u-boot/custodians/u-boot-ufs into next

- Add myself as PCI core maintainer
- Use dev_read/dev_remap APIs

12 days agopci: layerscape: ep: Use dev APIs
Peng Fan [Tue, 26 May 2026 08:09:13 +0000 (16:09 +0800)] 
pci: layerscape: ep: Use dev APIs

Convert the Layerscape PCIe endpoint driver to use device and ofnode-based
APIs instead of legacy FDT interfaces.

Replace devfdt_get_addr_index_ptr(), fdt_get_named_resource(),
fdtdec_get_bool(), and fdtdec_get_int() with their modern counterparts such
as dev_read_addr_index_ptr(), dev_read_resource_byname(),
dev_read_bool(), and dev_read_s32_default().

Also remove the dependency on gd->fdt_blob and global data access.

No functional changes.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Link: https://patch.msgid.link/20260526-devfdt-pci-v1-5-ed7f31d73938@nxp.com
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
12 days agopci: imx: Use dev_read_addr_index_ptr()
Peng Fan [Tue, 26 May 2026 08:09:12 +0000 (16:09 +0800)] 
pci: imx: Use dev_read_addr_index_ptr()

Use dev_read_addr_index_ptr() which support both live device tree and flat
DT backends, avoiding direct dependency on devfdt_* helpers.

No functional changes

Signed-off-by: Peng Fan <peng.fan@nxp.com>
Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Link: https://patch.msgid.link/20260526-devfdt-pci-v1-4-ed7f31d73938@nxp.com
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
12 days agopci: dw_mvebu: Use dev_read_addr_x APIs
Peng Fan [Tue, 26 May 2026 08:09:11 +0000 (16:09 +0800)] 
pci: dw_mvebu: Use dev_read_addr_x APIs

Use dev_read_addr_x APIs which support both live device tree and flat DT
backends, avoiding direct dependency on devfdt_* helpers.

No functional changes.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Reviewed-by: Stefan Roese <stefan.roese@mailbox.org>
Link: https://patch.msgid.link/20260526-devfdt-pci-v1-3-ed7f31d73938@nxp.com
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
12 days agopci: mpc85xx: Simplfy code with dev_remap_addr()
Peng Fan [Tue, 26 May 2026 08:09:10 +0000 (16:09 +0800)] 
pci: mpc85xx: Simplfy code with dev_remap_addr()

devfdt_get_addr_ptr() + map_physmem() could be simplifed with
devfdt_remap_addr(). But to avoid direct dependency on devfdt_* helpers,
use dev_remap_addr().

No functional changes.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Reviewed-by: Heiko Schocher <hs@nabladev.com>
Link: https://patch.msgid.link/20260526-devfdt-pci-v1-2-ed7f31d73938@nxp.com
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
12 days agopci: rcar: Use dev_read_addr_index()
Peng Fan [Tue, 26 May 2026 08:09:09 +0000 (16:09 +0800)] 
pci: rcar: Use dev_read_addr_index()

Use dev_read_addr_index() which supports both live device tree and flat DT
backends, avoiding direct dependency on devfdt_* helpers.

While at here, correct the return value check.

No functional changes.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Link: https://patch.msgid.link/20260526-devfdt-pci-v1-1-ed7f31d73938@nxp.com
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
12 days agoMAINTAINERS: Add myself as core PCI maintainer
Neil Armstrong [Tue, 19 May 2026 16:08:35 +0000 (18:08 +0200)] 
MAINTAINERS: Add myself as core PCI maintainer

Adding an entry for the PCI subsystem and add myself to the list
of maintainers to review patches and maintain the PCI subsystem core
along the ongoing work of the PCI platform maintainers.

Acked-by: Tom Rini <trini@konsulko.com>
Link: https://patch.msgid.link/20260519-u-boot-pci-nvme-maintainer-v1-2-363593cbbfdc@linaro.org
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
13 days agorockchip: sdram: Fix initialization of DRAM banks
Jonas Karlman [Sat, 27 Jun 2026 20:24:09 +0000 (20:24 +0000)] 
rockchip: sdram: Fix initialization of DRAM banks

The commit 55a342176984 ("common: Add an option to relocate on ram top")
changed so that dram_init_banksize() is called before gd->ram_top has
been initialized. This change broke Rockchip DRAM banks configuration
due to gd->ram_top now being 0 when dram_init_banksize() is called.

This makes first DRAM bank size calculation overflow and end up with

  DRAM bank   = 0x0000000000000000
  -> start    = 0x0000000000200000
  -> size     = 0xffffffffffe00000

instead of the expected (for 2 GiB)

  DRAM bank   = 0x0000000000000000
  -> start    = 0x0000000000200000
  -> size     = 0x000000007fe00000

or (for 4 GiB)

  DRAM bank   = 0x0000000000000000
  -> start    = 0x0000000000200000
  -> size     = 0x00000000f7e00000

on e.g. RK3399 boards.

Change to not depend on gd->ram_top having to be pre-calculated before
dram_init_banksize() is called, also move the related method
board_get_usable_ram_top() closer to more easily get an overview of
their interdependence, to restore working DRAM bank initialization.

Fixes: 55a342176984 ("common: Add an option to relocate on ram top")
Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reported-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Acked-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Tested-by: Ilias Apalodimas <ilias.apalodimas@linaro.org> # on Radxa ROCK
13 days agoMakefile.lib: remove stale migrate_xxx logic from fdtgrep logic
Rasmus Villemoes [Wed, 17 Jun 2026 13:12:04 +0000 (15:12 +0200)] 
Makefile.lib: remove stale migrate_xxx logic from fdtgrep logic

Commit 6d04828b452 ("dm: Remove pre-schema tag support") removed the
definitions of these migrate_xxx variables, but left behind their use
in the fdtgrep rule, which now makes that somewhat hard to understand.

Signed-off-by: Rasmus Villemoes <rv@rasmusvillemoes.dk>
Reviewed-by: Simon Glass <sjg@chromium.org>
13 days agoMAINTAINERS: Replace Cortina with N:
Marek Vasut [Wed, 17 Jun 2026 02:38:04 +0000 (04:38 +0200)] 
MAINTAINERS: Replace Cortina with N:

Use N: to match on all cortina files, drop the large list of
entries which represent the same set of relevant files and miss a
few in the process.

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
13 days agoMerge tag 'u-boot-dfu-next-20260629' of https://source.denx.de/u-boot/custodians...
Tom Rini [Tue, 30 Jun 2026 15:27:19 +0000 (09:27 -0600)] 
Merge tag 'u-boot-dfu-next-20260629' of https://source.denx.de/u-boot/custodians/u-boot-dfu into next

u-boot-dfu-next-20260629:

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

Fastboot:
- Add support for CMD_FASTBOOT_ABORT_KEYED
- Enable CMD_FASTBOOT_ABORT_KEYED for qualcomm phones

USB Gadget:
- f_mass_storage: Disable eps during disconnect
- f_sdp: Fix spl load failure error handling

13 days agoMerge tag 'qcom-fixes-2026.07' of https://source.denx.de/u-boot/custodians/u-boot... 974/head
Tom Rini [Tue, 30 Jun 2026 15:24:24 +0000 (09:24 -0600)] 
Merge tag 'qcom-fixes-2026.07' of https://source.denx.de/u-boot/custodians/u-boot-snapdragon

CI: https://source.denx.de/u-boot/custodians/u-boot-snapdragon/-/pipelines/30574

A last minute fix for the release, the UFS controller on the new Milos
SoC (used in the Fairphone Gen. 6) needs a stub driver for it's ref
clock (similar to SM8650 before) and a handful of other clocks to get
the UFS controller probed.

This change shouldn't impact any other platforms.

13 days agoclk/qcom: milos: Add TCSRCC clocks
Luca Weiss [Thu, 25 Jun 2026 13:14:39 +0000 (15:14 +0200)] 
clk/qcom: milos: Add TCSRCC clocks

With a recent change to the UFS driver, now all clocks need to be
available. Add all the clocks from the TCSRCC block on Milos.

Signed-off-by: Luca Weiss <luca.weiss@fairphone.com>
Reviewed-by: Casey Connolly <casey.connolly@linaro.org>
Link: https://patch.msgid.link/20260625-milos-ufs-fix-v1-2-b0923dabc35f@fairphone.com
Signed-off-by: Casey Connolly <casey.connolly@linaro.org>
13 days agoclk/qcom: milos: Add remaining UFS clocks
Luca Weiss [Thu, 25 Jun 2026 13:14:38 +0000 (15:14 +0200)] 
clk/qcom: milos: Add remaining UFS clocks

With a recent change to the UFS driver, now all clocks need to be
available. Add them.

Signed-off-by: Luca Weiss <luca.weiss@fairphone.com>
Reviewed-by: Casey Connolly <casey.connolly@linaro.org>
Link: https://patch.msgid.link/20260625-milos-ufs-fix-v1-1-b0923dabc35f@fairphone.com
Signed-off-by: Casey Connolly <casey.connolly@linaro.org>
2 weeks agoMerge patch series "arm: aspeed: add initial AST2700 SoC support"
Tom Rini [Mon, 29 Jun 2026 19:44:52 +0000 (13:44 -0600)] 
Merge patch series "arm: aspeed: add initial AST2700 SoC support"

Ryan Chen <ryan_chen@aspeedtech.com> says:

AST2700 is the 8th generation of Integrated Remote Management
Processor introduced by ASPEED Technology Inc. It is a Board
Management Controller (BMC) SoC family with a dual-die architecture:
SoC0 ("CPU" die with four ARM Cortex-A35 application cores) and
SoC1 ("IO" die with peripherals) each SoC have its own SCU PLLs,
clock dividers and reset domains.

Link: https://lore.kernel.org/r/20260612-ast2700_clk-v4-0-9bea29cfdc39@aspeedtech.com
2 weeks agotreewide: Staticize and constify acpi ops
Marek Vasut [Fri, 12 Jun 2026 02:05:38 +0000 (04:05 +0200)] 
treewide: Staticize and constify acpi ops

Set the acpi_ops structure as static const where applicable. The
The structure is not accessible from outside of drivers and is not
going to be modified at runtime. The structure may be unused in a
couple of drivers depending on their configuration, mark those
sites with __maybe_unused .

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
2 weeks agocros_ec: Convert dm_cros_ec_get_ops into an inline function and constify dm_cros_ec_ops
Marek Vasut [Fri, 12 Jun 2026 01:59:06 +0000 (03:59 +0200)] 
cros_ec: Convert dm_cros_ec_get_ops into an inline function and constify dm_cros_ec_ops

Convert dm_cros_ec_get_ops into an inline function to improve compiler
code coverage, and constify struct dm_cros_ec_ops in a few places.

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
2 weeks agoenv: Avoid mixing of environment and driver prints on env load
Alexander Koch [Thu, 11 Jun 2026 22:48:34 +0000 (00:48 +0200)] 
env: Avoid mixing of environment and driver prints on env load

The current environment loading code prints a partial string
"Loading Environment from %s..." and then triggers env driver
loading function. That env driver loading function may trigger
further prints, either from the env driver itself or from any
other driver that gets probed at that time. The result is a
print which mixed environment loading code prints and driver
code prints, as follows:

"
       Environment code print        _________________________
vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv                          vv
Loading Environment from SPIFlash... SF: Detected w25q128jw... OK
                                     ^^^^^^^^^^^^^^^^^^^^^^
                                        Driver code print
"

Adjust the environment loading code print such, that it places
CR at the end of the line. This way, when the driver code prints
something, it overwrites the previous "Loading Environment from %s"
output and the result is not mixed. Furthermore, in case the env
was loaded correctly, print the "Loading Environment from %s ... OK"
in full again. This either overwrites the "Loading Environment from"
message and appends the print with "OK", or, it prints the line in
full after all the driver code prints.

This is not ideal, but it is the best we can do with only CR and
without ANSI control sequences. The result looks as follows:

"
SF: Detected w25q128jw with page size 256 Bytes, erase size 4 KiB, total 16 MiB
Loading Environment from SPIFlash... OK
"

Signed-off-by: Alexander Koch <akoch@initse.com>
Signed-off-by: Marek Vasut <marex@nabladev.com>