summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2026-03-03usb: gadget: Mark udc_disconnect as staticTom Rini
With the last external callers of udc_disconnect long removed, mark this function as static now and remove it from headers. Signed-off-by: Tom Rini <[email protected]> Reviewed-by: Mattijs Korpershoek <[email protected]> Link: https://patch.msgid.link/[email protected] Signed-off-by: Mattijs Korpershoek <[email protected]>
2026-03-02Merge tag 'u-boot-imx-next-20260228' of ↵Tom Rini
https://gitlab.denx.de/u-boot/custodians/u-boot-imx into next CI: https://source.denx.de/u-boot/custodians/u-boot-imx/-/pipelines/29404 - Miscelanous improvements for Siemens Capricorn board. - Convert i.MX6 IPUv3 driver to use clock framework. - Skip voltage switching for fixed 1.8V regulator on fsl_esdhc_imx. - Support printing imx8m pinmux. - Enter fastboot on USB boot by default on phycore-imx93. - Use arch override for env_get_location() on imx95.
2026-03-02common/memsize.c: Fix get_ram_size() original data restoreStefan Eichenberger
The get_ram_size() function fails to restore the original RAM data when the data cache is enabled. This issue was observed on an AM625 R5 SPL with 512MB of RAM and is a regression that became visible with commit bc07851897bd ("board: ti: Pull redundant DDR functions to a common location and Fixup DDR size when ECC is enabled"). Observed boot failure messages: Warning: Did not detect image signing certificate. Skipping authentication to prevent boot failure. This will fail on Security Enforcing(HS-SE) devices Authentication passed Starting ATF on ARM64 core... The system then hangs. This indicates that without a data cache flush, data in the cache is not coherent with RAM, preventing the system from booting. This was verified by printing the content of this address when the issue occurs. Add a data cache flush after each restore operation to resolve this issue. Fixes: bc07851897bd ("board: ti: Pull redundant DDR functions to a common location and Fixup DDR size when ECC is enabled") Fixes: 1c64b98c1ec4 ("common/memsize.c: Fix get_ram_size() when cache is enabled") Signed-off-by: Stefan Eichenberger <[email protected]> Reviewed-by: Emanuele Ghidoli <[email protected]> Tested-by: Francesco Dolcini <[email protected]> # Toradex Verdin AM62
2026-03-02drivers: ufs: remove unused ufs_post_bind() declarationJulien Stephan
Commit 067c1b033282 ("ufs: Call ufs_scsi_bind() from uclass .post_bind") inlined ufs_scsi_bind() into ufs_post_bind() as trivial device_bind_driver() call. ufs_scsi_bind() is no longer referenced anywhere in the codebase, so drop its declaration from include/ufs.h. Drivers used to include <ufs.h> to include prototype of ufs_scsi_bind() function, so we can now safely remove such includes. Fixes: 067c1b033282 ("ufs: Call ufs_scsi_bind() from uclass .post_bind") Signed-off-by: Julien Stephan <[email protected]> Reviewed-by: Neil Armstrong <[email protected]> Link: https://patch.msgid.link/[email protected] Signed-off-by: Neil Armstrong <[email protected]>
2026-03-02phy: Add MediaTek UFS PHY DriverIgor Belwon
This UFS M-PHY driver can be used on recent MediaTek SoCs as the primary PHY for the UFS controller. Signed-off-by: Igor Belwon <[email protected]> Link: https://patch.msgid.link/20251011-mtk-ufs-uboot-v1-1-a05f991ee150@mentallysanemainliners.org Signed-off-by: Neil Armstrong <[email protected]>
2026-03-02ufs: Disable UTP command timeout in slow modePadmarao Begari
When the UFS controller is operating in slow (PWM) mode, the driver is disabled the timeout for UTP send commands. In high-speed mode, the timeout remains enabled to detect stalled or failed transfers. This change ensures reliable operation in slow mode, where command completion may take longer and timeouts are not required. Signed-off-by: Padmarao Begari <[email protected]> Signed-off-by: Michal Simek <[email protected]> Reviewed-by: Neil Armstrong <[email protected]> Link: https://patch.msgid.link/e6deb9086afab9d2bdd53db8ecbc7db93af5204d.1764169598.git.michal.simek@amd.com Signed-off-by: Neil Armstrong <[email protected]>
2026-02-28arm: imx: imx95: Use arch override for env_get_location()Sébastien Szymanski
Like commit b9e48705e0b6 ("arm: imx: imx9: Use arch override for env_get_location()"), use arch-level implementation here so that env_get_location() can be used on board-level. Signed-off-by: Sébastien Szymanski <[email protected]> Reviewed-by: Peng Fan <[email protected]> Reviewed-by: Marek Vasut <[email protected]>
2026-02-28pinctrl: nxp: imx9: Guard pinctrl match table with CONFIG_IMX9[X]Peng Fan
The i.MX9 pinctrl match table currently lists all SoC compatibles unconditionally, which may lead to unused entries being included when building for specific SoC variants. Guard each compatible entry with the corresponding CONFIG_IMX9[X] option so only the required SoC entries are compiled in, which reduces unnecessary data. Signed-off-by: Peng Fan <[email protected]>
2026-02-28pinctrl: nxp: imx91: Support print pin muxingPeng Fan
Add support for printing pin names and current mux configuration on i.MX91 when CMD_PINMUX is enabled by adding full pin descriptor table for i.MX91 pads. Signed-off-by: Peng Fan <[email protected]>
2026-02-28pinctrl: nxp: imx93: Support print pin muxingPeng Fan
Add support for printing pin names and current mux configuration on i.MX93 when CMD_PINMUX is enabled. - A full pin descriptor table for i.MX93 pads. - Implementation of get_pins_count(), get_pin_name(), and get_pin_muxing() in the i.MX9 pinctrl driver. There is no good way to add real mux names, so just dump the function ID from the mux register. Signed-off-by: Peng Fan <[email protected]>
2026-02-28pinctrl: nxp: imx93: Rename to imx9Peng Fan
We are going to add pinctrl data support for both i.MX93 and i.MX91. Since these SoCs share the same pinctrl driver structure, rename pinctrl-imx93.c to a more generic pinctrl-imx9.c and update all related variable and function names accordingly. This prepares the driver for supporting additional i.MX9 family SoCs. Signed-off-by: Peng Fan <[email protected]>
2026-02-28pinctrl: nxp: imx8m: Guard pinctrl match table with CONFIG_IMX8M[X]Peng Fan
The i.MX8M pinctrl match table currently lists all SoC compatibles unconditionally, which may lead to unused entries being included when building for specific SoC variants. Guard each compatible entry with the corresponding CONFIG_IMX8M[X] option so only the required SoC entries are compiled in, which reduces unnecessary data. Signed-off-by: Peng Fan <[email protected]>
2026-02-28pinctrl: nxp: imx8mq: Support print pin muxingPeng Fan
Add support for printing pin names and current mux configuration on i.MX8MQ when CMD_PINMUX is enabled by adding full pin descriptor table for i.MX8MQ pads. Signed-off-by: Peng Fan <[email protected]>
2026-02-28pinctrl: nxp: imx8mm: Support print pin muxingPeng Fan
Add support for printing pin names and current mux configuration on i.MX8MM when CMD_PINMUX is enabled by adding full pin descriptor table for i.MX8MM pads. Signed-off-by: Peng Fan <[email protected]>
2026-02-28pinctrl: nxp: imx8mn: Support print pin muxingPeng Fan
Add support for printing pin names and current mux configuration on i.MX8MN when CMD_PINMUX is enabled by adding full pin descriptor table for i.MX8MN pads. Signed-off-by: Peng Fan <[email protected]>
2026-02-28pinctrl: nxp: imx8mp: Support print pin muxingPeng Fan
Add support for printing pin names and current mux configuration on i.MX8MP when CMD_PINMUX is enabled. - imx_pinctrl_pin_desc structure and PINCTRL_PIN()/IMX_PINCTRL_PIN() helpers for defining pin descriptors. - A full pin descriptor table for i.MX8MP pads. - Implementation of get_pins_count(), get_pin_name(), and get_pin_muxing() in the i.MX8M pinctrl driver. There is no good way to add real mux names, so just dump the function ID from the mux register. Signed-off-by: Peng Fan <[email protected]>
2026-02-28pinctrl: nxp: Kconfig: Typo fixPeng Fan
PINCTRL_IMX93 is for i.MX9[3,1], not for i.MX8M, correct the typo. Signed-off-by: Peng Fan <[email protected]>
2026-02-28configs: toradex-smarc-imx95: Enable remoteprocEmanuele Ghidoli
Enable the remoteproc command, i.MX remoteproc driver, System Manager SCMI CPU and LMM support to control the Cortex-M7. Signed-off-by: Emanuele Ghidoli <[email protected]> Acked-by: Francesco Dolcini <[email protected]>
2026-02-28siemens: capricorn: protect environmentAdrian Freihofer
With ENV_WRITEABLE_LIST only specific environment variables lisetd in CFG_ENV_FLAGS_LIST_STATIC are read from the u-boot environment storage. All other environment variables are set to default values and are not written back to the storage. The u-boot environment usually stays for the lifetime of the product. There is no A/B copy mechanism as for the firmware itself. That means that incompatible changes to environment variables in future u-boot versions may lead to serious issues if the old environment is used with a new u-boot version or vice versa. Having this protection in place ensures that only a limited set of environment variables are persisted across u-boot versions. All the macros not listed in CFG_ENV_FLAGS_LIST_STATIC are now part of the u-boot binary which is redundant and immutable. This guarantees that the u-boot version and the default values of these environment variables are always in sync and cannot be changed at runtime. ustate and rastate are not relevant for u-boot itself. ustate is used by swupdate which persists the transaction state in the environment. rastate is a similar variable used by another user space application. Signed-off-by: Adrian Freihofer <[email protected]> Signed-off-by: Heiko Schocher <[email protected]> Reviewed-by: Peng Fan <[email protected]> Signed-off-by: Adrian Freihofer <[email protected]> Signed-off-by: Heiko Schocher <[email protected]> Reviewed-by: Peng Fan <[email protected]>
2026-02-28siemens: capricorn: rework bootcmd environment variablesAdrian Freihofer
Rework the boot state machine to a significantly simpler and more robust implementation. The basic idea is to revert to the previous partition whenever an issue is detected during the boot process. - Broken SPL If one of the two SPLs does not boot, the ROM code of the i.MX8 SoC automatically starts the second SPL from the second boot partition. For example, if the system's active partition is A but the SPL from partition A is broken, the ROM code automatically uses the SPL/u-boot from partition B. Proceeding with this boot procedure would lead to booting the kernel/ rootfs from partition A, which could potentially successfully boot the system and allow the user to apply the firmware update with the broken SPL again. This would lead to a non-bootable system because the second update would overwrite the last working bootloader. To prevent such situations, zigzag boots are detected and the system reverts to the previous partition rather than booting the kernel/rootfs from the currently active partition. Detecting zigzag boots is done via the new fallback variable. To make this state machine even more consistent, the partitionset_active variable is no longer used to determine the active partition during boot. Instead, the active partition is always read from the eMMC partconf registers. For backward compatibility, the partitionset_active variable is still updated whenever a partition switch occurs. However, u-boot no longer relies on this variable, as it could potentially be out of sync with the actual partition state, leading to situations where the ROM code of the i.MX8 SoC would be out of sync with u-boot. - Broken kernel, initramfs or rootfs If the upgrade_available variable is set, u-boot counts the number of consecutive boots via the bootcount variable. If the bootcount exceeds the bootlimit variable, u-boot starts the altbootcmd instead of the bootcmd. Previously, this logic was bypassed by assigning the regular bootcmd to altbootcmd. Now, the altbootcmd is used to revert to the previous partition when the bootlimit is exceeded. The netdev variable is changed to eth0 by default. This is what the FEC driver uses on Capricorn boards. For devices with switches and DSA subsystems in use, the netdev should be set accordingly by additional logic in the environment or u-boot code. This is not part of this commit. Signed-off-by: Adrian Freihofer <[email protected]> Signed-off-by: Heiko Schocher <[email protected]> Reviewed-by: Peng Fan <[email protected]>
2026-02-28siemens: capricorn: fix fallback bootm call for fitImageWalter Schweizer
When dtb_name is missing or a configuration is missing, try to boot the default configuration in the image. The call to bootm needs the correct loadaddr to succeed. Fixes booting when factoryset is missing. Signed-off-by: Walter Schweizer <[email protected]> Reviewed-by: Peng Fan <[email protected]>
2026-02-28siemens: capricorn: always detect emmc deviceHeiko Schocher
drop Environment variable mmcautodetect and the board logic behind it, as we want always to autodetct the emmc device. Signed-off-by: Heiko Schocher <[email protected]> Reviewed-by: Peng Fan <[email protected]>
2026-02-28siemens: capricorn: add logic to U-Boot to avoid zig-zag bootHeiko Schocher
add logic in board code for detecting the real boot partition and set a local hush shell variable fallback which can be used later in boot variables for detecting a ROM bootloader fallback case. We use the local hush shell variable, as we do not want to save in any case the fallback variable in U-Boot Environment, as the default Environment is maybe saved in boards, which are downgraded to older U-Boot versions. And than the board code does not run, and fallback never gets the correct value. Introduce also hush shell variable envvers to value "v2_" so we can use them in Environment for running different versions of variables between new and old U-Boot images. Signed-off-by: Heiko Schocher <[email protected]> Signed-off-by: Walter Schweizer <[email protected]> Reviewed-by: Peng Fan <[email protected]>
2026-02-28capricorn: config: add bootcounter commandHeiko Schocher
Enable bootcount feature to count the boot times Signed-off-by: Heiko Schocher <[email protected]> Acked-by: Peng Fan <[email protected]>
2026-02-28imx8qxp_capricorn config: add wget commandWalter Schweizer
Enable the "wget" command to allow download using TCP / HTTP protocol. This is faster than TFTP download. Signed-off-by: Walter Schweizer <[email protected]> Reviewed-by: Heiko Schocher <[email protected]> Reviewed-by: Peng Fan <[email protected]>
2026-02-28arm: dts: capricorn: move fec2 configLukas Stockmann
fec2 config does not belong to the Capricorn CPU module, move it to the main board. Signed-off-by: Lukas Stockmann <[email protected]> Reviewed-by: Peng Fan <[email protected]>
2026-02-28arm: dts: capricorn: remove pinctrl_usdhc2Lukas Stockmann
usdhc2 is not used on the Capricorn board. Signed-off-by: Lukas Stockmann <[email protected]> Reviewed-by: Peng Fan <[email protected]>
2026-02-28siemens: capricorn: set max-frequency for usdhc1Adrian Freihofer
This is required since commit aebb523a2381 ("mmc: mmc-uclass: Use max-frequency from device tree with default handling") and the related patches of the same series. The error observed without this change is: Autobooting in 3 seconds, press "<Esc><Esc>" to stop EXT_CSD[179], PARTITION_CONFIG: BOOT_ACK: 0x0 BOOT_PARTITION_ENABLE: 0x1 (boot0) PARTITION_ACCESS: 0x0 (user) Loading from eMMC ...fit U-Boot SPL 2026.01-4238dcfcbfe (Jan 09 2026 - 08:19:45 +0000) For this example it's the following commands which does no longer work for larger images: ext4load mmc 0:1 0x88000000 boot/fitImage On latest master branch the problematic commit gets reverted with commit c4f5b1d4b037 ("Revert "mmc: mmc-uclass: Use max-frequency from device tree with default handling"") but for v2026.01 this fix is still required. Maybe it's anyway a good idea to have this property set explicitly. Signed-off-by: Adrian Freihofer <[email protected]> Signed-off-by: Heiko Schocher <[email protected]> Reviewed-by: Peng Fan <[email protected]>
2026-02-28arm: dts: capricorn: pinctrl_usdhc1 cleanupLukas Stockmann
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 <[email protected]> Signed-off-by: Heiko Schocher <[email protected]>
2026-02-28mmc: fsl_esdhc_imx: Skip voltage switching for fixed 1.8V regulatorKory Maincent
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 <[email protected]>
2026-02-28video: imx: ipuv3: use clock frameworkBrian Ruley
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 <[email protected]>
2026-02-28video: imx: ipuv3: move clock code to legacyBrian Ruley
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 <[email protected]>
2026-02-28pwm: pwm-imx: enable ipg or per clks only if CONFIG_CLK enabledBrian Ruley
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 <[email protected]>
2026-02-28clk: imx6q: add ipu and ldb clocks and dependenciesBrian Ruley
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 <[email protected]>
2026-02-28clk: imx6q: apply clang-formatBrian Ruley
Reduces the number of checkpatch warnings in the following commits. Signed-off-by: Brian Ruley <[email protected]>
2026-02-28arch: imx: fix incorrect shutdown call for inactive video devicesBrian Ruley
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 <[email protected]> Reviewed-by: David Zang <[email protected]>
2026-02-28imx8qx: misc: add command for getting boottypeHeiko Schocher
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 <[email protected]> Signed-off-by: Walter Schweizer <[email protected]>
2026-02-28imx: scu_api: implement sc_misc_get_boot_typeHeiko Schocher
add function sc_misc_get_boot_type() which returns the boot type. Signed-off-by: Heiko Schocher <[email protected]> Signed-off-by: Walter Schweizer <[email protected]> Reviewed-by: Peng Fan <[email protected]>
2026-02-28board: phytec: phycore-imx93: Enter fastboot on USB boot by defaultPrimoz Fiser
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 <[email protected]> Reviewed-by: Benjamin Hahn <[email protected]>
2026-02-28nxp: imx8mp_evk: Add board_mmc_get_env_devPeng Fan
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 <[email protected]>
2026-02-28nxp: imx8m[m,p]_evk: Drop init_uart_clkPeng Fan
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 <[email protected]>
2026-02-28nxp: imx8mp_evk: Enable SPL_CLK_IMX8MPPeng Fan
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 <[email protected]>
2026-02-27Merge tag 'efi-2026-04-rc4' of ↵Tom Rini
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.
2026-02-27efi_selftest: cosmetic: fix spelling in commentsVincent Stehlé
Fix a few UEFI function names, as well as a typo. Signed-off-by: Vincent Stehlé <[email protected]> Cc: Heinrich Schuchardt <[email protected]> Cc: Ilias Apalodimas <[email protected]> Cc: Tom Rini <[email protected]> Reviewed-by: Ilias Apalodimas <[email protected]> Reviewed-by: Heinrich Schuchardt <[email protected]>
2026-02-27efi_selftest: test specific LoadImage() caseVincent Stehlé
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é <[email protected]> Cc: Heinrich Schuchardt <[email protected]> Cc: Ilias Apalodimas <[email protected]> Cc: Tom Rini <[email protected]>
2026-02-27efi_loader: fix specific LoadImage() return codeVincent Stehlé
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 [1] Reported-by: Sathisha Shivaramappa <[email protected]> Signed-off-by: Vincent Stehlé <[email protected]> Cc: Heinrich Schuchardt <[email protected]> Cc: Ilias Apalodimas <[email protected]> Cc: Tom Rini <[email protected]>
2026-02-26Merge tag 'mmc-next-2026-02-26' of ↵Tom Rini
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
2026-02-26Gitlab: Fix TEST_PY_TEST_SPEC for qemu-x86_64 in sjg-labTom Rini
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 <[email protected]> Signed-off-by: Tom Rini <[email protected]>
2026-02-26Merge tag 'fsl-qoriq-next-2026-02-25' of ↵Tom Rini
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.
2026-02-26iommu: Validate device tree node in dev_iommu_enablePeng Fan
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 <[email protected]> Closes: https://lore.kernel.org/u-boot/[email protected]/ Signed-off-by: Peng Fan <[email protected]>