summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2025-12-18test/py, buildman: Update filelock package versionTom Rini
The GitHub dependabot tool has reported a "medium" priority bug CVE-2025-68146, with this package. Update to the patched version. Reported-by: GitHub dependabot Signed-off-by: Tom Rini <[email protected]>
2025-12-18doc: pytest: fix typo in multiple config options example for buildconfigspecQuentin Schulz
The option should be 'net_lwip' and not 'net lwip' (see all usage of it in the test code base). Fixes: 2bac578c5aba ("test: allow multiple config options in buildconfigspec") Signed-off-by: Quentin Schulz <[email protected]> Reviewed-by: Jerome Forissier <[email protected]> Reviewed-by: Mattijs Korpershoek <[email protected]>
2025-12-18cmd: nvedit: Validate argument count before useMarek Vasut
Avoid NULL pointer dereference in case 'env select' is invoked without parameters, check the arg count and make sure it is at least 2, otherwise print usage. The crash is easy to trigger e.g. in sandbox: $ ./u-boot -Tc "env select" Fixes: a97d22ebba23 ("cmd: env: add env select command") Signed-off-by: Marek Vasut <[email protected]> Tested-by: Vincent Stehlé <[email protected]> Reviewed-by: Ilias Apalodimas <[email protected]>
2025-12-18doc: board: ti: fix alt name for tispl.bin in DFU modeAnshul Dalal
The alt name for tispl binary is "tispl.bin" and not "tispl", this patch fixes the documentation to the correct alt name. Fixes: def64b493748 ("doc: board: Add document for DFU boot on am62x SoCs") Fixes: 3633fdbb6b90 ("ti: add support for AM6254atl SiP") Signed-off-by: Anshul Dalal <[email protected]> Reviewed-by: Mattijs Korpershoek <[email protected]>
2025-12-18Merge tag 'net-20251218' of https://source.denx.de/u-boot/custodians/u-boot-netTom Rini
Pull request net-20251218. net-lwip: - Avoid NULL dereference in _set_cacert() - Fix filename handling in TFTP
2025-12-18cmd: lwip/wget: avoid NULL dereference in _set_cacert()Heinrich Schuchardt
Running `wget cacert builtin` leads to a crash in _set_cacert(): Unhandled exception: Load access fault Function _set_cacert() dereferences variable wget_info. We must initialize it before executing the cacert sub-command. Fixes: d3761a31ef09 ("lwip: split net/lwip/wget.c") Signed-off-by: Heinrich Schuchardt <[email protected]> Reviewed-by: Jerome Forissier <[email protected]> Reviewed-by: Ilias Apalodimas <[email protected]>
2025-12-18net: lwip: tftp: Fix filename handlingAndrew Goodbody
The code to choose the filename to use does not cope with no name set at all. Firstly the test for a name in net_boot_file_name tests the pointer rather than the string it points to. Secondly the cleanup on exit in this case attempts to free a global variable. Fix both issues. Signed-off-by: Andrew Goodbody <[email protected]> Reviewed-by: Jerome Forissier <[email protected]>
2025-12-18Merge tag 'u-boot-socfpga-next-20251217' of ↵Tom Rini
https://source.denx.de/u-boot/custodians/u-boot-socfpga into next This pull request brings together a set of fixes and enhancements across the SoCFPGA platform family, with a focus on MMC/SPL robustness, EFI boot enablement, and Agilex5 SD/eMMC support. CI: https://source.denx.de/u-boot/custodians/u-boot-socfpga/-/pipelines/28776 Highlights: * SPL / MMC: o Fix Kconfig handling for SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION_TYPE o Correct raw sector calculations and respect explicit sector values when loading U-Boot from MMC in SPL o Adjust raw MMC loading logic for SoCFPGA platforms * EFI boot: o Permit EFI booting on SoCFPGA platforms o Disable mkeficapsule tool build for Arria 10 where unsupported * Agilex5: o Upgrade SDHCI controller from SD4HC to SD6HC o Enable MMC and Cadence SDHCI support in defconfig o Add dedicated eMMC device tree and defconfig for Agilex5 SoCDK o Revert incorrect GPIO configuration for SDIO_SEL o Refine U-Boot DT handling for SD and eMMC boot variants * SPI: o Allow disabling the DesignWare SPI driver in SPL via Kconfig * Board / configuration fixes: o Enable random MAC address generation for Cyclone V o Fix DE0-Nano-SoC boot configuration o Remove obsolete or conflicting options from multiple legacy SoCFPGA defconfigs
2025-12-17configs: socfpga: Permit EFI bootingJan Kiszka
Commit f369e1564cf4 turned those off because the SPL size grew too large. It also argued that those boards would never support EFI booting. The former is correct, therefore keep CONFIG_SPL_EFI_PARTITION off. CONFIG_SPL_ISO_PARTITION is default off. What is not correct is that those boards are limited to legacy boot - you just need a hybrid partition table to make both the bootrom and UEFI happy. Signed-off-by: Jan Kiszka <[email protected]> Reviewed-by: Tien Fong Chee <[email protected]>
2025-12-17configs: socfpga: Fix de0_nano_soc bootJan Kiszka
By default, the de0_nano_soc used raw sectors, but the address became invalid due the raw-mode refactorings. With loading via partition type fixed, we can switch to that mode which is in line with what the ROM loader does. Fixes: 2a00d73d081a ("spl: mmc: Try to clean up raw-mode options") Signed-off-by: Jan Kiszka <[email protected]> Reviewed-by: Tien Fong Chee <[email protected]>
2025-12-17arch: arm: mach-socfpga: Adjust a raw sectors for MMC loading of U-Boot from SPLJan Kiszka
If U-Boot is located on MMC, SPL and U-Boot proper are glued together. More precisely, SPL is stored 4 times. Take this and its padding into account and adjust sector number via board_spl_mmc_get_uboot_raw_sector. This allows loading from a partition, without the need to hard-code the offset via SYS_MMCSD_RAW_MODE_U_BOOT_USE_SECTOR Signed-off-by: Jan Kiszka <[email protected]> Reviewed-by: Tien Fong Chee <[email protected]>
2025-12-17spl: mmc: Respect sector value passed to mmc_load_image_raw_partitionJan Kiszka
This function and the sector parameter evolved over the time. By now, sector is influenced by spl_mmc_get_uboot_raw_sector which allows to adjust the read sector with an offset that U-Boot proper may have inside the partition. That used to work by chance if both CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_USE_SECTOR and CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION were enabled. Since 2a00d73d081a they are a choice, and we need to drop the condition to maintain this feature. Signed-off-by: Jan Kiszka <[email protected]> Reviewed-by: Tien Fong Chee <[email protected]>
2025-12-17spl: mmc: Account for SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION_TYPE being a ↵Jan Kiszka
choice Add SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION_TYPE as condition where so far SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION was enough - though often by chance as both options were enabled. Reorder the #ifdef blocks at this chance to follow the order in the Kconfig menu. Fixes: 2a00d73d081a ("spl: mmc: Try to clean up raw-mode options") Signed-off-by: Jan Kiszka <[email protected]> Reviewed-by: Tien Fong Chee <[email protected]>
2025-12-17spl: Kconfig: Add missing SPL_LOAD_BLOCK for ↵Jan Kiszka
SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION_TYPE We need to explicitly select SPL_LOAD_BLOCK when USE_PARTITION_TYPE is enabled, just like the other choices do. Fixes: 2a00d73d081a ("spl: mmc: Try to clean up raw-mode options") Signed-off-by: Jan Kiszka <[email protected]> Reviewed-by: Tien Fong Chee <[email protected]>
2025-12-17spi: designware: Allow disabling designware driver in SPLRalph Siemsen
To reduce SPL size, make it possible to exclude designware driver, while keeping it enabled in the main u-boot. Signed-off-by: Ralph Siemsen <[email protected]> Reviewed-by: Sean Anderson <[email protected]>
2025-12-17configs: arria10: Disable mkeficapsule tool buildAlif Zakuan Yuslaimi
mkeficapsule tool will be built by default if EFI_LOADER is set due to commit b7a625b1ce49 ("tools: Build mkeficapsule tool by default if EFI_LOADER is set"). This will cause compilation error on all our SoCFPGA devices, hence we will be disabling this config as we do not utilize this tool. Signed-off-by: Alif Zakuan Yuslaimi <[email protected]> Reviewed-by: Tien Fong Chee <[email protected]>
2025-12-17arm: dts: socfpga: agilex5: Add dedicated eMMC device tree supportTanmay Kathpalia
Add dedicated device tree support for eMMC configuration on the Agilex5 SoCDK board, providing an alternative to the default SD card setup. Changes to socfpga_agilex5.dtsi: - - Configure always-on regulator for stable eMMC operation New device tree files: - socfpga_agilex5_socdk_emmc.dts: Main eMMC device tree configuration * Configure for eMMC operation (no-sd, no-sdio, non-removable) * Set 8-bit bus width and high speed capability * Add timing parameters for legacy and SDR modes * Configure voltage supplies for eMMC power and I/O * Add fixed 1.8V regulator for eMMC I/O voltage supply - socfpga_agilex5_socdk_emmc-u-boot.dtsi: U-Boot specific additions * Include common Agilex5 U-Boot configurations * Set SPL boot order with eMMC support * Enable necessary peripherals for boot-time operation Configuration files: - configs/socfpga_agilex5_emmc_defconfig: eMMC-specific configuration * Inherit from base Agilex5 configuration * Disable GPIO regulator support (not needed for fixed eMMC setup) * Set eMMC-specific device tree Build system integration: - Add socfpga_agilex5_socdk_emmc.dtb target to Makefile Signed-off-by: Tanmay Kathpalia <[email protected]> Reviewed-by: Tien Fong Chee <[email protected]>
2025-12-17configs: socfpga_agilex5: Enable MMC and Cadence SDHCI supportTanmay Kathpalia
Enable MMC support with Cadence SDHCI controller for both SPL and U-Boot proper on Agilex5 platform to support SD card operations in legacy and high speed timing modes. MMC controller configuration: - Enable MMC subsystem (CONFIG_MMC=y, CONFIG_DM_MMC=y) - Add Cadence SDHCI controller support (CONFIG_MMC_SDHCI_CADENCE=y) - Enable SDHCI with ADMA support for better performance - Add MMC command support for user interaction SPL configuration: - Enable MMC support in SPL (CONFIG_SPL_DM_MMC=y) - Add SDHCI ADMA support in SPL (CONFIG_SPL_MMC_SDHCI_ADMA=y) - Enable GPIO support in SPL (CONFIG_SPL_DWAPB_GPIO=y) Voltage regulator support: - Add device model regulator framework (CONFIG_DM_REGULATOR=y) - Enable fixed voltage regulator support for card power - Add GPIO-controlled regulator for I/O voltage switching - Include regulator support in SPL for early initialization These changes enable SD card functionality with legacy and high speed timing modes, providing proper voltage regulation and GPIO control for the Agilex5 SoCDK platform. Signed-off-by: Tanmay Kathpalia <[email protected]> Reviewed-by: Tien Fong Chee <[email protected]>
2025-12-17arm: dts: socfpga: agilex5: Upgrade SDHCI controller from SD4HC to SD6HCTanmay Kathpalia
Upgrade the SDHCI Cadence controller from SD4HC to SD6HC for Agilex5 platform to support the newer controller version with enhanced features. Key changes: - Remove combophy0 node and associated references as SD6HC doesn't require separate PHY configuration node - Upgrade MMC controller compatible from "cdns,sd4hc" to "cdns,sd6hc" - Add Agilex5-specific compatible string "altr,agilex5-sd6hc" for platform-specific optimizations Hardware configuration updates: - Add voltage regulator support: * sd_emmc_power: Fixed 3.3V regulator for card power supply * sd_io_1v8_reg: GPIO-controlled regulator for 1.8V/3.3V I/O switching - Configure proper reset control with named resets including combophy reset - Add GPIO control via portb pin 3 for voltage switching SD card operation: - Configure for SD card specific operation (no-mmc, cap-sd-highspeed) - Set maximum frequency to 200MHz - Configure timing parameters for SD modes: * Default Speed (DS) and UHS-I SDR12 mode timing: * High Speed and UHS-I SDR25 mode timing: - Add PHY timing delays for optimal signal integrity Signed-off-by: Tanmay Kathpalia <[email protected]> Reviewed-by: Tien Fong Chee <[email protected]>
2025-12-17Revert "arch: arm: dts: agilex5: Set SDIO_SEL GPIO pin as output"Tanmay Kathpalia
Remove GPIO hog configuration for SDIO_SEL pin as it is now handled through the voltage regulator framework for SD ultra high speed mode support. The GPIO pin 3 on portb controller is used to control the level shifter for SD card I/O voltage switching. The regulator-based approach provides proper voltage switching control for UHS-I modes (SDR50, SDR104) while maintaining compatibility with the MMC subsystem's voltage switching protocols. This reverts commit b0dbc9fcb7dfb7522be25ee205997be2fb5e1bdc. Signed-off-by: Tanmay Kathpalia <[email protected]> Reviewed-by: Tien Fong Chee <[email protected]>
2025-12-17configs: cyclone5: Enable random MAC addressAlif Zakuan Yuslaimi
Enable CONFIG_NET_RANDOM_ETHADDR to allow U-Boot to assign a random MAC address during Ethernet initialization when a valid MAC is not programmed in hardware. This avoids network initialization failures and MAC address conflicts, especially on boards used for development or shipped without a factory-programmed MAC. Signed-off-by: Tien Fong Chee <[email protected]> Signed-off-by: Alif Zakuan Yuslaimi <[email protected]> Reviewed-by: Tien Fong Chee <[email protected]>
2025-12-16Merge patch series "fit: print conf node compatibles + use property string ↵Tom Rini
constants" Quentin Schulz <[email protected]> says: This does a bit of "cleanup" by reusing constants for some FIT properties instead of having the same string in multiple places. Additionally, this adds a new constant for the compatible property in FIT configuration nodes[1] which is useful for FIT images with multiple FIT configuration nodes to support multiple devices in the same blob. U-Boot will try to figure out which node to select based on that compatible[2]. However, if this property is missing (and the first blob in the fdt property of the configuration node is uncompressed), the compatible from the root node of the associated kernel FDT will be used for the autoselection mechanism. For now, I only print the property if it exists, but maybe it'd make sense to expose the fallback one if it's missing. I guess we can implement that later on if desired. [1] https://fitspec.osfw.foundation/#optional-properties compatible paragraph [2] https://fitspec.osfw.foundation/#select-a-configuration-to-boot Link: https://lore.kernel.org/r/[email protected]
2025-12-16boot/fit: print all configuration node compatiblesQuentin Schulz
Fit conf node may have a compatible property[1] which stores the compatible of the first blob in the fdt property of the node. This can be used to automatically select the proper conf node based on the compatible from the running U-Boot (matching the former's compatible with the latter)[2]. This brings the ability to mkimage/dumpimage to print the compatibles of the configuration node(s). U-Boot CLI commands such as iminfo also see this addition to their output. [1] https://fitspec.osfw.foundation/#optional-properties compatible paragraph [2] https://fitspec.osfw.foundation/#select-a-configuration-to-boot Signed-off-by: Quentin Schulz <[email protected]>
2025-12-16boot/fit: declare (and use) new constant for conf's compatible propQuentin Schulz
Fit conf node may have a compatible property[1] which stores the root compatible of the first blob in the fdt property of the node. This can be used to automatically select the proper conf node based on the compatible from the running U-Boot (matching the former's compatible with the latter)[2]. This adds (and uses) this constant for FIT node parsing. Note that this property may also appear in fpga image nodes[3] but that isn't done in this commit. [1] https://fitspec.osfw.foundation/#optional-properties compatible paragraph [2] https://fitspec.osfw.foundation/#select-a-configuration-to-boot [3] https://fitspec.osfw.foundation/#images-node 2.3.2 Conditionally mandatory property Signed-off-by: Quentin Schulz <[email protected]>
2025-12-16lib: rsa: use FIT_ALGO_PROP constant instead of "algo" in FITQuentin Schulz
Some FIT image properties have their string represented in include/image.h via constants. FIT_ALGO_PROP does exist and would fit the bill so let's use it instead of using a hardcoded string. Signed-off-by: Quentin Schulz <[email protected]>
2025-12-16boot/fit: use constants for property stringsQuentin Schulz
Some properties have their string represented in include/image.h via constants, so let's use those constants instead of using a hardcoded string. Signed-off-by: Quentin Schulz <[email protected]>
2025-12-16board: BuS: remove support for BOOT LEDQuentin Schulz
We are trying to get rid of the legacy LED API and this is one of the last users. As far as I understood from the code, only one LED is controllable and it is a GPIO led. When initializing the LED, it is always enabled regardless of the passed argument, same for the mask. In addition, the LED is used as a BOOT LED. To keep the same behavior, a GPIO driver should be written, then add a gpio-leds node which makes use of a GPIO from said driver, add the /options/u-boot/boot-led property pointing at this new GPIO LED node and then enable CONFIG_LED as well as CONFIG_LED_BOOT. This should result in the same behavior using the modern framework. Signed-off-by: Quentin Schulz <[email protected]>
2025-12-16board: toradex: add aquila am69 supportEmanuele Ghidoli
Add initial support for the Toradex Aquila AM69 module. The Aquila AM69 SoM is based on the TI AM69 SoC from the Jacinto 7 family and is designed for high-end embedded computing, featuring up to 32GB of LPDDR4 and 256GB eMMC storage, extensive multimedia support (3x Quad CSI, 2x Quad DSI, DisplayPort, 5x Audio I2S/TDM), six Ethernet interfaces (1x 1G, 4x 2.5G SGMII, 1x 10G), USB 3.2 Host/DRD support, and a Wi-Fi 7/BT 5.3 module, alongside an RX8130 RTC, I2C EEPROM and Temperature Sensor, and optional TPM 2.0 module. Link: https://www.toradex.com/computer-on-modules/aquila-arm-family/ti-am69 Link: https://www.toradex.com/products/carrier-board/aquila-development-board-kit Signed-off-by: Emanuele Ghidoli <[email protected]> Co-developed-by: Parth Pancholi <[email protected]> Signed-off-by: Parth Pancholi <[email protected]> Co-developed-by: Franz Schnyder <[email protected]> Signed-off-by: Franz Schnyder <[email protected]> Signed-off-by: Francesco Dolcini <[email protected]>
2025-12-16ti: k3: abstract common fdt api for reserved mem fixupsAnshul Dalal
The usage of fdt_fixup_reserved is repeated for ATF and OP-TEE for multiple platforms, this patch creates a single fdt API for fixing up the reserved-memory node with added error handling. All k3 platforms already share a common tispl template which ensures binaries are loaded as per the respective CONFIG_*_LOAD_ADDR. And the provided new_size for the fixup is overridden by the size from fdt node anyways. This allows for safe abstraction of the reserved memory fixups for all current platforms. fdt_fixup_reserved now abstracts the ATF and OP-TEE fixups by calling the renamed static fdt_fixup_reserved_memory function with the required parameters. Signed-off-by: Anshul Dalal <[email protected]>
2025-12-16pinctrl: single: Add missing free in single_allocate_functionFrancois Berder
If func->pins could not be allocated, one must also free func variable that was allocated previously. Signed-off-by: Francois Berder <[email protected]> Reviewed-by: Quentin Schulz <[email protected]>
2025-12-16arm: dts: k3-am62d-evm-binman: Update DMParesh Bhagat
AM62d previously reused the AM62a DM. Since a dedicated DM is now available, migrate to device specific DM. Signed-off-by: Paresh Bhagat <[email protected]> Reviewed-by: Andrew Davis <[email protected]>
2025-12-16cmd: part: Fix part argument description for `part number`Jonathan GUILLOT
Signed-off-by: Jonathan GUILLOT <[email protected]> Fixes: ff6ef4b9093f ("doc: man-page for the part command") Reviewed-by: Quentin Schulz <[email protected]>
2025-12-16clk: mediatek: remove duplicate '@parent' field docDavid Lechner
Remove duplicate '@parent' field documentation in struct mtk_composite. There is no need to say the same thing twice. Also fix spelling mistake in the word "parent" while we're at it. Signed-off-by: David Lechner <[email protected]>
2025-12-16tools/libfdt/fdt_rw: fix SPDX-License-IdentifierMax Merchel
Currently, the terms of both licenses (GPL 2.0 and BSD-2-Clause) must be met. However, before switching to the SPDX license identifier, the license information in the file begins with: "libfdt is dual licensed: you can use it either under the terms of the GPL, or the BSD license, at your option." Therefore, the missing "OR" between the licenses is added. Fixes: 3508476 ("libfdt: SPDX-License-Identifier: GPL-2.0+ BSD-2-Clause") Signed-off-by: Max Merchel <[email protected]>
2025-12-15Merge tag 'u-boot-rockchip-20251214' of ↵Tom Rini
https://source.denx.de/u-boot/custodians/u-boot-rockchip CI: https://source.denx.de/u-boot/custodians/u-boot-rockchip/-/pipelines/28748 Please pull the updates for rockchip platform: - New Board support: rk3588 Radxa ROCK 5T, ROCK 5B+; - I2C Fixes; - RAM boot from maskrom;
2025-12-14rockchip: mkimage: enhance comments for v1 headerQuentin Schulz
Improve the image header documentation for v1 header: - specify this applies to all MMC, not only SD cards, - specify the offset for SPI flashes, - specify the key used for RC4 encoding, - specify what "init" refers to, especially since some configs enable TPL, - specify what "init_boot_size" refers to, especially since some configs enable TPL, - specify the size of a block, - add documentation for init_size and init_boot_size, Note that the offset on the storage medium isn't necessarily 32KiB (64 blocks) for MMC or 0 for SPI flashes, it's just the first offset the BootROM checks. Barebox[1] lists a few options, though those are applicable to RK35xx which use the v2 header, so not guaranteed they can be shared. On RK3399, the binary can at least be stored at offset 0 and 32KiB on SPI flashes. [1] https://git.pengutronix.de/cgit/barebox/tree/arch/arm/mach-rockchip/bbu.c#n19 Signed-off-by: Quentin Schulz <[email protected]> Reviewed-by: Kever Yang <[email protected]>
2025-12-14rockchip: i2c: fix illegal I2C START/STOP conditionQuentin Schulz
In the last message sent in rockchip_i2c_xfer, the controller is disabled (see rk_i2c_disable() in rk_i2c_read()/rk_i2c_write()), then the STOP condition is sent (see rk_i2c_send_stop_bit() in rockchip_i2c_xfer()) and the controller is disabled once again (see rk_i2c_disable() right after). The issue is that re-enabling the controller just to send the STOP condition doesn't work. When, the controller is disabled, the SCL and SDA lanes are not driven anymore and thus enter the idle mode where they are kept high by the external HW pull-up. To send a STOP condition, one needs to drive the SDA line so that a rising edge happens while SCL is high. Experimentally (on PX30 and RK3399), when enabling the controller to send a STOP condition after it's been disabled, the controller only drives the SDA line to trigger the rising edge for the STOP condition, leaving SCL undriven (and thus, high). This means, that because SDA is high before this happens and that we need a rising edge, the controller drives the SDA line low and then releases it, meaning we trigger a START condition followed by a STOP condition: SCL _________ _____... __ _____ _____... \/ SDA ^ STOP ^ START This is illegal in I2C protocol[1]: 5. A START condition immediately followed by a STOP condition (void message) is an illegal format. Many devices however are designed to operate properly under this condition. My guess is that the I2C controller IP knows that it makes only sense to send a STOP condition after a START condition, meaning the controller is already driving the SCL line low and neither the device nor controller drive the SDA line after the last ACK/NACK as there's no need to, then it needs to drive SDA, release SCL to make it high and then release the SDA line. However, after it's been disabled, the SCL is already released so the controller only essentially drives SDA and then releases it. It happens that this seems to be breaking the SE050 Secure Element after a few transfers in the middle of a transfer where it starts clock stretching the bus forever. It may be related to Errata 3.2[2] but the description of the setup isn't an exact match to the current situation. It seems to be required to disable the I2C controller between messages as the Linux kernel states that "The HW is actually not capable of REPEATED START. But we can get the intended effect by resetting its internal state and issuing an ordinary START.". Between messages, this logic seems fine as I get an Sr (repeated START condition) before starting the next message in the transfer without a STOP condition. However, we should NOT disable the controller after the last message in the transfer otherwise we do this illegal START condition followed by the STOP condition, hence the added check. [1] https://www.nxp.com/docs/en/user-guide/UM10204.pdf 3.1.10 The target address and R/W bit point 5 [2] https://www.nxp.com/docs/en/errata/SE050_Erratasheet.pdf Fixes: c9fca5ec8849 ("rockchip: i2c: don't sent stop bit after each message") Signed-off-by: Quentin Schulz <[email protected]> Reviewed-by: Heiko Schocher <[email protected]> Reviewed-by: Kever Yang <[email protected]>
2025-12-14rockchip: i2c: move ACK comment where it appliesQuentin Schulz
The I2C_CON_LASTACK is kind of a misnomer as setting it means sending a NACK as last byte acknowledge when the controller is in receive mode. It should therefore be used only when there's no more data to transfer after this. Move the comment in the proper if block. Sync the comment with the Linux kernel's while at it so it's more explicit. Fixes: 5deaa530280f ("rockchip: i2c: fix >32 byte reads") Signed-off-by: Quentin Schulz <[email protected]> Reviewed-by: Heiko Schocher <[email protected]> Reviewed-by: Kever Yang <[email protected]>
2025-12-14rockchip: i2c: fix incorrect STOP flag for the interrupt enable registerQuentin Schulz
I2C_CON_STOP is a flag to be used for the con register, where it is bit 4 to send the STOP condition. To enable the interrupt the controller sends to tell it's finished sending the STOP condition, it's the ien register at bit 5. Let's use the proper offset. My hunch is that enabling the interrupt is useless as the interrupt status register is always up-to-date and enabling the interrupt is just so that the interrupt is available via the GIC. However, U-Boot has no interrupt support and the logic was working well before this patch. This is just so people aren't side-tracked when debugging I2C issues on Rockchip by checking all writes are proper. Fixes: 3437469985df ("rockchip: Add I2C driver") Signed-off-by: Quentin Schulz <[email protected]> Reviewed-by: Heiko Schocher <[email protected]> Reviewed-by: Kever Yang <[email protected]>
2025-12-14rockchip: rock5b-rk3588: Add support for Radxa ROCK 5TFUKAUMI Naoki
Include the FDT for Radxa ROCK 5T in the FIT, in addition to those for 5B and 5B+, and add board selection code to load the 5T FDT when the DRAM type is LPDDR5 and ADC channel 5 value is close to 1016. Signed-off-by: FUKAUMI Naoki <[email protected]> Reviewed-by: Kever Yang <[email protected]>
2025-12-14rockchip: rock5b-rk3588: Add support for ROCK 5B+Jonas Karlman
Include FDTs for both ROCK 5B and 5B+ in the FIT and add board selection code to load the 5B+ FDT when the DRAM type is LPDDR5 and ADC channel 5 value is close to 4095. U-Boot 2025.07 (Jul 14 2025 - 21:28:20 +0000) Model: Radxa ROCK 5B+ SoC: RK3588 DRAM: 8 GiB Features tested on a ROCK 5B+ v1.2: - SD-card boot - eMMC boot - SPI flash boot - PCIe/NVMe - Ethernet - USB/TCPM Signed-off-by: Jonas Karlman <[email protected]> Reviewed-by: Kever Yang <[email protected]>
2025-12-14rockchip: sdram: Add rockchip_sdram_type() helperJonas Karlman
Add a helper function based on rockchip_sdram_size() that return what DRAM type is used on current running board. Signed-off-by: Jonas Karlman <[email protected]> Reviewed-by: Kever Yang <[email protected]>
2025-12-14rockchip: Add support for RAM boot from maskrom modeJonas Karlman
The BootROM in Rockchip SoCs will enter maskrom mode when boot firmware cannot be found in nand/spi/mmc storage. In maskrom mode the USB OTG port can accept one of two custom commands. Initially a 0x471 command to load TPL into SRAM. After TPL has been executed and it has returned back-to-BROM, a 0x472 command to load SPL into start of DRAM. Add two binman images that can be used to RAM boot from maskrom mode: - u-boot-rockchip-usb471.bin that contains TPL to init DRAM. - u-boot-rockchip-usb472.bin that contains SPL and the normal FIT payload with i.e. U-Boot proper, TF-A and FDT. A config fragment rockchip-ramboot.config can be used to enable building of these two binman images, e.g.: make generic-rk3588_defconfig rockchip-ramboot.config These binman images can be used with the proprietary rkbin boot_merger tool to create a special loader image that can be used with tools such as rkdeveloptool or rockusb tools to RAM boot from maskrom, e.g.: Create loader image: $ ../rkbin/tools/boot_merger ./RK3588MINIALL.ini Boot from maskrom: $ rkdeveloptool db u-boot-rockchip-rk3588-loader.bin or $ rockusb download-boot u-boot-rockchip-rk3588-loader.bin Another option that does not require use of proprietary tools is using open source tools such as rkflashtool or rkusbboot that can load the binman images directly without any need to first create a special loader image to RAM boot from maskrom, e.g.: $ rkflashtool l < u-boot-rockchip-usb471.bin $ rkflashtool L < u-boot-rockchip-usb472.bin or $ rkusbboot u-boot-rockchip-usb471.bin u-boot-rockchip-usb472.bin Signed-off-by: Jonas Karlman <[email protected]> Tested-by: Arnaud Patard <[email protected]> Reviewed-by: Kever Yang <[email protected]>
2025-12-14rockchip: Move TEXT_BASE to 8 MiB offset from start of DRAMJonas Karlman
Drop SoC specific TEXT_BASE and use a common TEXT_BASE for all SoCs. Move the common TEXT_BASE to 8 MiB offset from start of DRAM to help support RAM boot from maskrom introduced in next patch. RAM boot from maskrom mode will expect the FIT payload to be located at 2 MiB offset from start or DRAM. Signed-off-by: Jonas Karlman <[email protected]> Tested-by: Arnaud Patard <[email protected]> Reviewed-by: Kever Yang <[email protected]>
2025-12-14board: theobroma-systems: jaguar_rk3588: explicit UART IOMUXQuentin Schulz
When one attempts to build Tiger and Jaguar from the same directory, because Tiger will set the IOMUX to 2 but Jaguar doesn't reset it, Jaguar will have IOMUX set to 2 if built after Tiger. This isn't an issue if in separate directories or building Tiger after Jaguar because the default if missing from the configuration file is 0. Let's make it explicit that the iomux is 0 for Jaguar. Signed-off-by: Quentin Schulz <[email protected]> Reviewed-by: Kever Yang <[email protected]>
2025-12-14board: theobroma-systems: add instructions for how to use upstream TF-AQuentin Schulz
Upstream TF-A has support for RK3588 since v2.12 so let's document how to use upstream TF-A instead of the prebuilt binary blob from Rockchip if one wants to do that. Signed-off-by: Quentin Schulz <[email protected]> Reviewed-by: Kever Yang <[email protected]>
2025-12-14board: theobroma-systems: update instructions for newer Rockchip rkbinQuentin Schulz
The instructions are regularly out of date because the generated or prebuilt binaries are updated and the filename doesn't match our instructions anymore. Additionally, since commit 55a95caaef15 ("tools: ddrbin_tool: add ddrbin_tool.py and update to v1.21 20241211") end of October 2024, ddrbin_tool doesn't exist anymore and has been replaced by ddrbin_tool.py python script (which currently isn't an executable) so let's update these instructions as well. Signed-off-by: Quentin Schulz <[email protected]> Reviewed-by: Kever Yang <[email protected]>
2025-12-12Merge patch series "clk: ti: Cleanup common functions and omap-cm"Tom Rini
Markus Schneider-Pargmann (TI.com) <[email protected]> says: This series cleans up the direct dependency of ARCH_OMAP2PLUS to compile ti/clk.c which holds common functions for other clock drivers. It creates its own config symbols for these common functions and for the omap-cm driver as well. The omap-cm driver config symbol is added as default enabled. Link: https://lore.kernel.org/r/20251128-topic-am33-clk-regmap-dep-v2026-01-v2-0-451b4f4e7e85@baylibre.com/
2025-12-12clk: ti: omap4-cm: Add Kconfig symbolMarkus Schneider-Pargmann (TI.com)
Add a Kconfig symbol for this stub driver to avoid clock dependencies on an architecture symbol. Enable it by default. Signed-off-by: Markus Schneider-Pargmann (TI.com) <[email protected]> Reviewed-by: Tom Rini <[email protected]>
2025-12-12clk: ti: Split common omap2plus functions into new symbolMarkus Schneider-Pargmann (TI.com)
Create a new symbol for the common clock functions used by some of the omap2plus clock drivers. These drivers now select this new symbol when they need the functions. Note these common functions are not ARCH_OMAP2PLUS specific. Note that the common functions are using regmap, so select it here. Reviewed-by: Tom Rini <[email protected]> Signed-off-by: Markus Schneider-Pargmann (TI.com) <[email protected]>