summaryrefslogtreecommitdiff
path: root/include
AgeCommit message (Collapse)Author
2026-07-31Merge tag 'efi-2026-10-rc2-2' of ↵Tom Rini
https://git.u-boot-project.org/u-boot/custodians/u-boot-efi Pull request efi-2026-10-rc2-2 CI: https://git.u-boot-project.org/u-boot/custodians/u-boot-efi/-/pipelines/839 Documentation: * README: Slightly rephrase env set and env print paragraph * cmd: gpt: Reinstate gpt setenv * CONTRIBUTE: replace "as" with "like" UEFI: * Unify the memory map output of 'efi mem' and 'efidebug memmap' * Print ISA-specific and unknown memory attributes * Rix memory leak in efi_sigstore_parse_siglist * Fix use of uninitialized guid in variable enumeration loops
2026-07-31efi: Print ISA-specific and unknown memory attributesAristo Chen
The attribute mnemonic table did not cover EFI_MEMORY_ISA_VALID and the EFI_MEMORY_ISA_MASK field, and attribute bits without a mnemonic were silently dropped, so a memory map carrying ISA-specific, invalid or not yet known attributes displayed incomplete information without any hint that something was missing. Add a mnemonic for EFI_MEMORY_ISA_VALID and print the ISA-specific field as ISA=<value> when it is valid, instead of decoding bits whose meaning U-Boot cannot know. Any remaining bits that match neither the mnemonic table nor the ISA field are printed as a hexadecimal value. Suggested-by: Heinrich Schuchardt <[email protected]> Signed-off-by: Aristo Chen <[email protected]>
2026-07-31efi: Unify the memory map output of 'efi mem' and 'efidebug memmap'Aristo Chen
The efi and efidebug commands each carried their own code for printing the EFI memory map, with separate tables of memory type and attribute names. The copies had drifted: efidebug knew EFI_PERSISTENT_MEMORY_TYPE while 'efi mem' printed it as '<invalid>', neither table knew EFI_UNACCEPTED_MEMORY_TYPE, and the 'efi mem' printer had misaligned column headers, a broken '<gap>' line and a superfluous Virtual column: the map is identity mapped before SetVirtualAddressMap() is called, so the field carries no information at the time the command can run. Move the printing loop of 'efidebug memmap' into efi_common.c as efi_show_memmap(), which is linked into both commands, and use it from both. The second copy in 'efi mem' is deleted together with efi_print_mem_table() and the private sorting and merging code, including the 'all' argument. The memory type names follow the UEFI specification with the leading 'Efi' and the trailing 'Type' stripped, for example ConventionalMemory for EfiConventionalMemory, and the missing name for unaccepted memory is added. The type column is widened to fit the longest name, MemoryMappedIOPortSpace. The shared function iterates the map with the descriptor size reported by the firmware instead of assuming sizeof(struct efi_mem_desc). This matters for 'efi mem' under EDK II based firmware, which reports a descriptor size of 0x30. The memory map key, which was printed uninitialized on the payload path, is now initialized. The command documentation is updated with output captured from the app running under OVMF, and documents why virtual addresses are not shown. Suggested-by: Heinrich Schuchardt <[email protected]> Signed-off-by: Aristo Chen <[email protected]>
2026-07-30arm: mvebu: Add Allied Telesis x960 boardChris Packham
The x960-28YSQ is a 25G/100G layer 3 switch from Allied Telesis. Signed-off-by: Chris Packham <[email protected]> Reviewed-by: Stefan Roese <[email protected]> [sr: fix DT file name in MAINTAINERS]
2026-07-30Merge tag 'mmc-for-2026.10-rc2' of ↵Tom Rini
https://git.u-boot-project.org/u-boot/custodians/u-boot-mmc CI: https://git.u-boot-project.org/u-boot/custodians/u-boot-mmc/-/pipelines/781 - Enable MMC CMD23 for multi-block transfers - Various fixes to mmc core - Add PF9453 pmic/regulator driver - Support SCP 4.36 map for renesas-r8a78000
2026-07-29crypto: hash: use DM providers from hash commandJames Hilliard
The hash command currently always uses the software implementation for the selected algorithm, even when driver-model hash providers are available. Add a hash_digest_wd_lookup() helper which probes UCLASS_HASH devices in order and uses the first provider supporting the requested algorithm. Continue past unavailable providers and unsupported operations, but propagate a hard digest failure once a provider accepts the operation. Remember probe failures so they are not silently hidden by software fallback when no later provider succeeds. Use the helper from the hash command and retain its software fallback when no usable provider is present. Add sandbox tests covering provider fallback and hard-error propagation. Signed-off-by: James Hilliard <[email protected]>
2026-07-29power: pmic: ADD PMIC PF9453 supportJoy Zou
Support NXP PMIC pf9453. Reviewed-by: Ye Li <[email protected]> Reviewed-by: Peng Fan <[email protected]> Signed-off-by: Joy Zou <[email protected]> Signed-off-by: Peng Fan <[email protected]> Rebased [1] on main and checkpatch fixed. See also [2] [1] https://patchwork.ozlabs.org/project/uboot/patch/[email protected]/ [2] https://lists.u-boot-project.org/pipermail/u-boot/2026-July/625613.html Signed-off-by: Krzysztof Drobiński <[email protected]>
2026-07-29mmc: enable CMD23 for multi-block transfersEric Chung
Enable the support for the CMD23 (SET_BLOCK_COUNT) command to manage multi-block read/write operations. This allows the MMC core to use CMD23 in preference to the legacy CMD18/CMD25 plus CMD12 sequence, reducing command overhead and improving I/O performance on multi-block transfers. Signed-off-by: Eric Chung <[email protected]> Signed-off-by: Tanmay Kathpalia <[email protected]> [ Drop MMC_CAP_CMD32 from mvebu_mmc.h ] Signed-off-by: Peng Fan <[email protected]>
2026-07-28Merge tag 'efi-2026-01-rc2' of ↵Tom Rini
https://git.u-boot-project.org/u-boot/custodians/u-boot-efi Pull request efi-2026-01-rc2 CI: https://git.u-boot-project.org/u-boot/custodians/u-boot-efi/-/pipelines/753 Documentation: * sandbox: fix enum host_platform_flags description * switch from setenv to env set and from printenv to env print * document Renesas R-Car Gen5 RSIP Cortex-R52 start * thead: lpi4a: detail how to enable fastboot UEFI: * unify and correct GUID selection for security database variables * test: check default GUID selection of security database variables * set correct frame buffer address * check efi_deserialize_load_option() in get_dp_device()
2026-07-27Merge tag 'u-boot-imx-main-20260727' of ↵Tom Rini
https://git.u-boot-project.org/u-boot/custodians/u-boot-imx CI: https://git.u-boot-project.org/u-boot/custodians/u-boot-imx/-/pipelines/749 - Support authenticating signed Mcore container image on i.MX9. - Support booting CM70, CM71 and CM33 sync cores on i.MX9. - Add i.MX SNVS RTC driver. - Detect RAM sizes on Toradex smarc and aquila i.MX95 boards. - Add support for the Librem5 devkit. - Subtract half a cycle instead of three quarters of a cycle after DQS gating calibration on i.MX6. - Several tqma6 improvements. - Add product ID support for new Toradex boards.
2026-07-27sandbox: fix enum host_platform_flags descriptionHeinrich Schuchardt
`make htmldocs` reports ./include/sandbox_host.h:14: warning: cannot understand function prototype: 'enum host_platform_flags ' Align the description with Sphinx style. Fixes: 93e9af685fef ("test: bootdev: scan with a broken high-priority device") Signed-off-by: Heinrich Schuchardt <[email protected]> Reviewed-by: Denis Mukhin <[email protected]>
2026-07-27Merge tag 'u-boot-rockchip-2026.10-20260724' of ↵Tom Rini
https://git.u-boot-project.org/u-boot/custodians/u-boot-rockchip - Switched to use upstream pinctrl header include, - Dropped SDHCI DT properties in U-Boot-specific DT for NanoPi R5 as most are present upstream and those which aren't are breaking devices, - Fixed ECC strength mismatch between reading and writing on non-0 NAND chips configured as boot medium (nand-is-boot-medium), - Moved Simon to reviewer for ARM ROCKCHIP, - Fixed build issue related to GPT capsule support accessing a struct member only present when CONFIG_PARTITION_TYPE_GUID is set, - Added support for new devices: - Anbernic RG-DS - ROC-RK3588S-PC
2026-07-27board: toradex: aquila-imx95: detect RAM sizesEmanuele Ghidoli
Use alias-based RAM probing to detect different memory configurations on Toradex Aquila iMX95. The address wrap-around is not linear: address bits above the module capacity alias back with some low address bits XORed (bit 32 -> XOR 0xc000), as measured on 4GB and 8GB modules. During probing, skip the first 256MB, since that region is reserved. Signed-off-by: Emanuele Ghidoli <[email protected]>
2026-07-27board: toradex: smarc-imx95: detect RAM sizesEmanuele Ghidoli
Use alias-based RAM probing to detect different memory configurations on Toradex SMARC iMX95. The address wrap-around is not linear: address bits above the module capacity alias back with some low address bits XORed (bit 32 -> XOR 0xc000), as measured on 4GB and 8GB modules. During probing, skip the first 256MB, since that region is reserved. Signed-off-by: Emanuele Ghidoli <[email protected]>
2026-07-27imx9{4, 5, 52}_evk: power on mcore according to SM configYe Li
When working with SM config mx9{4,5,52}evkrpmsg, mcores are not booted by ROM. Hence, power on the mcore and initialize TCM ECC in u-boot for subsequent mcore booting. Signed-off-by: Ye Li <[email protected]> [fabio: Adapted to mainline context] Signed-off-by: Fabio Estevam <[email protected]>
2026-07-27imx9: bootaux: Support booting CM70, CM71 and CM33 sync coresAlice Guo
Support booting CM70, CM71 and CM33 sync core image by bootaux command on iMX95, iMX94 and iMX952. (iMX95 and iMX952 only supports CM70). Each core uses different core id which is defined by SM and passed in SIP call. - CM33: 0 - CM70: 1 - CM71: 7 - CM33S: 8 Prior to run bootaux to start core, prepaux is needed before loading image. Below is example for booting CM70 TCM image on iMX95. =>fatload mmc 1:1 0x90000000 rpmsg.bin =>prepaux 1 =>cp.b 0x90000000 0x203c0000 ${filesize} =>bootaux 0 1 Signed-off-by: Alice Guo <[email protected]> Signed-off-by: Ye Li <[email protected]> Signed-off-by: Peng Fan <[email protected]> Signed-off-by: Jacky Bai <[email protected]>
2026-07-27board: purism: Add support for the Librem5 devkitGuido Günther
Although it has similar naming the Librem 5 Devkit is a completely different design from the Librem 5 phone. It uses an imx8mq SOM from Emcraft, a separate HDMI port instead of DisplayPort, different USB-C chip, panel, etc. This is based on a Emcraft's SOM documentation, Purism's downstream fork and the available schematics of the devkit. Link: https://developer.puri.sm/Librem5/Development_Environment/Boards/imx8.html Link: https://source.puri.sm/Librem5/dvk-mx8m-bsb Co-authored-by: Angus Ainslie <[email protected]> Co-authored-by: Manuel Traut <[email protected]> Signed-off-by: Manuel Traut <[email protected]> Tested-by: Manuel Traut <[email protected]> Signed-off-by: Guido Günther <[email protected]> [fabio: Removed the arch/arm/dts/Makefile entry that does not apply and it is not needed as the board uses OF_UPSTREAM] Signed-off-by: Fabio Estevam <[email protected]>
2026-07-24fit: prefer the default configuration on best-match tiesCarlo Caione
With CONFIG_FIT_BEST_MATCH, fit_conf_find_compat() selects the configuration matching the most specific U-Boot compatible string; on equal matches the first listed configuration wins and the configurations node 'default' property is never consulted. A FIT whose configurations all share the same base devicetree compatible (e.g. one manifest carrying a base tree plus overlay combinations for a single board) therefore always boots the first configuration, silently ignoring the default chosen by the manifest author. Break score ties in favour of the default configuration. A strictly better compatible match still wins over it, and FITs without a default keep the current first-listed behaviour. Reviewed-by: Simon Glass <[email protected]> Reviewed-by: Tom Rini <[email protected]> Signed-off-by: Carlo Caione <[email protected]>
2026-07-23rockchip: rk3588s: Add support for ROC-RK3588S-PCFabio Estevam
The ROC-RK3588S-PC board is an SBC made by Firefly, based on the RK3588S SoC. Add support for it. Signed-off-by: Fabio Estevam <[email protected]> Reviewed-by: Quentin Schulz <[email protected]> Link: https://patch.msgid.link/[email protected] [s/ROC-PC-RK3588S/ROC-RK3588S-PC/ in commit log and diff] Signed-off-by: Quentin Schulz <[email protected]>
2026-07-23rockchip: pinctrl: use include from dts/upstreamJohan Jonker
Use Rockchip pinctrl include from dts/upstream and remove what is now redundant. Signed-off-by: Johan Jonker <[email protected]> Reviewed-by: Quentin Schulz <[email protected]> Link: https://patch.msgid.link/[email protected] Signed-off-by: Quentin Schulz <[email protected]>
2026-07-23rockchip: pinctrl: replace RK_GPIOn definesJohan Jonker
The use of RK_GPIOn defines is deprecated in the upstream rockchip.h file. Replace all them by the gpio number. Signed-off-by: Johan Jonker <[email protected]> Reviewed-by: Quentin Schulz <[email protected]> Link: https://patch.msgid.link/[email protected] Signed-off-by: Quentin Schulz <[email protected]>
2026-07-23rockchip: pinctrl: replace RK_FUNC_n definesJohan Jonker
The use of RK_FUNC_n defines is deprecated in the upstream rockchip.h file. Replace all them by the function number. Signed-off-by: Johan Jonker <[email protected]> Reviewed-by: Quentin Schulz <[email protected]> Link: https://patch.msgid.link/[email protected] Signed-off-by: Quentin Schulz <[email protected]>
2026-07-21Merge patch series "some string cleanup, and a tweak of the "config" command"Tom Rini
Rasmus Villemoes <[email protected]> says: This started by me wanting something like what patch 8 does. That wasn't too hard, except we had no strcasestr(), and also our regex engine (which I didn't really want to pull into the mix anyway) doesn't have a flag that requests case-insensitive matching. So I wanted to add strcasestr(), but then I stumbled on a bunch of stuff that should be cleaned up in str-land. Link: https://lore.kernel.org/r/[email protected]
2026-07-21string: add strcasestr()Rasmus Villemoes
While this is not likely needed by any "real" driver code, a later convenience addition to the "config" command will need this. As usual, the linker will throw it away if nothing actually uses it, so it should have no size impact when not used. Reviewed-by: Simon Glass <[email protected]> Signed-off-by: Rasmus Villemoes <[email protected]>
2026-07-21string: remove more pointless __HAVE_ARCH_STR*Rasmus Villemoes
None of these six macros are defined by any architecture. Moreover, the ifndef guard only exists in either string.h or string.c, making them completely pointless. I'm not sure whether we have an explicit coding style discouraging the "extern" qualifier on function declarations, and string.h has a random mix of everything, but I can't leave it on strncasecmp() now that it will be immediately after strcasecmp() which doesn't have it. Reviewed-by: Simon Glass <[email protected]> Signed-off-by: Rasmus Villemoes <[email protected]>
2026-07-21string: remove unused strswab() functionRasmus Villemoes
The last use of this function with rather peculiar semantics[*] vanished in 2021 with 0a527fda782 ("Fix IDE commands issued, fix endian issues, fix non MMIO"). It has no tests, and should a need for something similar ever appear, it is better done with some proper utf16le/utf16be/utf16 abstractions rather than cluttering code with '#ifdef __LITTLE_ENDIAN'. [*] The byte-swapping itself is weird enough. But why is an input string of odd length ok, while the empty string is not allowed? Reviewed-by: Simon Glass <[email protected]> Signed-off-by: Rasmus Villemoes <[email protected]>
2026-07-21string: correct prototype of strchrnul()Rasmus Villemoes
Both glibc's (where this originated as a GNU extension) and the kernel's versions of strchrnul() return "char *", not "const char *". That also makes it consistent with the standard strchr() function. Reviewed-by: Simon Glass <[email protected]> Signed-off-by: Rasmus Villemoes <[email protected]>
2026-07-21Merge tag 'riscv-for-v2026.10-rc1' of ↵Tom Rini
https://git.u-boot-project.org/u-boot/custodians/u-boot-riscv CI: https://git.u-boot-project.org/u-boot/custodians/u-boot-riscv/-/pipelines/676 - Adds support for the SpacemiT K1 and - Updates the MAINTAINERS.
2026-07-21power: pmic: add support for Spacemit P1 PMICRaymond Mao
Spacemit's PMIC is used by Spacemit K1 SoC. It contains voltage regulators, GPIOs and Watchdog. Signed-off-by: Raymond Mao <[email protected]> Signed-off-by: Guodong Xu <[email protected]> Acked-by: Peng Fan <[email protected]> Tested-by: Songsong Zhang <[email protected]>
2026-07-21configs: k1: enable early timer supportRaymond Mao
Enable CONFIG_TIMER_EARLY to allow udelay() calls during early initialization phases. This is required for proper timing operations before the full timer driver is available. Signed-off-by: Raymond Mao <[email protected]> Signed-off-by: Guodong Xu <[email protected]> Tested-by: Songsong Zhang <[email protected]>
2026-07-21spacemit: k1: enable SPL with debug UARTRaymond Mao
Add SPL support featuring debug UART output for early boot diagnostics on K1 SoC. Signed-off-by: Raymond Mao <[email protected]> Signed-off-by: Guodong Xu <[email protected]> Tested-by: Songsong Zhang <[email protected]>
2026-07-21spacemit: k1: support multi-board infrastructureRaymond Mao
Restructure K1 SoC support to handle multiple boards through a single configuration: 1. Rename bananapi-f3_defconfig to spacemit_k1_defconfig. 2. Move all K1 board files to board/spacemit/k1/. 3. Replace TARGET_BANANAPI_F3 with TARGET_SPACEMIT_K1 and rename the board's <board>.h header to k1.h. Eliminates the need for board-specific defconfigs while maintaining hardware compatibility. Signed-off-by: Raymond Mao <[email protected]> Signed-off-by: Guodong Xu <[email protected]> Link: https://patch.msgid.link/[email protected] Tested-by: Songsong Zhang <[email protected]>
2026-07-21dt-bindings: reset: drop spacemit-k1-reset.hGuodong Xu
After the K1 build switched to dts/upstream/, all reset IDs come from the kernel's per-syscon namespace in <dt-bindings/clock/spacemit,k1-syscon.h>. Remove the legacy U-Boot-only reset binding header. Signed-off-by: Guodong Xu <[email protected]>
2026-07-21reset: spacemit: k1: introduce syscon-bound reset driverGuodong Xu
The existing K1 reset driver (drivers/reset/reset-spacemit-k1.c) binds via DT of_match against a top-level reset-controller node, but kernel mainline DT for K1 has no such node: the mpmu, apbc, apmu and apbc2 syscons each spawn their own reset device as an auxiliary of the clock controller. The legacy driver therefore cannot consume it. Add a new reset driver at drivers/reset/spacemit/reset-spacemit-k1.c bound by name from each per-syscon clock driver via device_bind_driver_to_node(), without DT of_match, mirroring the kernel's auxiliary-device pattern. To keep the series bisectable, this driver coexists link-cleanly with the legacy spacemit,k1-reset driver during the transition. A follow-up patch that switches the K1 build to dts/upstream/src/riscv/spacemit/ will drop the legacy driver. Signed-off-by: Guodong Xu <[email protected]>
2026-07-21clk: spacemit: Add support for K1 SoCJunhui Liu
The K1 SoC exposes four clock providers in the kernel mainline DT: one PLL controller ("spacemit,k1-pll") and three syscon clock nodes ("spacemit,k1-syscon-{mpmu,apbc,apmu}"). Register a separate U_BOOT_DRIVER for each. The controllers register clocks into a single CCF namespace, and a clock in one controller may parent off a clock owned by another, so a controller must register only after the controllers that own its parents have probed. Each probe forces its parent controllers up by driver: MPMU <- PLL APMU <- PLL, MPMU APBC <- PLL, MPMU, APMU Signed-off-by: Junhui Liu <[email protected]> Signed-off-by: Raymond Mao <[email protected]> Signed-off-by: Guodong Xu <[email protected]>
2026-07-20spi: dw: Allow bits_per_word to be configured by device driversBoon Khai Ng
The DesignWare SPI controller supports configurable bits_per_word (typically 4-32 bits), but this was previously hardcoded to 8 bits in the driver initialization. This patch enables bits_per_word to be set dynamically by upper-level device drivers, matching the approach used in Linux. The controller reads the bits_per_word value from the spi_slave structure during each transfer, allowing different SPI devices on the same bus to use different word sizes. Implementation details: - Read slave->bits_per_word in dw_spi_xfer() before each transfer - Validate requested value against controller capabilities (4 to max_xfer) - Default to 8 bits if not set (maintains backward compatibility) This follows the Linux model where spi_device drivers set bits_per_word, and the controller driver reads it in the transfer function. Device drivers can now set slave->bits_per_word before calling spi_xfer(). Example usage in device driver: slave->bits_per_word = 16; spi_xfer(slave, ...); Backward compatible: Existing drivers that don't set bits_per_word will continue to work with the default 8-bit transfers. Signed-off-by: Boon Khai Ng <[email protected]>
2026-07-20board: rockchip: add Anbernic RG-DSChris Morgan
Add support for the Anbernic RG-DS dual-screen handheld gaming device. Link: https://anbernic.com/products/rgds Signed-off-by: Chris Morgan <[email protected]> Reviewed-by: Quentin Schulz <[email protected]> Reviewed-by: Kever Yang <[email protected]> Link: https://patch.msgid.link/[email protected] [conflict resolution in doc/board/rockchip/rockchip.rst due to commit b5deaa71fbe5 ("board: rockchip: Add support for 9Tripod X3568 v4")] Signed-off-by: Quentin Schulz <[email protected]>
2026-07-17bloblist: Rename GD_FLG_BLOBLIST_READY to GD_FLG_BLOBLIST_HANDOFFTom Rini
Now that we have made bloblist have distinct "find" and "create" functions, the global data tag "GD_FLG_BLOBLIST_READY" doesn't quite make sense anymore. Rename it to GD_FLG_BLOBLIST_HANDOFF. Suggested-by: Raymond Mao <[email protected]> Reviewed-by: Raymond Mao <[email protected]> Signed-off-by: Tom Rini <[email protected]>
2026-07-14Merge tag 'mmc-for-2026.10-rc1' of ↵Tom Rini
https://git.u-boot-project.org/u-boot/custodians/u-boot-mmc CI: https://git.u-boot-project.org/u-boot/custodians/u-boot-mmc/-/pipelines/614 - Add PMBUS regulator, thermal and test - Add regulator helper to set voltage within an acceptable range - Update dw_mmc to use in-spec voltage range for vqmmc - Fix regulator_enable/disable() macros - Clear LPUART OR STAT in tstc to avoid hang - Add MAINTAINERS entry for SDHCI
2026-07-13cmd: fdt: keep control FDT during checksignJames Hilliard
The fdt checksign command accepts an optional address for an FDT containing public keys. It currently installs that blob as gd->fdt_blob before verifying the FIT configuration. This breaks verification with DM-backed crypto drivers which have not probed yet, since the later probe path expects gd->fdt_blob to remain U-Boot's control FDT. For example, an ECDSA verifier can be bound from the control FDT but fail to probe after fdt checksign points gd->fdt_blob at the key-only DTB. Add a FIT config verification helper that takes the key blob explicitly and use it from fdt checksign. This keeps gd->fdt_blob unchanged while still allowing the command to verify against an external key DTB. Signed-off-by: James Hilliard <[email protected]>
2026-07-13power: regulator: add generic PMBus UCLASS_REGULATOR adapterVincent Jardin
PMBus regulators differ in numeric formats and quirks, not in how they are driven. Share that common behaviour as a regulator-uclass adapter so chip drivers and the pmbus CLI do not each reimplement the decode and transport, and add a catch-all driver on compatible = "pmbus" for compliant chips that have no dedicated driver yet. Gated by CONFIG_DM_REGULATOR_PMBUS_HELPER and CONFIG_DM_REGULATOR_PMBUS_GENERIC. Signed-off-by: Vincent Jardin <[email protected]> Signed-off-by: Peng Fan <[email protected]>
2026-07-13pmbus: add PMBus 1.x framework, CLI, and bindingVincent Jardin
Add U-Boot's PMBus 1.x layer: the decoder/transport library, the pmbus CLI command and a generic DT binding. The subsequent commits provide the UCLASS_REGULATOR adapter and per-chip drivers. U-Boot's PMBus support is not a hwmon clone of Linux's drivers/hwmon/pmbus/. Linux owns the runtime side (polling, sysfs, alert IRQs, fan loops). U-Boot owns the boot-time side in order to, - identify the PMBus regulators a board carries: MFR_ID/ MFR_MODEL/MFR_REVISION + sanity checks. - print telemetry (VIN/VOUT/IIN/IOUT/POUT/TEMP) so an operator can confirm rail voltages and faults before the kernel - decode any chip alerts (STATUS_VOUT/STATUS_IOUT/STATUS_INPUT/ STATUS_TEMPERATURE/STATUS_CML) so a boot log shows why the previous boot failed or the board had been power cycled because of an outage (typically over temperature or under current). Out of scope by design: no periodic polling, no sysfs, no fan-speed control loop, no PMBUS_VIRT_* sensor virtualisation, no caching. If a use case needs any of those, the answer should be "wait until Linux comes up". It shall remain a thin layer. The constants and structural shape (command codes, status bit names, sensor-class enum, format enum, struct pmbus_driver_info) are mirrored from Linux drivers/hwmon/pmbus/pmbus.h verbatim. The decoders/encoders are reimplemented from the PMBus 1.3 specification because the surrounding hwmon context (struct pmbus_data, sysfs caching, hwmon publication) does not apply. The main benefits: - One framework + CLI for any board carrying PMBus regulators: no per-board PMBus implementation required anymore. - Boards call pmbus_print_telemetry() / pmbus_print_status_word() directly from boot init for a snapshot, sharing all decode + format-dispatch with the CLI. - Linux-compatible constants and DT binding so porting an existing drivers/hwmon/pmbus/ chip is mechanical. - Boot-time AVS/VID rail trim reuses the same decoders and encoders as the CLI and the regulator path: no duplicate math. Signed-off-by: Vincent Jardin <[email protected]> Signed-off-by: Peng Fan <[email protected]>
2026-07-12power: regulator: Fix regulator_enable/disable() macrosJonas Karlman
The commit 076265b75e61 ("compat: regulator: add enable/disable macros") added regulator_enable/disable() macros to provide a closer analogue to the Linux API. These new macros wrap regulator_set_enable() that may return detailed error codes and should typically not directly be called by drivers. Change the macros to wrap regulator_set_enable_if_allowed() that masks error codes consumers typically do not expect to closer match the behavior of the Linux API. Also move the macros outside the #if #else blocks to make the macros available when !CONFIG_IS_ENABLED(DM_REGULATOR). Fixes: 076265b75e61 ("compat: regulator: add enable/disable macros") Signed-off-by: Jonas Karlman <[email protected]> Signed-off-by: Peng Fan <[email protected]>
2026-07-12test: dm: regulator: Add regulator_set_value_clamp() testsJonas Karlman
Add a sandbox LDO3 with a configurable 1.8V to 3.3V range and use it to test regulator_set_value_clamp(). Test in-range requests, clamping against the regulator limits, invalid ranges outside the regulator limits and a min value higher than max. Signed-off-by: Jonas Karlman <[email protected]> Reviewed-by: Peng Fan <[email protected]> Signed-off-by: Peng Fan <[email protected]>
2026-07-12power: regulator: Add helper to set voltage within an acceptable rangeJonas Karlman
Add regulator_set_value_clamp() that clamps a requested target voltage to both caller-provided limits and the regulator constraints before setting the regulator voltage value. Return -EINVAL when the caller limits cannot be satisfied by the regulator constraints or when the requested range is invalid. This helper will initially be used to set vqmmc-supply voltage within an acceptable range according to SD Standards, i.e. 1.70V-1.95V and 2.7V-3.6V. Signed-off-by: Jonas Karlman <[email protected]> Signed-off-by: Peng Fan <[email protected]>
2026-07-10Merge patch series "fs: btrfs: add support for readdir"Tom Rini
Alexey Charkov <[email protected]> says: Btrfs in U-boot currently uses a custom callback for ls and doesn't expose the standard opendir/readdir/closedir interface, making it harder to use in generic code. One area where this would be useful is in discovering BLS type 1 entries [1] on a Btrfs filesystem. Add support for the standard interface, and implement ls in terms of it. [1] https://lore.kernel.org/u-boot/[email protected]/ Link: https://lore.kernel.org/r/[email protected]
2026-07-10fs: btrfs: use fs_ls_generic() and drop custom implementationAlexey Charkov
Now that generic callbacks for opendir/readdir/closedir are implemented, the custom btrfs_ls() implementation is no longer needed, along with the btrfs_iter_dir() callback iterator. Use fs_ls_generic() instead. Signed-off-by: Alexey Charkov <[email protected]> Reviewed-by: Qu Wenruo <[email protected]>
2026-07-10fs: btrfs: implement opendir(), readdir() and closedir()Alexey Charkov
Add support for generic directory iteration with opendir(), readdir() and closedir() in the btrfs filesystem driver. Signed-off-by: Alexey Charkov <[email protected]> Reviewed-by: Qu Wenruo <[email protected]>
2026-07-09Merge tag 'ubi-updates-for-2026.10-rc1' of ↵Tom Rini
https://source.denx.de/u-boot/custodians/u-boot-ubi ubi updates for 2026.10-rc1 - fs: ubifs: fix ubifs_finddir() from Patrick Fixes: 0cab29ff467e ("fs: ubifs: Fix and rework error handling in ubifs_finddir") fix test -e - cmd: ubi: rework from Weijie - env: ubi: add support to create environment volume if it does not exist - cmd: ubi: allow creating volume with all free spaces in ubi_create_vol - cmd: ubi: export more APIs to public - cmd: ubi: reorganize command messages - cmd: ubi: change all positive error return value to negative - cmd: ubi: change the type of parameter dynamic to bool - cmd: ubifs: mark string parameters with const - cmd: ubi: use void * for buf parameter in ubi_volume_read - cmd: ubi: mark read-only function parameters with const - ubi: remove unnecessary extern directive from function prototypes
2026-07-08Merge patch series "pinctrl: add support of Airoha SoCs"Tom Rini
Mikhail Kshevetskiy <[email protected]> says: This patch series add pin controller and gpio driver support for EN7523/ AN7581/AN7583 SoCs. The driver based on official linux airoha pinctrl and gpio driver with Matheus Sampaio Queiroga changes. The original Matheus Sampaio Queiroga driver can be taken from the repo: https://sirherobrine23.com.br/airoha_en7523/kernel/src/branch/airoha_en7523_pinctrl Additionally in the EN7523 case the patches removes existing gpio dts nodes and replaces them with pinctrl node. It should not be very dangerous, because: * No official EN7523 gpio support present in U-Boot * Legacy Linux EN7523 GPIO driver is mostly abandoned * The same driver is planned for upstream linux/openwrt This patchset includes bitfield.h patches created for Linux kernel by Geert Uytterhoeven. It suits U-Boot fine. I preserve original author and original commit messages. Please note me, if there is a better way. The patches were tested on EN7523/AN7581/AN7583 boards. Link: https://lore.kernel.org/r/[email protected]