From: Stefan Eichenberger <eichest@gmail.com>
To: francesco.dolcini@toradex.com, sbabic@nabladev.com,
festevam@gmail.com, uboot-imx@nxp.com, trini@konsulko.com,
franz.schnyder@toradex.com, stefan.eichenberger@toradex.com,
emanuele.ghidoli@toradex.com, sjg@chromium.org
Cc: u-boot@lists.u-boot-project.org
Subject: [PATCH v1] toradex: {aquila, smarc, verdin}-imx95: add board_fix_fdt
Date: Fri, 21 Aug 2026 09:09:51 +0200 [thread overview]
Message-ID: <20260821070958.6997-1-eichest@gmail.com> (raw)
From: Stefan Eichenberger <stefan.eichenberger@toradex.com>
On i.MX95 SoCs, peripherals like PCIe, the display pipeline (DPU, LVDS,
MIPI-DSI), the 10G ENET port and the Cortex-M7 core can be fused off.
U-Boot already fixes up the OS device tree accordingly in
ft_system_setup(), but its own control device tree keeps those nodes
enabled, so U-Boot might bind and probe drivers for hardware that are
not present on the SoC.
Enable CONFIG_OF_BOARD_FIXUP and implement board_fix_fdt() for Aquila,
Toradex SMARC iMX95 and Verdin iMX95 by calling
imx9_uboot_fixup_by_fuse(), mirroring the i.MX95 reference board
implementation.
Signed-off-by: Stefan Eichenberger <stefan.eichenberger@toradex.com>
---
board/toradex/aquila-imx95/aquila-imx95.c | 8 ++++++++
board/toradex/smarc-imx95/smarc-imx95.c | 8 ++++++++
board/toradex/verdin-imx95/verdin-imx95.c | 8 ++++++++
configs/aquila-imx95_defconfig | 1 +
configs/toradex-smarc-imx95_defconfig | 1 +
configs/verdin-imx95_defconfig | 1 +
6 files changed, 27 insertions(+)
diff --git a/board/toradex/aquila-imx95/aquila-imx95.c b/board/toradex/aquila-imx95/aquila-imx95.c
index a5b26ef3dc3..a413f2fee62 100644
--- a/board/toradex/aquila-imx95/aquila-imx95.c
+++ b/board/toradex/aquila-imx95/aquila-imx95.c
@@ -42,3 +42,11 @@ int ft_board_setup(void *blob, struct bd_info *bd)
return ft_common_board_setup(blob, bd);
}
#endif
+
+#if IS_ENABLED(CONFIG_OF_BOARD_FIXUP)
+int board_fix_fdt(void *fdt)
+{
+ /* Remove nodes based on fuses. */
+ return imx9_uboot_fixup_by_fuse(fdt);
+}
+#endif
diff --git a/board/toradex/smarc-imx95/smarc-imx95.c b/board/toradex/smarc-imx95/smarc-imx95.c
index d09ce8a52ab..d8132c1abb9 100644
--- a/board/toradex/smarc-imx95/smarc-imx95.c
+++ b/board/toradex/smarc-imx95/smarc-imx95.c
@@ -42,3 +42,11 @@ int ft_board_setup(void *blob, struct bd_info *bd)
return ft_common_board_setup(blob, bd);
}
#endif
+
+#if IS_ENABLED(CONFIG_OF_BOARD_FIXUP)
+int board_fix_fdt(void *fdt)
+{
+ /* Remove nodes based on fuses. */
+ return imx9_uboot_fixup_by_fuse(fdt);
+}
+#endif
diff --git a/board/toradex/verdin-imx95/verdin-imx95.c b/board/toradex/verdin-imx95/verdin-imx95.c
index 7c0804c1d1c..e54ac309db4 100644
--- a/board/toradex/verdin-imx95/verdin-imx95.c
+++ b/board/toradex/verdin-imx95/verdin-imx95.c
@@ -78,3 +78,11 @@ int ft_board_setup(void *blob, struct bd_info *bd)
return ft_common_board_setup(blob, bd);
}
#endif
+
+#if IS_ENABLED(CONFIG_OF_BOARD_FIXUP)
+int board_fix_fdt(void *fdt)
+{
+ /* Remove nodes based on fuses. */
+ return imx9_uboot_fixup_by_fuse(fdt);
+}
+#endif
diff --git a/configs/aquila-imx95_defconfig b/configs/aquila-imx95_defconfig
index bb3d475ef4d..8dc6780d98b 100644
--- a/configs/aquila-imx95_defconfig
+++ b/configs/aquila-imx95_defconfig
@@ -27,6 +27,7 @@ CONFIG_WATCHDOG_TIMEOUT_MSECS=30000
CONFIG_SPL=y
CONFIG_SPL_RECOVER_DATA_SECTION=y
CONFIG_PCI=y
+CONFIG_OF_BOARD_FIXUP=y
CONFIG_SYS_MEMTEST_START=0x90000000
CONFIG_SYS_MEMTEST_END=0xA0000000
CONFIG_REMAKE_ELF=y
diff --git a/configs/toradex-smarc-imx95_defconfig b/configs/toradex-smarc-imx95_defconfig
index 9abadb0ed1a..fcc006d1d2c 100644
--- a/configs/toradex-smarc-imx95_defconfig
+++ b/configs/toradex-smarc-imx95_defconfig
@@ -27,6 +27,7 @@ CONFIG_WATCHDOG_TIMEOUT_MSECS=30000
CONFIG_SPL=y
CONFIG_SPL_RECOVER_DATA_SECTION=y
CONFIG_PCI=y
+CONFIG_OF_BOARD_FIXUP=y
CONFIG_SYS_MEMTEST_START=0x90000000
CONFIG_SYS_MEMTEST_END=0xA0000000
CONFIG_REMAKE_ELF=y
diff --git a/configs/verdin-imx95_defconfig b/configs/verdin-imx95_defconfig
index daf41a8b830..47a800d5ba6 100644
--- a/configs/verdin-imx95_defconfig
+++ b/configs/verdin-imx95_defconfig
@@ -27,6 +27,7 @@ CONFIG_WATCHDOG_TIMEOUT_MSECS=30000
CONFIG_SPL=y
CONFIG_SPL_RECOVER_DATA_SECTION=y
CONFIG_PCI=y
+CONFIG_OF_BOARD_FIXUP=y
CONFIG_SYS_MEMTEST_START=0x90000000
CONFIG_SYS_MEMTEST_END=0xA0000000
CONFIG_REMAKE_ELF=y
--
2.55.0
next reply other threads:[~2026-08-21 13:17 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-08-21 7:09 Stefan Eichenberger [this message]
2026-08-25 1:24 ` [PATCH v1] toradex: {aquila, smarc, verdin}-imx95: add board_fix_fdt Fabio Estevam
2026-08-25 7:45 ` Stefan Eichenberger
2026-08-26 14:33 ` Fabio Estevam
2026-08-27 8:38 ` Stefan Eichenberger
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260821070958.6997-1-eichest@gmail.com \
--to=eichest@gmail.com \
--cc=emanuele.ghidoli@toradex.com \
--cc=festevam@gmail.com \
--cc=francesco.dolcini@toradex.com \
--cc=franz.schnyder@toradex.com \
--cc=sbabic@nabladev.com \
--cc=sjg@chromium.org \
--cc=stefan.eichenberger@toradex.com \
--cc=trini@konsulko.com \
--cc=u-boot@lists.u-boot-project.org \
--cc=uboot-imx@nxp.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.