netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Device Tree Binding for Marvell DSA on P1023RDB
       [not found] <539F1B3F.6060203@xsmail.com>
@ 2014-06-16 16:30 ` Pannirselvam Kanagaratnam
  2014-06-16 16:38   ` Florian Fainelli
  0 siblings, 1 reply; 6+ messages in thread
From: Pannirselvam Kanagaratnam @ 2014-06-16 16:30 UTC (permalink / raw)
  To: netdev

Freescale's QORIQ P1023RDB has an option to populate the Marvell 88E6165
Ethernet switch. We populated this device and were able to initialize it
as a basic switch in U-Boot. However, the switch driver was not loaded
upon kernel bootup. DSA kernel config was enabled for Marvell's 88E6165.
The following patch was applied:

http://patchwork.ozlabs.org/patch/230257/
We are using Freescale's QorIQ-SDK-V1.5-20131219-yocto (3.8-r11.1). The
switch is attached to phy address 0x3 via dtsec2. IRQ3 from the CPU is
also physically connected to the switch (pin #122). My dts file is as
below. Would appreciate any feedback on whether the DSA is structured
correctly in the dts.

The following mdio, mdio_bus and ethernet parameters were captured:

1) For mdio = of_parse_phandle(np, "dsa,mii-bus", 0); I get the following:
np_name: dsa
mdio_name: mdio
mdio_type: <NULL>
mdio_full-name: /soc@ff600000/fman@100000/mdio@e1120

2) mdio_bus = of_mdio_find_bus(mdio);
mdio_bus_name: Freescale PowerQUICC MII Bus
mdio_bus_id: mdio@ff7e1120

3) ethernet = of_parse_phandle(np, "dsa,ethernet", 0);
ethernet-name: ethernet
ethernet-type: <NULL>
ethernet-full-name: /soc@ff600000/fman@100000/ethernet@e2000

4) ethernet_dev = of_find_device_by_node(ethernet);
ethernet_dev-name: ff7e2000.ethernet
ethernet_dev-id: -1

Not sure why ethernet-dev-id is showing -1. Kindly advise. This is the
output log during kernel booutp:

Distributed Switch Architecture driver version 0.1
dsa: probe of dsa.16 failed with error -22

Pannir


/*
  * P1023 RDB Device Tree Source
  *
  *    Copyright 2013 Freescale Semiconductor Inc.
  *
  * Author: Roy Zang <tie-fei.zang@freescale.com>
  *       Chunhe Lan <Chunhe.Lan@freescale.com>
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
are met:
  *     * Redistributions of source code must retain the above copyright
  *       notice, this list of conditions and the following disclaimer.
  *     * Redistributions in binary form must reproduce the above copyright
  *       notice, this list of conditions and the following disclaimer
in the
  *       documentation and/or other materials provided with the
distribution.
  *     * Neither the name of Freescale Semiconductor nor the
  *       names of its contributors may be used to endorse or promote
products
  *       derived from this software without specific prior written
permission.
  *
  *
  * ALTERNATIVELY, this software may be distributed under the terms of the
  * GNU General Public License ("GPL") as published by the Free Software
  * Foundation, either version 2 of that License or (at your option) any
  * later version.
  *
  * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY
  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED
  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
  * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY
  * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES
  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES;
  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND
  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT
  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
USE OF THIS
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */

/include/ "fsl/p1023si-pre.dtsi"

/ {
     model = "fsl,P1023";
     compatible = "fsl,P1023RDB";
     #address-cells = <2>;
     #size-cells = <2>;
     interrupt-parent = <&mpic>;

     aliases {
         ethernet0 = &enet0;
         ethernet1 = &enet1;
     };

     memory {
         device_type = "memory";
     };

     qportals: qman-portals@ff000000 {
         ranges = <0x0 0xf 0xff000000 0x200000>;
     };

     bportals: bman-portals@ff200000 {
         ranges = <0x0 0xf 0xff200000 0x200000>;
     };

     soc: soc@ff600000 {
         ranges = <0x0 0x0 0xff600000 0x200000>;

         i2c@3000 {
             eeprom@53 {
                 compatible = "at24,24c04";
                 reg = <0x53>;
             };

             rtc@6f {
                 compatible = "microchip,mcp7941x";
                 reg = <0x6f>;
             };
         };

         usb@22000 {
             dr_mode = "host";
             phy_type = "ulpi";
         };

         fman0: fman@100000 {
             enet0: ethernet@e0000 {
                 phy-handle = <&phy0>;
                 phy-connection-type = "rgmii";
             };
             mdio0: mdio@e1120 {
                 phy0: ethernet-phy@1 {
                     reg = <0x01>;
                 };
                 tbi0: tbi-phy@8 {
                     reg = <0x8>;
                     device_type = "tbi-phy";
                 };
             };
             enet1: ethernet@e2000 {
                 fixed-link = <3 1 1000 0 0>;
                 phy-connection-type = "rgmii-id";
             };
         };
     };

     lbc: localbus@ff605000 {
         reg = <0 0xff605000 0 0x1000>;

         /* NOR Flash */
         ranges = <0x0 0x0 0x0 0xec000000 0x04000000>;

         nor@0,0 {
             #address-cells = <1>;
             #size-cells = <1>;
             compatible = "cfi-flash";
             reg = <0x0 0x0 0x04000000>;
             bank-width = <2>;
             device-width = <1>;

             partition@0 {
                 label = "ramdisk";
                 reg = <0x00000000 0x03000000>;
             };
             partition@3000000 {
                 label = "kernel";
                 reg = <0x03000000 0x00ee0000>;
             };
             partiton@3ee0000 {
                 label = "dtb";
                 reg = <0x03ee0000 0x00020000>;
             };
             partition@3f00000 {
                 label = "firmware";
                 reg = <0x03f00000 0x00080000>;
                 read-only;
             };
             partition@3f80000 {
                 label = "u-boot";
                 reg = <0x03f80000 0x00080000>;
                 read-only;
             };
         };
     };

     pci0: pcie@ff60a000 {
         reg = <0 0xff60a000 0 0x1000>;
         ranges = <0x2000000 0x0 0xc0000000 0 0xc0000000 0x0 0x20000000
               0x1000000 0x0 0x00000000 0 0xffc20000 0x0 0x10000>;
         pcie@0 {
             /* IRQ[0:3] are pulled up on board, set to active-low */
             interrupt-map-mask = <0xf800 0 0 7>;
             interrupt-map = <
                 /* IDSEL 0x0 */
                 0000 0 0 1 &mpic 0 1 0 0
                 0000 0 0 2 &mpic 1 1 0 0
                 0000 0 0 3 &mpic 2 1 0 0
                 0000 0 0 4 &mpic 3 1 0 0
                 >;
             ranges = <0x2000000 0x0 0xc0000000
                   0x2000000 0x0 0xc0000000
                   0x0 0x20000000

                   0x1000000 0x0 0x0
                   0x1000000 0x0 0x0
                   0x0 0x100000>;
         };
     };

     board_pci1: pci1: pcie@ff609000 {
         reg = <0 0xff609000 0 0x1000>;
         ranges = <0x2000000 0x0 0xa0000000 0 0xa0000000 0x0 0x20000000
               0x1000000 0x0 0x00000000 0 0xffc10000 0x0 0x10000>;
         pcie@0 {
             /*
              * IRQ[4:6] only for PCIe, set to active-high,
              * IRQ[7] is pulled up on board, set to active-low
              */
             interrupt-map-mask = <0xf800 0 0 7>;
             interrupt-map = <
                 /* IDSEL 0x0 */
                 0000 0 0 1 &mpic 4 2 0 0
                 0000 0 0 2 &mpic 5 2 0 0
                 0000 0 0 3 &mpic 6 2 0 0
                 0000 0 0 4 &mpic 7 1 0 0
                 >;
             ranges = <0x2000000 0x0 0xa0000000
                   0x2000000 0x0 0xa0000000
                   0x0 0x20000000

                   0x1000000 0x0 0x0
                   0x1000000 0x0 0x0
                   0x0 0x100000>;
         };
     };

     pci2: pcie@ff60b000 {
         reg = <0 0xff60b000 0 0x1000>;
         ranges = <0x2000000 0x0 0x80000000 0 0x80000000 0x0 0x20000000
               0x1000000 0x0 0x00000000 0 0xffc00000 0x0 0x10000>;
         pcie@0 {
             /*
              * IRQ[8:10] are pulled up on board, set to active-low
              * IRQ[11] only for PCIe, set to active-high,
              */
             interrupt-map-mask = <0xf800 0 0 7>;
             interrupt-map = <
                 /* IDSEL 0x0 */
                 0000 0 0 1 &mpic 8 1 0 0
                 0000 0 0 2 &mpic 9 1 0 0
                 0000 0 0 3 &mpic 10 1 0 0
                 0000 0 0 4 &mpic 11 2 0 0
                 >;
             ranges = <0x2000000 0x0 0x80000000
                   0x2000000 0x0 0x80000000
                   0x0 0x20000000

                   0x1000000 0x0 0x0
                   0x1000000 0x0 0x0
                   0x0 0x100000>;
         };
     };

     fsl,dpaa {
         compatible = "fsl,p1023-dpaa", "fsl,dpaa";

         ethernet@0 {
             compatible = "fsl,p1023-dpa-ethernet", "fsl,dpa-ethernet";
             fsl,fman-mac = <&enet0>;
         };
         ethernet@1 {
             compatible = "fsl,p1023-dpa-ethernet", "fsl,dpa-ethernet";
             fsl,fman-mac = <&enet1>;
         };
     };

     dsa@0 {
         compatible = "marvell,dsa";
         #address-cells = <2>;
         #size-cells = <0>;
         interrupt-parent = <&mpic>;
         interrupts = <3 1 0 0>;
         dsa,ethernet = <&enet1>;
         dsa,mii-bus = <&mdio0>;

         switch@0 {
             #address-cells = <1>;
             #size-cells = <0>;
             reg = <3 0>;    /* MDIO address 3, switch 0 in tree */

             port@0 {
                 reg = <0>;
                 label = "lan1";
             };

             port@1 {
                 reg = <1>;
                 label = "lan2";
             };

             port@2 {
                 reg = <2>;
                 label = "lan3";
             };

             port@3 {
                 reg = <3>;
                 label = "lan4";
             };

             port@4 {
                 reg = <4>;
                 label = "lan5";
             };

             port@5 {
                 reg = <5>;
                 label = "cpu";
             };

         };

     };
};

/include/ "fsl/p1023si-post.dtsi"

/include/ "fsl/qoriq-dpaa-res2.dtsi"

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Device Tree Binding for Marvell DSA on P1023RDB
  2014-06-16 16:30 ` Device Tree Binding for Marvell DSA on P1023RDB Pannirselvam Kanagaratnam
@ 2014-06-16 16:38   ` Florian Fainelli
  2014-06-17  6:41     ` Pannirselvam Kanagaratnam
  0 siblings, 1 reply; 6+ messages in thread
From: Florian Fainelli @ 2014-06-16 16:38 UTC (permalink / raw)
  To: Pannirselvam Kanagaratnam; +Cc: netdev

2014-06-16 9:30 GMT-07:00 Pannirselvam Kanagaratnam <pannir@xsmail.com>:
> Freescale's QORIQ P1023RDB has an option to populate the Marvell 88E6165
> Ethernet switch. We populated this device and were able to initialize it
> as a basic switch in U-Boot. However, the switch driver was not loaded
> upon kernel bootup. DSA kernel config was enabled for Marvell's 88E6165.
> The following patch was applied:
>
> http://patchwork.ozlabs.org/patch/230257/
> We are using Freescale's QorIQ-SDK-V1.5-20131219-yocto (3.8-r11.1). The
> switch is attached to phy address 0x3 via dtsec2. IRQ3 from the CPU is
> also physically connected to the switch (pin #122). My dts file is as
> below. Would appreciate any feedback on whether the DSA is structured
> correctly in the dts.
>
> The following mdio, mdio_bus and ethernet parameters were captured:
>
> 1) For mdio = of_parse_phandle(np, "dsa,mii-bus", 0); I get the following:
> np_name: dsa
> mdio_name: mdio
> mdio_type: <NULL>
> mdio_full-name: /soc@ff600000/fman@100000/mdio@e1120
>
> 2) mdio_bus = of_mdio_find_bus(mdio);
> mdio_bus_name: Freescale PowerQUICC MII Bus
> mdio_bus_id: mdio@ff7e1120
>
> 3) ethernet = of_parse_phandle(np, "dsa,ethernet", 0);
> ethernet-name: ethernet
> ethernet-type: <NULL>
> ethernet-full-name: /soc@ff600000/fman@100000/ethernet@e2000
>
> 4) ethernet_dev = of_find_device_by_node(ethernet);
> ethernet_dev-name: ff7e2000.ethernet
> ethernet_dev-id: -1

The id is -1 because this driver has been probed using device tree and
not using a non-device Tree platform device/driver which would set
explicit id numbers, this is not a problem here.

>
> Not sure why ethernet-dev-id is showing -1. Kindly advise. This is the
> output log during kernel booutp:
>
> Distributed Switch Architecture driver version 0.1
> dsa: probe of dsa.16 failed with error -22

This error might not come from dsa_of_probe(), please instrument the
code where -EINVAL is returned to see exactly which part of the
probing code is failing.

>
> Pannir
>
>
> /*
>  * P1023 RDB Device Tree Source
>  *
>  *    Copyright 2013 Freescale Semiconductor Inc.
>  *
>  * Author: Roy Zang <tie-fei.zang@freescale.com>
>  *       Chunhe Lan <Chunhe.Lan@freescale.com>
>  *
>  * Redistribution and use in source and binary forms, with or without
>  * modification, are permitted provided that the following conditions
> are met:
>  *     * Redistributions of source code must retain the above copyright
>  *       notice, this list of conditions and the following disclaimer.
>  *     * Redistributions in binary form must reproduce the above copyright
>  *       notice, this list of conditions and the following disclaimer
> in the
>  *       documentation and/or other materials provided with the
> distribution.
>  *     * Neither the name of Freescale Semiconductor nor the
>  *       names of its contributors may be used to endorse or promote
> products
>  *       derived from this software without specific prior written
> permission.
>  *
>  *
>  * ALTERNATIVELY, this software may be distributed under the terms of the
>  * GNU General Public License ("GPL") as published by the Free Software
>  * Foundation, either version 2 of that License or (at your option) any
>  * later version.
>  *
>  * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY
>  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
> IMPLIED
>  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
>  * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY
>  * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
> DAMAGES
>  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
> SERVICES;
>  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
> CAUSED AND
>  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
> OR TORT
>  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
> USE OF THIS
>  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
>  */
>
> /include/ "fsl/p1023si-pre.dtsi"
>
> / {
>     model = "fsl,P1023";
>     compatible = "fsl,P1023RDB";
>     #address-cells = <2>;
>     #size-cells = <2>;
>     interrupt-parent = <&mpic>;
>
>     aliases {
>         ethernet0 = &enet0;
>         ethernet1 = &enet1;
>     };
>
>     memory {
>         device_type = "memory";
>     };
>
>     qportals: qman-portals@ff000000 {
>         ranges = <0x0 0xf 0xff000000 0x200000>;
>     };
>
>     bportals: bman-portals@ff200000 {
>         ranges = <0x0 0xf 0xff200000 0x200000>;
>     };
>
>     soc: soc@ff600000 {
>         ranges = <0x0 0x0 0xff600000 0x200000>;
>
>         i2c@3000 {
>             eeprom@53 {
>                 compatible = "at24,24c04";
>                 reg = <0x53>;
>             };
>
>             rtc@6f {
>                 compatible = "microchip,mcp7941x";
>                 reg = <0x6f>;
>             };
>         };
>
>         usb@22000 {
>             dr_mode = "host";
>             phy_type = "ulpi";
>         };
>
>         fman0: fman@100000 {
>             enet0: ethernet@e0000 {
>                 phy-handle = <&phy0>;
>                 phy-connection-type = "rgmii";
>             };
>             mdio0: mdio@e1120 {
>                 phy0: ethernet-phy@1 {
>                     reg = <0x01>;
>                 };
>                 tbi0: tbi-phy@8 {
>                     reg = <0x8>;
>                     device_type = "tbi-phy";
>                 };
>             };
>             enet1: ethernet@e2000 {
>                 fixed-link = <3 1 1000 0 0>;
>                 phy-connection-type = "rgmii-id";
>             };
>         };
>     };
>
>     lbc: localbus@ff605000 {
>         reg = <0 0xff605000 0 0x1000>;
>
>         /* NOR Flash */
>         ranges = <0x0 0x0 0x0 0xec000000 0x04000000>;
>
>         nor@0,0 {
>             #address-cells = <1>;
>             #size-cells = <1>;
>             compatible = "cfi-flash";
>             reg = <0x0 0x0 0x04000000>;
>             bank-width = <2>;
>             device-width = <1>;
>
>             partition@0 {
>                 label = "ramdisk";
>                 reg = <0x00000000 0x03000000>;
>             };
>             partition@3000000 {
>                 label = "kernel";
>                 reg = <0x03000000 0x00ee0000>;
>             };
>             partiton@3ee0000 {
>                 label = "dtb";
>                 reg = <0x03ee0000 0x00020000>;
>             };
>             partition@3f00000 {
>                 label = "firmware";
>                 reg = <0x03f00000 0x00080000>;
>                 read-only;
>             };
>             partition@3f80000 {
>                 label = "u-boot";
>                 reg = <0x03f80000 0x00080000>;
>                 read-only;
>             };
>         };
>     };
>
>     pci0: pcie@ff60a000 {
>         reg = <0 0xff60a000 0 0x1000>;
>         ranges = <0x2000000 0x0 0xc0000000 0 0xc0000000 0x0 0x20000000
>               0x1000000 0x0 0x00000000 0 0xffc20000 0x0 0x10000>;
>         pcie@0 {
>             /* IRQ[0:3] are pulled up on board, set to active-low */
>             interrupt-map-mask = <0xf800 0 0 7>;
>             interrupt-map = <
>                 /* IDSEL 0x0 */
>                 0000 0 0 1 &mpic 0 1 0 0
>                 0000 0 0 2 &mpic 1 1 0 0
>                 0000 0 0 3 &mpic 2 1 0 0
>                 0000 0 0 4 &mpic 3 1 0 0
>                 >;
>             ranges = <0x2000000 0x0 0xc0000000
>                   0x2000000 0x0 0xc0000000
>                   0x0 0x20000000
>
>                   0x1000000 0x0 0x0
>                   0x1000000 0x0 0x0
>                   0x0 0x100000>;
>         };
>     };
>
>     board_pci1: pci1: pcie@ff609000 {
>         reg = <0 0xff609000 0 0x1000>;
>         ranges = <0x2000000 0x0 0xa0000000 0 0xa0000000 0x0 0x20000000
>               0x1000000 0x0 0x00000000 0 0xffc10000 0x0 0x10000>;
>         pcie@0 {
>             /*
>              * IRQ[4:6] only for PCIe, set to active-high,
>              * IRQ[7] is pulled up on board, set to active-low
>              */
>             interrupt-map-mask = <0xf800 0 0 7>;
>             interrupt-map = <
>                 /* IDSEL 0x0 */
>                 0000 0 0 1 &mpic 4 2 0 0
>                 0000 0 0 2 &mpic 5 2 0 0
>                 0000 0 0 3 &mpic 6 2 0 0
>                 0000 0 0 4 &mpic 7 1 0 0
>                 >;
>             ranges = <0x2000000 0x0 0xa0000000
>                   0x2000000 0x0 0xa0000000
>                   0x0 0x20000000
>
>                   0x1000000 0x0 0x0
>                   0x1000000 0x0 0x0
>                   0x0 0x100000>;
>         };
>     };
>
>     pci2: pcie@ff60b000 {
>         reg = <0 0xff60b000 0 0x1000>;
>         ranges = <0x2000000 0x0 0x80000000 0 0x80000000 0x0 0x20000000
>               0x1000000 0x0 0x00000000 0 0xffc00000 0x0 0x10000>;
>         pcie@0 {
>             /*
>              * IRQ[8:10] are pulled up on board, set to active-low
>              * IRQ[11] only for PCIe, set to active-high,
>              */
>             interrupt-map-mask = <0xf800 0 0 7>;
>             interrupt-map = <
>                 /* IDSEL 0x0 */
>                 0000 0 0 1 &mpic 8 1 0 0
>                 0000 0 0 2 &mpic 9 1 0 0
>                 0000 0 0 3 &mpic 10 1 0 0
>                 0000 0 0 4 &mpic 11 2 0 0
>                 >;
>             ranges = <0x2000000 0x0 0x80000000
>                   0x2000000 0x0 0x80000000
>                   0x0 0x20000000
>
>                   0x1000000 0x0 0x0
>                   0x1000000 0x0 0x0
>                   0x0 0x100000>;
>         };
>     };
>
>     fsl,dpaa {
>         compatible = "fsl,p1023-dpaa", "fsl,dpaa";
>
>         ethernet@0 {
>             compatible = "fsl,p1023-dpa-ethernet", "fsl,dpa-ethernet";
>             fsl,fman-mac = <&enet0>;
>         };
>         ethernet@1 {
>             compatible = "fsl,p1023-dpa-ethernet", "fsl,dpa-ethernet";
>             fsl,fman-mac = <&enet1>;
>         };
>     };
>
>     dsa@0 {
>         compatible = "marvell,dsa";
>         #address-cells = <2>;
>         #size-cells = <0>;
>         interrupt-parent = <&mpic>;
>         interrupts = <3 1 0 0>;
>         dsa,ethernet = <&enet1>;
>         dsa,mii-bus = <&mdio0>;
>
>         switch@0 {
>             #address-cells = <1>;
>             #size-cells = <0>;
>             reg = <3 0>;    /* MDIO address 3, switch 0 in tree */
>
>             port@0 {
>                 reg = <0>;
>                 label = "lan1";
>             };
>
>             port@1 {
>                 reg = <1>;
>                 label = "lan2";
>             };
>
>             port@2 {
>                 reg = <2>;
>                 label = "lan3";
>             };
>
>             port@3 {
>                 reg = <3>;
>                 label = "lan4";
>             };
>
>             port@4 {
>                 reg = <4>;
>                 label = "lan5";
>             };
>
>             port@5 {
>                 reg = <5>;
>                 label = "cpu";
>             };
>
>         };
>
>     };
> };
>
> /include/ "fsl/p1023si-post.dtsi"
>
> /include/ "fsl/qoriq-dpaa-res2.dtsi"
>
>
> --
> To unsubscribe from this list: send the line "unsubscribe netdev" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html



-- 
Florian

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Device Tree Binding for Marvell DSA on P1023RDB
  2014-06-16 16:38   ` Florian Fainelli
@ 2014-06-17  6:41     ` Pannirselvam Kanagaratnam
  2014-06-17 16:44       ` Florian Fainelli
  0 siblings, 1 reply; 6+ messages in thread
From: Pannirselvam Kanagaratnam @ 2014-06-17  6:41 UTC (permalink / raw)
  To: Florian Fainelli; +Cc: netdev


On 17/06/2014 12:38 AM, Florian Fainelli wrote:
> 2014-06-16 9:30 GMT-07:00 Pannirselvam Kanagaratnam <pannir@xsmail.com>:
> Distributed Switch Architecture driver version 0.1
> dsa: probe of dsa.16 failed with error -22
> This error might not come from dsa_of_probe(), please instrument the
> code where -EINVAL is returned to see exactly which part of the
> probing code is failing.

The error is coming from:

dev = dev_to_net_device(pd->netdev);
if (dev == NULL) {
		ret = -EINVAL;
		goto out;
	}

Is my device tree ok?

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Device Tree Binding for Marvell DSA on P1023RDB
  2014-06-17  6:41     ` Pannirselvam Kanagaratnam
@ 2014-06-17 16:44       ` Florian Fainelli
  2014-06-17 23:43         ` Pannirselvam Kanagaratnam
       [not found]         ` <53A0D1C2.4080305@xsmail.com>
  0 siblings, 2 replies; 6+ messages in thread
From: Florian Fainelli @ 2014-06-17 16:44 UTC (permalink / raw)
  To: Pannirselvam Kanagaratnam; +Cc: netdev

On Jun 16, 2014 11:41 PM, "Pannirselvam Kanagaratnam" <pannir@xsmail.com> wrote:
>
>
> On 17/06/2014 12:38 AM, Florian Fainelli wrote:
>>
>> 2014-06-16 9:30 GMT-07:00 Pannirselvam Kanagaratnam <pannir@xsmail.com>:
>> Distributed Switch Architecture driver version 0.1
>> dsa: probe of dsa.16 failed with error -22
>> This error might not come from dsa_of_probe(), please instrument the
>> code where -EINVAL is returned to see exactly which part of the
>> probing code is failing.
>
>
> The error is coming from:
>
> dev = dev_to_net_device(pd->netdev);
> if (dev == NULL) {
>                 ret = -EINVAL;
>                 goto out;
>         }

Ok, I could not find which Freescale Ethernet driver you are using,
but my guess is that we cannot look up the struct net_device that is
associated with the struct platform_device of your network driver,
most likely because the network driver failed to call
SET_NETDEV_DEV(). Also, if your Ethernet driver is modular, that might
be a problem if it get probed after DSA.

>
> Is my device tree ok?

It is.
--
Florian

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Device Tree Binding for Marvell DSA on P1023RDB
  2014-06-17 16:44       ` Florian Fainelli
@ 2014-06-17 23:43         ` Pannirselvam Kanagaratnam
       [not found]         ` <53A0D1C2.4080305@xsmail.com>
  1 sibling, 0 replies; 6+ messages in thread
From: Pannirselvam Kanagaratnam @ 2014-06-17 23:43 UTC (permalink / raw)
  To: Florian Fainelli; +Cc: netdev

On 18/06/2014 12:44 AM, Florian Fainelli wrote:
> On Jun 16, 2014 11:41 PM, "Pannirselvam Kanagaratnam" 
> <pannir@xsmail.com> wrote:
>>
>> The error is coming from:
>>
>> dev = dev_to_net_device(pd->netdev);
>> if (dev == NULL) {
>>                  ret = -EINVAL;
>>                  goto out;
>>          }
> Ok, I could not find which Freescale Ethernet driver you are using,
> but my guess is that we cannot look up the struct net_device that is
> associated with the struct platform_device of your network driver,
> most likely because the network driver failed to call
> SET_NETDEV_DEV(). Also, if your Ethernet driver is modular, that might
> be a problem if it get probed after DSA.
>

The Freescale Ethernet Driver is from SDK. The driver code can be viewed 
here:
https://lists.ubuntu.com/archives/kernel-team/2012-June/020687.html

This is my startup log. Looks like dsa is probed after ethernet:

libphy: Fixed MDIO Bus: probed
libphy: Freescale PowerQUICC MII Bus: probed
  FMAN(0) Fifo size settings:
   - Total buffers available(192 - 256B/buffer)
   - Total throughput(2Gbps)
   - Max frame size(1522B)
   - 1G ports TX 2(12 bufs set (min: 12))
   - 1G ports RX 2(68 bufs set (min: 8))
   - OH-HC ports 4(8)
   - Shared extra buffers(0)
  FMAN(0) open dma settings:
   - Total open dma available(16)
   - 1G ports TX 2(3)
   - 1G ports RX 2(3)
   - OH-HC ports 4(1)
   - Shared extra open dma(0)
  FMAN(0) Tnums settings:
   - Total Tnums available(64)
   - 1G ports TX 2(13)
   - 1G ports RX 2(14)
   - OH-HC ports 4(2)
   - Shared extra tnums(2)
Freescale FM module (Jun 16 2014:02:20:25), FMD API version 21.1.0
Freescale FM Ports module (Jun 16 2014:02:20:27)
dpaa_debugfs: FSL DPAA Ethernet debugfs entries ()
fsl_mac: mac.c:416:mac_load() fsl_mac: FSL FMan MAC API based driver ()
fsl_mac ff7e0000.ethernet: FMan dTSEC version: 0x08240101
fsl_mac ff7e0000.ethernet: FMan MAC address: 00:22:33:44:55:44
fsl_mac ff7e2000.ethernet: FMan dTSEC version: 0x08240101
fsl_mac ff7e2000.ethernet: FMan MAC address: 00:22:33:44:55:45
fsl_dpa: FSL DPAA Ethernet driver ()
fsl_dpa: Probed interface eth0
fsl_dpa: Probed interface eth1
fsl_dpa_shared: FSL DPAA Shared Ethernet driver ()
fsl_dpa_proxy: FSL DPAA Proxy initialization driver ()
fsl_oh: FSL FMan Offline Parsing port driver ()
e1000e: Intel(R) PRO/1000 Network Driver - 2.1.4-k
e1000e: Copyright(c) 1999 - 2012 Intel Corporation.
PPP generic driver version 2.4.2
NET: Registered protocol family 24
ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
ehci-pci: EHCI PCI platform driver
fsl-ehci fsl-ehci.0: Freescale On-Chip EHCI Host Controller
fsl-ehci fsl-ehci.0: new USB bus registered, assigned bus number 1
fsl-ehci fsl-ehci.0: irq 28, io mem 0xff622000
fsl-ehci fsl-ehci.0: USB 2.0 started, EHCI 1.00
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 1 port detected
Initializing USB Mass Storage driver...
usbcore: registered new interface driver usb-storage
USB Mass Storage support registered.
i2c /dev entries driver
mpc-i2c ff603000.i2c: timeout 1000000 us
at24 0-0053: 512 byte 24c04 EEPROM, writable, 1 bytes/write
usb 1-1: new high-speed USB device number 2 using fsl-ehci
hub 1-1:1.0: USB hub found
hub 1-1:1.0: 4 ports detected
rtc-ds1307: probe of 0-006f failed with error -5
mpc-i2c ff603100.i2c: timeout 1000000 us
EDAC MC: Ver: 3.0.0
platform caam_qi.0: Linux CAAM Queue I/F driver initialised
caam ff630000.crypto: device ID = 0x0a12010100000000 (Era 3)
caam ff630000.crypto: job rings = 4, qi = 1
caam ff630000.crypto: tls10-hmac-sha1-cbc-aes-caam needs Era 4 or higher 
but SEC is Era 3, skipping it
caam ff630000.crypto: fsl,sec-v4.2 algorithms registered in /proc/crypto
platform ff631000.jr: registering rng-caam
platform caam_qi.0: fsl,sec-v4.2 algorithms registered in /proc/crypto
caam ff630000.crypto: fsl,sec-v4.2 algorithms registered in /proc/crypto
usbcore: registered new interface driver usbhid
usbhid: USB HID core driver
Freescale USDPAA process driver
fsl-usdpaa: no region found
Freescale USDPAA process IRQ driver
u32 classifier
nf_conntrack version 0.5.0 (7137 buckets, 28548 max)
IPv4 over IPv4 tunneling driver
ip_tables: (C) 2000-2006 Netfilter Core Team
TCP: cubic registered
Initializing XFRM netlink socket
NET: Registered protocol family 10
ip6_tables: (C) 2000-2006 Netfilter Core Team
sit: IPv6 over IPv4 tunneling driver
NET: Registered protocol family 17
NET: Registered protocol family 15
Distributed Switch Architecture driver version 0.1
dsa: probe of dsa.16 failed with error -22
8021q: 802.1Q VLAN Support v1.8
Key type dns_resolver registered
fsl_dpa_macless: FSL DPAA MACless Ethernet driver ()
drivers/rtc/hctosys.c: unable to open rtc device (rtc0)
ALSA device list:
   No soundcards found.
RAMDISK: gzip image found at block 0
VFS: Mounted root (ext2 filesystem) on device 1:0.
devtmpfs: mounted
Freeing unused kernel memory: 248k freed
INIT: version 2.88 booting
Starting udev
udevd[1332]: starting version 182
Starting Bootlog daemon: bootlogd.
Configuring network interfaces... done.
hwclock: can't open '/dev/misc/rtc': No such file or directory
Sun Jun 15 23:41:00 UTC 2014
hwclock: can't open '/dev/misc/rtc': No such file or directory
Running postinst /etc/rpm-postinsts/sysvinit-inittab...
INIT: Entering runlevel: 5
hwclock: can't open '/dev/misc/rtc': No such file or directory
Starting syslogd/klogd: done
Stopping Bootlog daemon: bootlogd.

Poky 9.0 (Yocto Project 1.4 Reference Distro) 1.4.1 p1023 ttyS0

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Device Tree Binding for Marvell DSA on P1023RDB
       [not found]         ` <53A0D1C2.4080305@xsmail.com>
@ 2014-06-17 23:44           ` Florian Fainelli
  0 siblings, 0 replies; 6+ messages in thread
From: Florian Fainelli @ 2014-06-17 23:44 UTC (permalink / raw)
  To: Pannirselvam Kanagaratnam, netdev

2014-06-17 16:39 GMT-07:00 Pannirselvam Kanagaratnam <pannir@xsmail.com>:
>
> On 18/06/2014 12:44 AM, Florian Fainelli wrote:
>>
>> On Jun 16, 2014 11:41 PM, "Pannirselvam Kanagaratnam" <pannir@xsmail.com>
>> wrote:
>>>
>>>
>>> The error is coming from:
>>>
>>> dev = dev_to_net_device(pd->netdev);
>>> if (dev == NULL) {
>>>                  ret = -EINVAL;
>>>                  goto out;
>>>          }
>>
>> Ok, I could not find which Freescale Ethernet driver you are using,
>> but my guess is that we cannot look up the struct net_device that is
>> associated with the struct platform_device of your network driver,
>> most likely because the network driver failed to call
>> SET_NETDEV_DEV(). Also, if your Ethernet driver is modular, that might
>> be a problem if it get probed after DSA.
>>
>
> The Freescale Ethernet Driver is from SDK. The driver code can be viewed
> here:
> https://lists.ubuntu.com/archives/kernel-team/2012-June/020687.html
>
> This is my startup log. Looks like dsa is probed after ethernet:

Yes, so you should be good. You should investigate why dev_to_net()
does not work with your specific out of tree Ethernet driver. On all
drivers that I have tested: mv643xx_eth, mvneta and bcmsysport which
are all in the kernel, I had no problems, most likely something is not
done correctly by this out of tree driver, but that is beyond the
scope of the dsa code for now.

>
> libphy: Fixed MDIO Bus: probed
> libphy: Freescale PowerQUICC MII Bus: probed
>  FMAN(0) Fifo size settings:
>   - Total buffers available(192 - 256B/buffer)
>   - Total throughput(2Gbps)
>   - Max frame size(1522B)
>   - 1G ports TX 2(12 bufs set (min: 12))
>   - 1G ports RX 2(68 bufs set (min: 8))
>   - OH-HC ports 4(8)
>   - Shared extra buffers(0)
>  FMAN(0) open dma settings:
>   - Total open dma available(16)
>   - 1G ports TX 2(3)
>   - 1G ports RX 2(3)
>   - OH-HC ports 4(1)
>   - Shared extra open dma(0)
>  FMAN(0) Tnums settings:
>   - Total Tnums available(64)
>   - 1G ports TX 2(13)
>   - 1G ports RX 2(14)
>   - OH-HC ports 4(2)
>   - Shared extra tnums(2)
> Freescale FM module (Jun 16 2014:02:20:25), FMD API version 21.1.0
> Freescale FM Ports module (Jun 16 2014:02:20:27)
> dpaa_debugfs: FSL DPAA Ethernet debugfs entries ()
> fsl_mac: mac.c:416:mac_load() fsl_mac: FSL FMan MAC API based driver ()
> fsl_mac ff7e0000.ethernet: FMan dTSEC version: 0x08240101
> fsl_mac ff7e0000.ethernet: FMan MAC address: 00:22:33:44:55:44
> fsl_mac ff7e2000.ethernet: FMan dTSEC version: 0x08240101
> fsl_mac ff7e2000.ethernet: FMan MAC address: 00:22:33:44:55:45
> fsl_dpa: FSL DPAA Ethernet driver ()
> fsl_dpa: Probed interface eth0
> fsl_dpa: Probed interface eth1
> fsl_dpa_shared: FSL DPAA Shared Ethernet driver ()
> fsl_dpa_proxy: FSL DPAA Proxy initialization driver ()
> fsl_oh: FSL FMan Offline Parsing port driver ()
> e1000e: Intel(R) PRO/1000 Network Driver - 2.1.4-k
> e1000e: Copyright(c) 1999 - 2012 Intel Corporation.
> PPP generic driver version 2.4.2
> NET: Registered protocol family 24
> ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
> ehci-pci: EHCI PCI platform driver
> fsl-ehci fsl-ehci.0: Freescale On-Chip EHCI Host Controller
> fsl-ehci fsl-ehci.0: new USB bus registered, assigned bus number 1
> fsl-ehci fsl-ehci.0: irq 28, io mem 0xff622000
> fsl-ehci fsl-ehci.0: USB 2.0 started, EHCI 1.00
> hub 1-0:1.0: USB hub found
> hub 1-0:1.0: 1 port detected
> Initializing USB Mass Storage driver...
> usbcore: registered new interface driver usb-storage
> USB Mass Storage support registered.
> i2c /dev entries driver
> mpc-i2c ff603000.i2c: timeout 1000000 us
> at24 0-0053: 512 byte 24c04 EEPROM, writable, 1 bytes/write
> usb 1-1: new high-speed USB device number 2 using fsl-ehci
> hub 1-1:1.0: USB hub found
> hub 1-1:1.0: 4 ports detected
> rtc-ds1307: probe of 0-006f failed with error -5
> mpc-i2c ff603100.i2c: timeout 1000000 us
> EDAC MC: Ver: 3.0.0
> platform caam_qi.0: Linux CAAM Queue I/F driver initialised
> caam ff630000.crypto: device ID = 0x0a12010100000000 (Era 3)
> caam ff630000.crypto: job rings = 4, qi = 1
> caam ff630000.crypto: tls10-hmac-sha1-cbc-aes-caam needs Era 4 or higher but
> SEC is Era 3, skipping it
> caam ff630000.crypto: fsl,sec-v4.2 algorithms registered in /proc/crypto
> platform ff631000.jr: registering rng-caam
> platform caam_qi.0: fsl,sec-v4.2 algorithms registered in /proc/crypto
> caam ff630000.crypto: fsl,sec-v4.2 algorithms registered in /proc/crypto
> usbcore: registered new interface driver usbhid
> usbhid: USB HID core driver
> Freescale USDPAA process driver
> fsl-usdpaa: no region found
> Freescale USDPAA process IRQ driver
> u32 classifier
> nf_conntrack version 0.5.0 (7137 buckets, 28548 max)
> IPv4 over IPv4 tunneling driver
> ip_tables: (C) 2000-2006 Netfilter Core Team
> TCP: cubic registered
> Initializing XFRM netlink socket
> NET: Registered protocol family 10
> ip6_tables: (C) 2000-2006 Netfilter Core Team
> sit: IPv6 over IPv4 tunneling driver
> NET: Registered protocol family 17
> NET: Registered protocol family 15
>
> Distributed Switch Architecture driver version 0.1
> dsa: probe of dsa.16 failed with error -22
> 8021q: 802.1Q VLAN Support v1.8
> Key type dns_resolver registered
> fsl_dpa_macless: FSL DPAA MACless Ethernet driver ()
> drivers/rtc/hctosys.c: unable to open rtc device (rtc0)
> ALSA device list:
>   No soundcards found.
> RAMDISK: gzip image found at block 0
> VFS: Mounted root (ext2 filesystem) on device 1:0.
> devtmpfs: mounted
> Freeing unused kernel memory: 248k freed
> INIT: version 2.88 booting
> Starting udev
> udevd[1332]: starting version 182
> Starting Bootlog daemon: bootlogd.
> Configuring network interfaces... done.
> hwclock: can't open '/dev/misc/rtc': No such file or directory
> Sun Jun 15 23:41:00 UTC 2014
> hwclock: can't open '/dev/misc/rtc': No such file or directory
> Running postinst /etc/rpm-postinsts/sysvinit-inittab...
> INIT: Entering runlevel: 5
> hwclock: can't open '/dev/misc/rtc': No such file or directory
> Starting syslogd/klogd: done
> Stopping Bootlog daemon: bootlogd.
>
> Poky 9.0 (Yocto Project 1.4 Reference Distro) 1.4.1 p1023 ttyS0
>
>
>



-- 
Florian

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2014-06-17 23:45 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <539F1B3F.6060203@xsmail.com>
2014-06-16 16:30 ` Device Tree Binding for Marvell DSA on P1023RDB Pannirselvam Kanagaratnam
2014-06-16 16:38   ` Florian Fainelli
2014-06-17  6:41     ` Pannirselvam Kanagaratnam
2014-06-17 16:44       ` Florian Fainelli
2014-06-17 23:43         ` Pannirselvam Kanagaratnam
     [not found]         ` <53A0D1C2.4080305@xsmail.com>
2014-06-17 23:44           ` Florian Fainelli

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).