Hello Satya.
ok fine, I allready tried to adapt my Device Tree Bindings for my IMX28 Board according to this example:
https://www.kernel.org/doc/Documentation/devicetree/bindings/net/dsa/dsa.txt
But at Linux bootup nothing dsa related is detected.
dmesg | grep -E "mii|dsa"
[ 2.432681] libphy: fec_enet_mii_bus: probed
[ 18.605055] eth0: Freescale FEC PHY driver [Generic PHY] (mii_bus:phy_addr=800f0000.etherne:01, irq=-1)
[ 19.373633] eth1: Freescale FEC PHY driver [Generic PHY] (mii_bus:phy_addr=800f0000.etherne:03, irq=-1)
Here is my DTS part of the Device Tree:
/*
* Marvell Distributed Switch Architecture Device Tree Bindings
*
* A DSA node can contain multiple switch chips which are therefore child nodes of
* the parent DSA node. The maximum number of allowed child nodes is 4
*/
dsa@0 {
compatible = "marvell,dsa";
#address-cells = <2>;
#size-cells = <0>;
interrupts = <10>;
dsa,ethernet = <&mac1>;
// dsa,mii-bus = <&mii_bus0>;
dsa,mii-bus = <ðphy1>;
// dsa,mii-bus = <&mdio>;
switch@0 {
#address-cells = <1>;
#size-cells = <0>;
//reg = <16 0>; /* MDIO address 16, switch 0 in tree */
reg = <5 0>; /* MDIO address 16, switch 0 in tree */
port@0 {
reg = <0>;
label = "lan1";
phy-handle = <ðphy1>;
};
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";
};
};
switch1uplink: port@0 {
reg = <0>;
label = "dsa";
link = <&switch0uplink>;
};
};
*/
};
/*
* The MDIO is a bus to which the PHY devices are connected. For each
* device that exists on this bus, a child node should be created. See
* the definition of the PHY node below for an example of how to define a PHY.
mdio {
#address-cells = <1>;
#size-cells = <0>;
device_type = "mdio";
compatible = "marvell,mv64360-mdio";
ethernet-phy@0 {
......
};
};
*/
mdio {
#address-cells = <1>;
#size-cells = <0>;
device_type = "mdio";
compatible = "marvell,mv64360-mdio";
status = "okay";
ethphy0: ethernet-phy@0 {
reg = <0>;
};
ethphy1: ethernet-phy@1 {
reg = <1>;
compatible = "marvell,88e1149r";
marvell,reg-init = <3 0x10 0 0x5777>,
<3 0x11 0 0x00aa>,
<3 0x12 0 0x4105>,
<3 0x13 0 0x0a60>;
};
//reg = <0xff>; /* No PHY attached */
//speed = <1000>;
//duple = <1>;
};
Best regards,
Oliver
>
> Yes , you need DSA to distinguish from which port a frame arrived.
> DSA driver in Linux is available in below path, "drivers/net/dsa/"
> for reference " http://lxr.free-electrons.com/source/drivers/net/dsa/"
>
> Thank you
> Satya
>
> On 10/28/2014 12:55 PM, Oliver.Graute@xxxxxxxxxx wrote:
> >
> > Hello Satya,
> >
> >
> > > RSTP daemon runs in application and stops the kernel stp and informs
> > > to pass the packets to application layer.
> > > RSTP daemon waits in raw socket with stp filter.
> > > You just need to change the a bit code for port wise that all.
> >
> > ok thanks,
> >
> > do I need the DSA (Distributed Switch Architecture) driver support to
> > distinguish from which port a frame arrived? Currently, I can not
> > distinguish these frames.
> >
> > I can't find DSA drivers in the mainline Linux Kernel for the Marvel
> > Switch Chip (88E6071) . Bur there are drivers for other DSA supported
> > chips from marvel (88E6060).
> >
> > Related Question:
> >
> > How do I customize my device tree bindings (dts file) for DSA support?
> >
> >
> > Best regards,
> >
> > Oliver Graute
> >
>
Attachment:
smime.p7s
Description: S/MIME cryptographic signature