]> git.ipfire.org Git - thirdparty/u-boot.git/log
thirdparty/u-boot.git
6 weeks agoMerge branch 'master' of https://source.denx.de/u-boot/custodians/u-boot-samsung 876/head
Tom Rini [Wed, 25 Feb 2026 14:49:28 +0000 (08:49 -0600)] 
Merge branch 'master' of https://source.denx.de/u-boot/custodians/u-boot-samsung

- Assorted platform and video driver updates

6 weeks agoMerge tag 'u-boot-stm32-20260224' of https://source.denx.de/u-boot/custodians/u-boot-stm
Tom Rini [Wed, 25 Feb 2026 14:48:54 +0000 (08:48 -0600)] 
Merge tag 'u-boot-stm32-20260224' of https://source.denx.de/u-boot/custodians/u-boot-stm

STM32 update:
_ Add STM32MP21 support (board, machine, cmd_stm32key, cmd_stboard, rifsc)
_ pinctrl: stm32 : various update
_ stm32prog: clean stm32prog_data struct
_ stm32mp2: Fix array bound check in setup_boot_mode()
_ stm32mp2: Update dynamically DDR size in MMU table
_ rifsc: various fixes

6 weeks agoconfigs: exynos-mobile: add DEFAULT_DEVICE_TREE option
Kaustabh Chakraborty [Tue, 24 Feb 2026 15:37:11 +0000 (21:07 +0530)] 
configs: exynos-mobile: add DEFAULT_DEVICE_TREE option

Add a default fallback device tree in order to allow a successful build
without mentioning the DEVICE_TREE= make flag.

Signed-off-by: Kaustabh Chakraborty <kauschluss@disroot.org>
Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
6 weeks agoboard: samsung: exynos-mobile: add EFI capsule update support
Kaustabh Chakraborty [Tue, 24 Feb 2026 15:37:10 +0000 (21:07 +0530)] 
board: samsung: exynos-mobile: add EFI capsule update support

Add support for EFI capsule updates via U-Boot's DFU. This flashes the
boot partition with the new image provided in the capsule.

Signed-off-by: Kaustabh Chakraborty <kauschluss@disroot.org>
Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
6 weeks agoboard: samsung: exynos-mobile: use blkmap for booting from userdata subpartitions
Kaustabh Chakraborty [Tue, 24 Feb 2026 15:37:09 +0000 (21:07 +0530)] 
board: samsung: exynos-mobile: use blkmap for booting from userdata subpartitions

Some distributions tend to provide a single combined image with EFS and
the system root filesystem. Flashing it as-is in a single partition
(usually done in userdata partition as it is the largest) is not
bootable as U-Boot does not understand subpartitions.

Use blkmap to map the userdata partition into its own block device.

Signed-off-by: Kaustabh Chakraborty <kauschluss@disroot.org>
Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
6 weeks agophy: samsung: add support for exynos7870 USB PHY
Kaustabh Chakraborty [Mon, 23 Feb 2026 14:25:24 +0000 (19:55 +0530)] 
phy: samsung: add support for exynos7870 USB PHY

The USB PHY used by the Exynos7870 SoC has a single USB 2.0 interface.
Add its dedicated variant enum, compatible, and init/exit functions.

The PHY enable bit of Exynos7870's PHY is different in contrast to that
of Exynos850 and most Exynos PHYs. To allow this change, a simple if
condition is added in exynos_usbdrd_phy_isol() which changes the
bitmask. Since the variant enum is required, the function argument is
changed to accept the driver data itself.

Reviewed-by: Mattijs Korpershoek <mkorpershoek@kernel.org>
Signed-off-by: Kaustabh Chakraborty <kauschluss@disroot.org>
Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
6 weeks agophy: samsung: add enum for variants based on SoCs
Kaustabh Chakraborty [Mon, 23 Feb 2026 14:25:23 +0000 (19:55 +0530)] 
phy: samsung: add enum for variants based on SoCs

The variant enum is used to uniquely identify which SoC the PHY block
belongs to. It is initially set in the match table, along with the
compatible string, it gets copied to driver data struct during probe.

SoC specific functions must only be called if the respective variant
enum is set. Add switch-case blocks wherever required.

Reviewed-by: Mattijs Korpershoek <mkorpershoek@kernel.org>
Signed-off-by: Kaustabh Chakraborty <kauschluss@disroot.org>
Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
6 weeks agoARM: stm32mp: Check secure state first
Gatien Chevallier [Tue, 10 Feb 2026 10:26:05 +0000 (11:26 +0100)] 
ARM: stm32mp: Check secure state first

Secure state must be checked before handling semaphores,
otherwise it can cause an IAC.

Signed-off-by: Gatien Chevallier <gatien.chevallier@foss.st.com>
Signed-off-by: Patrice Chotard <patrice.chotard@foss.st.com>
Reviewed-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
6 weeks agoARM: stm32mp: Fix CID and semaphore check
Gatien Chevallier [Tue, 10 Feb 2026 10:26:04 +0000 (11:26 +0100)] 
ARM: stm32mp: Fix CID and semaphore check

Peripheral holding CID0 cannot be accessed, remove this completely
incorrect check. While there, fix and simplify the semaphore checking
that should be performed when the CID filtering is enabled.

Signed-off-by: Gatien Chevallier <gatien.chevallier@foss.st.com>
Signed-off-by: Patrice Chotard <patrice.chotard@foss.st.com>
Reviewed-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
6 weeks agoARM: stm32mp: Do not acquire RIFSC semaphore if CID filtering is disabled
Gatien Chevallier [Tue, 10 Feb 2026 10:26:03 +0000 (11:26 +0100)] 
ARM: stm32mp: Do not acquire RIFSC semaphore if CID filtering is disabled

If the CID filtering is enabled, the semaphore mode is disabled as well.
To avoid an incorrect behavior and error trace, add a check of CID
filtering state before acquiring the semaphore.

Signed-off-by: Gatien Chevallier <gatien.chevallier@foss.st.com>
Signed-off-by: Patrice Chotard <patrice.chotard@foss.st.com>
Reviewed-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
6 weeks agoconfigs: stm32mp25: Enable CMD_STM32KEY
Patrice Chotard [Wed, 4 Feb 2026 10:20:51 +0000 (11:20 +0100)] 
configs: stm32mp25: Enable CMD_STM32KEY

Enable CONFIG_CMD_STM32KEY flag to enable usage of command
stm32key.

Signed-off-by: Patrice Chotard <patrice.chotard@foss.st.com>
Reviewed-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
6 weeks agostm32mp: cmd_stm32key: add support of ADAC public key hash
Thomas Bourgoin [Wed, 4 Feb 2026 10:20:50 +0000 (11:20 +0100)] 
stm32mp: cmd_stm32key: add support of ADAC public key hash

Add support of ADAC-PKH for STM32MP21.

Signed-off-by: Thomas Bourgoin <thomas.bourgoin@foss.st.com>
Signed-off-by: Patrice Chotard <patrice.chotard@foss.st.com>
Reviewed-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
6 weeks agostm32mp: cmd_stm32key: add support of remoteproc firmware public key
Gwenael Treuveur [Wed, 4 Feb 2026 10:20:49 +0000 (11:20 +0100)] 
stm32mp: cmd_stm32key: add support of remoteproc firmware public key

Add support of RPROC-FW-PKH for STM32MP25, STM32MP23 and STM32MP21.

Signed-off-by: Gwenael Treuveur <gwenael.treuveur@foss.st.com>
Signed-off-by: Patrice Chotard <patrice.chotard@foss.st.com>
Reviewed-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
6 weeks agostm32mp: cmd_stm32key: add support of remoteproc firmware encryption key
Thomas Bourgoin [Wed, 4 Feb 2026 10:20:48 +0000 (11:20 +0100)] 
stm32mp: cmd_stm32key: add support of remoteproc firmware encryption key

Add support of RPROC-FW-KEY for STM32MP25, STM32MP23 and STM32MP21.

Signed-off-by: Thomas Bourgoin <thomas.bourgoin@foss.st.com>
Signed-off-by: Patrice Chotard <patrice.chotard@foss.st.com>
Reviewed-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
6 weeks agostm32mp: cmd_stm32key: add support of OTP key format 2
Thomas Bourgoin [Wed, 4 Feb 2026 10:20:47 +0000 (11:20 +0100)] 
stm32mp: cmd_stm32key: add support of OTP key format 2

Add support of OTP key format 2 used by OP-TEE.
Key formats are describes in the STM32MPUs references manuals
section OTP mapping.

Signed-off-by: Thomas Bourgoin <thomas.bourgoin@foss.st.com>
Signed-off-by: Patrice Chotard <patrice.chotard@foss.st.com>
Reviewed-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
6 weeks agostm32mp: cmd_stm32key: add support of STM32MP21x SoC
Thomas Bourgoin [Wed, 4 Feb 2026 10:20:46 +0000 (11:20 +0100)] 
stm32mp: cmd_stm32key: add support of STM32MP21x SoC

Update stm32key to support stm32mp21 OTP mapping.
Create a new list of key to support the following differences :
  - STM32MP21x SoC support 128b and 25b FSBL encryption keys.
  - OEM-KEY1 and OEM-KEY2 used for authentication are in different OTP
    from STM32MP25 and STM32MP23.

stm32key is compatible with platform STM32MP2 (aarch64)
Hence, use unsigned long to handle argument addr of function
read_key_value() instead of u32.

Signed-off-by: Thomas Bourgoin <thomas.bourgoin@foss.st.com>
Signed-off-by: Patrice Chotard <patrice.chotard@foss.st.com>
Reviewed-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
6 weeks agostm32mp1: Add check on syscon_get_first_range() return value
Patrice Chotard [Wed, 4 Feb 2026 10:16:08 +0000 (11:16 +0100)] 
stm32mp1: Add check on syscon_get_first_range() return value

syscon_get_first_range()'s return value is used as base address to perform
a read, without any checks.
In case stmp32mp_syscon is not binded, syscon_get_first_range() returns
-ENODEV which leads to a "Synchronous abort".

Add syscon_get_first_range() check on return value.

Signed-off-by: Patrice Chotard <patrice.chotard@foss.st.com>
Reviewed-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
6 weeks agostm32mp2: Add check on syscon_get_first_range() return value
Patrice Chotard [Wed, 4 Feb 2026 10:16:07 +0000 (11:16 +0100)] 
stm32mp2: Add check on syscon_get_first_range() return value

syscon_get_first_range()'s return value is used as base address to perform
a read, without any checks.
In case stmp32mp_syscon is not binded, syscon_get_first_range() returns
-ENODEV which leads to a "Synchronous abort".

Add syscon_get_first_range() check on return value.

Signed-off-by: Patrice Chotard <patrice.chotard@foss.st.com>
Reviewed-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
6 weeks agostm32mp2: Migrate duplicated code into stm32mp2x.c
Patrice Chotard [Wed, 4 Feb 2026 10:16:06 +0000 (11:16 +0100)] 
stm32mp2: Migrate duplicated code into stm32mp2x.c

Same code is duplicated into stm32mp25x.c, stm32mp23x.c and stm32mp21x.c.

Migrate read_deviceid(), get_cpu_dev(), get_cpu_rev(), get_cpu_type() and
get_cpu_package() into new stm32mp2x.c.

Signed-off-by: Patrice Chotard <patrice.chotard@foss.st.com>
Reviewed-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
6 weeks agoARM: dts: stm32: Add bootph-all in stm32mp215f-dk-u-boot.dtsi
Patrice Chotard [Tue, 3 Feb 2026 16:49:27 +0000 (17:49 +0100)] 
ARM: dts: stm32: Add bootph-all in stm32mp215f-dk-u-boot.dtsi

Add temporarily bootph-all property in usart2 and syscfg nodes
to allows stm32mp215f-dk board to boot.
When DT kernel series [1] will be merged and synchronized in U-Boot
this patch will be reverted.

[1] https://lore.kernel.org/linux-arm-kernel/20260203-upstream_uboot_properties-v6-0-0a2280e84d31@foss.st.com/

Signed-off-by: Patrice Chotard <patrice.chotard@foss.st.com>
Reviewed-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
6 weeks agoARM: dts: stm32: Add stm32mp215f-dk-u-boot
Patrice Chotard [Tue, 3 Feb 2026 16:49:26 +0000 (17:49 +0100)] 
ARM: dts: stm32: Add stm32mp215f-dk-u-boot

Add U-Boot specific file for stm32mp215f-dk board

Signed-off-by: Patrice Chotard <patrice.chotard@foss.st.com>
Reviewed-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
6 weeks agoARM: stm32mp: Add STM32MP21 support
Patrice Chotard [Tue, 3 Feb 2026 16:49:25 +0000 (17:49 +0100)] 
ARM: stm32mp: Add STM32MP21 support

STM32MP21 application processors (STM32 MPUs) based on a single
Arm Cortex®-A35 core running up to 1.5 GHz and Cortex®-M33 core
running at 300 MHz.

It is pin-compatible with the STM32MP2 series in the VFBGA361
10×10 mm package: the STM32MP21 uses a subset of the STM32MP23
pinout, which itself is a subset of the STM32MP25.

More details available here :
https://www.st.com/en/microcontrollers-microprocessors/stm32mp2-series.html

Signed-off-by: Patrice Chotard <patrice.chotard@foss.st.com>
Reviewed-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
6 weeks agostm32mp: cmd_stm32key: add support of STM32MP21x
Patrice Chotard [Tue, 3 Feb 2026 16:49:24 +0000 (17:49 +0100)] 
stm32mp: cmd_stm32key: add support of STM32MP21x

Add cmd_stm32key support for STM32MP21x SoCs family.

Signed-off-by: Yann Gautier <yann.gautier@foss.st.com>
Signed-off-by: Nicolas Le Bayon <nicolas.le.bayon@st.com>
Signed-off-by: Patrice Chotard <patrice.chotard@foss.st.com>
Reviewed-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
6 weeks agostm32mp: syscon: Add STM32MP21 support
Patrice Chotard [Tue, 3 Feb 2026 16:49:23 +0000 (17:49 +0100)] 
stm32mp: syscon: Add STM32MP21 support

Add "st,stm32mp21-syscfg" compatible.

Signed-off-by: Patrice Chotard <patrice.chotard@foss.st.com>
Reviewed-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
6 weeks agoreset: stm32mp21: add stm32mp21 reset driver
Patrice Chotard [Tue, 3 Feb 2026 16:49:22 +0000 (17:49 +0100)] 
reset: stm32mp21: add stm32mp21 reset driver

Implement STM32MP21 reset drivers using stm32-core-reset API.

Signed-off-by: Gabriel Fernandez <gabriel.fernandez@foss.st.com>
Signed-off-by: Patrice Chotard <patrice.chotard@foss.st.com>
Reviewed-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
6 weeks agoclk: stm32mp21: Add clock driver support
Patrice Chotard [Tue, 3 Feb 2026 16:49:21 +0000 (17:49 +0100)] 
clk: stm32mp21: Add clock driver support

Add clock driver support for STM32MP21 SoCs.

Signed-off-by: Nicolas Le Bayon <nicolas.le.bayon@st.com>
Signed-off-by: Patrice Chotard <patrice.chotard@foss.st.com>
Reviewed-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
6 weeks agoboot: fit: validate FDT/DTO payload before fdt_open_into()
James Hilliard [Mon, 23 Feb 2026 20:40:04 +0000 (13:40 -0700)] 
boot: fit: validate FDT/DTO payload before fdt_open_into()

boot_get_fdt_fit_into_buffer() calls fdt_open_into() for both the
base FDT and overlay DTO blobs loaded from a FIT image.

Those blobs come from FIT payload data. In the overlay path,
fit_image_load() is called with FIT_LOAD_IGNORED, so the IH_TYPE_FLATDT
header check in fit_image_load() is skipped. This leaves fdt_open_into()
to consume header-derived offsets/sizes from unvalidated input.

Validate the full blob against the payload length first with
fdt_check_full(fdtsrcbuf, srclen), then proceed with fdt_totalsize() and
fdt_open_into(). This fixes Coverity CID 644638 (TAINTED_SCALAR).

Fixes: 5ebf0c55a23 ("image: fit: Apply overlays using aligned writable FDT copies")
Link: https://lore.kernel.org/all/20260223195109.GG3233182@bill-the-cat/
Signed-off-by: James Hilliard <james.hilliard1@gmail.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
6 weeks agoarm: mach-k3: common: Clamp RAM end address to board-usable region in spl_enable_cache()
Devarsh Thakkar [Tue, 24 Feb 2026 13:45:57 +0000 (19:15 +0530)] 
arm: mach-k3: common: Clamp RAM end address to board-usable region in spl_enable_cache()

commit ba20b2443c29 ("arm: mach-k3: common: Reserve video memory from
end of the RAM") switched spl_enable_cache() to use gd->ram_top directly
but omitted the board_get_usable_ram_top() call that limits RAM
configuration and provides updated RAM end address per memory map
used by board and impacts subsequent allocations and reservations.
For e.g. here it impacts how high the TLB may be placed.

On Verdin AM62 (512 MiB), the raw end of RAM (0xA0000000) is inside
OP-TEE's region. board_get_usable_ram_top() in verdin-am62.c returns
0x9C000000 to keep relocations below it, but spl_enable_cache() never
called it. commit 42b3ee7fa524 ("arm: mach-k3: am62x: Enable memory
firewall support") then enforced the OP-TEE firewall, turning the silent
corruption into a hard hang.

Fix by calling board_get_usable_ram_top() after computing raw ram_top,
consistent with setup_dest_addr() in board_f.c. A weak default is
provided for boards that do not need to restrict the RAM top.

Fixes: ba20b2443c29 ("arm: mach-k3: common: Reserve video memory from end of the RAM")
Reported-by: Francesco Dolcini <francesco@dolcini.it>
Link: https://lore.kernel.org/all/20260224102121.GB340942@francesco-nb/
Signed-off-by: Devarsh Thakkar <devarsht@ti.com>
Tested-by: Francesco Dolcini <francesco.dolcini@toradex.com> # Verdin AM62 512MB
6 weeks agoarm: armv8: Flush TLB before enabling MMU
Mark Kettenis [Sat, 10 Jan 2026 19:56:10 +0000 (20:56 +0100)] 
arm: armv8: Flush TLB before enabling MMU

Commit 9ebdbbc43e5f ("arm: armv8: invalidate dcache entries on
dcache_enable") broke Apple Silicon machines in certain scenarios.
If the MMU is currently not enabled we need to flush the TLB
before we enable it to prevent stale TLB entries from becoming
active again.  So move the __asm_invalidate_tlb_all() back
immediately before the mmu_setup() call.

Fixes: 9ebdbbc43e5f ("arm: armv8: invalidate dcache entries on dcache_enable")
Signed-off-by: Mark Kettenis <kettenis@openbsd.org>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
6 weeks agoboard: st: common: add uclass_get_device_by_driver()'s return value check
Patrice Chotard [Wed, 11 Feb 2026 14:32:23 +0000 (15:32 +0100)] 
board: st: common: add uclass_get_device_by_driver()'s return value check

class_get_device_by_driver()'s return value is not checked, in case of BSEC
driver is not probed, dev is not set and used just after as parameter of
misc_read() which leads to a Synchronous Abort.

Add uclass_get_device_by_driver()'s return value check to fix it.

Signed-off-by: Patrice Chotard <patrice.chotard@foss.st.com>
Reviewed-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
6 weeks agoboard: st: common: Add support of stm32mp21xx-dk board
Patrice Chotard [Wed, 11 Feb 2026 14:32:22 +0000 (15:32 +0100)] 
board: st: common: Add support of stm32mp21xx-dk board

Add board identifier for STM32MP21 discovery board = MB2059.

Signed-off-by: Patrice Chotard <patrice.chotard@foss.st.com>
Reviewed-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
6 weeks agostm32mp2: Update size of DDR entry in MMU table
Patrice Chotard [Thu, 5 Feb 2026 16:20:49 +0000 (17:20 +0100)] 
stm32mp2: Update size of DDR entry in MMU table

On 1GB board, in particular cases, a prefetch operation is done just above
the 1GB boundary. The DDR size is 1GB (0x80000000 to 0xc0000000), there is
an access on 0xc00017c0 (ie 0x800017c0).

As beginning of DDR is protected by MMU until CONFIG_TEXT_BASE
(0x80000000 to 0x84000000), it triggers the following IAC:

E/TC:0   stm32_iac_itr:192 IAC exceptions [159:128]: 0x200
E/TC:0   stm32_iac_itr:197 IAC exception ID: 137
I/TC:

DUMPING DATA FOR risaf@420d0000
I/TC: =====================================================
I/TC: Status register (IAESR0): 0x11
I/TC: -----------------------------------------------------
I/TC: Faulty address (IADDR0): 0xc00017c0
I/TC: =====================================================
E/TC:0   Panic at /usr/src/debug/optee-os-stm32mp/4.0.0-gitvalid.8>
E/TC:0   TEE load address @ 0x82000000
E/TC:0   Call stack:
E/TC:0    0x82007f30
E/TC:0    0x820444b4
E/TC:0    0x8202dc54
E/TC:0    0x82041fe0
E/TC:0    0x820143b8

By default, in MMU table, the DDR size is set to 4GB, but not all
STM32MP2 based board embeds 4GB, some has only 1 or 2GB of DDR.

The MMU table entry dedicated to DDR need to be updated with the real
DDR size previously read from DT.
After relocation, in enable_caches(), update the MMU table between the
dcache_disable() / dcache_enable() with the real DDR size.

Signed-off-by: Patrice Chotard <patrice.chotard@foss.st.com>
Reviewed-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
6 weeks agostm32mp: fix array bounds checks
Patrice Chotard [Tue, 10 Feb 2026 14:57:35 +0000 (15:57 +0100)] 
stm32mp: fix array bounds checks

Fix index check against array size. If that index is equal
to the array size, we'll access one-past-the-end of the array.

Signed-off-by: Patrice Chotard <patrice.chotard@foss.st.com>
Reviewed-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
6 weeks agostm32mp: stm32prog: Remove fsbl_nor_detected from stm32prog_data struct
Patrice Chotard [Thu, 5 Feb 2026 08:50:24 +0000 (09:50 +0100)] 
stm32mp: stm32prog: Remove fsbl_nor_detected from stm32prog_data struct

No more need to test if a fsbl partition is present on NOR when booting
from serial or USB. Now MTD devices are automatically populated with
partition information found in DT. Remove fsbl_nor_detected boolean from
stm32prog_data struct and all code using it.

Signed-off-by: Patrice Chotard <patrice.chotard@foss.st.com>
Reviewed-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
6 weeks agopinctrl: pinctrl_stm32: prevent the use of the secure protected pins
Fabien Dessenne [Thu, 5 Feb 2026 08:07:50 +0000 (09:07 +0100)] 
pinctrl: pinctrl_stm32: prevent the use of the secure protected pins

The hardware denies any access from the U-Boot non-secure world to the
secure-protected pins. Hence, prevent any driver to configure such a pin.
Identify the secure pins with "NO ACCESS" through the 'pinmux status -a'
command.
Use a driver data structure to identify which hardware versions support
this feature.

Signed-off-by: Fabien Dessenne <fabien.dessenne@foss.st.com>
Signed-off-by: Patrice Chotard <patrice.chotard@foss.st.com>
Reviewed-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
6 weeks agogpio: stm32-gpio: prevent the use of the secure protected pins
Fabien Dessenne [Thu, 5 Feb 2026 08:07:49 +0000 (09:07 +0100)] 
gpio: stm32-gpio: prevent the use of the secure protected pins

The hardware denies any access from the U-Boot non-secure world to the
secure-protected pins. Hence, prevent any driver to request such a pin.

Signed-off-by: Fabien Dessenne <fabien.dessenne@foss.st.com>
Signed-off-by: Patrice Chotard <patrice.chotard@foss.st.com>
Reviewed-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
6 weeks agoPrepare v2026.04-rc3 v2026.04-rc3
Tom Rini [Mon, 23 Feb 2026 19:17:02 +0000 (13:17 -0600)] 
Prepare v2026.04-rc3

Signed-off-by: Tom Rini <trini@konsulko.com>
6 weeks agofs/squashfs: fix heap buffer overflow in sqfs_frag_lookup()
Eric Kilmer [Fri, 20 Feb 2026 19:48:08 +0000 (14:48 -0500)] 
fs/squashfs: fix heap buffer overflow in sqfs_frag_lookup()

sqfs_frag_lookup() reads a 16-bit metadata block header whose lower
15 bits encode the data size. Unlike sqfs_read_metablock() in
sqfs_inode.c, this function does not validate that the decoded size is
within SQFS_METADATA_BLOCK_SIZE (8192). A malformed SquashFS image can
set the size field to any value up to 32767, causing memcpy to write
past the 8192-byte 'entries' heap buffer.

Add the same bounds check used by sqfs_read_metablock(): reject any
metadata block header with SQFS_METADATA_SIZE(header) exceeding
SQFS_METADATA_BLOCK_SIZE.

Found by fuzzing with libFuzzer + AddressSanitizer.

Signed-off-by: Eric Kilmer <eric.kilmer@trailofbits.com>
Reviewed-by: Miquel Raynal <miquel.raynal@bootlin.com>
6 weeks agodoc: board: samsung: exynos-mobile: remove requirement of stub device tree
Kaustabh Chakraborty [Tue, 3 Feb 2026 13:08:49 +0000 (18:38 +0530)] 
doc: board: samsung: exynos-mobile: remove requirement of stub device tree

Flashing U-Boot for Exynos 7870 requires creating a stub device tree,
where certain properties and nodes are defined which are populated by
the previous bootloader in the phones.

Since these properties are now available in the U-Boot device tree, it's
now possible to use the same blob generated by U-Boot in place of the
stub, when creating boot images. Update the build documentation to
reflect the same.

Signed-off-by: Kaustabh Chakraborty <kauschluss@disroot.org>
Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
6 weeks agoARM: dts: exynos7870-on7xelte: add properties to make S-BOOT happy
Kaustabh Chakraborty [Tue, 3 Feb 2026 13:08:48 +0000 (18:38 +0530)] 
ARM: dts: exynos7870-on7xelte: add properties to make S-BOOT happy

Add properties in the DTSI file which is required for S-BOOT when used
an external device tree when booting into U-Boot. S-BOOT is Samsung's
proprietary bootloader, which chainloads U-Boot.

Since this device has multiple bank nodes, add memory nodes for each RAM
bank. This is the format S-BOOT recognizes, and (re)populates it with
the correct bank sizes.

Signed-off-by: Kaustabh Chakraborty <kauschluss@disroot.org>
Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
6 weeks agoARM: dts: exynos7870-j6lte: add properties to make S-BOOT happy
Kaustabh Chakraborty [Tue, 3 Feb 2026 13:08:47 +0000 (18:38 +0530)] 
ARM: dts: exynos7870-j6lte: add properties to make S-BOOT happy

Add properties in the DTSI file which is required for S-BOOT when used
an external device tree when booting into U-Boot. S-BOOT is Samsung's
proprietary bootloader, which chainloads U-Boot.

Since this device has multiple bank nodes, add memory nodes for each RAM
bank. This is the format S-BOOT recognizes, and (re)populates it with
the correct bank sizes.

Signed-off-by: Kaustabh Chakraborty <kauschluss@disroot.org>
Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
6 weeks agoARM: dts: exynos7870-a2corelte: add properties to make S-BOOT happy
Kaustabh Chakraborty [Tue, 3 Feb 2026 13:08:46 +0000 (18:38 +0530)] 
ARM: dts: exynos7870-a2corelte: add properties to make S-BOOT happy

Add properties in the DTSI file which is required for S-BOOT when used
an external device tree when booting into U-Boot. S-BOOT is Samsung's
proprietary bootloader, which chainloads U-Boot.

Signed-off-by: Kaustabh Chakraborty <kauschluss@disroot.org>
Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
6 weeks agodoc: board: samsung: exynos-mobile: use u-boot-nodtb.bin for packaging process
Kaustabh Chakraborty [Tue, 3 Feb 2026 13:08:45 +0000 (18:38 +0530)] 
doc: board: samsung: exynos-mobile: use u-boot-nodtb.bin for packaging process

U-Boot for this board is programmed to use the external DTB if an
internal device tree is not available. This makes it safe to build boot
images using the non-DTB U-Boot binary, while taking up less space.
Reflect this change in documentation.

Signed-off-by: Kaustabh Chakraborty <kauschluss@disroot.org>
Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
6 weeks agodoc: board: samsung: exynos-mobile: add DEVICE_TREE make flag in build
Kaustabh Chakraborty [Tue, 3 Feb 2026 13:08:44 +0000 (18:38 +0530)] 
doc: board: samsung: exynos-mobile: add DEVICE_TREE make flag in build

Since there is only one internal device tree allowed in U-Boot, the
DEVICE_TREE flag is required for building images for various devices.
Document it in the build guide.

Signed-off-by: Kaustabh Chakraborty <kauschluss@disroot.org>
Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
6 weeks agoconfigs: exynos-mobile: remove DEFAULT_DEVICE_TREE and add OF_UPSTREAM_BUILD_VENDOR
Kaustabh Chakraborty [Tue, 3 Feb 2026 13:08:43 +0000 (18:38 +0530)] 
configs: exynos-mobile: remove DEFAULT_DEVICE_TREE and add OF_UPSTREAM_BUILD_VENDOR

Since the build documentation recommends using the DEVICE_TREE= make
flag, and the "board" supports multiple devices, remove the default
device tree option so as to enforce the make flag during build.

OF_UPSTREAM_BUILD_VENDOR is added so as to build all device trees
associated with the vendor with their U-Boot includes.

Signed-off-by: Kaustabh Chakraborty <kauschluss@disroot.org>
Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
6 weeks agoboard: samsung: exynos-mobile: enable OF_BOARD support
Kaustabh Chakraborty [Tue, 3 Feb 2026 13:08:42 +0000 (18:38 +0530)] 
board: samsung: exynos-mobile: enable OF_BOARD support

OF_BOARD allows to choose the internal device tree in runtime. Use it to
pass the external FDT as an internal one if it is not present. This
approach is also used by qcom-phone, and it reduces boot image size. It
is expected that an external FDT is present as U-Boot is packaged as an
Android boot image.

Signed-off-by: Kaustabh Chakraborty <kauschluss@disroot.org>
Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
6 weeks agoboard: samsung: exynos-mobile: disable MULTI_DTB_FIT support
Kaustabh Chakraborty [Tue, 3 Feb 2026 13:08:41 +0000 (18:38 +0530)] 
board: samsung: exynos-mobile: disable MULTI_DTB_FIT support

MULTI_DTB_FIT allowed a single U-Boot image to be booted in multiple
devices, but it was not a scalable solution; as more devices are added,
the U-Boot binary is bound to increase, space taken up by devicetrees
which are not even used.

The other approach is to be able to build separate images for multiple
devices using the same "board" defined in U-Boot. This is used by
qcom_phone to support muitiple devices.

Follow the said approach for Exynos devices as well, disable
MULTI_DTB_FIT for this board.

Signed-off-by: Kaustabh Chakraborty <kauschluss@disroot.org>
Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
6 weeks agoboard: samsung: exynos-mobile: resolve env vars without board_info data
Kaustabh Chakraborty [Tue, 3 Feb 2026 13:08:40 +0000 (18:38 +0530)] 
board: samsung: exynos-mobile: resolve env vars without board_info data

Move environment variable setup procedure to exynos_env_setup(). This
function is independent of data from exynos_board_info as it is due for
removal in the succeding commits.

Signed-off-by: Kaustabh Chakraborty <kauschluss@disroot.org>
Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
6 weeks agoboard: samsung: exynos-mobile: simplify parsing RAM banks from device tree
Kaustabh Chakraborty [Tue, 3 Feb 2026 13:08:39 +0000 (18:38 +0530)] 
board: samsung: exynos-mobile: simplify parsing RAM banks from device tree

Remove the baked-in bank addresses used for figuring out RAM banks from
device tree. Instead, sequentially fill in the bank addresses and sizes,
and doing away with an extra array for specifying bases.

Signed-off-by: Kaustabh Chakraborty <kauschluss@disroot.org>
Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
7 weeks agoboard: ti: am64,j721*: use correct fdt if eeprom detection fails
Anshul Dalal [Tue, 3 Feb 2026 10:00:20 +0000 (15:30 +0530)] 
board: ti: am64,j721*: use correct fdt if eeprom detection fails

We currently provide default board names for each board in their
respective evm.c file. However for custom boards, this behaviour
overwrites the default DT as set in the defconfig
(CONFIG_DEFAULT_FDT_FILE or CONFIG_DEFAULT_DEVICE_TREE).

This patch changes the default name to be NULL which prevents this
overwrite and allows ti_set_fdt_env to instead fallback to the correct
DT as set in Kconfig.

Signed-off-by: Anshul Dalal <anshuld@ti.com>
Reviewed-by: Bryan Brattlof <bb@ti.com>
7 weeks agoarm: mach-k3: j722s: Update SoC data to add wake-up I2C device
Chintan Vankar [Thu, 5 Feb 2026 12:15:51 +0000 (17:45 +0530)] 
arm: mach-k3: j722s: Update SoC data to add wake-up I2C device

Update dev-data and clk-data to include wake-up I2C device for J722s.

Signed-off-by: Chintan Vankar <c-vankar@ti.com>
Tested-by: Richard Genoud <richard.genoud@bootlin.com>
7 weeks agoMerge patch series "test: cmd: Add test for zip/unzip/gzwrite commands"
Tom Rini [Wed, 18 Feb 2026 20:58:36 +0000 (14:58 -0600)] 
Merge patch series "test: cmd: Add test for zip/unzip/gzwrite commands"

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

Enable zip command in sandbox so it is always build tested.
Add simple test for zip/unzip/gzwrite commands so they are
unit tested.

Link: https://lore.kernel.org/r/20260205014153.218621-1-marek.vasut+renesas@mailbox.org
7 weeks agotest: cmd: Add test for zip/unzip/gzwrite commands
Marek Vasut [Thu, 5 Feb 2026 01:40:45 +0000 (02:40 +0100)] 
test: cmd: Add test for zip/unzip/gzwrite commands

Add simple test for zip/unzip/gzwrite commands. The test works as
follows. First, create three buffers with a bit of space between
each of them, fill them with random data, then compress data in
buffer 1 into buffer 2, decompress data in buffer 2 either directly
into buffer 3 or into MMC 1 and then read them back into buffer 3,
and finally compare buffer 1 and buffer 3, they have to be identical.

The buffers are filled with random data to detect out of bounds writes.
Test for various sizes, both small and large and unaligned.

The test uses ut_assert_skip_to_line() to skip over gzwrite progress
bar. Since the progress bar updates fill up the console record buffer,
increase the size of it to compensate.

Reviewed-by: Mattijs Korpershoek <mkorpershoek@kernel.org>
Tested-by: Mattijs Korpershoek <mkorpershoek@kernel.org>
Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
7 weeks agoconfigs: sandbox: Enable zip command
Marek Vasut [Thu, 5 Feb 2026 01:40:44 +0000 (02:40 +0100)] 
configs: sandbox: Enable zip command

What is not being built and tested in CI, breaks. Enable the 'zip'
command in sandbox to get it build tested in preparation for an
actual unit test.

Reviewed-by: Mattijs Korpershoek <mkorpershoek@kernel.org>
Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
7 weeks agoarm: dts: k3-am64-phycore-som-ddr4: Update DDR timings
Wadim Egorov [Tue, 3 Feb 2026 05:54:43 +0000 (06:54 +0100)] 
arm: dts: k3-am64-phycore-som-ddr4: Update DDR timings

Update DDR timings to increase stability in higher temperature ranges.

Update DDR settings:
  - SysConfig DDR tool v0.09.05
  - Package: ALV
  - Extended temperature range -40C to 105C
  - Lower tREFI (ns) to 3900

Signed-off-by: Wadim Egorov <w.egorov@phytec.de>
Tested-by: Daniel Schultz <d.schultz@phytec.de>
7 weeks agox86/coreboot: Exclude memory regions starting above 4GB
Jeremy Compostella [Wed, 4 Feb 2026 02:42:36 +0000 (19:42 -0700)] 
x86/coreboot: Exclude memory regions starting above 4GB

This commit updates the RAM region filtering logic in
board_get_usable_ram_top() to skip any memory regions whose start address
is above 4GB. Previously, only the end address was capped at 4GB, but
regions entirely above this threshold were still considered.

Typically, the following memory map entries would cause
board_get_usable_ram_top() to return 0x100000000, which is incorrect.

    start=00000000, end=00001000, type=16
    start=00001000, end=000a0000, type=1
    start=000a0000, end=000f6000, type=2
    start=000f6000, end=000f7000, type=16
    start=000f7000, end=00100000, type=2
    start=00100000, end=6f170000, type=1
    start=6f170000, end=70000000, type=16
    start=70000000, end=80800000, type=2
    start=e0000000, end=f8000000, type=2
    start=fa000000, end=fc000000, type=2
    start=fc800000, end=fc880000, type=2
    start=fd800000, end=fe800000, type=2
    start=feb00000, end=feb80000, type=2
    start=fec00000, end=fed00000, type=2
    start=fed20000, end=fed80000, type=2
    start=feda1000, end=feda2000, type=2
    start=fedc0000, end=fede0000, type=2
    start=100000000, end=102400000, type=2
    start=102400000, end=47f800000, type=1
    start=4000000000, end=4020000000, type=2

By adding a check to continue the loop if the region's start address
exceeds 0xffffffffULL, the function now properly ignores regions that are
not usable in 32-bit address space.

Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
7 weeks agoboard: ti: j721e,j7200: fix do_main_cpsw0_qsgmii_phyinit
Siddharth Vadapalli [Mon, 2 Feb 2026 14:10:56 +0000 (19:40 +0530)] 
board: ti: j721e,j7200: fix do_main_cpsw0_qsgmii_phyinit

Since commit 27cc5951c862 ("include: env: ti: add default for
do_main_cpsw0_qsgmii_phyinit"), the value of the environment variable
do_main_cpsw0_qsgmii_phyinit happened to remain '0' and couldn't be
changed without user intervention. This behavior is due to the following
cyclic dependency:
A) ti_common.env sets do_main_cpsw0_qsgmii_phyinit to '0' and its value
   can only be updated automatically by main_cpsw0_qsgmii_phyinit.
B) main_cpsw0_qsgmii_phyinit is defined in j721e.env and it can run only
   if 'do_main_cpsw0_qsgmii_phyinit' is already '1' which isn't possible
   unless the user manually assigns the value.

Fix the aforementioned cyclic dependency by using board_late_init() to
detect the QSGMII Daughtercard and set do_main_cpsw0_qsgmii_phyinit.

Additionally, to address the issue of do_main_cpsw0_qsgmii_phyinit being
'undefined' for other platforms, replace:
if test ${do_main_cpsw0_qsgmii_phyinit} -eq 1;
with:
if env exists do_main_cpsw0_qsgmii_phyinit;
in ti_common.env.

Fixes: 27cc5951c862 ("include: env: ti: add default for do_main_cpsw0_qsgmii_phyinit")
Signed-off-by: Siddharth Vadapalli <s-vadapalli@ti.com>
Reviewed-by: Anshul Dalal <anshuld@ti.com>
7 weeks agobootstd: rauc: Fix null pointer access while checking root part
Martin Schwan [Wed, 11 Feb 2026 08:36:22 +0000 (09:36 +0100)] 
bootstd: rauc: Fix null pointer access while checking root part

Fix a segmentation fault caused by a null pointer access during root
partition checking. The function part_get_info() was falsely given null
for the disk_partition struct, which later resulted in accessing a null
pointer and thus undefined behavior.

Fixes: 5d7c080ae5dc ("bootstd: rauc: Don't check root part filesystem")
Signed-off-by: Martin Schwan <m.schwan@phytec.de>
7 weeks agocmd: pxe_utils: fix syntax error in comments
Hugo Villeneuve [Wed, 11 Feb 2026 15:19:09 +0000 (10:19 -0500)] 
cmd: pxe_utils: fix syntax error in comments

Add missing "to" so that the sentence makes sense.

Signed-off-by: Hugo Villeneuve <hvilleneuve@dimonoff.com>
7 weeks agoimage: fit: Apply overlays using aligned writable FDT copies
James Hilliard [Thu, 12 Feb 2026 21:34:09 +0000 (14:34 -0700)] 
image: fit: Apply overlays using aligned writable FDT copies

libfdt expects FDT/DTO blobs to be 8-byte aligned. When loading the
base FDT or overlays from a FIT, the mapped buffer may be unaligned,
which can break fdt_open_into() on strict-alignment architectures.

boot_get_fdt_fit() relocates the base FDT with boot_relocate_fdt()
before applying overlays. That uses the bootm memory map and can
overlap with the FIT buffer when the FIT is loaded into RAM,
corrupting data needed to load the kernel and ramdisk.

Allocate writable, 8-byte aligned copies of the base FDT and overlays
with memalign() and fdt_open_into(). Grow the base buffer as needed,
apply overlays to it and pack the final tree. Free each temporary
overlay copy after application and check fdt_pack() errors.

Fixes: 8fbcc0e0e839 ("boot: Assure FDT is always 8-byte aligned")
Fixes: 881f0b77dc8c ("image: apply FDTOs on FDT image node")
Signed-off-by: James Hilliard <james.hilliard1@gmail.com>
Cc: Jamie Gibbons <Jamie.Gibbons@microchip.com>
Reviewed-by: Marek Vasut <marek.vasut@mailbox.org>
7 weeks agoMAINTAINERS: Remove a few inactive people
Tom Rini [Tue, 10 Feb 2026 17:13:44 +0000 (11:13 -0600)] 
MAINTAINERS: Remove a few inactive people

It has been a long while since Jagan Teki, Joe Hershberger or Ramon
Fried have been active in the community. We thank them for their time
over the years. Remove them from the active maintainer list and mark a
few things as Orphaned for now.

Signed-off-by: Tom Rini <trini@konsulko.com>
7 weeks agotest/py: Fix spelling of source_dir in docstring
David Lechner [Fri, 6 Feb 2026 21:31:14 +0000 (15:31 -0600)] 
test/py: Fix spelling of source_dir in docstring

Fix a typo in the docstring for run_build() where source_dir was
misspelled.

Signed-off-by: David Lechner <dlechner@baylibre.com>
7 weeks agoMerge branch 'master' of git://source.denx.de/u-boot-usb
Tom Rini [Mon, 16 Feb 2026 17:50:44 +0000 (11:50 -0600)] 
Merge branch 'master' of git://source.denx.de/u-boot-usb

- A fix for CDNS3 in correctly determining dr_mode for OTG.

7 weeks agousb: cdns3: use VBUS Valid to determine role for dr_mode OTG
Siddharth Vadapalli [Mon, 16 Feb 2026 04:34:58 +0000 (10:04 +0530)] 
usb: cdns3: use VBUS Valid to determine role for dr_mode OTG

The cdns3_bind() function is responsible for identifying the appropriate
driver to bind to the USB Controller's device-tree node. If the device-tree
node has the 'dr_mode' property set to 'otg', the existing approach fails
to bind a driver, leading to loss of functionality.

To address this, use the VBUS Valid field of the OTG Status register to
determine the role as follows:
- If VBUS Valid field is set, it indicates that a USB Host is supplying
  power and the Controller should assume the Peripheral role.
- If VBUS Valid field is clear, it indicates the absence of a USB Host and
  the Controller should assume the Host role.

Additionally, when 'dr_mode' happens to be 'otg' and the STRAP settings
are not specified, use VBUS Valid to determine the role in cdns3_drd_init()
and assign it to cdns->dr_mode.

Signed-off-by: Siddharth Vadapalli <s-vadapalli@ti.com>
Reviewed-by: Marek Vasut <marek.vasut@mailbox.org>
7 weeks agoMerge tag 'efi-2026-04-rc3' of https://source.denx.de/u-boot/custodians/u-boot-efi
Tom Rini [Sun, 15 Feb 2026 21:08:14 +0000 (15:08 -0600)] 
Merge tag 'efi-2026-04-rc3' of https://source.denx.de/u-boot/custodians/u-boot-efi

Pull request efi-2026-04-rc3

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

UEFI:

* add missing EFI_CALL around tcg2 read_blocks calls
* fix ECPT table size computation

7 weeks agoefi_loader: fix ecpt size computation
Vincent Stehlé [Thu, 12 Feb 2026 14:40:15 +0000 (15:40 +0100)] 
efi_loader: fix ecpt size computation

The size of the memory allocated for the EFI Conformance Profiles Table is
computed with `num_entries' always equal to zero, which is incorrect when
CONFIG_EFI_EBBR_2_1_CONFORMANCE is enabled.

This can be verified by allocating the ECPT memory with malloc() instead of
efi_allocate_pool(), building u-boot with sandbox_defconfig and
CONFIG_VALGRIND=y, and by finally running the following command:

  valgrind --suppressions=scripts/u-boot.supp \
    ./u-boot -T -c 'efidebug tables'

Fix this by using an array of the supported profiles GUIDs instead, which
should also be easier to extend in the future as U-Boot should publish the
GUIDs for all supported EBBR revisions.

Fixes: 6b92c1735205 ("efi: Create ECPT table")
Suggested-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Signed-off-by: Vincent Stehlé <vincent.stehle@arm.com>
Cc: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Cc: Tom Rini <trini@konsulko.com>
Cc: Jose Marinho <jose.marinho@arm.com>
Reviewed-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
7 weeks agoefi_loader: add missing EFI_CALL around tcg2 read_blocks calls
Vincent Stehlé [Wed, 11 Feb 2026 12:43:14 +0000 (13:43 +0100)] 
efi_loader: add missing EFI_CALL around tcg2 read_blocks calls

The read_blocks() function from the Block IO protocol is a UEFI function;
make sure to call it from within U-Boot using the EFI_CALL() macro.

To demonstrate the issue on an AArch64 machine, define the DEBUG macro in
include/efi_loader.h and build u-boot with sandbox_defconfig, then download
and uncompress the ACS-DT image [1], and finally execute the following
command:

  $ ./u-boot -T -c " \
      host bind 0 systemready-dt_acs_live_image.wic; \
      setenv loadaddr 0x10000; \
      load host 0 \${loadaddr} EFI/BOOT/Shell.efi; \
      bootefi \${loadaddr} \${fdtcontroladdr}"

The following assertion should fail:

  lib/efi_loader/efi_net.c:858: efi_network_timer_notify: Assertion `__efi_entry_check()' failed.

This happens due to the following EFIAPI functions call chain:

  efi_start_image()
    efi_disk_read_blocks()
      (due to the missing EFI_CALL, entry_count == 2)
      efi_network_timer_notify()

Link: https://github.com/ARM-software/arm-systemready/releases/download/v25.12_DT_3.1.1/systemready-dt_acs_live_image.wic.xz
Fixes: ce3dbc5d080d ("efi_loader: add UEFI GPT measurement")
Signed-off-by: Vincent Stehlé <vincent.stehle@arm.com>
Cc: Heinrich Schuchardt <xypron.glpk@gmx.de>
Cc: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Cc: Tom Rini <trini@konsulko.com>
Cc: Masahisa Kojima <kojima.masahisa@socionext.com>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Acked-by: Masahisa Kojima <kojima.masahisa@socionext.com>
Reviewed-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
8 weeks agoboard: toradex: Make A53 get RAM size from DT in K3 boards
Suhaas Joshi [Thu, 12 Feb 2026 10:28:47 +0000 (15:58 +0530)] 
board: toradex: Make A53 get RAM size from DT in K3 boards

`dram_init()` is called by R5 SPL and U-Boot, both. It starts by
computing the size of the RAM. In verdin-am62(p), it does so by calling
`get_ram_size()`. This function computes the size of the RAM by writing
over the RAM.

When R5 computes the size of the RAM, it does not update the DT with
this size. As a result, when A53 invokes `dram_init()` again, it has to
compute the size through `get_ram_size()` again.

Commit 13c54cf588d82 and 0c3a6f748c9 add firewall over ATF's and OPTEE's
regions. This firewall is added during the R5 SPL stage of boot. So when
A53 attempts to write over RAM in `get_ram_size()`, it writes over the
protected region. Since A53 is a non-secure core, this is blocked by the
firewall.

To fix this, do the following:
    * Implement `spl_perform_board_fixups()` function for verdin-am62
      and verdin-am62p. Make this function call `fixup_memory_node()`,
      which updates the DT.
    * Add an if-block in `dram_init()`, to ensure that only R5 is able
      to call `get_ram_size()`, and that A53 reads this size from the
      DT.

Signed-off-by: Suhaas Joshi <s-joshi@ti.com>
Reviewed-by: Francesco Dolcini <francesco.dolcini@toradex.com>
8 weeks agoMerge tag 'xilinx-for-v2026.04-rc3' of https://source.denx.de/u-boot/custodians/u...
Tom Rini [Thu, 12 Feb 2026 14:05:44 +0000 (08:05 -0600)] 
Merge tag 'xilinx-for-v2026.04-rc3' of https://source.denx.de/u-boot/custodians/u-boot-microblaze

AMD/Xilinx/FPGA changes for v2026.04-rc3

clk:
- zynqmp clk fixes

phy:
- sync vsc8541 config

versal2:
- fix GIC configuration

8 weeks agoMerge tag 'u-boot-dfu-20260211' of https://source.denx.de/u-boot/custodians/u-boot-dfu
Tom Rini [Wed, 11 Feb 2026 14:38:19 +0000 (08:38 -0600)] 
Merge tag 'u-boot-dfu-20260211' of https://source.denx.de/u-boot/custodians/u-boot-dfu

u-boot-dfu-20260211

USB Gadget:
* dwc3: Support ip and version type
* dwc3: Increase controller halt timeout
* dwc3: Don't send unintended link state change
* dwc3: Improve reset sequence
* dwc2: Move dr_mode check to bind to support RK3288/RK3506 with
  2 DWC2 controllers

8 weeks agoMerge tag 'tpm-master-11022026' of https://source.denx.de/u-boot/custodians/u-boot-tpm
Tom Rini [Wed, 11 Feb 2026 14:37:44 +0000 (08:37 -0600)] 
Merge tag 'tpm-master-11022026' of https://source.denx.de/u-boot/custodians/u-boot-tpm

A coverity fix and documentation update from Heiko on SM3 support

8 weeks agodoc: cmd: add documentation for sm3sum
Heiko Schocher [Fri, 23 Jan 2026 02:25:52 +0000 (03:25 +0100)] 
doc: cmd: add documentation for sm3sum

add documentation for sm3sum command.

Signed-off-by: Heiko Schocher <hs@nabladev.com>
Reviewed-by: Quentin Schulz <quentin.schulz@cherry.de>
Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
8 weeks agolib: sm3: fix coverity error
Heiko Schocher [Fri, 23 Jan 2026 02:25:51 +0000 (03:25 +0100)] 
lib: sm3: fix coverity error

Coverity scan reported:

CID 449815:         Memory - illegal accesses  (OVERRUN)
Overrunning array of 64 bytes at byte offset 64 by dereferencing pointer
"sctx->buffer + partial". [Note: The source code implementation of the
function has been overridden by a builtin model.]

In line: 252
   memset(sctx->buffer + partial, 0, SM3_BLOCK_SIZE - partial);

The respective line should be:

memset(sctx->buffer + partial, 0, SM3_BLOCK_SIZE - partial - 1);

as partial gets incremented by one before.

Signed-off-by: Heiko Schocher <hs@nabladev.com>
Acked-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
8 weeks agonet: phy: mscc: Enable RMII clock output for VSC8541 PHY
Pranav Tilak [Thu, 29 Jan 2026 08:10:54 +0000 (13:40 +0530)] 
net: phy: mscc: Enable RMII clock output for VSC8541 PHY

Set RMII reference clock output to enabled (1) by default for VSC8541
PHY in RMII mode. The RMII specification requires a 50MHz reference
clock, and many board designs expect the PHY to provide this clock to
the MAC controller.

Previously, the driver defaulted rmii_clk_out to 0 (disabled) for all
interface modes, which caused the PHY to not output the required 50MHz
clock. This resulted in MAC-PHY communication failures and prevented
network operations like DHCP from working on RMII-configured boards.

This change alligns with the hardware power-up default behavior and
aligns with both the generic PHY driver and Linux MSCC PHY driver
implementations.

Signed-off-by: Pranav Tilak <pranav.vinaytilak@amd.com>
Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/20260129081054.1703479-1-pranav.vinaytilak@amd.com
8 weeks agoarm64: versal2: fix GICD/GICR base addresses for Versal Gen 2
Maheedhar Bollapalli [Tue, 10 Feb 2026 11:02:06 +0000 (12:02 +0100)] 
arm64: versal2: fix GICD/GICR base addresses for Versal Gen 2

Versal2 was using wrong GIC base mappings, causing GICR_TYPER reads to
not match EL1 MPIDR. This led U-Boot to walk beyond the per-CPU GICR
frames, access out-of-range addresses, and hit a synchronous exception
during early gic init percpu while booting up on alternate core
i.e., non cpu0.

Update Versal Gen 2 headers to the correct Versal Gen 2 bases.

Signed-off-by: Maheedhar Bollapalli <maheedharsai.bollapalli@amd.com>
Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/d0bc3fe1af8409fcfe505e55fb7042a33b845a4e.1770721325.git.michal.simek@amd.com
8 weeks agoMerge patch series "Update DDR Configurations"
Tom Rini [Tue, 10 Feb 2026 18:57:02 +0000 (12:57 -0600)] 
Merge patch series "Update DDR Configurations"

Santhosh Kumar K <s-k6@ti.com> says:

This series updates the DDR Configurations according to the SysConfig DDR
Configuration tool v0.10.32 for the following devices [1]
 - AM64x EVM
 - AM62x SK
 - AM62x LP SK
 - AM62Ax SK
 - AM62Px SK

Testing:
memtester - 50% of memory for 10 loops - PASSED

[1] https://dev.ti.com/tirex/content/Processor_DDR_Config_0.10.32.0000/docs/REVISION_HISTORY.html

Link: https://lore.kernel.org/r/20260203063529.1551907-1-s-k6@ti.com
8 weeks agoarm: dts: k3-am62p: Update DDR Configurations
Santhosh Kumar K [Tue, 3 Feb 2026 06:35:29 +0000 (12:05 +0530)] 
arm: dts: k3-am62p: Update DDR Configurations

Update the DDR Configurations for AM62Px SK according to the SysConfig
DDR Configuration tool v0.10.32. [1]

[1] https://dev.ti.com/tirex/content/Processor_DDR_Config_0.10.32.0000/docs/REVISION_HISTORY.html

Signed-off-by: Santhosh Kumar K <s-k6@ti.com>
Reviewed-by: Bryan Brattlof <bb@ti.com>
8 weeks agoarm: dts: k3-am62a: Update DDR Configurations
Santhosh Kumar K [Tue, 3 Feb 2026 06:35:28 +0000 (12:05 +0530)] 
arm: dts: k3-am62a: Update DDR Configurations

Update the DDR Configurations for AM62Ax SK according to the SysConfig
DDR Configuration tool v0.10.32. [1]

[1] https://dev.ti.com/tirex/content/Processor_DDR_Config_0.10.32.0000/docs/REVISION_HISTORY.html

Signed-off-by: Santhosh Kumar K <s-k6@ti.com>
Reviewed-by: Bryan Brattlof <bb@ti.com>
8 weeks agoarm: dts: k3-am62-lp: Update DDR Configurations
Santhosh Kumar K [Tue, 3 Feb 2026 06:35:27 +0000 (12:05 +0530)] 
arm: dts: k3-am62-lp: Update DDR Configurations

Update the DDR Configurations for AM62x LP SK according to the SysConfig
DDR Configuration tool v0.10.32. [1]

[1] https://dev.ti.com/tirex/content/Processor_DDR_Config_0.10.32.0000/docs/REVISION_HISTORY.html

Signed-off-by: Santhosh Kumar K <s-k6@ti.com>
Reviewed-by: Bryan Brattlof <bb@ti.com>
8 weeks agoarm: dts: k3-am62x: Update DDR Configurations
Santhosh Kumar K [Tue, 3 Feb 2026 06:35:26 +0000 (12:05 +0530)] 
arm: dts: k3-am62x: Update DDR Configurations

Update the DDR Configurations for AM62x SK according to the SysConfig
DDR Configuration tool v0.10.32. [1]

[1] https://dev.ti.com/tirex/content/Processor_DDR_Config_0.10.32.0000/docs/REVISION_HISTORY.html

Signed-off-by: Santhosh Kumar K <s-k6@ti.com>
Reviewed-by: Bryan Brattlof <bb@ti.com>
8 weeks agoarm: dts: k3-am64: Update DDR Configurations
Santhosh Kumar K [Tue, 3 Feb 2026 06:35:25 +0000 (12:05 +0530)] 
arm: dts: k3-am64: Update DDR Configurations

Update the DDR Configurations for AM64x EVM according to the SysConfig
DDR Configuration tool v0.10.32. [1]

[1] https://dev.ti.com/tirex/content/Processor_DDR_Config_0.10.32.0000/docs/REVISION_HISTORY.html

Signed-off-by: Santhosh Kumar K <s-k6@ti.com>
Reviewed-by: Bryan Brattlof <bb@ti.com>
8 weeks agodrivers/clk/clk_zynqmp.c: get rid of compiler warning for !CONFIG_CMD_CLK builds
Peter Korsgaard [Mon, 19 Jan 2026 09:54:37 +0000 (10:54 +0100)] 
drivers/clk/clk_zynqmp.c: get rid of compiler warning for !CONFIG_CMD_CLK builds

When built without CONFIG_CMD_CLK, we get a warning about the unused
clk_names variable:

../drivers/clk/clk_zynqmp.c:153:27: warning: ‘clk_names’ defined but not used [-Wunused-const-variable=]
  153 | static const char * const clk_names[clk_max] = {

So also guard it with CONFIG_CMD_CLK to get rid of that.

Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
Reviewed-by: Quentin Schulz <quentin.schulz@cherry.de>
Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/20260119095437.2775081-2-peter@korsgaard.com
8 weeks agodrivers/clk/Kconfig: fix "related" typo in help text
Peter Korsgaard [Mon, 19 Jan 2026 09:54:36 +0000 (10:54 +0100)] 
drivers/clk/Kconfig: fix "related" typo in help text

It looks like the original zynqmp typo was copied to versal as well.  Fix
both.

Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
Reviewed-by: Quentin Schulz <quentin.schulz@cherry.de>
Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/20260119095437.2775081-1-peter@korsgaard.com
8 weeks agoPrepare v2026.04-rc2 v2026.04-rc2
Tom Rini [Mon, 9 Feb 2026 21:07:50 +0000 (15:07 -0600)] 
Prepare v2026.04-rc2

Signed-off-by: Tom Rini <trini@konsulko.com>
2 months agoarm: spl: Ensure 8 byte alignment of appended DTB without separate BSS
Tom Rini [Thu, 5 Feb 2026 23:41:58 +0000 (17:41 -0600)] 
arm: spl: Ensure 8 byte alignment of appended DTB without separate BSS

Historically, when we have an appended device tree and also our
resulting binary will contain the BSS section, we have ensured that
everything will be where it's expected to be by declaring that the BSS
is overlayed with a symbol matches the end of the port of the ELF binary
that is objcopy'd to the binary we concatenate with. This in turn means
that the logic to generate a "pad" file, which is the size found in the
__bss_size symbol, will be correct and then we can concatenate the
device tree and it will begin at __bss_size at run time.

With commit 5ffc1dcc26d3 ("arm: Remove rel.dyn from SPL linker scripts")
we removed this overlay as part of trying to ensure that we met both the
requirements of the device tree to be 8 byte aligned as well as that our
logic to generate the -pad file would match what ended up in the
resulting binary. While it was correct to remove an unused section it
did not solve ultimately solve the problem for all cases.

To really fix the problem, we need to do two things. First, our final
section prior to _image_binary_end must be 8 byte aligned (for the case
of having a separate BSS and so our appended DTB exists at this
location). This cannot be '.binman_sym_table' as it may be empty, and in
turn the ELF type would be NOBITS and so not copied with objcopy. The
__u_boot_list section will never be empty, so it is our final section,
and ends with a '. = ALIGN(8)' statement. Second, as this is the end of
our copied data it is safe to declare that the BSS starts here, so use
the OVERLAY keyword to place the BSS here.

Fixes: 5ffc1dcc26d3 ("arm: Remove rel.dyn from SPL linker scripts")
Reported-by: Brian Sune <briansune@gmail.com>
Reported-by: Phil Phil Sutter <phil@nwl.cc>
Tested-by: Brian Sune <briansune@gmail.com>
Tested-by: Phil Sutter <phil@nwl.cc>
Tested-by: Greg Malysa <malysagreg@gmail.com>
Signed-off-by: Tom Rini <trini@konsulko.com>
2 months agoconfigs: Resync with savedefconfig
Tom Rini [Mon, 9 Feb 2026 15:32:19 +0000 (09:32 -0600)] 
configs: Resync with savedefconfig

Resync all defconfig files using qconfig.py

Signed-off-by: Tom Rini <trini@konsulko.com>
2 months agoMerge tag 'net-20260209' of https://source.denx.de/u-boot/custodians/u-boot-net
Tom Rini [Mon, 9 Feb 2026 14:28:01 +0000 (08:28 -0600)] 
Merge tag 'net-20260209' of https://source.denx.de/u-boot/custodians/u-boot-net

Pull request net-20260209.

net:
- airoha: mdio support for the switch
- phy: mscc: allow RGMII with internal delay for the VSC8541
- dwc_eth_qos: Update tail pointer handling

net-legacy:
- Stop conflating return value with file size in net_loop()

net-lwip:
- wget: rework the '#' printing
- tftp: add support of tsize option to client

2 months agoMerge tag 'u-boot-at91-2026.04-a' of https://source.denx.de/u-boot/custodians/u-boot...
Tom Rini [Sun, 8 Feb 2026 16:14:45 +0000 (10:14 -0600)] 
Merge tag 'u-boot-at91-2026.04-a' of https://source.denx.de/u-boot/custodians/u-boot-at91

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

This small fixes set includes fixing 64 bit builds and some warnings for
the at91 serial driver, and some cleanup on the nand driver.

2 months agoarm: dts: k3-am62d-evm-binman: Fix device tree reference
Paresh Bhagat [Wed, 28 Jan 2026 00:54:53 +0000 (06:24 +0530)] 
arm: dts: k3-am62d-evm-binman: Fix device tree reference

Fix ti-secure content reference from spl_am62a7_sk_dtb to
spl_am62d2_evm_dtb or AM62d dtb. Also remove redundant k3-binman.dtsi
include.

Fixes: 14dfa6b86187 ("Add initial support for AM62D2-EVM")
Signed-off-by: Paresh Bhagat <p-bhagat@ti.com>
Reviewed-by: Andrew Davis <afd@ti.com>
2 months agoarm: mach-k3: r5: j721e: clk-data: manually set the main_pll3 frequency
Bryan Brattlof [Wed, 28 Jan 2026 12:36:21 +0000 (18:06 +0530)] 
arm: mach-k3: r5: j721e: clk-data: manually set the main_pll3 frequency

Moving forward, DM firmware will no longer mess with the MAIN_PLL3.
This means MAIN_PLL3 will need to be manually set to 2GHz in order for
the CPSW9G HSDIV to have the correct 250MHz output for RGMII.

Signed-off-by: Bryan Brattlof <bb@ti.com>
Signed-off-by: Siddharth Vadapalli <s-vadapalli@ti.com>
2 months agoMAINTAINERS: Add entry for SMBIOS
Raymond Mao [Wed, 4 Feb 2026 16:31:40 +0000 (11:31 -0500)] 
MAINTAINERS: Add entry for SMBIOS

Add entry for SMBIOS in MAINTAINERS and assign myself as maintainer.

Signed-off-by: Raymond Mao <raymond.mao@riscstar.com>
2 months agoMerge patch series "Add command for getting ramsize in scripts"
Tom Rini [Sat, 7 Feb 2026 17:51:43 +0000 (11:51 -0600)] 
Merge patch series "Add command for getting ramsize in scripts"

Frank Wunderlich <frank-w@public-files.de> says:

Add command for getting ramsize in scripts

Link: https://lore.kernel.org/r/20260204184045.111808-1-linux@fw-web.de
2 months agodoc: cmd: add usage doc for memsize
Frank Wunderlich [Wed, 4 Feb 2026 18:40:44 +0000 (19:40 +0100)] 
doc: cmd: add usage doc for memsize

Add documentation for memsize command.

Signed-off-by: Frank Wunderlich <frank-w@public-files.de>
2 months agotest: cmd: add test for memsize
Frank Wunderlich [Wed, 4 Feb 2026 18:40:43 +0000 (19:40 +0100)] 
test: cmd: add test for memsize

Add a test for memsize command in same way as meminfo.

Signed-off-by: Frank Wunderlich <frank-w@public-files.de>
2 months agocmd: mem: add command for getting ram size for use in scripts
Frank Wunderlich [Wed, 4 Feb 2026 18:40:42 +0000 (19:40 +0100)] 
cmd: mem: add command for getting ram size for use in scripts

Add a command for getting detected ram size with possibility to
assign it to an environment variable.

example usage:

BPI-R4> memsize
4096 MiB
BPI-R4> memsize memsz
BPI-R4> printenv memsz
memsz=4096
BPI-R4>

board with 8GB ram:

BPI-R4> memsize
8192 MiB
BPI-R4> memsize memsz
BPI-R4> printenv memsz
memsz=8192
BPI-R4>

Signed-off-by: Frank Wunderlich <frank-w@public-files.de>
2 months agoMerge patch series "Firewall ATF and OP-TEE memory regions in Sitara"
Tom Rini [Sat, 7 Feb 2026 17:51:14 +0000 (11:51 -0600)] 
Merge patch series "Firewall ATF and OP-TEE memory regions in Sitara"

Suhaas Joshi <s-joshi@ti.com> says:

This series starts by replacing hard-coded addresses in firewall
templates that are defined in k3-binman.dtsi, by Kconfigs. Using
Kconfigs makes it easier for someone to move ATF and OP-TEE to another
location, since they wouldn't have to fiddle with the firewall
configurations in dtsi files.

The rest of the commits in this series add firewall configs to each
device's dtsi files.

I have only tested this patch series with TI boards. For non-TI Sitara
boards, respective board maintainers are requested to test the relevant
patch and confirm whether it works.

To test this, I used `k3conf <read|write> <address> [<value>]`. Both of
these operations were disallowed, as expected.

Link: https://lore.kernel.org/r/20260127081652.506357-1-s-joshi@ti.com
2 months agoarm: dts: k3-am642-phycore-binman: Configure firewall for ATF/OPTEE
Suhaas Joshi [Tue, 27 Jan 2026 08:16:52 +0000 (13:46 +0530)] 
arm: dts: k3-am642-phycore-binman: Configure firewall for ATF/OPTEE

Add firewall configurations to protect ATF and OP-TEE memory regions
from non-secure read's and write's in Phycore AM64 SOM.

Signed-off-by: Suhaas Joshi <s-joshi@ti.com>
2 months agoarm: dts: k3-am64x-binman: Configure firewall for ATF/OPTEE
Suhaas Joshi [Tue, 27 Jan 2026 08:16:51 +0000 (13:46 +0530)] 
arm: dts: k3-am64x-binman: Configure firewall for ATF/OPTEE

Add firewall configurations to protect ATF and OP-TEE memory regions
from non-secure reads and writes in AM64x.

Signed-off-by: Suhaas Joshi <s-joshi@ti.com>
2 months agoarm: dts: k3-am62a-phycore-binman: Configure firewall for ATF/OPTEE
Suhaas Joshi [Tue, 27 Jan 2026 08:16:50 +0000 (13:46 +0530)] 
arm: dts: k3-am62a-phycore-binman: Configure firewall for ATF/OPTEE

Add firewall configurations to protect ATF and OP-TEE memory regions
from non-secure read's and write's in Phycore AM62A SOM.

Signed-off-by: Suhaas Joshi <s-joshi@ti.com>
2 months agoarm: dts: k3-am62a-binman: Configure firewall for ATF/OPTEE
Suhaas Joshi [Tue, 27 Jan 2026 08:16:49 +0000 (13:46 +0530)] 
arm: dts: k3-am62a-binman: Configure firewall for ATF/OPTEE

Add firewall configurations to protect ATF and OP-TEE memory regions
from non-secure reads and writes in AM62A.

Signed-off-by: Suhaas Joshi <s-joshi@ti.com>