summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2025-10-16env: Kconfig: disable external env in secure os bootAnshul Dalal
Falcon mode uses falcon_image_file from the env during mmc fs boot, but external env can be compromised. Therefore disable access to external env by setting SPL_ENV_IS_NOWHERE when SPL_OS_BOOT_SECURE is set. Signed-off-by: Anshul Dalal <[email protected]> Reviewed-by: Tom Rini <[email protected]>
2025-10-16Merge patch series "ti_sci: Address some issues found by Smatch"Tom Rini
Andrew Goodbody <[email protected]> says: Prevent a memory leak from a non-freed malloc. Return an error code on an error path. Assign a value to a pointer before it is dereferenced. Link: https://lore.kernel.org/r/[email protected]
2025-10-16ti_sci: Pointer is never assigned to valid valueAndrew Goodbody
The pointer resp is declared but never assigned a value but is then dereferenced. Fix this by assigning the pointer to the message buffer. This issue was found by Smatch. Reviewed-by: Udit Kumar <[email protected]> Signed-off-by: Andrew Goodbody <[email protected]> Reviewed-by: Nishanth Menon <[email protected]> Tested-by: Anshul Dalal <[email protected]>
2025-10-16ti_sci: Provide error code on error exitAndrew Goodbody
In ti_sci_get_response the check for message sequence will return ret on a fail but ret will be 0 at that point. Instead return -EINVAL. Also change dev_dbg call to dev_err to be consistent with other error detection code in the same function. This issue was found by Smatch. Reviewed-by: Udit Kumar <[email protected]> Signed-off-by: Andrew Goodbody <[email protected]> Reviewed-by: Nishanth Menon <[email protected]> Tested-by: Anshul Dalal <[email protected]>
2025-10-16ti_sci: Prevent memory leakAndrew Goodbody
temp is assigned the pointer returned by malloc which is used without a NULL check and then never freed. Add a NULL check and ensure temp is freed on all return paths. This issue was found by Smatch. Reviewed-by: Udit Kumar <[email protected]> Signed-off-by: Andrew Goodbody <[email protected]> Reviewed-by: Nishanth Menon <[email protected]> Tested-by: Anshul Dalal <[email protected]>
2025-10-16Merge tag 'u-boot-watchdog-20251016' of ↵Tom Rini
https://source.denx.de/u-boot/custodians/u-boot-watchdog CI: https://dev.azure.com/sr0718/u-boot/_build/results?buildId=400&view=results - watchdog: Tighten some driver dependencies in Kconfig (Tom)
2025-10-16Merge branch 'master' of https://source.denx.de/u-boot/custodians/u-boot-riscvTom Rini
CI: https://source.denx.de/u-boot/custodians/u-boot-riscv/-/pipelines/27926 - Revert "riscv: Add a Zalrsc-only alternative for synchronization in start.S" to fix regression - clk: sophgo: Fix a warning about void returns value
2025-10-16clk: sophgo: Fix a warning about void returns valueTom Rini
The cv1800b_clk_setfield function returns void, but was doing "return writel(...);" and while seemingly having a void function return a void function is not a warning, when readl is a macro this problem is shown. Correct the code to instead simply call writel. Signed-off-by: Tom Rini <[email protected]> Reviewed-by: Yao Zi <[email protected]>
2025-10-16Revert "riscv: Add a Zalrsc-only alternative for synchronization in start.S"Yao Zi
This reverts commit a681cfecb4346107212f377e2075f6eb1bdc6a2b. It has been reported that the commit causes boot regression for SPL on StarFive VisionFive 2 or compatible boards. Inspecting the code, I did spot one logic error for deciding whether Zaamo or Zalrsc is used, and it's still unclear what exactly causes the regression, let's revert it for now. Reported-by: E Shattow <[email protected]> Link: https://lore.kernel.org/u-boot/[email protected]/ Signed-off-by: Yao Zi <[email protected]> Acked-by: E Shattow <[email protected]> Acked-by: Leo Yu-Chi Liang <[email protected]>
2025-10-16watchdog: Tighten dependencies on WDT_DAVINCITom Rini
The WDT_DAVINCI driver is not safe to compile on 64bit platforms such as allyesconfig on a 64bit host. Tighten the dependencies here to the platforms which could use it today. Signed-off-by: Tom Rini <[email protected]>
2025-10-16watchdog: Tighten some watchdog driver dependenciesTom Rini
A few watchdog drivers cannot build without access to some platform specific header files. Express those requirements in Kconfig as well. Signed-off-by: Tom Rini <[email protected]> Reviewed-by: Stefan Roese <[email protected]>
2025-10-15Merge patch series "fix an7581 panic caused by attempt to support multiple ↵Tom Rini
RAM size" Mikhail Kshevetskiy <[email protected]> says: The commit 726404a66c773 ("airoha: rework RAM size handling to support multiple RAM size") is not good enougth. It results in pacnic during determining of memory size amount. This patch series partly fix and partly revert the above commit. Unfortunately for now we have no a good way to determine the an7581 memory size. Link: https://lore.kernel.org/r/[email protected]
2025-10-15.mailmap: update e-mail address for Abbarapu Venkatesh YadavAbbarapu Venkatesh Yadav
Update e-mail address. Signed-off-by: Abbarapu Venkatesh Yadav <[email protected]>
2025-10-15arm/airoha: partly revert support of multiple RAM size for an7581Mikhail Kshevetskiy
Partly revert commit 726404a66c773 ("airoha: rework RAM size handling to support multiple RAM size"). The general idea is good, but the call of get_ram_size((void *)gd->ram_base, SZ_8G); produces the following result on my an7581 board with only 1Gb of memory: "Synchronous Abort" handler, esr 0x96000004 elr: 0000000081e201c8 lr : 0000000081e20160 (reloc) elr: 00000000bff501c8 lr : 00000000bff50160 x0 : 0000000180000000 x1 : 0000000100000000 x2 : 000000000000002e x3 : 0000000000000002 x4 : 000000001fbf0000 x5 : 0060000000000401 x6 : 0000000000000000 x7 : 00000000bffdb268 x8 : 0000000000000060 x9 : 00000000bffdb2c8 x10: 0000000000000000 x11: 0000000000000060 x12: 00000000bffdb268 x13: 00000000841c56d0 x14: 00000000841c56d0 x15: 0000000000000000 x16: 00000000841506e4 x17: dd7fe29aec3b07e8 x18: 00000000bf710e00 x19: 0000000080000000 x20: 0000000000000000 x21: 0000000020000000 x22: 0000000200000000 x23: 0000000000000001 x24: 0000000040000000 x25: 00000000bf708e78 x26: 00000000bf7bdca0 x27: 0000000000000000 x28: 0000000000000000 x29: 00000000bf708e20 Code: 910943ff d65f03c0 d37df2a1 8b150e60 (f8616a62) Resetting CPU ... So just not call get_ram_size() and use the value from dtb. Fixes: 726404a66c773 ("airoha: rework RAM size handling to support multiple RAM size") Signed-off-by: Mikhail Kshevetskiy <[email protected]>
2025-10-15cmd: ti: Add DDRSS Inline ECC Error Injection commandGeorgi Vlaev
Introduce a new version of the Keystone-II "ddr" command for testing the inline ECC support in the DDRSS bridge available on K3 devices. The ECC hardware support in K3's DDRSS and the test method differ substantially from what we support in the K2 variant of the command. This K3 DDRSS command currently supports only single controller testing. The ECC error injection procedure follows these steps: 1) Flush and disable the data cache. 2) Disable the protected ECC Rx range. 3) Flip a bit in the address. 4) Restore the range to original. 5) Read the modified value (corrected). 6) Re-enable the data cache. This will cause the 1-bit ECC error count to increase while the read will return the corrected value. The K3 version of the command extends the syntax for the "ecc_err" argument by also introducing an argument for range which specifies which range (0, 1, 2) the address is located in. Multi-bit ECC errors are uncorrectable and will lead to a synchronous abort. Signed-off-by: Georgi Vlaev <[email protected]> Signed-off-by: Santhosh Kumar K <[email protected]> [[email protected]: Add J7 and multiple-region support, simplify logic] Signed-off-by: Neha Malcom Francis <[email protected]> Reviewed-by: Udit Kumar <[email protected]>
2025-10-15arm/airoha: an7581 ignores CFG_MAX_MEM_MAPPED valueMikhail Kshevetskiy
This partly fix commit 726404a66c773 ("airoha: rework RAM size handling to support multiple RAM size") The function get_effective_memsize() do not see non-global defines of CFG_MAX_MEM_MAPPED, so the effective memory size will not be changed. Fix the issue by putting definition of CFG_MAX_MEM_MAPPED to the proper place. Fixes: 726404a66c773 ("airoha: rework RAM size handling to support multiple RAM size") Signed-off-by: Mikhail Kshevetskiy <[email protected]>
2025-10-15test: Do not build expo and cedit test if no SDLKory Maincent
expo and cedit tests depend on the host having the SDL library. Build these tests only if VIDEO_SANDBOX_SDL config is enabled. Signed-off-by: Kory Maincent <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2025-10-15arm: dts: k3-am62p-verdin: migrate to OF_UPSTREAMErnest Van Hoecke
Enable CONFIG_OF_UPSTREAM to receive automatic device tree updates for the Verdin AM62P. Remove the now-obsolete device tree files: - k3-am62p-verdin.dtsi - k3-am62p-verdin-dev.dtsi - k3-am62p-verdin-wifi.dtsi - k3-am62p5-verdin-wifi-dev.dts Signed-off-by: Ernest Van Hoecke <[email protected]>
2025-10-15test: Remove not needed null checkAndrew Goodbody
In ut_report() there is a null check for stats but stats was already dereferenced on the line before and is again dereferenced later in the same function. Also the two places where ut_report() is called from will have initialised the parameter so there is no chance that stats will be null. So to prevent static analysis complaining of a use before check just remove the check. This issue was found by Smatch. Signed-off-by: Andrew Goodbody <[email protected]>
2025-10-14boot: Move preparing bootdev into a functionSimon Glass
We will want to use this same logic in another place within iter_inc(), so split it out into its own function. Signed-off-by: Simon Glass <[email protected]> Reviewed-by: Tom Rini <[email protected]>
2025-10-14boot: Improve comments related to global bootmethsSimon Glass
Add a few comments about global bootmeths and first_glob_method Signed-off-by: Simon Glass <[email protected]> Reviewed-by: Heinrich Schuchardt <[email protected]> Reviewed-by: Mattijs Korpershoek <[email protected]> Reviewed-by: Sam Protsenko <[email protected]>
2025-10-14Merge tag 'xilinx-for-v2026.01-rc1-v2' of ↵Tom Rini
https://source.denx.de/u-boot/custodians/u-boot-microblaze AMD/Xilinx/FPGA changes for v2026.01-rc1 v2 zynqmp: - DT updates - Enable new commands mbv: - Simplify defconfigs clk: - Separate legacy handler and use SMC handler misc: - Tighten TTC Kconfig dependency net: - Add 10GBE support to Gem pwm: - cadence-ttc: Fix array sizes fwu: - Add platform hook support spi: - Remove undocumented cdns,is-dma property video: - Fix DPSUB RGB handling
2025-10-14Merge tag 'mix-next-14102025' of ↵Tom Rini
https://source.denx.de/u-boot/custodians/u-boot-tpm TPM changes: Make all drive names defined with U_BOOT_DRIVER unique TEE changes: Rework things such that sandbox will also traverse the optee directory when SANDBOX_TEE is enabled, but only build one of the optee-specific files when OPTEE is enabled. EFI changes: Up to now we were relying on the file extension to accept and load an image over HTTP. We expected images to be either .iso or .img. By wiring up internal existing functions we can try to mount any file extension and reject it only if mounting fails. part_driver_lookup_type
2025-10-14Merge tag 'u-boot-marvell-20251014' of ↵Tom Rini
https://source.denx.de/u-boot/custodians/u-boot-marvell CI: https://dev.azure.com/sr0718/u-boot/_build/results?buildId=398&view=results - sata_mv / octeontx_hsmmc: Smatch fixes / patches (Andrew) - dts: pxa1908: convert to OF_UPSTREAM (Duje) - phy: marvell: Tighten MVEBU_COMPHY_SUPPORT dependencies (Tom) - pci: mvebu: Unable to assign mbus windows for 2nd pcie controller (Tony)
2025-10-14cmd: sf: align erase and write on erase block boundaryViorel Suman
Align erase and write on erase block boundary in line with how read was aligned in commit 622b5d35613 ("cmd: sf: Handle unaligned 'update' start offset"). Fixes: 622b5d35613 ("cmd: sf: Handle unaligned 'update' start offset") Signed-off-by: Viorel Suman <[email protected]> Signed-off-by: Ye Li <[email protected]> Reviewed-by: Peng Fan <[email protected]> Reviewed-by: Marek Vasut <[email protected]> Tested-by: Marek Vasut <[email protected]> # R-Car V4H
2025-10-14spi: cadence-qspi: Remove cdns,is-dma property handlingMichal Simek
Remove cdns,is-dma DT property handling. Property is not the part of DT binding and it is also hardcoded to value 1 in all DTs that's why remove it because none is also testing value 0. If there is any use case when this configuration should be supported this patch can be reverted. Signed-off-by: Michal Simek <[email protected]> Link: https://lore.kernel.org/r/6205c6585589b423692b6ed063506b4c51c04c77.1760006086.git.michal.simek@amd.com
2025-10-14tpm: Make U_BOOT_DRIVER entries uniqueTom Rini
All instances of the U_BOOT_DRIVER must use a unique name or they will lead to link time failures due to name space conflicts when both are present. In this case the driver was reusing the tpm_tis_i2c name. Signed-off-by: Tom Rini <[email protected]> Reviewed-by: Ilias Apalodimas <[email protected]> Signed-off-by: Ilias Apalodimas <[email protected]>
2025-10-14tee: Rework Makefile logicTom Rini
The intention of how this Makefile was written was to allow for sandbox to build and test drivers still while otherwise requiring OPTEE to be enabled. This however didn't work quite right in practice as sandbox could enable some drivers which would then fail to link. Rework things such that sandbox will also traverse the optee directory when SANDBOX_TEE is enabled, but only build one of the optee-specific files when OPTEE is enabled. Signed-off-by: Tom Rini <[email protected]> Acked-by: Ilias Apalodimas <[email protected]> Signed-off-by: Ilias Apalodimas <[email protected]>
2025-10-14efi_loader: Improve disk image detection in efi_bootmgrJavier Tia
Enhances the process for identifying disk images within the EFI boot manager. Utilize part_driver_lookup_type() to verify the validity of a downloaded file as a disk image, rather than depending on file extensions. part_driver_lookup_type() is now used in the prepare_loaded_image() function in the EFI boot manager to detect partitions on a block device created from a downloaded image. This allows the boot manager to boot from any disk image that can be recognized by a partition driver, not just ISO and IMG images. Update prepare_loaded_image() to create the ramdisk block device internally, obtain the blk_desc and use part_driver_lookup_type() to detect a valid partition table. In try_load_from_uri_path(), try prepare_loaded_image() first to detect disk images, and fall back to PE-COFF detection only if that fails. Signed-off-by: Javier Tia <[email protected]> Reviewed-by: Ilias Apalodimas <[email protected]> Signed-off-by: Ilias Apalodimas <[email protected]>
2025-10-14part: Export part_driver_lookup_type for external useJavier Tia
Make part_driver_lookup_type non-static so it can be used outside part.c. This allows external callers to determine the appropriate partition driver for a block device, enabling more flexible handling of partition types. Add a prototype and kernel-doc comment in part.h to document the function contract. Provide a stub inline implementation returning NULL when partition support is disabled, ensuring build consistency across configurations. Signed-off-by: Javier Tia <[email protected]> Reviewed-by: Ilias Apalodimas <[email protected]> Signed-off-by: Ilias Apalodimas <[email protected]>
2025-10-13bootstd: Fix bootflow info for efi_mgrSam Protsenko
A "Synchronous Abort" CPU exception happens on an attempt to run the "bootflow info" command for a global boot method (e.g. efi_mgr): => bootflow select 0 => bootflow info "Synchronous Abort" handler, esr 0x96000006, far 0x8 It happens because do_bootflow_info() tries to dereference bflow->dev, which is NULL in case of efi_mgr. Add the corresponding check to prevent this NULL pointer dereference and make "bootflow info" command work properly for global boot methods. Fixes: 2d653f686b6d ("bootstd: Add a bootflow command") Signed-off-by: Sam Protsenko <[email protected]> Reviewed-by: Simon Glass <[email protected]> Reviewed-by: Mattijs Korpershoek <[email protected]>
2025-10-13global: Disable xPL phases when we have enabled COMPILE_TESTTom Rini
Due to how we implement the logic for selecting what should/shouldn't be built in a given phase it becomes extremely cumbersome to make these phases link when configured by "allyesconfig". As a starting point for being able to enable "allyesconfig" and expand our static coverage, disable all other phases in this case. Future work can be done to enable other phases as time and interest permit. Signed-off-by: Tom Rini <[email protected]>
2025-10-13sandbox: Make SANDBOX_xPL depend on !COMPILE_TESTTom Rini
Given how these options are used in the code, it doesn't make sense to enable them for COMPILE_TEST. Make them depend on !COMPILE_TEST. Signed-off-by: Tom Rini <[email protected]>
2025-10-13global: Make REMAKE_ELF depend on !COMPILE_TESTTom Rini
The REMAKE_ELF flag is something that should be selected by the platforms which need it, and not prompted for. Start by making this depend on !COMPILE_TEST. Signed-off-by: Tom Rini <[email protected]>
2025-10-13spl: FIT: Make SPL_LOAD_FIT_FULL depend on SPL_LOAD_FITTom Rini
Today, only a few platforms enable SPL_LOAD_FIT_FULL, and all enable SPL_LOAD_FIT. As can be seen in usage, the FULL symbol is a superset of the first symbol, not an alternative. Update Kconfig entries based on this and simplify the only code which checks for either being set. Signed-off-by: Tom Rini <[email protected]>
2025-10-13SPL: Make SPL_OS depend on supported architecturesTom Rini
We can only enable Falcon Mode (aka SPL_OS) on architectures which implement certain hooks. Express these dependencies in Kconfig. Signed-off-by: Tom Rini <[email protected]>
2025-10-13Merge patch series "bootstd: rauc: fix doc and info msg to reflect real flow"Tom Rini
Andreas Pretzsch <[email protected]> says: For the RAUC bootmethod, newly introduced in U-Boot 2025.10, both code and documentation contain some incorrect (maybe outdated) statements, so they do not reflect the real behaviour. This series corrects both the docs and one log_info in the code, to now reflect the real flow. Beside being visible in the code, all of it was tested on a real machine. Despite the very late time in RC cycle, I suggest inclusion before release of U-Boot 2025.10, as the current statements are simply incorrect. Also I do not see any risk in these non-functional changes. Thanks to Martin Schwan for the review and esp. the initial code! Link: https://lore.kernel.org/r/[email protected]
2025-10-13bootstd: rauc: extend and fix doc to reflect real flowAndreas Pretzsch
The documentation of bootmeth rauc in some aspects does not reflect the real program flow. Specifically the reset of boot tries in case of "no more slots found" is incorrect (it won't change BOOT_ORDER). Also the search sequence for boot scripts was mixed and incomplete. Fix these points in the documentation. Explain the initial setup of any missing BOOT_ORDER and BOOT_x_LEFT environment variables, and inform about BOOT_x_LEFT decrementing. Signed-off-by: Andreas Pretzsch <[email protected]> Reviewed-by: Martin Schwan <[email protected]>
2025-10-13bootstd: rauc: no valid slot fallback: fix info msg to reflect real flowAndreas Pretzsch
If there is no more active slot found in find_active_slot(), like when all slots in BOOT_ORDER have a count of 0, the counters are reset to their default value CONFIG_BOOTMETH_RAUC_DEFAULT_TRIES. The BOOT_ORDER is _not_ changed, which is logically correct (especially for the case when there is only one (active) slot set, e.g. BOOT_ORDER only contains 'B', probably due to RAUC option prevent-late-fallback being set). Resetting the counters of inactive slots also does not harm here, and is fine as a generic solution. But the log_info statement in this scenario INFO: Resetting boot order and all slot tries is incorrect. Change this to INFO: Resetting all slot tries to 3 with the 3 being inserted by CONFIG_BOOTMETH_RAUC_DEFAULT_TRIES. Signed-off-by: Andreas Pretzsch <[email protected]> Reviewed-by: Martin Schwan <[email protected]>
2025-10-13pci: mvebu: Unable to assign mbus windows for 2nd pcie controllerTony Dinh
Correct the memory and IO mbus windows size increments in mvebu_pcie_bind. Currently, pcie1 controller resource_size(&mem) and resource_size(&io) checks result in a failure. This is because mem.end and io.end must be incremented at the end of pcie0 windows assignment. Signed-off-by: Tony Dinh <[email protected]> Reviewed-by: Stefan Roese <[email protected]>
2025-10-13phy: marvell: Tighten MVEBU_COMPHY_SUPPORT dependenciesTom Rini
This driver cannot link without access to functions that are defined in files that are only build on some platforms. Express those requirements in Kconfig as well. Signed-off-by: Tom Rini <[email protected]> Reviewed-by: Stefan Roese <[email protected]>
2025-10-13ARM: dts: pxa1908: convert to OF_UPSTREAMDuje Mihanović
Convert the PXA1908 platform and its coreprimevelte board to OF_UPSTREAM and enable the few drivers found in the upstream DTS. Signed-off-by: Duje Mihanović <[email protected]>
2025-10-13mmc: octeontx_hsmmc: Remove impossible testAndrew Goodbody
In octeontx_mmc_io_drive_setup drive and slew are tested for being less than 0 but they are declared as uint fields so this test must always fail. Just remove the test. This issue was found by Smatch. Signed-off-by: Andrew Goodbody <[email protected]>
2025-10-13mmc: octeontx_hsmmc: Need parens in expressionAndrew Goodbody
The check for no response expected in octeontx_mmc_send_cmd needs parens adding for proper interpretation. This issue was found by Smatch. Signed-off-by: Andrew Goodbody <[email protected]>
2025-10-13sata: sata_mv: Remove always true testAndrew Goodbody
Smatch reported an issue with a test that was always true in that an unsigned variable will always be >= to zero. This led to a closer look at the code which showed that some static functions returned values that were always discarded so make those functions return void. Also make the passing of block counts in those functions always use lbaint_t. Signed-off-by: Andrew Goodbody <[email protected]> Reviewed-by: Stefan Roese <[email protected]>
2025-10-10fs: jffs2: Remove always true testAndrew Goodbody
Testing an unsigned variable to be >= 0 will always be true so remove this redundant test. This issue was found by Smatch. Signed-off-by: Andrew Goodbody <[email protected]> Reviewed-by: Quentin Schulz <[email protected]>
2025-10-10fs/squashfs: Ensure memory is freed by using unwind gotoAndrew Goodbody
Returning immediately from sqfs_read_nest is not consistent with other error checks in this function and can lead to memory leaks. Instead use the unwind goto used elsewhere to ensure that the memory is freed. This issue was found by Smatch. Signed-off-by: Andrew Goodbody <[email protected]> Acked-by: Quentin Schulz <[email protected]> Reviewed-by: Joao Marcos Costa <[email protected]>
2025-10-10fs: Rework filesystem guards for xPL phasesTom Rini
When adding filesystems to the table in fs/fs.c we need to use CONFIG_IS_ENABLED(FS_xxx) so that we only include references to a given filesystem when CONFIG_FS_xxx or CONFIG_SPL_FS_xxx or similar are enabled. Update the filesystems which weren't doing this to follow that pattern. Signed-off-by: Tom Rini <[email protected]>
2025-10-10lz4: Do not disable LZ4_decompress_safe* for xPLTom Rini
We should compile the LZ4_decompress_safe and LZ4_decompress_safe_partial functions in SPL and they will be discarded if unused. Signed-off-by: Tom Rini <[email protected]>
2025-10-10iotrace: Finish migrating this to KconfigTom Rini
When I migrated this to Kconfig in commit 68e54040ccc3 ("sandbox: Move CONFIG_IO_TRACE to Kconfig") I didn't look hard enough for other details. As explained in the README, this is valid for ARM too. So start by making this be a prompted question and CMD_IOTRACE depend on IO_TRACE being enabled. Next, migrate the information out of README and in to the appropriate help text for existing options in Kconfig. Finally, make this option be default y on SANDBOX but not selected as it's valid to build without it. Signed-off-by: Tom Rini <[email protected]>