]> git.ipfire.org Git - thirdparty/u-boot.git/log
thirdparty/u-boot.git
4 months agoarm: dts: capricorn: pinctrl_usdhc1 cleanup
Lukas Stockmann [Tue, 17 Feb 2026 16:39:01 +0000 (17:39 +0100)] 
arm: dts: capricorn: pinctrl_usdhc1 cleanup

gpio4.29 belongs to eth0 and not to emmc0 and is
handled by the mainboard dts and not here in the
cpu module dtsi.

Signed-off-by: Lukas Stockmann <lukas.stockmann@siemens.com>
Signed-off-by: Heiko Schocher <hs@nabladev.com>
4 months agommc: fsl_esdhc_imx: Skip voltage switching for fixed 1.8V regulator
Kory Maincent [Tue, 17 Feb 2026 13:49:39 +0000 (14:49 +0100)] 
mmc: fsl_esdhc_imx: Skip voltage switching for fixed 1.8V regulator

When using a fixed 1.8V regulator for vqmmc (indicated by vs18_enable),
attempting to change the voltage produces spurious errors since the
regulator cannot be adjusted. The driver currently attempts the voltage
change, receives -ENOSYS from the regulator subsystem, and reports:

  Setting to 1.8V error: -38
  esdhc_set_voltage error -5

Fix this by checking vs18_enable early in esdhc_set_voltage() and
returning -ENOTSUPP for all voltage switch requests, not just 3.3V.
This prevents unnecessary regulator operations and eliminates the
error messages when the hardware is correctly configured with a fixed
1.8V supply.

Signed-off-by: Kory Maincent <kory.maincent@bootlin.com>
4 months agovideo: imx: ipuv3: use clock framework
Brian Ruley [Fri, 13 Feb 2026 08:49:55 +0000 (10:49 +0200)] 
video: imx: ipuv3: use clock framework

Clocks are now configurable via the common clock framework, however,
users have the option use the legacy clocks if desired. The intent is to
keep the changes minimal for this old SoC.

Signed-off-by: Brian Ruley <brian.ruley@gehealthcare.com>
4 months agovideo: imx: ipuv3: move clock code to legacy
Brian Ruley [Fri, 13 Feb 2026 08:49:54 +0000 (10:49 +0200)] 
video: imx: ipuv3: move clock code to legacy

In preparation for CCF migration for IPUv3 separate existing clock code
to legacy files. These will be used by i.MX5 that currently does not
support the CCF. No functional change.

Signed-off-by: Brian Ruley <brian.ruley@gehealthcare.com>
4 months agopwm: pwm-imx: enable ipg or per clks only if CONFIG_CLK enabled
Brian Ruley [Fri, 13 Feb 2026 08:49:53 +0000 (10:49 +0200)] 
pwm: pwm-imx: enable ipg or per clks only if CONFIG_CLK enabled

This caused linker errors in cases where IPUv3 was enabled (which
defines its own clocks).

Fixes: bfc778cb93a ("driver: pwm: pwm-imx: get and enable per/ipg
                     clock using dm")
Signed-off-by: Brian Ruley <brian.ruley@gehealthcare.com>
4 months agoclk: imx6q: add ipu and ldb clocks and dependencies
Brian Ruley [Fri, 13 Feb 2026 08:49:52 +0000 (10:49 +0200)] 
clk: imx6q: add ipu and ldb clocks and dependencies

This is required for the IPUv3 driver to migrate to CCF, changes are
largely based on the Linux kernel equivalent.

Add new gate2_flags function (also present in the Linux code) to set
required flags.

Add usboh clock to get rid of error.

Signed-off-by: Brian Ruley <brian.ruley@gehealthcare.com>
4 months agoclk: imx6q: apply clang-format
Brian Ruley [Fri, 13 Feb 2026 08:49:51 +0000 (10:49 +0200)] 
clk: imx6q: apply clang-format

Reduces the number of checkpatch warnings in the following commits.

Signed-off-by: Brian Ruley <brian.ruley@gehealthcare.com>
4 months agoarch: imx: fix incorrect shutdown call for inactive video devices
Brian Ruley [Fri, 13 Feb 2026 08:49:50 +0000 (10:49 +0200)] 
arch: imx: fix incorrect shutdown call for inactive video devices

Somehow I missed that ipuv3_fb_shutdown() can be called for inactive
devices, resulting in invalid memory access and preventing the kernel
from booting.

Fixes: 32da6773f62 ("video: imx: ipuv3: refactor to use dm-managed state")
Signed-off-by: Brian Ruley <brian.ruley@gehealthcare.com>
Reviewed-by: David Zang <davidzangcs@gmail.com>
4 months agoimx8qx: misc: add command for getting boottype
Heiko Schocher [Fri, 13 Feb 2026 05:15:07 +0000 (06:15 +0100)] 
imx8qx: misc: add command for getting boottype

add boottype command, which saves the boot_type
primary (0) or fallback (1) in environment
variable "boottype". If argument "print" is
passed, it also prints the boottype on console.

Signed-off-by: Heiko Schocher <hs@nabladev.com>
Signed-off-by: Walter Schweizer <walter.schweizer@siemens.com>
4 months agoimx: scu_api: implement sc_misc_get_boot_type
Heiko Schocher [Fri, 13 Feb 2026 05:15:06 +0000 (06:15 +0100)] 
imx: scu_api: implement sc_misc_get_boot_type

add function sc_misc_get_boot_type() which returns the
boot type.

Signed-off-by: Heiko Schocher <hs@nabladev.com>
Signed-off-by: Walter Schweizer <walter.schweizer@siemens.com>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
4 months agoboard: phytec: phycore-imx93: Enter fastboot on USB boot by default
Primoz Fiser [Thu, 12 Feb 2026 08:33:30 +0000 (09:33 +0100)] 
board: phytec: phycore-imx93: Enter fastboot on USB boot by default

In case board is booted from USB, enter fastboot by default to enable
the UUU flashing. In case of abort continue with the regular bootstd
scan. User also has possibility to override the default bootcmd from
the environment. Last but not least, this syncs behavior with other
PHYTEC boards from the i.MX family.

Signed-off-by: Primoz Fiser <primoz.fiser@norik.com>
Reviewed-by: Benjamin Hahn <B.Hahn@phytec.de>
4 months agonxp: imx8mp_evk: Add board_mmc_get_env_dev
Peng Fan [Sun, 8 Feb 2026 14:34:42 +0000 (22:34 +0800)] 
nxp: imx8mp_evk: Add board_mmc_get_env_dev

When booting from eMMC, there is error log:
MMC:   FSL_SDHC: 1, FSL_SDHC: 2
Loading Environment from MMC... MMC: no card present

Add board_mmc_get_env_dev() to get the correct device number.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
4 months agonxp: imx8m[m,p]_evk: Drop init_uart_clk
Peng Fan [Sun, 8 Feb 2026 14:34:41 +0000 (22:34 +0800)] 
nxp: imx8m[m,p]_evk: Drop init_uart_clk

Both the two boards have clk framework enabled, so rely on serial driver
calling clk_enable to enable the uart clk.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
4 months agonxp: imx8mp_evk: Enable SPL_CLK_IMX8MP
Peng Fan [Sun, 8 Feb 2026 14:34:40 +0000 (22:34 +0800)] 
nxp: imx8mp_evk: Enable SPL_CLK_IMX8MP

Enable SPL_CLK_IMX8M to make sure clk_enable could work proper in SPL
phase by using clock framework driver.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
4 months agoMerge tag 'efi-2026-04-rc4' of https://source.denx.de/u-boot/custodians/u-boot-efi
Tom Rini [Fri, 27 Feb 2026 14:12:04 +0000 (08:12 -0600)] 
Merge tag 'efi-2026-04-rc4' of https://source.denx.de/u-boot/custodians/u-boot-efi

Pull request efi-2026-04-rc4

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

UEFI:

* Correct LoadImage() return code for invalid parameters
  and provide a test for it.
* Correct misspells in the test code.

4 months agoefi_selftest: cosmetic: fix spelling in comments
Vincent Stehlé [Thu, 19 Feb 2026 18:44:00 +0000 (19:44 +0100)] 
efi_selftest: cosmetic: fix spelling in comments

Fix a few UEFI function names, as well as a typo.

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>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
4 months agoefi_selftest: test specific LoadImage() case
Vincent Stehlé [Mon, 16 Feb 2026 11:30:17 +0000 (12:30 +0100)] 
efi_selftest: test specific LoadImage() case

Add a test calling the LoadImage() UEFI function with both its SourceBuffer
and DevicePath input arguments equal to NULL.

This test can be run on the sandbox with the following command:

  ./u-boot -T -c "setenv efi_selftest load image from file; \
                  bootefi selftest"

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>
4 months agoefi_loader: fix specific LoadImage() return code
Vincent Stehlé [Mon, 16 Feb 2026 11:30:16 +0000 (12:30 +0100)] 
efi_loader: fix specific LoadImage() return code

When the LoadImage() UEFI function is called with both its SourceBuffer and
DevicePath input arguments equal to NULL, it must return EFI_NOT_FOUND [1].
However, it does return EFI_INVALID_PARAMETER instead; fix it.

Link: https://uefi.org/specs/UEFI/2.11/07_Services_Boot_Services.html#efi-boot-services-loadimage
Reported-by: Sathisha Shivaramappa <sathisha.shivaramappa@arm.com>
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>
4 months agoMerge tag 'mmc-next-2026-02-26' of https://source.denx.de/u-boot/custodians/u-boot...
Tom Rini [Thu, 26 Feb 2026 16:23:12 +0000 (10:23 -0600)] 
Merge tag 'mmc-next-2026-02-26' of https://source.denx.de/u-boot/custodians/u-boot-mmc into next

- Add MediaTek MT6359P regulator driver
- Add MediaTek MT6357 regulator driver
- Add MediaTek PMIC Wrapper driver
- Enable pmic and regulator for mt8365 evk
- Minor cleanup

4 months agoGitlab: Fix TEST_PY_TEST_SPEC for qemu-x86_64 in sjg-lab 863/head
Tom Rini [Tue, 24 Feb 2026 18:31:07 +0000 (12:31 -0600)] 
Gitlab: Fix TEST_PY_TEST_SPEC for qemu-x86_64 in sjg-lab

With the change to regularize the usage of TEST_PY_TEST_SPEC in the
sjg-lab stanza with commit c7f360f20d84 ("Gitlab: Rework sjg-lab calling
test.py to be closer to test.py stage") the leading "and " part of the
usage under qemu-x86_64 wasn't removed when it should have been. Do so
now.

Fixes: c7f360f20d84 ("Gitlab: Rework sjg-lab calling test.py to be closer to test.py stage")
Reviewed-by: Simon Glass <simon.glass@canonical.com>
Signed-off-by: Tom Rini <trini@konsulko.com>
4 months agoMerge tag 'fsl-qoriq-next-2026-02-25' of https://source.denx.de/u-boot/custodians...
Tom Rini [Thu, 26 Feb 2026 14:49:15 +0000 (08:49 -0600)] 
Merge tag 'fsl-qoriq-next-2026-02-25' of https://source.denx.de/u-boot/custodians/u-boot-fsl-qoriq

For SCMI, Power Domain and IOMMU, validate device tree node before
continuing, to avoid boot failure.

4 months agoiommu: Validate device tree node in dev_iommu_enable
Peng Fan [Tue, 10 Feb 2026 08:12:16 +0000 (16:12 +0800)] 
iommu: Validate device tree node in dev_iommu_enable

Similar to pinctrl_select_state(), add dev_has_ofnode() check before doing the
real work. Device(scmi_base.0) does not have a real device node, ofnode_null()
is assigned as the device tree node for scmi base protocol device:
'commit 7eb4eb541c14 ("firmware: scmi: install base protocol to SCMI agent")'

However with recent update in
'commit 0535e46d55d7 ("scripts/dtc: Update to upstream version v1.7.2-35-g52f07dcca47c")',
SPL panic in fdt_check_node_offset_()->fdt_next_tag(), because offset is -1
and SPL_OF_LIBFDT_ASSUME_MASK is 0xFF.

So need to validate device tree node.

Reported-by: Ye Li <ye.li@nxp.com>
Closes: https://lore.kernel.org/u-boot/939a9696-27fa-45a1-b428-feffe21ac6d5@oss.nxp.com/
Signed-off-by: Peng Fan <peng.fan@nxp.com>
4 months agopower: domain: Validate device tree node in dev_power_domain_ctrl
Peng Fan [Tue, 10 Feb 2026 08:12:15 +0000 (16:12 +0800)] 
power: domain: Validate device tree node in dev_power_domain_ctrl

Similar to pinctrl_select_state(), add dev_has_ofnode() check before doing the
real work. Device(scmi_base.0) does not have a real device node, ofnode_null()
is assigned as the device tree node for scmi base protocol device:
'commit 7eb4eb541c14 ("firmware: scmi: install base protocol to SCMI agent")'

However with recent update in
'commit 0535e46d55d7 ("scripts/dtc: Update to upstream version v1.7.2-35-g52f07dcca47c")',
SPL panic in fdt_check_node_offset_()->fdt_next_tag(), because offset is -1
and SPL_OF_LIBFDT_ASSUME_MASK is 0xFF.

So need to validate device tree node.

Reported-by: Ye Li <ye.li@nxp.com>
Closes: https://lore.kernel.org/u-boot/939a9696-27fa-45a1-b428-feffe21ac6d5@oss.nxp.com/
Signed-off-by: Peng Fan <peng.fan@nxp.com>
4 months agofirmware: scmi: Validate device tree node before setup channel
Peng Fan [Tue, 10 Feb 2026 08:12:14 +0000 (16:12 +0800)] 
firmware: scmi: Validate device tree node before setup channel

SCMI base protocol device does not have a device tree, it should use and
need to use the agent base channel.

For scmi_base.[x], there is no real device tree node for it. ofnode_null() is
assigned as the device tree node for scmi base protocol device:
commit 7eb4eb541c14 ("firmware: scmi: install base protocol to SCMI agent")

However with recent update in commit 0535e46d55d7
("scripts/dtc: Update to upstream version v1.7.2-35-g52f07dcca47c"),
SPL panic in fdt_check_node_offset_()->fdt_next_tag(), because offset is -1
and SPL_OF_LIBFDT_ASSUME_MASK is 0xFF.

So add a check in x_get_channel() to validate the protocol devices'
ofnode.

Reported-by: Ye Li <ye.li@nxp.com>
Closes: https://lore.kernel.org/u-boot/939a9696-27fa-45a1-b428-feffe21ac6d5@oss.nxp.com/
Signed-off-by: Peng Fan <peng.fan@nxp.com>
4 months agommc: mtk-sd: add mediatek,mt8189-mmc compatible
David Lechner [Fri, 6 Feb 2026 20:50:06 +0000 (14:50 -0600)] 
mmc: mtk-sd: add mediatek,mt8189-mmc compatible

Add support for MediaTek MT8189 MMC controller.

According to [1], this is similar to, but not quite the same as
mediatek,mt8196-mmc.

Link: https://lore.kernel.org/linux-mediatek/20251203-mt8189-add-mmc-support-v1-1-f5ce43212fe9@collabora.com/
Signed-off-by: David Lechner <dlechner@baylibre.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
4 months agoMerge branch 'master' of https://source.denx.de/u-boot/custodians/u-boot-samsung 876/head
Tom Rini [Wed, 25 Feb 2026 14:49:28 +0000 (08:49 -0600)] 
Merge branch 'master' of https://source.denx.de/u-boot/custodians/u-boot-samsung

- Assorted platform and video driver updates

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

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

4 months agopower: regulator: Kconfig: add SPL_DM_REGULATOR_FAN53555
Heinrich Schuchardt [Wed, 25 Feb 2026 06:57:14 +0000 (07:57 +0100)] 
power: regulator: Kconfig: add SPL_DM_REGULATOR_FAN53555

Symbol CONFIG_SPL_DM_REGULATOR_FAN53555 is selected by
SPL_DM_PMIC_FAN53555 and used in a Makefile. But the
symbol definition is missing.

Add the missing configuration symbol.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
Reviewed-by: Quentin Schulz <quentin.schulz@cherry.de>
Reviewed-by: Tom Rini <trini@konsulko.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
4 months agoconfigs: mt8365_evk_defconfig: enable PMIC and regulators
David Lechner [Fri, 20 Feb 2026 19:33:06 +0000 (13:33 -0600)] 
configs: mt8365_evk_defconfig: enable PMIC and regulators

Enable PMIC and regulators on MT8365 EVK now that there are drivers for
these. Also enable the associated commands.

Signed-off-by: David Lechner <dlechner@baylibre.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
4 months agopower: pmic: mtk-pwrap: add MediaTek PMIC Wrapper driver
Julien Masson [Fri, 20 Feb 2026 19:33:05 +0000 (13:33 -0600)] 
power: pmic: mtk-pwrap: add MediaTek PMIC Wrapper driver

Add support for the PMIC wrapper (pwrap) IP block found on MediaTek
MT8365 and similar SoCs.

On these SoCs the PMIC is connected via SPI. The SPI controller is not
directly visible to the CPU, but only through the PMIC wrapper inside
the SoC.

Signed-off-by: Julien Masson <jmasson@baylibre.com>
Co-developed-by: Macpaul Lin <macpaul.lin@mediatek.com>
Signed-off-by: Macpaul Lin <macpaul.lin@mediatek.com>
Co-developed-by: Bo-Chen Chen <rex-bc.chen@mediatek.com>
Signed-off-by: Bo-Chen Chen <rex-bc.chen@mediatek.com>
Signed-off-by: David Lechner <dlechner@baylibre.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
4 months agopower: regulator: mt6359: add driver for MT6359P
Bo-Chen Chen [Fri, 20 Feb 2026 19:33:04 +0000 (13:33 -0600)] 
power: regulator: mt6359: add driver for MT6359P

Add a new regulator driver for MT6359P and similar PMIC chips.

The MT6359P is a eco version for MT6359 regulator. For the MT8391
platform, we use the MT6359P (MT6365) as the main PMIC. The MT6359 and
MT6359P have different register maps. Therefore, on the MT8391 platform,
we only provide support for the MT6359P. If support for the MT6359 PMIC
it can be added later.

Signed-off-by: Bo-Chen Chen <rex-bc.chen@mediatek.com>
Signed-off-by: David Lechner <dlechner@baylibre.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
4 months agopower: regulator: add MediaTek MT6357 driver
Julien Masson [Fri, 20 Feb 2026 19:33:03 +0000 (13:33 -0600)] 
power: regulator: add MediaTek MT6357 driver

Add a driver for the power regulators of the MediaTek MT6357 PMIC chip.

Signed-off-by: Julien Masson <jmasson@baylibre.com>
Co-developed-by: Macpaul Lin <macpaul.lin@mediatek.com>
Signed-off-by: Macpaul Lin <macpaul.lin@mediatek.com>
Signed-off-by: David Lechner <dlechner@baylibre.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
4 months agocmd: mmc: Drop trailing space in Name: before newline
Marek Vasut [Sun, 8 Feb 2026 14:51:03 +0000 (15:51 +0100)] 
cmd: mmc: Drop trailing space in Name: before newline

The Name: line of 'mmc info' command prints a trailing space before
newline. This is not useful and shows up as trailing space e.g. when
the output is checked into documentation. Remove the trailing space.

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Mattijs Korpershoek <mkorpershoek@kernel.org>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
4 months agoconfigs: exynos-mobile: add DEFAULT_DEVICE_TREE option
Kaustabh Chakraborty [Tue, 24 Feb 2026 15:37:11 +0000 (21:07 +0530)] 
configs: exynos-mobile: add DEFAULT_DEVICE_TREE option

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Enable CONFIG_CMD_STM32KEY flag to enable usage of command
stm32key.

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

Add support of ADAC-PKH for STM32MP21.

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

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

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

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

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

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

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

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

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

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

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

Add syscon_get_first_range() check on return value.

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

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

Add syscon_get_first_range() check on return value.

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

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

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

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

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

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

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

Add U-Boot specific file for stm32mp215f-dk board

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

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

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

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

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

Add cmd_stm32key support for STM32MP21x SoCs family.

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

Add "st,stm32mp21-syscfg" compatible.

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

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

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

Add clock driver support for STM32MP21 SoCs.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Add board identifier for STM32MP21 discovery board = MB2059.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Signed-off-by: Fabien Dessenne <fabien.dessenne@foss.st.com>
Signed-off-by: Patrice Chotard <patrice.chotard@foss.st.com>
Reviewed-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
4 months agoboard: Correct usage of fdtfile=CONFIG_DEFAULT_FDT_FILE
Tom Rini [Wed, 11 Feb 2026 22:11:35 +0000 (16:11 -0600)] 
board: Correct usage of fdtfile=CONFIG_DEFAULT_FDT_FILE

As explained in commit 03d2d5fc003f ("board: sifive: unmatched: set
fdtfile with unquoted variable.") using the syntax of
'fdtfile=CONFIG_DEFAULT_FDT_FILE' in the plain text environment files
will lead to extraneous and problematic "s in the output. This is fixed
by using fdtfile=DEFAULT_FDT_FILE which was introduced recently.

Acked-by: Peng Fan <peng.fan@nxp.com>
Signed-off-by: Tom Rini <trini@konsulko.com>
4 months agoMerge patch series "net: mdio-mt7531-mmio: consolidate and improve probe"
Tom Rini [Mon, 23 Feb 2026 21:29:21 +0000 (15:29 -0600)] 
Merge patch series "net: mdio-mt7531-mmio: consolidate and improve probe"

Christian Marangi <ansuelsmth@gmail.com> says:

This small series consolidate header usage of mdio-mt7531-mmio driver
and improve usage in preparation for support of OF PHY autoprobe.

This driver is still not used (as it will be used by AN7581/AN7583)
in the OF mode (it's used by MT7988 for the MDIO functions)

For OF PHY to be correctly autoprobed, the MDIO driver needs to attached
to the MDIO node (the parent of the PHY nodes)

With such change the MDIO driver can be binded with the MDIO node instead
of the switch node as previously required.

Link: https://lore.kernel.org/r/20260209114515.1916-1-ansuelsmth@gmail.com
4 months agonet: mdio-mt7531-mmio: improve parsing of switch register on probe
Christian Marangi [Mon, 9 Feb 2026 11:45:06 +0000 (12:45 +0100)] 
net: mdio-mt7531-mmio: improve parsing of switch register on probe

The MDIO node is ALWAYS a parent of the MT7531 switch node and the MDIO
registers are in the MT7531 register space (in the context of MT7988
it's all memory-mapped)

With these assumption, we can simplify and permit better usage of PHY OF
automatic probing by binding the mt7531-mdio-mmio driver with the MDIO
node instead of the switch node.

For OF PHY to be correctly autoprobed, the MDIO driver needs to attached
to the MDIO node (the parent of the PHY nodes).

The driver will reach the parent node (the switch node) and will parse
the register address from there.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
4 months agonet: mdio-mt7531-mmio: use common header priv struct
Christian Marangi [Mon, 9 Feb 2026 11:45:05 +0000 (12:45 +0100)] 
net: mdio-mt7531-mmio: use common header priv struct

Instead of having duplicate priv struct for mdio-mt7531-mmio driver in
both driver and header, use the one exposed by the header directly.

This make sure we have consistent priv struct if the driver will be
updated in the future.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
4 months agoMerge patch series "am62dxx-evm: Add SPI flash support"
Tom Rini [Mon, 23 Feb 2026 21:26:15 +0000 (15:26 -0600)] 
Merge patch series "am62dxx-evm: Add SPI flash support"

Paresh Bhagat <p-bhagat@ti.com> says:

This series enables SPI flash support for the AM62DX EVM platform.

The first patch enables the required SPI flash configuration options in
both A53 and R5 defconfigs, including Cadence QSPI driver support, SFDP
support, and Spansion S28HX-T flash compatibility.

The second patch adds the necessary device tree configuration for the R5
SPL to support OSPI flash access during the boot process.

Boot logs
https://gist.github.com/paresh-bhagat12/ca9a05aa443c71e8baf6d8506f6ccc22

Link: https://lore.kernel.org/r/20260209072820.2576854-1-p-bhagat@ti.com
4 months agoconfigs: am62dx_evm: Enable SPI flash support
Paresh Bhagat [Mon, 9 Feb 2026 07:28:20 +0000 (12:58 +0530)] 
configs: am62dx_evm: Enable SPI flash support

Enable SPI flash support for AM62DX EVM by adding Cadence QSPI driver,
configuring 25MHz speed, and enabling SFDP support with Spansion
S28HX-T flash compatibility. Enable required SPI and MTD configs for
both A53 and R5 configurations to allow booting from SPI flash.

Signed-off-by: Paresh Bhagat <p-bhagat@ti.com>
4 months agoarm: dts: k3-am62d2-r5: Add DMA and OSPI configuration
Paresh Bhagat [Mon, 9 Feb 2026 07:28:19 +0000 (12:58 +0530)] 
arm: dts: k3-am62d2-r5: Add DMA and OSPI configuration

Enable WKUP UART0 for DM firmware logs, configure DMA controllers with
TI SCI references, and update OSPI0 register mapping.

Signed-off-by: Paresh Bhagat <p-bhagat@ti.com>
4 months agoMerge tag 'v2026.04-rc3' into next
Tom Rini [Mon, 23 Feb 2026 19:45:55 +0000 (13:45 -0600)] 
Merge tag 'v2026.04-rc3' into next

Prepare v2026.04-rc3

4 months agoPrepare v2026.04-rc3 v2026.04-rc3
Tom Rini [Mon, 23 Feb 2026 19:17:02 +0000 (13:17 -0600)] 
Prepare v2026.04-rc3

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

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

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

Found by fuzzing with libFuzzer + AddressSanitizer.

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

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

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

Signed-off-by: Kaustabh Chakraborty <kauschluss@disroot.org>
Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
4 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>
4 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>
4 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>
4 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>
4 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>
4 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>
4 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>
4 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>
4 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>
4 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>
5 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>
5 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>
5 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>
5 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>
5 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
5 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>
5 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>
5 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>
5 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>
5 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
5 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>
5 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>