Re: Dts for eth network based on marvell's mv88e6390x crashes Xilinx's linux-kernel v5.4

From: Andrew Lunn
Date: Mon Oct 19 2020 - 10:26:20 EST


On Mon, Oct 19, 2020 at 05:05:08PM +0300, michael alayev wrote:
> Hello Andrew,
>
>
> > Please fix your email client and
>
>
> > post the DT file for review. I will
>
>     > then point out some of the errors.
>
>
>
> &gem0 {
>     status = "okay";
>     phy-mode = "rgmii-id";
>     phy-handle = <&phy0>;

The diagram you showed had gem0 connected directly to the switch. So
this phy-handle is wrong. Or the diagram is wrong.

>
>     mdio {
>         #address-cells = <1>;
>         #size-cells = <0>;
>
>         phy0: ethernet-phy@0 {
>             compatible = "marvell";
>             reg = <0>;
>             device_type = "ethernet-phy";
>             fixed-link {
>                 speed = <1000>;
>                 full-duplex;
>             };
>         };
>
>         debug_phy: ethernet-phy@1 {
>         compatible = "marvell";
>         reg = <1>;
>         device_type = "ethernet-phy";
>         label = "debug-phy";
>     };

indentation is all wrong here.

>     switch0: switch@2 {
>         compatible = "marvell,mv88e6190";
>         #address-cells = <1>;
>         #size-cells = <0>;
>         reg = <2>;
>
>         dsa,member = <0 0>;
>
>         ports {
>             #address-cells = <1>;
>             #size-cells = <0>;
>
>             switch0phy1: port@0 {
>                 reg = <0>;
>                 label = "uid208-cpu";
>                 ethernet = <&gem0>;
>                 phy-mode = "rgmii-id";

You have gem0 using gphy-mode = "rgmii-id" as well. Both doing delays
will not work. You should drop the one in gem0.

>                 fixed-link {
>                     speed = <1000>;
>                     full-duplex;
>                 };
>             };
>
>
>             port@1 {
>                 reg = <1>;
>                 label = "uid201-1A";
>             };
>
>             port@2 {
>                 reg = <2>;
>                 label = "uid202-2A-p9-1A";
>                 phy-mode = "1000base-x";
>                 fixed-link {
>                     speed = <1000>;
>                     full-duplex;
>                 };

Why both 1000base-x and fixed link? Do you have an SFP connected? If
so, describe the SFP in DT.

>             };
>
>             switch0port10: port@10 {
>                 reg = <10>;
>                 label = "dsa";
>                 link = <&switch1port10>;
>                 phy-mode = "1000base-x";
>                 fixed-link {
>                     speed = <1000>;
>                     full-duplex;
>                 };
>             };

This is a 6390X right? Why limit it to 1000base-X when it could be
doing 10G?

Andrew