summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2025-03-15drivers: mtd: nand: Kconfig: Add SYS_NAND_PAGE_SIZE dependencyDinesh Maniyam
Add SYS_NAND_PAGE_SIZE dependency for cadence NAND. This config is needed as the SPL driver will use this parameter to read uboot-proper image in NAND during booting. Signed-off-by: Dinesh Maniyam <dinesh.maniyam@intel.com>
2025-03-15drivers: mtd: nand: Enabled Kconfig and Makefile for Cadence-SPLDinesh Maniyam
Enable the Kconfig and Makefile for the Cadence-Nand SPL support in agilex5 family device. Signed-off-by: Dinesh Maniyam <dinesh.maniyam@intel.com>
2025-03-15drivers: mtd: nand: spl: Add support for nand SPL load imageDinesh Maniyam
Add support for spl nand to load binary image from NAND to RAM. Leverage the existing nand_spl_load_image from nand_spl_loaders.c Signed-off-by: Dinesh Maniyam <dinesh.maniyam@intel.com>
2025-03-15drivers: mtd: nand: base: Add support for Hardware ECC for check bad blockDinesh Maniyam
Leverage linux code to support hardware ECC interface to verify nand bad block. Signed-off-by: Dinesh Maniyam <dinesh.maniyam@intel.com>
2025-03-15drivers: nand: Enabled Kconfig and Makefile for cdns-nandDinesh Maniyam
Enable the Kconfig and Makefile for the Cadence NAND driver for the agilex5 family device. Signed-off-by: Dinesh Maniyam <dinesh.maniyam@intel.com>
2025-03-15drivers: mtd: nand: cadence: Use bounce bufferDinesh Maniyam
Enable nand to use bounce buffer. In bounce buffer, read/write buf will use cadence->buf which has been allocated using malloc. This will align the memory and avoid memory to be allocated in different addresses. Signed-off-by: Dinesh Maniyam <dinesh.maniyam@intel.com>
2025-03-15drivers: mtd: nand: cadence: Poll for desc complete statusDinesh Maniyam
Poll for thread complete status to ensure the descriptor processing is complete. If complete then can ensure controller already update the descriptor status. Signed-off-by: Dinesh Maniyam <dinesh.maniyam@intel.com>
2025-03-15drivers: mtd: nand: cadence: Flush & invalidate dma descriptorDinesh Maniyam
Ensure ddr memory is updated with the data from dcache. This would help to ensure cdma always reading the latest dma descriptor from ddr memory. Signed-off-by: Dinesh Maniyam <dinesh.maniyam@intel.com>
2025-03-15drivers: mtd: nand: cadence: Support cmd SET_FEATURES & GET_FEATURESDinesh Maniyam
Support NAND_CMD_SET_FEATURES & NAND_CMD_GET_FEATURES. These commands is one of the basic commands of NAND. The parameters get from these commands will be used to set timing mode of NAND data interface. Signed-off-by: Dinesh Maniyam <dinesh.maniyam@intel.com>
2025-03-15drivers: mtd: nand: cadence: Add support for NAND_CMD_RESETDinesh Maniyam
Support nand reset command for Cadence Nand Driver. Signed-off-by: Dinesh Maniyam <dinesh.maniyam@intel.com>
2025-03-15drivers: mtd: nand: cadence: Add support for NAND_CMD_PARAMDinesh Maniyam
Add support for reading param page of NAND device. These paramaters are unique and used for identification purpose. Signed-off-by: Dinesh Maniyam <dinesh.maniyam@intel.com>
2025-03-15drivers: mtd: nand: cadence: Add support for readid commandDinesh Maniyam
Add support for readid command in Cadence NAND driver. The id is unique and used for flash identification. Signed-off-by: Dinesh Maniyam <dinesh.maniyam@intel.com>
2025-03-15drivers: mtd: nand: cadence: Add support for read status commandDinesh Maniyam
Add support for read status command in Cadence NAND driver. This status bit is important to check whether the flash is write-protected. Signed-off-by: Dinesh Maniyam <dinesh.maniyam@intel.com>
2025-03-15drivers: mtd: nand: Add driver for Cadence NandDinesh Maniyam
Enable driver for Cadence NAND for the family device agilex5. This driver is leveraged from the path /drivers/mtd/nand/raw/cadence-nand-controller.c from the stable version 6.11.2. Signed-off-by: Dinesh Maniyam <dinesh.maniyam@intel.com>
2025-03-15arm: dts: agilex5: Enabled cdns-nand dts settingDinesh Maniyam
Enable cdns-nand dts setting for the socfpga_agilex5 family device. Signed-off-by: Dinesh Maniyam <dinesh.maniyam@intel.com>
2025-03-15dt: nand: add cadence nand dt-bindingsDinesh Maniyam
The Cadence NAND is a configurable mtd raw block which supports multiple options for chipsets, clocking and reset structure, and feature list. Signed-off-by: Dinesh Maniyam <dinesh.maniyam@intel.com>
2025-03-13ARM: dts: imx: Drop bogus regulator extras on DH i.MX6 DHCOM DRC02Marek Vasut
The regulator extras should be placed in the USB H1 regulator node, the /regulator-usb-h1-vbus. They are already present there in the upstream DT, so delete this bogus node entirely. Signed-off-by: Marek Vasut <marex@denx.de>
2025-03-13Merge tag 'rpi-2025.04-rc4' of ↵Tom Rini
https://source.denx.de/u-boot/custodians/u-boot-raspberrypi Updates for RPi for 2025.04: - Copy Bluetooth device address in DT - Keep warnings from firmware in DT, if any - Only add frame buffer node if CONFIG_FDT_SIMPLEFB is set - Add identifiers for the new RPi 5 series
2025-03-13Raspberry Pi: Copy Bluetooth device address in DTFiona Klute
The firmware sets local-bd-address, copy it when loading a new DT. Signed-off-by: Fiona Klute <fiona.klute@gmx.de> Signed-off-by: Peter Robinson <pbrobinson@gmail.com>
2025-03-13Raspberry Pi: Keep warnings from firmware in DT, if anyFiona Klute
The /chosen/user-warnings property is created by the RPi firmware if there are warnings to report, keep it to make debugging easier. For example, if the firmware config.txt contains "dtoverlay=error-example" and that example references an undefined symbol "&nosuchdev" the warning can be read after boot: $ cat /proc/device-tree/chosen/user-warnings dterror: can't find symbol 'nosuchdev' Failed to resolve overlay 'error-example' Signed-off-by: Fiona Klute <fiona.klute@gmx.de> Reviewed-by: Matthias Brugger <mbrugger@suse.com> Signed-off-by: Peter Robinson <pbrobinson@gmail.com>
2025-03-13rpi: Only add frame buffer node if CONFIG_FDT_SIMPLEFB is setMartin Stolpe
The functions fdt_simplefb_add_node and fdt_simplefb_enable_and_mem_rsv are only available if CONFIG_FDT_SIMPLEFB is enabled. Signed-off-by: Martin Stolpe <martin.stolpe@gmail.com> Acked-by: Matthias Brugger <mbrugger@suse.com> Signed-off-by: Peter Robinson <pbrobinson@gmail.com>
2025-03-13rpi: Add identifiers for the new RPi 5 seriesPeter Robinson
The Raspberry Pi foundation have released the Raspberry Pi 500, CM5 an CM5 lite devices so add the assoicated revision identifers so we can detect them. Signed-off-by: Peter Robinson <pbrobinson@gmail.com> Acked-by: Matthias Brugger <mbrugger@suse.com>
2025-03-12Merge tag 'u-boot-imx-master-20250312' of ↵Tom Rini
https://gitlab.denx.de/u-boot/custodians/u-boot-imx CI: https://source.denx.de/u-boot/custodians/u-boot-imx/-/pipelines/25106 - Fix VDDQ voltage setting for LPDDR4x on imx93_evk.
2025-03-12imx93_evk: Fix wrong VDDQ voltage setting for LPDDR4xYe Li
The default PCA9451 BUCK2 volt is 0.6 V for LPDDR4x VDDQ. The codes are actually used for reworking to LPDDR4 which needs VDDQ at 1.1 V. So remove it to avoid LPDDR4x issue. Signed-off-by: Ye Li <ye.li@nxp.com> Acked-by: Peng Fan <peng.fan@nxp.com>
2025-03-10Prepare v2025.04-rc4v2025.04-rc4Tom Rini
Signed-off-by: Tom Rini <trini@konsulko.com>
2025-03-10configs: Resync with savedefconfigTom Rini
Resync all defconfig files using qconfig.py Signed-off-by: Tom Rini <trini@konsulko.com>
2025-03-10Merge tag 'u-boot-stm32-20250310' of ↵Tom Rini
https://source.denx.de/u-boot/custodians/u-boot-stm ARM: stm32mp: Fix boot hang on STM32MP15xx with 1 GiB of DRAM.
2025-03-10ARM: stm32mp: Fix dram_bank_mmu_setup() for ram_top=0Marek Vasut
On STM32MP15xx with 1 GiB of DRAM, the gd->ram_top becomes 0, because DRAM base 0xc0000000 + DRAM size 0x40000000 leads to gd->ram_top overflow which resets it to 0. Handle this special case simply by checking for gd->ram_top being zero, and if it is, assume there is no addr >= gd->ram_top . This fixes boot hang on STM32MP15xx with 1 GiB of DRAM. Fixes: 25fb58e88aba ("ARM: stm32mp: Fix dram_bank_mmu_setup() for LMB located above ram_top") Signed-off-by: Marek Vasut <marex@denx.de> Reviewed-by: Patrice Chotard <patrice.chotard@foss.st.com>
2025-03-05scripts/checkpatch.pl: Upgrade IS_ENABLED_CONFIG to error for U-BootTom Rini
A problem we have today is that some instances of IS_ENABLED(FOO) have crept in to the code. This is in turn because with checkpatch.pl this is only a warning and not an error, so they were overlooked. And looking deeper, in the Linux kernel this pattern is allowed because IS_ENABLED(DEFINED_FLAG) is allowed if discouraged and a quick skim of the instances I saw in the current kernel follow this pattern. In U-Boot however, this is not allowed, so bump to an error. Signed-off-by: Tom Rini <trini@konsulko.com>
2025-03-05fs/squashfs: Fix memory leak in sqfs_size_nest()Andrea della Porta
In case MAX_SYMLINK_NEST is reached while determining the size on a symlink node, the function returns immediately. This would not free the resources after the free_strings: label causing a memory leak. Set the ret value and just break out of the switch to fix this. Signed-off-by: Andrea della Porta <andrea.porta@suse.com> Reviewed-by: Miquel Raynal <miquel.raynal@bootlin.com>
2025-03-05mcheck: Fix SPDX License Identifier to LGPL-2.1-or-laterDiederik de Haas
The GPL-2.1+ SPDX License Identifier doesn't exist, but luckily the full license text was available which shows that GPL-2.1+ was a typo and it should have been LGPL-2.1-or-later. As the '+' in LGPL-2.1+ is deprecated in SPDX 3.0, use the preferred identifier, which is '-or-later'. Normally the full license header is removed when switching to SPDX License Identifiers, so do that now. Signed-off-by: Diederik de Haas <didi.debian@cknow.org>
2025-03-05MAINTAINERS: .mailmap: Update Sumit Garg's email addressSumit Garg
Update Sumit Garg's email address to @kernel.org. Signed-off-by: Sumit Garg <sumit.garg@linaro.org>
2025-03-05Merge tag 'xilinx-for-v2025.04-rc4' of ↵Tom Rini
https://source.denx.de/u-boot/custodians/u-boot-microblaze AMD/Xilinx changes for v2025.04-rc4 Zynq: - Guard code around SPL_FS_LOAD_PAYLOAD_NAME Versal*: - Remove tftp block size 4096 Versal: - Use clocks per DT binding - Store driver data in data section Versal Gen 2: - Fix major/minor version decoding
2025-03-05xilinx: Remove tftp block size 4096Padmarao Begari
The zynqmp gem driver support max MTU size 1536, so remove tftp block size 4096 from defconfig and use default tftp block size. Fixes: a33b4b96b3cf ("xilinx: Enable MBEDTLS/LWIP/WGET and WGET_HTTPS") Signed-off-by: Padmarao Begari <padmarao.begari@amd.com> Link: https://lore.kernel.org/r/20250304043030.2344536-1-padmarao.begari@amd.com Signed-off-by: Michal Simek <michal.simek@amd.com>
2025-03-04led: Fix next Coverity scan errorHeiko Schocher
The following was reported by Coverity scan: *** CID 542488: Control flow issues (NO_EFFECT) /drivers/led/led-uclass.c: 277 in led_get_function_name() 271 return uc_plat->label; 272 273 /* Now try to detect function label name */ 274 func = dev_read_string(dev, "function"); 275 cp = dev_read_u32(dev, "color", &color); 276 // prevent coverity scan error CID 541279: (TAINTED_SCALAR) >>> CID 542488: Control flow issues (NO_EFFECT) >>> This less-than-zero comparison of an unsigned value is never true. "color < 0U". 277 if (color < LED_COLOR_ID_WHITE || color >= LED_COLOR_ID_MAX) 278 cp = -EINVAL; 279 Fix it. Addresses-Coverity-ID: 542488 Link: https://lists.denx.de/pipermail/u-boot/2025-February/581567.html Signed-off-by: Heiko Schocher <hs@denx.de> Reviewed-by: Quentin Schulz <quentin.schulz@cherry.de>
2025-03-04gpio: 74x146: depend on DM_SPIJ. Neuschäfer
Currently, Kconfig allows building CONFIG_DM_74X164 without CONFIG_DM_SPI, which results in linker errors because this driver actually uses dm_spi_* functions: drivers/gpio/74x164_gpio.o: in function `gen_74x164_write_conf': undefined reference to `dm_spi_claim_bus' undefined reference to `dm_spi_xfer' undefined reference to `dm_spi_release_bus' Signed-off-by: J. Neuschäfer <j.ne@posteo.net>
2025-03-04Merge patch series "Syncing up on skip-at-start"Tom Rini
Simon Glass <sjg@chromium.org> says: This series has the skip-at-start change and a few fixes. Sadly it also includes a revert for the dm_probe_devices() patch, since it breaks jerry (RK3288). I will need to investigate way. It is based on -next and I can send a PR if desired. https://source.denx.de/u-boot/custodians/u-boot-dm/-/pipelines/24835 Link: https://lore.kernel.org/r/20250226162621.2681677-1-sjg@chromium.org
2025-03-04x86: Stop working around skip-at-startSimon Glass
With a recent Binman change, the skip-at-start property is now honoured, meaning that all image-pos values in the affected section start from the skip-at-start value. The x86 code works around the old behaviour at present, so update it. Signed-off-by: Simon Glass <sjg@chromium.org>
2025-03-04binman: Honour the skip-at-start property more faithfullySimon Glass
A discussion on the mailing list about dealing with block offsets and binman symbols made me think that something is wrong with how Binman deals with the skip-at-start property. The feature was originally designed to handle x86 ROMs, which are mapped at the top of the address space. That seemed too specific, whereas skipping some space at the start seemed more generally useful. It has proved useful. For example, rockchip images start at block 64, so a skip-at-start of 0x8000 deals with this. But it doesn't actually work correctly, since the image_pos value does not give the actual position on the media. Fix this and update the documentation, moving it into the 'section' section. Signed-off-by: Simon Glass <sjg@chromium.org>
2025-03-04binman: Rename Entry.end_4gbSimon Glass
The property is named end_at_4gb so name the variable the same, to avoid confusion. Signed-off-by: Simon Glass <sjg@chromium.org>
2025-03-04samsung: snow: Use BLOBLIST_FIXEDSimon Glass
Snow requires a fixed bloblist to operate, so re-enable this option. Signed-off-by: Simon Glass <sjg@chromium.org> Fixes: 864106f3c47 ("bloblist: Make BLOBLIST_ALLOC the default")
2025-03-04Revert "dm: core: Simplify dm_probe_devices()"Simon Glass
Unfortunately this change was not safe as some devices are bound before relocation, but we don't want to probe them. It causes 'raise: Signal # 8 caught' on jerry. Move the bootstage timer to after autoprobe in initf_dm() since the trace test does not tolerate any variance. This reverts commit 21dd873572a01d74bfdfceb7a30b056f8ccba187. Signed-off-by: Simon Glass <sjg@chromium.org>
2025-03-04board: verdin-am62: fix missing memory fixup callStefan Eichenberger
The commit bc07851897bd ("board: ti: Pull redundant DDR functions to a common location and Fixup DDR size when ECC is enabled") broke DRAM support for the Verdin AM62. This was partially fixed with commit 3f866c47b582 ("board: verdin-am62: add dram_init_banksize"). However, because fixup_memory_node was not called, the Linux kernel was started with the wrong memory size on modules with less memory available. This resulted in boot failures. Fix this issue by calling fixup_memory_node in the board file. spl_perform_fixups will be called in the SPL and now sets the correct memory size in the device tree of U-Boot by calling fixup_memory_node. U-Boot will then adjust the memory sizes of Linux during bootm/booti in fdt_fixup_memory_banks. This chain ensures that U-Boot and Linux only use RAM that is actually available. Fixes: 3f866c47b582 ("board: verdin-am62: add dram_init_banksize") Fixes: bc07851897bd ("board: ti: Pull redundant DDR functions to a common location and Fixup DDR size when ECC is enabled") Signed-off-by: Stefan Eichenberger <stefan.eichenberger@toradex.com> Acked-by: Francesco Dolcini <francesco.dolcini@toradex.com>
2025-03-04miiphy: define mii_devs with LIST_HEAD()Weijie Gao
When enabling net console and console multiplexing, a boot crash was observed using mtk_eth driver with stdin/stdout set to "serial,nc" in persistent environment: > CPU: MediaTek MT7981 > Model: OpenWrt One > DRAM: 1 GiB > Core: 35 devices, 15 uclasses, devicetree: separate > spi-nand: spi_nand spi_nand@0: Winbond SPI NAND was found. > spi-nand: spi_nand spi_nand@0: 128 MiB, block size: 128 KiB, page size: 2048, OOB size: 64 > Loading Environment from UBI... SF: Detected w25q128 with page size 256 Bytes, erase size 4 KiB, total 16 MiB > mtd: partition "ubi" extends beyond the end of device "spi-nand0" -- size truncated to 0x7f00000 > Read 126976 bytes from volume ubootenv to 000000007f7bf0c0 > Read 126976 bytes from volume ubootenv2 to 000000007f7de100 > OK > "Synchronous Abort" handler, esr 0x96000004, far 0xeafffffeea000018 > elr: 0000000041e63cd4 lr : 0000000041e1b844 (reloc) > elr: 000000007ff9ecd4 lr : 000000007ff56844 > x0 : eafffffeea000018 x1 : 000000007fb552e0 > x2 : 00000000000000fe x3 : 0000000000000000 The cause is that "serial,nc" forced the console subsystem to initialize the ethernet driver before ethernet subsystem initialization (console_init_r() is called before initr_net()). During the mtk_eth driver initialization, mdio_register() will be called, and miiphy_get_dev_by_name() will then be called. The miiphy_get_dev_by_name() will check the list "mii_devs" to see if the passed device name exists. However the mii_devs is defined without initialization: > static struct list_head mii_devs; and the actual initialization is done in the following chain: initr_net -> eth_initialize -> eth_common_init -> miiphy_init Since initr_net() hasn't be called, iterating over the mii_devs will access to physical address 0 (mii_devs.next == NULL) and will cause the crash. The fix is to define mii_devs using: > static LIST_HEAD(mii_devs); As the "current_mii" is defined as a static variable, it will always be NULL in board_r stage and initializing it will NULL is unnecessary. So the entire miiphy_init() can be remove. Signed-off-by: Weijie Gao <hackpascal@gmail.com>
2025-03-03MAINTAINERS: Update contact information for Greg MalysaGreg Malysa
My previous address is no longer accessible, but I will continue to be involved in maintaining the ADI sc5xx platforms. This updates my contact information and hopefully avoids bouncing emails from other developers. Signed-off-by: Greg Malysa <malysagreg@gmail.com>
2025-03-03arm64: versal2: Show major and minor silicon versionMichal Simek
ES1 silicon is 0x10 (16) and production is 0x20 (32) but correct number to see are v1.0 or v2.0 instead of v16 or v32. Signed-off-by: Michal Simek <michal.simek@amd.com> Link: https://lore.kernel.org/r/20095339334fe07f373ffae3bdbfec51f5a00dc7.1739882585.git.michal.simek@amd.com
2025-03-03clk: versal: Store driver data in data sectionPadmarao Begari
Line 171 in README is describing that before relocation no code should use global variable because global variables are placed to BSS section which is initialized to 0 after relocation. On Versal platforms clock driver is initialized before relocation (via using dm,bootph-all flag in DT) and global variables are initialized which works if this is used only before relocation. But the variables are used after relocation too but values are zeroed which is ending up incorrect behavior. That's why place variables to data section to ensure that values are not cleared which is for now the quickest temporary solution. The correct way to do it is to move all global variables to private data to avoid it. Signed-off-by: Padmarao Begari <padmarao.begari@amd.com> Link: https://lore.kernel.org/r/20250218052419.1141139-1-padmarao.begari@amd.com Signed-off-by: Michal Simek <michal.simek@amd.com>
2025-03-03xilinx: zynq: Guard code around SPL_FS_LOAD_PAYLOAD_NAMEMichal Simek
Guard code around CONFIG_SPL_FS_LOAD_PAYLOAD_NAME usage to avoid compilation failure. Signed-off-by: Michal Simek <michal.simek@amd.com> Link: https://lore.kernel.org/r/f15a9762494945814b06a71db90ee4db59dd17ed.1738910601.git.michal.simek@amd.com
2025-03-03Merge tag 'fsl-qoriq-2025-3-3' of ↵Tom Rini
https://source.denx.de/u-boot/custodians/u-boot-fsl-qoriq CI: https://source.denx.de/u-boot/custodians/u-boot-fsl-qoriq/-/pipelines/24933 Fixes: - Re-arm packet buffer in error case in tsec driver - Fix LS1021a build - Fix flush dcache alignment in caam_hash
2025-03-03Merge tag 'efi-2025-04-rc4' of ↵Tom Rini
https://source.denx.de/u-boot/custodians/u-boot-efi CI: * https://source.denx.de/u-boot/custodians/u-boot-efi/-/pipelines/24904 UEFI: * Let efi_net_set_dp properly update the device path Network: * Avoid buffer overflows in wget_info with legacy TCP stack