summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
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-15efi_loader: fix ecpt size computationVincent Stehlé
The size of the memory allocated for the EFI Conformance Profiles Table is computed with `num_entries' always equal to zero, which is incorrect when CONFIG_EFI_EBBR_2_1_CONFORMANCE is enabled. This can be verified by allocating the ECPT memory with malloc() instead of efi_allocate_pool(), building u-boot with sandbox_defconfig and CONFIG_VALGRIND=y, and by finally running the following command: valgrind --suppressions=scripts/u-boot.supp \ ./u-boot -T -c 'efidebug tables' Fix this by using an array of the supported profiles GUIDs instead, which should also be easier to extend in the future as U-Boot should publish the GUIDs for all supported EBBR revisions. Fixes: 6b92c1735205 ("efi: Create ECPT table") Suggested-by: Heinrich Schuchardt <[email protected]> Signed-off-by: Vincent Stehlé <[email protected]> Cc: Ilias Apalodimas <[email protected]> Cc: Tom Rini <[email protected]> Cc: Jose Marinho <[email protected]> Reviewed-by: Heinrich Schuchardt <[email protected]>
2026-02-15efi_loader: add missing EFI_CALL around tcg2 read_blocks callsVincent Stehlé
The read_blocks() function from the Block IO protocol is a UEFI function; make sure to call it from within U-Boot using the EFI_CALL() macro. To demonstrate the issue on an AArch64 machine, define the DEBUG macro in include/efi_loader.h and build u-boot with sandbox_defconfig, then download and uncompress the ACS-DT image [1], and finally execute the following command: $ ./u-boot -T -c " \ host bind 0 systemready-dt_acs_live_image.wic; \ setenv loadaddr 0x10000; \ load host 0 \${loadaddr} EFI/BOOT/Shell.efi; \ bootefi \${loadaddr} \${fdtcontroladdr}" The following assertion should fail: lib/efi_loader/efi_net.c:858: efi_network_timer_notify: Assertion `__efi_entry_check()' failed. This happens due to the following EFIAPI functions call chain: efi_start_image() efi_disk_read_blocks() (due to the missing EFI_CALL, entry_count == 2) efi_network_timer_notify() Link: https://github.com/ARM-software/arm-systemready/releases/download/v25.12_DT_3.1.1/systemready-dt_acs_live_image.wic.xz [1] Fixes: ce3dbc5d080d ("efi_loader: add UEFI GPT measurement") Signed-off-by: Vincent Stehlé <[email protected]> Cc: Heinrich Schuchardt <[email protected]> Cc: Ilias Apalodimas <[email protected]> Cc: Tom Rini <[email protected]> Cc: Masahisa Kojima <[email protected]> Reviewed-by: Ilias Apalodimas <[email protected]> Acked-by: Masahisa Kojima <[email protected]> Reviewed-by: Heinrich Schuchardt <[email protected]>
2026-02-14Merge tag 'u-boot-socfpga-next-20260213' of ↵Tom Rini
https://source.denx.de/u-boot/custodians/u-boot-socfpga into next This pull request updates SoCFPGA platforms with DDR improvements, new board support, Agilex5 enhancements and general cleanup across the codebase. DDR and memory handling * Add DRAM size checking support for Arria10. * Widen MEM_TOTAL_CAPACITY mask handling in IOSSM mailbox driver. * Assign unit address to memory node for improved memory representation and consistency. Agilex / Agilex5 updates * Restore multi-DTB support for NAND boot and fix NAND clock handling. * Enable SD card UHS mode and eMMC HS200/HS400 mode support on Agilex5. * Fix DT property naming conventions for Agilex5. * Exclude AGILEX_L4_SYS_FREE_CLK from clock enable/disable operations to avoid unintended clock control. New board support * Add support for CoreCourse Cyclone V boards: * AC501 * AC550 Including device trees, QTS configuration, defconfigs and maintainers entries. Fixes and cleanup * Fix GEN5 handoff script path. * Remove incorrect CONFIG_SPL_LDSCRIPT settings. * Replace legacy TARGET namespace and perform related cleanup across SoCFPGA code. * General Kconfig, build and SoCFPGA maintenance updates. Overall this pull request improves platform robustness, adds new board coverage and cleans up legacy configuration usage across the SoCFPGA U-Boot codebase. [trini: Change TARGET_SOCFPGA_CYCLONE5 to ARCH_SOCFPGA_CYCLONE5 in the new platforms this added] Signed-off-by: Tom Rini <[email protected]>
2026-02-14soft_spi performance enhancementJean-Marie Verdun
Add a test when delay is set to 0 to improve performances by 20% on ARM based systems Signed-off-by: Jean-Marie Verdun <[email protected]> Reviewed-by: Neil Armstrong <[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-14arm: agilex5: Enable eMMC HS200 and HS400 mode supportTanmay Kathpalia
Enable high-speed eMMC modes on Agilex5 SoC development kit for improved storage performance. Defconfig changes: - Enable CONFIG_MMC_HS400_SUPPORT and CONFIG_SPL_MMC_HS400_SUPPORT Device tree changes: - Add mmc-hs200-1_8v and mmc-hs400-1_8v capabilities - Add sdhci-caps-mask to mask SDHCI_CLOCK_V3_BASE_MASK bits - Add sdhci-caps to set 200MHz base clock and 8-bit bus width - Add PHY and controller timing configuration for HS200 mode - Add PHY and controller timing configuration for HS400 mode Signed-off-by: Tanmay Kathpalia <[email protected]> Acked-by: Tien Fong Chee <[email protected]>
2026-02-14arm: agilex5: Enable SD card UHS mode supportTanmay Kathpalia
Enable Ultra High Speed (UHS-I) mode support for SD cards on Agilex5 SoC development kit. Defconfig changes: - Enable CONFIG_MMC_UHS_SUPPORT and CONFIG_SPL_MMC_UHS_SUPPORT Device tree changes: - Remove no-1-8-v to allow 1.8V signaling for UHS modes - Add sd-uhs-sdr50 and sd-uhs-sdr104 capabilities - Add sdhci-caps and sdhci-caps-mask for proper capability reporting - Add PHY and controller timing configuration Signed-off-by: Tanmay Kathpalia <[email protected]> Acked-by: Tien Fong Chee <[email protected]>
2026-02-14arm: dts: agilex5: Fix DT property naming conventionTanmay Kathpalia
Replace underscores with hyphens in the PHY timing configuration property names to follow standard devicetree naming conventions: - phy-gate-lpbk_ctrl-delay-sd-ds -> phy-gate-lpbk-ctrl-delay-sd-ds - phy-gate-lpbk_ctrl-delay-sd-hs -> phy-gate-lpbk-ctrl-delay-sd-hs Signed-off-by: Tanmay Kathpalia <[email protected]> Acked-by: Tien Fong Chee <[email protected]> Best regards, Tien
2026-02-14fix socfpga GEN5 handoff script pathBrian Sune
src variables not longer defined, fixed by srctree Signed-off-by: Brian Sune <[email protected]> Reviewed-by: Tien Fong Chee <[email protected]> Best regards,
2026-02-14drivers: ddr: altera: iossm_mailbox: widen MEM_TOTAL_CAPACITY maskNaresh Kumar Ravulapalli
The previous mask for MEM_TOTAL_CAPACITY_INTF was limited to 8 bits, which could truncate DDR size values on larger-memory systems. Update INTF_CAPACITY_GBITS_MASK to 32 bits to correctly represent the full capacity field according to the hardware specification. Signed-off-by: Naresh Kumar Ravulapalli <[email protected]> Signed-off-by: Chen Huei Lok <[email protected]> Reviewed-by: Tien Fong Chee <[email protected]> Best regards,
2026-02-14clk: altera: agilex: Exclude AGILEX_L4_SYS_FREE_CLK from enable/disable ↵Alif Zakuan Yuslaimi
operations AGILEX_L4_SYS_FREE_CLK is a free-running clock with no gate control in hardware, therefore attempting to enable or disable it is not applicable. Update the clock driver to explicitly exclude this clock ID from enable/disable operations by returning -EOPNOTSUPP in bitmask_from_clk_id() and treating this as a no-op in the socfpga_clk_enable() and socfpga_clk_disable() functions. This prevents unnecessary register access for clocks that cannot be gated and ensures clean handling when the clock is present in the device tree. Signed-off-by: Alif Zakuan Yuslaimi <[email protected]> Reviewed-by: Tien Fong Chee <[email protected]>
2026-02-14arch: arm: socfpga: Assign unit address to memory nodeAlif Zakuan Yuslaimi
Assign unit address of 0 to memory node following latest Linux convention. Without this unit address, SPL will not be able to retrieve proper memory node values set from the device tree. Update all dts files which includes the common .dtsi to add unit address as well. Fixes: e291277689f6 ("sync socfpga common u-boot dts") Signed-off-by: Alif Zakuan Yuslaimi <[email protected]> Reviewed-by: Tien Fong Chee <[email protected]>
2026-02-14ddr: altera: arria10: Add DRAM size checkingAlif Zakuan Yuslaimi
Add DRAM size checking compare between size from device tree and actual hardware. Trigger hang if DRAM size from device tree is greater than actual hardware. Display warning message if DRAM size mismatch between device tree and actual hardware. Signed-off-by: Alif Zakuan Yuslaimi <[email protected]> Reviewed-by: Tien Fong Chee <[email protected]> Best regards,
2026-02-14socfpga: agilex: fix NAND clock handlingDinesh Maniyam
In v2025.10, the Agilex clock driver was updated to support clk_enable() and clk_disable() using clock-ID based bitmasks. However, only AGILEX_NAND_CLK was implemented, while the NAND DT node still referenced both nand and nand_x clocks. Since AGILEX_NAND_X_CLK is not defined in the clock driver or the clock-ID specification, clk_enable() failed during NAND probe. As a result, the Denali NAND controller never completed initialization. Fix this by mapping the NAND X clock to the existing l4_mp clock bitmask, aligning the DT expectations with the clock driver and restoring proper NAND controller initialization. Signed-off-by: Dinesh Maniyam <[email protected]> Reviewed-by: Tien Fong Chee <[email protected]>
2026-02-14socfpga: Remove incorrect CONFIG_SPL_LDSCRIPT settingsTom Rini
These platforms set CONFIG_SPL_LDSCRIPT to a file that doesn't exist, and in turn were using the default of arch/arm/cpu/armv8/u-boot-spl.lds instead. Signed-off-by: Tom Rini <[email protected]> Reviewed-by: Tien Fong Chee <[email protected]>
2026-02-14arm: socfpga: agilex: restore Multi-DTB support for NAND bootDinesh Maniyam
From v2025.10 onward, Agilex platforms use the upstream Linux device tree sources instead of local copies. To continue using a single defconfig while supporting NAND boot, restore Multi-DTB support and update the DT paths to the upstream intel directory. NAND boot is configured to use FDT-1, while other boot flows continue to use the default device tree. No functional change is intended for non-NAND boot paths. Signed-off-by: Dinesh Maniyam <[email protected]> Reviewed-by: Tien Fong Chee <[email protected]>
2026-02-14board: toradex: Make A53 get RAM size from DT in K3 boardsSuhaas Joshi
`dram_init()` is called by R5 SPL and U-Boot, both. It starts by computing the size of the RAM. In verdin-am62(p), it does so by calling `get_ram_size()`. This function computes the size of the RAM by writing over the RAM. When R5 computes the size of the RAM, it does not update the DT with this size. As a result, when A53 invokes `dram_init()` again, it has to compute the size through `get_ram_size()` again. Commit 13c54cf588d82 and 0c3a6f748c9 add firewall over ATF's and OPTEE's regions. This firewall is added during the R5 SPL stage of boot. So when A53 attempts to write over RAM in `get_ram_size()`, it writes over the protected region. Since A53 is a non-secure core, this is blocked by the firewall. To fix this, do the following: * Implement `spl_perform_board_fixups()` function for verdin-am62 and verdin-am62p. Make this function call `fixup_memory_node()`, which updates the DT. * Add an if-block in `dram_init()`, to ensure that only R5 is able to call `get_ram_size()`, and that A53 reads this size from the DT. Signed-off-by: Suhaas Joshi <[email protected]> Reviewed-by: Francesco Dolcini <[email protected]>
2026-02-13mtd: spi-nor-tiny: fix 4-Byte address instructions for Cypress and ISSIShiji Yang
In theory, for the same vendor, we should use the same instructions as the spi-nor-core implementation. Fixes: 72151ad10f8d ("mtd: spi-nor-core: Add Cypress manufacturer ID in set_4byte") Fixes: 5bf3f3dd11db ("mtd: spi-nor: Enable QE bit for ISSI flash") Signed-off-by: Shiji Yang <[email protected]>
2026-02-13mtd: spi-nor: winbond: Make sure w25q{01, 02}jv behave correctlyMiquel Raynal
These chips are internally made of two/four dies with linear addressing capabilities to make it transparent to the user that two/four dies were used. There is one drawback however, the read status operation is racy as the status bit only gives the active die status and not the status of the other die. For commands affecting the two dies, it means if another command is sent too fast after the first die has returned a valid status (deviation can be up to 200us), the chip will get corrupted/in an unstable state. The solution adopted here is to iterate manually over all internal dies (which takes about 30us per die) until all are ready. This approach will always be faster than a blind delay which represents the maximum deviation, while also being totally safe. A flash-specific hook for the status register read had to be implemented. Testing with the flash_speed benchmark in Linux shown no difference with the existing performances (using the regular status read core function). As the presence of multiple dies is not filled in these chips SFDP tables (the table containing the crucial information is optional), we need to manually wire the hook. This change is adapted from Linux. Link: https://lore.kernel.org/all/20250110-winbond-6-12-rc1-nor-volatile-bit-v3-1-735363f8cc7d@bootlin.com/ Signed-off-by: Miquel Raynal <[email protected]>
2026-02-13spi: Clean up more of the stacked parallel ifdefferyMarek Vasut
Invert the conditional when to exit, and fall back to common code in the default case. This should have no functional impact on either code path. Signed-off-by: Marek Vasut <[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-13mtd: spi-nor-ids: remove duplicate IDs for w25q32 and w25q512 seriesShiji Yang
Some Winbond Flash chips share the same device ID. Names are not that important for the SPI Flash, hence we don't need these duplicate ID definitions. And the Flash size of w25q512jv is actually wrong. Clean them up to keep the source file tidy. Signed-off-by: Shiji Yang <[email protected]>
2026-02-13fwu-mdata: Allow multiple metadata storage drivers to be enabledKory Maincent
Change the Kconfig from a "choice" to a conditional block, allowing multiple FWU metadata storage drivers to be selected simultaneously instead of being mutually exclusive. This enables systems with FWU metadata on different storage types (e.g., both GPT-partitioned block devices and MTD devices) to have both drivers compiled in. The board can then select the appropriate driver at runtime based on the devicetree description. The change converts FWU_MDATA to a menuconfig and replaces the "choice/endchoice" block with "if FWU_MDATA/endif", making FWU_MDATA_GPT_BLK default to 'y' for backward compatibility. Signed-off-by: Kory Maincent <[email protected]> Acked-by: Sughosh Ganu <[email protected]> Reviewed-by: Tom Rini <[email protected]> Signed-off-by: Ilias Apalodimas <[email protected]>
2026-02-13arm64: zynqmp: Wire gpio-delay driver for USB hub resetMichal Simek
USB hub requires longer delay to get out of the reset to work properly that's why use gpio-delay to ensure enough waiting time. Reviewed-by: Radhey Shyam Pandey <[email protected]> Signed-off-by: Michal Simek <[email protected]> Link: https://lore.kernel.org/r/e206e3ab2ad266935b81f5e9d3af2ed47b866826.1770105146.git.michal.simek@amd.com
2026-02-13xilinx: Enable GPIO delay driver on Kria platformsMichal Simek
GPIO delay driver is necessary to use to extend delay times for USB hubs available on the Kria platforms. Signed-off-by: Michal Simek <[email protected]> Link: https://lore.kernel.org/r/aa3566571a124b0933cbe971a2db109f83157ae2.1770105146.git.michal.simek@amd.com
2026-02-13gpio: Add GPIO delay driverMichal Simek
Add a GPIO controller driver that provides configurable delays when setting GPIO output values. This is useful for hardware that requires specific timing delays during power sequencing or GPIO state changes. The driver wraps underlying GPIO controllers and adds programmable ramp-up and ramp-down delays specified in microseconds through the device tree. Each GPIO can have independent delay timings. Device tree binding matches Linux. Signed-off-by: Michal Simek <[email protected]> Link: https://lore.kernel.org/r/575998efc6ba0e405640789cf8d05f0b633f496e.1770105146.git.michal.simek@amd.com
2026-02-13xilinx: mbv: Disable EFI loaderMichal Simek
There is no intention to use EFI on Microblaze V that's why disable it to save some space. Also it is indication that this feature is not tested/supported. Signed-off-by: Michal Simek <[email protected]> Link: https://lore.kernel.org/r/2b14005e41e0688ff9598d0b3f2cfbdf82c8ff91.1770798604.git.michal.simek@amd.com
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-13xilinx: Enable NFS support for all Xilinx platformsPranav Tilak
Enabled the default utilization of the NFS command on all Xilinx platforms to facilitate booting images through the network using the NFS protocol. Signed-off-by: Pranav Tilak <[email protected]> Signed-off-by: Michal Simek <[email protected]> Link: https://lore.kernel.org/r/[email protected]
2026-02-13arm64: versal2: Populate DRAM banks before page table size calculationPranav Sanwal
Move DRAM bank detection from fdtdec to custom implementation to ensure memory banks are populated before get_page_table_size() is called during MMU initialization. The current fdtdec-based approach populates gd->bd->bi_dram[] too late in the boot sequence, causing get_page_table_size() to be called with unpopulated DRAM information. This prevents dynamic page table sizing based on actual memory configuration. Parse /memory nodes in dram_init() to fill versal2_mem_map[] early enough for MMU setup. Supports up to CONFIG_NR_DRAM_BANKS (36) non-contiguous banks with high memory regions (>4GB) and use __weak get_page_table_size implementation to estimate page table size based on the populated DRAM banks. Signed-off-by: Pranav Sanwal <[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-13rtc: zynqmp: Add clock framework support with calibration fallbackPranav Tilak
Add support for reading RTC clock from device tree using clock framework also update the default calibration value to 0x7FFF as per RTC specifications. Falls back to 'calibration' property if clock unavailable, and uses default calibration if neither is present. Only writes calibration when hardware register reads zero. The calibration write previously in zynqmp_rtc_set() has been moved to the probe function. The earlier implementation wrote calibration on every time update to clear the tick counter, but since calibration is now dynamically configured from clock framework or device tree during probe, it only requires one-time initialization. This avoids repeated tick counter resets and unnecessary overhead. Signed-off-by: Pranav Tilak <[email protected]> Reviewed-by: Tomas Melin <[email protected]> Signed-off-by: Michal Simek <[email protected]> Link: https://lore.kernel.org/r/[email protected]
2026-02-12board: toradex: Make A53 get RAM size from DT in K3 boardsSuhaas Joshi
`dram_init()` is called by R5 SPL and U-Boot, both. It starts by computing the size of the RAM. In verdin-am62(p), it does so by calling `get_ram_size()`. This function computes the size of the RAM by writing over the RAM. When R5 computes the size of the RAM, it does not update the DT with this size. As a result, when A53 invokes `dram_init()` again, it has to compute the size through `get_ram_size()` again. Commit 13c54cf588d82 and 0c3a6f748c9 add firewall over ATF's and OPTEE's regions. This firewall is added during the R5 SPL stage of boot. So when A53 attempts to write over RAM in `get_ram_size()`, it writes over the protected region. Since A53 is a non-secure core, this is blocked by the firewall. To fix this, do the following: * Implement `spl_perform_board_fixups()` function for verdin-am62 and verdin-am62p. Make this function call `fixup_memory_node()`, which updates the DT. * Add an if-block in `dram_init()`, to ensure that only R5 is able to call `get_ram_size()`, and that A53 reads this size from the DT. Signed-off-by: Suhaas Joshi <[email protected]> Reviewed-by: Francesco Dolcini <[email protected]>
2026-02-12Merge tag 'xilinx-for-v2026.04-rc3' of ↵Tom Rini
https://source.denx.de/u-boot/custodians/u-boot-microblaze AMD/Xilinx/FPGA changes for v2026.04-rc3 clk: - zynqmp clk fixes phy: - sync vsc8541 config versal2: - fix GIC configuration
2026-02-11Merge tag 'ab-next-11022026' of ↵Tom Rini
https://source.denx.de/u-boot/custodians/u-boot-tpm into next Kory has updated the A/B implementation and added an invalid bank state. This is already described in the spec and can help boards boot faster by skipping banks marked as invalid
2026-02-11Merge tag 'u-boot-dfu-20260211' of ↵Tom Rini
https://source.denx.de/u-boot/custodians/u-boot-dfu u-boot-dfu-20260211 USB Gadget: * dwc3: Support ip and version type * dwc3: Increase controller halt timeout * dwc3: Don't send unintended link state change * dwc3: Improve reset sequence * dwc2: Move dr_mode check to bind to support RK3288/RK3506 with 2 DWC2 controllers
2026-02-11Merge tag 'tpm-master-11022026' of ↵Tom Rini
https://source.denx.de/u-boot/custodians/u-boot-tpm A coverity fix and documentation update from Heiko on SM3 support
2026-02-11fwu: Mark failed bank as invalid during rollbackKory Maincent
When boot_idx differs from active_idx at boot time, it indicates a rollback scenario where the firmware update failed and the system reverted to the previous working bank. In this case, mark the failed bank (active_idx) as invalid to prevent future boot attempts from that bank. Signed-off-by: Kory Maincent <[email protected]> Reviewed-by: Ilias Apalodimas <[email protected]> Signed-off-by: Ilias Apalodimas <[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-11doc: cmd: add documentation for sm3sumHeiko Schocher
add documentation for sm3sum command. Signed-off-by: Heiko Schocher <[email protected]> Reviewed-by: Quentin Schulz <[email protected]> Signed-off-by: Ilias Apalodimas <[email protected]>
2026-02-11lib: sm3: fix coverity errorHeiko Schocher
Coverity scan reported: CID 449815: Memory - illegal accesses (OVERRUN) Overrunning array of 64 bytes at byte offset 64 by dereferencing pointer "sctx->buffer + partial". [Note: The source code implementation of the function has been overridden by a builtin model.] In line: 252 memset(sctx->buffer + partial, 0, SM3_BLOCK_SIZE - partial); The respective line should be: memset(sctx->buffer + partial, 0, SM3_BLOCK_SIZE - partial - 1); as partial gets incremented by one before. Signed-off-by: Heiko Schocher <[email protected]> Acked-by: Ilias Apalodimas <[email protected]> Signed-off-by: Ilias Apalodimas <[email protected]>
2026-02-11net: phy: mscc: Enable RMII clock output for VSC8541 PHYPranav Tilak
Set RMII reference clock output to enabled (1) by default for VSC8541 PHY in RMII mode. The RMII specification requires a 50MHz reference clock, and many board designs expect the PHY to provide this clock to the MAC controller. Previously, the driver defaulted rmii_clk_out to 0 (disabled) for all interface modes, which caused the PHY to not output the required 50MHz clock. This resulted in MAC-PHY communication failures and prevented network operations like DHCP from working on RMII-configured boards. This change alligns with the hardware power-up default behavior and aligns with both the generic PHY driver and Linux MSCC PHY driver implementations. Signed-off-by: Pranav Tilak <[email protected]> Signed-off-by: Michal Simek <[email protected]> Link: https://lore.kernel.org/r/[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-10Merge patch series "env: Provide another work-around for unquoting fdtfile"Tom Rini
This series from Vagrant Cascadian <[email protected]> provides a way for plain text environments to avoid having extraneous quotes in how they use CONFIG_DEFAULT_FDT_FILE. Link: https://lore.kernel.org/r/[email protected]
2026-02-10board: sifive: unmatched: set fdtfile with unquoted variable.Vagrant Cascadian
The fdtdfile variable contains quotes: printenv fdtfile fdtfile="sifive/hifive-unmatched-a00.dtb" But this leads to issues which booting with an extlinux.conf format file failing to find the .dtb file: Retrieving file: /usr/lib/linux-image-6.12.63+deb13-riscv64/"sifive/hifive-unmatched-a00.dtb" Skipping fdtdir /usr/lib/linux-image-6.12.63+deb13-riscv64/ for failure retrieving dts Use the DEFAULT_FDT_FILE variable which has the quotes removed. Signed-off-by: Vagrant Cascadian <[email protected]>
2026-02-10env: Provide another work-around for unquoting fdtfileVagrant Cascadian
Some boards use CONFIG_DEFAULT_FDT_FILE to specify the value of fdtfile, althugh the quotes get embedded in the value. Provide DEFAULT_FDT_FILE with the quotes stripped. This is a similar work-around to the one provided in commit d085e692c98d0d7b57cc577ed9befda159cd4a40 for CONFIG_DEFAULT_DEVICE_TREE. Signed-off-by: Vagrant Cascadian <[email protected]> Reviewed-by: Tom Rini <[email protected]>