summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2025-06-20env: Rename SYS_REDUNDAND_ENVIRONMENT to ENV_REDUNDANTMarek Vasut
Rename the variable and add ENV_ prefix, so that all configuration options which are related to environment would have an CONFIG_ENV_ prefix. No functional change. Signed-off-by: Marek Vasut <[email protected]>
2025-06-20env: Rename OVERWRITE_ETHADDR_ONCE to ENV_OVERWRITE_ETHADDR_ONCEMarek Vasut
Rename the variable and add ENV_ prefix, so that all configuration options which are related to environment would have an CONFIG_ENV_ prefix. No functional change. Reviewed-by: Quentin Schulz <[email protected]> Reviewed-by: Tom Rini <[email protected]> Signed-off-by: Marek Vasut <[email protected]>
2025-06-20Merge patch series "bootstd: Fix efi_mgr usage in bootmeths env var"Tom Rini
Sam Protsenko <[email protected]> says: Defining the 'bootmeths' environment variable with efi_mgr causes NULL pointer dereference when running 'bootflow scan' on the E850-96 board. This patch series fixes that, and cleans up the surrounding code a little while at it. Link: https://lore.kernel.org/r/[email protected]
2025-06-20bootstd: Fix incorrect struct name in bootmeth_setup_iter_order()Sam Protsenko
There is no such thing as struct bootmeth, it's probably a typo. This issue doesn't affect the execution as it's a pointer, and pointer sizes are the same for all data types. But it can be confusing, so make it struct udevice, as it should be. Fixes: a950d31abe98 ("bootstd: Add the bootmeth uclass and helpers") Signed-off-by: Sam Protsenko <[email protected]>
2025-06-20bootstd: Probe bootmeth devices for bootmeths env varSam Protsenko
Specifying efi_mgr in 'bootmeths' environment variable leads to NULL pointer dereference when 'bootflow scan' is executed, with call trace like this: priv->fake_dev // NULL pointer dereference .read_bootflow = efi_mgr_read_bootflow() bootmeth_get_bootflow() bootflow_check() bootflow_scan_first() do_bootflow_scan() 'bootflow scan -l' That happens because in case when 'bootmeths' env var is defined the bootmeth_efi_mgr driver is not probed, and the memory for its private data isn't allocated by .priv_auto. In case when 'bootmeths' env var is not defined, the std->bootmeth_count is 0, and the execution flow in bootmeth_setup_iter_order() takes "no ordering" path, which in turn runs uclass_get_device_by_seq() -> ... -> device_probe(), so issue isn't present there. But when 'bootmeths' is defined and contains efi_mgr, the std->bootmeth_count > 0, so bootmeth_setup_iter_order() follows the "we have an ordering" path, where devices are not probed. In other words: 'bootmeths' defined 'bootmeths' not defined -------------------------------------------------------- priv == NULL priv != NULL ^ ^ | device_alloc_priv() no probe device_of_to_plat() ^ device_probe() | uclass_get_device_tail() dev = order[i] uclass_get_device_by_seq() ^ ^ | have an ordering | no ordering +----------------+---------------+ | bootmeth_setup_iter_order() bootflow_scan_first() do_bootflow_scan() Add an explicit device_probe() call in "we have an ordering" case to fix the issue. Fixes: c627cfc14c08 ("bootstd: Allow scanning for global bootmeths separately") Signed-off-by: Sam Protsenko <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2025-06-20bootstd: Fix memleak on errors in bootmeth_setup_iter_order()Sam Protsenko
Free memory allocated for 'order' (array of bootmeths) on error paths in bootmeth_setup_iter_order() function. Fixes: c627cfc14c08 ("bootstd: Allow scanning for global bootmeths separately") Fixes: 10d16faa436c ("bootstd: Detect empty bootmeth") Signed-off-by: Sam Protsenko <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2025-06-20Merge tag 'u-boot-at91-2025.10-a' of ↵Tom Rini
https://source.denx.de/u-boot/custodians/u-boot-at91 into next First set of u-boot-at91 features for the 2025.10 cycle: This feature set includes the addition of new sam9x7 SoC and a new board named sam9x7-curiosity. There is also new support for sam9x60 compatible at91 watchdog.
2025-06-19dtc: Add Kconfig option to pad device tree blobEric Schikschneit
This will allow arch(s) that use device tree blobs to pad the end of the device tree so they can be modified by board files at run time. This will help prevent errors such as FDT_ERR_NOSPACE from occurring. Signed-off-by: Eric Schikschneit <[email protected]> [trini: Change default order so that X86 && EFI_APP works correctly]
2025-06-19Merge patch series "common/spl fixes"Tom Rini
This series from Mikhail Kshevetskiy <[email protected]> fixes some regressions related to handling of FIT images with broken contents that was introduced in this merge window. Link: https://lore.kernel.org/r/[email protected]
2025-06-19common/spl: improve error handling in spl_fitMikhail Kshevetskiy
This fix a possible NULL pointer dereference. There is also a risk of memory leaking within the same portion of code. The leak will happen if loaded image is bad or damaged. In this case u-boot-spl will try booting from the other available media. Unfortunately resources allocated for previous boot media will NOT be freed. We can't fix that issue as the memory allocation mechanism used here is unknown. It can be different kinds of malloc() or something else. To somewhat reduce memory consumption, one can try to reuse previously allocated memory as it's done in board_spl_fit_buffer_addr() from test/image/spl_load.c. The corresponding comment was put to the code as well. Signed-off-by: Mikhail Kshevetskiy <[email protected]> Reviewed-by: Anshul Dalal <[email protected]>
2025-06-19common/spl: handle properly images with bad checksumMikhail Kshevetskiy
load_simple_fit() returns -EPERM for the images with broken signatures. Unfortunately this may conflict with image loaging selection on the base of boot phase. See commit 873112db9ce68c38984ff25808dde726f8dd5573 ("spl: Support selecting images based on phase in simple FIT"). Thus loading of configurations { uboot { description = "u-boot"; firmware = "atf"; loadables = "atf", "tee", "uboot"; }; }; with damaged "tee" image may finish without errors. This may results in board bricking. This patch fixes commit 873112db9ce68c38984ff25808dde726f8dd5573 ("spl: Support selecting images based on phase in simple FIT") by replacing EPERM with EBADSLT places where it should be done. Signed-off-by: Mikhail Kshevetskiy <[email protected]>
2025-06-19common/spl: fix potential out of buffer access in spl_fit_get_image_name ↵Mikhail Kshevetskiy
function The current code have two issues: 1) ineffective NULL pointer check str = strchr(str, '\0') + 1 if (!str || ... The str here will never be NULL (because we add 1 to result of strchr()) 2) strchr() may go out of the buffer for the special forms of name variable. It's better use memchr() function here. According to the code the property is a sequence of C-string like shown below: 'h', 'e', 'l', 'l', 'o', '\0', 'w', 'o', 'r', 'l', 'd', '\0', '!', '\0' index is the string number we are interested, so index = 0 => "hello", index = 1 => "world", index = 2 => "!" The issue will arrise if last string for some reason have no terminating '\0' character. This can happen for damaged or specially crafted dtb. Signed-off-by: Mikhail Kshevetskiy <[email protected]> Reviewed-by: Tom Rini <[email protected]>
2025-06-19arm/airoha: reset_cpu() does not take any paramsMikhail Kshevetskiy
According to include/sysreset.h the reset_cpu() function does not take any args Signed-off-by: Mikhail Kshevetskiy <[email protected]> Reviewed-by: Tom Rini <[email protected]>
2025-06-19Merge branch 'master' of https://source.denx.de/u-boot/custodians/u-boot-shTom Rini
- Move early SPL stack on R-Car V4H boards
2025-06-19Merge branch 'next' of https://source.denx.de/u-boot/custodians/u-boot-sh ↵Tom Rini
into next - Assorted cleanups and R-Car Gen4 watchdog driver
2025-06-19configs: sam9x75_curiosity: Add initial mmc default configManikandan Muralidharan
Add default configuration for sd-card to boot the linux kernel. Signed-off-by: Manikandan Muralidharan <[email protected]> Reviewed-by: Eugen Hristev <[email protected]>
2025-06-19board: sam9x75_curiosity: Add support for sam9x75 curiosityManikandan Muralidharan
Add board specific functions for sam9x75 curiosity Signed-off-by: Manikandan Muralidharan <[email protected]> Reviewed-by: Eugen Hristev <[email protected]>
2025-06-19ARM: dts: at91: sam9x75_curiosity: add tweaks for sam9x75 curiosity boardManikandan Muralidharan
Since the SoC and board DT are already available in dts/upstream, add the difference from upstream DTS to at91-sam9x75_curiosity-u-boot.dtsi Signed-off-by: Manikandan Muralidharan <[email protected]> Reviewed-by: Eugen Hristev <[email protected]>
2025-06-19ARM: at91: Add sam9x7 socVarshini Rajendran
Add new Microchip sam9x7 SoC based on an ARM926. Signed-off-by: Varshini Rajendran <[email protected]> Signed-off-by: Balamanikandan Gunasundar <[email protected]> Signed-off-by: Manikandan Muralidharan <[email protected]>
2025-06-19clk: at91: sam9x7: add pmc driver for sam9x7 SoC familyVarshini Rajendran
Add PMC driver support for sam9x7 SoC family Signed-off-by: Varshini Rajendran <[email protected]> [[email protected]: Add peripheral clock id for pmecc] Signed-off-by: Balamanikandan Gunasundar <[email protected]>
2025-06-19clk: at91: clk-main: drop parent_name check when registering main_rc oscillatorManikandan Muralidharan
The clk_register function logs an error if parent_name is missing from the Device Tree.On the SAM9X7, the main_rc node is omitted to stay aligned with the Linux Device Tree.Remove the parent_name check in at91_clk_main_rc() to allow it to pass NULL when the parent is not specified. Signed-off-by: Manikandan Muralidharan <[email protected]>
2025-06-19clk: at91: sam9x60-pll: add support for HW PLL freq dividersVarshini Rajendran
Add support for hardware dividers for PLL IDs.In sam9x7 SoC, PLL_ID_PLLA and PLL_ID_PLLA_DIV2 has /2 hardware dividers each. fcorepllack -----> HW Div = 2 -+--> fpllack | +--> HW Div = 2 ---> fplladiv2ck Signed-off-by: Varshini Rajendran <[email protected]>
2025-06-19clk: at91: sam9x60-pll: add support for core clock frequency inputsVarshini Rajendran
Add support for different core clock frequency input ranges for different PLL IDs in the PLL driver and align sam9x60, sama7g5 SOC platforms. Signed-off-by: Varshini Rajendran <[email protected]>
2025-06-19dt-bindings: drop at91.h from clock includesManikandan Muralidharan
Remove clock/at91.h file as it is subset of dts/upstream/include/dt-bindings/clock/at91.h. The constants defined in this header are being used only in dts Signed-off-by: Manikandan Muralidharan <[email protected]>
2025-06-19board: sama5d27_wlsom1_ek: Get RAM size and base from devicetreeFabio Estevam
Instead of using defines for the RAM size and base address, retrieve these information from the devicetree. This aligns with the sama5d27_som1_ek board in commit 73c1589f025d9 ("board: sama5d27_som1_ek: Get dram size and base from device tree"). While at it, remove a spurious '/* SPL */' comment. Signed-off-by: Fabio Estevam <[email protected]>
2025-06-19ARM: dts: at91: sam9x60-curiosity: Enable watchdog nodeZixun LI
Enable watchdog node on SAM9X60-Curiosity board. A default timeout of 16s is added which is the maximum supported value, also matching Linux driver's behavior. Signed-off-by: Zixun LI <[email protected]> Reviewed-by: Eugen Hristev <[email protected]> Reviewed-by: Stefan Roese <[email protected]>
2025-06-19ARM: dts: sam9x60: Add watchdog DT nodeZixun LI
Add the watchdog timer node for the sam9x60 SoC's. Signed-off-by: Zixun LI <[email protected]> Reviewed-by: Eugen Hristev <[email protected]> Reviewed-by: Stefan Roese <[email protected]>
2025-06-19watchdog: at91sam9_wdt: Add SAM9X60 supportZixun LI
SAM9X60 has a slightly different watchdog implementation: - Timer value moved into a new register WLR - Some MR register fields have their position changed This patch add SAM9X60 support, also adds a compatible for SAMA5D4 which is the same as existing SAM9260. Signed-off-by: Zixun LI <[email protected]> Reviewed-by: Stefan Roese <[email protected]>
2025-06-19watchdog: at91sam9_wdt: Rename priv to wdtZixun LI
"wdt" is a better name for watchdog rather than generic "priv". Signed-off-by: Zixun LI <[email protected]> Reviewed-by: Stefan Roese <[email protected]>
2025-06-19arm: at91: wdt: Rename regval in priv data to mrZixun LI
Use the name "mr" since we are referring to timer mode register. Signed-off-by: Zixun LI <[email protected]> Reviewed-by: Stefan Roese <[email protected]>
2025-06-19arm: at91: wdt: Remove at91_wdt structZixun LI
at91_wdt struct is only used by spl, remove this reference and the struct itself. Signed-off-by: Zixun LI <[email protected]> Reviewed-by: Stefan Roese <[email protected]>
2025-06-18Merge patch series "Print version of the DM firmware"Tom Rini
Moteen Shah <[email protected]> says: This patch series adds the functionality to print the DM firmware version being used. Before requesting TISCI for the DM version we first check if the DM split mode capability exists, if yes, we proceed onto making the call to TISCI for retrieving the version information. DM split mode capability indicates that the DM is a separate binary altogether and has its own versioning information similar to TIFS. Boot Logs: https://gist.github.com/Jamm02/37864f605445944a0c0caf426e0aba50 Link: https://software-dl.ti.com/tisci/esd/latest/2_tisci_msgs/general/core.html#tisci-msg-query-fw-caps Link: https://lore.kernel.org/r/[email protected]
2025-06-18Merge patch series "Add IPC support on MCU R5F cluster in Split Mode"Tom Rini
Beleswar Padhi <[email protected]> says: This series adds remoteproc support on MCU R5F in Split mode. During boot, ROM can bring up the boot R5F cores in either lockstep or split mode based on X509 certificate flags. If booted in lockstep mode, the MCU R5F cores will run first the R5 SPL, and then once A72 comes up, will run the Device Manager (DM) firmware. But if booted in split mode, core 0 will run DM firmware and second core sits in WFI. Shut it down so that other firmwares can later be loaded on them. The shutdown of MCU R5 Core 1 is invoked at A72 SPL init, as by that time Device Manager (DM) is up and running on R5 Core 0. The shutdown of MCU R5 Core 1 is handled by Device Manager itself. Test logs: https://gist.github.com/3V3RYONE/ee8e3cb9aa5f4c5c00b059b9c14bfa98 Link: https://lore.kernel.org/r/[email protected]
2025-06-18Merge patch series "bootstd: New bootmeth for RAUC A/B systems"Tom Rini
Martin Schwan <[email protected]> says: This series implements a new bootmeth for RAUC A/B systems. RAUC (Robust Auto Update Controller) is a lightweight update client, providing "Safe and Secure OTA Updates for Embedded Linux". See the following links for more information about RAUC: https://rauc.io/ https://rauc.readthedocs.io/en/latest/ PHYTEC uses RAUC in its Yocto based distribution "Ampliphy" as the default way of updating embedded devices based on PHYTEC hardware. So far, the logic selecting the correct partitions and files to boot was being implemented in the U-Boot environment. While this is a straightforward way to do it, adding and supporting new platforms became somewhat tedious and is platform-specific. The introduction of U-Boot's "Standard Boot" provided a convincing alternative, promising a simpler and more portable way of booting, even for RAUC systems. This led me to implement a new bootmeth supporting RAUC A/B systems. Note, that this new bootmeth is not proprietary to PHYTEC products and is designed to work on other hardware with a RAUC A/B system, too. The bootmeth currently only supports symmetric A/B partitioning layouts. E.g. A/rescue is not (yet) supported. The partition indexes and default slot tries can be specified via configuration options. For now, the bootmeth_rauc uses a similar approach for loading the Kernel and device tree as the bootmeth_script, in that it requires a FIT containing a U-Boot script loading the desired distro. It could be possible to support booting without a script and load the Kernel and DT directly with this bootmeth, but I found the script method to be very flexible for now, in letting the distro decide what to load. The bootmeth_rauc was tested on a phyBOARD-Pollux i.MX8M Plus [1] with BSP-Yocto-Ampliphy-i.MX8MP-PD24.1.2 [2]. Supported boot devices are currently only MMC devices, but it should be possible to add SPI flashes in the future. To test this patch stack with PHYTEC's phyBOARD-Pollux i.MX8M Plus board, you need to adjust the boot files to include the boot.scr.uimg containing the distro's boot script and set "optargs" to "${raucargs}" in it. Also disable any legacyboot in the U-Boot environment and simply boot with Standard Boot: bootmeth order rauc bootflow scan -lb [1]: https://www.phytec.eu/en/produkte/single-board-computer/phyboard-pollux/ [2]: https://download.phytec.de/Software/Linux/BSP-Yocto-i.MX8MP/BSP-Yocto-Ampliphy-i.MX8MP-PD24.1.2/ Link: https://lore.kernel.org/r/[email protected] [trini: Don't enable by default]
2025-06-18arm: mach-k3: Print version of DM firmware during boot processMoteen Shah
Print DM firmware's version in the boot up process of K3 devices, having DM capability(DM as a separate binary). Signed-off-by: Moteen Shah <[email protected]>
2025-06-18arm: mach-k3: Add a function for printing DM versionMoteen Shah
Add a function to print version of the DM firmware in use. The function queries the firmware capabilities first and if DM split mode bit is set, sends a request to TISCI for retrieving the version information. The DM split mode bit indicates that DM is a separate binary altogether and hence it will have its own versioning. Signed-off-by: Moteen Shah <[email protected]> Reviewed-by: Neha Malcom Francis <[email protected]>
2025-06-18firmware: ti_sci.c: Add a function to request DM metadata using ti_sci* callsMoteen Shah
Add a function to retrieve information of the DM firmware's ABI versions, RM/PM HAL, firmware version, etc using TI_SCI protocol. Signed-off-by: Moteen Shah <[email protected]> Reviewed-by: Neha Malcom Francis <[email protected]> Reviewed-by: Dhruva Gole <[email protected]>
2025-06-18firmware: ti_sci.c: Add a function to query DM firmware's capabilityMoteen Shah
Add a new function to query the capabilities of the DM firmware, using TI SCI protocol to retrieve a 64-bit firmware capability, where each bit represents a specific capability supported by the firmware. Signed-off-by: Moteen Shah <[email protected]> Reviewed-by: Neha Malcom Francis <[email protected]> Reviewed-by: Dhruva Gole <[email protected]>
2025-06-18ti_sci_* : Add capability to access DM firmware's metadataMoteen Shah
Introduce response and request structs to receive and request information regarding DM version, etc from TI SCI. Signed-off-by: Moteen Shah <[email protected]> Reviewed-by: Neha Malcom Francis <[email protected]> Reviewed-by: Dhruva Gole <[email protected]>
2025-06-18ti_sci_*: Add utility to access tisci firmware and SOC capabilityMoteen Shah
Introduce response and request structs for receiving information regarding FW/SOC capability from DM. The received capability can further be used to call certain API's based on the feature supoorted by the DM firmware. Signed-off-by: Moteen Shah <[email protected]> Reviewed-by: Neha Malcom Francis <[email protected]> Reviewed-by: Dhruva Gole <[email protected]>
2025-06-18board: ti: j7*: Add firmware for MCU R5 core1Beleswar Padhi
Link the default firmware in the environment variable for MCU R5 core1 for all J7 platforms. Signed-off-by: Beleswar Padhi <[email protected]> Reviewed-by: Neha Malcom Francis <[email protected]>
2025-06-18remoteproc: k3-r5: Acquire processor control before reset opsBeleswar Padhi
Acquire processor control before doing core reset operations in probe routine. Release the control afterwards, so that it can be acquired during core loading operations. Signed-off-by: Beleswar Padhi <[email protected]> Reviewed-by: Neha Malcom Francis <[email protected]>
2025-06-18arch: mach-k3: common: Add support to shutdown MCU R5 Core 1Beleswar Padhi
During boot, ROM can bring up the MCU R5F cores in either lockstep or split mode based on X509 certificate flags. If booted in split mode, core 0 will run DM firmware and second core sits in WFI. Add support to shut down core 1 so that other firmwares can later be loaded on them. The shutdown of MCU R5 Core 1 is invoked at A72 SPL init, as by that time Device Manager (DM) is up and running on R5 Core 0. The shutdown request of Core 1 is handled by Device Manager itself. Signed-off-by: Beleswar Padhi <[email protected]>
2025-06-18arm: mach-k3: {am6/j7}*_hardware.h: Expose MCU R5 proc and device idsBeleswar Padhi
Currently the MCU R5 processor ids and device ids are only defined for R5 SPL Stage. Expose these ids always so that A72 SPL can utilize this information to shutdown MCU R5 Core 1 when booted in Split mode. Signed-off-by: Beleswar Padhi <[email protected]> Reviewed-by: Neha Malcom Francis <[email protected]>
2025-06-18doc: Add description for bootmeth raucMartin Schwan
Add documentation for the bootmeth "rauc", which boots an A/B system with RAUC from MMC. Signed-off-by: Martin Schwan <[email protected]>
2025-06-18bootstd: Add implementation for bootmeth raucMartin Schwan
Add a bootmeth driver which supports booting A/B system with RAUC as their update client. Signed-off-by: Martin Schwan <[email protected]> Tested-by: Wadim Egorov <[email protected]>
2025-06-18renesas: Renesas R-Car Gen4 watchdog driverShmuel Leib Melamud
Add support of Renesas R-Car Gen4 watchdog timer. Timeouts up to 8184.0s are supported (CKS1 register is not involved). The watchdog uses the clock of type CLK_TYPE_GEN4_MDSEL. The timeout is set in dts/upstream/src/arm64/renesas/r8a779f0-spider-cpu.dtsi section &rwdt. This driver is based on upstream linux commit: e70140ba0d2b("Get rid of 'remove_new' relic from platform driver struct") Signed-off-by: Shmuel Leib Melamud <[email protected]> Reviewed-by: Mattijs Korpershoek <[email protected]> Reviewed-by: Stefan Roese <[email protected]> Reviewed-by: Marek Vasut <[email protected]>
2025-06-18arm64: renesas: Move early SPL stack into System RAM SRAM on R-Car V4H boardsMarek Vasut
The CONFIG_CUSTOM_SYS_INIT_SP_ADDR=0xeb300000 does not make it into board .config on either R-Car V4H White Hawk or Sparrow Hawk, remove this configuration option. The early SPL stack is however pointing into the RT-VRAM and may corrupt payload loaded into the RT-VRAM by the BootROM. Set the early SPL stack at fixed location at the end of System RAM instead, where it cannot interfere with the payload loaded into RT-VRAM. Signed-off-by: Marek Vasut <[email protected]>
2025-06-18Merge patch series "list.h/treewide: get rid of no-op prefetch()"Tom Rini
Rasmus Villemoes <[email protected]> says: While looking through list.h, I saw that the regular list_* helpers (and one of the hlist_* ones) still contain the prefetch() that was removed in linux 14 years ago. It doesn't do anything, but makes the macros harder to read, so get rid of it, and the fallback, no-op definition that they relied on. That requires removing a few uses outside list.h as well. checkpatch warns about some whitespace issues in list.h, but as I've copied whole kerneldoc+#define blocks directly from the linux kernel, I think it's better to just accept that so that we don't introduce needless diffs. The "macro argument reuse" arguments should also be ignored, as e.g. the "member" arguments are obviously always just bare identifiers, and the "pos" arguments must be assigned to multiple times. Link: https://lore.kernel.org/r/[email protected]
2025-06-18linux/list.h: drop fallback definition of prefetch()Rasmus Villemoes
None of the list helpers use prefetch() anymore, and no C code relies on getting this definition from list.h. In any case, such an arch/cpu specific thing does not belong in a header that just consists of cpp helper macros. Signed-off-by: Rasmus Villemoes <[email protected]>