Hi,

we use a QorIQ P1011 connected via SGMII to a switch (Marvell 88E6352). Currently we still use a really old linux kernel (2.6.33) successfully.

For configuration of the MDIO Bus attached to the corresponding eTSEC/TBI Phy we use the following settings in the device tree:

                        mdio@25000 {
                                   #address-cells = <0x1>;
                                   #size-cells = <0x0>;
                                   compatible = "fsl,etsec2-tbi";
                                   reg = <0x25000 0x1000 0xb1030 0x4>;

                                   tbi-phy@11 {
                                               reg = <0x11>;
                                               device_type = "tbi-phy";
                                               linux,phandle = <0x5>;
                                               phandle = <0x5>;
                                   };
                        };

First resource in the mdio config is the base address of the MDIO bus, the second resource defines the address of TBIPA.

Doing tests with a newer kernel (4.4.71) I was faced with problems communicating with the TBIPHY.

Debugging this I found out that TBIPA is no longer parameterized correctly and I found out why:

In commit afae5ad78b342f401c28b0bb1adb3cd494cb125a initialization of TIBPA has been changed:

In former versions in get_gfar_tbipa(...) for compatible "etsec2-tbi" the second resource of the reg entry has been used. But now only first resource is mapped and get_etsec_tbipa(...) which is now responsible to return the proper address does not (and has no way due to missing *np as function argument) do so but returns the first resource (which is the base address of mdio controller).

What do you think would be the correct way to solve this issue? Re-add *np to the get_*_tba() functions to be able to return the proper address?

Thank’s for reading,
Best regards,

Joerg

Reply via email to