summaryrefslogtreecommitdiff
path: root/drivers
AgeCommit message (Collapse)Author
2025-10-24phy: ti: phy-j721e-wiz: Allow reinitialization when SERDES is pre-configuredHrushikesh Salunke
Move the SERDES configuration check after clock and reset initialization and change it from a hard failure to a skip of WIZ initialization. This allows the driver to probe successfully when the SERDES has been pre-configured by a previous boot stage (e.g., ROM or SPL). This approach aligns with how the Linux kernel handles pre-configured SERDES, where the driver gracefully skips reinitialization rather than failing to probe. Signed-off-by: Hrushikesh Salunke <[email protected]>
2025-10-22Merge tag 'net-20251022' of https://source.denx.de/u-boot/custodians/u-boot-netTom Rini
Pull request net-20251022 net: - airoha: improvements - Tighten a few more driver dependencies - designware: fix bitbang init error - phy: Make driver overloading get_phy_id depend on !COMPILE_TEST - phy: add paged PHY register accessors - make dhcp_run() common for NET and NET_LWIP - dwc_eth_ops: Correct check for FDT_64BIT - mediatek: mt7988: various fixup + MDIO detach - phy: aquantia: switch to use phy_get_ofnode(), fix bindings typo net-legacy: - bootp: Prevent buffer overflow to avoid leaking the RAM content - tftp: make TFTP ports unconditionally configurable misc: - uthreads: Make use of CONFIG_IS_ENABLED consistently
2025-10-22Merge tag 'u-boot-at91-2026.01-a' of ↵Tom Rini
https://source.denx.de/u-boot/custodians/u-boot-at91 First set of u-boot-at91 features for the 2026.01 cycle: This small fixes set includes a change on clocks register value and a fix for the sam9x60ek default timer.
2025-10-22net: designware: fix bitbang init errorJim Liu
The Synchronous Abort and reset errors occurred due to incorrect parameter passing during initialization. Signed-off-by: Jim Liu <[email protected]> [jf: add missing #if IS_ENABLED(CONFIG_BITBANGMII)] Signed-off-by: Jerome Forissier <[email protected]>
2025-10-22net: phy: Make driver overloading get_phy_id depend on !COMPILE_TESTTom Rini
With commit 597fe041a85f ("net/phy: enable get_phy_id redefinable") we made get_phy_id a public but weak function, so that PHY drivers that had required non-standard ways of getting the PHY ID could be supported. However, overloading a weak function multiple times is (rightly) a link error. At this point, we have two PHYs which make use of this feature, so make both of them only available when COMPILE_TEST is unset, as part of being able to support "allyesconfig" in the future. Signed-off-by: Tom Rini <[email protected]>
2025-10-22net: phy: add paged PHY register accessorsLucien.Jheng
Synchronize paged PHY helpers with Linux v6.17. Add support for PHY devices that use paged register access by implementing the following functions: - phy_save_page(): Save current page number - phy_select_page(): Switch to a specific page and return previous page - phy_restore_page(): Restore previously saved page Also adds read_page and write_page callbacks to the phy_driver structure to enable driver-specific page handling. These helpers allow safe access to paged PHY registers by ensuring proper page selection and restoration, even in error conditions, which will be used by the Airoha PHY driver. Signed-off-by: Lucien.Jheng <[email protected]>
2025-10-22net: airoha: simplify rx/free packet logic a bitMikhail Kshevetskiy
The commit 997786bbf473 ("drivers/net/airoha_eth: fix stalling in package receiving") can be improved. Instead of returning previous descriptor it's possible: * do nothing in even descriptor case * return 2 descriptor to the queue (current and previous) in the odd descriptor case. This patch: * implements above approach * remove logic not required within new approach * adds note that PKTBUFSRX must be even and larger than 7 for reliable driver operations Signed-off-by: Mikhail Kshevetskiy <[email protected]>
2025-10-22net: mediatek: move MT7531 MMIO MDIO to dedicated driverChristian Marangi
In preparation for support of MDIO on AN7581, move the MT7531 MMIO logic to a dedicated driver and permit usage of the mdio read/write function to the mtk_eth driver. This only affect MT7988 that can use MMIO operation to access the Switch register. The MT7988 code is updated to make use of the external driver. This permits Airoha driver to make use of DM_MDIO to bind for the MT7531 driver that have the same exact register. Signed-off-by: Christian Marangi <[email protected]>
2025-10-22net: mediatek: mt7988: free allocated MDIO bus on cleanupChristian Marangi
Correctly free the MDIO Bus on calling cleanup function. While at it also fix a copy-paste error and rename the cleanup function name to the more specific name. Signed-off-by: Christian Marangi <[email protected]>
2025-10-22net: mediatek: mt7988: restore PHY page on PHY setting exitChristian Marangi
On exiting the phy_setting function for MT7988, the PHY page is never restored to Page 0. This can cause all kind of problem with reading the status of the PHY at runtime. Correctly restore PHY page on exiting the PHY setting function. Signed-off-by: Christian Marangi <[email protected]>
2025-10-22net: mediatek: mt7531/7988: fix broken PHY turn ON/OFFChristian Marangi
The PHY for MT7531/MT7988 are never actully turned ON/OFF for the affected PHY as we are read/writing to the wrong PHY address. This is caused by the fact that we use the MT753X_PHY_ADDR macro 2 times offsetting the address multiple times. One in the _setup() function and one in the mt7531_mii_read/write. Drop the additional usage of MT753X_PHY_ADDR in setup() to correctly set the PHY. Signed-off-by: Christian Marangi <[email protected]>
2025-10-22net: phy: aquantia: switch to use phy_get_ofnode()Beiyan Yun
Use PHY API phy_get_ofnode() helper to get PHY DT node. Signed-off-by: Beiyan Yun <[email protected]>
2025-10-22net: Tighten more driver dependenciesTom Rini
In this case, the mediatek network drivers cannot build outside of ARCH_MEDIATEK or ARCH_MTMIPS, and so express this requirement in Kconfig as well. In the case of DWC_ETH_XGMAC / DWC_ETH_XGMAC_SOCFPGA, the file controlled by the DWC_ETH_XGMAC option references a socfpga-specific array defined in the file controlled by DWC_ETH_XGMAC_SOCFPGA. Rework these options in Kconfig to handle this dependency. Signed-off-by: Tom Rini <[email protected]>
2025-10-22arm: socfpga: Tighten a few more driver dependenciesTom Rini
Some drivers which depend on SoCFPGA specific headers had not had appropriate dependencies list in Kconfig. Add ARCH_SOCFPGA or TARGET_SOCFPGA_SOC64 where appropriate. Signed-off-by: Tom Rini <[email protected]>
2025-10-20Revert "spi: cadence-qspi: Remove cdns, is-dma property handling"Michal Simek
This reverts commit a040578d8270ed8788d7663808ea63ce5ffd7840. Based on feedback other SOCs (for example Star64) are using driver in non DMA mode which is causing issues that's why revert this patch. cdns,is-dma should be removed differently. Signed-off-by: Michal Simek <[email protected]> Reported-by: E Shattow <[email protected]>
2025-10-17Merge branch 'master' of https://source.denx.de/u-boot/custodians/u-boot-shTom Rini
SH HSCIF FIFO fixes, R-Car V4H/V4M DT corrections, R-Car V4H Sparrow Hawk PCIe shutdown support before booting Linux.
2025-10-17serial: sh: Handle HSCIF RX FIFO overflowMarek Vasut
The HSCIF RX FIFO may overflow when data are streaming from remote end into the HSCIF while U-Boot is still starting up. In that case, HSFSR bit RDF is set, but HSFDR field R is zero. This confuses .tstc callback into considering RX FIFO to be empty, which leads to .getc to be never invoked, even when user attempts to pass more input onto the command line. Fix this by considering the RDF flag in serial_rx_fifo_level(), which is called from .tstc in case of no errors. If RDF flag is set, trigger the .getc callback and let it clear the RX FIFO. Signed-off-by: Marek Vasut <[email protected]>
2025-10-17pci: pcie-rcar-gen4: Shut down controller on link down and removeMarek Vasut
In case the link is down, or the controller driver is removed before booting the next stage, shut down the PCIe link, put both the remote PCIe device and the controller into reset, and disable clock. This way, the hardware is not left active when not in use. Signed-off-by: Marek Vasut <[email protected]>
2025-10-17Merge patch series "led: fixes"Tom Rini
Patrice Chotard <[email protected]> says: - Update led_get_by_label() - Fix led Kconfig Link: https://lore.kernel.org/r/[email protected]
2025-10-17led: Add LED dependency for LED_ACTIVITY and LED_BOOTPatrice Chotard
Add LED dependency for LED_ACTIVITY and LED_BOOT. Signed-off-by: Patrice Chotard <[email protected]> Cc: Yegor Yefremov <[email protected]> Reviewed-by: Yegor Yefremov <[email protected]>
2025-10-17led: Update led_get_by_label()Patrice Chotard
During led_init() execution, led_get_label() returns either the label property (which is an obsolete property [1]) or the LED's node name. It can't be the function name as dev parameter is NULL. Later, during led_post_bind() execution, for the same LED, the attributed label by led_get_label() can be the function name, as led_get_label() dev's parameter is set. During call sequence led_boot_on() => led_boot_get() => led_get_by_label() with label given in parameter (priv->boot_led_label which is either the label or node's name set previously in led_init()) can be different to to uc_plat->label and returns -ENODEV. Update led_get_by_label() to allow to retrieve LED also by its node name. [1] https://www.kernel.org/doc/Documentation/devicetree/bindings/leds/common.yaml Signed-off-by: Patrice Chotard <[email protected]> Cc: Yegor Yefremov <[email protected]>
2025-10-17clk: at91: remove default values for PMC_PLL_ACRManikandan Muralidharan
Remove default values for PMC PLL Analog Control Register(ACR) as the values are specific for each SoC and PLL, so load them from PLL characteristics structure Signed-off-by: Manikandan Muralidharan <[email protected]> Signed-off-by: Varshini Rajendran <[email protected]>
2025-10-17clk: at91: Add ACR in all PLL setting.Manikandan Muralidharan
Add ACR in all PLL setting. Add correct ACR value for each PLL used in different SoCs. Signed-off-by: Manikandan Muralidharan <[email protected]> Signed-off-by: Varshini Rajendran <[email protected]>
2025-10-16virito: blk: fix logic to determine block sizesHeinrich Schuchardt
With commit c85b8071e7d3 ("virtio: blk: support block sizes exceeding 512 bytes") logic was added to detect the VIRTIO_BLK_F_BLK_SIZE capability and to copy the block size reported by QEMU to the block device descriptor. The logical block size can be set when invoking QEMU: -drive if=none,file=4096.img,format=raw,id=vda \ -device virtio-blk-device,drive=vda,physical_block_size=4096,logical_block_size=4096 In U-Boot the logical block size is shown by command `virtio info`: => virtio info Device 0: QEMU VirtIO Block Device Type: Hard Disk Capacity: 1024.0 MB = 1.0 GB (262144 x 4096) There where two flaws which together hid that the logic was incorrect: * VIRTIO_BLK_F_BLK_SIZE was missing in the driver capabilities and the bit was filtered out. * The result of the call to virtio_has_feature() was negated. The problem became apparent when using ARM FVP as emulator which does not set VIRTIO_BLK_F_BLK_SIZE. Fixes: c85b8071e7d3 ("virtio: blk: support block sizes exceeding 512 bytes") Reported-by: Debbie Horsfall <[email protected]> Tested-by: Andre Przywara <[email protected]> Signed-off-by: Heinrich Schuchardt <[email protected]>
2025-10-16ti_sci: Pointer is never assigned to valid valueAndrew Goodbody
The pointer resp is declared but never assigned a value but is then dereferenced. Fix this by assigning the pointer to the message buffer. This issue was found by Smatch. Reviewed-by: Udit Kumar <[email protected]> Signed-off-by: Andrew Goodbody <[email protected]> Reviewed-by: Nishanth Menon <[email protected]> Tested-by: Anshul Dalal <[email protected]>
2025-10-16ti_sci: Provide error code on error exitAndrew Goodbody
In ti_sci_get_response the check for message sequence will return ret on a fail but ret will be 0 at that point. Instead return -EINVAL. Also change dev_dbg call to dev_err to be consistent with other error detection code in the same function. This issue was found by Smatch. Reviewed-by: Udit Kumar <[email protected]> Signed-off-by: Andrew Goodbody <[email protected]> Reviewed-by: Nishanth Menon <[email protected]> Tested-by: Anshul Dalal <[email protected]>
2025-10-16ti_sci: Prevent memory leakAndrew Goodbody
temp is assigned the pointer returned by malloc which is used without a NULL check and then never freed. Add a NULL check and ensure temp is freed on all return paths. This issue was found by Smatch. Reviewed-by: Udit Kumar <[email protected]> Signed-off-by: Andrew Goodbody <[email protected]> Reviewed-by: Nishanth Menon <[email protected]> Tested-by: Anshul Dalal <[email protected]>
2025-10-16Merge tag 'u-boot-watchdog-20251016' of ↵Tom Rini
https://source.denx.de/u-boot/custodians/u-boot-watchdog CI: https://dev.azure.com/sr0718/u-boot/_build/results?buildId=400&view=results - watchdog: Tighten some driver dependencies in Kconfig (Tom)
2025-10-16clk: sophgo: Fix a warning about void returns valueTom Rini
The cv1800b_clk_setfield function returns void, but was doing "return writel(...);" and while seemingly having a void function return a void function is not a warning, when readl is a macro this problem is shown. Correct the code to instead simply call writel. Signed-off-by: Tom Rini <[email protected]> Reviewed-by: Yao Zi <[email protected]>
2025-10-16watchdog: Tighten dependencies on WDT_DAVINCITom Rini
The WDT_DAVINCI driver is not safe to compile on 64bit platforms such as allyesconfig on a 64bit host. Tighten the dependencies here to the platforms which could use it today. Signed-off-by: Tom Rini <[email protected]>
2025-10-16watchdog: Tighten some watchdog driver dependenciesTom Rini
A few watchdog drivers cannot build without access to some platform specific header files. Express those requirements in Kconfig as well. Signed-off-by: Tom Rini <[email protected]> Reviewed-by: Stefan Roese <[email protected]>
2025-10-14Merge tag 'xilinx-for-v2026.01-rc1-v2' of ↵Tom Rini
https://source.denx.de/u-boot/custodians/u-boot-microblaze AMD/Xilinx/FPGA changes for v2026.01-rc1 v2 zynqmp: - DT updates - Enable new commands mbv: - Simplify defconfigs clk: - Separate legacy handler and use SMC handler misc: - Tighten TTC Kconfig dependency net: - Add 10GBE support to Gem pwm: - cadence-ttc: Fix array sizes fwu: - Add platform hook support spi: - Remove undocumented cdns,is-dma property video: - Fix DPSUB RGB handling
2025-10-14Merge tag 'mix-next-14102025' of ↵Tom Rini
https://source.denx.de/u-boot/custodians/u-boot-tpm TPM changes: Make all drive names defined with U_BOOT_DRIVER unique TEE changes: Rework things such that sandbox will also traverse the optee directory when SANDBOX_TEE is enabled, but only build one of the optee-specific files when OPTEE is enabled. EFI changes: Up to now we were relying on the file extension to accept and load an image over HTTP. We expected images to be either .iso or .img. By wiring up internal existing functions we can try to mount any file extension and reject it only if mounting fails. part_driver_lookup_type
2025-10-14spi: cadence-qspi: Remove cdns,is-dma property handlingMichal Simek
Remove cdns,is-dma DT property handling. Property is not the part of DT binding and it is also hardcoded to value 1 in all DTs that's why remove it because none is also testing value 0. If there is any use case when this configuration should be supported this patch can be reverted. Signed-off-by: Michal Simek <[email protected]> Link: https://lore.kernel.org/r/6205c6585589b423692b6ed063506b4c51c04c77.1760006086.git.michal.simek@amd.com
2025-10-14tpm: Make U_BOOT_DRIVER entries uniqueTom Rini
All instances of the U_BOOT_DRIVER must use a unique name or they will lead to link time failures due to name space conflicts when both are present. In this case the driver was reusing the tpm_tis_i2c name. Signed-off-by: Tom Rini <[email protected]> Reviewed-by: Ilias Apalodimas <[email protected]> Signed-off-by: Ilias Apalodimas <[email protected]>
2025-10-14tee: Rework Makefile logicTom Rini
The intention of how this Makefile was written was to allow for sandbox to build and test drivers still while otherwise requiring OPTEE to be enabled. This however didn't work quite right in practice as sandbox could enable some drivers which would then fail to link. Rework things such that sandbox will also traverse the optee directory when SANDBOX_TEE is enabled, but only build one of the optee-specific files when OPTEE is enabled. Signed-off-by: Tom Rini <[email protected]> Acked-by: Ilias Apalodimas <[email protected]> Signed-off-by: Ilias Apalodimas <[email protected]>
2025-10-13pci: mvebu: Unable to assign mbus windows for 2nd pcie controllerTony Dinh
Correct the memory and IO mbus windows size increments in mvebu_pcie_bind. Currently, pcie1 controller resource_size(&mem) and resource_size(&io) checks result in a failure. This is because mem.end and io.end must be incremented at the end of pcie0 windows assignment. Signed-off-by: Tony Dinh <[email protected]> Reviewed-by: Stefan Roese <[email protected]>
2025-10-13phy: marvell: Tighten MVEBU_COMPHY_SUPPORT dependenciesTom Rini
This driver cannot link without access to functions that are defined in files that are only build on some platforms. Express those requirements in Kconfig as well. Signed-off-by: Tom Rini <[email protected]> Reviewed-by: Stefan Roese <[email protected]>
2025-10-13mmc: octeontx_hsmmc: Remove impossible testAndrew Goodbody
In octeontx_mmc_io_drive_setup drive and slew are tested for being less than 0 but they are declared as uint fields so this test must always fail. Just remove the test. This issue was found by Smatch. Signed-off-by: Andrew Goodbody <[email protected]>
2025-10-13mmc: octeontx_hsmmc: Need parens in expressionAndrew Goodbody
The check for no response expected in octeontx_mmc_send_cmd needs parens adding for proper interpretation. This issue was found by Smatch. Signed-off-by: Andrew Goodbody <[email protected]>
2025-10-13sata: sata_mv: Remove always true testAndrew Goodbody
Smatch reported an issue with a test that was always true in that an unsigned variable will always be >= to zero. This led to a closer look at the code which showed that some static functions returned values that were always discarded so make those functions return void. Also make the passing of block counts in those functions always use lbaint_t. Signed-off-by: Andrew Goodbody <[email protected]> Reviewed-by: Stefan Roese <[email protected]>
2025-10-10Merge patch series "am65-cpsw-nuss phy_interface_t fixup for fixed TX delay"Tom Rini
Matthias Schiffer <[email protected]> says: Following a discussion on the LKML [1], there has been a clarification of the correct use of the rgmii(/-rxid/-txid/-it) phy-modes [2] - namely, that they don't describe the interface at the MAC or PHY boundary, but whether the PCB traces add delays or not (where it is implementation-defined whether the delays are added on the MAC or PHY side in the latter case). Accordingly, a fixup has been implemented in the am65-cpsw-nuss driver to make it follow the clarified rules [3]; apply the same change to U-Boot. Backwards compatibility is preserved: using an old DTB with the wrong phy-mode only results in a warning message, but keeps the Ethernet working. With a new DTB from Linux 6.17+ that sets the mode to rgmii-id, these changes are necessary to avoid using an unsupported/ reserved configuration. See the commit message of patch 2/2 for some additional detail. [1] https://lore.kernel.org/lkml/[email protected]/ [2] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=c360eb0c3ccb95306704fd221442283ee82f1f58 [3] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=ca13b249f291f4920466638d1adbfb3f9c8db6e9 Link: https://lore.kernel.org/r/[email protected]
2025-10-10net: ethernet: ti: am65-cpsw: fix up PHY mode for fixed RGMII TX delayMatthias Schiffer
The am65-cpsw driver currently sets the SEL_RGMII_IDMODE flag in a MAC's mode register to enable or disable the TX delay. While this was supported for earlier generations of the CPSW controller, the datasheets of all modern TI SoCs using the am65-cpsw MAC state that the TX delay is fixed, and the SEL_RGMII_IDMODE bit is documented as reserved in most of them. Furthermore, while it was found that this bit does in fact disable the TX delay, [1] states that this setting is truly unsupported by TI and not just undocumented. Following the clarification of the rgmii* phy-mode values in the Linux DT bindings in [2], the Linux am65-cpsw driver was changed in [3] to account for the fixed TX delay by fixing up the mode passed to the PHY driver; a similar fixup already existed in the TI icssg-prueth driver. [4] followed up on this by explicitly clearing the SEL_RGMII_IDMODE flag to handle the case where it is set by the bootloader or other firmware before Linux. With the above changes, Device Trees that set the recommended "rgmii-id" mode are now appearing in Linux 6.17+. Avoid setting the unsupported SEL_RGMII_IDMODE flag for such Device Trees, and instead fix up the PHY interface mode, thus aligning the U-Boot driver with the Linux kernel. [1] https://www.spinics.net/lists/netdev/msg1112647.html [2] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=c360eb0c3ccb95306704fd221442283ee82f1f58 [3] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=ca13b249f291f4920466638d1adbfb3f9c8db6e9 [4] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=a22d3b0d49d411e64ed07e30c2095035ecb30ed2 Signed-off-by: Matthias Schiffer <[email protected]>
2025-10-10timer: Tighten dependencies on MCHP_PIT64B_TIMERTom Rini
The MCHP_PIT64B_TIMER driver is not safe to compile on 64bit platforms such as allyesconfig on a 64bit host. Tighten the dependencies here to the platforms which use it today. Acked-by: Eugen Hristev <[email protected]> Signed-off-by: Tom Rini <[email protected]>
2025-10-10gpio: Remove FTGPIO0010 driverTom Rini
This driver has never been enabled and currently has build problems related in part to incorrect out_le32 calls. Remove it. Signed-off-by: Tom Rini <[email protected]>
2025-10-10Merge branch 'uboot-05102025' of ↵Tom Rini
https://source.denx.de/u-boot/custodians/u-boot-nand-flash This series adds significant and valuable work by Mikhail Kshevetskiy to align spi-mem with Linux 6.16. It also includes contributions to the mtd performance patches, a work started by Miquel Raynal and improved by Mikhail Kshevetskiy. Additionally, two patches tighten dependencies on the Atmel driver. The patches pass the pipeline CI: https://source.denx.de/u-boot/custodians/u-boot-nand-flash/-/pipelines/27873
2025-10-10Merge tag 'fsl-qoriq-master-2025-10-10' of ↵Tom Rini
https://source.denx.de/u-boot/custodians/u-boot-fsl-qoriq CI: https://source.denx.de/u-boot/custodians/u-boot-fsl-qoriq/-/pipelines/27882 - crypto/rng: double the entropy delay interval for retry - Make RAMBOOT_PBL only be valid for PowerPC or ls1021AI
2025-10-10crypto/rng: double the entropy delay interval for retryGaurav Jain
During entropy evaluation, if the generated samples fail any statistical test, then, all of the bits will be discarded, and a second set of samples will be generated and tested. Double the ent_delay to give more chance to pass before performing retry. Signed-off-by: Gaurav Jain <[email protected]> Signed-off-by: Peng Fan <[email protected]>
2025-10-10mmc: cv1800b_sdhci: Fix possible warning with MMC_SUPPORTS_TUNING=nTom Rini
The function cv1800b_set_tap_delay is only called by cv1800b_execute_tuning. The latter is where we currently have the #if guard around MMC_SUPPORTS_TUNING, and so with the option disabled we have an unused function warning. Move the guard to cover both functions. Signed-off-by: Tom Rini <[email protected]> Signed-off-by: Peng Fan <[email protected]>
2025-10-10power: regulator: Correct dependencies on SPL_REGULATOR_PWMTom Rini
In order to enable and build with SPL_REGULATOR_PWM we need to have both SPL_DM_REGULATOR and SPL_DM_PWM enabled. Build-wise, we can have SPL have PWM regulator support without enabling it in U-Boot itself so drop that dependency. Signed-off-by: Tom Rini <[email protected]> Signed-off-by: Peng Fan <[email protected]>