summaryrefslogtreecommitdiff
path: root/include
AgeCommit message (Collapse)Author
2026-03-04Merge patch series "MAINTAINERS: Update ADI ADSP platform maintainers"Tom Rini
Philip Molloy <philip@philipmolloy.com> says: This series updates the maintainers for the ADI ADSP platform. It follows Greg's series adding support for ADI ADSP SoCs. Timesys spent years developing and maintaining Linux support for ADI ADSP SoCs. The maintenance contract has ended and ADI has brought that effort in-house. Additionally, Timesys was acquired by another company. Thanks to everyone at Timesys for all of their hard work over the years! Link: https://lore.kernel.org/r/20260226111136.354009-1-philip@philipmolloy.com
2026-03-04treewide: Remove Timesys from ADI ADSP maintenancePhilip Molloy
After years of developing the ADI ADSP platform, Timesys was purchased by another company and is no longer contracted to maintain the platform. Signed-off-by: Philip Molloy <philip.molloy@analog.com> Reviewed-by: Greg Malysa <malysagreg@gmail.com>
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 <jstephan@baylibre.com> Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org> Link: https://patch.msgid.link/20260203-cleanup-ufs-header-v1-1-4c10424485f0@baylibre.com Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
2026-02-24ARM: stm32mp: Add STM32MP21 supportPatrice Chotard
STM32MP21 application processors (STM32 MPUs) based on a single Arm Cortex®-A35 core running up to 1.5 GHz and Cortex®-M33 core running at 300 MHz. It is pin-compatible with the STM32MP2 series in the VFBGA361 10×10 mm package: the STM32MP21 uses a subset of the STM32MP23 pinout, which itself is a subset of the STM32MP25. More details available here : https://www.st.com/en/microcontrollers-microprocessors/stm32mp2-series.html Signed-off-by: Patrice Chotard <patrice.chotard@foss.st.com> Reviewed-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
2026-02-24clk: stm32mp21: Add clock driver supportPatrice Chotard
Add clock driver support for STM32MP21 SoCs. Signed-off-by: Nicolas Le Bayon <nicolas.le.bayon@st.com> Signed-off-by: Patrice Chotard <patrice.chotard@foss.st.com> Reviewed-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
2026-02-16board: ti: j721e,j7200: fix do_main_cpsw0_qsgmii_phyinitSiddharth Vadapalli
Since commit 27cc5951c862 ("include: env: ti: add default for do_main_cpsw0_qsgmii_phyinit"), the value of the environment variable do_main_cpsw0_qsgmii_phyinit happened to remain '0' and couldn't be changed without user intervention. This behavior is due to the following cyclic dependency: A) ti_common.env sets do_main_cpsw0_qsgmii_phyinit to '0' and its value can only be updated automatically by main_cpsw0_qsgmii_phyinit. B) main_cpsw0_qsgmii_phyinit is defined in j721e.env and it can run only if 'do_main_cpsw0_qsgmii_phyinit' is already '1' which isn't possible unless the user manually assigns the value. Fix the aforementioned cyclic dependency by using board_late_init() to detect the QSGMII Daughtercard and set do_main_cpsw0_qsgmii_phyinit. Additionally, to address the issue of do_main_cpsw0_qsgmii_phyinit being 'undefined' for other platforms, replace: if test ${do_main_cpsw0_qsgmii_phyinit} -eq 1; with: if env exists do_main_cpsw0_qsgmii_phyinit; in ti_common.env. Fixes: 27cc5951c862 ("include: env: ti: add default for do_main_cpsw0_qsgmii_phyinit") Signed-off-by: Siddharth Vadapalli <s-vadapalli@ti.com> Reviewed-by: Anshul Dalal <anshuld@ti.com>
2026-02-11arm64: versal2: fix GICD/GICR base addresses for Versal Gen 2Maheedhar Bollapalli
Versal2 was using wrong GIC base mappings, causing GICR_TYPER reads to not match EL1 MPIDR. This led U-Boot to walk beyond the per-CPU GICR frames, access out-of-range addresses, and hit a synchronous exception during early gic init percpu while booting up on alternate core i.e., non cpu0. Update Versal Gen 2 headers to the correct Versal Gen 2 bases. Signed-off-by: Maheedhar Bollapalli <maheedharsai.bollapalli@amd.com> Signed-off-by: Michal Simek <michal.simek@amd.com> Link: https://lore.kernel.org/r/d0bc3fe1af8409fcfe505e55fb7042a33b845a4e.1770721325.git.michal.simek@amd.com
2026-02-08Merge tag 'u-boot-at91-2026.04-a' of ↵Tom Rini
https://source.denx.de/u-boot/custodians/u-boot-at91 First set of u-boot-at91 features for the 2026.04 cycle: This small fixes set includes fixing 64 bit builds and some warnings for the at91 serial driver, and some cleanup on the nand driver.
2026-02-06gunzip: Fix len parameter in function signatureMarek Vasut
The only call site of gzwrite() is cmd/unzip.c do_gzwrite(), where the 'len' parameter passed to gzwrite(..., len, ...) function is of type unsigned long. This usage is correct, the 'len' parameter is an unsigned integer, and the gzwrite() function currently supports input data 'len' of up to 4 GiB - 1 . The function signature of gzwrite() function in both include/gzip.h and lib/gunzip.c does however list 'len' as signed integer, which is not correct, and ultimatelly limits the implementation to only 2 GiB input data 'len' . Fix this, update gzwrite() function parameter 'len' data type to size_t consistently in include/gzip.h and lib/gunzip.c . Furthermore, update gzwrite() function 'szwritebuf' parameter in lib/gunzip.c from 'unsigned long' to 'size_t' to be synchronized with include/gzip.h . Rewrite the other parameters to size_t and off_t and propagate the change too. Since the gzwrite() function currently surely only supports input data size of 4 GiB - 1, add input data size check. The limitation comes from the current use of zlib z_stream .avail_in parameter, to which the gzwrite() function sets the entire input data size, and which is of unsigned int type, which cannot accept any number beyond 4 GiB - 1. This limitation will be removed in future commit. Reported-by: Yuya Hamamachi <yuya.hamamachi.sx@renesas.com> Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
2026-02-04dm: platform_data: atmel_serial: fix build warning on 64-bit platformsRobert Marko
Pointer size cannot be assumed to be 32-bit, so use uintptr_t instead of uint32_t. Fixes the below build warning on 64-bit builds: drivers/serial/atmel_usart.c: In function ‘atmel_serial_probe’: drivers/serial/atmel_usart.c:275:23: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] 275 | priv->usart = (atmel_usart3_t *)plat->base_addr; Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2026-02-04arm: at91: move atmel_serial.h to include/dm/platform_dataRobert Marko
Move the arch specific atmel_serial.h header from AT91 to the generic include/dm/platform_data. This will be used for support on Microchip LAN969x. Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2026-02-04net: lwip: add TFTPSERVERIP Kconfig optionJonas Karlman
With the legacy networking stack, it is possible to use USE_SERVERIP, SERVERIP and BOOTP_PREFER_SERVERIP Kconfg options to force use of a specific TFTP server ip. Using the lwIP networking stack use of the 'tftpserverip' environment variable provide the closest equivalent functionality. Add USE_TFTPSERVERIP and TFTPSERVERIP Kconfig options that can be used to add the 'tftpserverip' environment variable to force use of a specific TFTP server ip. Signed-off-by: Jonas Karlman <jonas@kwiboo.se> Acked-by: Jerome Forissier <jerome.forissier@arm.com>
2026-02-04drivers: phy: fix code documentation typo udevice_opsE Shattow
Amend code documentation referring to udevice_ops for struct phy_ops Fixes: 72e5016f878d ("drivers: phy: add generic PHY framework") Signed-off-by: E Shattow <e@freeshell.de> Reviewed-by: Quentin Schulz <quentin.schulz@cherry.de>
2026-02-02Merge patch series "m68k: Add support for QEMU virt machine"Tom Rini
Kuan-Wei Chiu <visitorckw@gmail.com> says: Add support for the QEMU 'virt' machine on the m68k architecture. The QEMU virt machine models a generic system utilizing Goldfish virtual peripherals and is capable of emulating various classic 68k CPUs. Currently, U-Boot's m68k architecture support focuses on ColdFire variants. This series expands support to include the classic M680x0 architecture, implementing the necessary exception vectors, startup code, and a bootinfo parser compatible with the QEMU interface. Drivers for Goldfish peripherals (TTY, Timer, RTC) and the QEMU Virtual System Controller (sysreset) are also added to enable serial console, timekeeping, and system reset functionality. The implementation has been verified on QEMU targeting the M68040 CPU, confirming successful hardware initialization and boot to the U-Boot command shell. Additionally, the CI configuration was verified locally using gitlab-ci-local "qemu_m68k_virt test.py", resulting in PASS qemu_m68k_virt test.py. Link: https://lore.kernel.org/r/20260107201838.3448806-1-visitorckw@gmail.com [trini: Re-sort MAINTAINERS entries] Signed-off-by: Tom Rini <trini@konsulko.com>
2026-02-02board: Add QEMU m68k virt board supportKuan-Wei Chiu
Add support for the QEMU 'virt' machine on the m68k architecture. This board emulates a generic machine based on the Motorola 68040 CPU equipped with Goldfish virtual peripherals. Introduce the necessary board configuration and initialization infrastructure. The implementation includes logic to parse the QEMU bootinfo interface, enabling dynamic detection of system RAM size to adapt to the virtual machine's configuration. Enable the Goldfish TTY driver for serial console output. Additionally, enable Goldfish RTC and timer drivers to support real-time clock functionality and nanosecond-resolution delays. Include comprehensive documentation covering build instructions and usage examples. Signed-off-by: Kuan-Wei Chiu <visitorckw@gmail.com> Tested-by: Daniel Palmer <daniel@0x0f.com> Reviewed-by: Simon Glass <simon.glass@canonical.com>
2026-02-02sysreset: Add QEMU virtual system controller driverKuan-Wei Chiu
Introduce a new sysreset driver for the QEMU Virtual System Controller. This device is found on QEMU "virt" machines (such as the m68k virt target) and provides a mechanism to trigger system reset and power-off events. The driver maps U-Boot sysreset types to the corresponding controller commands: - SYSRESET_WARM / SYSRESET_COLD -> VIRT_CTRL_CMD_RESET - SYSRESET_POWER_OFF -> VIRT_CTRL_CMD_HALT Signed-off-by: Kuan-Wei Chiu <visitorckw@gmail.com> Reviewed-by: Simon Glass <simon.glass@canonical.com>
2026-02-02rtc: goldfish: Support platform data for non-DT probingKuan-Wei Chiu
Currently, the Goldfish RTC driver exclusively relies on device tree to retrieve the base address, failing immediately if dev_read_addr() returns FDT_ADDR_T_NONE. This restriction prevents the driver from being used on platforms that instantiate devices via U_BOOT_DRVINFO() instead of device tree, such as the QEMU m68k virt machine. Add support for platform data to address this limitation. Introduce a new .of_to_plat hook to handle device tree parsing and populate the platform data. Update the probe function to rely exclusively on this platform data, enabling support for both Device Tree and manual instantiation. Introduce a new header file include/goldfish_rtc.h to define the platform data structure. Signed-off-by: Kuan-Wei Chiu <visitorckw@gmail.com> Reviewed-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2026-02-02timer: Add Goldfish timer driverKuan-Wei Chiu
Add support for the Goldfish timer driver. This driver utilizes the Goldfish RTC hardware to provide a nanosecond-resolution timer. This virtual device is commonly found in QEMU virtual machines (such as the m68k virt machine) and Android emulators. The driver implements the standard U-Boot timer UCLASS interface, exposing a 64-bit monotonically increasing counter with a 1GHz clock rate derived from the RTC registers. Signed-off-by: Kuan-Wei Chiu <visitorckw@gmail.com> Tested-by: Daniel Palmer <daniel@0x0f.com> Reviewed-by: Yao Zi <me@ziyao.cc> Reviewed-by: Simon Glass <simon.glass@canonical.com> Reviewed-by: Angelo Dureghello <angelo@kernel-space.org>
2026-02-02serial: Add Goldfish TTY driverKuan-Wei Chiu
Add support for the Google Goldfish TTY serial device. This virtual device is commonly used in QEMU virtual machines (such as the m68k virt machine) and Android emulators. The driver implements basic console output and input polling using the Goldfish MMIO interface. Signed-off-by: Kuan-Wei Chiu <visitorckw@gmail.com> Reviewed-by: Yao Zi <me@ziyao.cc> Tested-by: Daniel Palmer <daniel@0x0f.com> Acked-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com> Reviewed-by: Simon Glass <simon.glass@canonical.com> Acked-by: Angelo Dureghello <angelo@kernel-space.org>
2026-02-02Merge patch series "arm: mach-k3: j721s2: Provide a way to obtain boot ↵Tom Rini
device for non SPLs" This series from Dominik Haller <d.haller@phytec.de> provides a way for TI K3 platforms to determine their boot device outside of SPL and then adds support for the PHYTEC phyCORE-AM68x/TDA4x SoM. Link: https://lore.kernel.org/r/20260116014116.767555-1-d.haller@phytec.de
2026-02-02board: phytec: Add PHYTEC phyCORE-AM68x/TDA4x SoMDominik Haller
Add support for the PHYTEC phyCORE-AM68x/TDA4x (J721S2 family) SoM. Supported features: - 4GB LPDDR4 RAM - eMMC - SD-Card - Ethernet - OSPI - AVS - debug UART Signed-off-by: Dominik Haller <d.haller@phytec.de> Reviewed-by: Wadim Egorov <w.egorov@phytec.de>
2026-01-28armv7: Add CPLD support via IFC to the ls1021a-iot board.Mateus Lima Alves
This patch adds CPLD support via IFC to the ls1021a-iot board. Signed-off-by: Mateus Lima Alves <mateuslima.ti@gmail.com>
2026-01-25power: regulator: add AXP318W supportYixun Lan
The PMIC is also known as AXP819 in vendor pmu code For DCDC6, 8, 9, the underlying hardware support more than two levels voltage step tuning, but for now only first two levels are implemented in this driver, hence highest voltage will be limited at seccond level. It actual meets board requirement in current design, and we've verified it in Radxa Cubie A7A board. Following are detail explanation of voltage tuning stpes for those DCDCs: DCDC | voltage range | units | steps | implemented 6 | 0.5 - 1.2 | 10 mV | 71 | Y . | 1.22 - 1.54 | 20 mV | 17 | Y . | 1.8 - 2.4 | 20 mV | 31 | N . | 2.44 - 2.76 | 40 mV | 9 | N -------------------------------------------------- 8/9 | 0.5 - 1.2 | 10 mV | 71 | Y . | 1.22 - 1.84 | 20 mV | 32 | Y . | 1.9 - 3.4 | 100mV | 16 | N Signed-off-by: Yixun Lan <dlan@gentoo.org> Reviewed-by: Andre Przywara <andre.przywara@arm.com>
2026-01-21arm: Remove remainder of ARCH_ORION5XTom Rini
With commit 5663b137e682 ("arm: Remove edminiv2 board") the last ARCH_ORION5X platform was removed. Remove the rest of the architecture code which is now unused. Reviewed-by: Tony Dinh <mibodhi@gmail.com> Signed-off-by: Tom Rini <trini@konsulko.com>
2026-01-19Merge tag 'xilinx-for-v2026.04-rc1-v2' of ↵Tom Rini
https://source.denx.de/u-boot/custodians/u-boot-microblaze AMD/Xilinx/FPGA changes for v2026.04-rc1 v2 microblaze: - Fix spl_boot_list order versal2: - Fix EMMC distro boot setup - Align distro boot variables with memory layout zynqmp-phy: - Sync with Linux kernel driver zynqmp: - Add verify_auth command - DT sync - Add placing variables to FAT/EXT4 - Enable PCIe driver by default pcie - xilinx-nwl: - Fix Link down crash ufs: - Align clock/reset with DT binding # -----BEGIN PGP SIGNATURE----- # # iHUEABYIAB0WIQSXAixArPbWpRanWW+rB/7wTvUR9QUCaW3p3wAKCRCrB/7wTvUR # 9VkwAP4jPRALpM34VpTimNe/iwigIx8hAHxbvkUU0oJ/DW6W8AEAhCSL+ydgreuv # kKCyNiOF1sm8IrOh4TdtMIFn37d4Dwg= # =AkKK # -----END PGP SIGNATURE----- # gpg: Signature made Mon 19 Jan 2026 02:22:55 AM CST # gpg: using EDDSA key 97022C40ACF6D6A516A7596FAB07FEF04EF511F5 # gpg: Can't check signature: No public key
2026-01-17ARM: imx: Enable boot from both USB controllers on all i.MX6 DHSOMMarek Vasut
Enable boot from both USB controller 0 and 1 on all i.MX6 DHSOM. Signed-off-by: Marek Vasut <marex@nabladev.com>
2026-01-16Merge branch 'qcom-main' of ↵Tom Rini
https://source.denx.de/u-boot/custodians/u-boot-snapdragon We have been getting a lot more patches from Qualcomm engineers, largely focusing on IoT, router, and automotive platforms (those with QCS, IPQ, and SA prefixes specifically). Quite a variety of changes here: - Watchdog overflow fix - Hardcoded fastboot buffer addresses for a few board (hoppefully temporary until fastboot is updated to read $fastboot_addr_r) - Enable memory protection (MMU_MGPROT) for ARCH_SNAPDRAGON - pinctrl support for the QCS615 soc - various USB/phy fixes including phy config for msm8996/qcs615 - mmc and i2c clock configuration fixes - significant fixes for rpmh and regulator drivers - added config fragment for pixel devices - sa8775p clock fixes - support for "flattened" dwc3 DT that recently landed upstream for sc7280 (qcs6490) and a few other platforms
2026-01-16configs: mt8365: remove empty header fileDavid Lechner
Remove the empty include/configs/mt8365.h header file as it is not needed. The Kconfig entry that referenced it is also removed. Signed-off-by: David Lechner <dlechner@baylibre.com>
2026-01-16Merge patch series "video: simple_panel support for am335x evm panel"Tom Rini
Markus Schneider-Pargmann (TI.com) <msp@baylibre.com> says: This series adds the capability to define hardcoded panel settings to the simple_panel driver similar to the Linux Kernel and adds the panel used on am335x evm. panel-uclass.c is extended to support get_modes() for panels and drm_display_mode conversion. In a second step the tilcdc is extended to support OF graph to be able to connect to the simple panel devicetree node. Link: https://lore.kernel.org/r/20260105-topic-am33-evm-lcd-v2026-01-v4-0-7617591b8159@baylibre.com
2026-01-16panel: Lightweight support of get_modes()Markus Schneider-Pargmann (TI.com)
Linux uses get_modes() to fetch all available panel modes from the driver. This is also used to fetch the modes from Linux's simple panel implementation where a list of drm_display_mode structs is used to define the different possible panels. To make our work easier, create a compatible way of fetching and defining these modes in u-boot. get_modes() fetches the available modes from the panel driver. The get_display_timing() call maps the drm_display_mode properties to the display_timing struct. This call now uses whatever panel operation is available, get_display_timing() or get_modes(). Reviewed-by: Fabio Estevam <festevam@gmail.com> Signed-off-by: Markus Schneider-Pargmann (TI.com) <msp@baylibre.com>
2026-01-16panel: Add missing comment for the timing argumentMarkus Schneider-Pargmann (TI.com)
For completeness add it. Signed-off-by: Markus Schneider-Pargmann (TI.com) <msp@baylibre.com>
2026-01-15net: lwip: nfs: Port the NFS code to work with lwIPAndrew Goodbody
After the preparatory patches moved most of the NFS code into common files we now add the code to enable NFS support with lwIP. Signed-off-by: Andrew Goodbody <andrew.goodbody@linaro.org> Acked-by: Jerome Forissier <jerome.forissier@linaro.org>
2026-01-15net: Move some variables to net-common filesAndrew Goodbody
Make some variables available to be used by either the legacy network code or lwIP by moving them into the net-common files. This also allowed removing a small number of duplicated variables from the lwIP code. Signed-off-by: Andrew Goodbody <andrew.goodbody@linaro.org> Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org>
2026-01-15net: move net_state to net-commonAndrew Goodbody
Move the net_state variable into common code so that it can be used by either the legacy network code or lwIP. This is needed for porting across the NFS support code for use with lwIP. Signed-off-by: Andrew Goodbody <andrew.goodbody@linaro.org> Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org>
2026-01-14soc/qcom: rpmh: add RPMh readCasey Connolly
Implement support for RPMh reads, these allow reading out the current votes for RPMh controlled resources such as regulators and interconnects. Link: https://patch.msgid.link/20260108-rpmh-regulator-fixes-v1-4-d1b5b300b665@linaro.org Signed-off-by: Casey Connolly <casey.connolly@linaro.org>
2026-01-14dragonboard820c: Stop disabling device tree relocationTom Rini
Remove setting of fdt_high to ~0, which disables device tree relocation, from the default environment. Doing so prevents U-Boot from correcting problems such as having an unaligned device tree and leads to various failure modes in the OS. Signed-off-by: Tom Rini <trini@konsulko.com> Link: https://patch.msgid.link/20251119145523.843230-1-trini@konsulko.com Signed-off-by: Casey Connolly <casey.connolly@linaro.org>
2026-01-12amd: versal2: Align distro boot variables with default memory mapMichal Simek
By default Versal Gen 2 is using memory map where TF-A is placed to DDR and there is also some space allocated for OP-TEE that's why move default variable setting out of this location to avoid using it when distro boot is used for booting. Signed-off-by: Michal Simek <michal.simek@amd.com> Link: https://lore.kernel.org/r/988a6f38ed9cfbb9757b76a16cb9cfec4601de85.1767685538.git.michal.simek@amd.com
2026-01-09Merge patch series "Enable / require DEVRES for devm_.alloc usage outside xPL"Tom Rini
Tom Rini <trini@konsulko.com> says: As seen by a number of patches fixing memory leaks, U-Boot has a problem with developer expectations around devm_kmalloc and friends. Namely, whereas in Linux these memory allocations will be freed automatically in most cases, in U-Boot this is only true if DEVRES is enabled. Now, intentionally, in xPL phases, we do not (and do not offer as an option) enabling DEVRES. However in full U-Boot this is left either to the user, or some drivers have select'd DEVRES on their own. This inconsistency is a problem. This series goes and deals with two small issues that were shown by having all drivers that use devm_.alloc to allocate memory also select DEVRES and then we make DEVRES no longer be a prompted option and instead select'd as needed. We do not make this unconditional as it would result in growing the resulting binary on the many platforms which have no users of the devm_.alloc family of functions. Link: https://lore.kernel.org/r/20251227223833.3019311-1-trini@konsulko.com
2026-01-09dm: core: Default to using DEVRES outside of xPLTom Rini
The devm alloc functions that we have may follow the Linux kernel model where allocations are (almost always) automatically free()'d. However, quite often we don't enable, in full U-Boot, the tracking and free()'ing functionality. This in turn leads to memory leaks because the driver author expects that since the functions have the same name as in the Linux Kernel they have the same behavior. In turn we then get functionally correct commits such as commit 00e1fed93c8c ("firmware: ti_sci: Fix memory leaks in devm_ti_sci_get_of_resource") that manually add these calls. Rather than manually tracking allocations and implementing free()s, rework things so that we follow expectations by enabling the DEVRES functionality (outside of xPL phases). This turns DEVRES from a prompted symbol to a symbol that must be select'd, and we now remove our non-managed alloc/free functions from outside of xPL builds. Reviewed-by: Michael Trimarchi <michael@amarulasolutions.com> Signed-off-by: Tom Rini <trini@konsulko.com>
2026-01-06Merge patch series "lzma: Add Kconfig options to optimize for size"Tom Rini
Tom Rini <trini@konsulko.com> says: A long while ago, Darek reported that our copy of the LZMA SDK library is quite old and so vulnerable to at least one possible security issue he found that was fixed upstream. This does a few things. First, we introduce a Kconfig option to enable LZMA's size reduction option, and enable it on gardena-smart-gateway-mt7688. This is not critical at the start, but is as we move forward. Next, we move all the way from version 9.20 of the LZMA SDK to version 25.01. The few deviations from upstream are the changes we've already made to the files and are documented in our history. Finally, we add SPDX tags to the code we've imported from the LZMA SDK (and upstream has been asked if they're interested in this). Link: https://lore.kernel.org/u-boot/CAC7rXdTb5u5pzP-mr_+pddCxzfcO8Vm_t-=_+5wxRitMjy6-JA@mail.gmail.com/ Link: https://lore.kernel.org/r/20251218233654.3938385-2-trini@konsulko.com
2026-01-06lzma: Update LZMA SDK code from 9.20 to 25.01Tom Rini
Currently, we have a copy of the LZMA SDK code, version 9.20, with small updates. The original import of the LZMA SDK included a script to update the library. This is no longer possible, due to important local changes, so remove it. We also remove a number of extra text files that should be unchanged from upstream, but provide no direct value to the project. Instead, have the help text for LZMA note that this comes from the LZMA SDK. Next, we move our code up to the current release, 25.01. There are a number of new header files, and some performance improvements made to the code, at the cost of between 2 to 3 kilobytes in binary size. As there is now a Kconfig option to disable this and retain similar speed to what we have currently, the default option is to make this trade-off. Our changes to the code around calling schedule() to avoid the watchdog being triggered are kept. We add __UBOOT__ guards in two places to prevent conflict with our own usage of these words on MIPS. Signed-off-by: Tom Rini <trini@konsulko.com>
2026-01-02lib/bcd: optimize _bin2bcd() for improved performanceKuan-Wei Chiu
[ Upstream commit cbf164cd44e06c78938b4a4a4479d3541779c319 ] The original _bin2bcd() function used / 10 and % 10 operations for conversion. Although GCC optimizes these operations and does not generate division or modulus instructions, the new implementation reduces the number of mov instructions in the generated code for both x86-64 and ARM architectures. This optimization calculates the tens digit using (val * 103) >> 10, which is accurate for values of 'val' in the range [0, 178]. Given that the valid input range is [0, 99], this method ensures correctness while simplifying the generated code. Link: https://lkml.kernel.org/r/20240812170229.229380-1-visitorckw@gmail.com Signed-off-by: Kuan-Wei Chiu <visitorckw@gmail.com> Cc: Ching-Chun Huang (Jim) <jserv@ccns.ncku.edu.tw> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> [visitorckw@gmail.com: Adapt to bin2bcd() in include/bcd.h] Signed-off-by: Kuan-Wei Chiu <visitorckw@gmail.com>
2025-12-31arm: dts: mediatek: switch mt8365 to OF_UPSTREAMDavid Lechner
Change mt8365_evk_defconfig to use CONFIG_OF_UPSTREAM=y and delete the U-Boot copy of the devicetree source files for mt8365. The upstream devicetree is identical to the U-Boot one being removed (other than having more nodes for devices not used by U-Boot and upstream fixed a compatible string in &scpsys, also not affecting U-Boot). There was one minor glitch with upstream missing a few topckgen macro definitions, so those are added to the clock driver directly as a workaround. Reviewed-by: Macpaul Lin <macpaul.lin@mediatek.com> Signed-off-by: David Lechner <dlechner@baylibre.com>
2025-12-30Merge patch series "video: display: refactor display_read_timing to avoid ↵Tom Rini
code duplication" Julien Stephan <jstephan@baylibre.com> says: Commit 2dcf143398ad ("dm: video: Repurpose the 'displayport' uclass to 'display'") left the display_read_edid() function unused by mistake. This series addresses that oversight and introduces a new useful cmd. Patch 1: - Refactors display_read_timing() to use the existing display_read_edid() function, eliminating redundant code. - Marks display_read_edid() as static since it is not used outside of the file. Patch 2: - Adds a new read_edid command, which can be very useful for debugging or developing new display drivers. - As this command uses display_read_edid(), the function is made non-static again. Link: https://lore.kernel.org/r/20250630-read_edid_cleanup-v1-0-ec7d425472c7@baylibre.com
2025-12-30cmd: add new command to read edidJulien Stephan
Add a new command to read EDID info from connected display. When applicable EDID can also be retrieved by commands such as: i2c dev x i2c edid 0x50 but the new read_edid function relies on the implementation of the read_edid callback from DISPLAY driver. Signed-off-by: Julien Stephan <jstephan@baylibre.com>
2025-12-29Merge tag 'u-boot-imx-next-20251229' 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/28866 - Swicth imx8ulp-evk to standard boot and OF_UPSTREAM. - Cleanup of the IPUv3 video driver. - Add support for the NXP FRDM-IMX91 board. - Make flash.bin target available on i.MX9. - Fix mxsfb pixel clock polarity.
2025-12-29video: imx: ipuv3: refactor to use dm-managed stateBrian Ruley
Get rid of most globals that are spread around between TU's and place them in their own structs managed by dm. Device state is now owned by each driver instance. This design mirrors the Linux IPUv3 driver architecture. This work is done in preparation to migrate the driver to the clock framework. While not the primary intent, this change also enables multiple IPU instances to exist contemporarily. Signed-off-by: Brian Ruley <brian.ruley@gehealthcare.com>
2025-12-29imx: Support i.MX91 11x11 FRDM boardJoseph Guo
Add i.MX91 11x11 FRDM Board support. - Four ddr scripts included w/o inline ecc feature. Support both 1gb and 2gb DDR - SDHC/EQOS/I2C/UART supported - PCA9451 supported, default nominal drive mode - Documentation added. Signed-off-by: Joseph Guo <qijian.guo@nxp.com>
2025-12-29imx8ulp_evk: Move environment variables to .env fileAlice Guo
Add board-specific environment variables to imx8ulp_evk.env for better maintainability. Define bsp_bootcmd in the environment to resolve the runtime error: "bsp_bootcmd" not defined. Signed-off-by: Alice Guo <alice.guo@nxp.com>
2025-12-29imx8ulp_evk: Convert to standard bootAlice Guo
Replace CONFIG_DISTRO_DEFAULTS with CONFIG_BOOTSTD_FULL to enable the standard boot framework and use standard boot on i.MX8ULP. Update CONFIG_BOOTCOMMAND to run bootflow scan before falling back to board-specific bootcmd, and remove legacy distro boot environment from imx8ulp_evk.h since bootstd now handles boot targets. Signed-off-by: Alice Guo <alice.guo@nxp.com>