I am a software guy trying to swap out a VF50 colibri module, replacing it with an imx6ull colibri module on a custom carrier. The original custom board design was based on the iris board.
I have the boot loader, kernel, rootfs and my app running.
All I lack is getting the ethernet ports to work on the custom carrier. I am pretty sure that I need to change the device tree, but I am struggling to understand how to translate the original VF50 device tree changes to the imx6ull.
It looks like the custom board is taking a reference clock from SODIMM pin 89 and setting the clock rate to 50MHZ.
Here is what I think is the relevant change in the VF50 device tree form the original iris carrier board:
in the file: vf-colibri.dtsi
Can you point me in the right direction in translating this hardware description into the imx6ull?
My current device tree is a copy of the imx6ull-colibri-iris-v2.dts.
Thank you.
Hi, I’m the Toradex AI Assistant. I’m in early beta, and I would appreciate your feedback.
The Toradex Support team will follow up with you shortly!
Did you like my answer?
To translate the Ethernet configuration from the VF50 to the i.MX6ULL, you’ll need to adjust the device tree for the i.MX6ULL to match the clock and pin configurations of your custom carrier board. Here are the steps to help you with this process:
Clock Configuration:
The VF50 uses VF610_CLK_ENET_EXT for the external clock, while the i.MX6ULL will use a different clock source. You need to find the equivalent clock source for the i.MX6ULL and set it to 50MHz.
In your imx6ull-colibri-iris-v2.dts, you should modify the clock settings. Typically, the i.MX6ULL uses clks node for clock configurations. Here is an example of how you might set it:
Ensure you replace IMX6ULL_CLK_ENET_EXT with the correct clock source for the i.MX6ULL.
Pin Configuration:
The pin configuration for the Ethernet interface will also need to be updated. The i.MX6ULL uses different pin names and configurations compared to the VF50. You need to map the VF50 pin configurations to the corresponding i.MX6ULL pins.
Here is an example of how you might configure the pins in the imx6ull-colibri-iris-v2.dts:
I am having trouble finding anything like: IMX6ULL_CLK_ENET_SEL.
I noticed that on the imx6ull, there are clocks being specified in the fec2: block:
fec2: ethernet@20b4000 {
compatible = “fsl,imx6ul-fec”, “fsl,imx6q-fec”;
reg = <0x020b4000 0x4000>;
interrupt-names = “int0”, “pps”;
interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&clks IMX6UL_CLK_ENET>,
<&clks IMX6UL_CLK_ENET_AHB>,
<&clks IMX6UL_CLK_ENET_PTP>,
<&clks IMX6UL_CLK_ENET2_REF_125M>,
<&clks IMX6UL_CLK_ENET2_REF_125M>;
clock-names = “ipg”, “ahb”, “ptp”,
“enet_clk_ref”, “enet_out”;
fsl,num-tx-queues = <1>;
fsl,num-rx-queues = <1>;
fsl,stop-mode = <&gpr 0x10 4>;
fsl,magic-packet;
status = “disabled”;
};
Does anything need to change there, or can you point me to the equivalent of IMX6ULL_CLK_ENET_SEL and IMX6ULL_CLK_ENET_TS_SEL
The RMII signals on the Colibri iMX6ULL and Colibri VF50 modules are not compatible, as they are located on different pins of the X1 connector. This issue cannot be resolved through Device Tree modifications; a redesign of the carrier board is required.
It is not clear from your DT excepts, were you using 2-ports L2 switch on VF (quite unique VF feature) or just two standalone ethernet ports? If indeed you need 2-ports Ethernet switch feature, then you need some external device for it to use with iMX6ULL.