Re: [PATCH v2 3/3] riscv: dts: thead: Add TH1520 ethernet nodes

Drew Fustini
2024-09-26T19:14:28Z

On Thu, Sep 26, 2024 at 08:39:29PM +0200, Andrew Lunn wrote:
> > +&mdio0 {
> > + phy0: ethernet-phy@1 {
> > + reg = <1>;
> > + };
> > +
> > + phy1: ethernet-phy@2 {
> > + reg = <2>;
> > + };
> > +};
>
> Two PHYs on one bus...

Thanks for pointing this out. I will move phy1 to mdio1.

>
> > + gmac1: ethernet@ffe7060000 {
> > + compatible = "thead,th1520-gmac", "snps,dwmac-3.70a";
> > + reg = <0xff 0xe7060000 0x0 0x2000>, <0xff 0xec004000 0x0 0x1000>;
> > + reg-names = "dwmac", "apb";
> > + interrupts = <67 IRQ_TYPE_LEVEL_HIGH>;
> > + interrupt-names = "macirq";
> > + clocks = <&clk CLK_GMAC_AXI>, <&clk CLK_GMAC_AXI>;
> > + clock-names = "stmmaceth", "pclk";
> > + snps,pbl = <32>;
> > + snps,fixed-burst;
> > + snps,multicast-filter-bins = <64>;
> > + snps,perfect-filter-entries = <32>;
> > + snps,axi-config = <&stmmac_axi_config>;
> > + status = "disabled";
> > +
> > + mdio1: mdio {
> > + compatible = "snps,dwmac-mdio";
> > + #address-cells = <1>;
> > + #size-cells = <0>;
> > + };
> > + };
> > +
> > + gmac0: ethernet@ffe7070000 {
> > + compatible = "thead,th1520-gmac", "snps,dwmac-3.70a";
> > + reg = <0xff 0xe7070000 0x0 0x2000>, <0xff 0xec003000 0x0 0x1000>;
> > + reg-names = "dwmac", "apb";
> > + interrupts = <66 IRQ_TYPE_LEVEL_HIGH>;
> > + interrupt-names = "macirq";
> > + clocks = <&clk CLK_GMAC_AXI>, <&clk CLK_GMAC_AXI>;
>
> And the MACs are listed in opposite order. Does gmac1 probe first,
> find the PHY does not exist, and return -EPROBE_DEFER. Then gmac0
> probes successfully, and then sometime later gmac1 then reprobes?
>
> I know it is normal to list nodes in address order, but you might be
> able to avoid the EPROBE_DEFER if you reverse the order.

The probe order seems to always be the ethernet@ffe7060000 (gmac1) first
and then ethernet@ffe7070000 (gmac0). I do not see any probe deferral
in the boot log [1].

Thanks,
Drew

[1] https://gist.github.com/pdp7/02a44b024bdb6be5fe61ac21303ab29a