summaryrefslogtreecommitdiff
path: root/include
AgeCommit message (Collapse)Author
2026-03-10Merge tag 'u-boot-rockchip-20260309' of ↵Tom Rini
https://source.denx.de/u-boot/custodians/u-boot-rockchip into next CI: https://source.denx.de/u-boot/custodians/u-boot-rockchip/-/pipelines/29452 - New SoC support: RK3506, RK3582; - New Board support: RK3528 FriendlyElec NanoPi Zero2; - Other fixes
2026-03-10arch: arm: rockchip: Add initial support for RK3506Jonas Karlman
Rockchip RK3506 is a ARM-based SoC with tri-core Cortex-A7. Add initial arch support for the RK3506 SoC. Signed-off-by: Jonas Karlman <[email protected]> Acked-by: Mattijs Korpershoek <[email protected]> # drivers/usb/gadget Reviewed-by: Kever Yang <[email protected]>
2026-03-09Merge tag 'v2026.04-rc4' into nextTom Rini
Prepare v2026.04-rc4
2026-03-04Merge patch series "MAINTAINERS: Update ADI ADSP platform maintainers"Tom Rini
Philip Molloy <[email protected]> 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/[email protected]
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 <[email protected]> Reviewed-by: Greg Malysa <[email protected]>
2026-03-03usb: gadget: Mark udc_disconnect as staticTom Rini
With the last external callers of udc_disconnect long removed, mark this function as static now and remove it from headers. Signed-off-by: Tom Rini <[email protected]> Reviewed-by: Mattijs Korpershoek <[email protected]> Link: https://patch.msgid.link/[email protected] Signed-off-by: Mattijs Korpershoek <[email protected]>
2026-03-02drivers: ufs: remove unused ufs_post_bind() declarationJulien Stephan
Commit 067c1b033282 ("ufs: Call ufs_scsi_bind() from uclass .post_bind") inlined ufs_scsi_bind() into ufs_post_bind() as trivial device_bind_driver() call. ufs_scsi_bind() is no longer referenced anywhere in the codebase, so drop its declaration from include/ufs.h. Drivers used to include <ufs.h> to include prototype of ufs_scsi_bind() function, so we can now safely remove such includes. Fixes: 067c1b033282 ("ufs: Call ufs_scsi_bind() from uclass .post_bind") Signed-off-by: Julien Stephan <[email protected]> Reviewed-by: Neil Armstrong <[email protected]> Link: https://patch.msgid.link/[email protected] Signed-off-by: Neil Armstrong <[email protected]>
2026-02-28siemens: capricorn: protect environmentAdrian Freihofer
With ENV_WRITEABLE_LIST only specific environment variables lisetd in CFG_ENV_FLAGS_LIST_STATIC are read from the u-boot environment storage. All other environment variables are set to default values and are not written back to the storage. The u-boot environment usually stays for the lifetime of the product. There is no A/B copy mechanism as for the firmware itself. That means that incompatible changes to environment variables in future u-boot versions may lead to serious issues if the old environment is used with a new u-boot version or vice versa. Having this protection in place ensures that only a limited set of environment variables are persisted across u-boot versions. All the macros not listed in CFG_ENV_FLAGS_LIST_STATIC are now part of the u-boot binary which is redundant and immutable. This guarantees that the u-boot version and the default values of these environment variables are always in sync and cannot be changed at runtime. ustate and rastate are not relevant for u-boot itself. ustate is used by swupdate which persists the transaction state in the environment. rastate is a similar variable used by another user space application. Signed-off-by: Adrian Freihofer <[email protected]> Signed-off-by: Heiko Schocher <[email protected]> Reviewed-by: Peng Fan <[email protected]> Signed-off-by: Adrian Freihofer <[email protected]> Signed-off-by: Heiko Schocher <[email protected]> Reviewed-by: Peng Fan <[email protected]>
2026-02-28imx: scu_api: implement sc_misc_get_boot_typeHeiko Schocher
add function sc_misc_get_boot_type() which returns the boot type. Signed-off-by: Heiko Schocher <[email protected]> Signed-off-by: Walter Schweizer <[email protected]> Reviewed-by: Peng Fan <[email protected]>
2026-02-25power: regulator: mt6359: add driver for MT6359PBo-Chen Chen
Add a new regulator driver for MT6359P and similar PMIC chips. The MT6359P is a eco version for MT6359 regulator. For the MT8391 platform, we use the MT6359P (MT6365) as the main PMIC. The MT6359 and MT6359P have different register maps. Therefore, on the MT8391 platform, we only provide support for the MT6359P. If support for the MT6359 PMIC it can be added later. Signed-off-by: Bo-Chen Chen <[email protected]> Signed-off-by: David Lechner <[email protected]> Signed-off-by: Peng Fan <[email protected]>
2026-02-25power: regulator: add MediaTek MT6357 driverJulien Masson
Add a driver for the power regulators of the MediaTek MT6357 PMIC chip. Signed-off-by: Julien Masson <[email protected]> Co-developed-by: Macpaul Lin <[email protected]> Signed-off-by: Macpaul Lin <[email protected]> Signed-off-by: David Lechner <[email protected]> Signed-off-by: Peng Fan <[email protected]>
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 <[email protected]> Reviewed-by: Patrick Delaunay <[email protected]>
2026-02-24clk: stm32mp21: Add clock driver supportPatrice Chotard
Add clock driver support for STM32MP21 SoCs. Signed-off-by: Nicolas Le Bayon <[email protected]> Signed-off-by: Patrice Chotard <[email protected]> Reviewed-by: Patrick Delaunay <[email protected]>
2026-02-23Merge tag 'v2026.04-rc3' into nextTom Rini
Prepare v2026.04-rc3
2026-02-18Merge patch series "bootcount: Small clean-up and fix, and dm_i2c ↵Tom Rini
single-word support" Niko Mauno <[email protected]> says: In this series, we first introduce a clean-up where we switch to use predefined bit masks instead of hard-coded values for count and magic halves in the single-word (32-bit) boot count scheme. Then we fix a case of missing boot count value masking in single-word scenario in bootcount.c, which allowed clobbering of the magic half when storing the value. With this change the clobbering preventing behavior becomes consistent with existing single word bootcount storing implementations in bootcount_at91.c and bootcount_davinci.c. Finally, we enable the DM I2C bootcount driver to work also in single word (4 byte) mode, in addition to the pre-existing half-word (2 byte) mode. By default the driver still operates in half word mode as so far, but can now be used alternatively in single word mode by adding 'size = <0x4>;' in the associated device tree node. Link: https://lore.kernel.org/r/[email protected]
2026-02-18bootcount: Use predefined count/magic bit masksNiko Mauno
Use predefined bit masks in operations where only the magic half or only the count half of the 32-bit value are processed. Signed-off-by: Niko Mauno <[email protected]> Reviewed-by: Tom Rini <[email protected]>
2026-02-18Merge patch series "Implement all missing SMBIOS types required by distro ↵Tom Rini
tooling" Raymond Mao <[email protected]> says: From: Raymond Mao <[email protected]> This series finish the last missing puzzle of required SMBIOS types by: 1) Fixing duplicated handles when multiple instances exist in one type; 2) Implementing the rest of required types 9/16/17/19; 3) Adding version control when printing properties for all types. Type 9/16/17/19 are generally DT-based, the idea is to write these tables using a hybrid approach: Explicit DT definitions under existing '/smbios/smbios' take precedence, with fallback to scan and interpret values from the entire DT. Moreover, all below APIs: smbios_get_val_si() smbios_get_u64_si() smbios_add_prop_si() are on top of sysinfo, thus allow vendors to get values from other subsystems by implementing their own sysinfo driver if needed. Link: https://lore.kernel.org/r/[email protected]
2026-02-18smbios: print the properties only when they exist in a specified version of specRaymond Mao
By checking the payload length, we can know the version of the spec and skip the ones which are not expected to exist. Signed-off-by: Raymond Mao <[email protected]> Tested-by: Ilias Apalodimas <[email protected]>
2026-02-18smbios: add support for dynamic generation of Type 19 tableRaymond Mao
This commit implements SMBIOS Type 19 (Memory Array Mapped Address) generation with a hybrid approach supporting both: 1. Explicit definition via Device Tree 'smbios' node: Child node under '/smbios/smbios/memory-array-mapped-address' will be used to populate as individual Type 19 structure directly. - Properties follow SMBIOS field names with lowercase letters and hyphen-separated words (e.g., 'starting-address', 'ending-address', 'partition-width', etc.). - This method supports precise platform-defined overrides and system descriptions. 2. Fallback to automatic DT-based discovery: If child node under '/smbios/smbios/memory-array-mapped-address' does not exist, the implementation will: - Scan all top-level 'memory@' nodes to populate Type 19 structure with inferred size and location data. - Scan nodes named or marked as 'memory-controller' and parse associated 'dimm@' subnodes (if present) to extract DIMM sizes and map them accordingly. This dual-mode support enables flexible firmware SMBIOS reporting while aligning with spec-compliant naming and runtime-detected memory topology. Type 19 support is under GENERATE_SMBIOS_TABLE_VERBOSE to avoid increasing rom size for those platforms which only require basic SMBIOS support. Signed-off-by: Raymond Mao <[email protected]> Tested-by: Ilias Apalodimas <[email protected]>
2026-02-18smbios: add support for dynamic generation of Type 17 tableRaymond Mao
This commit implements SMBIOS Type 17 (Memory Device) generation with a hybrid approach supporting both: 1. Explicit definition via Device Tree 'smbios' node: Child node under '/smbios/smbios/memory-device' will be used to populate as individual Type 17 structure directly. - Properties follow SMBIOS field names with lowercase letters and hyphen-separated words (e.g., 'physical-memory-array-handle', ' memory-error-information-handle', 'configured-memory-speed', etc.). - This method supports precise platform-defined overrides and system descriptions. 2. Fallback to automatic DT-based discovery: If child node under '/smbios/smbios/memory-device' does not exist, the implementation will: - Scan all top-level 'memory@' nodes to populate Type 17 structure with inferred size and location data. - Scan nodes named or marked as 'memory-controller' and parse associated 'dimm@' subnodes (if present) to extract DIMM sizes and map them accordingly. This dual-mode support enables flexible firmware SMBIOS reporting while aligning with spec-compliant naming and runtime-detected memory topology. Type 17 support is under GENERATE_SMBIOS_TABLE_VERBOSE to avoid increasing rom size for those platforms which only require basic SMBIOS support. Signed-off-by: Raymond Mao <[email protected]> Tested-by: Ilias Apalodimas <[email protected]>
2026-02-18smbios: add support for dynamic generation of Type 16 tableRaymond Mao
This commit implements SMBIOS Type 16 (Physical Memory Array) generation with a hybrid approach supporting both: 1. Explicit definition via Device Tree 'smbios' node: Child node under '/smbios/smbios/memory-array' will be used to populate as individual Type 16 structure directly. - Properties follow SMBIOS field names with lowercase letters and hyphen-separated words (e.g., 'memory-error-correction', 'maximum-capacity', 'extended-maximum-capacity', etc.). - This method supports precise platform-defined overrides and system descriptions. 2. Fallback to automatic DT-based discovery: If child node under '/smbios/smbios/memory-array' does not exist, the implementation will: - Scan all top-level 'memory@' nodes to populate Type 16 structure with inferred size and location data. - Scan nodes named or marked as 'memory-controller' and parse associated 'dimm@' subnodes (if present) to extract DIMM sizes and map them accordingly. This dual-mode support enables flexible firmware SMBIOS reporting while aligning with spec-compliant naming and runtime-detected memory topology. Type 16 support is under GENERATE_SMBIOS_TABLE_VERBOSE to avoid increasing rom size for those platforms which only require basic SMBIOS support. Signed-off-by: Raymond Mao <[email protected]> Tested-by: Ilias Apalodimas <[email protected]>
2026-02-18smbios: add support for dynamic generation of Type 9 system slot tablesRaymond Mao
This commit introduces support for generating SMBIOS Type 9 (System Slot) tables using a hybrid approach: 1. Explicit Device Tree definitions: Child node under '/smbios/smbios/system-slot' will be interpreted as individual slot definitions. - Each child represents a slot (e.g., isa, pcmcia, etc.). - Properties follow the SMBIOS specification using lowercase hyphen-separated names such as 'slot-type', 'slot-id', 'segment-group-number', 'bus-number', 'slot-information', etc. - This approach allows full customization of each system slot and is especially suitable for platforms with well-defined slot topology. 2. Automatic detection fallback: If child node under '/smbios/smbios/system-slot' does not exist, the implementation will scan the entire device tree for nodes whose 'device_type' matches known slot-related types ("pci", "isa", "pcmcia", etc.). - When a match is found, default values or heuristics are applied to populate to the System Slot table. - This mode is useful for platforms that lack explicit SMBIOS nodes but still expose slot topology via standard DT conventions. Together, two approaches ensure that SMBIOS Type 9 entries are available whether explicitly described or automatically derived. Signed-off-by: Raymond Mao <[email protected]> Tested-by: Ilias Apalodimas <[email protected]>
2026-02-17Merge patch series "treewide: Clean up usage of DECLARE_GLOBAL_DATA_PTR"Tom Rini
Peng Fan (OSS) <[email protected]> says: This patch set primarily removes unused DECLARE_GLOBAL_DATA_PTR instances. Many files declare DECLARE_GLOBAL_DATA_PTR and include asm/global_data.h even though gd is never used. In these cases, asm/global_data.h is effectively treated as a proxy header, which is not a good practice. Following the Include What You Use principle, files should include only the headers they actually depend on, rather than relying on global_data.h indirectly. This approach is also adopted in Linux kernel [1]. The first few patches are prepartion to avoid building break after remove the including of global_data.h. A script is for filtering the files: list=`find . -name "*.[ch]"` for source in ${list} do result=`sed -n '/DECLARE_GLOBAL_DATA_PTR/p' ${source}` if [ "${result}" == "DECLARE_GLOBAL_DATA_PTR;" ]; then echo "Found in ${source}" result=`sed -n '/\<gd\>/p' ${source}` result2=`sed -n '/\<gd_/p' ${source}` result3=`sed -n '/\<gd->/p' ${source}` if [ "${result}" == "" ] && [ "${result2}" == "" ] && [ "${result3}" == "" ];then echo "Cleanup ${source}" sed -i '/DECLARE_GLOBAL_DATA_PTR/{N;/\n[[:space:]]*$/d;s/.*\n//;}' ${source} sed -i '/DECLARE_GLOBAL_DATA_PTR/d' ${source} sed -i '/global_data.h/d' ${source} git add ${source} fi fi done [1] https://lpc.events/event/17/contributions/1620/attachments/1228/2520/Linux%20Kernel%20Header%20Optimization.pdf CI: https://github.com/u-boot/u-boot/pull/865 Link: https://lore.kernel.org/r/[email protected]
2026-02-17treewide: Clean up DECLARE_GLOBAL_DATA_PTR usagePeng Fan
Remove DECLARE_GLOBAL_DATA_PTR from files where gd is not used, and drop the unnecessary inclusion of asm/global_data.h. Headers should be included directly by the files that need them, rather than indirectly via global_data.h. Reviewed-by: Patrice Chotard <[email protected]> #STMicroelectronics boards and STM32MP1 ram test driver Tested-by: Anshul Dalal <[email protected]> #TI boards Acked-by: Yao Zi <[email protected]> #TH1520 Signed-off-by: Peng Fan <[email protected]>
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 <[email protected]> Reviewed-by: Anshul Dalal <[email protected]>
2026-02-16Merge tag 'xilinx-for-v2026.07-rc1' of ↵Tom Rini
https://source.denx.de/u-boot/custodians/u-boot-microblaze into next AMD/Xilinx/FPGA changes for v2026.07-rc1 gpio: - Add gpio delay driver zynqmp: - Wire gpio usb delay - Enable SPL pinctrl per pin xilinx: - Enable NFS support versal2: - Extend DDR initialization zynqmp-rtc: - Use clock framework for calibration value
2026-02-15efi_var: Unify read/write access helper functionMichal Simek
efi_var_to/from_file() suggest method where variables are placed. But there is no reason for it and generic name can be used to wire also different locations for variables. Signed-off-by: Michal Simek <[email protected]> Reviewed-by: Ilias Apalodimas <[email protected]> Tested-by: Neil Armstrong <[email protected]> # on AML-S905D3-CC Reviewed-by: Heinrich Schuchardt <[email protected]>
2026-02-15efi_var_file: refactor to move buffer functionsShantur Rathore
Currently efi_var_file.c has functions to store/read EFI variables to/from memory buffer. These functions can be used with other EFI variable stores so move them out to efi_var_common.c Signed-off-by: Shantur Rathore <[email protected]> Signed-off-by: Michal Simek <[email protected]> Tested-by: Neil Armstrong <[email protected]> # on AML-S905D3-CC Reviewed-by: Ilias Apalodimas <[email protected]> Reviewed-by: Heinrich Schuchardt <[email protected]>
2026-02-15disk: part_dos: Refactor to allow retrieving raw MBR partition dataJavier Martinez Canillas
Refactor the part_get_info_extended() helper function (which already recursively traverses DOS partitions) to optionally return the raw MBR partition structure (dos_partition_t). This allows other subsystems, such as EFI, to retrieve the partition details in the legacy MBR format. Signed-off-by: Javier Martinez Canillas <[email protected]> Reviewed-by: Ilias Apalodimas <[email protected]>
2026-02-15disk: part_efi: Remove redundant struct partition definitionJavier Martinez Canillas
Now that dos_partition_t and struct partition are identical, the duplicated data structure definition in the part_efi.h header can just be removed. This results in a single, shared definition for MBR partition table entries, instead of having the same definition in two different places. Signed-off-by: Javier Martinez Canillas <[email protected]> Reviewed-by: Tom Rini <[email protected]> Reviewed-by: Ilias Apalodimas <[email protected]>
2026-02-15disk: part_dos: Align dos_partition_t with struct partitionJavier Martinez Canillas
The dos_partition_t struct defined in part_dos.h is nearly identical to the struct partition defined in part_efi.h. They differ primarily in how define their starting sector and number of sectors fields. The former uses unsigned char arrays while the latter uses __le32 types. Using __le32 is preferable, as it removes the ambiguity and potential misuse of a raw byte array. This also aligns the structure with how the Linux kernel defines it nowadays, which is the original source of it. To prepare for future consolidation where one of the data structures can be removed, this change aligns both definitions and updates all accessors for dos_partition_t. Signed-off-by: Javier Martinez Canillas <[email protected]> Reviewed-by: Tom Rini <[email protected]> Reviewed-by: Ilias Apalodimas <[email protected]>
2026-02-15disk: part_dos: Move header to the main include directoryJavier Martinez Canillas
There are two different struct definitions for MBR partition table entries: one in part_dos.h and a nearly identical one in part_efi.h. To enable future consolidation of these two structures, move part_dos.h to the main include directory. This makes it accessible from other parts of the codebase, such as part_efi.h, and is the first step toward removing the redundant definition. Signed-off-by: Javier Martinez Canillas <[email protected]> Reviewed-by: Tom Rini <[email protected]> Reviewed-by: Ilias Apalodimas <[email protected]>
2026-02-14Replace TARGET namespace and cleanup properlyTien Fong Chee
TARGET namespace is for machines / boards / what-have-you that building U-Boot for. Simply replace from TARGET to ARCH make things more clear and proper for ALL SoCFPGA. Signed-off-by: Brian Sune <[email protected]> Reviewed-by: Tien Fong Chee <[email protected]> # Conflicts: # drivers/ddr/altera/Makefile
2026-02-14Add CoreCourse socfpga Board - AC550Brian Sune
CoreCourse Altera GEN5 Cyclone V board do support different size and formfactor. Now introducing AC550 C5 to mainstream u-boot This is a more complex and unified board with feature. More info on [1] [1] https://corecourse.cn/forum.php?mod=viewthread&tid=29788&extra=page%3D1 Signed-off-by: Brian Sune <[email protected]> Reviewed-by: Tien Fong Chee <[email protected]>
2026-02-14Add CoreCourse socfpga Board - AC501Brian Sune
CoreCourse Altera GEN5 Cyclone V board do support different size and formfactor. Now introducing AC501 C5 to mainstream u-boot This is a UBGA-484 based board with basic feature. More info on [1] [1] https://corecourse.cn/forum.php?mod=viewthread&tid=27704&highlight=AC501 Signed-off-by: Brian Sune <[email protected]> Reviewed-by: Tien Fong Chee <[email protected]>
2026-02-13spi: Squash spi_slave_of_to_plat() into spi_child_post_bind()Marek Vasut
The spi_slave_of_to_plat() is called from one place, spi_child_post_bind(). Squash it into the later and remove the public declaration, make this function local static. No functional change. Signed-off-by: Marek Vasut <[email protected]>
2026-02-13pinctrl: zynqmp: Add SPL supportSean Anderson
Although the pinctrl pm requests are implemented in the PMU firmware, PM_QUERY_DATA is actually implemented in ATF. In SPL (or when running in EL3), ATF is not yet running, so we need to implement this API ourselves. Do the bare minimum, allowing SPL to enumerate functions, but don't bother with groups. Groups take up a lot of space, and can be emulated with pins. For example, a node like display-port { mux { groups = "dpaux0_1"; function = "dpaux0"; }; }; can be replaced by display-port { mux { pins = "MIO34", "MIO35", "MIO36", "MIO37"; function = "dpaux0"; }; }; While this isn't backwards-compatible with existing devicetrees, it's more than enough for SPL where we may only need to mux one or two pins. Add SPL_PINCTRL_ZYNQMP to ensure there's no SPL size growth when pinctrl is enabled in U-Boot but isn't necessary for SPL. The only config this would affect is Kria, but SPL_PINCTRL_GENERIC is disabled so SPL_PINCTRL_ZYNQMP is not selected. Signed-off-by: Sean Anderson <[email protected]> Signed-off-by: Michal Simek <[email protected]> Link: https://lore.kernel.org/r/[email protected]
2026-02-13fdtdec: Add declaration for get_next_memory_node() helperPranav Sanwal
Add get_next_memory_node() function declaration to fdtdec.h to support iterating through multiple memory nodes in device tree. This function is used to enumerate memory banks when the system has non-contiguous or multiple memory regions defined with device_type = "memory". The function implementation already exists in lib/fdtdec.c (lines 1298-1305) but was missing the public declaration in the header file. This patch adds the declaration and includes dm/ofnode_decl.h for the ofnode type definition. This is needed for platforms that require early memory enumeration before standard fdtdec_setup_memory_banksize() is called, particularly for dynamic MMU page table size calculation based on actual DRAM configuration. Signed-off-by: Pranav Sanwal <[email protected]> Signed-off-by: Michal Simek <[email protected]> Link: https://lore.kernel.org/r/[email protected]
2026-02-11fwu: Pass bank state enum to fwu_state_machine_updates()Kory Maincent
Change fwu_state_machine_updates() to accept an enum fwu_bank_states parameter instead of a boolean. This makes the function interface more explicit and prepares for adding FWU_BANK_INVALID support to handle boot failures on the active bank. Convert the FWU_BANK_* defines to an enum and update all call sites accordingly. Signed-off-by: Kory Maincent <[email protected]> Reviewed-by: Ilias Apalodimas <[email protected]> Signed-off-by: Ilias Apalodimas <[email protected]>
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 <[email protected]> Signed-off-by: Michal Simek <[email protected]> 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 <[email protected]> Signed-off-by: Marek Vasut <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]> Acked-by: Jerome Forissier <[email protected]>
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 <[email protected]> Reviewed-by: Quentin Schulz <[email protected]>
2026-02-02Merge patch series "m68k: Add support for QEMU virt machine"Tom Rini
Kuan-Wei Chiu <[email protected]> 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/[email protected] [trini: Re-sort MAINTAINERS entries] Signed-off-by: Tom Rini <[email protected]>
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 <[email protected]> Tested-by: Daniel Palmer <[email protected]> Reviewed-by: Simon Glass <[email protected]>
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 <[email protected]> Reviewed-by: Simon Glass <[email protected]>
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 <[email protected]> Reviewed-by: Heinrich Schuchardt <[email protected]>