Commit Graph
105929 Commits
Author SHA1 Message Date
Peng FanandStefan Roese eab66c3a90 timer: orion: Use dev_remap_addr_index()
Use dev_remap_addr_index() which supports both live device tree and flat DT
backends, avoiding direct dependency on devfdt_* helpers.

No functional changes.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
2026-06-10 11:23:26 +02:00
Vincent JardinandStefan Roese 7e93129173 arm: dts: armada-8040-nbx: add U-Boot dtsi for conditional OP-TEE
Add armada-8040-nbx-u-boot.dtsi with the firmware/optee node guarded
by CONFIG_OPTEE. This allows U-Boot to probe the OP-TEE driver only
when OP-TEE support is enabled in the configuration.

Signed-off-by: Vincent Jardin <vjardin@free.fr>
Reviewed-by: Stefan Roese <stefan.roese@mailbox.org>
2026-06-10 11:23:26 +02:00
Vincent JardinandStefan Roese 35ae4491bf board: freebox: nbx10g: add device serial and MAC address initialization
Read device identification data from a dedicated eMMC region. This
provides:

- Unique device serial number for identification and tracking
- Factory-programmed MAC address for network interfaces
- Bundle information for device variant identification

The serial structure includes CRC32 validation to detect corruption.
On read failure or invalid data, sensible defaults are used to ensure
the system remains bootable.

The fbxserial command provides two subcommands:
- fbxserial show: Display serial info (default)
- fbxserial init: Initialize ethaddr from serial info

Use CONFIG_PREBOOT="fbxserial init" to automatically set MAC addresses
during boot. This approach avoids patching shared board code.

Signed-off-by: Vincent Jardin <vjardin@free.fr>
Reviewed-by: Stefan Roese <stefan.roese@mailbox.org>
2026-06-10 11:23:26 +02:00
Vincent JardinandStefan Roese 3db9d9abc1 board: freebox: nbx10g: add emmcboot for dual-bank eMMC boot
Add the emmcboot command as board-specific support for the Nodebox 10G.

This is a legacy boot format that has been in production on this board
for many years so it cannot change anymore. It implements a dual-bank
boot system for reliable firmware updates:

- Bank0: Stable/fallback boot image
- Bank1: Newer/test boot image with reboot tracking

The boot order depends on the nrboot counter stored in eMMC:
- Healthy state (counter < 4): Try Bank1 first, then Bank0
- Degraded state (counter >= 4): Try Bank0 first, then Bank1

Each bank stores an image tag with CRC32 validation. The counter uses
a bit-counting scheme for wear leveling and tracks consecutive failed
boots to trigger automatic fallback.

Signed-off-by: Vincent Jardin <vjardin@free.fr>
Reviewed-by: Stefan Roese <stefan.roese@mailbox.org>
2026-06-10 11:23:26 +02:00
Vincent JardinandStefan Roese 3457acc014 board: freebox: add Nodebox 10G board support
Add board support for the Freebox Nodebox 10G based on the Marvell
Armada 8040 SoC. This board features:

- Quad-core ARMv8 AP806 with dual CP110 companions
- eMMC storage via Xenon SDHCI controller
- 1G SGMII Ethernet on CP0 lane 5
- I2C buses for peripheral access
- NS16550 UART console at 115200 baud

The implementation includes:
- Device tree for the Nodebox 10G hardware
- Dedicated board directory (board/freebox/nbx10g/)
- Board-specific Kconfig and defconfig

The U-Boot comphy bindings (phy-type/phy-speed) differ from the
mainline Linux PHY framework bindings used by phy-mvebu-cp110-comphy,
so U-Boot and the kernel each have their own device tree.

Signed-off-by: Vincent Jardin <vjardin@free.fr>
Reviewed-by: Stefan Roese <stefan.roese@mailbox.org>
2026-06-10 11:23:26 +02:00
Vincent JardinandStefan Roese a721ac0da7 arm: mach-mvebu: armada8k: cpuinfo and SAR
Add CPU information display for Armada 8040 platforms.

The soc_info.c reads the AP806 Sample-At-Reset (SAR) register to
determine the PLL clock configuration and converts it to actual
CPU, DDR, and Fabric frequencies using the PLL frequency table.

Signed-off-by: Vincent Jardin <vjardin@free.fr>
Reviewed-by: Stefan Roese <stefan.roese@mailbox.org>
2026-06-10 11:23:26 +02:00
Marek VasutandStefan Roese dd1084ed2e pinctrl: armada-38x: Staticize and constify driver ops
Set the ops structure as static const. The structure is not accessible
from outside of this driver and is not going to be modified at runtime.

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
Reviewed-by: Stefan Roese <stefan.roese@mailbox.org>
2026-06-10 11:23:26 +02:00
Tom RiniandStefan Roese 9b432691dc arm: mvebu: 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>
Reviewed-by: Robert Marko <robert.marko@sartura.hr>
2026-06-10 11:23:26 +02:00
Heinrich SchuchardtandStefan Roese bd75c26240 serial: serial_octeon_bootcmd.c: use correct Kconfig symbol
CONFIG_SYS_IS_IN_ENV does not exist.
CONFIG_SYS_CONSOLE_IS_IN_ENV seems to be needed here.

Fixes: f1054661e5 ("serial: serial_octeon_bootcmd.c: Add PCI remote console support")
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Stefan Roese <stefan.roese@mailbox.org>
2026-06-10 11:23:26 +02:00
Phil SutterandStefan Roese b2306246dd board: Synology: common: Fix typo in Makefile
Due to this, legacy.c was neither compiled nor linked into the binary
and thus booting legacy DS414 firmware failed. Missing atag setup led to
no console output (and probably stalled boot) after:

| Uncompressing Linux... done, booting the kernel.

Fixes: 9774462e34 ("arm: Disable ATAGs support")
Signed-off-by: Phil Sutter <phil@nwl.cc>
2026-06-10 11:23:26 +02:00
Phil SutterandStefan Roese f64593af3d board: Synology: legacy.c: Include asm/io.h
Some boards building this source define CFG_SYS_TCLK as a term involving
readl() which is undefined otherwise.

Signed-off-by: Phil Sutter <phil@nwl.cc>
2026-06-10 11:23:26 +02:00
Chris PackhamandStefan Roese 59e13ed8f6 arm: mvebu: Add Allied Telesis x220
Add the Allied Telesis x220 board. There are a number of other variants
with the same CPU block that are sold under some different brand names
but the x220 was first.

The x220 uses the AlleyCat3 switch chip with integrated ARMv7 CPU.
Because of this it is reliant on a binary blob for the DDR training. In
upstream u-boot this is replaced by an empty file.

Signed-off-by: Chris Packham <judge.packham@gmail.com>
Reviewed-by: Stefan Roese <stefan.roese@mailbox.org>
2026-06-10 11:23:26 +02:00
Chris PackhamandStefan Roese c444ff30e1 arm: mvebu: db-xc3-24g4xg: Remove marvell, nand-keep-config
nand-keep-config is used to retain the NAND controller configuration
from an earlier boot stage. In U-Boot's case there isn't an earlier boot
stage so reconfiguring the NAND controller is required.

Signed-off-by: Chris Packham <judge.packham@gmail.com>
Reviewed-by: Stefan Roese <stefan.roese@mailbox.org>
2026-06-10 11:23:26 +02:00
Chris PackhamandStefan Roese a9cc75a25e mtd: nand: pxa3xx: Pass valid dev to dev_err()
info->controller.active is not initialised so the dev_err() call ends up
dereferencing a null pointer causing a crash instead of outputting the
error. Add a dev member to struct pxa3xx_nand_info and use that instead
of info->controller.active->mtd.dev.

Fixes: 661c98121d ("mtd: nand: pxa3xx: Fix not calling dev_xxx with a device")
Signed-off-by: Chris Packham <judge.packham@gmail.com>
Reviewed-by: Stefan Roese <stefan.roese@mailbox.org>
2026-06-10 11:23:26 +02:00
Vincent JardinandStefan Roese 50b3c87e0e net: mvpp2: fix NULL pointer dereference in mvpp2_phy_connect
Fix two NULL pointer dereferences in mvpp2_phy_connect():

1. port->phy_dev->dev is used in dev_warn() but
   port->phy_dev is not assigned yet (assigned later at line below).

2. port->phy_dev->dev is used in dev_err() inside
   the "if (!phy_dev)" block, which means phy_dev is NULL.

Both cases would cause a crash if the PHY detection fails or returns
a generic PHY. Use the already available 'dev' parameter instead.

Fixes: 9db60ee470 ("net: mvpp2: Convert netdev_xxx to dev_xxx")
Signed-off-by: Vincent Jardin <vjardin@free.fr>
2026-06-10 11:23:26 +02:00
Tony DinhandStefan Roese 001f7e5f4c arm: kirkwood: Remove unnecessary watchdog GPIO for ZyXEL NSA325 board
Watchdog was already disabled in board/zyxel/nsa325/kwbimage.cfg.

Signed-off-by: Tony Dinh <mibodhi@gmail.com>
Reviewed-by: Stefan Roese <stefan.roese@mailbox.org>
2026-06-10 11:23:26 +02:00
Tom Rini 511bd63db9 Merge assorted patches to use device API to replace devfdt_ helpers
These assorted patch series from Peng Fan (OSS) <peng.fan@oss.nxp.com>
have the goal to remove the direct usage of devfdt_ APIs in drivers. The
device APIs supports both live device tree and flat DT backends,
avoiding direct dependency on devfdt_* helpers.
2026-06-09 16:00:11 -06:00
Peng FanandTom Rini 8d1d86ff58 ata: dwc_ahci: Use dev_read_addr_index()
Use dev_read_addr_index() which supports both live device tree and flat DT
backends, avoiding direct dependency on devfdt_* helpers.

No functional changes.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
2026-06-09 16:00:11 -06:00
Peng FanandTom Rini ffbfe1cec3 ata: mtk_ahci: Use dev_remap_addr_index() and ofnode API
Use dev_remap_addr_index() instead of devfdt_remap_addr_index() to map the
controller registers, removing the dependency on FDT-specific helpers.

Replace the direct fdt_get_property() lookup combined with dev_of_offset()
by dev_read_prop().

No functional changes.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
2026-06-09 16:00:11 -06:00
Peng FanandTom Rini ebb9ee6ef4 rng: rproc_rng200: Use dev_remap_addr()
Use dev_remap_addr() which supports both live device tree and flat DT
backends, avoiding direct dependency on devfdt_* helpers.

And only mapping sizeof(void *) is wrong, RNG_FIFO_COUNT_OFFSET(0x24) is
accessed in this driver. So dev_remap_addr() could also fix the mapping
size.

No functional changes.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
2026-06-09 14:53:34 -06:00
Peng FanandTom Rini 8e4414d1a9 misc: k3_avs: Use dev_read_addr_index()
Use dev_read_addr_index() which supports both live device tree and flat DT
backends, avoiding direct dependency on devfdt_* helpers.

No functional changes.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
2026-06-09 14:53:34 -06:00
Peng FanandTom Rini 8b5e2a25ab thermal: ti-bandgap: Use dev_read_addr_index()
Use dev_read_addr_index() which supports both live device tree and flat DT
backends, avoiding direct dependency on devfdt_* helpers.

No functional changes.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
2026-06-09 14:53:34 -06:00
Peng FanandTom Rini 305c014fdb reset: ast: Use dev_read_addr_ptr()
Use dev_read_addr_ptr() which supports both live device tree and flat DT
backends, avoiding direct dependency on devfdt_* helpers.

While at here, correct error return value, when priv->scu is NULL,
PTR_ERR(priv->scu) is 0 which implies success. Change to return '-EINVAL'.

No functional changes.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
2026-06-09 14:53:34 -06:00
Peng FanandTom Rini d26cbf4667 ram: aspeed: Use dev_read_addr_x() API
Use dev_read_addr_ptr() and dev_read_addr_index_ptr() which support both
live device tree and flat DT backends, avoiding direct dependency on
devfdt_* helpers.

While at here, also use ofnode_read_s32_default() to replace
fdtdec_get_int().

No functional changes.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
2026-06-09 14:53:34 -06:00
Peng FanandTom Rini f2479b58aa crypto: tegra: Use dev_read_addr_x()
Use dev_read_addr_size_name_ptr() which supports both live device tree and
flat DT backends, avoiding direct dependency on devfdt_* helpers.

No functional changes.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
Reviewed-by: Svyatoslav Ryhel <clamor95@gmail.com>
2026-06-09 14:53:34 -06:00
Peng FanandTom Rini c305b8ac86 crypto: aspeed: Use dev_read_addr_x()
Use dev_read_addr_x() which supports both live device tree and flat DT
backends, avoiding direct dependency on devfdt_* helpers.

No functional changes.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
2026-06-09 14:53:34 -06:00
Peng FanandTom Rini 8e8e624abc remoteproc: ipu: Use dev_read_addr_x()
Use dev_read_addr_x() which supports both live device tree and flat DT
backends, avoiding direct dependency on devfdt_* helpers.

No functional changes.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
2026-06-09 14:53:34 -06:00
Peng FanandTom Rini 8918af1c0c remoteproc: pru: Use dev_read_addr_size_index()
Use dev_read_addr_size_index() which supports both live device tree and
flat DT backends, avoiding direct dependency on devfdt_* helpers.

While at here, drop unused 'node'.

No functional changes.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
2026-06-09 14:53:34 -06:00
Peng FanandTom Rini a4e8d80c9d gpio: aspeed: Use dev_read_addr_ptr()
Use dev_read_addr_ptr() which supports both live device tree and flat DT
backends, avoiding direct dependency on devfdt_* helpers.

No functional changes.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
2026-06-09 14:53:34 -06:00
Peng FanandTom Rini bc988983d2 gpio: nx: Use dev_remap_addr()
Use dev_remap_addr() to simplify code.

dev_remap_addr() does same thing as dev_read_addr() + map_physmem(). And
it supports both live device tree and flat DT backends, avoiding direct
dependency on devfdt_* helpers.

Also add error handling logic.

No functional changes.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
2026-06-09 14:53:34 -06:00
Peng FanandTom Rini b6d42b3fbf pinctrl: nexell: Use dev_read_addr()
Use dev_read_addr() which supports both live device tree and flat DT
backends, avoiding direct dependency on devfdt_* helpers.

No functional changes.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
2026-06-09 14:53:34 -06:00
Peng FanandTom Rini ef6b3ccf59 pinctrl: at91: Use dev_read_addr_index()
Use dev_read_addr_index() which supports both live device tree and flat
DT backends, avoiding direct dependency on devfdt_* helpers.

No functional changes.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
2026-06-09 14:53:34 -06:00
Peng FanandTom Rini 55550b4292 clk: sophgo: Use dev_read_addr_ptr()
Replace devfdt_get_addr_ptr() with dev_read_addr_ptr() when retrieving the
register base address.

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

No functional changes.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
2026-06-09 14:48:33 -06:00
Peng FanandTom Rini f683a457b6 clk: hsdk-cgu: Use dev_read_addr_index_ptr()
Replace devfdt_get_addr_index_ptr() with dev_read_addr_index_ptr() when
retrieving the register base address.

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

No functional changes.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
2026-06-09 14:48:33 -06:00
Peng FanandTom Rini 48d74f433e clk: aspeed: Use dev_read_addr_ptr()
Replace devfdt_get_addr_ptr() with dev_read_addr_ptr() when retrieving the
register base address.

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

No functional changes.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
2026-06-09 14:48:33 -06:00
Peng FanandTom Rini 179022b8e1 clk: altera: Use dev_read_addr_ptr()
Replace devfdt_get_addr_ptr() with dev_read_addr_ptr() when retrieving the
register base address.

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

No functional changes.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
2026-06-09 14:48:33 -06:00
Peng FanandTom Rini 54ed5729a9 clk: at91: Use dev_read_addr_ptr()
Replace devfdt_get_addr_ptr() with dev_read_addr_ptr() when retrieving the
register base address.

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

No functional changes.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
Tested-by: Manikandan Muralidharan <manikandan.m@microchip.com>
2026-06-09 14:48:33 -06:00
Tom Rini 06b57c9876 Merge tag 'u-boot-watchdog-next-20260609' of https://source.denx.de/u-boot/custodians/u-boot-watchdog into next
u-boot-watchdog changes 2026-06-09:

CI: https://source.denx.de/u-boot/custodians/u-boot-watchdog/-/pipelines/30388

- watchdog: orion_wdt: Add support for armada-xp (Chris)
- watchdog: Correct dependencies for WDT_MAX6370 (Tom)
- watchdog: designware: Fix probe when clk_enable return ENOSYS (Jonas)
- watchdog: sbsa_gwdt: clamp WOR value to hw max (Juuso)
- watchdog: octeontx_wdt: fix DT matches to Marvell compatibles (Juuso)
- doc: wdt: fix typo for expire (Jonathan)
- watchdog: orion_wdt: use dev_read_addr_size_index() (Peng)
- watchdog: rti: Use dev_read_addr_ptr() (Peng)
- watchdog: mpc8xxx_wdt: Use dev_remap_addr() (Peng)
- drivers: watchdog: Fix dev_read_addr error check (Francois)
2026-06-09 13:20:31 -06:00
Francois BerderandStefan Roese 17f7334c95 drivers: watchdog: Fix dev_read_addr error check
dev_read_addr does not return a void* but fdt_addr_t.
Replace invalid usage of dev_read_addr by dev_read_addr_ptr.

v2:
 - Replace dev_read_addr by dev_read_addr_ptr
 - Change error to EINVAL

Signed-off-by: Francois Berder <fberder@outlook.fr>
Reviewed-by: Stefan Roese <stefan.roese@mailbox.org>
Reviewed-by: Hal Feng <hal.feng@starfivetech.com>
2026-06-09 11:51:19 +02:00
Peng FanandStefan Roese 5843db9dad watchdog: mpc8xxx_wdt: Use dev_remap_addr()
Use dev_remap_addr() to replace devfdt_remap_addr which supports both live
device tree and flat DT backends, avoiding direct dependency on
devfdt_* helpers.

No functional changes.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
Reviewed-by: Stefan Roese <stefan.roese@mailbox.org>
2026-06-09 11:51:19 +02:00
Peng FanandStefan Roese b9b27c875f watchdog: rti: Use dev_read_addr_ptr()
devfdt_get_addr() returns FDT_ADDR_T_NONE(-1UL) when fail, using
"!priv->regs" to check return value is wrong.

Replace devfdt_read_addr() with dev_read_addr_ptr() when retrieving the
register base address.

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

Also use "void __iomem *" to replace "phys_addr_t" to avoid type
casting.

No functional changes.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
Reviewed-by: Stefan Roese <stefan.roese@mailbox.org>
2026-06-09 11:51:19 +02:00
Peng FanandStefan Roese 3c3ba75c85 watchdog: orion_wdt: use dev_read_addr_size_index()
Replace devfdt_read_addr_size_index() with dev_read_addr_size_index() when
retrieving the register base address.

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

No functional changes.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
Reviewed-by: Stefan Roese <stefan.roese@mailbox.org>
2026-06-09 11:51:19 +02:00
Jonathan GUILLOTandStefan Roese 3abd953da8 doc: wdt: fix typo for expire 2026-06-09 11:51:19 +02:00
Juuso RintaandStefan Roese 9124bf185b watchdog: octeontx_wdt: fix DT matches to Marvell compatibles
The OcteonTX watchdog driver currently matches arm,sbsa-gwdt.
On systems with multiple watchdog devices this can be ambiguous since
arm,sbsa-gwdt is a generic SBSA binding.

Replace the SBSA match with SoC-specific Marvell compatibles
marvell,cn10624-wdt and marvell,cn9670-wdt.

These compatibles align with the upstream Linux device tree binding:
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/devicetree/bindings/watchdog/marvell,cn10624-wdt.yaml

Reviewed-by: Aaro Koskinen <aaro.koskinen@nokia.com>
Signed-off-by: Juuso Rinta <juuso.rinta@nokia.com>
Reviewed-by: Stefan Roese <stefan.roese@mailbox.org>
2026-06-09 11:51:19 +02:00
Juuso RintaandStefan Roese 1a489a1a43 watchdog: sbsa_gwdt: clamp WOR value to hw max
The WOR register is 32 bits, so any tick count exceeding U32_MAX is
truncated by writel(). A large requested timeout can wrap to a small
value causing the watchdog to fire sooner than requested.

Clamp the calculated value to U32_MAX prior to writing the register so
over-large requests will be set to the maximum timeout value.

Found by code review.

Signed-off-by: Juuso Rinta <juuso.rinta@nokia.com>
Reviewed-by: Stefan Roese <stefan.roese@mailbox.org>
2026-06-09 11:51:19 +02:00
Jonas KarlmanandStefan Roese d62801d094 watchdog: designware: Fix probe when clk_enable return ENOSYS
Rockchip SoCs typically reset with all (or most) clocks ungated. Because
of this, U-Boot clock drivers for Rockchip typically do not implement
the optional clk-uclass enable/disable ops.

Normal driver model behavior is to return -ENOSYS when an uclass ops
is not implemented.

Ignore -ENOSYS to allow the designware watchdog driver to be probed on
platforms that do not implement the clk-uclass enable/disable ops, e.g.
Rockchip RK3308.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
2026-06-09 11:51:19 +02:00
Tom RiniandStefan Roese d98e11bcbc watchdog: Correct dependencies for WDT_MAX6370
As exposed by "make randconfig", we have an issue with the dependencies
for WDT_MAX6370. It needs to select both GPIO and DM_GPIO not just
DM_GPIO.

Signed-off-by: Tom Rini <trini@konsulko.com>
2026-06-09 11:51:19 +02:00
Chris PackhamandStefan Roese 2ea4d3f8a5 watchdog: orion_wdt: Add support for armada-xp
Update the orion_wdt.c to support armada-xp and similar SoCs. The WDT
block used in armada-xp is fairly close to the armada-380 with just a
few differences that can be handled based on the compatible property.

Signed-off-by: Chris Packham <judge.packham@gmail.com>
Reviewed-by: Stefan Roese <stefan.roese@mailbox.org>
2026-06-09 11:51:19 +02:00
Tom Rini e91911169b Merge tag 'v2026.07-rc4' into next
Prepare v2026.07-rc4
2026-06-08 15:28:18 -06:00
Tom Rini 1296a428c6 Prepare v2026.07-rc4
Signed-off-by: Tom Rini <trini@konsulko.com>
2026-06-08 13:43:04 -06:00