summaryrefslogtreecommitdiff
path: root/drivers
AgeCommit message (Collapse)Author
21 hoursRevert "mmc: sdhci-cadence: trigger tuning for SD HS mode on SD6HC (v6) PHY"Tanmay Kathpalia
This reverts commit b42c67188c14 ("mmc: sdhci-cadence: trigger tuning for SD HS mode on SD6HC (v6) PHY"). The reverted patch introduced several issues: 1. Non-standard tuning trigger: The SD Physical Layer Specification only mandates execute_tuning for SDR50 and SDR104 UHS-I modes. Triggering tuning for SD High Speed mode is outside the spec and is handled via a non-standard set_ios_post callback rather than through the established SDHCI framework tuning path. 2. Non-standard device tree property: The patch introduced a new "cdns,sd-hs-tuning" DT property to opt into SD HS tuning. This is not aligned with existing DT bindings and bypasses the standard MMC capability negotiation mechanism. 3. Incorrect tunable mode allowlist: The sdhci_cdns6_mode_is_tuned() function includes SD_HS, UHS_SDR50, and MMC_HS_400_ES as tunable modes. According to the Cadence SD6HC IP User Guide (section 7.5.2, Figure 18), tuning is only required for UHS-I SDR104 (SD) and HS200 (eMMC). SD High Speed, UHS-I SDR50, and DDR50 only require a PHY settings update from the pre-calculation script, not the tuning procedure. HS400 transitions through HS200 and reuses its tuned DLL value with a partial settings update. HS400ES only requires a plain settings update from the calculation script with no dependency on HS200 tuning. 4. Tuned state management outside the framework: The patch manually tracks tuned DLL state (tuned_mode, tuned_dll_slave_ctrl) and restores it across PHY reconfigurations. This duplicates responsibility that belongs in the core MMC tuning framework and adds unnecessary complexity to the driver. Reverting to realign the driver with the IP documentation and the SD Physical Layer Specification. Signed-off-by: Tanmay Kathpalia <tanmay.kathpalia@altera.com> Signed-off-by: Peng Fan <peng.fan@nxp.com>
21 hoursmmc: sd: fix redundant 1.8V voltage switch on cold boot with UHS cardTanmay Kathpalia
When a UHS card successfully negotiates 1.8V signaling during normal initialization, the host voltage switch is performed as part of the ACMD41 handshake. Without this fix, the warm-reboot recovery path would fire again immediately after, switching the host voltage a second time unnecessarily. Add a check so the recovery path is only entered when the voltage switch was not already performed during the current initialization session. Fixes: 906ee6785b1c ("mmc: sd: Handle UHS-I voltage signaling without power cycle") Signed-off-by: Tanmay Kathpalia <tanmay.kathpalia@altera.com> Signed-off-by: Peng Fan <peng.fan@nxp.com>
3 daysdrivers: sysreset: revert support for args in requestQuentin Schulz
This reverts: - commit e49c84f7bb7b ("doc: usage: cmd: reset: specify when the -edl option is available") - commit 1076feb8a3f9 ("cmd: boot: fix edl being shown when not supported") - commit 63c806ba0e12 ("qcom_defconfig: enable psci based sysreset") - commit ef06c5d76ff4 ("cmd: boot: Add '-edl' option to reset command documentation") - commit 32825eaddc37 ("sysreset: Implement PSCI based reset to EDL mode for QCOM SoCs") - commit fcb48b89813b ("drivers: sysreset: Add sysreset op that can take arguments") There was a conflict reverting commit 63c806ba0e12 ("qcom_defconfig: enable psci based sysreset") due to commit 02ef1859b44f ("configs: Resync with savedefconfig"), but the conflict resolution was trivial. The args support for the sysreset uclass contains a logic bug. The first sysreset device implementing the request_arg callback will consume the args, not support the specified arg and thus return -EPROTONOSUPPORT which will stop the iteration over all sysreset devices. This is an issue if one has multiple sysreset devices and each with support for different (valid) args. If a sysreset device implements a -dummy argument and another -foo and a user calls reset -dummy from the U-Boot CLI, it'll depend on which sysreset device will be attempted first. If it is the one implementing -foo, it'll return it doesn't support the argument with -EPROTONOSUPPORT in which case the device implementing -dummy will never be attempted and instead we'll do a cold reset which is very likely not what's expected from the user. Casey suggested[1] we revert this and start from scratch again with a different implementation instead. [1] https://lore.kernel.org/u-boot/77ff0f56-5c3b-42e7-bdd1-bf90296da900@linaro.org/ Acked-by: Casey Connolly <casey.connolly@linaro.org> Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
7 daysclk/qcom: milos: Add TCSRCC clocksLuca Weiss
With a recent change to the UFS driver, now all clocks need to be available. Add all the clocks from the TCSRCC block on Milos. Signed-off-by: Luca Weiss <luca.weiss@fairphone.com> Reviewed-by: Casey Connolly <casey.connolly@linaro.org> Link: https://patch.msgid.link/20260625-milos-ufs-fix-v1-2-b0923dabc35f@fairphone.com Signed-off-by: Casey Connolly <casey.connolly@linaro.org>
7 daysclk/qcom: milos: Add remaining UFS clocksLuca Weiss
With a recent change to the UFS driver, now all clocks need to be available. Add them. Signed-off-by: Luca Weiss <luca.weiss@fairphone.com> Reviewed-by: Casey Connolly <casey.connolly@linaro.org> Link: https://patch.msgid.link/20260625-milos-ufs-fix-v1-1-b0923dabc35f@fairphone.com Signed-off-by: Casey Connolly <casey.connolly@linaro.org>
9 daysclk: imx: imx8mq: Fix iMX8MQ PLL issueYe Li
The fractional PLL used on iMX8MQ is not pll14xx, it is different PLL and not exist in u-boot. Add this fractional PLL driver and update iMX8MQ clock driver to adapt this fraction PLL. Fixes: 11c8ab01f3ed ("clk: imx8mq: Add a clock driver for the imx8mq") Signed-off-by: Ye Li <ye.li@nxp.com> Reviewed-by: Peng Fan <peng.fan@nxp.com>
13 daysnet: mtk_eth: select LMB_LIMIT_DMA_BELOW_RAM_TOPDavid Lechner
Default to CONFIG_LMB_LIMIT_DMA_BELOW_RAM_TOP=y when MEDIATEK_ETH is enabled. The MediaTek Ethernet controller can only access the first 4GB of RAM when DMA is used. Link: https://patch.msgid.link/20260615-mtk-fix-ram-size-v2-2-f72cfc52ce58@baylibre.com Signed-off-by: David Lechner <dlechner@baylibre.com>
13 daysmmc: mtk-sd: select LMB_LIMIT_DMA_BELOW_RAM_TOPDavid Lechner
Default to CONFIG_LMB_LIMIT_DMA_BELOW_RAM_TOP=y when CONFIG_MTK_SD is enabled. The MediaTek SD controller can only access the first 4GB of RAM when DMA is used. "imply" is used rather than "select" in case someone want's to turn off the option when DMA is not used. Link: https://patch.msgid.link/20260615-mtk-fix-ram-size-v2-1-f72cfc52ce58@baylibre.com Signed-off-by: David Lechner <dlechner@baylibre.com>
14 daysnet: airoha_eth: fix mt7531 mdio related initialization bugMikhail Kshevetskiy
Private data isn't ready during bind time. The call of dev_get_priv() function will return NULL. Thus we can't save mdio device pointer and use it later during probe. To solve an issue, we will move mt7531 mdio device binding to the probing function of 'airoha-eth' driver. All GDM ports (except of GDM1) are connected directly to their PHYs, so corresponding mdio bus will be automatically probed during PHY setup. GDM1 ports differ from other GDM ports. It connected to the airoha switch device. The mt7531 mdio bus is used to manage link state of airoha switch device ports (LAN ports 1-4 corresponds to PHYs 0x09-0x0C). Therefore, manual probing of mt7531 mdio bus is required to be able set/query states of corresponding LAN ports. Fixes: 96d9e7c46425 ("net: airoha: use mt7531 mdio for GDM1") Signed-off-by: Mikhail Kshevetskiy <mikhail.kshevetskiy@iopsys.eu>
2026-06-22serial: sh: Fix dev_read_addr error checkFrancois Berder
dev_read_addr returns FDT_ADDR_T_NONE (-1) in case of error and not 0. Signed-off-by: Francois Berder <fberder@outlook.fr> Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Marek Vasut <marek.vasut+renesas@mailbox.org> Tested-by: Marek Vasut <marek.vasut+renesas@mailbox.org> # R-Car H3/M3-W/M3-N Salvator-X(S), H3/M3-W ULCB, V4H Sparrow Hawk, X5H Ironhide RSIP and CA720AE Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org> # Update subject tags
2026-06-18usb: tcpm: fix inverted poll condition in tcpm_pd_transmit()Peng Fan
The read_poll_timeout() macro breaks out of its loop when the condition evaluates to true. The current code uses "!tx_complete" as the condition, which means it exits immediately when tx_complete is false (i.e., transmission has NOT completed yet), rather than waiting for completion. Fix the condition to "tx_complete" so that the poll loop waits until the TCPC signals transmission success/failure/discard before proceeding. Without this fix, tcpm_pd_transmit() returns before the TCPC has finished transmitting, causing the PD state machine to proceed with stale tx_status values. Fixes: 1db4c0ac77e3 ("usb: tcpm: add core framework") Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org> Signed-off-by: Peng Fan <peng.fan@nxp.com>
2026-06-16Merge branch 'master' of https://source.denx.de/u-boot/custodians/u-boot-shTom Rini
This is a DRAM controller driver for the R-Car X5H and its enablement. This makes the U-Boot on RSIP usable beyond U-Boot shell running on Cortex-M33, as the U-Boot on RSIP can now load not only SCP firmware into the SCP core STCM, but also TFA BL31, OPTEE-OS and U-Boot into DRAM and start them on the Cortex-A720AE core. This is self-contained and affects only the R-Car X5H and a bit of R-Car V4H, besides it went through rounds of testing until now, therefore it is safe to include it this late in the release cycle. I know this will make rc5 massive, sorry about that.
2026-06-16ram: renesas: dbsc5: Add Renesas R-Car Gen5 DBSC5 driverMarek Vasut
Add Renesas R-Car Gen5 DBSC5 DRAM controller driver. This driver is currently capable of bringing LPDDR5X DRAM on Renesas R-Car X5H Ironhide board. Further boards can be supported by supplying board specific DRAM configuration data via dbsc5_get_board_data(). The driver reuses parts of previous DBSC5 driver, but due to hardware changes, can not be fully integrated into existing DBSC and DRAM driver, therefore the currentl DBSC and DRAM drivers are moved into R8A779G0 V4H specific files, and the R8A78000 X5H files are added in parallel. The Gen5 DBSC driver is meant to be used in RSIP context, while the Gen4 DBSC driver is meant to be used in SPL, therefore the Kconfig conditionals have been adjusted to match. Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
2026-06-16ram: renesas: rtvram: Add support for Renesas R-Car Gen5Marek Vasut
Add support for Renesas R-Car Gen5 R8A78000 SoC into RT-VRAM initialization driver. The changes are only a slight adjustment to the register programming, therefore reuse the existing RT-VRAM driver and parametrize those changes using driver data. Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
2026-06-15usb: gadget: atmel: use calloc() to allocate endpoint listZixun LI
malloc() doesn't zero out memory, leaving ep->ep.enabled uninitiated, which could make this flag falsely true. In next usb_ep_enable() call since this flag is true, ep->ops->enable() will be skipped. Then usb_ep_queue() will fail on uninitialized endpoint. Fixes: 59310d1ecb9f ("usb: gadget: introduce 'enabled' flag in struct usb_ep") Signed-off-by: Zixun LI <admin@hifiphile.com> Reviewed-by: Marek Vasut <marek.vasut+usb@mailbox.org> Reviewed-by: Mattijs Korpershoek <mkorpershoek@kernel.org> Link: https://patch.msgid.link/20260606-udc_malloc-v2-1-1155326b182b@hifiphile.com Signed-off-by: Mattijs Korpershoek <mkorpershoek@kernel.org>
2026-06-15fastboot: Fix blk_dwrite error checkingFrancois Berder
blk_dwrite() returns the number of blocks written. The code was only checking if the return value was different than 0. Hence, partial writes were considered successful. Fix blk_dwrite error handling by checking that all blocks are written. Signed-off-by: Francois Berder <fberder@outlook.fr> Reviewed-by: Mattijs Korpershoek <mkorpershoek@kernel.org> Link: https://patch.msgid.link/BESP194MB2805BBD03E7C92727F116585DA0D2@BESP194MB2805.EURP194.PROD.OUTLOOK.COM Signed-off-by: Mattijs Korpershoek <mkorpershoek@kernel.org>
2026-06-10Merge tag 'u-boot-rockchip-20260610' of ↵Tom Rini
https://source.denx.de/u-boot/custodians/u-boot-rockchip CI: https://source.denx.de/u-boot/custodians/u-boot-rockchip/-/pipelines/30398 Please pull the updates for rockchip platform: - New Board support: rk3588 FriendlyElec NanoPi R76S - UFS boot from SPL for rk3576 (NanoPi M5, ROCK 4D) - Clock support for RK3576 GMAC 25MHz output and RK3528/RK3576 USB3 OTG - Switch rk3128/rk3229 boards to upstream devicetree - MAINTAINERS update for upstream devicetree references - rk3588-rock-5b: Remove USB-C controller from u-boot.dtsi
2026-06-10Merge branch 'qcom-main' of ↵Tom Rini
https://source.denx.de/u-boot/custodians/u-boot-snapdragon CI: https://source.denx.de/u-boot/custodians/u-boot-snapdragon/-/pipelines/30394 - Define memory map for lemans-evk (pending SMEM) - Fix CONFIG_SYS_INIT_SP_BSS_OFFSET in db410c chainloaded fragment - Fix the "dump bootargs" command in the qcom-phone boot menu - Fix a bug in the rpmh-regulator driver where the regulator mode may not be set during enable. - Enable watchdog autostart for Dragonwing boards - Fix serial console init on ipq5424-rdp466
2026-06-10gpio: qcom_spmi_gpio: move PM8998 GPIO from legacy pmic driverPetr Hodina
Move the "qcom,pm8998-gpio" compatible from the legacy driver qcom_pmic_gpio.c to qcom_spmi_gpio.c. Enables on PM8998-based boards (sdm845: SHIFT 6mq, Pixel 3, OnePlus 6, Poco F1, Sony Xperia Akatsuki) the Volume UP gpio-key. Signed-off-by: Petr Hodina <petr.hodina@protonmail.com> Reviewed-by: Casey Connolly <casey.connolly@linaro.org> Link: https://patch.msgid.link/20260605-qcom-gpio-v2-1-c34093041c66@protonmail.com Signed-off-by: Casey Connolly <casey.connolly@linaro.org>
2026-06-09Merge tag 'efi-2026-07-rc5' of ↵Tom Rini
https://source.denx.de/u-boot/custodians/u-boot-efi Pull request efi-2026-07-rc5 CI: https://source.denx.de/u-boot/custodians/u-boot-efi/-/pipelines/30365 Documentation: * Update urllib3 version for building * usb: typos 'requird', 'current' UEFI * Improve PE-COFF relocation data validation Devicetree-to-C generator: * dtoc: test: add missing escape in help text
2026-06-10rockchip: clk: clk_rk3576: Add support for RK3576 GMAC 25MHz clock outputAlexey Charkov
Rockchip RK3576 SoC has two built-in GMACs which connect to external PHYs via RGMII interface. The RGMII link can be clocked by either the PHY or the SoC. When the SoC is the master, as is the case on the RK3576 EVB1, the output clock needs to be configured in the CRU. Add the respective logic for getting and setting the RGMII reference clock output for both GMAC0 and GMAC1. Signed-off-by: Alexey Charkov <alchark@flipper.net> Reviewed-by: Quentin Schulz <quentin.schulz@cherry.de> Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2026-06-09regulator: qcom-rpmh-regulator: fix regulator mode mismatchFederico Amedeo Izzo
Initial regulator mode was read from dts but never applied. This caused a mismatch between saved mode and actual regulator mode. Apply the current mode from priv->mode during enable() and move rpmh_regulator_vrm_set_mode function before rpmh_regulator_set_enable_state(). Signed-off-by: Federico Amedeo Izzo <federico@izzo.pro> Reviewed-by: Casey Connolly <casey.connolly@linaro.org> Link: https://patch.msgid.link/20260523-qcom-ufs-regulator-support-v4-1-45639533b06d@izzo.pro Signed-off-by: Casey Connolly <casey.connolly@linaro.org>
2026-06-08mailbox: mpfs-mbox: support new syscon based devicetree configurationJamie Gibbons
The original PolarFire SoC mailbox devicetree bindings described the control/status and interrupt registers as standalone reg regions of the mailbox device. This was incorrect, as these registers are shared system control blocks and should instead be modeled as syscon devices. Linux has since corrected this by introducing syscon-based bindings for the MPFS mailbox and updating the mailbox driver to access the control and interrupt registers via syscon/regmap. U-Boot, however, continued to expect the legacy binding, causing mailbox access to fail when using Linux-aligned devicetrees. Update the U-Boot MPFS mailbox driver to support the new syscon-based bindings by resolving the control and sysreg syscon nodes and accessing the registers through regmap. Support for the legacy mailbox binding is retained for backwards compatibility with existing firmware-provided devicetrees. This brings the U-Boot mailbox driver in line with the corrected hardware description and matches the behavior of the Linux mailbox driver. Signed-off-by: Jamie Gibbons <jamie.gibbons@microchip.com> Reviewed-by: Conor Dooley <conor.dooley@microchip.com>
2026-06-08mailbox: mpfs-mbox: fix driver bug and cleanupJamie Gibbons
Remove an unused and invalid struct mbox_chan pointer from the private data and fix incorrect memory handling in the probe path, where the private data structure was allocated. This change corrects a functional bugs and cleans up the driver without altering its behavior. Fixes: 111e9bf6a5ac ("mailbox: add PolarFire SoC mailbox driver") Signed-off-by: Jamie Gibbons <jamie.gibbons@microchip.com> Reviewed-by: Conor Dooley <conor.dooley@microchip.com>
2026-06-08mailbox: mpfs-mbox: fix Driver Model private data handlingJamie Gibbons
The MPFS mailbox driver declares priv_auto but also allocates a second private data structure in the legacy probe path and overwrites the device’s private pointer using dev_set_priv(). This results in leaking the auto-allocated private data and replacing the driver’s private state mid-probe, which is incorrect usage of the U-Boot Driver Model and can lead to undefined behavior. Remove the redundant allocation and dev_set_priv() call so that the driver consistently uses the auto-allocated private data provided by U-Boot. Fixes: 111e9bf6a5ac ("mailbox: add PolarFire SoC mailbox driver") Signed-off-by: Jamie Gibbons <jamie.gibbons@microchip.com> Reviewed-by: Conor Dooley <conor.dooley@microchip.com>
2026-06-08mailbox: mpfs-mbox: fix MMIO mapping calculationJamie Gibbons
Correct the MMIO mapping size calculation, which previously relied on an invalid start/end subtraction. This change corrects a functional bug and cleans up the driver without altering its behavior. Fixes: 111e9bf6a5ac ("mailbox: add PolarFire SoC mailbox driver") Signed-off-by: Jamie Gibbons <jamie.gibbons@microchip.com> Reviewed-by: Conor Dooley <conor.dooley@microchip.com>
2026-06-08reset: rockchip: make device resets available in SPLAlexey Charkov
Enable the Rockchip reset controller driver in SPL to allow resetting attached devices like UFS during early boot. Reviewed-by: Jonas Karlman <jonas@kwiboo.se> Signed-off-by: Alexey Charkov <alchark@flipper.net>
2026-06-08clk: rockchip: rk3576: Add CLK_REF_USB3OTGx supportJonas Karlman
The CLK_REF_USB3OTGx clocks are used as reference clocks for the two DWC3 blocks. Add simple support to get rate of CLK_REF_USB3OTGx clocks to fix reference clock period configuration. Signed-off-by: Jonas Karlman <jonas@kwiboo.se> Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2026-06-08clk: rockchip: rk3528: Add CLK_REF_USB3OTG supportJonas Karlman
The CLK_REF_USB3OTG clock is used as reference clock for the DWC3 block. Add simple support to get rate of CLK_REF_USB3OTG clock to fix reference clock period configuration. Signed-off-by: Jonas Karlman <jonas@kwiboo.se> Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2026-06-07usb: typos 'requird', 'current'Heinrich Schuchardt
%s/requird/required/ %s/current XHCI/currently XHCI/ Reviewed-by: Marek Vasut <marek.vasut@mailbox.org> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2026-06-04cpu: imx8_cpu: Fix CPU segment information printYe Li
Should not use CONFIG_IMX_TMU to determine the print of CPU market segment information. Only iMX8 platforms don't have segment fuse. And there is no extended commercial part on iMX9 (91/93/94/95), fix it to extended industrial. Signed-off-by: Ye Li <ye.li@nxp.com>
2026-06-04Merge tag 'u-boot-nvme-fixes-20260604' of ↵Tom Rini
https://source.denx.de/u-boot/custodians/u-boot-ufs - fix dcache invalidation range in identify command - avoid deleting uncreated queues - free prp_pool on nvme_init() failure paths - Log I/O timeouts
2026-06-04Merge tag 'rpi-2026.07-rc4' of ↵Tom Rini
https://source.denx.de/u-boot/custodians/u-boot-raspberrypi Updates for RPi for 2026.07-rc4: - pci: bcmstb: Support for bcm2712
2026-06-04pci: brcmstb: Adapt to AXI bridgeTorsten Duwe
Fix-ups for the BCM root complex when it is located behind an AXI bridge and clocked with 54MHz. Some are from kernel commit 377bced88c326, some where picked by Oleksii off a now-stale older branch. All reworked for the simpler setup code in U-Boot. Signed-off-by: Torsten Duwe <duwe@suse.de> Co-authored-by: Oleksii Moisieiev <oleksii_moisieiev@epam.com> Tested-by: Pedro Falcato <pfalcato@suse.de> Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
2026-06-04pci: brcmstb: rework iBAR handlingTorsten Duwe
Rework the setup of inbound PCIe windows: use the convenience functions from Linux kernel commit ae6476c6de187 to calculate the BAR offsets and factor out the setup code into a separate function. The Linux kernel first allocates and populates an array of inbound_win[] and sets the BARs from it later, while U-Boot does it all on the fly, in one go, so the code is not 1:1 comparable. Signed-off-by: Torsten Duwe <duwe@suse.de> Tested-by: Pedro Falcato <pfalcato@suse.de> Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
2026-06-04pci: brcmstb: Fix iBAR size calculationTorsten Duwe
Fix inbound window size calculation, like Linux commit 25a98c7270156. Signed-off-by: Torsten Duwe <duwe@suse.de> Tested-by: Pedro Falcato <pfalcato@suse.de> Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
2026-06-04pci: brcmstb: Get and use bridge and rescal reset propertiesTorsten Duwe
Check whether the device tree has nodes for the two reset controls and use them if so. Signed-off-by: Torsten Duwe <duwe@suse.de> Co-authored-by: Oleksii Moisieiev <oleksii_moisieiev@epam.com> Tested-by: Pedro Falcato <pfalcato@suse.de> Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
2026-06-04reset: Add RPi5 rescal reset facilitiesTorsten Duwe
A driver for Broadcom rescal reset controllers ported from linux/drivers/reset/reset-brcmstb-rescal.c to U-Boot. Signed-off-by: Torsten Duwe <duwe@suse.de> Co-authored-by: Oleksii Moisieiev <oleksii_moisieiev@epam.com> Tested-by: Pedro Falcato <pfalcato@suse.de>
2026-06-04reset: Add RPi5 brcmstb reset facilitiesTorsten Duwe
A driver for Broadcom reset controllers ported from linux/drivers/reset/reset-brcmstb.c to U-Boot. Signed-off-by: Torsten Duwe <duwe@suse.de> Co-authored-by: Oleksii Moisieiev <oleksii_moisieiev@epam.com> Tested-by: Pedro Falcato <pfalcato@suse.de>
2026-06-04pci: brcmstb: Support different variants using a cfg structTorsten Duwe
The Linux kernel driver already had support for multiple hardware variants when the bcm2712 was added (see e.g. linux commit 10dbedad3c818 which is the last in a longer set of changes). This patch brings in this required infrastructure and adds a differentiation between 2711 and 2712 register layouts on top. Signed-off-by: Torsten Duwe <duwe@suse.de> Co-authored-by: Oleksii Moisieiev <oleksii_moisieiev@epam.com> Tested-by: Pedro Falcato <pfalcato@suse.de> Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
2026-06-04pci: brcmstb: Fix PCIe bus numbersAndrea della Porta
The linux kernel assigns a new domain for every Root Complex where bus numbering starts from 0 for each domain. U-Boot does not have domains and uses a flattened bus numbering scheme instead. This means that any device or bridge on the second enumerated RC will receive a bus number equal to the last assigned one +1. This bus number contributes to the address written into the index register, which will select the configuration space to be read. Compensate for this contribution by subtracting the base bus number. Signed-off-by: Andrea della Porta <andrea.porta@suse.com> Signed-off-by: Torsten Duwe <duwe@suse.de> Tested-by: Pedro Falcato <pfalcato@suse.de> Reviewed-by: Peter Robinson <pbrobinson@gmail.com>
2026-06-03Merge tag 'net-20260603' of https://source.denx.de/u-boot/custodians/u-boot-netTom Rini
Pull request net-20260603. net: - ti: icssg: Fix portname buffer overflow - pxe: Fix potential initrd_filesize buffer overflow net-legacy: - bootp, dhcpv6: Prevent out-of-bound reads and buffer overflow - sntp: Check packet length in sntp_handler
2026-06-03drivers: nvme: Log I/O timeoutsDenis Mukhin
Current code silently swallows any timed-out commands scheduled to NVMe. Log those to be able to debug any potential problems with the NVMe hardware/firmware. Signed-off-by: Denis Mukhin <dmukhin@ford.com> Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org> Reviewed-by: Simon Glass <sjg@chromium.org> Link: https://patch.msgid.link/20260529034441.2075305-2-dmukhin@ford.com Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
2026-06-03net: ti: icssg: Fix portname buffer overflowFrancois Berder
portname consists of dev->parent->name ("icssg0-eth", "icssg1-eth", or "ethernet") and dev->name is the port node name ("port@0" or "port@1"). Every board DTS in the repository produces a string that overflows the buffer: "icssg1-eth-port@0" 17 chars + NUL = 18 bytes (AM642 EVM, IoT2050) "ethernet-port@0" 15 chars + NUL = 16 bytes (SR-SOM, phyboard) This commits increases portname to 64 bytes and replaces sprintf by snprintf so that any future DT node name cannot overflow it regardless of length. Signed-off-by: Francois Berder <fberder@outlook.fr> Reviewed-by: Jerome Forissier <jerome.forissier@arm.com>
2026-06-02usb: xhci-mvebu: Enable Armada 375 in XHCI driverTony Dinh
Add armada-375-xhci to the compatible list in XHCI MVEBU driver. Tested with WD MyCloud Gen2 NAS. Signed-off-by: Tony Dinh <mibodhi@gmail.com> Reviewed-by: Marek Vasut <marek.vasut+usb@mailbox.org>
2026-05-28mmc: bcmstb: Fix non-removable check in bcm2712 initJan Čermák
sdhci_brcmstb_init_2712() reads host->mmc->host_caps to decide whether to force card-detect for a non-removable eMMC, or to route the CD signal for a removable SD card. At the time this function runs from sdhci_bcmstb_probe(), however, host->mmc->host_caps is still zero, that field is only populated later by the MMC uclass, after the driver's probe returns. mmc_of_parse() has already filled plat->cfg.host_caps from the device tree by this point, so check that field instead. Without the fix, every BCM2712 SDHCI instance takes the else branch and writes SDIO_CFG_SD_PIN_SEL = SDIO_CFG_SD_PIN_SEL_CARD (0x02), including the non-removable eMMC on boards such as CM5 on Home Assistant Yellow. The SDIO_CFG block lies outside the SDHCI core's reset scope, so this value persists across SDHCI_RESET_ALL into the next stage. On the BCM2712, having SD_PIN_SEL set to "SD" when the Linux kernel performs its first set_power(MMC_POWER_UP) write racily prevents the SDHCI POWER_ON bit from latching (see [1] for the whole backstory) - the voltage bits stick but POWER_ON drops - which wedges the first CMD0 the full 10 s software timeout. On Home Assistant Yellow this manifested as a ~20 s eMMC probe delay on roughly one in two Linux boots when U-Boot was the previous stage. Booting directly from the Pi firmware (no U-Boot in between) left SD_PIN_SEL at its default and did not exhibit the race. Reading plat->cfg.host_caps lets init_2712 see the "non-removable" property and take the correct branch, leaving SD_PIN_SEL untouched for the eMMC. [1] https://github.com/home-assistant/operating-system/pull/3700#issuecomment-4430229511 Fixes: 10127cdbab64 ("mmc: bcmstb: Add support for bcm2712 SD controller") Signed-off-by: Jan Čermák <sairon@sairon.cz> Reviewed-by: Ivan T. Ivanov <iivanov@suse.de>
2026-05-28nvme: free prp_pool on nvme_init() failure pathsPrashant Kamble
nvme_init() allocates prp_pool after configuring the admin queue, but some later error paths return without freeing it. Free prp_pool before freeing the queue array in the failure paths after nvme_setup_io_queues() and namespace ID buffer allocation. This fixes a memory leak during NVMe initialization failures. Signed-off-by: Prashant Kamble <prashant.kamble223@gmail.com> Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org> Link: https://patch.msgid.link/20260524145721.9206-1-prashant.kamble223@gmail.com Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
2026-05-28nvme: avoid deleting uncreated queuesPrashant Kamble
nvme_create_queue() may issue Delete CQ or Delete SQ commands even when the corresponding queue creation failed. Avoid sending delete commands for queues that were never successfully created. Signed-off-by: Prashant Kamble <prashant.kamble223@gmail.com> Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org> Link: https://patch.msgid.link/20260524154718.16381-1-prashant.kamble223@gmail.com Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
2026-05-28nvme: fix dcache invalidation range in identify commandPrashant Kamble
When the identify buffer crosses a page boundary, PRP2 is used and dma_addr is advanced to the second page: dma_addr += (page_size - offset); The subsequent invalidate_dcache_range() calls then use the modified dma_addr instead of the original buffer start address. As a result, the beginning of the identify buffer is not invalidated and the invalidation range extends past the end of the buffer. Fix this by preserving the original DMA buffer address for cache invalidation. Suggested-by: Neil Armstrong <neil.armstrong@linaro.org> Signed-off-by: Prashant Kamble <prashant.kamble223@gmail.com> Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org> Link: https://patch.msgid.link/20260524100625.11135-1-prashant.kamble223@gmail.com Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
2026-05-26mmc: bcm2835_sdhci: Parse generic MMC device tree propertiesLiel Harel
The bcm2835 SDHCI driver sets up the MMC host configuration via sdhci_setup_cfg(), but does not parse generic MMC device tree properties. As a result, properties such as bus-width are ignored. On Raspberry Pi Compute Module 4, the eMMC node describes an 8-bit bus, but U-Boot initialized the device as 4-bit. Call mmc_of_parse() before sdhci_setup_cfg() so that generic MMC properties are folded into the host configuration before the MMC core selects the bus width. Before this change, mmc info reported: Bus Speed: 52000000 Bus Width: 4-bit After this change, mmc info reports: Bus Speed: 52000000 Bus Width: 8-bit Tested on Raspberry Pi Compute Module 4 with onboard eMMC. Signed-off-by: Liel Harel <liel.harel@gmail.com> Reviewed-by: Peter Robinson <pbrobinson@gmail.com> Tested-by: Peter Robinson <pbrobinson@gmail.com> # on the CM4 as well