Interfacing an external PHY (TJA1100) via RMII to the Colibri imX8

We using the Colibri iMX8QXP SOMs in an automotive environment. In order to communicate with external components, we are trying to connect an RMII PHY (a TJA1100 for BroadR-Reach) to ENET1 on a custom board. We can talk to the chip via the SMI bus, have verified the link status etc., so the physical side looks fine.

The PHY tries to send data from the network to the SOM - we see activity on the RX lines when the SOM is not in the socket, but when it is powered up, no activity can be measured on the RX nor TX lines (when pinging the other party, for example).

Based on what I found in fsl-imx8qxp-enet2-tja1100.dtsi, I adapted the device-tree to look like this (fsl-imx8qxp-colibri.dtsi):

&fec2 {
            pinctrl-names = "default";
     pinctrl-0 = <&pinctrl_fec2_rmii>;
     clocks = <&clk IMX8QXP_ENET1_IPG_CLK>,
                  <&clk IMX8QXP_ENET1_AHB_CLK>,
          <&clk IMX8QXP_ENET1_REF_50MHZ_CLK>,
                  <&clk IMX8QXP_ENET1_PTP_CLK>,
                  <&clk IMX8QXP_ENET1_TX_CLK>;
     phy-mode = "rmii";
         phy-handle = <&ethphy1>;
         /delete-property/ phy-supply;
 
     mdio {
                 #address-cells = <1>;
           #size-cells = <0>;
 
                 ethphy1: ethernet-phy@4 {
             compatible = "ethernet-phy-ieee802.3-c22";
             reg = <4>;
                         max-speed = <100>;
                         tja110x,refclk_in;
         };
     };
 };

and (fsl-imx8qxp-colibri-eval-v3.dts)

 /* Colibri Ethernet */
 //&fec1 {
 //      status = "okay";
 //};
 &fec2 {
         status = "okay";
 };

I fear I am missing something obvious - is there a power domain that needs to be switched on explicitity in addition?

BR Simon

[Edit] P.S. Forgot to say - this is still the 4.14 FSL kernel from the 3.0 BSP release.

Hi @svogl,

The BSP 3 is not recommended for the Colibri iMX8X.
Please check this table for the Toradex BSP Layers and Reference Images for Yocto Project.

I’d suggest you migrate to BSP 5.0, which is still under development, but you can set your Yocto Build for it as instructed here.

If you are going to use FEC2, you may have to mux the required pins.
You can check the pinout designer tool to verify any conflicts you may have to adjust.

Please, try this and let me know if it worked.

Best regards,
André Curvello

Andre,
thanks for the update; I will try this once I get new boards - I’ve bricked two in the process. We have the 1.0b boards long before the 5.0 BSP was released, it seems the upgrade killed them (there’s a 0.5Hz clicking noise, the 1.8V supply seems to reset with that frequency; might need a JTAG to recover from here, OTG does not work any more).

Anyway, I cross-checked the device treee against the processor reference manual as well as the pinout tool and everything looks in order.

Will update you on once there’s progress.
Simon

Hi @svogl,

Yes, a lot of things changed now that the Toradex iMX8 products families are becoming more mature.

You may try to use the Recovery Mode to recover your bricked modules. Can you give it a try?

Best regards,
André Curvello

Dear Andre,
thanks for the speedy reply, I did that already without luck - I’ve collected a little more information here:
https://www.toradex.com/community/questions/56780/bricked-colibri-imx8-quadplus-clicking-noise.html
Simon

Oh, sorry to hear that.

Thanks for opening a different thread for that issue with the clicking noise.
We’ll analyze it and provide feedback as soon as possible.

Best regards,
André Curvello