Re: [PATCH] arm64: defconfig: Change CONFIG_AT803X_PHY from m to y
From: Marc Gonzalez
Date: Thu Nov 28 2019 - 04:11:55 EST
On 27/11/2019 13:46, Oliver Graute wrote:
> On 27/11/19, Marc Gonzalez wrote:
>
>> On 26/11/2019 15:54, Oliver Graute wrote:
>>
>>> this patch broke my imx8qm nfs setup. With the generic phy driver my
>>> board is booting fine. But with the AT803X_PHY=y enabled I'm running
>>> into the following phy issue. So on my side it looks inverse as on
>>> yours. What is the best proposal to fix this?
>>>
>>> [ 5.550442] fec 5b040000.ethernet eth0: Link is Up - 1Gbps/Full - flow control off
>>> [ 5.573206] Sending DHCP requests ...... timed out!
>>> [ 95.339702] IP-Config: Retrying forever (NFS root)...
>>> [ 95.348873] Atheros 8035 ethernet 5b040000.ethernet-1:06: attached PHY driver [Atheros 8035 ethernet] (mii_bus:phy_addr=5b040000.ethernet-1:06, irq=POLL)
>>> [ 99.438443] fec 5b040000.ethernet eth0: Link is Up - 1Gbps/Full - flow control off
>>> [ 99.461206] Sending DHCP requests ...... timed out!
>>
>> Which DTS are you using?
>
> I'am using this DTS which I'am currently working on:
>
> https://lists.infradead.org/pipermail/linux-arm-kernel/2019-October/689501.html
>>
>> I bet one dollar that 6d4cd041f0af triggered a latent bug in the DTS.
>
> So what should I fix in my device tree?
In the board DTS I used to work on, I had this:
ð0 {
phy-connection-type = "rgmii-id";
phy-handle = <ð0_phy>;
#address-cells = <1>;
#size-cells = <0>;
/* Atheros AR8035 */
eth0_phy: ethernet-phy@4 {
compatible = "ethernet-phy-id004d.d072",
"ethernet-phy-ieee802.3-c22";
interrupts = <37 IRQ_TYPE_EDGE_RISING>;
reg = <4>;
};
};
In your DTS, you #include "imx8qm.dtsi"
I found no such file:
$ git ls-files | grep imx8qm
drivers/pinctrl/freescale/pinctrl-imx8qm.c
include/dt-bindings/pinctrl/pads-imx8qm.h
In your patch:
https://patchwork.kernel.org/patch/11211567/
+&fec1 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_fec1>;
+ phy-mode = "rgmii-txid";
+ phy-handle = <ðphy0>;
+ fsl,magic-packet;
+ fsl,rgmii_rxc_dly;
+ status = "okay";
+
+ mdio {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ ethphy0: ethernet-phy@0 {
+ compatible = "ethernet-phy-ieee802.3-c22";
+ reg = <4>;
+ at803x,eee-disabled;
+ at803x,vddio-1p8v;
+ };
+ };
+};
Try all possible 'phy-mode' (rgmii, rgmii-id, rgmii-rxid, rgmii-txid)
Investigate 'fsl,rgmii_rxc_dly' (it's not a standard Linux DT prop)
Documentation/devicetree/bindings/net/ethernet-controller.yaml
Regards.