lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Mon, 16 Jun 2014 09:38:44 -0700
From:	Florian Fainelli <f.fainelli@...il.com>
To:	Pannirselvam Kanagaratnam <pannir@...ail.com>
Cc:	netdev <netdev@...r.kernel.org>
Subject: Re: Device Tree Binding for Marvell DSA on P1023RDB

2014-06-16 9:30 GMT-07:00 Pannirselvam Kanagaratnam <pannir@...ail.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@...00000/fman@...000/mdio@...20
>
> 2) mdio_bus = of_mdio_find_bus(mdio);
> mdio_bus_name: Freescale PowerQUICC MII Bus
> mdio_bus_id: mdio@...e1120
>
> 3) ethernet = of_parse_phandle(np, "dsa,ethernet", 0);
> ethernet-name: ethernet
> ethernet-type: <NULL>
> ethernet-full-name: /soc@...00000/fman@...000/ethernet@...00
>
> 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@...escale.com>
>  *       Chunhe Lan <Chunhe.Lan@...escale.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@...00000 {
>         ranges = <0x0 0xf 0xff000000 0x200000>;
>     };
>
>     bportals: bman-portals@...00000 {
>         ranges = <0x0 0xf 0xff200000 0x200000>;
>     };
>
>     soc: soc@...00000 {
>         ranges = <0x0 0x0 0xff600000 0x200000>;
>
>         i2c@...0 {
>             eeprom@53 {
>                 compatible = "at24,24c04";
>                 reg = <0x53>;
>             };
>
>             rtc@6f {
>                 compatible = "microchip,mcp7941x";
>                 reg = <0x6f>;
>             };
>         };
>
>         usb@...00 {
>             dr_mode = "host";
>             phy_type = "ulpi";
>         };
>
>         fman0: fman@...000 {
>             enet0: ethernet@...00 {
>                 phy-handle = <&phy0>;
>                 phy-connection-type = "rgmii";
>             };
>             mdio0: mdio@...20 {
>                 phy0: ethernet-phy@1 {
>                     reg = <0x01>;
>                 };
>                 tbi0: tbi-phy@8 {
>                     reg = <0x8>;
>                     device_type = "tbi-phy";
>                 };
>             };
>             enet1: ethernet@...00 {
>                 fixed-link = <3 1 1000 0 0>;
>                 phy-connection-type = "rgmii-id";
>             };
>         };
>     };
>
>     lbc: localbus@...05000 {
>         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@...0000 {
>                 label = "kernel";
>                 reg = <0x03000000 0x00ee0000>;
>             };
>             partiton@...0000 {
>                 label = "dtb";
>                 reg = <0x03ee0000 0x00020000>;
>             };
>             partition@...0000 {
>                 label = "firmware";
>                 reg = <0x03f00000 0x00080000>;
>                 read-only;
>             };
>             partition@...0000 {
>                 label = "u-boot";
>                 reg = <0x03f80000 0x00080000>;
>                 read-only;
>             };
>         };
>     };
>
>     pci0: pcie@...0a000 {
>         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@...09000 {
>         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@...0b000 {
>         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@...r.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html



-- 
Florian
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Powered by blists - more mailing lists