summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2025-11-24Prepare v2026.01-rc3v2026.01-rc3Tom Rini
Signed-off-by: Tom Rini <[email protected]>
2025-11-24rockchip: rk3588: Map SCMI shared memory area as non-cacheableJonas Karlman
The SCMI shared memory area is no longer automatically marked as non-cacheable after the commit a5a0134570c8 ("firmware: scmi: Drop mmu_set_region_dcache_behaviour() misuse"). This change in behavior cause Rockchip RK3588 boards to fail boot with: SoC: RK3588 DRAM: 8 GiB scmi-over-smccc scmi: Channel unexpectedly busy scmi_base_drv scmi-base.0: getting protocol version failed scmi-over-smccc scmi: failed to probe base protocol initcall_run_r(): initcall initr_dm() failed ### ERROR ### Please RESET the board ### Update the memory mapping on RK3588 to mark the SCMI shared memory area as non-cacheable to fix the SCMI shared memory based transport issue that prevented RK3588 boards from booting. Signed-off-by: Jonas Karlman <[email protected]> Reviewed-by: Marek Vasut <[email protected]> Reviewed-by: Kever Yang <[email protected]>
2025-11-22configs: Resync with savedefconfigTom Rini
Resync all defconfig files using qconfig.py Signed-off-by: Tom Rini <[email protected]>
2025-11-22boot: pxe_utils: Fix memory allocation issues in overlay_dir handlingKory Maincent (TI.com)
Fix two memory allocation bugs in label_boot_extension(): 1. When label->fdtdir is not set, overlay_dir was used without any memory allocation. 2. When label->fdtdir is set, the allocation size was incorrect, using 'len' (just the fdtdir length) instead of 'dir_len' (which includes the trailing slash and null terminator). Resolve both issues by moving the memory allocation and string formatting outside the conditional block, resulting in clearer code flow and correct sizing in all cases. Closes: https://lists.denx.de/pipermail/u-boot/2025-November/602892.html Addresses-Coverity-ID: 638558 Memory - illegal accesses (UNINIT) Fixes: 935109cd9e97 ("boot: pxe_utils: Add extension board devicetree overlay support") Signed-off-by: Kory Maincent (TI.com) <[email protected]> Tested-by: Surkov Kirill <[email protected]>
2025-11-22upl: Fix buf array sizeFrancois Berder
Size of array buf was incorrect due to sizeof returning the size of an integer (typically 32 bits) instead of a u64 type (64 bits). Hence, buf array was shorter than expected. Signed-off-by: Francois Berder <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2025-11-22Merge tag 'efi-2026-01-rc3-2' of ↵Tom Rini
https://source.denx.de/u-boot/custodians/u-boot-efi Pull request efi-2026-01-rc3-2 CIL https://source.denx.de/u-boot/custodians/u-boot-efi/-/pipelines/28454 Documentation: * board: ti: am6254atl_sk: correct value of PRELOADED_BL33_BASE * pytest: fix u-boot-test-flash typo * samsung: Fix PXE description for the E850-96 board * board: ti: k3: Update TI firmware repository URL to GitHub * add missing macro descriptions to include/test/ut.h and add it to the API documenation * rearrange the description of DM tests and describe return values Testing: * Enable CI testing ACPI on qemu-riscv64_smode_acpi_defconfig * Add qemu-riscv64_smode_defconfig to the CI tests * Generalize tests such that they can run on RISC-V QEMU - fdt_test_apply requires CONFIG_OF_LIBFDT_OVERLAY - cmd/fdt: do not assume RNG device exists - cmd/bdinfo: make no flash assumption - cmd/bdinfo: consider arch_print_bdinfo() output - common/print: do not use fixed buffer addresses - cmd/fdt: do not use fixed buffer addresses - raise CONFIG_CONSOLE_RECORD_OUT_SIZE default to 0x6000 * enable CONFIG_CONSOLE_RECORD=y on qemu-riscv64_smode_acpi # -----BEGIN PGP SIGNATURE----- # # iQIzBAABCAAdFiEEbcT5xx8ppvoGt20zxIHbvCwFGsQFAmkg1IsACgkQxIHbvCwF # GsQVLA//dmiApob+J9FUhD8joD+DaKSNfLYmv8zwfIFL2xRxx7D+CQT+r+I9FJYI # KojiLyn4PE/5VOm+wrsvAoYoMLJwAHvg5nmYJLLzvm6V//DLd1AEopP/+Uh8gEVW # xYGLcvDyGgZpraAhcmqRnAS89py3SigwGzhcUMbT6ZC6pgMVEsBpg8XeMpY7N05c # rwyqFAAPD8RcF7veQCpry87NiK5o+9YuM1zKl5sDFOpEWKq5ToNwhQ00bnux9lUd # HWz9X6ge58iFiMXRqUCnOaPeXeChn9ejyEiKtfQ0JtykOf9NT2WMdD2VKe9PCYsd # f7OynJTGG2OXTKBhon/xj75itiTm7EELc/FHwHEdtZIIHgpi/C33yQgKxLf9mtUo # Z7DKYpPoaTCbJhs9LCK942KPtshbtAJLKTVqyBPo7Jn0mneeCQUsbaQRU7JruJTK # hKluUjsAry3Do3wv/w6B8R6MMgfpBktPkqjg9e/maSdhYdkNAYpjajtORgpqmJRV # HTGJXfL3qFC50jlenlMYOm4Qake33MIMzubaxoM3j5ENDUJ7KAbWADEoWDpve8Tu # b/fX8uuW+g2T18Y/M9Bsk/jaUjDTx0xtZUSYNIIQJFDaJMzUxGYWlmtXhLZwFU8g # 7S5pBmgxoSAtQSMAeoJPJp9FSgXYqiGLUeSwcOH2NaPn0lLFvK0= # =D0Yy # -----END PGP SIGNATURE----- # gpg: Signature made Fri 21 Nov 2025 03:07:23 PM CST # gpg: using RSA key 6DC4F9C71F29A6FA06B76D33C481DBBC2C051AC4 # gpg: Good signature from "Heinrich Schuchardt <[email protected]>" [unknown] # gpg: aka "[jpeg image of size 1389]" [unknown] # gpg: WARNING: This key is not certified with a trusted signature! # gpg: There is no indication that the signature belongs to the owner. # Primary key fingerprint: 6DC4 F9C7 1F29 A6FA 06B7 6D33 C481 DBBC 2C05 1AC4
2025-11-21doc: pytest: fix u-boot-test-flash typoDavid Lechner
Fix typo: `s/u-boot-test-flash1/u-boot-test-flash/`. The correct name of the script doesn't have a "1" in it. Signed-off-by: David Lechner <[email protected]> Reviewed-by: Heinrich Schuchardt <[email protected]>
2025-11-21doc: samsung: Fix PXE doc for E850-96 boardSam Protsenko
As stated in PXELINUX doc [1], the PXE configuration file has to be in the format of "01-MAC-address" for Ethernet connections: The hardware type (using its ARP "htype" code) and address, all in lowercase hexadecimal with dash separators. For example, for an Ethernet (i.e. ARP hardware type "1") with address "88:99:AA:BB:CC:DD", it would search for the filename "01-88-99-aa-bb-cc-dd". Indeed, PXE implementation in U-Boot looks for files like that, as can be seen from this call chain: format_mac_pxe() pxe_mac_path() pxe_get() extlinux_pxe_read_bootflow() Mention the fact that PXE expects the configuration file to be prepended with "01" in the PXE section of E850-96 documentation. While at it, fix some other minor issues in PXE section. [1] https://wiki.syslinux.org/wiki/index.php?title=PXELINUX Signed-off-by: Sam Protsenko <[email protected]>
2025-11-21doc: describe return values of C testsHeinrich Schuchardt
* Enumerate return values of C tests * Reference assertion macros Reviewed-by: Ilias Apalodimas <[email protected]> Reviewed-by: Simon Glass <[email protected]> Signed-off-by: Heinrich Schuchardt <[email protected]>
2025-11-21doc: add include/test/ut.h to HTML documentationHeinrich Schuchardt
The asserts in ut.h are often used. Provide online documentation. Reviewed-by: Ilias Apalodimas <[email protected]> Reviewed-by: Simon Glass <[email protected]> Signed-off-by: Heinrich Schuchardt <[email protected]>
2025-11-21test: document ut.hHeinrich Schuchardt
Add missing Sphinx comments in include/test/ut.h Reviewed-by: Simon Glass <[email protected]> Signed-off-by: Heinrich Schuchardt <[email protected]>
2025-11-21doc: make writing DM test subsection of writing C testHeinrich Schuchardt
A driver model test is just a special case of a C test. Reviewed-by: Ilias Apalodimas <[email protected]> Reviewed-by: Simon Glass <[email protected]> Signed-off-by: Heinrich Schuchardt <[email protected]>
2025-11-21doc: board: ti: am6254atl_sk: fix PRELOADED_BL33_BASEAnshul Dalal
The SPL_TEXT_BASE for AM62x SiP is set as 0x82000000 whereas the documentation states 0x81880000 as the PRELOADED_BL33_BASE value. Both should match to allow TFA to jump to the address where A53 SPL has been loaded. Signed-off-by: Anshul Dalal <[email protected]> Acked-by: Heinrich Schuchardt <[email protected]>
2025-11-21doc: board: ti: k3: Update TI firmware repository URL to GitHubVignesh Raghavendra
Update the TI firmware repository URL from git.ti.com to the GitHub mirror at github.com/TexasInstruments/ti-linux-firmware which is much more reliable. Signed-off-by: Vignesh Raghavendra <[email protected]> Reported-by: Tom Rini <[email protected]> Tested-by: Heinrich Schuchardt <[email protected]>
2025-11-21CI: test qemu-riscv64_smode[_acpi]Heinrich Schuchardt
QEMU comes with its own OpenSBI. For running RISC-V virtual machine using one of qemu-riscv64_smode_defconfig or qemu-riscv64_smode_acpi_defconfig is the natural choice. Add the riscv64 smode configurations to the test scope. Reviewed-by: Simon Glass <[email protected]> Signed-off-by: Heinrich Schuchardt <[email protected]>
2025-11-21configs: CONFIG_CONSOLE_RECORD=y on qemu-riscv64_smode_acpiHeinrich Schuchardt
For testing ACPI on QEMU we need a defconfig that supports acpi command test. Reviewed-by: Simon Glass <[email protected]> Reviewed-by: Bin Meng <[email protected]> Signed-off-by: Heinrich Schuchardt <[email protected]>
2025-11-21common: default CONFIG_CONSOLE_RECORD_OUT_SIZE=0x6000Heinrich Schuchardt
For some tests the current default of 0x400 for CONFIG_CONSOLE_RECORD_OUT_SIZE is too small. Raise the value to 0x6000 which is already the most common value. Reviewed-by: Simon Glass <[email protected]> Reviewed-by: Ilias Apalodimas <[email protected]> Signed-off-by: Heinrich Schuchardt <[email protected]>
2025-11-21test: cmd/fdt: do not use fixed buffer addressesHeinrich Schuchardt
The location of memory depends on the board. Do not assume memory at fixed memory locations. Use memalign() instead to allocate a buffer. Acked-by: Ilias Apalodimas <[email protected]> Signed-off-by: Heinrich Schuchardt <[email protected]>
2025-11-21test: common/print: do not use fixed buffer addressesHeinrich Schuchardt
The location of memory depends on the board. Do not assume memory at fixed memory locations. Use calloc() instead to allocate buffers. Acked-by: Ilias Apalodimas <[email protected]> Signed-off-by: Heinrich Schuchardt <[email protected]>
2025-11-21test: cmd/bdinfo: consider arch_print_bdinfo() outputHeinrich Schuchardt
On x86 commit 9b35dbc93fd4 ("x86: Show the timestamp counter with bdinfo") has added another bdinfo output line. On RISC-V commit 66b5ee9c558e ("riscv: add RISC-V fields to bdinfo command") implemented arch_print_bdinfo(). Update the bdinfo test accordingly. Fixes: 9b35dbc93fd4 ("x86: Show the timestamp counter with bdinfo") Fixes: 66b5ee9c558e ("riscv: add RISC-V fields to bdinfo command") Reviewed-by: Simon Glass <[email protected]> Signed-off-by: Heinrich Schuchardt <[email protected]>
2025-11-21test: cmd/bdinfo: make no flash assumptionHeinrich Schuchardt
The location and size of flash is device-dependent. Do not make any assumption about the location and size. Reviewed-by: Simon Glass <[email protected]> Acked-by: Ilias Apalodimas <[email protected]> Signed-off-by: Heinrich Schuchardt <[email protected]>
2025-11-21test: cmd/fdt: do not assume RNG device existsHeinrich Schuchardt
In fdt_test_chosen() currently we test if DM_RNG is configured. CONFIG_DM_RNG=y does not imply that a RNG device actually exists. For instance QEMU may be called with -device virtio-rng-device or not. The current test framework evicts the virtio RNG device even if QEMU is called with -device virtio-rng-device. In the fdt_test_chosen() check if a RNG device exists. Ignore 'No RNG device' messages. Acked-by: Ilias Apalodimas <[email protected]> Signed-off-by: Heinrich Schuchardt <[email protected]>
2025-11-21test: fdt_test_apply requires CONFIG_OF_LIBFDT_OVERLAYHeinrich Schuchardt
The `fdt apply` sub-command is only available if CONFIG_OF_LIBFDT_OVERLAY is enabled. Signed-off-by: Heinrich Schuchardt <[email protected]>
2025-11-19Merge tag 'u-boot-ufs-20251119' of ↵Tom Rini
https://source.denx.de/u-boot/custodians/u-boot-ufs - Sort again the UFS Kconfig & Makefile - Use unique name for the rcar-gen5 ufs driver
2025-11-19Merge tag 'xilinx-for-v2026.01-rc3' of ↵Tom Rini
https://source.denx.de/u-boot/custodians/u-boot-microblaze CI: https://source.denx.de/u-boot/custodians/u-boot-microblaze/-/pipelines/28413 AMD/Xilinx/FPGA changes for v2026.01-rc3 - Align brcp1 boot.bin location - Fix MB-V compilation warning when AXI enet is enabled
2025-11-19Merge branch 'u-boot-nand-20250918' of ↵Tom Rini
https://source.denx.de/u-boot/custodians/u-boot-nand-flash CI: https://source.denx.de/u-boot/custodians/u-boot-nand-flash/-/pipelines/28408 This pull request enhances NAND and SPI flash support, primarily focusing on the Airoha EN7523 platform. The Airoha SPI driver receives a major update, adding DMA, dual/quad-wire modes, and a critical workaround to prevent flash damage if the UART_TXD pin shorts to Ground. New chips supported include FudanMicro FM25S01A SPI-NAND and several Winbond SPI NOR devices. Fixes include correcting Kconfig dependencies, updating the mtd benchmark command to use lldiv(), and addressing minor bugs in the generic spi-mem and SPL NAND code.
2025-11-19net: axi_emac: Fix compilation warningsSai Varun Venkatapuram
Fix compiler warnings about casting integers to pointers of different sizes by using uintptr_t as intermediate type. This ensures proper type conversion across 32-bit and 64-bit architectures. Signed-off-by: Sai Varun Venkatapuram <[email protected]> Signed-off-by: Michal Simek <[email protected]> Link: https://lore.kernel.org/r/11b1d9b1a5589d06cff724e807832f366794c075.1762510401.git.michal.simek@amd.com
2025-11-19arm: dts: brcp1: Move SPL partition to offset 0x8000 in SPI flashWolfgang Wallner
The ROM code of Xilinx Zynq searches the boot flash for a "BootROM header" at increments of 32k (0x8000), beginning with 0x0000 for a configuration without authentication and beginning with 0x8000 for a configuration with authentication. [1] Move the offset of the SPL partition on the brcp1 board to 0x8000 so that both cases are the same, e.g. a board that is configured without authentication can boot an SPL partition with or without authentication. [1] Zynq 7000 TRM, section 6.3 "BootROM Code" Signed-off-by: Wolfgang Wallner <[email protected]> Signed-off-by: Michal Simek <[email protected]> Link: https://lore.kernel.org/r/[email protected]
2025-11-18mailmap: Add entry for Sam ProtsenkoSam Protsenko
Use 'Sam Protsenko' as my name consistently in git-shortlog. Also map my home email address (which I used at some point) to my current work email. Signed-off-by: Sam Protsenko <[email protected]>
2025-11-18.mailmap: add Raymond MaoHeinrich Schuchardt
The Linaro email address is no longer valid. See commit 4cad9faf8d28 ("MAINTAINERS: update my email address") Signed-off-by: Heinrich Schuchardt <[email protected]>
2025-11-18lib: optee: forbid OP-TEE OS loading without adding OP-TEE OS ↵Quentin Schulz
reserved-memory nodes I've spent time trying to figure out why my board (Rockchip PX30-based) suddenly boot loops when running a specific program in Linux userspace after working on a U-Boot upgrade. I actually inadvertently had the TEE environment variable set for a device which doesn't actually need to run any TEE OS (so had OPTEE_LIB disabled). It is currently possible to build an image with an OP-TEE OS (via the TEE environment variable) without OPTEE_LIB. U-Boot will happily load the TEE OS and the next OS (e.g. the Linux kernel). This is an issue because on FDT-enabled devices, OP-TEE OS adds nodes to the reserved-memory FDT node for the memory regions it just reserved for itself. This updated FDT is then passed to U-Boot proper which should know better not to use memory from there. The actual issue is that without OPTEE_LIB and OF_LIBFDT enabled, U-Boot proper will not copy those nodes over to the next OS's FDT before starting it. This results in the next OS's (e.g. Linux kernel) to not be aware of reserved memory, incurring random crashes or device reboots when it tries to access secure reserved memory area. On Rockchip, the U-Boot FIT image which contains both the TEE OS and U-Boot proper is generated by binman. Unfortunately, binman doesn't seem to have access to Kconfig symbols (grep CONFIG_ doesn't return anything meaningful and binman is either configured through FDT nodes or via CLI arguments, c.f. cmd_binman in the root Makefile) so we cannot try to be smart and guide the user to the correct Kconfig option to select if TEE is set. We could add a property based on the presence of OPTEE_LIB in rockchip-u-boot.dtsi for example and have a custom message based on that, the issue is that I assume all FDT-based platforms do actually need to do this dance, and not only Rockchip. Another option could be to add a CLI argument to binman through which we would pass the state of OPTEE_LIB and error out the build in that case, but that feels like opening the door to other various dirty hacks. Another option is to propagate the TEE environment variable to the preprocessor of the FDT (via dtc_cpp_flags) and then we can do #if defined(TEE) && !IS_ENABLED(CONFIG_OPTEE_LIB) #error "CONFIG_OPTEE_LIB must be enabled!" #endif but we have the same issue as above, it is then Rockchip-specific and doesn't feel right to me. Yet another option is to remove the @tee-SEQ node from the binman FIT description when OPTEE_LIB isn't set but then we would lose the following nice message when no TEE is provided: Image 'simple-bin' is missing optional external blobs but is still functional: tee-os and even worse, build without any TEE OS even though we could provide one via the TEE environment variable. Finally, another option could be to move this hack under arch/arm/mach-rockchip/Kconfig to make it Rockchip-specific or add a depends on ARCH_ROCKCHIP. However OP-TEE OS on Aarch32 Rockchip boards doesn't actually need any of that if SPL_OPTEE_IMAGE is set because arch/arm/mach-rockchip/sdram.c then marks some hardcoded memory regions in RAM as holes in DRAM, which has the same effect as reserved memory regions I guess. I assume other platforms may use something different, so it may be casting too wide of a net. This commit is what I could come up with as a stopgap measure to avoid building images that simply cannot reliably work and fail randomly. Signed-off-by: Quentin Schulz <[email protected]>
2025-11-18smbios: Fix warning when building with clangTom Rini
When building with clang, we see warnings such as: error: field max_size within 'struct smbios_type7' is less aligned than 'union cache_size_word' and is usually due to 'struct smbios_type7' being packed, which can lead to unaligned accesses [-Werror,-Wunaligned-access] when building drivers/sysinfo/smbios.c. Resolve this error by packing the unions as well after verifying they are complete (16 or 32 bits). Reviewed-by: Raymond Mao <[email protected]> Reviewed-by: Ilias Apalodimas <[email protected]> Signed-off-by: Tom Rini <[email protected]>
2025-11-18Merge patch series "Fixes for Clang builds for AArch64, improve ↵Tom Rini
CROSS_COMPILE handling" Dmitrii Sharshakov <[email protected]> says: Initially fix the inconsistency reported in reply to the previous series and also make sure AArch64 images can be built with latest Clang versions by guarding AArch32-specific options behind extra config checks. Tested qemu_arm_defconfig and qemu_arm64_defconfig with Clang 21, mainline (to be 22) ce7f9f9c and also Clang 18 (for AArch64 only, as I have not managed to build an AArch32 image with clang-18). Link: https://lore.kernel.org/r/[email protected]
2025-11-18arch: arm: fix AArch64 builds with Clang 21+Dmitrii Sharshakov
Clang is strict with respect to unknown options. Therefore, only enable AArch32-specific options when CONFIG_ARM64 is not set. Signed-off-by: Dmitrii Sharshakov <[email protected]>
2025-11-18build: fix prefix for Clang when CROSS_COMPILE is an absolute pathDmitrii Sharshakov
Clang cross-compilation worked when cross binutils were available in PATH. However, when binutils are not in the PATH clang failed to discover the assembler, falling back to host one. Make --prefix always absolute, Clang supports this and will search for e.g. $(prefix)-as for assembler. This makes sure user does not have to add cross binutils to PATH for Clang build. Fixes build for these examples (with qemu_arm(64)_defconfig): make CC=clang-21 CROSS_COMPILE=/.../bin/arm-none-eabi- make CC=clang-20 CROSS_COMPILE=/.../bin/aarch64-linux-gnu- Also validated for the case when provided with cross toolchain on PATH: PATH=/.../bin:$PATH make CC=clang-21 CROSS_COMPILE=arm-none-eabi- -j20 This patch does not affect GCC builds, and they have _not_ been validated against regressions. Reported-by: Tom Rini <[email protected]> Closes: https://lore.kernel.org/u-boot/20251106221355.GZ6688@bill-the-cat/ Signed-off-by: Dmitrii Sharshakov <[email protected]>
2025-11-18spi: airoha: en7523: workaround flash damaging if UART_TXD was short to GNDMikhail Kshevetskiy
We found that some serial console may pull TX line to GROUND during board boot time. Airoha uses TX line as one of it's BOOT pins. This will lead to booting in RESERVED boot mode. It was found that some flashes operates incorrectly in RESERVED mode. Micron and Skyhigh flashes are definitely affected by the issue, Winbond flashes are NOT affected. Details: -------- DMA reading of odd pages on affected flashes operates incorrectly. Page reading offset (start of the page) on hardware level is replaced by 0x10. Thus results in incorrect data reading. Usage of UBI make things even worse. Any attempt to access UBI leads to ubi damaging. As result OS loading becomes impossible. Non-DMA reading is OK. This patch detects booting in reserved mode, turn off DMA and print big fat warning. Signed-off-by: Mikhail Kshevetskiy <[email protected]>
2025-11-18spi: airoha: avoid usage of flash specific parametersMikhail Kshevetskiy
The spinand driver do 3 type of dirmap requests: * read/write whole flash page without oob (offs = 0, len = page_size) * read/write whole flash page including oob (offs = 0, len = page_size + oob_size) * read/write oob area only (offs = page_size, len = oob_size) The trick is: * read/write a single "sector" * set a custom sector size equal to offs + len. It's a bit safer to round up "sector size" value 64. * set the transfer length equal to custom sector size And it works! Thus we can find all data directly from dirmap request, so flash specific parameters is not needed anymore. Also * airoha_snand_nfi_config(), * airoha_snand_nfi_setup() functions becomes unnecessary. Signed-off-by: Mikhail Kshevetskiy <[email protected]>
2025-11-18spi: airoha: set custom sector size equal to flash page sizeMikhail Kshevetskiy
Set custom sector size equal to flash page size including oob. Thus we will always read a single sector. The maximum custom sector size is 8187, so all possible flash sector sizes are supported. This patch is a necessary step to avoid usage of flash specific parameters. Signed-off-by: Mikhail Kshevetskiy <[email protected]>
2025-11-18spi: airoha: reduce the number of modification of REG_SPI_NFI_CNFG and ↵Mikhail Kshevetskiy
REG_SPI_NFI_SECCUS_SIZE registers This just reduce the number of modification of REG_SPI_NFI_CNFG and REG_SPI_NFI_SECCUS_SIZE registers during dirmap operation. This patch is a necessary step to avoid usage of flash specific parameters. Signed-off-by: Mikhail Kshevetskiy <[email protected]>
2025-11-18spi: airoha: avoid setting of page/oob sizes in REG_SPI_NFI_PAGEFMTMikhail Kshevetskiy
spi-airoha-snfi uses custom sector size in REG_SPI_NFI_SECCUS_SIZE register, so setting of page/oob sizes in REG_SPI_NFI_PAGEFMT is not required. Signed-off-by: Mikhail Kshevetskiy <[email protected]>
2025-11-18dts: airoha: en7523: enable double speed flash readingMikhail Kshevetskiy
it should work properly after the airoha-snfi driver patches Signed-off-by: Mikhail Kshevetskiy <[email protected]>
2025-11-18spi: airoha: buffer must be 0xff-ed before writingMikhail Kshevetskiy
During writing, the entire flash page (including OOB) will be updated with the values from the temporary buffer, so we need to fill the untouched areas of the buffer with 0xff value to prevent accidental data overwriting. Signed-off-by: Mikhail Kshevetskiy <[email protected]>
2025-11-18spi: airoha: support of dualio/quadio flash reading commandsMikhail Kshevetskiy
Airoha snfi spi controller supports acceleration of DUAL/QUAD operations, but does not supports DUAL_IO/QUAD_IO operations. Luckily DUAL/QUAD operations do the same as DUAL_IO/QUAD_IO ones, so we can issue corresponding DUAL/QUAD operation instead of DUAL_IO/QUAD_IO one. Signed-off-by: Mikhail Kshevetskiy <[email protected]>
2025-11-18spi: airoha: return an error for continuous mode dirmap creation casesMikhail Kshevetskiy
This driver can accelerate single page operations only, thus continuous reading mode should not be used. Continuous reading will use sizes up to the size of one erase block. This size is much larger than the size of single flash page. Use this difference to identify continuous reading and return an error. Signed-off-by: Mikhail Kshevetskiy <[email protected]>
2025-11-18spi: airoha: add dma supportMikhail Kshevetskiy
This patch speed up cache reading/writing/updating opearions. It was tested on en7523/an7581 and some other Airoha chips. It will speed up * page reading/writing without oob * page reading/writing with oob * oob reading/writing (significant for UBI scanning) The only know issue appears in a very specific conditions for en7523 family chips only. Signed-off-by: Mikhail Kshevetskiy <[email protected]>
2025-11-18spi: airoha: add support of dual/quad wires spi modes to exec_op() handlerMikhail Kshevetskiy
Booting without this patch and disabled dirmap support results in [ 2.980719] spi-nand spi0.0: Micron SPI NAND was found. [ 2.986040] spi-nand spi0.0: 256 MiB, block size: 128 KiB, page size: 2048, OOB size: 128 [ 2.994709] 2 fixed-partitions partitions found on MTD device spi0.0 [ 3.001075] Creating 2 MTD partitions on "spi0.0": [ 3.005862] 0x000000000000-0x000000020000 : "bl2" [ 3.011272] 0x000000020000-0x000010000000 : "ubi" ... [ 6.195594] ubi0: attaching mtd1 [ 13.338398] ubi0: scanning is finished [ 13.342188] ubi0 error: ubi_read_volume_table: the layout volume was not found [ 13.349784] ubi0 error: ubi_attach_mtd_dev: failed to attach mtd1, error -22 [ 13.356897] UBI error: cannot attach mtd1 If dirmap is disabled or not supported in the spi driver, the dirmap requests will be executed via exec_op() handler. Thus, if the hardware supports dual/quad spi modes, then corresponding requests will be sent to exec_op() handler. Current driver does not support such requests, so error is arrised. As result the flash can't be read/write. This patch adds support of dual and quad wires spi modes to exec_op() handler. Signed-off-by: Mikhail Kshevetskiy <[email protected]>
2025-11-18spi: airoha: remove unnecessary operation adjust_op_sizeMikhail Kshevetskiy
This operation is not needed because airoha_snand_write_data() and airoha_snand_read_data() will properly handle data transfers above SPI_MAX_TRANSFER_SIZE. Signed-off-by: Mikhail Kshevetskiy <[email protected]>
2025-11-18spi: spi-mem: fix coverity report CID 537478Mikhail Kshevetskiy
Coverity finds a potential integer overflow in the following code: ncycles += ((op->data.nbytes * 8) / op->data.buswidth) / (op->data.dtr ? 2 : 1); A quick analysis shows that the only caller of the suspicious code is the spinand_select_op_variant() function from the drivers/mtd/nand/spi/core.c file. According to the code the value of op->data.nbytes is equal to nanddev_per_page_oobsize(nand) + nanddev_page_size(nand) Therefore it's maximum value a bit larger than 4Kb (I never seen flashes with page size large than 4Kb). So op->data.nbytes always fits within 13 bits. As result an overflow will never happen. Anyway it's better fix an issue to eliminate the error message. Signed-off-by: Mikhail Kshevetskiy <[email protected]>
2025-11-18mtd: nand: raw: Drop SYS_NAND_SOFT_ECC from NAND_SANDBOXTom Rini
This option is only meaningful within the davinci nand driver, so drop the statement here (which had no effect). Signed-off-by: Tom Rini <[email protected]>
2025-11-18mtd: spinand: add support for FudanMicro FM25S01ATianling Shen
Add support for FudanMicro FM25S01A SPI NAND. This driver is ported from linux v6.18 and tested on a MT7981 board. Link: https://lore.kernel.org/linux-mtd/[email protected]/ Reviewed-by: Mikhail Kshevetskiy <[email protected]> Signed-off-by: Tianling Shen <[email protected]>