]> git.ipfire.org Git - thirdparty/u-boot.git/log
thirdparty/u-boot.git
2 months 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>
2 months 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>
2 months 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>
2 months 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>
2 months 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>
2 months 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>
2 months 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>
2 months 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>
2 months 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>
2 months 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>
2 months agospl: fix stack placement in spl_relocate_stack_gd()
Ronald Wahl [Sat, 7 Feb 2026 15:33:30 +0000 (16:33 +0100)] 
spl: fix stack placement in spl_relocate_stack_gd()

Currently when CONFIG_SPL_STACK_R and CONFIG_SPL_SYS_MALLOC_SIMPLE is
enabled then spl_relocate_stack_gd() will setup a layout where the stack
lays inside the heap and grows down to heap start. Also the global data
is part of the heap. This can lead to corruption of stack and global
data. The current layout is:

                    0x0 +-------------+
                        .             .
                        .             .
        gd->malloc_base +- - - - - - -+
                        |             |\
                        | HEAP/STACK  | \
                        |             |  } SPL_STACK_R_MALLOC_SIMPLE_LEN
      gd->start_addr_sp +- - - - - - -+ /  (gd->malloc_limit)
                        | GLOBAL DATA |/
CONFIG_SPL_STACK_R_ADDR +-------------+

The above broken layout was actually introduced with commit adc421e4cee8
("arm: move gd handling outside of C code").

This commit changes the layout so that the stack is below the heap and
the global data. It is now similar to the one before relocation:

                     0x0+-------------+
                        .             .
                        .             .
                        +- - - - - - -+
                        |             |
                        |    STACK    |
                        |             |
      gd->start_addr_sp +-------------+
                        | GLOBAL DATA |
        gd->malloc_base +-------------+
                        |             |\
                        |    HEAP     | } SPL_STACK_R_MALLOC_SIMPLE_LEN
                        |             |/  (gd->malloc_limit)
CONFIG_SPL_STACK_R_ADDR +-------------+

Fixes: adc421e4cee8 ("arm: move gd handling outside of C code")
Cc: Tom Rini <trini@konsulko.com>
Cc: Anshul Dalal <anshuld@ti.com>
Cc: Leo Yu-Chi Liang <ycliang@andestech.com>
Cc: Dhruva Gole <d-gole@ti.com>
Cc: Simon Glass <sjg@chromium.org>
Cc: Albert ARIBAUD <albert.u.boot@aribaud.net>
Signed-off-by: Ronald Wahl <ronald.wahl@legrand.com>
2 months agodefconfigs: Remove default COFNIG_SPL_LDSCRIPT value
Tom Rini [Thu, 5 Feb 2026 19:16:31 +0000 (13:16 -0600)] 
defconfigs: Remove default COFNIG_SPL_LDSCRIPT value

These three platforms set CONFIG_SPL_LDSCRIPT value to what the default
value for the question is, once evaluated. Remove this unnecessary line.

Reviewed-by: Heiko Schocher <hs@nabladev.com>
Signed-off-by: Tom Rini <trini@konsulko.com>
2 months agoboard: ti: am62ax: tifs-rm-cfg.yaml: Add C7x resource allocation entries
Sparsh Kumar [Fri, 30 Jan 2026 14:33:39 +0000 (20:03 +0530)] 
board: ti: am62ax: tifs-rm-cfg.yaml: Add C7x resource allocation entries

Update am62ax and am62dx tifs-rm-cfg with allocation entries for C7x
core to match with their rm-cfg. Following updates are added for C7x:
- Share split BCDMA tx and rx channels between DM R5 and C7x.
- Share rings for split BCDMA tx and rx channels between DM R5 and C7x.
- Add global events and virtual interrupts for C7x.

Fixes: 01e01277538a ("am62a: yaml: Add board configs for AM62ax")
Signed-off-by: Sparsh Kumar <sparsh-kumar@ti.com>
Signed-off-by: Paresh Bhagat <p-bhagat@ti.com>
2 months agospi: add support for ISSI IS25WP02GG flash
Jeffrey Yu [Tue, 26 Aug 2025 23:30:03 +0000 (23:30 +0000)] 
spi: add support for ISSI IS25WP02GG flash

This patch adds support for the ISSI IS25WP02GG QSPI NOR flash device.
Tested on the Versal VMK180
board in dual-parallel QSPI configuration.

Signed-off-by: jeffrey yu <jeyu@issi.com>
2 months agomtd: spi-nor-ids: Add Fujitsu MB85RS256TY FRAM
Christoph Reiter [Mon, 25 Aug 2025 05:53:58 +0000 (05:53 +0000)] 
mtd: spi-nor-ids: Add Fujitsu MB85RS256TY FRAM

This part is an FRAM, but can be used through the spi-nor generic code.

Signed-off-by: christoph.reiter@evk.biz
2 months 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>
2 months 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>
2 months agoarch: imx8qxp: Override weak fb_mmc_get_boot_offset function
Adrian Freihofer [Tue, 17 Feb 2026 10:36:04 +0000 (11:36 +0100)] 
arch: imx8qxp: Override weak fb_mmc_get_boot_offset function

Add IMX8QXP SoCs specific implementation of fb_mmc_get_boot_offset()

This is needed as bootloader offset is different dependent on SoC
revision!

For revision B0 the bootloader starts at 32k offset. On offset
0x0 the bootloaders environment is stored.

On C0 revisions of the SoC bootloader image starts at offset 0x0

Signed-off-by: Adrian Freihofer <adrian.freihofer@siemens.com>
Signed-off-by: Heiko Schocher <hs@nabladev.com>
Reviewed-by: Mattijs Korpershoek <mkorpershoek@kernel.org>
Acked-by: Fabio Estevam <festevam@gmail.com>
Link: https://lore.kernel.org/r/20260217103604.71029-3-hs@nabladev.com
Signed-off-by: Mattijs Korpershoek <mkorpershoek@kernel.org>
2 months agofastboot: mmc: make boot partition offset configurable
Adrian Freihofer [Tue, 17 Feb 2026 10:36:03 +0000 (11:36 +0100)] 
fastboot: mmc: make boot partition offset configurable

i.MX8QXP rev C.0 requires boot container stored at offset 0KB
for eMMC, while i.MX8QXP pre C.0 requires boot container stored
at offset 32KB for eMMC.

To use one U-Boot binary to support different chip revisions,
introduce fb_mmc_get_boot_offset() to allow override the default
offset when writing to eMMC boot partitions.

This enables support for devices with non-standard boot partition
layouts, such as those requiring an offset for correct bootloader
placement.

Signed-off-by: Adrian Freihofer <adrian.freihofer@siemens.com>
Signed-off-by: Heiko Schocher <hs@nabladev.com>
Reviewed-by: Mattijs Korpershoek <mkorpershoek@kernel.org>
Link: https://lore.kernel.org/r/20260217103604.71029-2-hs@nabladev.com
Signed-off-by: Mattijs Korpershoek <mkorpershoek@kernel.org>
2 months agoMerge patch series "bootcount: Small clean-up and fix, and dm_i2c single-word support"
Tom Rini [Wed, 18 Feb 2026 22:35:12 +0000 (16:35 -0600)] 
Merge patch series "bootcount: Small clean-up and fix, and dm_i2c single-word support"

Niko Mauno <niko.mauno@vaisala.com> says:

In this series, we first introduce a clean-up where we switch to use
predefined bit masks instead of hard-coded values for count and magic
halves in the single-word (32-bit) boot count scheme.

Then we fix a case of missing boot count value masking in single-word
scenario in bootcount.c, which allowed clobbering of the magic half
when storing the value. With this change the clobbering preventing
behavior becomes consistent with existing single word bootcount storing
implementations in bootcount_at91.c and bootcount_davinci.c.

Finally, we enable the DM I2C bootcount driver to work also in single
word (4 byte) mode, in addition to the pre-existing half-word (2 byte)
mode. By default the driver still operates in half word mode as so far,
but can now be used alternatively in single word mode by adding
'size = <0x4>;' in the associated device tree node.

Link: https://lore.kernel.org/r/cover.1770197302.git.niko.mauno@vaisala.com
2 months agobootcount: dm_i2c: Support also single word mode
Niko Mauno [Wed, 4 Feb 2026 13:17:37 +0000 (15:17 +0200)] 
bootcount: dm_i2c: Support also single word mode

In addition to pre-existing half-word (2 byte) mode, add support for
the driver to work also in single word (4 byte) mode by adding
'size = <0x4>;' in the device tree node.

Signed-off-by: Niko Mauno <niko.mauno@vaisala.com>
2 months agobootcount: Fix potential clobbering issue
Niko Mauno [Wed, 4 Feb 2026 13:17:36 +0000 (15:17 +0200)] 
bootcount: Fix potential clobbering issue

When storing the single word bootcount value, apply the bootcount count
mask to prevent clobbering the magic half of the value.

Signed-off-by: Niko Mauno <niko.mauno@vaisala.com>
2 months agobootcount: Use predefined count/magic bit masks
Niko Mauno [Wed, 4 Feb 2026 13:17:35 +0000 (15:17 +0200)] 
bootcount: Use predefined count/magic bit masks

Use predefined bit masks in operations where only the magic half or
only the count half of the 32-bit value are processed.

Signed-off-by: Niko Mauno <niko.mauno@vaisala.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
2 months 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
2 months 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>
2 months 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>
2 months 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>
2 months agoMerge patch series "arm: dts: mt7622: use generic node names"
Tom Rini [Wed, 18 Feb 2026 18:09:06 +0000 (12:09 -0600)] 
Merge patch series "arm: dts: mt7622: use generic node names"

David Lechner <dlechner@baylibre.com> says:

While compile-testing things to make sure I wasn't breaking other
platforms when making mach-wide changes for mediatek, I kept getting a
warning about a a SPI controller node with the wrong name in
mt7622.dtsi. The first patch addresses this. And since we are here, I
added a second patch to generic names in general in that file even if
they aren't causing warnings.

Link: https://lore.kernel.org/r/20260209-mtk-dtb-fix-spi-bus-bridge-warning-v1-0-84e3e2d8352d@baylibre.com
2 months agoarm: dts: mt7622: Use generic node names
David Lechner [Mon, 9 Feb 2026 17:26:56 +0000 (11:26 -0600)] 
arm: dts: mt7622: Use generic node names

Replace node names in mt7622.dtsi with generic names. This makes it more
consistent with the upstream bindings.

Signed-off-by: David Lechner <dlechner@baylibre.com>
2 months agoarm: dts: mt7622: Fix SPI bus bridge warning
David Lechner [Mon, 9 Feb 2026 17:26:55 +0000 (11:26 -0600)] 
arm: dts: mt7622: Fix SPI bus bridge warning

Change SPI node name to generic "spi" in mt7622.dtsi. This fixes the
following compile warning:

    w+../arch/arm/dts/mt7622.dtsi:56.22-65.4: Warning (spi_bus_bridge): /snor@11014000: node name for SPI buses should be 'spi'
    w+arch/arm/dts/mt7622-rfb.dtb: Warning (spi_bus_reg): Failed prerequisite 'spi_bus_bridge'

Signed-off-by: David Lechner <dlechner@baylibre.com>
2 months agopinctrl: mediatek: set MT798x rev as MTK_PINCTRL_V1
Shiji Yang [Sat, 31 Jan 2026 02:33:50 +0000 (10:33 +0800)] 
pinctrl: mediatek: set MT798x rev as MTK_PINCTRL_V1

The MT798x series SoCs have IES regiter definitions. They should
belong to the pinctrl v1 revision.

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
2 months agopinctrl: mediatek: add pinctrl driver for MT8195
Chris-QJ Chen [Mon, 2 Feb 2026 12:19:57 +0000 (13:19 +0100)] 
pinctrl: mediatek: add pinctrl driver for MT8195

Add support for MT8195 pinctrl. The driver is based on the kernel one.

Signed-off-by: Chris-QJ Chen <chris-qj.chen@mediatek.com>
Signed-off-by: Julien Stephan <jstephan@baylibre.com>
2 months agoMerge patch series "Add MT8195 support"
Tom Rini [Wed, 18 Feb 2026 18:03:46 +0000 (12:03 -0600)] 
Merge patch series "Add MT8195 support"

Julien Stephan <jstephan@baylibre.com> says:

This series adds basic support for Mediatek soc MT8195:
- clock driver
- watchdog
- add a new macro helper to define gate clock. Other driver can be
  cleaned later to use the new macro

Other driver will be added later.

It will also serve as basis for board support such as MT8395_EVK based
on MT8195.

Link: https://lore.kernel.org/r/20260202-add-mt8195-clock-support-v1-0-5d03495246b9@baylibre.com
2 months agoclk: mediatek: add MT8195 clock driver
Chris-QJ Chen [Mon, 2 Feb 2026 12:08:13 +0000 (13:08 +0100)] 
clk: mediatek: add MT8195 clock driver

 The following clocks have been added for MT8195 SoC:
 apmixedsys, topckgen, infracfg

 These clocks driver are based on the ones present in the kernel:
 drivers/clk/mediatek/clk-mt8195-*

Signed-off-by: Chris-QJ Chen <chris-qj.chen@mediatek.com>
Signed-off-by: Julien Stephan <jstephan@baylibre.com>
2 months agoclk: mediatek: implement GATE_FLAGS macro
Julien Stephan [Mon, 2 Feb 2026 12:08:12 +0000 (13:08 +0100)] 
clk: mediatek: implement GATE_FLAGS macro

Add helper macro for mtk_gate, the same way, there are macros for
FIXED_CLK, MUX and FACTOR.

Signed-off-by: Julien Stephan <jstephan@baylibre.com>
2 months agoarm: mediatek: add support for MediaTek MT8195 SoC
Julien Stephan [Mon, 2 Feb 2026 12:08:11 +0000 (13:08 +0100)] 
arm: mediatek: add support for MediaTek MT8195 SoC

This adds basic support for MediaTek MT8195 SoC.

Add watchdog support by adding upstream compatible string.

Signed-off-by: Julien Stephan <jstephan@baylibre.com>
2 months agoMerge patch series "clk: mediatek: mt8188: fix clocks"
Tom Rini [Wed, 18 Feb 2026 18:00:45 +0000 (12:00 -0600)] 
Merge patch series "clk: mediatek: mt8188: fix clocks"

Julien Stephan <jstephan@baylibre.com> says:

I recently submitted the clock driver for MT8188. I naively submitted a
driver that was ported from the kernel driver, and mostly work to boot a
kernel.

Recently David Lechner, added support for the clk dump command for
Mediatek clock drivers, so I used it to check the MT8188 and found
several issues fixed on this series:

- removed topckgen_cg, gates are now part of topckgen
- fixed several parents clocks
- added missing fixed clocks

While at it, I also refactored a bit the driver to improve readability,
and future additions to it.

Link: https://lore.kernel.org/r/20260202-mt8188-fix-clock-v2-0-b39bddfcac66@baylibre.com
2 months agoclk: mediatek: mt8188: refactor driver to improve readability
Julien Stephan [Mon, 2 Feb 2026 12:41:53 +0000 (13:41 +0100)] 
clk: mediatek: mt8188: refactor driver to improve readability

Refactor some part of the driver to improve readability and future
additions:

- use CLK_TOP_NR_CLK for added clocks
- rename the id map to make it more clear that the map applies to top
  clocks only
- refactor the id map to improve readability
- xtal2_rate is only used for PLL clocks, so only the apmixedsys clock
  tree needs it. Remove it elsewhere.

Signed-off-by: Julien Stephan <jstephan@baylibre.com>
2 months agoclk: mediatek: mt8188: fix some clock parents
Julien Stephan [Mon, 2 Feb 2026 12:41:52 +0000 (13:41 +0100)] 
clk: mediatek: mt8188: fix some clock parents

Fix a number of clock parent definitions for MT8188 clocks.

Signed-off-by: Julien Stephan <jstephan@baylibre.com>
2 months agoclk: mediatek: mt8188: add missing fixed clock
Julien Stephan [Mon, 2 Feb 2026 12:41:51 +0000 (13:41 +0100)] 
clk: mediatek: mt8188: add missing fixed clock

CLK_TOP_CLK13M was missing, add it.

Signed-off-by: Julien Stephan <jstephan@baylibre.com>
2 months agoclk: mediatek: mt8188: fix circular clock dependency
Julien Stephan [Mon, 2 Feb 2026 12:41:50 +0000 (13:41 +0100)] 
clk: mediatek: mt8188: fix circular clock dependency

FACTOR1(CLK_TOP_APLL1_D4, CLK_TOP_APLL1, 1, 3)
--> CLK_TOP_APLL1_D4 declares CLK_TOP_APLL1 as it's parents

MUX_GATE(CLK_TOP_APLL1, apll1_parents, 0x0F8, 0, 4, 7)
--> CLK_TOP_APLL1 declares apll1_parents as it's parents

static const int apll1_parents[] = {
CLK_TOP_CLK26M,
CLK_TOP_APLL1_D4
};
--> CLK_TOP_APLL1_D4 is a parent of CLK_TOP_APLL1

Fix this, by correctly setting CLK_TOP_APLL1_DX parent to CLK_APMIXED_APLLX

Signed-off-by: Julien Stephan <jstephan@baylibre.com>
2 months agoclk: mediatek: mt8188: remove separate topckgen-cg driver
Julien Stephan [Mon, 2 Feb 2026 12:41:49 +0000 (13:41 +0100)] 
clk: mediatek: mt8188: remove separate topckgen-cg driver

Remove the separate topckgen-cg driver for handling clock gates in the
topckgen address space.
Commit 8aeeeff50d46 ("clk: mediatek: allow gates in topckgen drivers")
added support for gates in topckgen driver.
This commit fixes MT8188 driver, the same way commit ba207d7f54f9 ("clk:
mediatek: mt8365: remove separate topckgen-cg driver") does for MT8365.

Signed-off-by: Julien Stephan <jstephan@baylibre.com>
2 months agoboard: mediatek: add MT8370 EVK board support
Julien Stephan [Tue, 10 Feb 2026 09:34:01 +0000 (10:34 +0100)] 
board: mediatek: add MT8370 EVK board support

This adds support for the MT8370 EVK board with the following
features enabled/tested: Boot, UART, Watchdog and MMC.

MT8370 is based on MT8188.

Reviewed-by: Macpaul Lin <macpaul.lin@mediatek.com>
Signed-off-by: Julien Stephan <jstephan@baylibre.com>
2 months agoMerge patch series "arm: mediatek: clean up some redundant board init"
Tom Rini [Wed, 18 Feb 2026 17:57:24 +0000 (11:57 -0600)] 
Merge patch series "arm: mediatek: clean up some redundant board init"

David Lechner <dlechner@baylibre.com> says:

Before adding more targets, we take a moment to clean up some some
redundant code in existing Mediatek SoC support.

The first three patches are removing no-op functions. The last patch
generalizes the mem_map code so that it can be shared between all
Mediatek ARMv8 SoCs.

Link: https://lore.kernel.org/r/20260209-mtk-mach-clean-up-duplicates-v2-0-e3b22282c74d@baylibre.com
2 months agoarm: mediatek: add CONFIG_MTK_MEM_MAP_DDR_BASE_PHY
David Lechner [Mon, 9 Feb 2026 16:39:32 +0000 (10:39 -0600)] 
arm: mediatek: add CONFIG_MTK_MEM_MAP_DDR_BASE_PHY

Add a CONFIG_MTK_MEM_MAP_DDR_BASE_PHY variable to specify the DDR base
physical address for the Mediatek ARMv8 memory map. This will be used
by MT8196 in the future which has a different DDR base address than
other Mediatek SoCs.

Signed-off-by: David Lechner <dlechner@baylibre.com>
Reviewed-by: Macpaul Lin <macpaul.lin@mediatek.com>
2 months agoarm: mediatek: consolidate ARMv8 memory maps
David Lechner [Mon, 9 Feb 2026 16:39:31 +0000 (10:39 -0600)] 
arm: mediatek: consolidate ARMv8 memory maps

Consolidate all mem_map definitions for MediaTek ARMv8 platforms into a
single file. The size of the DDR and MMIO regions can vary, so Kconfig
options are added to configure them by target.

Signed-off-by: David Lechner <dlechner@baylibre.com>
2 months agoboard/mediatek: move EVK MAINTAINERS to common file
David Lechner [Mon, 9 Feb 2026 16:39:30 +0000 (10:39 -0600)] 
board/mediatek: move EVK MAINTAINERS to common file

Move the mt8365_evk and mt8390_evk MAINTAINERS files to a common
MAINTAINERS file. We will be deleting the board-specific directories
soon but we need to keep the MAINTAINERS for the defconfig entries.

Signed-off-by: David Lechner <dlechner@baylibre.com>
2 months agoarm: mediatek: make mtk_pll_early_init() static
David Lechner [Mon, 9 Feb 2026 16:39:29 +0000 (10:39 -0600)] 
arm: mediatek: make mtk_pll_early_init() static

Make the mtk_pll_early_init() function static in several files. It is
only used within those files, so there is no need to have it in the
global namespace.

Reviewed-by: Macpaul Lin <macpaul.lin@mediatek.com>
2 months agoarm: mediatek: mt8183: remove unused function
David Lechner [Mon, 9 Feb 2026 16:39:28 +0000 (10:39 -0600)] 
arm: mediatek: mt8183: remove unused function

Remove the mtk_pll_early_init() function as it is not used anywhere.

Signed-off-by: David Lechner <dlechner@baylibre.com>
Reviewed-by: Macpaul Lin <macpaul.lin@mediatek.com>
2 months agoboard: mediatek: mt8390_evk: remove empty board_init()
David Lechner [Mon, 9 Feb 2026 16:39:27 +0000 (10:39 -0600)] 
board: mediatek: mt8390_evk: remove empty board_init()

Remove empty board_init() function and adjust defconfig to not require
it.

Signed-off-by: David Lechner <dlechner@baylibre.com>
Reviewed-by: Macpaul Lin <macpaul.lin@mediatek.com>
2 months agoarm: mediatek: use default weak mtk_soc_early_init()
David Lechner [Mon, 9 Feb 2026 16:39:26 +0000 (10:39 -0600)] 
arm: mediatek: use default weak mtk_soc_early_init()

Add a weak default implementation of mtk_soc_early_init() in spl.c to
avoid having to define it in every SoC init.c file that does not need
any additional early initialization.

The init.h header file is no longer needed in this case and is removed.

Signed-off-by: David Lechner <dlechner@baylibre.com>
2 months agoMerge patch series "Implement all missing SMBIOS types required by distro tooling"
Tom Rini [Wed, 18 Feb 2026 14:27:58 +0000 (08:27 -0600)] 
Merge patch series "Implement all missing SMBIOS types required by distro tooling"

Raymond Mao <raymondmaoca@gmail.com> says:

From: Raymond Mao <raymond.mao@riscstar.com>

This series finish the last missing puzzle of required SMBIOS types by:
1) Fixing duplicated handles when multiple instances exist in one type;
2) Implementing the rest of required types 9/16/17/19;
3) Adding version control when printing properties for all types.

Type 9/16/17/19 are generally DT-based, the idea is to write these tables
using a hybrid approach:
Explicit DT definitions under existing '/smbios/smbios' take precedence,
with fallback to scan and interpret values from the entire DT.

Moreover, all below APIs:
smbios_get_val_si()
smbios_get_u64_si()
smbios_add_prop_si()
are on top of sysinfo, thus allow vendors to get values from other
subsystems by implementing their own sysinfo driver if needed.

Link: https://lore.kernel.org/r/20260213225254.2544596-1-raymondmaoca@gmail.com
2 months agosmbios: print the properties only when they exist in a specified version of spec
Raymond Mao [Fri, 13 Feb 2026 22:52:51 +0000 (17:52 -0500)] 
smbios: print the properties only when they exist in a specified version of spec

By checking the payload length, we can know the version of the spec and
skip the ones which are not expected to exist.

Signed-off-by: Raymond Mao <raymondmaoca@gmail.com>
Tested-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2 months agosmbios: add support for dynamic generation of Type 19 table
Raymond Mao [Fri, 13 Feb 2026 22:52:50 +0000 (17:52 -0500)] 
smbios: add support for dynamic generation of Type 19 table

This commit implements SMBIOS Type 19 (Memory Array Mapped Address)
generation with a hybrid approach supporting both:

1. Explicit definition via Device Tree 'smbios' node:
   Child node under '/smbios/smbios/memory-array-mapped-address' will be
   used to populate as individual Type 19 structure directly.
   - Properties follow SMBIOS field names with lowercase letters and
     hyphen-separated words (e.g., 'starting-address', 'ending-address',
     'partition-width', etc.).
   - This method supports precise platform-defined overrides and system
     descriptions.

2. Fallback to automatic DT-based discovery:
   If child node under '/smbios/smbios/memory-array-mapped-address' does
   not exist, the implementation will:
   - Scan all top-level 'memory@' nodes to populate Type 19 structure with
     inferred size and location data.
   - Scan nodes named or marked as 'memory-controller' and parse
     associated 'dimm@' subnodes (if present) to extract DIMM sizes and
     map them accordingly.

This dual-mode support enables flexible firmware SMBIOS reporting while
aligning with spec-compliant naming and runtime-detected memory topology.

Type 19 support is under GENERATE_SMBIOS_TABLE_VERBOSE to avoid
increasing rom size for those platforms which only require basic SMBIOS
support.

Signed-off-by: Raymond Mao <raymondmaoca@gmail.com>
Tested-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2 months agosmbios: add support for dynamic generation of Type 17 table
Raymond Mao [Fri, 13 Feb 2026 22:52:49 +0000 (17:52 -0500)] 
smbios: add support for dynamic generation of Type 17 table

This commit implements SMBIOS Type 17 (Memory Device) generation with a
hybrid approach supporting both:

1. Explicit definition via Device Tree 'smbios' node:
   Child node under '/smbios/smbios/memory-device' will be used to
   populate as individual Type 17 structure directly.
   - Properties follow SMBIOS field names with lowercase letters and
     hyphen-separated words (e.g., 'physical-memory-array-handle',
     ' memory-error-information-handle', 'configured-memory-speed', etc.).
   - This method supports precise platform-defined overrides and system
     descriptions.

2. Fallback to automatic DT-based discovery:
   If child node under '/smbios/smbios/memory-device' does not exist,
   the implementation will:
   - Scan all top-level 'memory@' nodes to populate Type 17 structure with
     inferred size and location data.
   - Scan nodes named or marked as 'memory-controller' and parse
     associated 'dimm@' subnodes (if present) to extract DIMM sizes and
     map them accordingly.

This dual-mode support enables flexible firmware SMBIOS reporting while
aligning with spec-compliant naming and runtime-detected memory topology.

Type 17 support is under GENERATE_SMBIOS_TABLE_VERBOSE to avoid
increasing rom size for those platforms which only require basic SMBIOS
support.

Signed-off-by: Raymond Mao <raymondmaoca@gmail.com>
Tested-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2 months agosmbios: add support for dynamic generation of Type 16 table
Raymond Mao [Fri, 13 Feb 2026 22:52:48 +0000 (17:52 -0500)] 
smbios: add support for dynamic generation of Type 16 table

This commit implements SMBIOS Type 16 (Physical Memory Array)
generation with a hybrid approach supporting both:

1. Explicit definition via Device Tree 'smbios' node:
   Child node under '/smbios/smbios/memory-array' will be used to
   populate as individual Type 16 structure directly.
   - Properties follow SMBIOS field names with lowercase letters and
     hyphen-separated words (e.g., 'memory-error-correction',
     'maximum-capacity', 'extended-maximum-capacity', etc.).
   - This method supports precise platform-defined overrides and system
     descriptions.

2. Fallback to automatic DT-based discovery:
   If child node under '/smbios/smbios/memory-array' does not exist,
   the implementation will:
   - Scan all top-level 'memory@' nodes to populate Type 16 structure with
     inferred size and location data.
   - Scan nodes named or marked as 'memory-controller' and parse
     associated 'dimm@' subnodes (if present) to extract DIMM sizes and
     map them accordingly.

This dual-mode support enables flexible firmware SMBIOS reporting while
aligning with spec-compliant naming and runtime-detected memory topology.

Type 16 support is under GENERATE_SMBIOS_TABLE_VERBOSE to avoid
increasing rom size for those platforms which only require basic SMBIOS
support.

Signed-off-by: Raymond Mao <raymondmaoca@gmail.com>
Tested-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2 months agosmbios: add support for dynamic generation of Type 9 system slot tables
Raymond Mao [Fri, 13 Feb 2026 22:52:47 +0000 (17:52 -0500)] 
smbios: add support for dynamic generation of Type 9 system slot tables

This commit introduces support for generating SMBIOS Type 9 (System Slot)
tables using a hybrid approach:

1. Explicit Device Tree definitions:
   Child node under '/smbios/smbios/system-slot' will be interpreted as
   individual slot definitions.
   - Each child represents a slot (e.g., isa, pcmcia, etc.).
   - Properties follow the SMBIOS specification using lowercase
     hyphen-separated names such as 'slot-type', 'slot-id',
     'segment-group-number', 'bus-number', 'slot-information', etc.
   - This approach allows full customization of each system slot and is
     especially suitable for platforms with well-defined slot topology.

2. Automatic detection fallback:
   If child node under '/smbios/smbios/system-slot' does not exist, the
   implementation will scan the entire device tree for nodes whose
   'device_type' matches known slot-related types ("pci", "isa", "pcmcia",
   etc.).
   - When a match is found, default values or heuristics are applied to
     populate to the System Slot table.
   - This mode is useful for platforms that lack explicit SMBIOS nodes
     but still expose slot topology via standard DT conventions.

Together, two approaches ensure that SMBIOS Type 9 entries are available
whether explicitly described or automatically derived.

Signed-off-by: Raymond Mao <raymondmaoca@gmail.com>
Tested-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2 months agosmbios: Fix duplicated smbios handles
Raymond Mao [Fri, 13 Feb 2026 22:52:46 +0000 (17:52 -0500)] 
smbios: Fix duplicated smbios handles

Some smbios types can have multiple instances (e.g. Type 7, 9, 16, 17,
19), thus the 'handle' argument should be a pointer so that the value
can be accumulated when writing all the instances.
This also fix the observed duplicated Type 7 handles.

Fixes: bcf456dd369e ("smbios: add detailed smbios information")
Signed-off-by: Raymond Mao <raymondmaoca@gmail.com>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Tested-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2 months agoMerge patch series "treewide: Clean up usage of DECLARE_GLOBAL_DATA_PTR"
Tom Rini [Tue, 17 Feb 2026 19:51:26 +0000 (13:51 -0600)] 
Merge patch series "treewide: Clean up usage of DECLARE_GLOBAL_DATA_PTR"

Peng Fan (OSS) <peng.fan@oss.nxp.com> says:

This patch set primarily removes unused DECLARE_GLOBAL_DATA_PTR
instances.

Many files declare DECLARE_GLOBAL_DATA_PTR and include
asm/global_data.h even though gd is never used. In these cases,
asm/global_data.h is effectively treated as a proxy header, which is
not a good practice.

Following the Include What You Use principle, files should include
only the headers they actually depend on, rather than relying on
global_data.h indirectly. This approach is also adopted in Linux kernel
[1].

The first few patches are prepartion to avoid building break after
remove the including of global_data.h.

A script is for filtering the files:
list=`find . -name "*.[ch]"`
for source in ${list}
do
        result=`sed -n '/DECLARE_GLOBAL_DATA_PTR/p' ${source}`
        if [ "${result}" == "DECLARE_GLOBAL_DATA_PTR;" ]; then
                echo "Found in ${source}"

                result=`sed -n '/\<gd\>/p' ${source}`
                result2=`sed -n '/\<gd_/p' ${source}`
                result3=`sed -n '/\<gd->/p' ${source}`
                if [ "${result}" == "" ] && [ "${result2}" == "" ] && [ "${result3}" == "" ];then
                        echo "Cleanup ${source}"
                        sed -i '/DECLARE_GLOBAL_DATA_PTR/{N;/\n[[:space:]]*$/d;s/.*\n//;}' ${source}
                        sed -i '/DECLARE_GLOBAL_DATA_PTR/d' ${source}
                        sed -i '/global_data.h/d' ${source}
                        git add ${source}
                fi
        fi
done

[1] https://lpc.events/event/17/contributions/1620/attachments/1228/2520/Linux%20Kernel%20Header%20Optimization.pdf

CI: https://github.com/u-boot/u-boot/pull/865

Link: https://lore.kernel.org/r/20260209-cleanup-v2-0-73a3a84ddbdb@nxp.com
2 months agotreewide: Clean up DECLARE_GLOBAL_DATA_PTR usage
Peng Fan [Mon, 9 Feb 2026 01:30:18 +0000 (09:30 +0800)] 
treewide: Clean up DECLARE_GLOBAL_DATA_PTR usage

Remove DECLARE_GLOBAL_DATA_PTR from files where gd is not used, and
drop the unnecessary inclusion of asm/global_data.h.

Headers should be included directly by the files that need them,
rather than indirectly via global_data.h.

Reviewed-by: Patrice Chotard <patrice.chotard@foss.st.com> #STMicroelectronics boards and STM32MP1 ram test driver
Tested-by: Anshul Dalal <anshuld@ti.com> #TI boards
Acked-by: Yao Zi <me@ziyao.cc> #TH1520
Signed-off-by: Peng Fan <peng.fan@nxp.com>
2 months agosocfpga: clock_manager_s10: Add missing header files
Peng Fan [Mon, 9 Feb 2026 01:30:17 +0000 (09:30 +0800)] 
socfpga: clock_manager_s10: Add missing header files

struct udevice and u32 are used in this file. Add missing header to avoid
building break after asm/global_data.h is removed from this file.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
2 months agorenesas: common: Include asm-generic/u-boot.h
Peng Fan [Mon, 9 Feb 2026 01:30:16 +0000 (09:30 +0800)] 
renesas: common: Include asm-generic/u-boot.h

struct bd_info is defined in asm-generic/u-boot.h. Include it to avoid
building error after asm/global_data.h are removed from this file.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
2 months agopci: layerspace: Add missing header files
Peng Fan [Mon, 9 Feb 2026 01:30:15 +0000 (09:30 +0800)] 
pci: layerspace: Add missing header files

struct fdt_resource, u32 and bool types are used in this header, add
missing header files following "include what you use".

Signed-off-by: Peng Fan <peng.fan@nxp.com>
2 months agonxp: emc2305: Cleanup headers
Peng Fan [Mon, 9 Feb 2026 01:30:14 +0000 (09:30 +0800)] 
nxp: emc2305: Cleanup headers

There is no user of gd, drop the usage of DECLARE_GLOBAL_DATA_PTR and
the including of "asm/global_data.h". Include config.h to avoid
build error.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
2 months agorockchip: evk_rk3308: Cleanup headers
Peng Fan [Mon, 9 Feb 2026 01:30:13 +0000 (09:30 +0800)] 
rockchip: evk_rk3308: Cleanup headers

There is no user of 'gd', so drop the usage of DECLARE_GLOBAL_DATA_PTR
and the including of 'asm/global_data.h'. Also include correct headers
to avoid build error.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
2 months agotegra: pmc: Cleanup headers
Peng Fan [Mon, 9 Feb 2026 01:30:12 +0000 (09:30 +0800)] 
tegra: pmc: Cleanup headers

No gd users, so remove DECLARE_GLOBAL_DATA_PTR and the including of
"asm/global_data.h". And include "asm/arch-tegra/tegra.h" to avoid
build error.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
2 months agotoradex: common: Add missing headers
Peng Fan [Mon, 9 Feb 2026 01:30:11 +0000 (09:30 +0800)] 
toradex: common: Add missing headers

Include linux/types.h and asm-generic/u-boot.h. Missing the two header
files will cause building error after cleaning up usage of
asm/global_data.h.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
2 months agoxtensa: relocate: Add missing headers
Peng Fan [Mon, 9 Feb 2026 01:30:10 +0000 (09:30 +0800)] 
xtensa: relocate: Add missing headers

memset and size_t are used in this file, so add missing headers.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
2 months agotest: log_filter: Include vsprintf.h
Peng Fan [Mon, 9 Feb 2026 01:30:09 +0000 (09:30 +0800)] 
test: log_filter: Include vsprintf.h

snprintf is used, need to include vsprintf.h. Otherwise there will
be build error after asm/global_data.h is removed.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
2 months agocmd: mem: Include vsprintf.h
Peng Fan [Mon, 9 Feb 2026 01:30:08 +0000 (09:30 +0800)] 
cmd: mem: Include vsprintf.h

hextoul is used in this file, so include header file vsprintf.h.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
2 months agocommon: cli_hush: Include vsprintf.h
Peng Fan [Mon, 9 Feb 2026 01:30:07 +0000 (09:30 +0800)] 
common: cli_hush: Include vsprintf.h

sprintf is used in this file, so include header vsprintf.h.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
2 months agomediatek: mt7622: Drop useless board files
Peng Fan [Mon, 9 Feb 2026 01:30:06 +0000 (09:30 +0800)] 
mediatek: mt7622: Drop useless board files

No functions except reserving gd in the board files. The files are
useless, remove them.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
2 months agobeacon: imx8mm/n: Drop useless files
Peng Fan [Mon, 9 Feb 2026 01:30:05 +0000 (09:30 +0800)] 
beacon: imx8mm/n: Drop useless files

No functions except reserving gd in the board files. The files are
useless, remove them.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
2 months 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>
2 months 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>
2 months 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>
2 months 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>
2 months 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>
2 months 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>
2 months 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>
2 months 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.

2 months agoMerge tag 'xilinx-for-v2026.07-rc1' of https://source.denx.de/u-boot/custodians/u...
Tom Rini [Mon, 16 Feb 2026 15:04:55 +0000 (09:04 -0600)] 
Merge tag 'xilinx-for-v2026.07-rc1' of https://source.denx.de/u-boot/custodians/u-boot-microblaze into next

AMD/Xilinx/FPGA changes for v2026.07-rc1

gpio:
- Add gpio delay driver

zynqmp:
- Wire gpio usb delay
- Enable SPL pinctrl per pin

xilinx:
- Enable NFS support

versal2:
- Extend DDR initialization

zynqmp-rtc:
- Use clock framework for calibration value

2 months agoMerge tag 'ab-next-13022026' of https://source.denx.de/u-boot/custodians/u-boot-tpm...
Tom Rini [Mon, 16 Feb 2026 15:04:33 +0000 (09:04 -0600)] 
Merge tag 'ab-next-13022026' of https://source.denx.de/u-boot/custodians/u-boot-tpm into next

CI: https://source.denx.de/u-boot/custodians/u-boot-tpm/-/pipelines/29283

An update on AB subsystem allowing multiple FWU metadata
storage drivers to be selected simultaneously instead of
being mutually exclusive. The board can then select the
appropriate driver at runtime based on the devicetree
description.

2 months 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>
2 months 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

2 months agoMerge tag 'efi-next-2026-02-15' of https://source.denx.de/u-boot/custodians/u-boot...
Tom Rini [Sun, 15 Feb 2026 19:28:32 +0000 (13:28 -0600)] 
Merge tag 'efi-next-2026-02-15' of https://source.denx.de/u-boot/custodians/u-boot-efi into next

Pull request efi-next-2026-02-15

CI: https://source.denx.de/u-boot/custodians/u-boot-efi/-/jobs/1380382

UEFI:

* Add MBR support to EFI_PARTITION_INFO_PROTOCOL
  * disk: part_dos: Move header to the main include directory
  * disk: part_dos: Align dos_partition_t with struct partition
  * disk: part_efi: Remove redundant struct partition definition
  * disk: part_dos: Document part_get_info_extended() helper function
  * disk: part_dos: Refactor to allow retrieving raw MBR partition data
  * efi_loader: disk: Extend EFI_PARTITION_INFO_PROTOCOL to support MBR
  * efi_selftest: Enhance MBR test for PARTITION_INFO_PROTOCOL

* Prepare for supporting more stores (e.g. SPI-flash) for EFI variables.
  * efi_var: Unify read/write access helper function
  * efi_loader: Setup default location for UEFI Variables storing
  * efi_var_file: refactor to move buffer functions

2 months agoefi_loader: Setup default location for UEFI Variables storing
Michal Simek [Wed, 11 Feb 2026 15:56:22 +0000 (16:56 +0100)] 
efi_loader: Setup default location for UEFI Variables storing

EFI_VARIABLE_FILE_STORE is only available when FAT_WRITE is enabled but
that's not valid for all platforms and dependency should be covered.

Also Kconfig behavior is that if default option is not valid then Kconfig
selects the first presented valid option instead hence it is better to
record EFI_VARIABLE_NO_STORE as safe default option.

Suggested-by: Tom Rini <trini@konsulko.com>
Signed-off-by: Michal Simek <michal.simek@amd.com>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2 months agoefi_var: Unify read/write access helper function
Michal Simek [Wed, 11 Feb 2026 15:56:21 +0000 (16:56 +0100)] 
efi_var: Unify read/write access helper function

efi_var_to/from_file() suggest method where variables are placed. But there
is no reason for it and generic name can be used to wire also different
locations for variables.

Signed-off-by: Michal Simek <michal.simek@amd.com>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Tested-by: Neil Armstrong <neil.armstrong@linaro.org> # on AML-S905D3-CC
Reviewed-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2 months agoefi_var_file: refactor to move buffer functions
Shantur Rathore [Wed, 11 Feb 2026 15:56:20 +0000 (16:56 +0100)] 
efi_var_file: refactor to move buffer functions

Currently efi_var_file.c has functions to store/read
EFI variables to/from memory buffer. These functions
can be used with other EFI variable stores so move
them out to efi_var_common.c

Signed-off-by: Shantur Rathore <i@shantur.com>
Signed-off-by: Michal Simek <michal.simek@amd.com>
Tested-by: Neil Armstrong <neil.armstrong@linaro.org> # on AML-S905D3-CC
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Reviewed-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2 months agoefi_selftest: Enhance MBR test for PARTITION_INFO_PROTOCOL
Javier Martinez Canillas [Thu, 12 Feb 2026 20:45:01 +0000 (21:45 +0100)] 
efi_selftest: Enhance MBR test for PARTITION_INFO_PROTOCOL

The EFI_PARTITION_INFO_PROTOCOL test was added before the protocol fully
supported MBR partitions. As a result, it lacked specific checks for the
content of the raw MBR partition record.

Now that MBR support has been implemented, enhance the selftest to provide
coverage for the MBR entries too.

This verifies that the protocol correctly reads and exposes MBR partition
records and prevents this functionality to regress due future changes.

Signed-off-by: Javier Martinez Canillas <javierm@redhat.com>
Acked-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Reviewed-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2 months agoefi_loader: disk: Extend EFI_PARTITION_INFO_PROTOCOL to support MBR
Javier Martinez Canillas [Thu, 12 Feb 2026 20:45:00 +0000 (21:45 +0100)] 
efi_loader: disk: Extend EFI_PARTITION_INFO_PROTOCOL to support MBR

The EFI_PARTITION_INFO_PROTOCOL provides detailed information about
partitions. The UEFI specification mentions that both GPT and MBR
partition schemes are supported, but the U-Boot implementation only
supports the former.

This can cause compatibility issues for platforms whose boot ROM only
supports MBR. This change adds support for MBR partition tables to
the protocol, making U-Boot compatible with systems that require a
legacy MBR table.

Signed-off-by: Javier Martinez Canillas <javierm@redhat.com>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2 months agodisk: part_dos: Refactor to allow retrieving raw MBR partition data
Javier Martinez Canillas [Thu, 12 Feb 2026 20:44:59 +0000 (21:44 +0100)] 
disk: part_dos: Refactor to allow retrieving raw MBR partition data

Refactor the part_get_info_extended() helper function (which already
recursively traverses DOS partitions) to optionally return the raw MBR
partition structure (dos_partition_t).

This allows other subsystems, such as EFI, to retrieve the partition
details in the legacy MBR format.

Signed-off-by: Javier Martinez Canillas <javierm@redhat.com>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2 months agodisk: part_dos: Document part_get_info_extended() helper function
Javier Martinez Canillas [Thu, 12 Feb 2026 20:44:58 +0000 (21:44 +0100)] 
disk: part_dos: Document part_get_info_extended() helper function

The function receives many parameters but these are not documented.
Add a description for these to make it easier to follow what it does.

Suggested-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Signed-off-by: Javier Martinez Canillas <javierm@redhat.com>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2 months agodisk: part_efi: Remove redundant struct partition definition
Javier Martinez Canillas [Thu, 12 Feb 2026 20:44:57 +0000 (21:44 +0100)] 
disk: part_efi: Remove redundant struct partition definition

Now that dos_partition_t and struct partition are identical, the duplicated
data structure definition in the part_efi.h header can just be removed.

This results in a single, shared definition for MBR partition table
entries, instead of having the same definition in two different places.

Signed-off-by: Javier Martinez Canillas <javierm@redhat.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2 months agodisk: part_dos: Align dos_partition_t with struct partition
Javier Martinez Canillas [Thu, 12 Feb 2026 20:44:56 +0000 (21:44 +0100)] 
disk: part_dos: Align dos_partition_t with struct partition

The dos_partition_t struct defined in part_dos.h is nearly identical to
the struct partition defined in part_efi.h. They differ primarily in how
define their starting sector and number of sectors fields.

The former uses unsigned char arrays while the latter uses __le32 types.
Using __le32 is preferable, as it removes the ambiguity and potential
misuse of a raw byte array. This also aligns the structure with how the
Linux kernel defines it nowadays, which is the original source of it.

To prepare for future consolidation where one of the data structures can
be removed, this change aligns both definitions and updates all accessors
for dos_partition_t.

Signed-off-by: Javier Martinez Canillas <javierm@redhat.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2 months agodisk: part_dos: Move header to the main include directory
Javier Martinez Canillas [Thu, 12 Feb 2026 20:44:55 +0000 (21:44 +0100)] 
disk: part_dos: Move header to the main include directory

There are two different struct definitions for MBR partition table
entries: one in part_dos.h and a nearly identical one in part_efi.h.

To enable future consolidation of these two structures, move part_dos.h
to the main include directory. This makes it accessible from other parts
of the codebase, such as part_efi.h, and is the first step toward removing
the redundant definition.

Signed-off-by: Javier Martinez Canillas <javierm@redhat.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2 months 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>
2 months 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>
2 months agoMerge tag 'u-boot-socfpga-next-20260213' of https://source.denx.de/u-boot/custodians...
Tom Rini [Sat, 14 Feb 2026 14:58:38 +0000 (08:58 -0600)] 
Merge tag 'u-boot-socfpga-next-20260213' of https://source.denx.de/u-boot/custodians/u-boot-socfpga into next

This pull request updates SoCFPGA platforms with DDR improvements, new
board support, Agilex5 enhancements and general cleanup across the
codebase.

DDR and memory handling

  * Add DRAM size checking support for Arria10.
  * Widen MEM_TOTAL_CAPACITY mask handling in IOSSM mailbox driver.
  * Assign unit address to memory node for improved memory
    representation and consistency.

Agilex / Agilex5 updates

  * Restore multi-DTB support for NAND boot and fix NAND clock handling.
  * Enable SD card UHS mode and eMMC HS200/HS400 mode support on Agilex5.
  * Fix DT property naming conventions for Agilex5.
  * Exclude AGILEX_L4_SYS_FREE_CLK from clock enable/disable operations
    to avoid unintended clock control.

New board support

  * Add support for CoreCourse Cyclone V boards:
     * AC501
     * AC550
Including device trees, QTS configuration, defconfigs and maintainers
entries.

Fixes and cleanup

  * Fix GEN5 handoff script path.
  * Remove incorrect CONFIG_SPL_LDSCRIPT settings.
  * Replace legacy TARGET namespace and perform related cleanup across
    SoCFPGA code.
  * General Kconfig, build and SoCFPGA maintenance updates.

Overall this pull request improves platform robustness, adds new board
coverage and cleans up legacy configuration usage across the SoCFPGA
U-Boot codebase.

[trini: Change TARGET_SOCFPGA_CYCLONE5 to ARCH_SOCFPGA_CYCLONE5 in the
new platforms this added]
Signed-off-by: Tom Rini <trini@konsulko.com>
2 months agosoft_spi performance enhancement
Jean-Marie Verdun [Tue, 10 Jun 2025 16:38:35 +0000 (16:38 +0000)] 
soft_spi performance enhancement

Add a test when delay is set to 0 to improve performances
by 20% on ARM based systems

Signed-off-by: Jean-Marie Verdun <verdun@hpe.com>
Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>