]> git.ipfire.org Git - thirdparty/u-boot.git/log
thirdparty/u-boot.git
4 weeks agoarm: dts: remove local copy of Ten64 board DTS
Mathew McBride [Fri, 1 May 2026 01:36:08 +0000 (11:36 +1000)] 
arm: dts: remove local copy of Ten64 board DTS

This board has been migrated to the upstream / kernel
device tree version (OF_UPSTREAM), so remove the
old 'local' copies that are no longer required.

However, the -u-boot.dtsi append needs to remain,
because the SoC fsl-ls1088a-u-boot.dtsi is required
for some devices (like PCIe controllers and DPAA2 ethernet)
to properly enumerate under U-Boot.

Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Mathew McBride <matt@traverse.com.au>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
4 weeks agoconfigs: ten64: switch to OF_UPSTREAM
Mathew McBride [Fri, 1 May 2026 01:36:07 +0000 (11:36 +1000)] 
configs: ten64: switch to OF_UPSTREAM

Two recent additions to the mainline device tree allow us
to switch away from the local U-Boot copy:

* Board/embedded controller (traverse,ten64-controller)
  is now in the mainline device tree.
* USB Hub (USB5744) connections were also added to
  the mainline device tree but not in U-Boot.

The LS1088A and Ten64 device trees in U-Boot were actually
'synced' to mainline some time ago, so the content
(except for the changes mentioned above) is identical.

Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Mathew McBride <matt@traverse.com.au>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
4 weeks agoconfigs: ten64: enable USB_ONBOARD_HUB (USB5744) option
Mathew McBride [Fri, 1 May 2026 01:36:06 +0000 (11:36 +1000)] 
configs: ten64: enable USB_ONBOARD_HUB (USB5744) option

Ten64 board revs A through C have a Microchip USB5744
hub on the board, which must be configured over I2C
at boot time to become usable.

This function has not been part of the mainline
U-Boot for this board until now, as a mainline driver
and device-tree binding is now available for the USB5744.

Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Mathew McBride <matt@traverse.com.au>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
4 weeks agoconfigs: ten64: enable OF_BOARD_FIXUP
Mathew McBride [Fri, 1 May 2026 01:36:05 +0000 (11:36 +1000)] 
configs: ten64: enable OF_BOARD_FIXUP

We have added board_fix_fdt to remove elements from U-Boot's
internal FDT related to the USB hub, so CONFIG_OF_BOARD_FIXUP
needs to be enabled to utilize it.

Signed-off-by: Mathew McBride <matt@traverse.com.au>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
4 weeks agoboard: ten64: remove USB hub references from internal FDT when needed
Mathew McBride [Fri, 1 May 2026 01:36:04 +0000 (11:36 +1000)] 
board: ten64: remove USB hub references from internal FDT when needed

More recent revisions of the Ten64 board do not have a USB Hub
(USB5744). The references to the USB5744 need to be removed in U-Boot's
internal FDT to avoid the USB5744 setup being invoked on these boards.

Reviewed-by: Peng Fan <peng.fan@nxp.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Mathew McBride <matt@traverse.com.au>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
4 weeks agoboard: ten64: add fdt fixup to hide usb hub topology
Mathew McBride [Fri, 1 May 2026 01:36:03 +0000 (11:36 +1000)] 
board: ten64: add fdt fixup to hide usb hub topology

The USB Hub (microchip,usb5744) can enter a dis-/reconnect loop
if a driver tries to re-initialise the hub over I2C.

On the Ten64 board, this process only needs to be run once
per system reset cycle, which is carried out by U-Boot.

As there are distributions shipping with the affected
driver by default, the best solution is to remove
the USB hub topology information from the FDT passed
to the operating system, so the OS won't attempt
to re-initialise the USB hub under any circumstance.

Signed-off-by: Mathew McBride <matt@traverse.com.au>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
4 weeks agoarm: gpio: include integer type definitions for gpio.h
Mathew McBride [Fri, 1 May 2026 01:36:02 +0000 (11:36 +1000)] 
arm: gpio: include integer type definitions for gpio.h

Both consumers and sub-arch specific versions of gpio.h
may reference stdint or other non-C90 type definitions.

Ensure the common ones are available by including linux/types.h
before any other headers.

This issue came to light when the usb onboard hub driver
was enabled for ten64_tfa_defconfig:

In file included from ./arch/arm/include/asm/gpio.h:2,
 from common/usb_onboard_hub.c:10:
./arch/arm/include/asm/arch/gpio.h:17:9: error: unknown type name 'ulong'
   17 |         ulong addr;
./arch/arm/include/asm/arch/gpio.h:18:9: error: unknown type name 'ulong'
   18 |         ulong size;
./arch/arm/include/asm/arch/gpio.h:19:9: error: unknown type name 'uint'
   19 |         uint ngpios;

(In this instance, the cited errors actually originate from
arch/arm/include/asm/arch-fsl-layerscape/gpio.h, which is included
by the arm top level asm/gpio.h)

Implemented as per suggestion from Quentin Schulz in Link:

Signed-off-by: Mathew McBride <matt@traverse.com.au>
Link: https://lore.kernel.org/u-boot/35038a9a-fa5a-4f9f-b34e-17cc80a7824c@cherry.de/
Signed-off-by: Peng Fan <peng.fan@nxp.com>
4 weeks agoarm: dts: layerscape: Fix SPI flash compatible string issue
Ye Li [Fri, 17 Apr 2026 14:16:37 +0000 (22:16 +0800)] 
arm: dts: layerscape: Fix SPI flash compatible string issue

When CONFIG_DM_SPI_FLASH is enabled, sf command will default find
device from DT which requires to use "jedec,spi-nor" compatible
string not obsoleted "spi-flash". So update NXP LS DTS to use
new compatible string

Signed-off-by: Ye Li <ye.li@nxp.com>
Acked-by: Peng Fan <peng.fan@nxp.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
4 weeks agoarm: dts: layerscape: Fix DT build warning in SPI nodes
Ye Li [Fri, 17 Apr 2026 14:16:36 +0000 (22:16 +0800)] 
arm: dts: layerscape: Fix DT build warning in SPI nodes

There are lots of DT warning in layerscape DTS files like:
node name for SPI buses should be 'spi' and SPI bus unit address
format error.
Update the spi node name and flash node name to avoid build warning

Signed-off-by: Ye Li <ye.li@nxp.com>
Acked-by: Peng Fan <peng.fan@nxp.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
4 weeks agoarm: dts: fsl-ls1088a: Enable USB nodes
Ye Li [Fri, 17 Apr 2026 14:15:29 +0000 (22:15 +0800)] 
arm: dts: fsl-ls1088a: Enable USB nodes

Enable USB nodes in -u-boot.dtsi. After sync dts with kernel, USB
nodes status are set to disabled. So "usb start" does not work on
ls1088ardb and ls1088aqds.

Fixes: 10ff7e6b043b ("arm: dts: fsl-ls1088a: sync usb controller nodes with Linux")
Signed-off-by: Ye Li <ye.li@nxp.com>
Tested-by: Wei Lu <w.lu@nxp.com>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
4 weeks agoarm: dts: fsl-ls1088a: Enable SD device
Ye Li [Fri, 17 Apr 2026 14:15:28 +0000 (22:15 +0800)] 
arm: dts: fsl-ls1088a: Enable SD device

Due to update of fsl-ls1088a.dtsi in previous patch, the esdhc
node is disabled, so u-boot can't to probe any eSDHC controller.

Fixes: fd4f7b0158d0 ("arm: dts: fsl-ls1088a: move and sync existing bindings to be under /soc")
Signed-off-by: Ye Li <ye.li@nxp.com>
Tested-by: Wei Lu <w.lu@nxp.com>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
4 weeks agoarm: dts: fsl-ls1088a: Set dpmac nodes default to disabled
Ye Li [Fri, 17 Apr 2026 14:14:37 +0000 (22:14 +0800)] 
arm: dts: fsl-ls1088a: Set dpmac nodes default to disabled

Disable ethernet controller dpmac nodes in fsl-ls1088a.dtsi. Board
dts is responsible to enable them. Otherwise will meet failure from
ldpaa_eth driver on LS1088AQDS board, because only few dpmac
controllers can be enabled on this board.

Signed-off-by: Ye Li <ye.li@nxp.com>
Tested-by: Wei Lu <w.lu@nxp.com>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
4 weeks agoarm: dts: fsl-ls1088a-qds: Fix missed -u-boot.dtsi
Ye Li [Fri, 17 Apr 2026 14:14:36 +0000 (22:14 +0800)] 
arm: dts: fsl-ls1088a-qds: Fix missed -u-boot.dtsi

LS1088AQDS u-boot contains multiple DTB files:
fsl-ls1088a-qds-21-x.dtb and fsl-ls1088a-qds-29-x.dtb.
It does not use default device tree fsl-ls1088a-qds.dtb

However, the nodes updated in fsl-ls1088a-qds-u-boot.dtsi are not
included for fsl-ls1088a-qds-21-x.dts and fsl-ls1088a-qds-29-x.dts,
so fail to get any output from serial.

Signed-off-by: Ye Li <ye.li@nxp.com>
Tested-by: Wei Lu <w.lu@nxp.com>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
4 weeks agoarm: layerscape: Check zero size memory bank before lmb_add
Ye Li [Thu, 16 Apr 2026 13:48:38 +0000 (21:48 +0800)] 
arm: layerscape: Check zero size memory bank before lmb_add

In layerspace's lmb_arch_add_memory implementation, all memory bank
are added to lmb, even some is with zero size. This will cause lmb
treating it as overlap with available memory by lmb_addrs_overlap
and merge with available memory. Finally causing available memory
start address changed to 0.

For example, on LX2160, before zero memory bank added to lmb, there
are two available memory regions:
  - region 0, start 0x80000000, size 0x7be00000
  - region 1, start 0x2080000000, size 0x700000000
After zero size memory bank added, merge to one region:
  - region 0, start 0, size 0x2780000000
This wrong new region causes efi_memory_init issue when allocating bounce
buffer because of conflict address (with uboot reserved) is allocated.

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>
4 weeks agopowerpc: fix dead default for SYS_L3_SIZE
Julian Braha [Tue, 14 Apr 2026 23:18:33 +0000 (00:18 +0100)] 
powerpc: fix dead default for SYS_L3_SIZE

The 'default ... if SYS_L3_SIZE_512KB' statement is written twice, making
the second instance dead code.

Based on the context, I believe the author of the code intended to set a
default value of '1048576' when SYS_L3_SIZE_1024KB is set.

This dead code was detected by kconfirm, a static analysis tool for
Kconfig.

Fixes: b85d75951fe ("powerpc: Migrate SYS_L3_SIZE to Kconfig")
Signed-off-by: Julian Braha <julianbraha@gmail.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
4 weeks agommc: msm_sdhci: Use max-frequency to get clock rate 958/head
Varadarajan Narayanan [Thu, 16 Apr 2026 05:11:51 +0000 (10:41 +0530)] 
mmc: msm_sdhci: Use max-frequency to get clock rate

msm_sdc_clk_init() uses clock-frequency to get the clock rate for SDC
clocks. However, the DT files seem to use max-frequency for the same.
Since msm_sdc_clk_init() doesn't find clock-frequency in the DT, it sets
201500000 as the clock rate and this results in timeout errors on IPQ
platforms.

Additionally, clock-frequency is not DT bindings compliant. Hence, get
clock rate using DT bindings compliant max-frequency.

Signed-off-by: Varadarajan Narayanan <varadarajan.narayanan@oss.qualcomm.com>
Reviewed-by: Sumit Garg <sumit.garg@oss.qualcomm.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
4 weeks agopower: regulator: Correct Kconfig for PFUZE100
Peng Fan [Sat, 18 Apr 2026 12:37:35 +0000 (20:37 +0800)] 
power: regulator: Correct Kconfig for PFUZE100

Use CONFIG_$(PHASE_)DM_REGULATOR_PFUZE100 as the build condition for
pfuze100 regulator driver.
Add Kconfig option for SPL_DM_REGULATOR_PFUZE100.
To avoid break current platforms, set the Kconfig default value same
as PMIC_PFUZE100.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
4 weeks agopower: regulator: pfuze100: support non-independent mode
Peng Fan [Sat, 18 Apr 2026 12:37:34 +0000 (20:37 +0800)] 
power: regulator: pfuze100: support non-independent mode

Some BUCKs could work in single/dual phase mode, not in independent
mode. In single/dual phase mode, registers of both regulators,
must be identically set. So configure mode and value for both BUCKs.

CONF registers are not touched, leave them as default OTP settings.

PFUZE100/200 SW3A/B, could work in single/dual phase mode, so introduce
a new macro by adding a pointer to the SW3B descriptor.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
4 weeks agopower: regulator: pfuze100: support high output voltage mode
Peng Fan [Sat, 18 Apr 2026 12:37:33 +0000 (20:37 +0800)] 
power: regulator: pfuze100: support high output voltage mode

Some PFUZE regulators can operate in either low or high output voltage mode,
with different minimum voltages and voltage step sizes selected by a hardware
control bit. However, the current PFUZE100 regulator driver assumes low output
voltage mode only, resulting in incorrect voltage calculation and programming
when high voltage mode is enabled.

Extend the regulator descriptor to describe high output voltage mode by adding
a mask to detect the mode and a dedicated voltage description (min_uV and
step size). Update voltage get/set handling to dynamically select the correct
voltage parameters based on the high voltage mode bit.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
4 weeks agopower: regulator: pfuze100: Fix min_uV usage
Peng Fan [Sat, 18 Apr 2026 12:37:32 +0000 (20:37 +0800)] 
power: regulator: pfuze100: Fix min_uV usage

regulator-min-microvolt in device tree is not always match the minimal
voltage in the pmic datasheet, direclty using the min value from device
tree as base may cause wrong voltage settings being written.

Directly use the min_uV from datasheet to avoid wrong settings.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
4 weeks agopower: regulator: tps65941: Enable FPWM bits
Neha Malcom Francis [Tue, 21 Apr 2026 08:21:45 +0000 (13:51 +0530)] 
power: regulator: tps65941: Enable FPWM bits

Depending on the phase selection (single or multi), the FPWM bits
configured forces the regulator to operate in PWM mode. In case of
multi-phase selection, the FPWM_MP bits enforce the regulator to also
operate in multi-phase. This fixes correct multi-phase operation.

While at this, correct incorrect macro alignment as well.

Fixes: 065a452ae6a1 ("power: regulator: tps65941: add regulator support")
Link: https://www.ti.com/lit/ds/symlink/tps6594-q1.pdf
Signed-off-by: Keerthy <j-keerthy@ti.com>
Signed-off-by: Takuma Fujiwara <t-fujiwara1@ti.com>
Signed-off-by: Neha Malcom Francis <n-francis@ti.com>
Reviewed-by: Udit Kumar <u-kumar1@ti.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
4 weeks agoMerge patch series "binman: Fix preload signing with encrypted FIT"
Tom Rini [Tue, 5 May 2026 16:37:16 +0000 (10:37 -0600)] 
Merge patch series "binman: Fix preload signing with encrypted FIT"

Yan WANG <yan.wang@softathome.com> says:

This series improves the reliability and efficiency of binman preload
header generation and test it against an encrypted FIT image signed with
a preload header.

When a preload header references other entries (e.g. an encrypted FIT)
through the collection etype, the referenced entries may be rebuilt
multiple times during binman processing. This becomes problematic when
the referenced entry produces non-deterministic output, such as FIT
encryption using random IVs or timestamps, since rebuilding the entry
changes the data.

This series ensures that referenced entries are built only once and that
preload signing is performed after all data is collected. It also avoids
unnecessary repacking or repeated signing operations by the preload.

The changes include:
  * generate preload header placeholders in ObtainContents() and sign
    data only once in ProcessContentsUpdate()
  * mark referenced entries as build_done in the collection etype to
    avoid rebuilding data
  * add a functional test for signing an encrypted FIT with a preload
    header

Link: https://lore.kernel.org/r/20260417083050.499955-1-yan.wang@softathome.com
4 weeks agotools: binman: Test signing an encrypted FIT with a preload header
Paul HENRYS [Fri, 17 Apr 2026 08:30:50 +0000 (10:30 +0200)] 
tools: binman: Test signing an encrypted FIT with a preload header

Add a test to verify the preload header correctly signs an encrypted
FIT. This test exercises the case where encryption uses random IVs that
would change between mkimage calls.

Signed-off-by: Paul HENRYS <paul.henrys_ext@softathome.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
4 weeks agobinman: collection: Set build_done on referenced entries
yan wang [Fri, 17 Apr 2026 08:30:49 +0000 (10:30 +0200)] 
binman: collection: Set build_done on referenced entries

The collection etype uses phandles in the 'content' property to
reference other entries. Mark each referenced entry with build_done
to avoid rebuilding the same entry data multiple times.

This is important for cases where rebuilding may change the data
content, e.g. due to timestamps or random IVs in encryption.

Refactor GetContentsByPhandle() to return both the entry object and
its data.

Signed-off-by: yan wang <yan.wang@softathome.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
4 weeks agobinman: Generate preload header and sign data only once
Paul HENRYS [Fri, 17 Apr 2026 08:30:48 +0000 (10:30 +0200)] 
binman: Generate preload header and sign data only once

To optimize preload generation, generate the header and signatures only
after all data has been collected in ProcessContentsUpdate(). This
avoids signing the data multiple times.

Since header_size is known upfront (from __init__), create a placeholder
in `ObtainContents()` to avoid an extra packing pass when
ProcessContentsUpdate() detects a size change.

This reduces unnecessary repacking and signing operations.

Signed-off-by: Paul HENRYS <paul.henrys_ext@softathome.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
4 weeks agoconfigs: phycore_am62x_r5_ethboot: Drop duplicate CONFIG entries
Aristo Chen [Tue, 21 Apr 2026 07:44:40 +0000 (07:44 +0000)] 
configs: phycore_am62x_r5_ethboot: Drop duplicate CONFIG entries

CONFIG_SPL_MMC=n and CONFIG_SPL_DM_SPI=n are each listed twice in the
defconfig. Remove the redundant occurrences so each option appears only
once.

Signed-off-by: Aristo Chen <aristo.chen@canonical.com>
4 weeks agoconfigs: phycore_am62ax_r5_ethboot: Drop duplicate CONFIG_SPL_MMC
Aristo Chen [Tue, 21 Apr 2026 07:44:39 +0000 (07:44 +0000)] 
configs: phycore_am62ax_r5_ethboot: Drop duplicate CONFIG_SPL_MMC

CONFIG_SPL_MMC=n is listed twice in the defconfig. Remove the redundant
occurrence so each option appears only once.

Signed-off-by: Aristo Chen <aristo.chen@canonical.com>
4 weeks agoconfigs: r8a78000_ironhide: Drop duplicate CONFIG_SCMI_FIRMWARE
Aristo Chen [Tue, 21 Apr 2026 07:44:38 +0000 (07:44 +0000)] 
configs: r8a78000_ironhide: Drop duplicate CONFIG_SCMI_FIRMWARE

CONFIG_SCMI_FIRMWARE=y is listed twice in the defconfig. Remove the
redundant occurrence so each option appears only once.

Signed-off-by: Aristo Chen <aristo.chen@canonical.com>
4 weeks agoMerge patch series "configs: toradex: Enable EFI"
Tom Rini [Tue, 5 May 2026 16:36:08 +0000 (10:36 -0600)] 
Merge patch series "configs: toradex: Enable EFI"

Francesco Dolcini <francesco.dolcini@toradex.com> says:

Enable standard EFI support for all the arm64 Toradex boards, as
required for booting standard aarch64 Linux distribution, following the
ARM recommendations for SystemReady compliance.

The RTC used on these boards is not currently supported by U-Boot,
therefore it is not enabled at the moment.

Link: https://developer.arm.com/documentation/DUI1101/4-5/Configure-U-Boot-for-SystemReady
Link: https://lore.kernel.org/r/20260424104213.303752-1-francesco@dolcini.it
4 weeks agoconfigs: verdin-imx95: Enable EFI related options
Francesco Dolcini [Fri, 24 Apr 2026 10:42:12 +0000 (12:42 +0200)] 
configs: verdin-imx95: Enable EFI related options

Enable EFI related options, as suggested for booting standard aarch64
Linux distribution, following the ARM recommendations for SystemReady
compliance [1].

The RTC used on this board is not currently supported by U-Boot,
therefore it is not enabled at the moment.

Link: https://developer.arm.com/documentation/DUI1101/4-5/Configure-U-Boot-for-SystemReady
Signed-off-by: Francesco Dolcini <francesco.dolcini@toradex.com>
4 weeks agoconfigs: verdin-imx8mp: Enable EFI related options
Francesco Dolcini [Fri, 24 Apr 2026 10:42:11 +0000 (12:42 +0200)] 
configs: verdin-imx8mp: Enable EFI related options

Enable EFI related options, as suggested for booting standard aarch64
Linux distribution, following the ARM recommendations for SystemReady
compliance [1].

The RTC used on this board is not currently supported by U-Boot,
therefore it is not enabled at the moment.

Link: https://developer.arm.com/documentation/DUI1101/4-5/Configure-U-Boot-for-SystemReady
Signed-off-by: Francesco Dolcini <francesco.dolcini@toradex.com>
4 weeks agoconfigs: verdin-imx8mm: Enable EFI related options
Francesco Dolcini [Fri, 24 Apr 2026 10:42:10 +0000 (12:42 +0200)] 
configs: verdin-imx8mm: Enable EFI related options

Enable EFI related options, as suggested for booting standard aarch64
Linux distribution, following the ARM recommendations for SystemReady
compliance [1].

The RTC used on this board is not currently supported by U-Boot,
therefore it is not enabled at the moment.

Link: https://developer.arm.com/documentation/DUI1101/4-5/Configure-U-Boot-for-SystemReady
Signed-off-by: Francesco Dolcini <francesco.dolcini@toradex.com>
4 weeks agoconfigs: verdin-am62p: Enable EFI related options
Francesco Dolcini [Fri, 24 Apr 2026 10:42:09 +0000 (12:42 +0200)] 
configs: verdin-am62p: Enable EFI related options

Enable EFI related options, as suggested for booting standard aarch64
Linux distribution, following the ARM recommendations for SystemReady
compliance [1].

The RTC used on this board is not currently supported by U-Boot,
therefore it is not enabled at the moment.

Link: https://developer.arm.com/documentation/DUI1101/4-5/Configure-U-Boot-for-SystemReady
Signed-off-by: Francesco Dolcini <francesco.dolcini@toradex.com>
4 weeks agoconfigs: verdin-am62: Enable EFI related options
Francesco Dolcini [Fri, 24 Apr 2026 10:42:08 +0000 (12:42 +0200)] 
configs: verdin-am62: Enable EFI related options

Enable EFI related options, as suggested for booting standard aarch64
Linux distribution, following the ARM recommendations for SystemReady
compliance [1].

The RTC used on this board is not currently supported by U-Boot,
therefore it is not enabled at the moment.

Link: https://developer.arm.com/documentation/DUI1101/4-5/Configure-U-Boot-for-SystemReady
Signed-off-by: Francesco Dolcini <francesco.dolcini@toradex.com>
4 weeks agoconfigs: toradex-smarc-imx95: Enable EFI related options
Francesco Dolcini [Fri, 24 Apr 2026 10:42:07 +0000 (12:42 +0200)] 
configs: toradex-smarc-imx95: Enable EFI related options

Enable EFI related options, as suggested for booting standard aarch64
Linux distribution, following the ARM recommendations for SystemReady
compliance [1].

The RTC used on this board is not currently supported by U-Boot,
therefore it is not enabled at the moment.

Link: https://developer.arm.com/documentation/DUI1101/4-5/Configure-U-Boot-for-SystemReady
Signed-off-by: Francesco Dolcini <francesco.dolcini@toradex.com>
4 weeks agoconfigs: toradex-smarc-imx8mp: Enable EFI related options
Francesco Dolcini [Fri, 24 Apr 2026 10:42:06 +0000 (12:42 +0200)] 
configs: toradex-smarc-imx8mp: Enable EFI related options

Enable EFI related options, as suggested for booting standard aarch64
Linux distribution, following the ARM recommendations for SystemReady
compliance [1].

The RTC used on this board is not currently supported by U-Boot,
therefore it is not enabled at the moment.

Link: https://developer.arm.com/documentation/DUI1101/4-5/Configure-U-Boot-for-SystemReady
Signed-off-by: Francesco Dolcini <francesco.dolcini@toradex.com>
4 weeks agoconfigs: colibri-imx8x: Enable EFI
Francesco Dolcini [Fri, 24 Apr 2026 10:42:05 +0000 (12:42 +0200)] 
configs: colibri-imx8x: Enable EFI

Enable standard EFI support, as required for booting standard aarch64
Linux distribution, following the ARM recommendations for SystemReady
compliance [1].

The RTC used on this board is not currently supported by U-Boot,
therefore it is not enabled at the moment.

Link: https://developer.arm.com/documentation/DUI1101/4-5/Configure-U-Boot-for-SystemReady
Signed-off-by: Francesco Dolcini <francesco.dolcini@toradex.com>
4 weeks agoconfigs: aquila-am69: Enable EFI related options
Francesco Dolcini [Fri, 24 Apr 2026 10:42:04 +0000 (12:42 +0200)] 
configs: aquila-am69: Enable EFI related options

Enable EFI related options, as suggested for booting standard aarch64
Linux distribution, following the ARM recommendations for SystemReady
compliance [1].

The RTC used on this board is not currently supported by U-Boot,
therefore it is not enabled at the moment.

Link: https://developer.arm.com/documentation/DUI1101/4-5/Configure-U-Boot-for-SystemReady
Signed-off-by: Francesco Dolcini <francesco.dolcini@toradex.com>
4 weeks agoconfigs: apalis-imx8: Enable EFI
Francesco Dolcini [Fri, 24 Apr 2026 10:42:03 +0000 (12:42 +0200)] 
configs: apalis-imx8: Enable EFI

Enable standard EFI support, as required for booting standard aarch64
Linux distribution, following the ARM recommendations for SystemReady
compliance [1].

The RTC used on this board is not currently supported by U-Boot,
therefore it is not enabled at the moment.

Link: https://developer.arm.com/documentation/DUI1101/4-5/Configure-U-Boot-for-SystemReady
Signed-off-by: Francesco Dolcini <francesco.dolcini@toradex.com>
4 weeks agoefi_mem_sort: use list_for_each_entry_safe instead
Randolph Sapp [Wed, 22 Apr 2026 17:09:45 +0000 (12:09 -0500)] 
efi_mem_sort: use list_for_each_entry_safe instead

Use list_for_each_entry_safe and comparisons against the current and
next efi_mem_desc. This reduces the computation required for merging
regions, prevents unnecessary additional iterations of the list, and
requires less temporary values.

Signed-off-by: Randolph Sapp <rs@ti.com>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
4 weeks agoefi_selftest_memory: check for duplicates first
Randolph Sapp [Wed, 22 Apr 2026 17:09:44 +0000 (12:09 -0500)] 
efi_selftest_memory: check for duplicates first

Check for duplicate memory mappings before reporting any incorrect
attributes. Could be that second allocation has the correct type while
the first doesn't. Knowing there is a duplicate in this scenario is
more helpful than just reporting the first mismatch.

Signed-off-by: Randolph Sapp <rs@ti.com>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
4 weeks agoefi_dt_fixup: use fdtdec_get_bool
Randolph Sapp [Wed, 22 Apr 2026 17:09:43 +0000 (12:09 -0500)] 
efi_dt_fixup: use fdtdec_get_bool

Use the more straightforward fdtdec_get_bool instead of fdt_getprop and
a return code check.

Signed-off-by: Randolph Sapp <rs@ti.com>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Reviewed-by: Anshul Dalal <anshuld@ti.com>
Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Reviewed-by: Simon Glass <sjg@chromium.org>
4 weeks agolmb: allocation flags macro documentation
Randolph Sapp [Wed, 22 Apr 2026 17:09:41 +0000 (12:09 -0500)] 
lmb: allocation flags macro documentation

Update the allocation flags inline documentation to follow the kernel
object like macro documentation specification.

Use active voice for the short descriptions.

Signed-off-by: Randolph Sapp <rs@ti.com>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
4 weeks agocmd: eficonfig: adjust struct eficonfig_entry, field key
Heinrich Schuchardt [Wed, 29 Apr 2026 16:56:29 +0000 (18:56 +0200)] 
cmd: eficonfig: adjust struct eficonfig_entry, field key

The number EFICONFIG_ENTRY_NUM_MAX - 1 must be printable
to field key of struct eficonfig_entry.

Fixes: 1f0583beeb32 ("eficonfig: set EFICONFIG_ENTRY_NUM_MAX to INT_MAX - 1")
Fixes: 23aa0502a4b9 ("eficonfig: increase the number of menu entries")
Addresses-Coverity-ID: 583414 - Out-of-bounds write
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
4 weeks agoefi_loader: initialize variables in efi_dp_from_http()
Heinrich Schuchardt [Wed, 29 Apr 2026 15:40:00 +0000 (17:40 +0200)] 
efi_loader: initialize variables in efi_dp_from_http()

When using lwIP, efi_dp_from_http() may fail to initialize ip or mask.
Initialize the variables before the call.

Addresses-Coverity-ID: 645840 - Uninitialized variables (UNINIT)
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
4 weeks agoMerge branch 'master' of https://source.denx.de/u-boot/custodians/u-boot-sh
Tom Rini [Tue, 5 May 2026 14:16:52 +0000 (08:16 -0600)] 
Merge branch 'master' of https://source.denx.de/u-boot/custodians/u-boot-sh

DT clean ups, Kconfig clean up, R-Car Gen5 remoteproc and watchdog
driver, and R-Car Gen5 CM33 initial build support.

4 weeks agoarm64: renesas: Add Cortex-M33 build option to R-Car Gen5
Marek Vasut [Mon, 27 Apr 2026 01:10:15 +0000 (03:10 +0200)] 
arm64: renesas: Add Cortex-M33 build option to R-Car Gen5

The R-Car Gen5 SoCs contains Cortex-M33, Cortex-R52 and Cortex-A720AE
cores. Add U-Boot build options for the Cortex-M33 core.

Since the Cortex-M33 core is a 32bit core, select V8M and ARM64 for
RCAR64 accordingly. Select TMU timer on the 32bit core, where it is
used instead of the ARMv8 timer. Adjust TMU timer base address to match
the address map of the Cortex-M33 core. Disable unused OF_BOARD_SETUP
as well as unavailable POSITION_INDEPENDENT configuration options.

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
Reviewed-by: Udit Kumar <u-kumar1@ti.com>
4 weeks agowatchdog: Add Renesas R-Car Gen5 window watchdog driver
Marek Vasut [Mon, 4 May 2026 17:49:39 +0000 (19:49 +0200)] 
watchdog: Add Renesas R-Car Gen5 window watchdog driver

Add support of Renesas R-Car Gen5 window watchdog timer. Timeout
configuration is derived from CONFIG_WATCHDOG_TIMEOUT_MSECS, which
is more accurate than the 1-second granularity 'timeout' passed to
.start callback.

Reviewed-by: Stefan Roese <stefan.roese@mailbox.org>
Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
4 weeks agoremoteproc: renesas: Add Renesas R-Car Gen5 remote processor driver
Marek Vasut [Wed, 15 Apr 2026 22:12:43 +0000 (00:12 +0200)] 
remoteproc: renesas: Add Renesas R-Car Gen5 remote processor driver

Add R-Car Gen5 RSIP controller remoteproc driver capable of starting
the SCP, Cortex-R52 and Cortex-A720 cores in Renesas R-Car R8A78000
X5H SoC. The SCP core is started by releasing the core from reset,
the Cortex-R52 and Cortex-A720 are started using the SCP SCMI call.
The entry point for SCP core is fixed to its STCM, entry points for
Cortex-R52 and Cortex-A720 are set during rproc load.

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
4 weeks agoarm: renesas: Fix Kconfig indent
Marek Vasut [Mon, 20 Apr 2026 01:22:33 +0000 (03:22 +0200)] 
arm: renesas: Fix Kconfig indent

Indent using tabs and two spaces for help text. No functional change.

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
4 weeks agoarm: dts: renesas: Remove duplicate AVB pinmux assignment on V3M
Marek Vasut [Mon, 20 Apr 2026 01:22:12 +0000 (03:22 +0200)] 
arm: dts: renesas: Remove duplicate AVB pinmux assignment on V3M

Both R-Car V3M Eagle and V3MSK U-Boot DT extras contain AVB pinmux
assignment, which is a leftover from before the same pinmux was part
of upstream DTs. Remove the duplicate AVB pinmux assignment in favor
of the upstream DT content. No functional change.

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
4 weeks agoarm: dts: renesas: Clean up RPC DT nodes
Marek Vasut [Mon, 20 Apr 2026 01:21:10 +0000 (03:21 +0200)] 
arm: dts: renesas: Clean up RPC DT nodes

Remove duplicate properties which are present both in arch/arm/dts/
and upstream dts/upstream/src/arm64/renesas/ in favor of those in
upstream DTs. Since those are duplicates, this causes no functional
change. Remove unused num-cs and bank-width DT properties.

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
4 weeks agoMerge branch 'master' of git://git.denx.de/u-boot-coldfire
Tom Rini [Mon, 4 May 2026 20:41:59 +0000 (14:41 -0600)] 
Merge branch 'master' of git://git.denx.de/u-boot-coldfire

- stmark2 / mcf5441x updates

4 weeks agofat: initialize ret in disk_rw()
Heinrich Schuchardt [Wed, 29 Apr 2026 15:54:18 +0000 (17:54 +0200)] 
fat: initialize ret in disk_rw()

If fat_sect_size = 0 and nr_sect = 0, the value of ret is never initialized.
A random return value is returned.

Initialize ret to 0.

Addresses-Coverity-ID: - 645495 Uninitialized scalar variable
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
4 weeks agom68k: set proper u-boot image size for initial boot
Angelo Dureghello [Mon, 30 Mar 2026 07:09:54 +0000 (09:09 +0200)] 
m68k: set proper u-boot image size for initial boot

There is a value of 256K hardcoded as u-boot image size. This
produce bank tty as soon as the image size grows over the limit.
Fix it by using value preset by CONFIG_SYS_MONITOR_LEN.

Signed-off-by: Angelo Dureghello <angelo@kernel-space.org>
4 weeks agom68k: mcf5441x: create stub to use imx drivers
Angelo Dureghello [Mon, 23 Mar 2026 23:14:24 +0000 (00:14 +0100)] 
m68k: mcf5441x: create stub to use imx drivers

Some NXP imx hardware ip module as the esdhc controller are exactly the
same in some new ColdFire cpus. For the specific case, mcf5441x needs to
use the existing fsl_esdhc_imx.c driver for the esdhc device.

Create a stub to be able to use NXP "imx" serie drivers as the
fsl_esdhc_imx in the ColdFire architecture.

Signed-off-by: Angelo Dureghello <angelo@kernel-space.org>
4 weeks agoconfigs: stmark2: add bdinfo command
Angelo Dureghello [Tue, 31 Mar 2026 18:11:11 +0000 (20:11 +0200)] 
configs: stmark2: add bdinfo command

Enable bdinfo command.

Signed-off-by: Angelo Dureghello <angelo@kernel-space.org>
---
Changes in v2:
- recreated by make menuconfig

4 weeks agoconfigs: stmark2: add support for mmc
Angelo Dureghello [Mon, 23 Mar 2026 21:39:02 +0000 (22:39 +0100)] 
configs: stmark2: add support for mmc

Add support for mmc.

Signed-off-by: Angelo Dureghello <angelo@kernel-space.org>
---
Changes in v2:
- recreated by make menuconfig

4 weeks agommc: Kconfig: allows m68k to use esdhc imx driver
Angelo Dureghello [Mon, 23 Mar 2026 22:11:21 +0000 (23:11 +0100)] 
mmc: Kconfig: allows m68k to use esdhc imx driver

Allow cpu families as mcf5441x (m68k) to use the fsl_esdhc_imx driver
since the hardware ip module is the same.

Signed-off-by: Angelo Dureghello <angelo@kernel-space.org>
---
Changes in v2:
- moved before menuconfig changes

4 weeks agoboard: stmark2: remove old garbage
Angelo Dureghello [Thu, 16 Apr 2026 12:04:26 +0000 (14:04 +0200)] 
board: stmark2: remove old garbage

Remove old erroneous garbage.

Signed-off-by: Angelo Dureghello <angelo@kernel-space.org>
4 weeks agoboard: stmark2: add sd boot command
Angelo Dureghello [Mon, 23 Mar 2026 21:32:23 +0000 (22:32 +0100)] 
board: stmark2: add sd boot command

Add command to boot from sd.

Signed-off-by: Angelo Dureghello <angelo@kernel-space.org>
4 weeks agom68k: dts: stmark2: enable esdhc
Angelo Dureghello [Mon, 23 Mar 2026 21:19:25 +0000 (22:19 +0100)] 
m68k: dts: stmark2: enable esdhc

Enable esdhc device.

Signed-off-by: Angelo Dureghello <angelo@kernel-space.org>
4 weeks agom68k: dts: mcf5441x: add mmc device for mcf5441x
Angelo Dureghello [Mon, 23 Mar 2026 21:12:12 +0000 (22:12 +0100)] 
m68k: dts: mcf5441x: add mmc device for mcf5441x

Add mmc support for the mcf5441x family. There is only one esdhc
controller for this cpu family.

Signed-off-by: Angelo Dureghello <angelo@kernel-space.org>
4 weeks agocommon: memsize: fix occasionally failing alias probing
Emanuele Ghidoli [Wed, 29 Apr 2026 10:03:56 +0000 (12:03 +0200)] 
common: memsize: fix occasionally failing alias probing

probe_ram_size_by_alias() detects whether a probe address still aliases
a lower address by writing through one address and reading through the
other.

On i.MX95 this occasionally reported a false non-alias when the alias
read happened immediately after the write.

A memory barrier alone, mb(), was tested but did not make the failure go
away. This suggests that ordering the CPU accesses is not sufficient for
this probe, likely because the issue is in the path to the memory
controller rather than in the core itself.

Read the written address back before checking the alias address. This
appears to force the write to become observable at the probe address
before using the alias read to decide whether the tested address range
exists.

If the readback does not match the written pattern, restore the saved
value and continue with the next check. This keeps the probe robust for
addresses that do not reliably retain the test pattern.

Fixes: 0977448b45e2 ("common: memsize: add RAM size probe based on alias detection")
Signed-off-by: Emanuele Ghidoli <emanuele.ghidoli@toradex.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
4 weeks agobloblist: fix pointer comparison in bloblist_apply_blobs()
Michal Simek [Wed, 29 Apr 2026 06:29:53 +0000 (08:29 +0200)] 
bloblist: fix pointer comparison in bloblist_apply_blobs()

The rec_from_blob() function returns a pointer, but the code was
comparing it using "rec <= 0" which is incorrect for pointer types.
Pointers should be compared using "== NULL" or "!= NULL".

Addresses-Coverity-ID: CID 645841: Incorrect expression (BAD_COMPARE)
Signed-off-by: Michal Simek <michal.simek@amd.com>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Reviewed-by: Raymond Mao <raymondmaoca@gmail.com>
4 weeks agofdt: check fdt_pack() return value in fdtdec_apply_bloblist_dtos()
Michal Simek [Wed, 29 Apr 2026 06:22:08 +0000 (08:22 +0200)] 
fdt: check fdt_pack() return value in fdtdec_apply_bloblist_dtos()

The fdt_pack() function can return an error code, but its return value
was not being checked. Add proper error handling to propagate any
failure.

Also fix typo in comment: "Shink" -> "Shrink".

Addresses-Coverity-ID: CID 645839: Error handling issues (CHECKED_RETURN)
Signed-off-by: Michal Simek <michal.simek@amd.com>
Reviewed-by: Alexander Sverdlin <alexander.sverdlin@siemens.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Raymond Mao <raymondmaoca@gmail.com>
4 weeks ago.mailmap: Update my email address
Simon Glass [Mon, 4 May 2026 14:58:16 +0000 (08:58 -0600)] 
.mailmap: Update my email address

Add a .mailmap entry so my sjg@chromium.org address is used for all
email.

Suggested-by: Quentin Schulz <quentin.schulz@cherry.de>
Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Quentin Schulz <quentin.schulz@cherry.de>
Tested-by: Quentin Schulz <quentin.schulz@cherry.de>
4 weeks agoboard: toradex: Quote variables in `test` cmd expression
Franz Schnyder [Tue, 31 Mar 2026 08:10:10 +0000 (10:10 +0200)] 
board: toradex: Quote variables in `test` cmd expression

With correct POSIX handling, unquoted empty variables can turn the
expression like
test -n ${fdtfile}
into
test -n

The POSIX handling for single argument `test` evaluates it as true,
so the fallback initialization will be skipped unexpectedly.
Quoting variable expansions in `test` expressions will always result in
correct behavior for empty and non-empty values.
This change was triggered by
commit 8b0619579b22 ("cmd: test: fix handling of single-argument form of test")
The aim is to have a less fragile codebase that is not dependent on a
quirk of the shell implementation.

Use quoted variable expansions in `test` expressions throughout.

Signed-off-by: Franz Schnyder <franz.schnyder@toradex.com>
Acked-by: Francesco Dolcini <francesco.dolcini@toradex.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
5 weeks agoMerge branch 'master' of https://source.denx.de/u-boot/custodians/u-boot-sunxi
Tom Rini [Fri, 1 May 2026 14:12:31 +0000 (08:12 -0600)] 
Merge branch 'master' of https://source.denx.de/u-boot/custodians/u-boot-sunxi

Apologies for the delay, but please pull those sunxi changes into
v2026.07. Nothing earth shattering, mostly minor improvements like
better SPL power LED support, and fixes to some H616 DRAM setup. Also
some more forward looking enhancement for the SPI code. I also pulled in
Richard's raw NAND flash improvements for the H6/H616 SoC, though this
lacks proper peer testing due to the lack of mainline support for any
board actually employing those chips.

5 weeks agoMerge tag 'efi-2026-07-rc2' of https://source.denx.de/u-boot/custodians/u-boot-efi
Tom Rini [Fri, 1 May 2026 14:12:13 +0000 (08:12 -0600)] 
Merge tag 'efi-2026-07-rc2' of https://source.denx.de/u-boot/custodians/u-boot-efi

Pull request efi-2026-07-rc2

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

Documentation:

* .clang-format description
* qemu-arm: describe secure state steps
* mention that CONFIG_BOOTSTD_DEFAULTS provides network features when NET=y
* ti: k3: describe fTPM support

UEFI:

* cmd/bootefi: move efi_init_obj_list() to the start of do_bootefi
* correct return value of efi_bootmgr_run()
* correct efi_binary_run_dp() return value
* centralize messaging for efi_init_obj_list
* correct Kconfig dependencies for EFI_HTTP_BOOT

Others:

* .clang-format: add U-Boot specific for each macros

# -----BEGIN PGP SIGNATURE-----
#
# iQIzBAABCAAdFiEEbcT5xx8ppvoGt20zxIHbvCwFGsQFAmn0hjwACgkQxIHbvCwF
# GsRDVQ/+LADSJv/WxhsEayOe1f0H0wp42bssPZikyUxHGr6azNHjgngw2sExfFt0
# YE9j3HUclZy0LLlsykUk8f6uzHsL4DTLS1pqwoi1tYX/szotvW6fP5eUUxkUD06Y
# GYx8ub+Niq8F5/wT7VYj4cBxs8Pl3Zql4vp0nlBFdgxH0D9APH6ORucjNawa+vCv
# a7yqzSv9vyJXdsOKxpusfrcsz8pdd8UqXRmTwgPxarc8g0gqieLAwP/bECEeq5ZR
# FSKrWF9qYrLUEBVlwUx6jEVgq9JvzL1FP8p9w+WMdP++ani7ytaqL40KGorHm1mU
# JAwaDdWiRgodYGRNoP5aPZNvx1o+e0dRoioF2cL9Eob+6pXG053dN5VVZUgMfGPf
# 9xHfpAI47y+EvSPZEe1T/m7wAIOTBCP58rJGgTXvlCL1+dc3X4Ez68x5zcDMrJF/
# 0QnuAoaZS+XgyWwsCOR9cGHSzNT3rR3Wx/f2lKXklbCMQ+C+sp5UkRFNvYrhCqnk
# tg+sWH54oEKKQ0dTwGG+tsFhn8lsdXzhRKl1jN7w4DVY/R9YZu776biU3yzortfI
# ymbFmfOGmcPSD+lO7S1w+64zjvwnJT+rAzMLuYr3bIuhWpS4rd2phsEyLfcDSXwc
# 51imC2PSnp7Mx51F5qjCXligYC0kHh3BHpxxZok/fHjUVzx2c98=
# =RLJL
# -----END PGP SIGNATURE-----
# gpg: Signature made Fri 01 May 2026 04:53:48 AM CST
# gpg:                using RSA key 6DC4F9C71F29A6FA06B76D33C481DBBC2C051AC4
# gpg: Good signature from "Heinrich Schuchardt <xypron.glpk@gmx.de>" [unknown]
# gpg:                 aka "[jpeg image of size 1389]" [unknown]
# gpg: WARNING: This key is not certified with a trusted signature!
# gpg:          There is no indication that the signature belongs to the owner.
# Primary key fingerprint: 6DC4 F9C7 1F29 A6FA 06B7  6D33 C481 DBBC 2C05 1AC4

5 weeks agomtd: nand: raw: sunxi_spl: remove user data length reset
Richard Genoud [Fri, 27 Mar 2026 14:05:08 +0000 (15:05 +0100)] 
mtd: nand: raw: sunxi_spl: remove user data length reset

No need to reset user data length registers in SPL.

In SPL, only the first user data length register is used, so we don't
need to reset all of them.

Signed-off-by: Richard Genoud <richard.genoud@bootlin.com>
Acked-by: Andre Przywara <andre.przywara@arm.com>
5 weeks agomtd: rawnand: sunxi: introduce variable user data length
Richard Genoud [Fri, 27 Mar 2026 14:05:07 +0000 (15:05 +0100)] 
mtd: rawnand: sunxi: introduce variable user data length

In Allwinner SoCs, user data can be added in OOB before each ECC data.
For older SoCs like A10, the user data size was the size of a register
(4 bytes) and was mandatory before each ECC step.
So, the A10 OOB Layout is:
[4Bytes USER_DATA_STEP0] [ECC_STEP0 bytes]
[4bytes USER_DATA_STEP1] [ECC_STEP1 bytes]
...
NB: the BBM is stored at the beginning of the USER_DATA_STEP0.

Now, for H6/H616 NAND flash controller, this user data can have a
different size for each step.
So, we are maximizing the user data length to use as many OOB bytes as
possible.

Fixes: 7d1de9801151 ("mtd: rawnand: sunxi_spl: add support for H6/H616 nand controller")
Fixes: f163da5e6d26 ("mtd: rawnand: sunxi: add support for H6/H616 nand controller")
Signed-off-by: Richard Genoud <richard.genoud@bootlin.com>
5 weeks agomtd: rawnand: sunxi: clean sunxi_nand_chip_init()
Richard Genoud [Fri, 27 Mar 2026 14:05:06 +0000 (15:05 +0100)] 
mtd: rawnand: sunxi: clean sunxi_nand_chip_init()

In sunxi_nand_chip_init there's quite a lot of kfree/return, it's easy
to forget a kfree(), so use a goto/kfree instead.

Signed-off-by: Richard Genoud <richard.genoud@bootlin.com>
[Andre: rename goto label, keep return 0;]
Reviewed-by: Andre Przywara <andre.przywara@arm.com>
Signed-off-by: Andre Przywara <andre.przywara@arm.com>
5 weeks ago.clang-format: add U-Boot specific for each macros
Heinrich Schuchardt [Tue, 28 Apr 2026 14:28:48 +0000 (16:28 +0200)] 
.clang-format: add U-Boot specific for each macros

Formatting via clang-format is controlled by .clang-format.
For each statements should be formatted with a brace at the line end:

    for_each() {
    }

This requires clang-format to know that the symbol is not a function
but a for each macro. We use some for each macros which don't exist in
Linux. Add these to file .clang-format.

Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
5 weeks agodoc: bootstd: specify CONFIG_BOOTSTD_DEFAULTS provides network features when NET=y
Quentin Schulz [Tue, 28 Apr 2026 10:24:21 +0000 (12:24 +0200)] 
doc: bootstd: specify CONFIG_BOOTSTD_DEFAULTS provides network features when NET=y

In the past, we only had one network stack which was called NET. The
network features were enabled for the legacy (and then only) networking
stack since commit 22353fa6b585 ("bootstd: Add some default filesystems
and commands"). Then instead on relying on NET legacy stack for enabling
networking features, the dependencies were (mostly) changed to depend on
CMD_NET in commit a0c739c184ca ("boot: Create a common BOOT_DEFAULTS for
distro and bootstd"). Then a new stack (lwIP) appeared, then CMD_NET was
made available with this new stack in commit 98ad145db61a ("net: lwip:
add DHCP support and dhcp commmand") making the networking features
possible to enable and finally commit f1e978fd54d9 ("boot: Update tests
around network symbols in BOOT_DEFAULTS_CMDS") made it explicit that we
need *a* network stack to enable some networking features.

Align the bootstd documentation with what's actually implemented as
Kconfig dependencies. Note that BOOTSTD_DEFAULTS selects BOOT_DEFAULTS
which selects BOOT_DEFAULTS_CMDS which then selects network features.
The CMDLINE symbol needs to be enabled as well for BOOT_DEFAULTS to
select BOOT_DEFAULTS_CMDS, but I don't think we need to go that far into
explaining what's required to enable some commands.

Reported-by: Simon Glass <sjg@chromium.org>
Closes: https://lore.kernel.org/u-boot/CAFLszTgZC1FGy8965pHiG-u=FhrguftRv41ghQ_Qb_RRXx6tyg@mail.gmail.com/
Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
5 weeks agodoc: .clang-format description
Heinrich Schuchardt [Fri, 24 Apr 2026 13:05:10 +0000 (15:05 +0200)] 
doc: .clang-format description

We cannot use .clang-format without modification. For instance U-Boot
has some for each macros that Linux does not have.

Adjust the description.

Reviewed-by: Mattijs Korpershoek <mkorpershoek@kernel.org>
Reviewed-by: Quentin Schulz <quentin.schulz@cherry.de>
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
5 weeks agodoc: board: ti: k3: Add fTPM support documentation
Shiva Tripathi [Wed, 22 Apr 2026 09:19:49 +0000 (14:49 +0530)] 
doc: board: ti: k3: Add fTPM support documentation

Add fTPM support documentation including an overview, configuration
steps for RPMB provisioning, OP-TEE TA build instructions, and
verification procedure.

Signed-off-by: Shiva Tripathi <s-tripathi1@ti.com>
5 weeks agoefi_loader: centralize messaging for efi_init_obj_list
Heinrich Schuchardt [Mon, 20 Apr 2026 22:03:21 +0000 (00:03 +0200)] 
efi_loader: centralize messaging for efi_init_obj_list

If efi_init_obj_list() fails we cannot use the UEFI sub-system.

* Instead of having messages for this everywhere write an error message
  in efi_init_obj_list().
* Always use (ret != EFI_SUCCESS) when checking the return value of
  efi_init_obj_list().
* Remove the return code from the error message as it does not help
  users to understand which initialization went wrong.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
5 weeks agoefi_loader: correct efi_binary_run_dp() return value
Heinrich Schuchardt [Mon, 20 Apr 2026 22:03:20 +0000 (00:03 +0200)] 
efi_loader: correct efi_binary_run_dp() return value

efi_binary_run_dp() is expected to return an efi_status_t value.

Reported-by: Simon Glass <sjg@chromium.org>
Fixes: 6422820ac3e5 ("efi_loader: split unrelated code from efi_bootmgr.c")
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
5 weeks agoefi_loader: correct return value of efi_bootmgr_run()
Heinrich Schuchardt [Mon, 20 Apr 2026 22:03:19 +0000 (00:03 +0200)] 
efi_loader: correct return value of efi_bootmgr_run()

efi_bootmgr_run() is expected to return an efi_status_t value.

Reported-by: Simon Glass <sjg@chromium.org>
Fixes: 0bef4b0123f2 ("cmd: bootefi: move library interfaces under lib/efi_loader")
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
5 weeks agocmd/bootefi: move efi_init_obj_list() to the start of do_bootefi
Heinrich Schuchardt [Mon, 20 Apr 2026 22:03:18 +0000 (00:03 +0200)] 
cmd/bootefi: move efi_init_obj_list() to the start of do_bootefi

None of the bootefi commands can be executed if the EFI sub-system cannot
be initialized.

Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
5 weeks agodoc: emulation: qemu-arm: add secure state steps
Johannes Krottmayer [Mon, 20 Apr 2026 20:42:47 +0000 (22:42 +0200)] 
doc: emulation: qemu-arm: add secure state steps

Add build steps for building U-Boot in secure state with
TF-A and OP-TEE. It includes the full steps for building
OP-TEE and TF-A to use with U-Boot. Also a short description
how to invoke QEMU with enabled EL3 and EL2. EL3 (machine
option secure=on) is required to run TF-A.

Signed-off-by: Johannes Krottmayer <krotti83@proton.me>
Acked-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Cc: Tom Rini <trini@konsulko.com>
Cc: Tuomas Tynkkynen <tuomas.tynkkynen@iki.fi>
5 weeks agoEFI Loader: Correct dependencies for EFI_HTTP_BOOT
Tom Rini [Tue, 17 Mar 2026 01:24:49 +0000 (19:24 -0600)] 
EFI Loader: Correct dependencies for EFI_HTTP_BOOT

As exposed by "make randconfig", we have an issue with the dependencies
for EFI_HTTP_BOOT. As this is implemented by running commands (as seen
by what it selects) it must depend on CMDLINE as well.

Signed-off-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
5 weeks agoarm: at91: Drop unnecessary BOARD_EARLY_INIT_F usage
Tom Rini [Wed, 25 Mar 2026 19:00:24 +0000 (13:00 -0600)] 
arm: at91: Drop unnecessary BOARD_EARLY_INIT_F usage

All of these platforms enable CONFIG_BOARD_EARLY_INIT_F and then have a
do-nothing board_early_init_f function. Change to not enabling the
option and so not needing an empty function.

Signed-off-by: Tom Rini <trini@konsulko.com>
5 weeks agomtd: rawnand: sunxi: make the code mode self-explanatory
Richard Genoud [Fri, 27 Mar 2026 14:05:05 +0000 (15:05 +0100)] 
mtd: rawnand: sunxi: make the code mode self-explanatory

In sunxi_nfc_hw_ecc_{read,write}_chunk(), the ECC step was force to 0,
the reason is not trivial to get when reading the code.

The explanation is that, from the NAND flash controller perspective, we
are indeed at step 0 for user data length and ECC errors.

Just add a const value with an explanation to clarify things.

Signed-off-by: Richard Genoud <richard.genoud@bootlin.com>
Reviewed-By: Michael Trimarchi <michael@amarulasolutions.com>
Acked-by: Andre Przywara <andre.przywara@arm.com>
5 weeks agomtd: rawnand: sunxi: Replace hard coded value by a define
Richard Genoud [Fri, 27 Mar 2026 14:05:04 +0000 (15:05 +0100)] 
mtd: rawnand: sunxi: Replace hard coded value by a define

The user data length (4) used all over the code hard coded.
And sometimes, it's not that trivial to know that it's the user data
length and not something else.
Moreover, for the H6/H616 this value is no more fixed by hardware, but
could be modified.

Using a define here makes the code more readable.

Suggested-by: Miquel Raynal <miquel.raynal@bootlin.com>
Reviewed-by: Michael Trimarchi <michael@amarulasolutions.com>
Signed-off-by: Richard Genoud <richard.genoud@bootlin.com>
Acked-by: Andre Przywara <andre.przywara@arm.com>
5 weeks agospi: sunxi: wait for TX/RX fifo reset done
Yixun Lan [Tue, 21 Apr 2026 04:47:50 +0000 (04:47 +0000)] 
spi: sunxi: wait for TX/RX fifo reset done

Once reset SPI TX or RX fifo, the underlying hardware need to take
some time to actually settle down, the two bits will automatically
clear to 0, so use a poll mechanism to check status bits to make sure
it's done correctly.

On Cubie A7A board which using A733 SoC, we encoutered a SPI nor flash
timeout issue, it turns out that the SPI fifo reset take a few time to
settle down, Add a loop to poll the status.

This was the error message shows on A7A board once this issue happened.

=> sf probe
ERROR: sun4i_spi: Timeout transferring data
Failed to initialize SPI flash at 0:0 (error -2)

Signed-off-by: Yixun Lan <dlan@gentoo.org>
Reviewed-by: Jernej Skrabec <jernej.skrabec@gmail.com>
Acked-by: Andre Przywara <andre.przywara@arm.com>
5 weeks agosunxi: H616: dram: drop default TPR6 Kconfig value
Andre Przywara [Mon, 27 Apr 2026 13:29:50 +0000 (15:29 +0200)] 
sunxi: H616: dram: drop default TPR6 Kconfig value

CONFIG_DRAM_SUNXI_TPR6 is the only DRAM config parameter that has a
non-zero default value. Since we need to provide a value for all the
other parameters anyway, avoiding TPR6 makes no real difference.
To make matters worse, TPR6 is a compound value covering multiple DRAM
types, but also spans over three SoCs, which makes it hard to find one
good default value.

Drop the default from Kconfig, and put some explicit values in the
defconfigs for the few boards that were relying on the default so far.
The value is taken from one BSP, only the lower byte matters anyway for
those boards, all using DDR3 DRAM.

Signed-off-by: Andre Przywara <andre.przywara@arm.com>
Reviewed-by: Jernej Skrabec <jernej.skrabec@gmail.com>
Reviewed-by: Paul Kocialkowski <paulk@sys-base.io>
5 weeks agosunxi: H616: dram: fix LPDDR3 TPR6 parsing
Jernej Skrabec [Sun, 5 Apr 2026 19:59:26 +0000 (21:59 +0200)] 
sunxi: H616: dram: fix LPDDR3 TPR6 parsing

Allwinner's DRAM initialisation code defines a parameter named TPR6,
presumably containing some "Vref" parameter, but containing values for
*all* DRAM types. The runtime code selects one byte based on the DRAM
type used.
This selection code was wrong for LPDDR3, the value is encoded in
bits [23:16], not [15:8]. Fix that in the code, which also aligns it
with the very similar code for the A133 and A523.

Signed-off-by: Jernej Skrabec <jernej.skrabec@gmail.com>
Reported-by: Philippe Simons <simons.philippe@gmail.com>
Reviewed-by: Andre Przywara <andre.przywara@arm.com>
Reviewed-by: Paul Kocialkowski <paulk@sys-base.io>
5 weeks agopinctrl: sunxi: add I2C3 mux for D1/T113-s3 (PG10/PG11)
Lukas Schmid [Wed, 25 Mar 2026 19:26:09 +0000 (20:26 +0100)] 
pinctrl: sunxi: add I2C3 mux for D1/T113-s3 (PG10/PG11)

Boards based on the Allwinner D1/T113-s3, such as the
NetCube Systems Nagami, can expose a third I2C controller
on PG10/PG11. However, the sun20i_d1 pinctrl function table
lacked an entry for this mux.

Add the "i2c3" function with mux value 3 on PG10/PG11, allowing device
trees to enable the I2C3 controller.

Signed-off-by: Lukas Schmid <lukas.schmid@netcube.li>
Reviewed-by: Andre Przywara <andre.przywara@arm.com>
5 weeks agosunxi: configs: enable power LEDs on 64-bit boards
Andre Przywara [Tue, 7 Apr 2026 22:34:47 +0000 (00:34 +0200)] 
sunxi: configs: enable power LEDs on 64-bit boards

We recently gained a simple way to enable a power LED very early in the
SPL boot, through simple Kconfig variables.

Add those symbols to those boards' defconfigs where the DT indicates a
default-on power LED. The number used is <port bank> * 32 + <pin no>,
an active low setup means CONFIG_SPL_SUNXI_LED_STATUS_ACTIVE_HIGH must be
undefined.

This will light up the power LED very early in the (SPL) boot phase on
those 64-bit boards.

Signed-off-by: Andre Przywara <andre.przywara@arm.com>
Reviewed-by: Paul Kocialkowski <paulk@sys-base.io>
5 weeks agosunxi: configs: enable power LEDs on 32-bit boards
Andre Przywara [Tue, 7 Apr 2026 22:34:46 +0000 (00:34 +0200)] 
sunxi: configs: enable power LEDs on 32-bit boards

We recently gained a simple way to enable a power LED very early in the
SPL boot, through simple Kconfig variables.

Add those symbols to those boards' defconfigs where the DT indicates a
default-on power LED. The number used is <port bank> * 32 + <pin no>,
an active low setup means CONFIG_SPL_SUNXI_LED_STATUS_ACTIVE_HIGH must be
undefined. Since its default is "high", we can skip the symbol in the
defconfig in this case.

This will light up the power LED very early in the (SPL) boot phase on
those 32-bit boards.

Signed-off-by: Andre Przywara <andre.przywara@arm.com>
Reviewed-by: Paul Kocialkowski <paulk@sys-base.io>
5 weeks agosunxi: spl: fix SPL_SUNXI_LED active low configuration
Andre Przywara [Tue, 7 Apr 2026 22:34:45 +0000 (00:34 +0200)] 
sunxi: spl: fix SPL_SUNXI_LED active low configuration

The newly introduced Allwinner SPL LED "framework" defined a
SPL_SUNXI_LED_STATUS_STATE Kconfig symbol, that was supposed to denote
the active-low vs. active-high polarity of the LED. However this is
a bool symbol, so it will simply vanish if not defined, and we cannot use
it directly inside a C statement.

Filter the symbol through the IS_ENABLED() macro, which will return 0 if
the symbol is not defined, which is the intended value here.

Since the STATUS_STATE name is a bit confusing, rename it to ACTIVE_HIGH
on the way, because that is its real meaning. Also the LED_STATUS_BIT
name for the GPIO number is similarly a remnant of the old status LED
code, so rename it to LED_STATUS_GPIO as well.

This fixes configuring LEDs with active-low polarity.

Fixes: 256557dd9aae ("sunxi: remove usage of legacy LED API")
Signed-off-by: Andre Przywara <andre.przywara@arm.com>
Reviewed-by: Paul Kocialkowski <paulk@sys-base.io>
Closes: https://lore.kernel.org/u-boot/adfMQBPdntWy1KIq@shepard/
Acked-by: Quentin Schulz <quentin.schulz@cherry.de>
5 weeks agosunxi: use vendor prefix for $fdtfile on RISC-V too
Heinrich Schuchardt [Wed, 15 Apr 2026 21:21:36 +0000 (23:21 +0200)] 
sunxi: use vendor prefix for $fdtfile on RISC-V too

Once we complete the support for RISC-V Allwinner D1 (sun20i), we will need
to prefix $fdtfile with the vendor prefix to match the Linux device-tree
directory structure.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Acked-by: Andre Przywara <andre.przywara@arm.com>
5 weeks agogpio: 74x164: use dev_read_* APIs for live-tree compatibility
Chanhong Jung [Wed, 22 Apr 2026 14:05:38 +0000 (23:05 +0900)] 
gpio: 74x164: use dev_read_* APIs for live-tree compatibility

With CONFIG_OF_LIVE=y, dev_of_offset(dev) does not return a valid
flat-FDT offset, so fdtdec_get_int(gd->fdt_blob, offset, ...) inside
gen_74x164_probe() fails to locate the "registers-number" property and
always falls back to the default value of 1. This results in a 4-chip
74HC595 daisy chain being exposed as only 8 GPIOs instead of 32, and
any consumer referencing offsets >= 8 fails to bind with -ENOENT
("GPIO ... not found" / Error -22).

The "registers-default" property is ignored for the same reason, so
any configured power-on output pattern is silently discarded.

Replace the flat-FDT helpers with dev_read_u32_default() and
dev_read_u8_array_ptr(), which correctly walk both live and flat
trees. This matches how other DM GPIO drivers (e.g. pca953x_gpio.c)
read their per-device properties.

With gd->fdt_blob no longer referenced, also drop the now-unused
DECLARE_GLOBAL_DATA_PTR and <asm/global_data.h> include.

Tested on stm32mp153d-ssonic (CONFIG_OF_LIVE=y) with a 4-chip 74HC595
chain: all 32 GPIOs are now exposed, and 16 consumer LED nodes at
offsets 0..31 bind successfully.

Fixes: 9300f711baac ("dm: gpio: introduce 74x164 driver")
Signed-off-by: Chanhong Jung <happycpu@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
5 weeks agortc: ds1307: Remove legacy non-DM code
Francesco Dolcini [Fri, 24 Apr 2026 08:45:44 +0000 (10:45 +0200)] 
rtc: ds1307: Remove legacy non-DM code

The DS1307 driver depends on DM_RTC since commit d425d6056e01 ("rtc: Add
DM support to ds1307"), remove the related obsolete code.

Signed-off-by: Francesco Dolcini <francesco.dolcini@toradex.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
5 weeks agoscripts/dtc: drop yaml in DT validation
João Marcos Costa [Wed, 29 Apr 2026 14:46:15 +0000 (16:46 +0200)] 
scripts/dtc: drop yaml in DT validation

The build issues found in dtc/yamltree were partially mitigated by a
previous commit (807bcd844a: "scripts/dtc: Fix pkg-config behavior under
sysroot"), but upstream dtc simply disabled yaml, and the same should be
done here in order to permanently avoid those issues.

Backport the change below from Linux v5.18 [1]:

ef8795f3f1c ("dt-bindings: kbuild: Use DTB files for validation")

I tested this patch with a couple Yocto builds: u-boot and u-boot-tools,
using the current master branch (rev. "c53b0708f9"), having removed
libyaml-native from u-boot-tools's dependencies.

[1] https://git.kernel.org/linus/ef8795f3f1ce

Signed-off-by: João Marcos Costa <joaomarcos.costa@bootlin.com>
Acked-by: Quentin Schulz <quentin.schulz@cherry.de>
5 weeks agoMerge tag 'u-boot-stm32-20260430' of https://source.denx.de/u-boot/custodians/u-boot-stm
Tom Rini [Thu, 30 Apr 2026 15:10:18 +0000 (09:10 -0600)] 
Merge tag 'u-boot-stm32-20260430' of https://source.denx.de/u-boot/custodians/u-boot-stm

- arm; stm32mp2: Factorize TAMP_FWU_BOOT_IDX_MASK/OFFSET definition
- arm: stm32mp: Drop unnecessary BOARD_EARLY_INIT_F usage
- board: stm32mp25: support dynamic A/B bank bootup
- board: stm32pm1: Fix board_check_usb_power()
- clk: stm32: Add STM32MP23 support
- video: stm32: dsi: fix unchecked return values
- video: support Rocktech RK050HR345-CT106A panel
- Remove non-existent STM32_RESET flag

5 weeks agoarm/mach-stm32: don't select non-existent STM32_RESET
Heinrich Schuchardt [Wed, 25 Feb 2026 07:02:24 +0000 (08:02 +0100)] 
arm/mach-stm32: don't select non-existent STM32_RESET

Symbol CONFIG_STM32_RESET does not exist.
Don't select it.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Patrice Chotard <patrice.chotard@foss.st.com>
5 weeks agovideo: support Rocktech RK050HR345-CT106A panel
Dario Binacchi [Wed, 25 Feb 2026 16:17:00 +0000 (17:17 +0100)] 
video: support Rocktech RK050HR345-CT106A panel

Add support for the Rocktech RK050HR345-CT106A RGB panel. This model
uses an Ilitek ILI9806E controller over the SPI bus for initialization
and register configuration only.

The driver is designed to be easily extensible to support other panels
with different sequences and timings by providing a specific descriptor
structure for each model.

Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>
Reviewed-by: Patrice Chotard <patrice.chotard@foss.st.com>