summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2026-06-12arm: dts: am335x-*-u-boot: Add chosen tick-timerMarkus Schneider-Pargmann (TI)
Upstream devicetrees do not have a binding for the tick-timer. Add it for all boards built with the am335x_evm_defconfig. Reviewed-by: Kory Maincent <[email protected]> Signed-off-by: Markus Schneider-Pargmann (TI) <[email protected]>
2026-06-12am33xx: Avoid hard failure on USB probe issueMarkus Schneider-Pargmann (TI)
Currently if USB fails to probe, U-Boot does not reach the console. This patch does not fail if USB fails to probe making it easier to debug in case of issues. Reviewed-by: Kory Maincent <[email protected]> Signed-off-by: Markus Schneider-Pargmann (TI) <[email protected]>
2026-06-12configs: am335x_evm: Unify evm board defconfigsMarkus Schneider-Pargmann (TI)
Much of the config symbols between the evm boards are the same independent of the actual board. This patch creates a hierarchy for the am335x_evm configs: am335x_evm.config `-> am335x_evm_defconfig `-> am335x_evm_spiboot_defconfig `-> am335x_hs_evm.config `-> am335x_hs_evm_defconfig `-> am335x_hs_evm_uart_defconfig Reviewed-by: Tom Rini <[email protected]> Reviewed-by: Kory Maincent <[email protected]> Signed-off-by: Markus Schneider-Pargmann (TI) <[email protected]>
2026-06-12configs: am335x_evm: Enable SPL_OPTIMIZE_INLININGMarkus Schneider-Pargmann (TI)
Enable SPL inline optimization to shrink the size. After enabling OF_UPSTREAM the size is otherwise too big. Enable it before enabling OF_UPSTREAM to maintain bisect ability. Signed-off-by: Markus Schneider-Pargmann (TI) <[email protected]> Reviewed-by: Kory Maincent <[email protected]>
2026-06-12include: configs: am335x_evm: Enable vidconsoleMarkus Schneider-Pargmann (TI)
Enable vidconsole for the am335x-evm board. Reviewed-by: Kory Maincent <[email protected]> Signed-off-by: Markus Schneider-Pargmann (TI) <[email protected]>
2026-06-12configs: am335x_evm_defconfig: Enable panelMarkus Schneider-Pargmann (TI)
Enable LCD panel support on am335x-evm: - CLK_CCF and CLK_TI_* for display clock tree - DM_PWM and PWM_TI_ECAP for backlight control - VIDEO and AM335X_LCD for display controller Reviewed-by: Kory Maincent <[email protected]> Signed-off-by: Markus Schneider-Pargmann (TI) <[email protected]>
2026-06-12arm: dts: am335x-evm: Add backlight to the panelMarkus Schneider-Pargmann (TI)
Add backlight phandle reference to panel node. Without this reference, the display driver cannot control backlight, leaving the panel dark. Reviewed-by: Kory Maincent <[email protected]> Signed-off-by: Markus Schneider-Pargmann (TI) <[email protected]>
2026-06-12Merge patch series "configs: imx95: enable PCI_INIT_R for Toradex modules"Tom Rini
Franz Schnyder <[email protected]> says: Currently, on the Toradex SMARC iMX95 and the Verdin iMX95 the ENETC device is not enumerated before network initialization because pci_init() is not called. As a result, no Ethernet device is registered. Enable CONFIG_PCI_INIT_R so the PCI buses are enumerated early enough for the Ethernet Controller to be detected and used. Link: https://lore.kernel.org/r/20260612-fix-smarc-verdin-imx95-eth-v1-0-851197b36dcc@toradex.com
2026-06-12configs: verdin-imx95: enable PCI_INIT_RFranz Schnyder
Currently, the ENETC device on iMX95 is not enumerated before network initialization because pci_init() is not called. As a result, no Ethernet device is registered. Enable CONFIG_PCI_INIT_R so the PCI buses are enumerated early enough for the Ethernet Controller to be detected and used. Fixes: 60d8255d8dc0 ("board: toradex: add Toradex Verdin iMX95") Signed-off-by: Franz Schnyder <[email protected]> Reviewed-by: Francesco Dolcini <[email protected]>
2026-06-12configs: toradex-smarc-imx95: enable PCI_INIT_RFranz Schnyder
Currently, the ENETC device on iMX95 is not enumerated before network initialization because pci_init() is not called. As a result, no Ethernet device is registered. Enable CONFIG_PCI_INIT_R so the PCI buses are enumerated early enough for the Ethernet Controller to be detected and used. Fixes: ff0540fcfe49 ("board: toradex: add Toradex SMARC iMX95") Signed-off-by: Franz Schnyder <[email protected]> Reviewed-by: Francesco Dolcini <[email protected]>
2026-06-11Merge patch series "fdt_support: validate property lengths in chosen and ↵Tom Rini
dma-range fixups" Aristo Chen <[email protected]> says: boot/fdt_support.c contains a number of helpers that fix up the kernel devicetree handed to the OS during bootm/booti. Several of those helpers consume fdt_getprop() results without validating the returned length against the per-entry size implied by the surrounding cell-count arithmetic. When the OS devicetree is not signature-verified, for example an unsigned FIT, a DT loaded from $fdtaddr or $fdtcontroladdr, or a DT supplied over a network boot, the property is attacker-influenced and the missing checks turn into out-of-bounds reads or writes on the FDT blob and on stack buffers. The first patch targets fdt_fixup_stdout(). The function copies the value of /aliases/serialN into a fixed 256-byte stack buffer before publishing it as /chosen/linux,stdout-path, but does not check that the property fits. The patch rejects an oversized property with a debug-only message and -FDT_ERR_NOSPACE so the unbounded memcpy cannot run. The second patch addresses fdt_get_dma_range(). The function reads one full dma-ranges entry of (na + pna + ns) * sizeof(u32) bytes after checking only that the returned length is non-zero. A dma-ranges property shorter than one entry causes the subsequent fdt_read_number() and fdt_translate_dma_address() calls to read past the property within the FDT blob. The patch validates the length against one full entry and returns -EINVAL when the property is too short, matching the existing failure paths in this function. Both rejection paths use debug() rather than printf() so production builds do not pay any .text or .rodata growth for the new diagnostic text. Measured against master on real cross-compiled targets, the v1 printf form added 88 bytes of .text on CMPCPRO_defconfig (which links the fdt_fixup_stdout check) and 119 bytes on rpi_arm64_defconfig (which links fdt_get_dma_range). The v2 debug form adds 0 bytes on CMPCPRO and 20 bytes on rpi_arm64; the 20-byte residual is the length-check branch itself, not the diagnostic. Build tested with kontron_sl28_defconfig (aarch64), CMPCPRO_defconfig (powerpc, which enables both CONFIG_OF_STDOUT_VIA_ALIAS and CONFIG_CONS_INDEX and therefore links the new bounds check in fdt_fixup_stdout), rpi_arm64_defconfig (aarch64, links fdt_get_dma_range) and sandbox_defconfig. All builds are clean and scripts/checkpatch.pl reports no errors, warnings, or checks on either patch. Link: https://lore.kernel.org/r/[email protected]
2026-06-11fdt_support: validate dma-ranges length in fdt_get_dma_rangeAristo Chen
fdt_get_dma_range() fetches the dma-ranges property with fdt_getprop() and checks only that the length is non-zero before reading one full entry from it. The entry size depends on na, pna and ns cells returned by count_cells, which come from the parent buses in the devicetree. A dma-ranges property shorter than (na + pna + ns) * sizeof(u32) bytes causes fdt_read_number() and fdt_translate_dma_address() to read past the end of the property within the FDT blob, an out-of-bounds read of attacker-influenced data when the OS devicetree is not signature verified. Reject the property when its length is smaller than one full entry and return -EINVAL, matching the existing failure paths in this function. Use debug() rather than printf() for the rejection text so that production builds do not pay any .text or .rodata growth for the new diagnostic. Signed-off-by: Aristo Chen <[email protected]>
2026-06-11fdt_support: bound serialN alias length before copying to stackAristo Chen
fdt_fixup_stdout() reads the path stored in /aliases/serialN with fdt_getprop() and then memcpys it into a fixed 256-byte stack buffer. The length returned by libfdt is the raw on-disk property size and is not bounded by any console-path convention, so an oversized property in a malformed or untrusted devicetree overflows the buffer with attacker-controlled length and contents. The "/* long enough */" comment next to tmp[] codifies an unchecked assumption. Reject lengths that exceed sizeof(tmp) with a debug-only message and return -FDT_ERR_NOSPACE. The fixup runs during fdt_chosen() on every booted kernel when CONFIG_OF_STDOUT_VIA_ALIAS is enabled, and when the OS devicetree is not signature-verified the property is reachable from an attacker-influenced blob. Using debug() rather than printf() keeps the rejection text out of production builds so there is no .text or .rodata growth on space-constrained targets. Signed-off-by: Aristo Chen <[email protected]>
2026-06-11Merge patch series "tools: mkimage: fix get_basename crash on paths with ↵Tom Rini
dotted directories" Aristo Chen <[email protected]> says: The get_basename() helper in tools/fit_image.c searches the entire input path independently for the last '/' and the last '.'. When the last '.' falls at an offset earlier than the last '/', for example "./mydt", "a.b/c" or "sub.d/leaf", 'end' points before 'start' and the computed length is negative. The size check uses signed comparison so the negative value flows unchanged into memcpy() (cast to size_t there) and mkimage segfaults during -f auto FIT generation. The helper is reached on every auto-FIT build via the -b, --fit-tee and --fit-tfa-bl31 file arguments. The first patch restricts the dot search to the substring that follows the last slash, which is the minimal fix and preserves the existing behaviour for typical inputs such as "arch/arm/dts/foo.dtb". The second patch adds a parametrized sandbox test under test/py/tests/test_fit_mkimage_validate.py that drives mkimage -f auto with each of the crashing inputs ("./mydt", "./sub.d/leaf", "./a.b/c") plus one control input ("./mydt.dtb"). The test reads the resulting /images/fdt-1 description back from the produced FIT via fdtget to verify get_basename()'s output matches the expected stripped basename. Reproducer that previously segfaulted and now produces a valid image: echo dummy > kernel.bin echo dummy > ./mydt ./tools/mkimage -f auto -A arm -O linux -T kernel -C none \ -a 0x80000000 -e 0x80000000 -n test \ -d kernel.bin -b ./mydt out.itb Verified by rebuilding tools/mkimage on master and running the command above with each of the four parametrized inputs. The three crash triggers all segfault before the fix and now produce the expected fdt-1 descriptions ("mydt", "leaf", "c"); the control input "./mydt.dtb" continues to produce "mydt" as before. Link: https://lore.kernel.org/r/[email protected]
2026-06-11test/py: cover get_basename crash on paths with dotted directoriesAristo Chen
Add a parametrized regression test for the fix in the previous commit. The test invokes mkimage in auto-FIT mode (-f auto) with a -b argument whose directory component contains a '.' and whose leaf either lacks an extension or is a plain identifier. Before the fix these inputs caused get_basename() to compute a negative length and segfault inside memcpy. The test asserts that mkimage exits successfully and that the fdt sub-image description matches the expected stripped basename, covering "./mydt", "./sub.d/leaf", and "./a.b/c". A control input of "./mydt.dtb" is also exercised to confirm normal extension stripping still works. Signed-off-by: Aristo Chen <[email protected]>
2026-06-11tools: mkimage: fix get_basename crash on paths with dotted directoriesAristo Chen
The get_basename() helper in tools/fit_image.c searches the entire input path for the last '/' and the last '.' independently. When the last '.' falls at an offset earlier than the last '/' (for example "./mydt", "a.b/c", or "sub.d/leaf"), 'end' points before 'start' and the computed length is negative. The subsequent size check uses signed comparison so the negative value passes through unchanged, and memcpy() is then called with that length implicitly cast to size_t, which segfaults. Restrict the dot search to the substring that follows the last slash so that only an extension in the filename component can become the end of the basename. This matches the function's stated intent of stripping an extension from the leaf, and keeps the existing behaviour for typical inputs such as "arch/arm/dts/foo.dtb". Reproducer that previously segfaulted and now produces a valid image: echo dummy > kernel.bin echo dummy > ./mydt ./tools/mkimage -f auto -A arm -O linux -T kernel -C none \ -a 0x80000000 -e 0x80000000 -n test \ -d kernel.bin -b ./mydt out.itb Signed-off-by: Aristo Chen <[email protected]> Reviewed-by: Quentin Schulz <[email protected]>
2026-06-11bootm: bound-check OS index in bootm_os_get_boot_func()Aristo Chen
The boot_os[] table in bootm_os.c is a sparse array whose compile-time size is set by its largest designated initializer (IH_OS_ELF), giving it IH_OS_ELF + 1 entries. The accessor bootm_os_get_boot_func() returns boot_os[os] without any bound check, even though the caller in bootm_run_states() passes images->os.os straight through. That field is populated by image_get_os() from the raw 8-bit ih_os byte of a legacy uImage, and by fit_image_get_os() for a FIT, neither of which clamps the value against the table size. An attacker-supplied image whose OS field falls outside the populated range therefore drives an out-of-bounds read of boot_os[]. The caller only rejects a NULL return, so a non-NULL adjacent global is accepted as a valid handler and invoked through the indirect call in boot_selected_os(), turning an unsigned image with a malformed header into a jump through an attacker-influenced function pointer. FIT signature verification covers the os property and mitigates this path for signed images, but legacy bootm and unsigned FIT do not. Reject out-of-range indices in bootm_os_get_boot_func() so the existing NULL handling in bootm_run_states() reports an unsupported OS and declines to boot the image. Signed-off-by: Aristo Chen <[email protected]>
2026-06-11drivers: gpio: Fix dev_read_addr error checkFrancois Berder
dev_read_addr returns FDT_ADDR_T_NONE (-1) in case of error and not 0. Signed-off-by: Francois Berder <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2026-06-11board: ti: am62ax: tifs-rm-cfg/rm-cfg: Update DMA resource sharing for CPSWSiddharth Vadapalli
The CPSW3G instance of CPSW on AM62AX SoC provides Ethernet functionality. Currently, Ethernet is supported on Linux which runs on the A53 core on the SoC, by allocating all of the DMA resources associated with CPSW to A53_2. In order to enable use-cases where the Ethernet traffic is sent from or consumed by various CPU cores on the SoC simultaneously, while at the same time, maintaining backward compatibility with the existing use-case of A53 being the sole entity that exchanges traffic with CPSW via DMA, update the DMA resource sharing scheme on AM62AX SoC to the following: --------------- -------------- ------------- ---------------- Resource WKUP_R5 MCU_R5 A53_2 --------------- -------------- ------------- ---------------- TX Channels [8] => 4 (Primary) 4 (Primary) 8 (Secondary) TX Rings [64] => 32 (Primary) 32 (Primary) 64 (Secondary) RX Channels [1] => 1 (Primary) 0 1 (Secondary) RX Flows [16] => 6 (Primary) 10 (Primary) 16 (Secondary) In the absence of primary owners of resources (existing use-case where A53 owns all of the CPSW DMA resources), the secondary owner can claim all of the resources as its own. For shared use-cases, the resources that are not claimed by the primary are communicated to the secondary owner allowing it to claim them. This ensures that Linux on A53_2 can continue claiming all DMA resources associated with CPSW in the absence of primary owners, while at the same time providing users the flexibility to share CPSW DMA resources across various CPU cores listed above if needed. While Linux has been mentioned as the Operating System running on A53, there is no dependency between the Operating System running on A53 and its ability to claim the CPSW DMA resources listed above. Signed-off-by: Siddharth Vadapalli <[email protected]> Acked-by: Anshul Dalal <[email protected]>
2026-06-11arm: dts: add/fix I2C controllers for sc5xxJie Zhang
sc59x processors have 6 I2C controllers, but their devicetrees currently have only 3. The length of its register block should be 0x100 instead of 0x1000. All I2C nodes should be disabled in sc5xx.dtsi. They can be enabled in board devicetree files if they are used on the boards. Add missing I2C controllers and fix the above issues. Signed-off-by: Jie Zhang <[email protected]>
2026-06-11dm: core: use DT region size when mapping device addressesPeng Fan
Update dev_read_addr_*_ptr() and dev_remap_addr_*() helpers to use dev_read_addr_size_*() and pass the DT-provided region size to map_sysmem() / map_physmem() instead of 0. Ensure mappings are consistent with the size defined in the device tree and avoids implicit or unbounded mappings. When the DT does not provide a size, the behavior remains unchanged since size is initialized to 0. Signed-off-by: Peng Fan <[email protected]>
2026-06-11Revert "clk: enhance clk-gpio to also handle gated-fixed-clock"Tom Rini
I had missed the review comments from Jonas Karlman when applying this, it's not yet ready for inclusion. This reverts commit 4e249b94af928aca29972fc22ef2b5ed0016eab9. Signed-off-by: Tom Rini <[email protected]>
2026-06-11Merge patch series "allow control DTB to double as "FIT image""Tom Rini
Rasmus Villemoes <[email protected]> says: The commit message for patch 1 explains what it is I'd like to be able to do, but here's some more background: For a long time, we've embedded the boot script in the U-Boot binary by building a bootscript.itb, and using a .dtsi like / { config { bootscript = /incbin/("/path/to/bootscript.itb"); }; }; which in turn is mentioned in CONFIG_DEVICE_TREE_INCLUDES, that bootscript.itb FIT image has been embedded in U-Boot's control dtb. Running that was then a matter of doing fdt addr ${fdtcontroladdr} && fdt get addr bsaddr /config bootscript && source ${bsaddr} There are a couple of advantage of having the bootscript (and other script logic) embedded in the U-Boot binary. First, there's no need to figure out some separate partition to store the script in, and making sure that gets updated whenever the bootloader itself does. Second, one doesn't need to worry about verifying the script; whatever steps one needs to take to implement secure boot for U-Boot itself will by necessity also cover the control dtb (if nothing else then because that's where the public key for the kernel verification lives). And third, the boot script is automatically updated together with U-Boot itself; and if U-Boot is stored in an eMMC boot partition, that update is guaranteed to be atomic. Now with the stricter requirements of libfdt starting from v2026.04, the above command no longer worked, or only half the time, because the embedded FIT image may not land on an 8-byte aligned address. So that line had to be changed a little (line breaks added) fdt addr ${fdtcontroladdr} && fdt get addr bsaddr /config bootscript && fdt get size bssize /config bootscript && cp.b ${bsaddr} ${loadaddr} ${bssize} && source ${loadaddr} which is getting quite unwieldy. Then it struck me that one could perhaps simplify all of this quite a lot: Cut out the intermediate bootscript.itb, just create a .dtsi which directly puts a /images node inside the control dtb / { images { default = "bootscript"; bootscript { description = "Boot script"; data = /incbin/("/path/to/bootscript.sh"); type = "script"; compression = "none"; }; }; }; and treat the control dtb itself as a FIT image; so the command to put in $bootcmd becomes simply source ${fdtcontroladdr}:bootscript and embedding other pieces of callable scripts is quite trivial. And that almost works out-of-the-box, except for the fit_check_format() sanity check. Introduce a CONFIG_ knob that allows one to opt out of those sanity checks, for the special case of the address being checked being identical to gd->fdt_blob. Link: https://lore.kernel.org/r/[email protected]
2026-06-11test: hook up test of allowing control DTB to act as FIT imageRasmus Villemoes
Add a test demonstrating how one can embed various scripts in the control DTB. Verify that the source command can be used with ${fdtcontroladdr} by itself (invoking the default script), and with :<node-name> suffix. Check that the scripts themselves can invoke "sibling" scripts. Also verify that without CONTROL_DTB_AS_FIT set, the control DTB is not accepted by the source command. Reviewed-by: Simon Glass <[email protected]> Signed-off-by: Rasmus Villemoes <[email protected]>
2026-06-11doc: develop: add section on embedding scripts inside control DTBRasmus Villemoes
Add a section that explains how one can embed scripts in the control DTB and run them from the U-Boot shell, the advantages of doing that compared to using a separately built FIT image, and the configuration knob that must be turned on to allow this to work. Reviewed-by: Simon Glass <[email protected]> Signed-off-by: Rasmus Villemoes <[email protected]>
2026-06-11image-fit.c: introduce CONTROL_DTB_AS_FIT config knobRasmus Villemoes
Having scripts embedded one way or the other in the U-Boot binary means they are automatically verified/trusted by whatever mechanism verifies U-Boot. Writing those scripts in the built-in environment leads to backslatitis and missing or wrong quoting and is generally not very readable or maintainable. Maintaining scripts in external files allows one to have both syntax highlighting and to some extent apply shellcheck on it (though U-Boot's shell is of course not quite POSIX sh, so some '#shellcheck disable' directives are needed). Getting those into the U-Boot binary is then a matter of having a suitable .dtsi file such as / { images { default = "boot"; boot { description = "Bootscript"; data = /incbin/("boot.sh"); type = "script"; compression = "none"; }; factory-reset { description = "Script for performing factory reset"; data = /incbin/("factory-reset.sh"); type = "script"; compression = "none"; }; }; }; and making that part of CONFIG_DEVICE_TREE_INCLUDES, so that U-Boot's control DTB effectively doubles as a FIT image containing a few "script" entries. At run-time, one's default bootcommand can then simply be source ${fdtcontroladdr}:boot Except of course that the control DTB is in fact not quite a FIT image. The lack of timestamp and description properties could potentially be worked around (by just adding those via that same .dtsi), but the no-@ check is not possible to get around. But since the control dtb is by definition trusted, we can make an exception for that particular address, if the new CONTROL_DTB_AS_FIT config option is enabled. One can of course build an ordinary FIT image with those scripts. However, that requires extra steps in the boot command for loading that script from storage, requires one to use "configurations" for pointing at a single script to run, and signing the FIT image using the same key used for verifying the kernel. Moreover, in certain situations, such as bootstrapping/production, there is no place to load that FIT image from, and it is much simpler to just have the necessary scripts be part of the U-Boot image itself. Reviewed-by: Simon Glass <[email protected]> Signed-off-by: Rasmus Villemoes <[email protected]>
2026-06-11Merge tag 'mediatek-for-next-2026-06-10' of ↵Tom Rini
https://source.denx.de/u-boot/custodians/u-boot-mediatek into next * Network support for Genio 520/720. * Order drivers/net Makefile and Kconfig. * Refactor some common Airoha net/phy functions to a new common file. * Add new AN8801 chip support. * Add board-specific devicetree and config. * Use scnprintf() instead of snprintf() in mtk pinctrl. * Align configs for Genio EVK boards.
2026-06-11Merge patch series "This series introduces initial U-Boot support for ↵Tom Rini
mach-axiado AX3005 SCM3005 board, a quad-core ARM Cortex-A53 (ARMv8/ARM64) platform." Siu Ming Tong <[email protected]> says: Patch 1 adds the device tree files: an SoC-level DTSI describing GIC-v3, Cadence/Zynq UART, a fixed reference clock, and spin-table secondary CPU boot, plus a board-level DTS setting the console to uart3 at 115200 baud with 2 GB DRAM at 0x80000000. Patch 2 adds mach-axiado to support Axiado SoC-based boards, Kconfig plumbing (AXIADO_AX3005 and TARGET_SCM3005), defconfig, board source with ft_board_setup() and a MAINTAINERS entry. Tested on SCM3005 EVK hardware Link: https://lore.kernel.org/r/[email protected]
2026-06-11MAINTAINERS: Replace ASpeed with N:Marek Vasut
Use N: to match on all aspeed/ast2500 files, drop the large list of entries which represent the same set of relevant files and miss a few in the process. Signed-off-by: Marek Vasut <[email protected]> Reviewed-by: Quentin Schulz <[email protected]>
2026-06-10grm: axiado: Add AX3005 based SCM3005 board supportSiu Ming Tong
Introduce mach-axiado to support Axiado SoC-based boards. This adds the platform Kconfig and build infrastructure, along with initial SCM3005 board support using the AX3005 SoC. Introduces AXIADO_AX3005, which selects ARM64, driver model, GIC-v3, and Zynq UART. TARGET_SCM3005 selects ARCH_AXIADO, allowing future SoC variants to share the platform configuration. Secondary cores use spin-table boot. ft_board_setup() corrects the cpu-release-addr in the FDT, which arch_fixup_fdt() overwrites with the post-relocation address. Add U-Boot board support for the Axiado AX3005 based targets, a quad-core ARM Cortex-A53 (ARMv8) platform. Tested-by: Siu Ming Tong <[email protected]> Signed-off-by: Karthikeyan Mitran <[email protected]> Signed-off-by: Siu Ming Tong <[email protected]>
2026-06-10arm64: dts: axiado: Add AX3005 SCM3005 device treeSiu Ming Tong
Add device tree source files for the Axiado AX3005 SCM3005 board. The AX3005 is a quad-core 64-bit ARMv8 Cortex-A53 SoC. The DTSI describes the SoC-level nodes: GIC-v3 interrupt controller, Cadence/Zynq UART, fixed reference clock, and spin-table secondary CPU boot. A /memreserve/ directive protects the spin-table release address at 0x80002fa0 from being overwritten during boot. The SCM3005 DTS sets the console to uart3 at 115200 baud and declares 2 GB of DRAM starting at 0x80000000. Tested-by: Siu Ming Tong <[email protected]> Signed-off-by: Karthikeyan Mitran <[email protected]> Signed-off-by: Siu Ming Tong <[email protected]>
2026-06-10clk: enhance clk-gpio to also handle gated-fixed-clockTorsten Duwe
Devicetree commit a198185b9b5 introduced a new type of clock, "gated-fixed-clock", for which Das U-Boot does not have a driver yet. The required code is similar to gpio-gate-clock, and can be added using little extra text space. Use this code e.g. to boot a Rock5 ITX from NVMe Signed-off-by: Torsten Duwe <[email protected]>
2026-06-10serial: lpuart: Fix RX FIFO Enable bitmaskEmanuele Ghidoli
The Receive FIFO Enable (RXFE) field in the LPUART FIFO register is bit 3 on all supported architectures. The define has been wrong since it was introduced: for non-i.MX8/i.MXRT it set bit 6, which on LS102xA is read-only-as-zero, so the bug went unnoticed. NXP confirmed bit 3 is correct everywhere, so drop the ARCH-based selection. Link: https://github.com/nxp-imx/uboot-imx/commit/9498bcc514737269bb0ca436f775460741ab8199 Link: https://lore.kernel.org/u-boot/[email protected]/ Fixes: 6209e14cb026 ("serial: lpuart: add 32-bit registers lpuart support") Signed-off-by: Emanuele Ghidoli <[email protected]> Reviewed-by: Francesco Dolcini <[email protected]> Reviewed-by: Sébastien Szymanski <[email protected]>
2026-06-10treewide: prefer __func__ over __FUNCTION__ and __PRETTY_FUNCTION__Aristo Chen
__FUNCTION__ and __PRETTY_FUNCTION__ are gcc extensions that predate the C99 __func__ identifier. scripts/checkpatch.pl emits a warning for any new use of __FUNCTION__ and recommends __func__ instead. In C (unlike C++) __PRETTY_FUNCTION__ is identical to __func__ because C function names do not carry signature information, so the distinction has no behavioural effect here. The majority of the tree already uses __func__, but a handful of older files in arch/, board/, boot/, drivers/, examples/ and include/ still carry the gcc spellings (55 occurrences of __FUNCTION__ across 19 files plus one __PRETTY_FUNCTION__ in drivers/usb/musb-new/omap2430.c). Convert them all to the C99 form so the tree is consistent and new patches in these areas do not have to follow an outdated local style. Ten "Unnecessary ftrace-like logging - prefer using ftrace" warnings remain on the printf("%s\n", __func__) and dbg("%s\n", __func__) function-entry traces in drivers/net/rtl8169.c (behind DEBUG_RTL8169* preprocessor guards) and drivers/usb/host/ohci-hcd.c. checkpatch matches the literal "%s\n", __func__ shape regardless of the wrapper, so silencing those warnings would require changing the debug message text or removing the traces entirely. Signed-off-by: Aristo Chen <[email protected]> Reviewed-by: Tom Rini <[email protected]>
2026-06-10bootmenu: fix incorrect menu quitting logicWeijie Gao
The last entry of bootmenu is always set for exiting the menu, and its command is set to an empty string. When user selects to quit the menu, bootmenu will try to run this empty command. However run_command() with empty cmd string will return failure, and the return value will be overridden to BOOTMENU_RET_FAIL, not the expected BOOTMENU_RET_QUIT. This patch adds a default success value to the cmd_ret variable, and makes sure run_command() is called only when the menu command is not empty. Reviewed-by: Simon Glass <[email protected]> Signed-off-by: Weijie Gao <[email protected]>
2026-06-10configs/mt8365: enable bootstd, FIT and DT overlaysDavid Lechner
Enable options needed by the default board support package for Genio 350 EVK board that uses this config. CONFIG_CMD_PART is selected by the new options, so is removed here since it is now redundant. Reviewed-by: Julien Stephan <[email protected]> Tested-by: Julien Stephan <[email protected]> Reviewed-by: Macpaul Lin <[email protected]> Link: https://patch.msgid.link/[email protected] Signed-off-by: David Lechner <[email protected]>
2026-06-10configs/mt8195: enable bootstd, FIT and DT overlaysDavid Lechner
Enable options needed by the default board support package for Genio 1200 EVK board that uses this config. CONFIG_CMD_PART is selected by the new options, so is removed here since it is now redundant. Reviewed-by: Julien Stephan <[email protected]> Tested-by: Julien Stephan <[email protected]> Reviewed-by: Macpaul Lin <[email protected]> Link: https://patch.msgid.link/[email protected] Signed-off-by: David Lechner <[email protected]>
2026-06-10configs/mt8188: enable bootstd, FIT and DT overlaysDavid Lechner
Enable options needed by the default board support package for Genio 510/700 EVK boards that use this config. CONFIG_CMD_PART is selected by the new options, so is removed here since it is now redundant. Reviewed-by: Julien Stephan <[email protected]> Tested-by: Julien Stephan <[email protected]> Link: https://patch.msgid.link/[email protected] Signed-off-by: David Lechner <[email protected]>
2026-06-10pinctrl: mediatek: use scnprintf() instead of snprintf()David Lechner
Replace snprintf() with scnprintf() in the MediaTek pinctrl driver. snprintf() returns the number of characters that _would_ have been written if the buffer were large enough, while scnprintf() returns the number of characters actually written to the buffer. Since we use the return value to advance the buffer pointer, we need to use scnprintf() to have the correct pointer arithmetic. Fixes: 76da7482cf39 ("pinctrl: mediatek: print bias info along with pinmux") Reviewed-by: Julien Stephan <[email protected]> Link: https://patch.msgid.link/20260506-mtk-pinctrl-fix-scnprintf-v1-1-56b99d5809db@baylibre.com Signed-off-by: David Lechner <[email protected]>
2026-06-10configs: mt8189: Enable ethernet supportJulien Stephan
Enable configs needed to support ethernet on MT8189-based boards. Signed-off-by: Julien Stephan <[email protected]> Reviewed-by: Macpaul Lin <[email protected]> Link: https://patch.msgid.link/20260429-add-ethernet-support-for-genio-520-720-v4-9-be54e17239b7@baylibre.com Signed-off-by: David Lechner <[email protected]>
2026-06-10arm: dts: mt8189: Add ethernet support for Genio 520/720 boardsJulien Stephan
Add Ethernet support for MediaTek MT8189-based Genio 520 and Genio 720 development boards. The ethernet interface is disabled by default in the SoC dtsi and enabled in the board-specific configuration with proper PHY settings. The ethernet related nodes are not part of current dt submission on the kernel [1] and come from downstream u-boot. When switching to OF_UPSTREAM we should add them back. [1]: https://lore.kernel.org/all/20251203-add-mediatek-genio-520-720-evk-v1-3-df794b2a30ae@collabora.com/ Signed-off-by: Julien Stephan <[email protected]> Reviewed-by: Macpaul Lin <[email protected]> Link: https://patch.msgid.link/20260429-add-ethernet-support-for-genio-520-720-v4-8-be54e17239b7@baylibre.com Signed-off-by: David Lechner <[email protected]>
2026-06-10net: dwc_eth_qos: Add mediatek supportJulien Stephan
Synopsys DWC Ethernet QOS device support for MediaTek SoCs. in particular this initial commit adds support for Genio 520/720 and Genio 510/700 EVKs Signed-off-by: fanyi zhang <[email protected]> Signed-off-by: Julien Stephan <[email protected]> Reviewed-by: Macpaul Lin <[email protected]> Link: https://patch.msgid.link/20260429-add-ethernet-support-for-genio-520-720-v4-7-be54e17239b7@baylibre.com Signed-off-by: David Lechner <[email protected]>
2026-06-10net: phy: Add airoha AN8801 ethernet phy driverJulien Stephan
Add Airoha AN8801 Ethernet PHY driver (air_an8801.c). Implement CL22/CL45 MDIO access, LED control, and RGMII delay configuration. Provide probe, initialization, LED setup, and status handling. Expose DTS properties for clock delays. Register driver with PHY framework and trigger on startup. Signed-off-by: Yanqing Wang <[email protected]> Signed-off-by: Julien Stephan <[email protected]> Reviewed-by: Kevin-KW Huang <[email protected]> Link: https://patch.msgid.link/20260429-add-ethernet-support-for-genio-520-720-v4-6-be54e17239b7@baylibre.com Signed-off-by: David Lechner <[email protected]>
2026-06-10net: phy: air_phy_lib: Factorize BuckPBus registerJulien Stephan
In preparation of Airoha AN8801R PHY support, move the BuckPBus register accessors and definitions, present in air_en8811h driver, into the Airoha PHY shared code (air_phy_lib), so they will be usable by the new driver without duplicating them. Also, update air_en8811h driver to use the new function names. Adapted from [1]. [1]: https://lore.kernel.org/all/20260326-add-airoha-an8801-support-v2-2-1a42d6b6050f@collabora.com/ Signed-off-by: Julien Stephan <[email protected]> Link: https://patch.msgid.link/20260429-add-ethernet-support-for-genio-520-720-v4-5-be54e17239b7@baylibre.com Signed-off-by: David Lechner <[email protected]>
2026-06-10net: Fix alphabetical ordering in drivers/net/KconfigJulien Stephan
Reorder entries under DWC_ETH_QOS to maintain alphabetical sorting by CONFIG_ names: - Move CONFIG_DWC_ETH_QOS_QCOM before CONFIG_DWC_ETH_QOS_ROCKCHIP - Move CONFIG_DWC_ETH_QOS_STARFIVE after CONFIG_DWC_ETH_QOS_ROCKCHIP Signed-off-by: Julien Stephan <[email protected]> Reviewed-by: Quentin Schulz <[email protected]> Link: https://patch.msgid.link/20260429-add-ethernet-support-for-genio-520-720-v4-4-be54e17239b7@baylibre.com Signed-off-by: David Lechner <[email protected]>
2026-06-10net: Fix alphabetical ordering in drivers/net/MakefileJulien Stephan
Reorder entries to maintain alphabetical sorting by CONFIG_ names: - Move CONFIG_DWC_ETH_QOS_QCOM before CONFIG_DWC_ETH_QOS_ROCKCHIP - Move CONFIG_DWC_ETH_XGMAC after CONFIG_DWC_ETH_QOS_STM32 - Move CONFIG_MDIO_GPIO_BITBANG before CONFIG_MDIO_IPQ4019 - Move airoha directory at the end This ensures consistent alphabetical ordering throughout the Makefile. Signed-off-by: Julien Stephan <[email protected]> Reviewed-by: Quentin Schulz <[email protected]> Link: https://patch.msgid.link/20260429-add-ethernet-support-for-genio-520-720-v4-3-be54e17239b7@baylibre.com Signed-off-by: David Lechner <[email protected]>
2026-06-10MAINTAINERS: add maintainer entry for air_en8811 driverJulien Stephan
Add a new entry for drivers/net/phy/airoha/air_en8811.c driver. Signed-off-by: Julien Stephan <[email protected]> Reviewed-by: Tommy.Shih <[email protected]> Reviewed-by: Quentin Schulz <[email protected]> Link: https://patch.msgid.link/20260429-add-ethernet-support-for-genio-520-720-v4-2-be54e17239b7@baylibre.com Signed-off-by: David Lechner <[email protected]>
2026-06-10MAINTAINERS: remove trailing colons from section titlesJulien Stephan
For consistency, remove trailing colons for the three following sections: ACPI, ALIST, and INTERCONNECT. Signed-off-by: Julien Stephan <[email protected]> Link: https://patch.msgid.link/20260429-add-ethernet-support-for-genio-520-720-v4-1-be54e17239b7@baylibre.com Signed-off-by: David Lechner <[email protected]>
2026-06-10Merge tag 'u-boot-rockchip-20260610' of ↵Tom Rini
https://source.denx.de/u-boot/custodians/u-boot-rockchip CI: https://source.denx.de/u-boot/custodians/u-boot-rockchip/-/pipelines/30398 Please pull the updates for rockchip platform: - New Board support: rk3588 FriendlyElec NanoPi R76S - UFS boot from SPL for rk3576 (NanoPi M5, ROCK 4D) - Clock support for RK3576 GMAC 25MHz output and RK3528/RK3576 USB3 OTG - Switch rk3128/rk3229 boards to upstream devicetree - MAINTAINERS update for upstream devicetree references - rk3588-rock-5b: Remove USB-C controller from u-boot.dtsi
2026-06-10Merge branch 'qcom-main' of ↵Tom Rini
https://source.denx.de/u-boot/custodians/u-boot-snapdragon CI: https://source.denx.de/u-boot/custodians/u-boot-snapdragon/-/pipelines/30394 - Define memory map for lemans-evk (pending SMEM) - Fix CONFIG_SYS_INIT_SP_BSS_OFFSET in db410c chainloaded fragment - Fix the "dump bootargs" command in the qcom-phone boot menu - Fix a bug in the rpmh-regulator driver where the regulator mode may not be set during enable. - Enable watchdog autostart for Dragonwing boards - Fix serial console init on ipq5424-rdp466