I am in the process of testing an Av G1-240 GigE camera with a SMARC iMX95 devboard. According to Allied Vision’s documentation and its own tooling it is recommended to enable jumbo frames. However, I only managed to set an MTU of up to 1978 rather than the usual 9000.
Shown as maxmtu 1978 below:
torizon@toradex-smarc-imx95-12594010:~$ ip -d link show ethernet0
5: ethernet0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1978 qdisc mq state UP mode DEFAULT group default qlen 1000
link/ether [redacted] brd ff:ff:ff:ff:ff:ff promiscuity 0 allmulti 0 minmtu 68 maxmtu 1978 addrgenmode eui64 numtxqueues 6 numrxqueues 6 gso_max_size 65536 gso_max_segs 65535 tso_max_size 65536 tso_max_segs 65535 gro_max_size 65536 gso_ipv4_max_size 65536 gro_ipv4_max_size 65536 parentbus pci parentdev 0002:00:00.0
altname enP2p0s0f0
altname end0
I might make mistakes or occasionally get you wrong. Our support team will step in if needed.
MTU Limitation on SMARC iMX95
Based on the information available, the MTU limitation you’re encountering on the SMARC iMX95 appears to be a deliberate design choice in the network driver implementation. According to a community discussion about BSP 6.x.y MTU support, there have been similar limitations observed on other Toradex platforms(1).
The specific limitation you’ve identified in the NXP BSP code (setting max frame size to 2000 bytes) is likely related to hardware validation and stability considerations for the i.MX95’s Ethernet controller. While the hardware may technically support larger jumbo frames, the recommendation to limit frame size to 2000 bytes suggests there may be performance, stability, or compatibility concerns with larger frames.
Potential Solutions
From the community discussion, it appears that some users have had success with certain MTU values. One user reported that values up to 1600 bytes worked, while another mentioned that the Microchip KSZ9131 Gigabit PHY (commonly used on Toradex modules) should theoretically support up to 16KB frames(1).
Recommendations
Test incrementally: Try MTU values between 1500 and 1978 to find the optimal setting for your GigE camera application
Monitor stability: When testing higher MTU values, carefully monitor system stability and network performance
Consider kernel modification: If you need larger jumbo frames, you may need to modify the kernel driver limitation, though this would require custom BSP compilation
For your Allied Vision camera application, the current maximum of 1978 bytes may still provide performance benefits over the standard 1500-byte MTU, even if it’s not the full 9000-byte jumbo frame size typically recommended.
You may find relevant discussions on the Toradex Community by searching for “jumbo frames” or “MTU” for additional insights from other users working with similar configurations.
Best regards, Toradex AI Assistant.
Did you like my answer?
If I answered your question, please tick the “Solution” checkbox.
For follow-up questions to me, please use @ToradexAI in your post.
Great finding! The NXP commit you’ve identified confirms that jumbo frames support was indeed added to ENETC v4 (which is used on i.MX95) in the 6.12 kernel branch. This explains the current MTU limitation you’re experiencing with Torizon OS 7.5.0, which is running kernel 6.6.119.
Timeline for Official Torizon Release
I don’t have specific information about when Torizon OS will upgrade to kernel 6.12. Toradex typically follows a structured release cycle, but exact timelines for kernel version upgrades aren’t documented in the available sources.
Custom Build Approach
For your immediate needs with the Allied Vision GigE camera, you have a couple of options:
1. Apply the Patch to Current Kernel
You can use TorizonCore Builder to apply the jumbo frames patch to your current Torizon OS image(1). This involves:
Creating a custom kernel module or patch
Using TorizonCore Builder to build a custom image with the modified network driver
The process would require extracting the specific changes from the NXP commit and applying them to the 6.6 kernel
2. Build External Kernel Module
If the changes can be modularized, you could potentially build an external kernel module that modifies the MTU limitations(1). However, since this involves core network driver functionality, this approach may be more complex.
TorizonCore Builder Workflow
The TorizonCore Builder tool supports building custom images with kernel modifications(1). You would need to:
Set up the TorizonCore Builder environment
Create the necessary source modifications
Build a custom Torizon OS image with the jumbo frames support
Deploy the custom image to your SMARC iMX95
This approach gives you immediate access to full jumbo frames support while waiting for an official Torizon OS release with kernel 6.12.
Given your specific use case with the Allied Vision camera requiring jumbo frames, the custom build approach would likely be the most practical solution for your current timeline.
Best regards, Toradex AI Assistant.
Did you like my answer?
If I answered your question, please tick the “Solution” checkbox.
For follow-up questions to me, please use @ToradexAI in your post.