summaryrefslogtreecommitdiff
path: root/board
AgeCommit message (Collapse)Author
3 daysboard: nxp: common: support CONFIG_FSL_USE_PCA9547_MUXVincent Jardin
Use select_i2c_ch_pca9547() only when CONFIG_FSL_USE_PCA9547_MUX is set, but several call in board/nxp/lx2160a/lx2160a.c invoke it unconditionally, or using unrelated Kconfigs (CONFIG_EMC2305, CONFIG_VID). Compilation with LX2160A target that omits the mux therefore fails with error: implicit declaration of function 'select_i2c_ch_pca9547' Add a static inline stub with -EOPNOTSUPP for the !CONFIG_FSL_USE_PCA9547_MUX case so all cases compile cleanly. Adapted from the convention used by include/scmi_nxp_protocols.h for SCMI subprotocol stubs. There is no functional change for NXP boards: all eight upstream LX2160A defconfigs (lx2160ardb / lx2160aqds / lx2162aqds and their secure / stmm / verified_boot variants) already set CONFIG_FSL_USE_PCA9547_MUX=y, so the real declaration wins. The purpose is to support new boards that do not use the PCA9547. Signed-off-by: Vincent Jardin <vjardin@free.fr> Reviewed-by: Peng Fan <peng.fan@nxp.com> Signed-off-by: Peng Fan <peng.fan@nxp.com>
3 daysboard: nxp: lx2160a: without QIXIS, MC-ENET, PCI, LTC3882Vincent Jardin
The shared LX2160A board file calls helpers that only exist when their subsystem is enabled. Gate them on the matching CONFIG_*: - pci_init() under CONFIG_PCI. - fdt_fixup_mc_ddr() and fsl_rgmii_init() under CONFIG_FSL_MC_ENET. - qixis_*() and the QIXIS branch of checkboard() under CONFIG_FSL_QIXIS; cpu_name(buf) moves out so the non-QIXIS path still prints "Board: <name>". - EVENT_SPY_SIMPLE on init_func_vid moves inside the CONFIG_VOL_MONITOR_LTC3882_READ guard (was outside, dangling symbol when LTC3882 off). #if / #ifdef, not IS_ENABLED(), because the helpers are themselves conditionally compiled. While here, lx2160a_common.h: fix BOOT_TARGET_DEVICES_MMC 1 arg vs 2 args and gate the MMC target on CONFIG_CMD_MMC, not CONFIG_MMC. No functional change for NXP boards: LX2160ARDB, LX2160AQDS, or LX2162AQDS, but mainly build clean up in order to support other NXP lx2160a boards without those HW dependencies. Signed-off-by: Vincent Jardin <vjardin@free.fr> Signed-off-by: Peng Fan <peng.fan@nxp.com>
3 daysboard: ten64: Fix OOB read in ft_board_setupFrancois Berder
base and size arrays can both contain up to total_memory_banks elements. This commit fixes the for loop condition to ensure that it does not attempt to read past the end of both arrays. Signed-off-by: Francois Berder <fberder@outlook.fr> Signed-off-by: Peng Fan <peng.fan@nxp.com>
3 daysboard: nxp: Fix OOB read in ft_board_setupFrancois Berder
base and size arrays can both contain up to total_memory_banks elements. This commit fixes the for loop condition to ensure that it does not attempt to read past the end of both arrays. Signed-off-by: Francois Berder <fberder@outlook.fr> Signed-off-by: Peng Fan <peng.fan@nxp.com>
3 daysp2041rdb: convert README to rstMichael Walle
Convert the README to reST format. Signed-off-by: Michael Walle <mwalle@kernel.org> Signed-off-by: Peng Fan <peng.fan@nxp.com>
3 daysp2041rdb: update README and fix typosMichael Walle
Nowadays, u-boot can build the pbl image itself. Refer to that image in the documentation. Also fix some typos. Signed-off-by: Michael Walle <mwalle@kernel.org> Signed-off-by: Peng Fan <peng.fan@nxp.com>
3 daysp2041rdb: support SDcard bootMichael Walle
The RCW was just supporting SPI boot. Add a second one for the SDcard boot. While at it, use the same naming scheme as for the other NXP boards. Signed-off-by: Michael Walle <mwalle@kernel.org> Signed-off-by: Peng Fan <peng.fan@nxp.com>
3 daysboards/nxp: remove empty fdt_fixup_board_enet()Michael Walle
Remove any empty function which is just called by the board code. There is no need to define this function at all. Signed-off-by: Michael Walle <mwalle@kernel.org> Signed-off-by: Peng Fan <peng.fan@nxp.com>
3 daysboards/nxp: remove board_eth_init()Michael Walle
board_eth_init() is dead code since commit e524f3a449f5 ("net: Remove eth_legacy.c"). Remove it. I'm not sure, all the shenanigans are covered by the new DM-version. The MDIO mux and iomux controls probably are. The fman configuration probably isn't. OTOH, nobody cared for years and the called fm_info_set_phy_address() was also removed years ago. This also removes fdt_fixup_board_enet() for the ls1043a and ls1046a because it relies on the local variable "mdio_mux" being initialized by the board_eth_init(). Signed-off-by: Michael Walle <mwalle@kernel.org> Signed-off-by: Peng Fan <peng.fan@nxp.com>
3 daysboards: remove dead fman codeMichael Walle
Commit cc2bf624eb71 ("net: fm: Remove non-DM_ETH code") removed the call to board_ft_fman_fixup_port(). Thus remove the dead code in the board files. I'm not sure, all that DT shenanigans are covered by the new DM-version of the fman code, but it seems no one complained for the past 4 years. Signed-off-by: Michael Walle <mwalle@kernel.org> Signed-off-by: Peng Fan <peng.fan@nxp.com>
4 daysMerge tag 'i2c-updates-for-2026.07-rc3' of ↵Tom Rini
https://source.denx.de/u-boot/custodians/u-boot-i2c updates for 2026.07-rc3 - designware_i2c: Staticize driver ops from Marek - i2c: Remove legacy CONFIG_SYS_I2C_SOFT -
5 daysi2c: Remove legacy CONFIG_SYS_I2C_SOFTTom Rini
The last users of this legacy i2c stack have been removed or converted to a modern part of the stack instead. Remove this code and references to it. Signed-off-by: Tom Rini <trini@konsulko.com> Reviewed-by: Heiko Schocher <hs@nabladev.com>
5 daysMerge tag 'u-boot-stm32-20260512' of ↵Tom Rini
https://source.denx.de/u-boot/custodians/u-boot-stm CI: https://source.denx.de/u-boot/custodians/u-boot-stm/-/pipelines/30081 - reset: stm32: Fix compilation error - Remove remaining non-existant STM32_RESET flag - configs: stm32mp13: Add SPI-NAND UBI boot support - Support metadata-driven A/B boot for STM32MP25
6 daysarm: apple: Switch to board based text envJanne Grunau
The main use case for u-boot on Apple silicon based devices is to provide an EFI based bootloader for operating systems. This uses a generic u-boot image with DTBs passed from an earlier boot loader (m1n1). Use the generic board name "mac" for this purpose. Signed-off-by: Janne Grunau <j@jannau.net>
6 daysboard: st: stm32mp25: support dynamic A/B bank bootupDario Binacchi
Enable automatic detection of the active A/B bank by retrieving partition GUIDs from FWU metadata. This ensures the system correctly identifies the bootable partitions even in multi-bank scenarios, falling back to a standard bootable flag scan if the UUIDs are missing. To enable A/B bank bootup on stm32mp25 boards, add the following Kconfig options to the stm32mp25_defconfig: CONFIG_FWU_MULTI_BANK_UPDATE=y CONFIG_FWU_MDATA=y CONFIG_FWU_NUM_BANKS=2 CONFIG_FWU_NUM_IMAGES_PER_BANK=3 CONFIG_CMD_FWU_METADATA=y CONFIG_FWU_MDATA_V2=y Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com> Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Patrice Chotard <patrice.chotard@foss.st.com>
9 daysMerge tag 'u-boot-at91-fixes-2026.07-a' of ↵Tom Rini
https://source.denx.de/u-boot/custodians/u-boot-at91 First set of u-boot-at91 fixes for the 2026.07 cycle: - Cleanup some useless code
13 daysboard: ten64: remove USB hub references from internal FDT when neededMathew McBride
More recent revisions of the Ten64 board do not have a USB Hub (USB5744). The references to the USB5744 need to be removed in U-Boot's internal FDT to avoid the USB5744 setup being invoked on these boards. Reviewed-by: Peng Fan <peng.fan@nxp.com> Reviewed-by: Simon Glass <sjg@chromium.org> Signed-off-by: Mathew McBride <matt@traverse.com.au> Signed-off-by: Peng Fan <peng.fan@nxp.com>
13 daysboard: ten64: add fdt fixup to hide usb hub topologyMathew McBride
The USB Hub (microchip,usb5744) can enter a dis-/reconnect loop if a driver tries to re-initialise the hub over I2C. On the Ten64 board, this process only needs to be run once per system reset cycle, which is carried out by U-Boot. As there are distributions shipping with the affected driver by default, the best solution is to remove the USB hub topology information from the FDT passed to the operating system, so the OS won't attempt to re-initialise the USB hub under any circumstance. Signed-off-by: Mathew McBride <matt@traverse.com.au> Signed-off-by: Peng Fan <peng.fan@nxp.com>
2026-05-04board: toradex: Quote variables in `test` cmd expressionFranz Schnyder
With correct POSIX handling, unquoted empty variables can turn the expression like test -n ${fdtfile} into test -n The POSIX handling for single argument `test` evaluates it as true, so the fallback initialization will be skipped unexpectedly. Quoting variable expansions in `test` expressions will always result in correct behavior for empty and non-empty values. This change was triggered by commit 8b0619579b22 ("cmd: test: fix handling of single-argument form of test") The aim is to have a less fragile codebase that is not dependent on a quirk of the shell implementation. Use quoted variable expansions in `test` expressions throughout. Signed-off-by: Franz Schnyder <franz.schnyder@toradex.com> Acked-by: Francesco Dolcini <francesco.dolcini@toradex.com> Reviewed-by: Simon Glass <sjg@chromium.org>
2026-05-01arm: at91: Drop unnecessary BOARD_EARLY_INIT_F usageTom Rini
All of these platforms enable CONFIG_BOARD_EARLY_INIT_F and then have a do-nothing board_early_init_f function. Change to not enabling the option and so not needing an empty function. Signed-off-by: Tom Rini <trini@konsulko.com>
2026-04-30sunxi: spl: fix SPL_SUNXI_LED active low configurationAndre Przywara
The newly introduced Allwinner SPL LED "framework" defined a SPL_SUNXI_LED_STATUS_STATE Kconfig symbol, that was supposed to denote the active-low vs. active-high polarity of the LED. However this is a bool symbol, so it will simply vanish if not defined, and we cannot use it directly inside a C statement. Filter the symbol through the IS_ENABLED() macro, which will return 0 if the symbol is not defined, which is the intended value here. Since the STATUS_STATE name is a bit confusing, rename it to ACTIVE_HIGH on the way, because that is its real meaning. Also the LED_STATUS_BIT name for the GPIO number is similarly a remnant of the old status LED code, so rename it to LED_STATUS_GPIO as well. This fixes configuring LEDs with active-low polarity. Fixes: 256557dd9aae ("sunxi: remove usage of legacy LED API") Signed-off-by: Andre Przywara <andre.przywara@arm.com> Reviewed-by: Paul Kocialkowski <paulk@sys-base.io> Closes: https://lore.kernel.org/u-boot/adfMQBPdntWy1KIq@shepard/ Acked-by: Quentin Schulz <quentin.schulz@cherry.de>
2026-04-30Merge tag 'u-boot-stm32-20260430' of ↵Tom Rini
https://source.denx.de/u-boot/custodians/u-boot-stm - arm; stm32mp2: Factorize TAMP_FWU_BOOT_IDX_MASK/OFFSET definition - arm: stm32mp: Drop unnecessary BOARD_EARLY_INIT_F usage - board: stm32mp25: support dynamic A/B bank bootup - board: stm32pm1: Fix board_check_usb_power() - clk: stm32: Add STM32MP23 support - video: stm32: dsi: fix unchecked return values - video: support Rocktech RK050HR345-CT106A panel - Remove non-existent STM32_RESET flag
2026-04-30arm: stm32mp: Drop unnecessary BOARD_EARLY_INIT_F usageTom Rini
All of these platforms enable CONFIG_BOARD_EARLY_INIT_F and then have a do-nothing board_early_init_f function. Change to not enabling the option and so not needing an empty function. Signed-off-by: Tom Rini <trini@konsulko.com> Reviewed-by: Patrice Chotard <patrice.chotard@foss.st.com>
2026-04-30board: stm32pm1: Fix board_check_usb_power()Patrice Chotard
Depending of plugged power source (computer, wall charger, ...) it can happen that we got the following message: "****************************************************" "* USB TYPE-C charger not compliant with *" "* specification *" "****************************************************" " " "### ERROR ### Please RESET the board ### " This issue has been detected on STM32MP135f-DK board. It's due to max_uV and min_uV value are initialized at beginning of board_check_usb_power() and can then be used for the 2 iteration of adc_measurement(). max_uV/min_uV values issued of the first adc_measurement() iteration are used as input of the second adc_measurement() iteration, which can lead to incoherent pair of min_uV/max_uV values. To ensure that adc_measurement() returns coherent value for max_uV and min_uV, initialize max_uV and min_uV at each loop start. Signed-off-by: Patrice Chotard <patrice.chotard@foss.st.com> Reviewed-by: Kory Maincent <kory.maincent@bootlin.com>
2026-04-29configs: mt7622: remove empty header fileWeijie Gao
Remove the empty include/configs/mt7622.h header file as it is not needed. The Kconfig entry that referenced it is also removed. Signed-off-by: Weijie Gao <weijie.gao@mediatek.com> Link: https://patch.msgid.link/20260428033625.109032-1-weijie.gao@mediatek.com Signed-off-by: David Lechner <dlechner@baylibre.com>
2026-04-27Merge patch series "net: migrate NO_NET out of the networking stack choice"Tom Rini
Quentin Schulz <foss+uboot@0leil.net> says: This migrates the net options away from the main Kconfig to net/Kconfig, rename the current NET option to NET_LEGACY to really highlight what it is and hopefully encourage more people to use lwIP, add a new NET menuconfig (but keep NO_NET as an alias to NET=n for now) which then allows us to replace all the "if legacy_stack || lwip_stack" checks with "if net_support" which is easier to read and maintain. The only doubt I have is wrt SYS_RX_ETH_BUFFER which seems to be needed for now even when no network is configured? Likely due to include/net-common.h with PKTBUFSRX? No change in behavior is intended. Only change in defconfig including other defconfigs where NO_NET=y or NET is not set, in which case NO_NET is not set or NET=y should be set in the top defconfig. Similar change required for config fragments. See commit log in patch adding NET menuconfig for details. This was tested based on 70fd0c3bb7c2 ("x86: there is no CONFIG_UBOOT_ROMSIZE_KB_12288"), from within the GitLab CI container trini/u-boot-gitlab-ci-runner:noble-20251013-23Jan2026 and set up similarly as in "build all platforms in a single job" GitLab CI job. #!/usr/bin/env bash set -o pipefail set -eux ARGS="-BvelPEWM --reproducible-builds --step 0" ./tools/buildman/buildman -o ${O} --force-build $ARGS -CE $* ./tools/buildman/buildman -o ${O} $ARGS -Ssd $* O=../build/u-boot/ ../u-boot.sh -b master^..b4/net-kconfig |& tee ../log.txt I can't really decipher the log.txt, but there's no line starting with + which would be an error according to tools/buildman/builder.py help text. Additionally, because I started the script with set -e set and because buildman has an exit code != 0 when it fails to build a board, and I have the summary printed (which is the second buildman call), I believe it means all builds passed. The summary is the following: aarch64: (for 537/537 boards) all +0.0 rodata +0.0 uniphier_v8 : all +1 rodata +1 u-boot: add: 0/0, grow: 1/0 bytes: 1/0 (1) function old new delta data_gz 10640 10641 +1 arm: (for 733/733 boards) all -0.0 rodata -0.0 uniphier_v7 : all -1 rodata -1 u-boot: add: 0/0, grow: 0/-1 bytes: 0/-1 (-1) function old new delta data_gz 11919 11918 -1 opos6uldev : all -3 rodata -3 u-boot: add: 0/0, grow: 0/-1 bytes: 0/-3 (-3) function old new delta data_gz 18778 18775 -3 uniphier_ld4_sld8: all -3 rodata -3 u-boot: add: 0/0, grow: 0/-1 bytes: 0/-3 (-3) function old new delta data_gz 11276 11273 -3 stemmy : all -20 rodata -20 u-boot: add: 0/0, grow: 0/-1 bytes: 0/-20 (-20) function old new delta data_gz 15783 15763 -20 As far as I could tell this data_gz is an automatically generated array when CONFIG_CMD_CONFIG is enabled. It is the compressed .config stored in binary form. Because I'm changing the name of symbols, replacing a menu with a menuconfig, additional text makes it to .config and the "# Networking" section in .config disappears. Here is the diff for the 5 defconfigs listed above, generated with: for f in build/*-m; do diff --unified=0 $f/.config $(dirname $f)/$(basename -a -s '-m' $f)/.config done (-m is the build directory for master, and without the suffix, it's the top commit of this series) """ --- build/opos6uldev-m/.config 2026-04-20 10:53:49.804528526 +0200 +++ build/opos6uldev/.config 2026-04-20 11:03:37.430242767 +0200 @@ -970,4 +969,0 @@ - -# -# Networking -# @@ -975,0 +972 @@ +CONFIG_NET_LEGACY=y --- build/stemmy-m/.config 2026-04-20 11:01:33.653698123 +0200 +++ build/stemmy/.config 2026-04-20 11:04:53.452577311 +0200 @@ -733,4 +732,0 @@ - -# -# Networking -# @@ -738,2 +733,0 @@ -# CONFIG_NET is not set -# CONFIG_NET_LWIP is not set --- build/uniphier_ld4_sld8-m/.config 2026-04-20 11:00:41.605469071 +0200 +++ build/uniphier_ld4_sld8/.config 2026-04-20 11:04:22.226439899 +0200 @@ -997,4 +996,0 @@ - -# -# Networking -# @@ -1002,0 +999 @@ +CONFIG_NET_LEGACY=y --- build/uniphier_v7-m/.config 2026-04-20 10:53:04.019307319 +0200 +++ build/uniphier_v7/.config 2026-04-20 11:03:01.688085486 +0200 @@ -1004,4 +1003,0 @@ - -# -# Networking -# @@ -1009,0 +1006 @@ +CONFIG_NET_LEGACY=y --- build/uniphier_v8-m/.config 2026-04-20 10:43:05.614441175 +0200 +++ build/uniphier_v8/.config 2026-04-20 10:41:03.214852130 +0200 @@ -875,4 +874,0 @@ - -# -# Networking -# @@ -880,0 +877 @@ +CONFIG_NET_LEGACY=y """ This is fine: - Networking menu doesn't exist anymore so "#\n# Networking\n#\n" won't be in .config anymore. - opos6uldev, uniphier_ld4_sld8, uniphier_v7 and uniphier_v8 all have (old) CONFIG_NET enabled, (new) CONFIG_NET will still be set but CONFIG_NET_LEGACY also needs to be defined now to reflect the stack choice (even if default), - stemmy has CONFIG_NO_NET set, which means CONFIG_NET and CONFIG_NET_LWIP are not reachable anymore hence why they don't need to be part of .config, GitLab CI was run on this series (well, not exactly, but it's only changes to the git logs that were made): https://source.denx.de/u-boot/contributors/qschulz/u-boot/-/pipelines/29849 It passes. Link: https://lore.kernel.org/r/20260420-net-kconfig-v1-0-9900002d8e72@cherry.de
2026-04-27simplify NET_LEGACY || NET_LWIP condition with NET conditionQuentin Schulz
Since the move to make NET a menuconfig and NO_NET a synonym of NET=n, when NET is enabled, NET_LEGACY || NET_LWIP is necessarily true, so let's simplify the various checks across the codebase. SPL_NET_LWIP doesn't exist but SPL_NET_LEGACY is an alias for SPL_NET so the proper symbol is still defined in SPL whenever needed. Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de> Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Peter Robinson <pbrobinson@gmail.com> Reviewed-by: Tom Rini <trini@konsulko.com>
2026-04-27rename NET to NET_LEGACYQuentin Schulz
Highlight that NET really is the legacy networking stack by renaming the option to NET_LEGACY. This requires us to add an SPL_NET_LEGACY alias to SPL_NET as otherwise CONFIG_IS_ENABLED(NET_LEGACY) will not work for SPL. The "depends on !NET_LWIP" for SPL_NET clearly highlights that it is using the legacy networking app so this seems fine to do. This also has the benefit of removing potential confusion on NET being a specific networking stack instead of "any" network stack. Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de> Acked-by: Ilias Apalodimas <ilias.apalodimas@linaro.org> Reviewed-by: Peter Robinson <pbrobinson@gmail.com> Reviewed-by: Tom Rini <trini@konsulko.com>
2026-04-27board: toradex: aquila-am69: Fix memory size setup logicEmanuele Ghidoli
The hardware configuration pins are used both to select the DDR configuration and to determine the installed memory size. On Aquila AM69, the DDR timing patch is applied in the R5 SPL, while the memory size fixup for the next-stage U-Boot DT is done later in the A72 SPL path. The previous immplementation was not taking in account that the hw_cfg value is lost both during SPL execution (board_init_f and board_init_r) and between SPL and U-Boot proper. Fix this by reading the hardware configuration pins when the memory size is actually needed: - in the R5 SPL, to select the correct DDR configuration - in the A72 SPL, to fix up the U-Boot DT memory size and bank layout Fixes: 3f0528882c0d ("board: toradex: add aquila am69 support") Signed-off-by: Emanuele Ghidoli <emanuele.ghidoli@toradex.com> Acked-by: Francesco Dolcini <francesco.dolcini@toradex.com>
2026-04-27board: toradex: aquila-am69: Fix 16GB dual-rank DDR configurationEmanuele Ghidoli
The 16GB dual-rank DDR configuration uses an incorrect DDRSS_PLL_FHS_CNT value. This makes DDR initialization hang during the DDR frequency handshake sequence. Update DDRSS_PLL_FHS_CNT to the correct value for the 16GB dual-rank configuration. Fixes: 39e014f43a15 ("board: toradex: aquila-am69: Add support for 16GB dual rank memory configuration") Signed-off-by: Emanuele Ghidoli <emanuele.ghidoli@toradex.com> Acked-by: Francesco Dolcini <francesco.dolcini@toradex.com>
2026-04-27Merge patch series "k3-am69-aquila: Migrate to OF_UPSTREAM and add ↵Tom Rini
remoteproc FW pre-loading" Ernest Van Hoecke <ernestvanhoecke@gmail.com> says: This patch series migrates the Aquila AM69 to OF_UPSTREAM to receive automatic device tree updates. It also adds remoteproc firmware pre-loading to the environment. Link: https://lore.kernel.org/r/20260417-elb-6911-aquila69-ofupstr-v1-0-400d93db3747@toradex.com
2026-04-27board: toradex: aquila-am69: add remoteproc firmware pre-loadingVitor Soares
Some use cases require remoteproc firmware to be loaded before Linux boots. Introduce rprocsemmcboot and rproc_fw_binaries to load the remoteproc cores from U-Boot, relying on the TI k3_rproc framework which already handles the secure firmware variants, firmware loading, and proper initialization. The firmware binaries are expected to be present in the eMMC rootfs under /lib/firmware/. To activate, run rprocsemmcboot or add it to bootcmd: bootcmd=run rprocsemmcboot; bootflow scan -b The upstream U-Boot does not yet have the remoteproc DT nodes enabled for the Aquila AM69, making firmware loading fail. Marking as pending waiting for remoteproc enabling, which could happen along with the OF_UPSTREAM migration. Signed-off-by: Vitor Soares <vitor.soares@toradex.com> Acked-by: Francesco Dolcini <francesco.dolcini@toradex.com>
2026-04-27arm: dts: k3-am69-aquila: migrate to OF_UPSTREAMErnest Van Hoecke
Enable CONFIG_OF_UPSTREAM to receive automatic device tree updates for the Aquila AM69. Remove the now-obsolete device tree files: - arch/arm/dts/k3-am69-aquila-dev.dts - arch/arm/dts/k3-am69-aquila.dtsi Signed-off-by: Ernest Van Hoecke <ernest.vanhoecke@toradex.com> Acked-by: Francesco Dolcini <francesco.dolcini@toradex.com>
2026-04-27Merge branch 'casey/qcom-main-13Apr2026' of ↵Tom Rini
https://source.denx.de/u-boot/custodians/u-boot-snapdragon Various Qualcomm additions this cycle: * USB superspeed support for 1 platform * Initial support for the Milos platform and the Fairphone Gen 6 (chainloaded from ABL) * Improved support for booting with OP-TEE on supported platforms * Initial basic power domain support Notably there is a generic change to the device core, missing power domains will no longer cause a device to fail probe and instead will just print a warning. This shouldn't affect any existing platforms.
2026-04-27board/qualcomm: add debug config fragment for MilosLuca Weiss
Add a fragment similar to others to enable earlycon. Reviewed-by: Sumit Garg <sumit.garg@oss.qualcomm.com> Signed-off-by: Luca Weiss <luca.weiss@fairphone.com> Link: https://patch.msgid.link/20260318-milos-bringup-v2-7-650b91dd75d8@fairphone.com Signed-off-by: Casey Connolly <casey.connolly@linaro.org>
2026-04-27board/qualcomm: Introduce TF-A and OP-TEE config fragmentSumit Garg
Recently upstream TF-A/OP-TEE has started gaining support for Qcom platforms. RB3Gen2 being the first one and more to come. U-Boot in corresponding boot flow is packaged as a position independent executable. So, lets add a generic U-Boot config fragment for Qcom platforms to support TF-A/OP-TEE based TrustZone stack. Build command: $ ./scripts/kconfig/merge_config.sh \ configs/qcom_defconfig \ board/qualcomm/tfa-optee.config $ make -j`nproc` DEVICE_TREE=qcom/qcs6490-rb3gen2 For more information refer here: https://trustedfirmware-a.readthedocs.io/en/latest/plat/qti/rb3gen2.html Signed-off-by: Sumit Garg <sumit.garg@oss.qualcomm.com> Reviewed-by: Casey Connolly <casey.connolly@linaro.org> Link: https://patch.msgid.link/20260127062341.723966-4-sumit.garg@kernel.org Signed-off-by: Casey Connolly <casey.connolly@linaro.org>
2026-04-26MAINTAINERS, mailmap: Change email for Eugen HristevEugen Hristev
Replace old bouncing emails with ehristev@kernel.org Signed-off-by: Eugen Hristev <ehristev@kernel.org>
2026-04-23board: xilinx: zynqmp: Register alternate FPGA device for zu63dr_SEMichal Simek
The zu63dr_SE and zu67dr_SE devices share the same silicon ID code 0x046D7093 and cannot be distinguished at runtime. The SOC driver reports zu67dr_SE for this ID, which causes fpga loadb to reject zu63dr_SE bitstreams. Register zu63dr_SE as an alternate FPGA device when zu67dr_SE is detected. This allows users to load either bitstream by selecting the appropriate device number: - Device 0 (zu67dr_SE): fpga loadb 0 ${loadaddr} ${filesize} - Device 1 (zu63dr_SE): fpga loadb 1 ${loadaddr} ${filesize} Signed-off-by: Michal Simek <michal.simek@amd.com> Link: https://lore.kernel.org/r/591134b1c66701fa14a21fecac4f7a772ddba876.1775558062.git.michal.simek@amd.com
2026-04-22board: ti: cape_detect: Add overlay name lookup table for extension boardsKory Maincent (TI)
Some extension boards have EEPROM part numbers that do not directly match their devicetree overlay filenames. Introduce a static name_mapping table and a set_cape_overlay() helper that translates the part number and version strings read from the EEPROM into the correct overlay filename. When no entry matches, fall back to the existing behavior of constructing the overlay name as "<part_number>-<version>.dtbo" directly from the EEPROM content. Add an initial entry mapping BB-GREEN-HDMI revision 00A0 to am335x-bone-hdmi-00a0.dtbo. Signed-off-by: Kory Maincent (TI) <kory.maincent@bootlin.com>
2026-04-22board: adi: Fix exception when using standalone SoMPhilip Molloy
Although less common, ADSP SoM boards can be operated standalone without a carrier board. The SoM can be powered over USB-C by moving the jumper on JP1. The board configuration needs to be heavily refactored to reduce the number of defconfigs and leverage the devicetree. The TI DP83867 support, which is dependent on that configuration, needs to be removed. Until then this change allows the same U-Boot binary to work correctly both with carrier boards and the standalone SoM. The carrier board initialization code in somcrr_ezkit.c and somcrr_ezlite.c calls gpio_hog_lookup_name() to find ethernet control GPIOs, but does not check if the lookup succeeds before using the returned pointers. When running on a standalone SoM without a carrier board, these GPIO hogs do not exist in the device tree. The gpio_hog_lookup_name() function returns -ENODEV and sets the pointer to NULL, but the code continues to call dm_gpio_set_value() with uninitialized pointers, causing a synchronous abort exception: "Synchronous Abort" handler, esr 0x96000004 elr: 00000000960326c4 lr : 0000000096038d5c (reloc) Signed-off-by: Philip Molloy <philip.molloy@analog.com> Reviewed-by: Greg Malysa <malysagreg@gmail.com>
2026-04-21imx8mq: phanbell: enable SPL DMPeng Fan
Switch the Phanbell i.MX8MQ SPL to full Driver Model (DM) boot flow by moving early device initialization into devicetree and enabling the required SPL DM subsystems. Mark GPIO, USDHC, pinctrl, and regulator nodes with bootph-pre-ram so they are available during SPL. With DM handling MMC and power rails, remove legacy board-specific USDHC, GPIO, and pad setup code from SPL. Update the SPL initialization sequence to use spl_early_init(), clears BSS earlier, and explicitly enables USDHC clocks before handing off to board_init_r(). Signed-off-by: Peng Fan <peng.fan@nxp.com>
2026-04-21imx8mq: kontron: migrate PITX-IMX8M to DM PMIC frameworkPeng Fan
Migrate the Kontron PITX-IMX8M board from the legacy power framework to the DM PMIC infrastructure. The SPL power initialization is converted to use DM_PMIC_PFUZE100, dropping all legacy I2C, GPIO, pinmux, and MMC setup code that is now handled through the device tree and driver model instead. Key changes: - Switch PFUZE100 access to DM PMIC APIs - Enable SPL OF_CONTROL and mark required nodes with bootph* - Remove legacy I2C and power configuration - Enable SPL DM, pinctrl, regulator, and PMIC support - Adjust SPL stack placement for DM usage Signed-off-by: Peng Fan <peng.fan@nxp.com>
2026-04-21imx8mq: evk: Migrate to DM PMIC frameworkPeng Fan
Migrate the i.MX8MQ EVK board to the Driver Model (DM) PMIC framework. This replaces legacy PMIC handling with DM_PMIC and enables proper device-model support during SPL. As part of this transition, enable CONFIG_SPL_DM and the required DM subsystems such as I2C, PINCTRL, MMC, GPIO, and regulators so the SPL boot flow continues to work correctly. Board-specific SPL code is simplified accordingly by removing legacy I2C, USDHC, and PMIC handling, relying instead on device tree descriptions and DM drivers. Signed-off-by: Peng Fan <peng.fan@nxp.com>
2026-04-21board: nxp: common: fix PFUZE100 DM build and unify DM/non-DM handlingPeng Fan
Switch PFUZE100 object linkage to be phase-aware and fix build issues when using driver model PMIC support. The PFUZE100 helper code is reworked to: - Build pfuze.o only when CONFIG_(SPL_)DM_PMIC_PFUZE100 is enabled - Use CONFIG_IS_ENABLED(DM_PMIC_PFUZE100) for proper DM/non-DM selection - Align function signatures and implementations with DM PMIC APIs - Use udevice-based pmic access for DM and legacy pmic for non-DM - Avoid mixing struct pmic and struct udevice in the same build configuration No functional change intended beyond fixing DM support and build consistency. Signed-off-by: Peng Fan <peng.fan@nxp.com>
2026-04-21mx6: sabreauto/sd: Exclude power_init_board from SPL buildPeng Fan
To mx6sabreauto and mx6sabresd, power_init_board is called in board_r phase. After CONFIG_SPL_DM_PMIC_PFUZE100 included, there will be build error to build power_init_board() when CONFIG_SPL_DM_PMIC_PFUZE100 is not enabled. Signed-off-by: Peng Fan <peng.fan@nxp.com>
2026-04-21imx8mq: cm: drop redundant gd clearing in board_init_fPeng Fan
The global data (gd) area is already zeroed in board_init_f_init_reserve() before board_init_f() is called. Remove the duplicate gd clearing from board_init_f(). Signed-off-by: Peng Fan <peng.fan@nxp.com>
2026-04-21imx8mq: pico: drop redundant gd clearing in board_init_fPeng Fan
The global data (gd) area is already zeroed in board_init_f_init_reserve() before board_init_f() is called. Remove the duplicate gd clearing from board_init_f(). Signed-off-by: Peng Fan <peng.fan@nxp.com>
2026-04-21imx8mq: reform2: drop redundant gd clearing in board_init_fPeng Fan
The global data (gd) area is already zeroed in board_init_f_init_reserve() before board_init_f() is called. Remove the duplicate gd clearing from board_init_f(). Signed-off-by: Peng Fan <peng.fan@nxp.com>
2026-04-21imx8mq: phanbell: drop redundant gd clearing in board_init_fPeng Fan
The global data (gd) area is already zeroed in board_init_f_init_reserve() before board_init_f() is called. Remove the duplicate gd clearing from board_init_f(). Signed-off-by: Peng Fan <peng.fan@nxp.com>
2026-04-21imx8mq: pitx: drop redundant gd clearing in board_init_fPeng Fan
The global data (gd) area is already zeroed in board_init_f_init_reserve() before board_init_f() is called. Remove the duplicate gd clearing from board_init_f(). Signed-off-by: Peng Fan <peng.fan@nxp.com>