Adding Jon and Baruch
On Tue, Sep 10, 2019 at 12:55 PM tinywrkb <tinyw...@gmail.com> wrote: > > Cubox-i Solo/DualLite carrier board has 100Mb/s magnetics while the > Atheros AR8035 PHY on the MicroSoM v1.3 CPU module is a 1GbE PHY device. > > Since commit 5502b218e001 ("net: phy: use phy_resolve_aneg_linkmode in > genphy_read_status") ethernet is broken on Cubox-i Solo/DualLite devices. > > This adds a phy node to the MicroSoM DTS and a 100Mb/s max-speed limit > to the Cubox-i Solo/DualLite carrier DTS. > > Signed-off-by: tinywrkb <tinyw...@gmail.com> > --- > This patch fixes ethernet on my Cubox-i2-300-D which is limited to 100Mb/s, > afaik due to the carrier board magnetics, and was since commit 5502b218e001 > ("net: phy: use phy_resolve_aneg_linkmode in genphy_read_status") > > The AR8035 PHY on the CPU module reports to the driver as 1GbE capable > via MII_BSMR's BMSR_ESTATEN status bit, the auto-negotiation sets the > speed at 1GbE while the carrier board can't support it. > Same behavior with the generic phy_device and the at803x drivers. > > While the PHY is on the CPU module board I added the max-speed limit to > the cubox-i carrier DTS as I suspect that if the Solo or DualLite v1.3 > MicroSoM will be connected to a 1GbE capable carrier board then it would > work correctly with 1GbE. > > I can confirm that this commit doesn't break networking on the my > Cubox-i4Pro Quad (i4P-300-D) with it's 1GbE capable carrier board, and > was tested separately with the generic phy_device and at803x drivers. > > arch/arm/boot/dts/imx6dl-cubox-i.dts | 4 ++++ > arch/arm/boot/dts/imx6qdl-sr-som.dtsi | 9 +++++++++ > 2 files changed, 13 insertions(+) > > diff --git a/arch/arm/boot/dts/imx6dl-cubox-i.dts > b/arch/arm/boot/dts/imx6dl-cubox-i.dts > index 2b1b3e193f53..cfc82513c78c 100644 > --- a/arch/arm/boot/dts/imx6dl-cubox-i.dts > +++ b/arch/arm/boot/dts/imx6dl-cubox-i.dts > @@ -49,3 +49,7 @@ > model = "SolidRun Cubox-i Solo/DualLite"; > compatible = "solidrun,cubox-i/dl", "fsl,imx6dl"; > }; > + > +ðphy { > + max-speed = <100>; > +}; > diff --git a/arch/arm/boot/dts/imx6qdl-sr-som.dtsi > b/arch/arm/boot/dts/imx6qdl-sr-som.dtsi > index 6d7f6b9035bc..969bc96c3f99 100644 > --- a/arch/arm/boot/dts/imx6qdl-sr-som.dtsi > +++ b/arch/arm/boot/dts/imx6qdl-sr-som.dtsi > @@ -57,6 +57,15 @@ > phy-reset-duration = <2>; > phy-reset-gpios = <&gpio4 15 GPIO_ACTIVE_LOW>; > status = "okay"; > + phy-handle = <ðphy>; > + mdio { > + #address-cells = <1>; > + #size-cells = <0>; > + ethphy: ethernet-phy@0 { > + compatible = "ethernet-phy-ieee802.3-c22"; > + reg = <0>; > + }; > + }; > }; > > &iomuxc { > -- > 2.23.0 >