We build a u-boot binary and deploy to a Colibri imx8x. We boot to a Linux OS (say the linux reference minimal image). When we reboot from Linux, the network never comes up in u-boot. (There is no link light on the switch interface.) If we change u-boot back to the original image, the network works as expected in u-boot. If feels like we are missing a setting in our u-boot build. Any suggestions would be appreciated. Thanks.
Hi, I’m the Toradex AI Assistant.
I might make mistakes. Our support team will step in if needed. If I answered your question, please tick the “Solution” checkbox. For follow-up questions to me, please use @ToradexAI in your post.
Hello! Thank you for your detailed description of the issue.
This behavior is sometimes seen with custom U-Boot builds on NXP i.MX8X platforms, especially with networking, due to the complexity of the boot firmware chain (SCFW, ATF, U-Boot). Here are some targeted suggestions to help resolve the Ethernet/networking not coming up in U-Boot after a Linux reboot:
Key Areas to Check
-
System Controller Firmware (SCFW) Version
- The Colibri iMX8X requires a specific, slightly modified SCFW for correct operation, as provided by Toradex.
- Ensure you are building and packaging your U-Boot binary with the correct SCFW version. For BSP 7.0.0, SCFW should be version 1.16.0.
- Reference: Build U-Boot for NXP i.MX8X-based SoMs - SOC Specific Steps
-
Boot Container Composition
- The boot container (your flash.bin) should include:
- SCFW (customized by Toradex)
- ATF (ARM Trusted Firmware)
- U-Boot proper
- Any mismatch or omission can cause peripherals (like Ethernet) not to initialize or function correctly after a warm reboot.
- The boot container (your flash.bin) should include:
-
Device Reset and Initialization
- Linux or your kernel might leave the Ethernet device in a state that requires explicit re-initialization in U-Boot during warm boot (reboot).
- Confirm your U-Boot tree includes initialization code/patches required for the Colibri iMX8X Ethernet controller.
- Look for differences between the default (working) and custom (non-working) U-Boot configs, especially relating to Ethernet (
CONFIG_FEC_MXC
, etc.).
-
Reference Toradex U-Boot Configuration
- Compare your
defconfig
and device tree against the official Toradex U-Boot sources for the Colibri iMX8X. Tiny config or code differences may affect hardware bring-up. - U-Boot Documentation
- Compare your
-
Clean Rebuild
- Clean all build artifacts (
make distclean
) before building U-Boot and its components, especially if you changed any configs or sources.
- Clean all build artifacts (
Additional References
Steps to Consider
- Rebuild your U-Boot and related firmware (SCFW, ATF) following Toradex’s documented process.
- Use the same versions and sources as Toradex for maximum compatibility.
- Inspect and synchronize your custom settings with the official Toradex U-Boot defconfig and device trees.
Let me know if you’d like specific instructions or if you have any details on the U-Boot version, SCFW used, or build steps—I’m happy to provide more targeted guidance!
Best regards,
Toradex AI Assistant.
Hey @richesonj,
For clarity, You have a customized u-boot image and a customized Linux kernel. When you use your customized U-boot + customized Linux, you do not get Ethernet activity at the u-boot CLI. But if you default to the default linux with customized u-boot, you have Ethernet activity?
Also, can you let me know which BSP you are working with and which carrier board?
-Eric
We appreciate the reply. Just today we believe we have discovered the source of our u-boot issue. It looks like we are missing this patch: 0001-Revert-Add-NXP-s-SoCs-partition-reboot-support.patch « files « imx-atf « recipes-bsp - meta-toradex-nxp.git - Toradex BSP layer, recipes for NXP based modules which is listed on this page of the mandatory steps for imx8 build of u-boot (Specifics: Build U-Boot for NXP i.MX 8/8X-based SoMs | Toradex Developer Center). More testing will be performed early next week but initial testing looks promising.