summaryrefslogtreecommitdiff
path: root/include
AgeCommit message (Collapse)Author
2025-05-01dm: video: Add damage tracking APIAlexander Graf
We are going to introduce image damage tracking to fasten up screen refresh on large displays. This patch adds damage tracking for up to one rectangle of the screen which is typically enough to hold blt or text print updates. Callers into this API and a reduced dcache flush code path will follow in later patches. Signed-off-by: Alexander Graf <[email protected]> Reported-by: Da Xue <[email protected]> [Alper: Use xstart/yend, document new fields, return void from video_damage(), declare priv, drop headers, use IS_ENABLED()] Co-developed-by: Alper Nebi Yasak <[email protected]> Signed-off-by: Alper Nebi Yasak <[email protected]> Link: https://lore.kernel.org/u-boot/[email protected]/ Reviewed-by: Simon Glass <[email protected]>
2025-05-01efi_loader: bootbin: do not load an initrd if none is providedAdriano Cordova
Do not try to create an initrd device path nor try to register an initrd with the EFI_LOAD_FILE2_PROTOCOL if none is provided. Handle initrd installation in efi_binary_run_dp with efi_install_initrd, imitating what is done for the fdt. Fixes: 36835a9105c ("efi_loader: binary_run: register an initrd") Reported-by: Weizhao Ouyang <[email protected]> Signed-off-by: Adriano Cordova <[email protected]> Tested-by: Weizhao Ouyang <[email protected]> Reviewed-by: Ilias Apalodimas <[email protected]> Reviewed-by: Heinrich Schuchardt <[email protected]>
2025-05-01uthread: doc: fix inline documentationJerome Forissier
Fix Sphinx warnings: $ make htmldocs [...] ./include/uthread.h:56: warning: cannot understand function prototype: 'enum uthread_mutex_state ' ./include/uthread.h:64: warning: cannot understand function prototype: 'struct uthread_mutex ' ./include/uthread.h:56: warning: cannot understand function prototype: 'enum uthread_mutex_state ' ./include/uthread.h:64: warning: cannot understand function prototype: 'struct uthread_mutex ' Signed-off-by: Jerome Forissier <[email protected]> Reported-by: Tom Rini <[email protected]> Tested-by: Heinrich Schuchardt <[email protected]> Acked-by: Ilias Apalodimas <[email protected]>
2025-04-29mtd: spi-nor: Use CONFIG_IS_ENABLED for CONFIG_SPI_FLASH_BAR definesBernhard Messerklinger
At the moment a mixture of ifdef(CONFIG_IS_ENABLED) and CONFIG_IS_ENABLED(SPI_FLASH_BAR) is used in the spi-nor framework. This leads to misbehaviour in the SPL as there is no Kconfig option CONFIG_SPL_SPI_FLASH_BAR. This commit standardizes the use of CONFIG_SPI_FLASH to get SPLs that load U-Boot proper from the SPI flash to work again. Fixes: 9bb02f7 (mtd: spi-nor: Fix the spi_nor_read() when config SPI_STACKED_PARALLEL is enabled) Signed-off-by: Bernhard Messerklinger <[email protected]>
2025-04-28lmb: use a different bit position for LMB_NOMAPSughosh Ganu
The LMB memory region attributes flags are used to specify the behaviour of the memory regions with respect to allocations -- for e.g. it is allowed to re-allocate a memory region already reserved with the LMB_NONE flag. The flags use values with different bit positions through the BIT() macro. Move the LMB_NOMAP value to bit position 1, and also move the other flags accordingly. Using bit position 0 for LMB_NOMAP results in the logic in lmb_print_region_flags() to break, which prints an incorrect value for the regions with LMB_NOMAP atribute. Fixes: 3d56c06551d ("lmb: Move enum lmb_flags to a u32") Signed-off-by: Sughosh Ganu <[email protected]>
2025-04-28Merge tag 'u-boot-imx-master-20250428' of ↵Tom Rini
https://gitlab.denx.de/u-boot/custodians/u-boot-imx CI: https://source.denx.de/u-boot/custodians/u-boot-imx/-/pipelines/25974 - Fix power-domain ref counting regression. - Fix i.MX8MP USB clock regression. - Fix i.MX8MM osc_32k regression in SPL. - Finish converting clock-osc-24 back to osc_24 on i.MX. - Several imx8mp capricorn updates. - Update Stefano Babic's email address. - Fix fsl_qspi bug by moving AHB read buffer config after LUT. - Fix verdin imx95 sku 0089 pid4.
2025-04-28Merge branch 'master' of https://source.denx.de/u-boot/custodians/u-boot-sunxiTom Rini
We have improvements to the reliability of H6 and H616 DRAM initialisation, hopefully avoiding those occasional size misdetections many people reported before. Also there is some modernisation of the USB PHY code, to use DT provided regulators and GPIOs, instead of relying on this being badly duplicated in Kconfig. This also happens to fix broken USB operations for older boards (using the A20 SoCs, for instance), which were clashing over grabbing some GPIOs, leading to a driver bailout. There is also some rework of the H6/H616 SPL clock code, to prepare it for being reused by the upcoming Allwinner A523 support. This drops the usage of C structs to model MMIO register frames, and replaces them by using an addition of the base address with a macro defined offset. Also in preparation for A523 there is one fix and one addition for the FEL code, to prepare for the GICv3 interrupt controller that the new SoC uses. And since this is a simple fix, and was ready, there is also the watchdog driver for that new SoC. Finally tossing in an easy fix to some H616 defconfig files to enable eMMC. I also use the opportunity to enable proper page table protection (observing read-only and no-execute attributes), support for which the arm64 port recently gained. I didn't spot any issues on my arm64 board tests, but it can be easily disabled or backed out again in case any issues arise. Full support for the two new SoC series (A133 and A523) we are working on is not quite ready yet, but might follow still a bit later if progress permits. CI passed, and boot-tested on at least one board with a H616, H6, A64, H3, A20, T113s.
2025-04-28gpio: axp: Remove virtual VBUS enable GPIOSamuel Holland
Now that this functionality is modeled using the device tree and regulator uclass, the named GPIO is not referenced anywhere. Remove it, along with the rest of the support for AXP virtual GPIOs. Signed-off-by: Samuel Holland <[email protected]> Signed-off-by: Andre Przywara <[email protected]> Reviewed-by: Jernej Skrabec <[email protected]>
2025-04-28siemens: imx8qxp: remove unused config fileHeiko Schocher
include/configs/giedi.h is not longer used after siemens imx8qxp cleanup series, so remove it. Signed-off-by: Heiko Schocher <[email protected]>
2025-04-28siemens: capricorn: enable text based default environmentWalter Schweizer
enable text based default U-Boot Environment by enabling CONFIG_ENV_SOURCE_FILE and adding default environment file: board/siemens/capricorn/capricorn_cxg3.env Signed-off-by: Heiko Schocher <[email protected]> Signed-off-by: Walter Schweizer <[email protected]>
2025-04-28clk: imx: Pass CCM udevice into clk_register_composite()Marek Vasut
Pass the clock controller udevice into clk_register_composite(), so it can be passed further to any registered composite clocks and used for look up of parent clock referenced in DT "clocks" and "clock-names" properties by phandle and name pair. Use the clock controller udevice in imx8m_clk_mux_set_parent() to perform accurate look up of parent clock referenced in the CCM driver by name. If the clock name that is being looked up matches one of the names listed in the clock controller DT node "clock-names" array property, then the offset of the name is looked up in the "clocks" DT property and the phandle at that offset is resolved to the parent clock udevice. The test to determine whether a particular driver instance registered with clock uclass matches the parent clock is done by comparing the OF nodes of the clock registered with clock uclass and parent clock resolved from the phandle. Example: drivers/clk/imx/clk-imx8mm.c: static const char * const imx8mm_a53_sels[] = {"osc_24m", "arm_pll_out", ... _____________| arch/arm/dts/imx8mm.dtsi: | clk: clock-controller@30380000 { v clock-names = "osc_32k", "osc_24m", ... | v clocks = <&osc_32k>, <&osc_24m>, ... }; _______________________| ... | / { v osc_24m: clock-osc-24m { compatible = "fixed-clock"; ... }; Signed-off-by: Marek Vasut <[email protected]> Reported-by: Francesco Dolcini <[email protected]> Tested-by: Fabio Estevam <[email protected]> Tested-by: Adam Ford <[email protected]> # imx8mp-beacon
2025-04-28power-domain: Add support for refcounting (again)Miquel Raynal
It is very surprising that such an uclass, specifically designed to handle resources that may be shared by different devices, is not keeping the count of the number of times a power domain has been enabled/disabled to avoid shutting it down unexpectedly or disabling it several times. Doing this causes troubles on eg. i.MX8MP because disabling power domains can be done in recursive loops were the same power domain disabled up to 4 times in a row. PGCs seem to have tight FSM internal timings to respect and it is easy to produce a race condition that puts the power domains in an unstable state, leading to ADB400 errors and later crashes in Linux. Some drivers implement their own mechanism for that, but it is probably best to add this feature in the uclass and share the common code across drivers. In order to avoid breaking existing drivers, refcounting is only enabled if the number of subdomains a device node supports is explicitly set in the probe function. ->xlate() callbacks will return the power domain ID which is then being used as the array index to reach the correct refcounter. As we do not want to break existing users while stile getting interesting error codes, the implementation is split between: - a low-level helper reporting error codes if the requested transition could not be operated, - a higher-level helper ignoring the "non error" codes, like EALREADY and EBUSY. CI tests using power domains are slightly updated to make sure the count of on/off calls is even and the results match what we *now* expect. They are also extended to test the low-level functions. Signed-off-by: Miquel Raynal <[email protected]>
2025-04-25configs: stm32mp25: add PXE boot supportPatrice Chotard
Configure the required configuration to allow PXE boot, without autoload support by default. Signed-off-by: Patrick Delaunay <[email protected]> Signed-off-by: Patrice Chotard <[email protected]>
2025-04-25configs: stm32mp25: add USB host boot supportPatrice Chotard
Add support for booting from USB pen drive, since USB host port is available on the STM32MP2. Signed-off-by: Patrice Chotard <[email protected]>
2025-04-25board: st: stm32mp2: change bootcmd for ST boardsPatrick Delaunay
For nor0 boot for the STMicroelectronics boards, the bootfs is found in SD-Card = mmc0 for nor0 boot. Introduce a new file configuration file stm32mp25_st_common.h to manage this specific behavior for the STMicroelectronics boards; change the boot order for nor0 boot and don't use the default DISTRO order define in BOOT_TARGET_DEVICES: mmc1, ubifs, mmc0, mmc2. Signed-off-by: Patrick Delaunay <[email protected]> Signed-off-by: Patrice CHOTARD <[email protected]>
2025-04-25configs: stm32mp25: add support of NAND and NOR bootPatrice Chotard
Add support of UBI boot and activate the needed configuration for U-Boot environment in UBI volume for NAND or in a MTD partition for NOR device, SPI Flash: ENV_OFFSET, ENV_OFFSET_REDUND, ENV_SECT_SIZE is aligned with the default MTD partition on NOR device of the STMicroelectronics boards. Signed-off-by: Patrick Delaunay <[email protected]> Signed-off-by: Patrice Chotard <[email protected]>
2025-04-25configs: stm32mp25: add bootcmd for stm32mp25 platformPatrice Chotard
Handle boot for the 3 instance of MMC and call the command stm32prog for serial boot on USB or on UART as it is done for other STM32MP platform. Signed-off-by: Patrick Delaunay <[email protected]> Signed-off-by: Patrice Chotard <[email protected]>
2025-04-25ARM: dts: stm32: convert stm23f7 boards to OF_UPSTREAMPatrice Chotard
Enable OF_UPSTREAM flag for STM32F7 platforms. Use upstream device tree for DSI and LTDC nodes, As now in upstream DT, in panel@0 node, power-supply property is present, which is a fixed-regulator, add DM_REGULATOR_FIXED flag for stm32f769-disco boards. Set also DEFAULT_FDT_FILE in defconfigs and use it in stm32f746-disco.h to indicate which FDT file to load (All STM32F7 boards are using this file). If something is missing, it must be added in upstream device tree in linux kernel ("px_clk" for DSI by example). Signed-off-by: Patrick Delaunay <[email protected]> Signed-off-by: Patrice Chotard <[email protected]> Reviewed-by: Patrick Delaunay <[email protected]>
2025-04-25ARM: dts: sti: convert stih410-b2260 board to OF_UPSTREAMPatrice Chotard
Enable OF_UPSTREAM flag for stih410-b2260 board. Signed-off-by: Patrice Chotard <[email protected]> Reviewed-by: Patrick Delaunay <[email protected]>
2025-04-24Merge patch series "More MMC fixes"Tom Rini
Judith Mendez <[email protected]> says: This patch series fixes MMC_HS_52 mode in am654_sdhci driver, as well as HIGH_SPEED_ENA and UHS_MODE_SELECT for HS modes. Also add TI_COMMON_CMD_OPTIONS to K3 Sitara board a53 defconfigs. Link: https://www.ti.com/lit/er/sprz574a/sprz574a.pdf Link: https://lore.kernel.org/r/[email protected]
2025-04-24mmc: am654_sdhci: Add am654_sdhci_set_control_regJudith Mendez
This patch adds am654_sdhci_set_control_reg to am654_sdhci. This is required to fix UHS_MODE_SELECT for TI K3 boards. If any of HIGH_SPEED_ENA, V1P8_SIGNAL_ENA, UHS_MODE_SELECT are set, then data will be launched on the pos-edge of the clock. Since K3 SoCs did not meet timing requirements for High Speed SDR mode at rising clock edge, none of these three should be set, therefore limit UHS_MODE_SELECT to only be set for modes above MMC_HS_52. This fixes MMC write issue on am64x evm at mode High Speed SDR. Signed-off-by: Judith Mendez <[email protected]> Reviewed-by: Bryan Brattlof <[email protected]>
2025-04-24Merge tag 'u-boot-dfu-20250424' of ↵Tom Rini
https://source.denx.de/u-boot/custodians/u-boot-dfu u-boot-dfu-20250425 Usb gadget: - Fix ACM gadget release - Allow ACM gadget restart after releasing it - Add 'enabled' flag to usb_ep structure DFU: - Fix alt buffer clearing for DeveloperBox board
2025-04-23Merge patch series "Uthreads"Tom Rini
Jerome Forissier <[email protected]> says: This series introduces threads and uses them to improve the performance of the USB bus scanning code and to implement background jobs in the shell via two new commands: 'spawn' and 'wait'. The threading framework is called 'uthread' and is inspired from the barebox threads [2]. setjmp() and longjmp() are used to save and restore contexts, as well as a non-standard extension called initjmp(). This new function is added in several patches, one for each architecture that supports HAVE_SETJMP. A new symbol is defined: HAVE_INITJMP. Two tests, one for initjmp() and one for the uthread scheduling, are added to the lib suite. After introducing threads and making schedule() and udelay() a thread re-scheduling point, the USB stack initialization is modified to benefit from concurrency when UTHREAD is enabled, where uthreads are used in usb_init() to initialize and scan multiple busses at the same time. The code was tested on arm64 and arm QEMU with 4 simulated XHCI buses and some devices. On this platform the USB scan takes 2.2 s instead of 5.6 s. Tested on i.MX93 EVK with two USB hubs, one ethernet adapter and one webcam on each, "usb start" takes 2.4 s instead of 4.6 s. Finally, the spawn and wait commands are introduced, allowing the use of threads from the shell. Tested on the i.MX93 EVK with a spinning HDD connected to USB1 and the network connected to ENET1. The USB plus DHCP init sequence "spawn usb start; spawn dhcp; wait" takes 4.5 seconds instead of 8 seconds for "usb start; dhcp". [1] https://patchwork.ozlabs.org/project/uboot/list/?series=446674 [2] https://github.com/barebox/barebox/blob/master/common/bthread.c Link: https://lore.kernel.org/r/[email protected]
2025-04-23cyclic: invoke uthread_schedule() from schedule()Jerome Forissier
Make the schedule() call from the CYCLIC framework a uthread scheduling point too. This makes sense since schedule() is called from a lot of places where uthread_schedule() needs to be called. Signed-off-by: Jerome Forissier <[email protected]> Reviewed-by: Ilias Apalodimas <[email protected]> Reviewed-by: Stefan Roese <[email protected]>
2025-04-23uthread: add uthread_mutexJerome Forissier
Add struct uthread_mutex and uthread_mutex_lock(), uthread_mutex_trylock(), uthread_mutex_unlock() to protect shared data structures from concurrent modifications. Signed-off-by: Jerome Forissier <[email protected]>
2025-04-23uthread: add cooperative multi-tasking interfaceJerome Forissier
Add a new internal API called uthread (Kconfig symbol: UTHREAD) which provides cooperative multi-tasking. The goal is to be able to improve the performance of some parts of U-Boot by overlapping lengthy operations, and also implement background jobs in the U-Boot shell. Each uthread has its own stack allocated on the heap. The default stack size is defined by the UTHREAD_STACK_SIZE symbol and is used when uthread_create() receives zero for the stack_sz argument. The implementation is based on context-switching via initjmp()/setjmp()/ longjmp() and is inspired from barebox threads [1]. A notion of thread group helps with dependencies, such as when a thread needs to block until a number of other threads have returned. The name "uthread" comes from "user-space threads" because the scheduling happens with no help from a higher privileged mode, contrary to more complex models where kernel threads are defined. But the 'u' may as well stand for 'U-Boot' since the bootloader may actually be running at any privilege level and the notion of user vs. kernel may not make much sense in this context. [1] https://github.com/barebox/barebox/blob/master/common/bthread.c Signed-off-by: Jerome Forissier <[email protected]> Reviewed-by: Ilias Apalodimas <[email protected]>
2025-04-23arch: introduce initjmp() and Kconfig symbol HAVE_INITJMPJerome Forissier
Add the HAVE_INIJMP symbol to be set by architectures that support initjmp(), a non-standard extension to setjmp()/longjmp() allowing to initialize a jump buffer with a function pointer and a stack pointer. This will be useful to later introduce threads. With this new function it becomes possible to longjmp() to a particular function pointer (rather than to a point previously reached during program execution as is the case with setjmp()), and with a custom stack. Both things are needed to spin off a new thread. Then the usual setjmp()/longjmp() pair is enough to save and restore a context, i.e., switch thread. Add the initjmp() prototype to <include/setjmp.h> since it is common to all architectures. Add an entry to the API documentation: doc/api/setjmp.rst. Signed-off-by: Jerome Forissier <[email protected]> Reviewed-by: Ilias Apalodimas <[email protected]>
2025-04-23Merge tag 'u-boot-rockchip-20250423' 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/25909 Please pull the updates for rockchip platform: - New SoC support: RK3528, RK3576 - New Board support: rk3528 Radxa E20C, rk3576 Firefly ROC-RK3576-PC; - Add generic board for rk3288 and rk3399; - rng driver binding update; - misc updates on board level or header files;
2025-04-23Merge tag 'mmc-2025-04-23' of ↵Tom Rini
https://source.denx.de/u-boot/custodians/u-boot-mmc - Introducing back send_init_stream for omap_hsmmc to perform the 74 clocks cycle sequence - Move scmi regulator subnode hack to scmi_regulator - Typo fix
2025-04-23rockchip: rk3576: Add support for ROC-RK3576-PC boardHeiko Stuebner
The ROC-RK3576-PC is a SBC made by Firefly, designed around the RK3576 SoC. This adds the needed board infrastructure and config for it. Signed-off-by: Heiko Stuebner <[email protected]> Reviewed-by: Jonas Karlman <[email protected]> Reviewed-by: Kever Yang <[email protected]>
2025-04-23arm: rockchip: Add RK3576 arch core supportXuhui Lin
The Rockchip RK3576 is a ARM-based SoC with quad-core Cortex-A72 and quad-core Cortex-A53 including 6TOPS NPU, Mali-G52 MC3, HDMI Out, DP, eDP, MIPI DSI, MIPI CSI2, LPDDR4/4X/5, eMMC5.1, SD3.0/MMC4.5, UFS, USB OTG 3.0, Type-C, USB 2.0, PCIe 2.1, SATA 3, Ethernet, SDIO3.0, I2C, UART, SPI, GPIO and PWM. Add arch core support for it. Signed-off-by: Xuhui Lin <[email protected]> [adapted for mainline u-boot] Signed-off-by: Heiko Stuebner <[email protected]> Reviewed-by: Jonas Karlman <[email protected]> Reviewed-by: Kever Yang <[email protected]>
2025-04-23arch: arm: rockchip: Add initial support for RK3528Jonas Karlman
Rockchip RK3528 is a ARM-based SoC with quad-core Cortex-A53. Add initial arch support for the RK3528 SoC. Signed-off-by: Jonas Karlman <[email protected]> Reviewed-by: Kever Yang <[email protected]>
2025-04-23rockchip: Use rk3588_common.h by default for RK3588 boardsJonas Karlman
Ensure rk3588_common.h can be used by boards directly by defining a blank ROCKCHIP_DEVICE_SETTINGS unless it already is defined. Add a default SYS_CONFIG_NAME to include rk3588_common.h unless a board target overrides it in its board Kconfig. Signed-off-by: Jonas Karlman <[email protected]> Reviewed-by: Kever Yang <[email protected]>
2025-04-23rockchip: Use rk3568_common.h by default for RK356x boardsJonas Karlman
Ensure rk3568_common.h can be used by boards directly by defining a blank ROCKCHIP_DEVICE_SETTINGS unless it already is defined. Add a default SYS_CONFIG_NAME to include rk3568_common.h unless a board target overrides it in its board Kconfig. Signed-off-by: Jonas Karlman <[email protected]> Reviewed-by: Kever Yang <[email protected]>
2025-04-23rockchip: Ensure device settings is defined before rk3588_common.hJonas Karlman
Ensure ROCKCHIP_DEVICE_SETTINGS is defined before including rk3588_common.h in board include/configs files. Signed-off-by: Jonas Karlman <[email protected]> Reviewed-by: Kever Yang <[email protected]>
2025-04-23rockchip: Ensure device settings is defined before rk3568_common.hJonas Karlman
Ensure ROCKCHIP_DEVICE_SETTINGS is defined before including rk3568_common.h in board include/configs files. Signed-off-by: Jonas Karlman <[email protected]> Reviewed-by: Kever Yang <[email protected]>
2025-04-23rockchip: Remove partitions env variable for RK3588Jonas Karlman
The partitions env variable is using an outdated partition layout that is typically expected to be used with older vendor miniloader blobs. Rockchip devices will run fine using any partition layout if the first 16 MiB of MMC storage is ignored/skipped. Remove the partitions env variable to stop encourage users a continued use of this outdated partition layout on RK3588 devices. Signed-off-by: Jonas Karlman <[email protected]> Reviewed-by: Kever Yang <[email protected]>
2025-04-23rockchip: Remove partitions env variable for RK356xJonas Karlman
The partitions env variable is using an outdated partition layout that is typically expected to be used with older vendor miniloader blobs. Rockchip devices will run fine using any partition layout if the first 16 MiB of MMC storage is ignored/skipped. Remove the partitions env variable to stop encourage users a continued use of this outdated partition layout on RK356x devices. Signed-off-by: Jonas Karlman <[email protected]> Reviewed-by: Kever Yang <[email protected]>
2025-04-23rockchip: px30: add fdtoverlay_addr_r default value to support FDTOQuentin Schulz
In order to be able to use Device Tree Overlays, the fdtoverlay_addr_r needs to be specified. Follow what's been done for other Rockchip SoCs and leave 1MiB for the base DTB before the address for the overlay. Signed-off-by: Quentin Schulz <[email protected]> Reviewed-by: Kever Yang <[email protected]>
2025-04-23net: ping: make do_ping() available via <net.h>Jerome Forissier
Make the do_ping() function in cmd/net.c a global one by getting rid of the static qualifier, and move the prototype declaration from net-lwip.h to net-common.h. This makes the function available to other parts of U-Boot when CONFIG_NET=y, as was already the case when CONFIG_NET_LWIP=y. This is a peparation step to make the sandbox tests use a common API between NET and NET_LWIP. Signed-off-by: Jerome Forissier <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2025-04-23net: lwip: provide net_start_again()Jerome Forissier
Implement net_start_again() when NET_LWIP=y in a very similar way to NET. This will be used in a future commit to determine if a failed ping needs to be tried again on a different interface. Signed-off-by: Jerome Forissier <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2025-04-23net: lwip: fix initialization sequence before a commandJerome Forissier
The things that are done prior to executing a network command with NET_LWIP are not consistent with what is done with NET. It impacts the selection of the current device, and more precisely if the active device is invalid NET would return an error while NET_LWIP would try to pick a new device. This incorrect behavior was detected thanks to the eth_rotate sandbox test (dm_test_eth_rotate()). Fix it by re-using a sequence similar to what NET has in net_loop(). This piece of code is inserted in a function called net_lwip_eth_start() renamed from net_lwip_eth_set_current(). Signed-off-by: Jerome Forissier <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2025-04-23net: dhcp6: Send DHCPv6 using multicast MACSean Edmond
In IPv6, the broadcast MAC address is not used. Instead, it should use the multicast address (see RFC RFC2464). Add IPV6_ALL_NODE_ETH_ADDR macro for clarity. Signed-off-by: Sean Edmond <[email protected]> Reviewed-by: Jerome Forissier <[email protected]>
2025-04-23usb: gadget: introduce 'enabled' flag in struct usb_epStephan Gerhold
f_acm calls usb_ep_disable(f_acm->ep_notify) unconditionally in acm_start_ctrl(), even if the USB endpoint was never enabled before. This causes crashes for some UDC drivers (e.g. ci_udc), because they dereference data structures that are assigned only after having called usb_ep_enable(). The f_acm driver in U-Boot is similar to the Linux driver, where this issue does not occur because usb_ep_disable() and usb_ep_enable() internally track the enabled state. In Linux this change was made in commit b0bac2581c19 ("usb: gadget: introduce 'enabled' flag in struct usb_ep") by Robert Baldyga. Fix the crashes for f_acm by making the same change in U-Boot. This makes the API less bug-prone and avoids introducing crashes when adapting new gadget drivers from Linux. Signed-off-by: Stephan Gerhold <[email protected]> Reviewed-by: Mattijs Korpershoek <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Mattijs Korpershoek <[email protected]>
2025-04-23mmc: Add a new callback function to perform the 74 clocks cycle sequenceJean-Jacques Hiblot
Add a new callback function *send_init_stream* which start a sequence of at least 74 clock cycles. The mmc core uses *mmc_send_init_stream* in order to invoke the callback function. This will be used during power cycle where the specification requires such a sequence after power up. Signed-off-by: Jean-Jacques Hiblot <[email protected]> Reviewed-by: Peng Fan <[email protected]> Signed-off-by: Peng Fan <[email protected]>
2025-04-22Merge patch series "MIPS: Boston: Various enhancements"Tom Rini
Jiaxun Yang <[email protected]> says: This is a huge series which promoted MIPS/Boston target into a usable state, with fixes to drivers and general framework issues I found in this process. I also converted the target to OF_UPSTREAM. This target is covered by QEMU, to test on QEMU: ``` make boston64r6el_defconfig make qemu-system-mips64el -M boston -cpu I6500 -bios ./u-boot.bin -nographic ``` Link: https://lore.kernel.org/r/[email protected]
2025-04-22ahci: DMA addressing fixesJiaxun Yang
Ensure that we are using correct physical/virtual address for DMA buffer write and hardware register settings. The convention is: in ahci_ioports all pointers are virtual, that will be converted to physical address when writing to hardware registers or into sg/cmd_tbl. Also fixed 64bit physical address support for dwc_ahsata, ensure higher bits are written into registers/sg properly. Use memalign for allocating aligned buffer in dwc_ahsata so we don't have to do our own alignment in driver. Signed-off-by: Jiaxun Yang <[email protected]>
2025-04-22Merge tag 'u-boot-socfpga-next-20250422' of ↵Tom Rini
https://source.denx.de/u-boot/custodians/u-boot-socfpga This pull request contains updates for the SoCFPGA platform, targeting the 2025.07 release cycle. Highlights include enhancements to Agilex5 support, improvements in DDR error handling, and bridge reset handling for SoC64 devices. Key updates: Agilex5 platform enhancements: * New MMU region mappings and memory layout updates using LMB_ARCH_MEM_MAP. * Fixes for bloblist configuration, kernel FIT image generation, and VAB flow enablement. * GPIO pin control added for SDIO selection. * Marvell PHY driver enabled in defconfig. Agilex5 / SoC64 DDR subsystem: * Added ECC debug improvements for IOSSM. * Introduced LPDDR inline ECC support. * Resolved size calculation overflow in memory driver. SoC64 improvements: * Enhanced mailbox communication with the SDM to reflect various boot stage transitions. * Implemented F2S bridge reset support and updated related reset manager registers. * Expanded SoC64 CPU info reporting. General maintenance: * Additional peripherals released from reset for Arria10. * Cleanup of legacy or incorrect Kconfig implications. This patch set has been tested on Agilex 5 devkit. Passing all pipeline tests at: https://source.denx.de/u-boot/custodians/u-boot-socfpga/-/pipelines/25867
2025-04-22arm: socfpga: soc64: Update reset manager registers for F2S bridgeAlif Zakuan Yuslaimi
Add reset manager registers in preparation for F2S bridge reset support as well as the mask support to enable/disable the bridges. Mask value: BIT0: soc2fpga BIT1: lwhps2fpga BIT2: fpga2soc These bridges are available only in Stratix10: BIT3: f2sdram0 BIT4: f2sdram1 BIT5: f2sdram2 Signed-off-by: Alif Zakuan Yuslaimi <[email protected]> Reviewed-by: Tien Fong Chee <[email protected]>
2025-04-21Merge patch series "fs: exfat: Flush node before put in read() callback"Tom Rini
This series from Marek Vasut <[email protected]> includes a number of fixes to the exFAT filesystem support that he recently added. Link: https://lore.kernel.org/r/[email protected]