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 = <ðphy1>;
/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.