summaryrefslogtreecommitdiff
path: root/board/toradex
AgeCommit message (Collapse)Author
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 <[email protected]> Acked-by: Francesco Dolcini <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2026-04-27Merge patch series "net: migrate NO_NET out of the networking stack choice"Tom Rini
Quentin Schulz <[email protected]> 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/[email protected]
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 <[email protected]> Acked-by: Ilias Apalodimas <[email protected]> Reviewed-by: Peter Robinson <[email protected]> Reviewed-by: Tom Rini <[email protected]>
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 <[email protected]> Acked-by: Francesco Dolcini <[email protected]>
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 <[email protected]> Acked-by: Francesco Dolcini <[email protected]>
2026-04-27Merge patch series "k3-am69-aquila: Migrate to OF_UPSTREAM and add ↵Tom Rini
remoteproc FW pre-loading" Ernest Van Hoecke <[email protected]> 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/[email protected]
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 <[email protected]> Acked-by: Francesco Dolcini <[email protected]>
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 <[email protected]> Acked-by: Francesco Dolcini <[email protected]>
2026-04-21toradex: tdx-cfg-block: add verdin imx95 0226, 0227 and 0228 pid4Emanuele Ghidoli
Add these new PID4 to config block handling: - 0226 Verdin iMX95 Hexa 4GB WB IT - 0227 Verdin iMX95 Hexa 4GB ET - 0228 Verdin iMX95 Hexa 16GB IT Signed-off-by: Emanuele Ghidoli <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2026-04-21board: toradex: add Toradex Verdin iMX95Emanuele Ghidoli
Add support for the Toradex Verdin iMX95. Link: https://www.toradex.com/computer-on-modules/verdin-arm-family/nxp-imx95 Link: https://www.toradex.com/products/carrier-board/verdin-development-board-kit Signed-off-by: Emanuele Ghidoli <[email protected]> Co-developed-by: Ernest Van Hoecke <[email protected]> Signed-off-by: Ernest Van Hoecke <[email protected]> Co-developed-by: Francesco Dolcini <[email protected]> Signed-off-by: Francesco Dolcini <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2026-04-13board: toradex: fix tdx-cfg-block prompt buffer overflowNgo Luong Thanh Tra
Replace unbounded sprintf() with snprintf() using sizeof(message) as the bound for all prompt string assignments in get_cfgblock_interactive(), get_cfgblock_carrier_interactive(), do_cfgblock_carrier_create() and do_cfgblock_create(). The previous calls had no size limit and could overflow the CONFIG_SYS_CBSIZE-sized stack buffer if SYS_CBSIZE was configured smaller than the longest prompt string (71 bytes). Fixes: 8b6dc5d3943c ("toradex: tdx-cfg-block: Cleanup interactive cfg block creation") Signed-off-by: Ngo Luong Thanh Tra <[email protected]> To: [email protected]
2026-04-02imx8mp: verdin: Convert to DM_PMICPeng Fan
Convert the board to use DM_PMIC instead of the legacy SPL I2C/PMIC handling. Changes include: - Enable DM_PMIC, DM_PMIC_PCA9450, and SPL_DM_PMIC_PCA9450 in defconfig. - Drop legacy SPL I2C and PMIC options. - Remove manual I2C1 pad setup and legacy power_pca9450_init() usage. - Use DM-based pmic_get() with the DT node "pmic@25". - Update PMIC register programming to use struct udevice API. Signed-off-by: Peng Fan <[email protected]> Tested-by: Ernest Van Hoecke <[email protected]>
2026-04-02arm: dts: imx95-toradex-smarc: migrate to OF_UPSTREAMFranz Schnyder
Allow CONFIG_OF_UPSTREAM to receive automatic device tree updates for the Toradex SMARC iMX95. Remove the now obsolete device tree files: - imx95-toradex-smarc-dev.dts - imx95-toradex-smarc.dtsi Signed-off-by: Franz Schnyder <[email protected]>
2026-03-23Merge patch series "DDR configuration refactor and 16GB dual-rank support"Tom Rini
Emanuele Ghidoli <[email protected]> says: From: Emanuele Ghidoli <[email protected]> This series refactors the DDR configuration handling for the Toradex Aquila AM69 board and adds support for a 16GB dual-rank memory configuration, while changing the HW_CFG pins value to DDR configurations mapping. Link: https://lore.kernel.org/r/[email protected]
2026-03-23board: toradex: aquila-am69: Add support for 16GB dual rank memory configurationEmanuele Ghidoli
Move the existing 16GB single-rank configuration to HW_CFG 0x03 and use the previous HW_CFG 0x01 value for the new 16GB dual-rank configuration. There is no hardware using the former 16GB single-rank configuration, so reuse the HW_CFG value for the new 16GB dual-rank configuration, which will be used in production. Signed-off-by: Emanuele Ghidoli <[email protected]> Reviewed-by: Francesco Dolcini <[email protected]>
2026-03-23board: toradex: aquila-am69: refactor memory configurationEmanuele Ghidoli
The memory controller configuration doesn't depend only on the memory size, so refactor the code to use the memory configuration read from the HW_CFG pin instead of the memory size. Additionally, make use of one header file for all the memory configurations. Signed-off-by: Emanuele Ghidoli <[email protected]> Reviewed-by: Francesco Dolcini <[email protected]>
2026-03-16toradex: tdx-cfg-block: add aquila tda4 0223 pid4Vitor Soares
Add PID4 0223 Aquila TDA4 Octa 16GB IT to config block handling. Signed-off-by: Vitor Soares <[email protected]> Reviewed-by: Francesco Dolcini <[email protected]>
2026-03-13Merge patch series "board: k3: Sync rm-cfg with TIFS v11.02.09 firmware"Tom Rini
Sparsh Kumar <[email protected]> says: This series updates the Resource Management (RM) configuration files for AM62 family devices to align with the TIFS v11.02.09 firmware. Background ---------- With the latest TIFS firmware (v11.02.09), an additional virtual interrupt and event is reserved for MCU cores to DM usage on am62x, am62ax, and am62px devices. This series brings the rm-cfg and tifs-rm-cfg files in sync with these firmware changes across both TI reference boards and vendor boards. These changes are backward compatible with older TIFS firmware versions. Additionally, the am62x platform was originally introduced without a tifs-rm-cfg.yaml file, unlike other platforms in the AM62 family. This series addresses that gap and enables tifs-rm-cfg in binman for am625-sk and am62p-sk platforms. Changes ------- TI reference boards (patches 1-4): - Update rm-cfg.yaml for am62x, am62ax, am62px - Sync am62px tifs-rm-cfg.yaml with TIFS firmware template - Add missing tifs-rm-cfg.yaml for am62x - Enable tifs-rm-cfg in binman for am625-sk and am62p-sk Vendor boards (patches 5-9): - beagleplay (am62x-based) - phytec phycore_am62x - toradex verdin-am62 - phytec phycore_am62ax - toradex verdin-am62p with the required interrupt reservation. The tifs-rm-cfg.yaml files cannot be updated without access to the corresponding SysConfig files, as both rm-cfg.yaml and tifs-rm-cfg.yaml must remain in sync. Link: https://lore.kernel.org/r/[email protected]
2026-03-13board: toradex: verdin-am62p: rm-cfg: Update rm-cfg to reflect new resource ↵Sparsh Kumar
reservation With the latest v11.02.09 TIFS firmware, an additional virtual interrupt and event is reserved for MCU cores to DM usage on am62px devices. Update the rm-cfg to reflect this new reservation. Signed-off-by: Sparsh Kumar <[email protected]>
2026-03-13toradex: verdin-am62: rm-cfg: Update rm-cfg to reflect new resource reservationSparsh Kumar
With the latest v11.02.09 TIFS firmware, an additional virtual interrupt and event is reserved for MCU cores to DM usage on am62x devices. Update the rm-cfg to reflect this new reservation. Signed-off-by: Sparsh Kumar <[email protected]>
2026-02-17Merge patch series "treewide: Clean up usage of DECLARE_GLOBAL_DATA_PTR"Tom Rini
Peng Fan (OSS) <[email protected]> says: This patch set primarily removes unused DECLARE_GLOBAL_DATA_PTR instances. Many files declare DECLARE_GLOBAL_DATA_PTR and include asm/global_data.h even though gd is never used. In these cases, asm/global_data.h is effectively treated as a proxy header, which is not a good practice. Following the Include What You Use principle, files should include only the headers they actually depend on, rather than relying on global_data.h indirectly. This approach is also adopted in Linux kernel [1]. The first few patches are prepartion to avoid building break after remove the including of global_data.h. A script is for filtering the files: list=`find . -name "*.[ch]"` for source in ${list} do result=`sed -n '/DECLARE_GLOBAL_DATA_PTR/p' ${source}` if [ "${result}" == "DECLARE_GLOBAL_DATA_PTR;" ]; then echo "Found in ${source}" result=`sed -n '/\<gd\>/p' ${source}` result2=`sed -n '/\<gd_/p' ${source}` result3=`sed -n '/\<gd->/p' ${source}` if [ "${result}" == "" ] && [ "${result2}" == "" ] && [ "${result3}" == "" ];then echo "Cleanup ${source}" sed -i '/DECLARE_GLOBAL_DATA_PTR/{N;/\n[[:space:]]*$/d;s/.*\n//;}' ${source} sed -i '/DECLARE_GLOBAL_DATA_PTR/d' ${source} sed -i '/global_data.h/d' ${source} git add ${source} fi fi done [1] https://lpc.events/event/17/contributions/1620/attachments/1228/2520/Linux%20Kernel%20Header%20Optimization.pdf CI: https://github.com/u-boot/u-boot/pull/865 Link: https://lore.kernel.org/r/[email protected]
2026-02-17treewide: Clean up DECLARE_GLOBAL_DATA_PTR usagePeng Fan
Remove DECLARE_GLOBAL_DATA_PTR from files where gd is not used, and drop the unnecessary inclusion of asm/global_data.h. Headers should be included directly by the files that need them, rather than indirectly via global_data.h. Reviewed-by: Patrice Chotard <[email protected]> #STMicroelectronics boards and STM32MP1 ram test driver Tested-by: Anshul Dalal <[email protected]> #TI boards Acked-by: Yao Zi <[email protected]> #TH1520 Signed-off-by: Peng Fan <[email protected]>
2026-02-17toradex: common: Add missing headersPeng Fan
Include linux/types.h and asm-generic/u-boot.h. Missing the two header files will cause building error after cleaning up usage of asm/global_data.h. Signed-off-by: Peng Fan <[email protected]>
2026-02-14board: toradex: Make A53 get RAM size from DT in K3 boardsSuhaas Joshi
`dram_init()` is called by R5 SPL and U-Boot, both. It starts by computing the size of the RAM. In verdin-am62(p), it does so by calling `get_ram_size()`. This function computes the size of the RAM by writing over the RAM. When R5 computes the size of the RAM, it does not update the DT with this size. As a result, when A53 invokes `dram_init()` again, it has to compute the size through `get_ram_size()` again. Commit 13c54cf588d82 and 0c3a6f748c9 add firewall over ATF's and OPTEE's regions. This firewall is added during the R5 SPL stage of boot. So when A53 attempts to write over RAM in `get_ram_size()`, it writes over the protected region. Since A53 is a non-secure core, this is blocked by the firewall. To fix this, do the following: * Implement `spl_perform_board_fixups()` function for verdin-am62 and verdin-am62p. Make this function call `fixup_memory_node()`, which updates the DT. * Add an if-block in `dram_init()`, to ensure that only R5 is able to call `get_ram_size()`, and that A53 reads this size from the DT. Signed-off-by: Suhaas Joshi <[email protected]> Reviewed-by: Francesco Dolcini <[email protected]>
2026-02-12board: toradex: Make A53 get RAM size from DT in K3 boardsSuhaas Joshi
`dram_init()` is called by R5 SPL and U-Boot, both. It starts by computing the size of the RAM. In verdin-am62(p), it does so by calling `get_ram_size()`. This function computes the size of the RAM by writing over the RAM. When R5 computes the size of the RAM, it does not update the DT with this size. As a result, when A53 invokes `dram_init()` again, it has to compute the size through `get_ram_size()` again. Commit 13c54cf588d82 and 0c3a6f748c9 add firewall over ATF's and OPTEE's regions. This firewall is added during the R5 SPL stage of boot. So when A53 attempts to write over RAM in `get_ram_size()`, it writes over the protected region. Since A53 is a non-secure core, this is blocked by the firewall. To fix this, do the following: * Implement `spl_perform_board_fixups()` function for verdin-am62 and verdin-am62p. Make this function call `fixup_memory_node()`, which updates the DT. * Add an if-block in `dram_init()`, to ensure that only R5 is able to call `get_ram_size()`, and that A53 reads this size from the DT. Signed-off-by: Suhaas Joshi <[email protected]> Reviewed-by: Francesco Dolcini <[email protected]>
2026-02-06toradex: smarc-imx95: Drop init_uart_clkPeng Fan
Rely on serial driver calling clk_enable to enable the lpuart clk, no need to do init_uart_clk in board_early_init_f(). Also remove board_early_init_f(), because it is empty now. Signed-off-by: Peng Fan <[email protected]> Acked-by: Francesco Dolcini <[email protected]>
2026-02-03board: toradex: aquila-am69: Remove ETH_1 MCU_CLKOUT0Ernest Van Hoecke
On the Toradex Aquila AM69 V1.1, the on-module ETH_1 relies on an external 25 MHz crystal oscillator. On the V1.0, we needed to enable MCU_CLKOUT0, but support for this was already dropped from the device tree before being sent to U-Boot. Remove this obsolete enabling of MCU_CLKOUT0. Fixes: 3f0528882c0d ("board: toradex: add aquila am69 support") Signed-off-by: Ernest Van Hoecke <[email protected]> Reviewed-by: Francesco Dolcini <[email protected]>
2026-01-17toradex: common: handle third MAC address for SMARC i.MX95Max Krummenacher
The toradex_smarc_imx95 board exposes three Ethernet ports. Set the third MAC address equal to the second MAC address. Signed-off-by: Max Krummenacher <[email protected]> Reviewed-by: Francesco Dolcini <[email protected]>
2026-01-02toradex: tdx-cfg-block: add pid4 support for new modulesEmanuele Ghidoli
Add new PID4 to ConfigBlock handling: - 0217 Lino iMX93 Dual 2GB IT - 0218 Lino iMX91 Solo 2GB IT - 0219 OSM iMX93 Dual 2GB IT - 0220 OSM iMX91 Solo 2GB IT - 0221 Verdin AM62 Dual 1GB ET Lino and OSM are two new SoM families. The Verdin variant differs from the existing 0073 Verdin AM62 Dual 1GB ET by the presence of the GPU (AM625 instead of AM623), the absence of DSI interface (bridge not mounted) and eMMC size increased to 16GB instead of 4GB. Link: https://www.toradex.com/computer-on-modules/lino-arm-family Link: https://www.toradex.com/computer-on-modules/osm-arm-family Signed-off-by: Emanuele Ghidoli <[email protected]> Reviewed-by: Francesco Dolcini <[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-11-07toradex: verdin-am62: sync rm-cfg with SDK 11.01.05.03 baselineVitor Soares
Update the resource management configuration (rm-cfg.yaml) to align with the default configuration provided in TI's AM62xx Processor SDK Linux version 11.01.05.03, generated using the K3 Resource Partitioning Tool. This matches the configuration from board/ti/am62x/rm-cfg.yaml and the notable change is the sharing of MCU GPIO interrupts between DM R5 and A53 cores, and reservation of an additional virtual interrupt and event for TIFS usage. Signed-off-by: Vitor Soares <[email protected]> Reviewed-by: Francesco Dolcini <[email protected]> Reviewed-by: Anshul Dalal <[email protected]>
2025-10-30board: toradex: add Toradex SMARC iMX95João Paulo Gonçalves
Add support for the Toradex SMARC iMX95. Link: https://www.toradex.com/computer-on-modules/smarc-arm-family/nxp-imx95 Link: https://www.toradex.com/products/carrier-board/smarc-development-board-kit Signed-off-by: João Paulo Gonçalves <[email protected]> Co-developed-by: Emanuele Ghidoli <[email protected]> Signed-off-by: Emanuele Ghidoli <[email protected]> Co-developed-by: Max Krummenacher <[email protected]> Signed-off-by: Max Krummenacher <[email protected]> Co-developed-by: Ernest Van Hoecke <[email protected]> Signed-off-by: Ernest Van Hoecke <[email protected]>
2025-10-30board: toradex: fix aquila imx95 0098 pid4Francesco Dolcini
The memory size of the 0098 SKU is 8 GB instead of 16 GB. Fix PID4 0098 Aquila iMX95 definition. Fixes: 4c9340716522 ("toradex: tdx-cfg-block: add new pid4 support") Signed-off-by: Francesco Dolcini <[email protected]>
2025-10-15arm: dts: k3-am62p-verdin: migrate to OF_UPSTREAMErnest Van Hoecke
Enable CONFIG_OF_UPSTREAM to receive automatic device tree updates for the Verdin AM62P. Remove the now-obsolete device tree files: - k3-am62p-verdin.dtsi - k3-am62p-verdin-dev.dtsi - k3-am62p-verdin-wifi.dtsi - k3-am62p5-verdin-wifi-dev.dts Signed-off-by: Ernest Van Hoecke <[email protected]>
2025-07-24Merge tag 'u-boot-imx-master-20250724' of ↵Tom Rini
https://gitlab.denx.de/u-boot/custodians/u-boot-imx CI: https://source.denx.de/u-boot/custodians/u-boot-imx/-/pipelines/27149 - Add support for the NXP imx93 frdm board. - imx93_evk and phycore-imx93 cleanups. - Convert imx6dl-sielaff to OF_UPSTREAM and fix serial download mode boot. - Fix crash in imx power-domain. - Migrate Phytec imx8mm boards to standard boot. - Fix smatch warnings.
2025-07-24treewide: Remove empty board_init() function from all boardsSam Protsenko
Commit 86acdce2ba88 ("common: add config for board_init() call") introduced CONFIG_BOARD_INIT option. This option can be disabled for the boards where board_init() function is not needed. Remove empty board_init() calls for all boards where it's possible, and disable CONFIG_BOARD_INIT in all related defconfigs. This cleanup was made semi-automatically using these scripts: [1]. No functional change, but the binary size for the modified boards is reduced a bit. [1] https://github.com/joe-skb7/uboot-convert-scripts/tree/master/remove-board-init Signed-off-by: Sam Protsenko <[email protected]> Tested-by: Adam Ford <[email protected]> #imx8mm_beacon Tested-by: Bryan Brattlof <[email protected]> Acked-by: Peng Fan <[email protected]> #NXP boards
2025-07-24toradex: tdx-cfg-block: add verdin i.mx8m mini 0216 pid4Vitor Soares
Add PID4 0216 Verdin iMX8M Mini Quad 2GB WB IT to config block handling. Signed-off-by: Vitor Soares <[email protected]> Acked-by: Francesco Dolcini <[email protected]>
2025-07-22board: toradex: Fix variant (wifi/non-wifi) selectionFrancesco Dolcini
Do not dereference NULL, when "variant" env variable is not present. Signed-off-by: Francesco Dolcini <[email protected]>
2025-07-11global: Make ARCH_MISC_INIT a selected symbolTom Rini
This symbol is not something that the user should be enabling or disabling but rather the developer for a particular board should select it when required. This is mostly size neutral, however a few places do have changes. In the case of i.MX6ULL systems, it is always the case that arch_misc_init() could call setup_serial_number() and do useful work, but was not enabled widely, but now is. In the case of i.MX23/28 systems, we should be able to call mx28_fixup_vt() again here, so do so. Finally, some platforms were calling arch_misc_init() and then not doing anything and this results in removing the option. Acked-by: Peng Fan <[email protected]> Signed-off-by: Tom Rini <[email protected]>
2025-07-11toradex: Switch from ARCH_MISC_INIT to MISC_INIT_R in some casesTom Rini
The hook arch_misc_init was not intended to be used for per-board hooks. This can be done with misc_init_r instead, which is what follows immediately after arch_misc_init. Switch a few platforms. Acked-by: Francesco Dolcini <[email protected]> Signed-off-by: Tom Rini <[email protected]>
2025-07-09Merge patch series "Improve Verdin AM62P thermal setup by generalizing ↵Tom Rini
ft_board_setup_ex()" João Paulo Gonçalves <[email protected]> says: In some use cases, board-specific device tree changes must not be overwritten by system fixups. Although U-Boot provides ft_board_setup_ex() for this purpose, it is currently only used on TI Keystone. This series makes ft_board_setup_ex() a generic option, allowing its use by other architectures and boards. Additionally, considering that Toradex Verdin-AM62P hardware lifetime guarantees are based on a 105°C junction temperature (while TI AM62Px supports up to 125°C), this series implements necessary changes within TI K3 AM62P and Toradex board code. These changes include exporting common fixup device Tree functions used in TI K3 for board-code access and also fixup for AM62P thermal zones to correctly reflect the number of CPU nodes according to the SoC part number. Link: https://lore.kernel.org/r/20250623-am62p-fdt-fixup-trip-points-v1-0-12355eb6a72f@toradex.com
2025-07-09board: toradex: verdin-am62p: Add fixup for critical trip pointsJoão Paulo Gonçalves
While TI AM62P supports up to 125°C junction temperature, Tj, for industrial and automotive parts, Toradex Verdin-AM62P hardware lifetime guarantees consider a 105°C Tj. Fixup the device tree temperature critical trip points to match the hardware specifications. The implementation ensures the architecture code will not overwrite the board specific changes by enabling CONFIG_OF_BOARD_SETUP_EXTENDED for the Verdin-AM62P. Signed-off-by: João Paulo Gonçalves <[email protected]> Acked-by: Francesco Dolcini <[email protected]>
2025-07-08kbuild: Bump the build system to 5.1Ilias Apalodimas
Our last sync with the kernel was 5.1. Even that was a partial one as some patches from 4.x kernels were already missing making the transition to a modern kbuild infeasible. We are so out of sync now, that tracking the patches and backporting them one by one makes little sense and it's going to take ages. This is an attempt to sync up Makefile[.lib/.kbuild]. Unfortunately due to sheer amount of patches this is not easy to review, but that's what we decided during a community call. One of the biggest changes is get rid of partial linking entirely and build .a archives isntead of .o. We diaviate from the kernel on that. Instead of calling a custom script to create the archive symbol table, we call ar with rcTP (isntead of rcSTP) since we want a resulting archive that's sauble with the linker. The only affected platforms are PPC ones. Unfortunately I don't have any of them around to test, but the objdump of the resulting files -- arch/powerpc/lib/built-in.[oa] looks identical. Signed-off-by: Ilias Apalodimas <[email protected]>
2025-06-04toradex: verdin-am62p: Add missing <linux/sizes.h>Tom Rini
This file uses SZ_1G but does not directly include <linux/sizes.h>, add it. Signed-off-by: Tom Rini <[email protected]>
2025-06-03board: toradex: add verdin am62p supportParth Pancholi
This adds initial support for the Toradex Verdin AM62P module. The module consists of an TI AM62P family SoC, a TPS65219 PMIC, a Gigabit Ethernet PHY, up to 8GB of LPDDR4 RAM, an eMMC, a TLA2024 ADC, an I2C EEPROM, an RX8130 RTC, plus an optional Bluetooth/Wi-Fi module. These specific changes adds support for Toradex Verdin AM62P Quad 2GB WB IT module. Link: https://www.toradex.com/computer-on-modules/verdin-arm-family/ti-am62p Link: https://www.toradex.com/products/carrier-board/verdin-development-board-kit Signed-off-by: Parth Pancholi <[email protected]> Signed-off-by: Vitor Soares <[email protected]>
2025-06-03toradex: tdx-cfg-block: add new pid4 supportVitor Soares
Add the new PID4 to the ConfigBlock handling: - 0098 Aquila iMX95 Hexa 16GB WB IT - 0099 Verdin AM62P Quad 2GB WB IT - 0201 SMARC iMX95 Hexa 8GB IT - 0202 SMARC iMX95 Hexa 4GB WB IT - 0203 SMARC iMX95 Hexa 4GB ET - 0204 SMARC iMX95 Hexa 2GB WB IT - 0205 SMARC iMX95 Hexa 2GB ET - 0206 SMARC iMX8M Plus Quad 4GB IT - 0207 SMARC iMX8M Plus Quad 2GB WB IT - 0208 SMARC iMX8M Plus Quad 2GB IT - 0209 SMARC iMX8M Plus Quadlite 1GB WB ET - 0210 SMARC iMX8M Plus Quadlite 1GB ET - 0211 Aquila AM69 Octa 32GB IT - 0212 Aquila AM69 Octa 16GB WB IT - 0213 Aquila AM69 Octa 16GB IT - 0214 Aquila AM69 Octa 8GB WB IT - 0215 Aquila AM69 Octa 8GB IT Signed-off-by: Vitor Soares <[email protected]>
2025-06-02Merge patch series "Audit include list for include/[a-m]*.h"Tom Rini
Tom Rini <[email protected]> says: Hey all, Related to my other series I've posted recently on cleaning up some headers, this series here is the result of at least lightly auditing the #includes used in include/[a-m]*.h. This ignores subdirectories, as at least in part I think the top-level includes we've constructed are the most likely places to have some extra transitive include paths. I'm sure there's exceptions and I'll likely audit deeper once this first pass is done. This only gets as far as "include/m*.h" because I didn't want this to get too big. This also sets aside <miiphy.h> and <phy.h>. While miiphy.h does not directly need <phy.h> there are *so* many users and I think I had half of the tree just about not building when I first tried. It might be worth further investigation, but it might just be OK as-is. Link: https://lore.kernel.org/r/[email protected]
2025-06-02include/mmc.h: Audit include listTom Rini
This file does not need <linux/sizes.h> nor <linux/compiler.h> so remove them. This exposes however that a number of other files had been relying on this implicit include for <linux/sizes.h> so add that where needed. Signed-off-by: Tom Rini <[email protected]>
2025-05-29toradex: Include env.h to permit reading the environmentSimon Glass
Two files read from the environment but don't not include the correct header. Update them. Signed-off-by: Simon Glass <[email protected]>
2025-05-14global: Add <linux/string.h> instead of long indirect include pathTom Rini
In a number of cases we have C files which rely on a chain of indirect include paths to get <linux/string.h> to be included via <command.h>. To facilitate cleaning up <command.h> make this code directly include <linux/string.h>. Signed-off-by: Tom Rini <[email protected]> --- Cc: Andrew Davis <[email protected]> Cc: Bin Meng <[email protected]> Cc: Dai Okamura <[email protected]> Cc: Fabio Estevam <[email protected]> Cc: Francesco Dolcini <[email protected]> Cc: Ilias Apalodimas <[email protected]> Cc: Jens Wiklander <[email protected]> Cc: Kunihiko Hayashi <[email protected]> Cc: Mingkai Hu <[email protected]> Cc: Priyanka Jain <[email protected]> Cc: Shengzhou Liu <[email protected]> Cc: Simon Glass <[email protected]> Cc: Stefano Babic <[email protected]> Cc: Svyatoslav Ryhel <[email protected]> Cc: Thierry Reding <[email protected]> Cc: William Zhang <[email protected]>