diff mbox

[5/6] powerpc/corenet: Add DPAA FMan support to the SoC device tree(s)

Message ID 1397823693-27977-5-git-send-email-Shruti@Freescale.com (mailing list archive)
State Changes Requested
Delegated to: Scott Wood
Headers show

Commit Message

Shruti Kanetkar April 18, 2014, 12:21 p.m. UTC
FMan 1 Gb/s MACs (dTSEC and mEMAC) have support for SGMII PHYs.
Add support for the internal SerDes TBI PHYs

Based on prior work by Andy Fleming <afleming@gmail.com>

Signed-off-by: Shruti Kanetkar <Shruti@Freescale.com>
---
 arch/powerpc/boot/dts/fsl/b4860si-post.dtsi |  28 +++++
 arch/powerpc/boot/dts/fsl/b4si-post.dtsi    |  51 +++++++++
 arch/powerpc/boot/dts/fsl/p1023si-post.dtsi |  14 +++
 arch/powerpc/boot/dts/fsl/p2041si-post.dtsi |  64 ++++++++++++
 arch/powerpc/boot/dts/fsl/p3041si-post.dtsi |  64 ++++++++++++
 arch/powerpc/boot/dts/fsl/p4080si-post.dtsi | 104 +++++++++++++++++++
 arch/powerpc/boot/dts/fsl/p5020si-post.dtsi |  64 ++++++++++++
 arch/powerpc/boot/dts/fsl/p5040si-post.dtsi | 128 +++++++++++++++++++++++
 arch/powerpc/boot/dts/fsl/t4240si-post.dtsi | 154 ++++++++++++++++++++++++++++
 9 files changed, 671 insertions(+)

Comments

Scott Wood April 21, 2014, 10:14 p.m. UTC | #1
On Fri, 2014-04-18 at 07:21 -0500, Shruti Kanetkar wrote:
> FMan 1 Gb/s MACs (dTSEC and mEMAC) have support for SGMII PHYs.
> Add support for the internal SerDes TBI PHYs
> 
> Based on prior work by Andy Fleming <afleming@gmail.com>
> 
> Signed-off-by: Shruti Kanetkar <Shruti@Freescale.com>
> ---
>  arch/powerpc/boot/dts/fsl/b4860si-post.dtsi |  28 +++++
>  arch/powerpc/boot/dts/fsl/b4si-post.dtsi    |  51 +++++++++
>  arch/powerpc/boot/dts/fsl/p1023si-post.dtsi |  14 +++
>  arch/powerpc/boot/dts/fsl/p2041si-post.dtsi |  64 ++++++++++++
>  arch/powerpc/boot/dts/fsl/p3041si-post.dtsi |  64 ++++++++++++
>  arch/powerpc/boot/dts/fsl/p4080si-post.dtsi | 104 +++++++++++++++++++
>  arch/powerpc/boot/dts/fsl/p5020si-post.dtsi |  64 ++++++++++++
>  arch/powerpc/boot/dts/fsl/p5040si-post.dtsi | 128 +++++++++++++++++++++++
>  arch/powerpc/boot/dts/fsl/t4240si-post.dtsi | 154 ++++++++++++++++++++++++++++
>  9 files changed, 671 insertions(+)
> 
> diff --git a/arch/powerpc/boot/dts/fsl/b4860si-post.dtsi b/arch/powerpc/boot/dts/fsl/b4860si-post.dtsi
> index cbc354b..45b0ff5 100644
> --- a/arch/powerpc/boot/dts/fsl/b4860si-post.dtsi
> +++ b/arch/powerpc/boot/dts/fsl/b4860si-post.dtsi
> @@ -172,6 +172,34 @@
>  		compatible = "fsl,b4860-rcpm", "fsl,qoriq-rcpm-2.0";
>  	};
>  
> +/include/ "qoriq-fman3-0-1g-4.dtsi"
> +/include/ "qoriq-fman3-0-1g-5.dtsi"
> +/include/ "qoriq-fman3-0-10g-0.dtsi"
> +/include/ "qoriq-fman3-0-10g-1.dtsi"
> +	fman@400000 {
> +		ethernet@e8000 {
> +			tbi-handle = <&tbi4>;
> +		};

Binding needed

Where is the "reg" for these unit addresses?

> +		mdio@e9000 {
> +			tbi4: tbi-phy@8 {
> +				reg = <0x8>;
> +				device_type = "tbi-phy";
> +			};
> +		};

Binding needed for tbi-phy device_type.  Why are we using device_type at
all for this?

-Scott
Emil Medve May 4, 2014, 10:59 a.m. UTC | #2
Hello Scott,


On 04/21/2014 05:14 PM, Scott Wood wrote:
> On Fri, 2014-04-18 at 07:21 -0500, Shruti Kanetkar wrote:
>> FMan 1 Gb/s MACs (dTSEC and mEMAC) have support for SGMII PHYs.
>> Add support for the internal SerDes TBI PHYs
>>
>> Based on prior work by Andy Fleming <afleming@gmail.com>
>>
>> Signed-off-by: Shruti Kanetkar <Shruti@Freescale.com>
>> ---
>>  arch/powerpc/boot/dts/fsl/b4860si-post.dtsi |  28 +++++
>>  arch/powerpc/boot/dts/fsl/b4si-post.dtsi    |  51 +++++++++
>>  arch/powerpc/boot/dts/fsl/p1023si-post.dtsi |  14 +++
>>  arch/powerpc/boot/dts/fsl/p2041si-post.dtsi |  64 ++++++++++++
>>  arch/powerpc/boot/dts/fsl/p3041si-post.dtsi |  64 ++++++++++++
>>  arch/powerpc/boot/dts/fsl/p4080si-post.dtsi | 104 +++++++++++++++++++
>>  arch/powerpc/boot/dts/fsl/p5020si-post.dtsi |  64 ++++++++++++
>>  arch/powerpc/boot/dts/fsl/p5040si-post.dtsi | 128 +++++++++++++++++++++++
>>  arch/powerpc/boot/dts/fsl/t4240si-post.dtsi | 154 ++++++++++++++++++++++++++++
>>  9 files changed, 671 insertions(+)
>>
>> diff --git a/arch/powerpc/boot/dts/fsl/b4860si-post.dtsi b/arch/powerpc/boot/dts/fsl/b4860si-post.dtsi
>> index cbc354b..45b0ff5 100644
>> --- a/arch/powerpc/boot/dts/fsl/b4860si-post.dtsi
>> +++ b/arch/powerpc/boot/dts/fsl/b4860si-post.dtsi
>> @@ -172,6 +172,34 @@
>>  		compatible = "fsl,b4860-rcpm", "fsl,qoriq-rcpm-2.0";
>>  	};
>>  
>> +/include/ "qoriq-fman3-0-1g-4.dtsi"
>> +/include/ "qoriq-fman3-0-1g-5.dtsi"
>> +/include/ "qoriq-fman3-0-10g-0.dtsi"
>> +/include/ "qoriq-fman3-0-10g-1.dtsi"
>> +	fman@400000 {
>> +		ethernet@e8000 {
>> +			tbi-handle = <&tbi4>;
>> +		};
> 
> Binding needed
> 
> Where is the "reg" for these unit addresses?

As I said, the bulk of the FMan work comes from another team. Here we
need just enough to hook up the MDIO and PHY nodes. I'd really like to
be able to make progress on this without waiting for that moment in time
we can get the entire FMan binding in place

>> +		mdio@e9000 {
>> +			tbi4: tbi-phy@8 {
>> +				reg = <0x8>;
>> +				device_type = "tbi-phy";
>> +			};
>> +		};
> 
> Binding needed for tbi-phy device_type

I guess that's fair (BTW, you accepted tbi-phy nodes/device-type before
without a binding)

> Why are we using device_type at all for this?

That's what the upstream driver is looking for. Anyway, most days PHYs
can be discovered so they don't use/need compatible properties. That's I
guess part of the reason we don't have bindings for them PHY nodes

However, what you can't discover is how they are wired to the MAC(s) so
we still need some nodes in the device tree to convey that. Also, when
looking for a specific kind of PHY, such as TBI, device_type works
easier then parsing compatibles from various vendors or so


Cheers,
Scott Wood May 5, 2014, 11:34 p.m. UTC | #3
On Sun, 2014-05-04 at 05:59 -0500, Emil Medve wrote:
> Hello Scott,
> 
> 
> On 04/21/2014 05:14 PM, Scott Wood wrote:
> > On Fri, 2014-04-18 at 07:21 -0500, Shruti Kanetkar wrote:
> >> FMan 1 Gb/s MACs (dTSEC and mEMAC) have support for SGMII PHYs.
> >> Add support for the internal SerDes TBI PHYs
> >>
> >> Based on prior work by Andy Fleming <afleming@gmail.com>
> >>
> >> Signed-off-by: Shruti Kanetkar <Shruti@Freescale.com>
> >> ---
> >>  arch/powerpc/boot/dts/fsl/b4860si-post.dtsi |  28 +++++
> >>  arch/powerpc/boot/dts/fsl/b4si-post.dtsi    |  51 +++++++++
> >>  arch/powerpc/boot/dts/fsl/p1023si-post.dtsi |  14 +++
> >>  arch/powerpc/boot/dts/fsl/p2041si-post.dtsi |  64 ++++++++++++
> >>  arch/powerpc/boot/dts/fsl/p3041si-post.dtsi |  64 ++++++++++++
> >>  arch/powerpc/boot/dts/fsl/p4080si-post.dtsi | 104 +++++++++++++++++++
> >>  arch/powerpc/boot/dts/fsl/p5020si-post.dtsi |  64 ++++++++++++
> >>  arch/powerpc/boot/dts/fsl/p5040si-post.dtsi | 128 +++++++++++++++++++++++
> >>  arch/powerpc/boot/dts/fsl/t4240si-post.dtsi | 154 ++++++++++++++++++++++++++++
> >>  9 files changed, 671 insertions(+)
> >>
> >> diff --git a/arch/powerpc/boot/dts/fsl/b4860si-post.dtsi b/arch/powerpc/boot/dts/fsl/b4860si-post.dtsi
> >> index cbc354b..45b0ff5 100644
> >> --- a/arch/powerpc/boot/dts/fsl/b4860si-post.dtsi
> >> +++ b/arch/powerpc/boot/dts/fsl/b4860si-post.dtsi
> >> @@ -172,6 +172,34 @@
> >>  		compatible = "fsl,b4860-rcpm", "fsl,qoriq-rcpm-2.0";
> >>  	};
> >>  
> >> +/include/ "qoriq-fman3-0-1g-4.dtsi"
> >> +/include/ "qoriq-fman3-0-1g-5.dtsi"
> >> +/include/ "qoriq-fman3-0-10g-0.dtsi"
> >> +/include/ "qoriq-fman3-0-10g-1.dtsi"
> >> +	fman@400000 {
> >> +		ethernet@e8000 {
> >> +			tbi-handle = <&tbi4>;
> >> +		};
> > 
> > Binding needed
> > 
> > Where is the "reg" for these unit addresses?
> 
> As I said, the bulk of the FMan work comes from another team. Here we
> need just enough to hook up the MDIO and PHY nodes.

Unit addresses must match reg.  No reg, no unit address.

> I'd really like to be able to make progress on this without waiting for that moment in time
> we can get the entire FMan binding in place

Why is the fman binding such a big deal?

> >> +		mdio@e9000 {
> >> +			tbi4: tbi-phy@8 {
> >> +				reg = <0x8>;
> >> +				device_type = "tbi-phy";
> >> +			};
> >> +		};
> > 
> > Binding needed for tbi-phy device_type
> 
> I guess that's fair (BTW, you accepted tbi-phy nodes/device-type before
> without a binding)

It's existing practice on eTSEC.  FMan seemed like an opportunity to
avoid carrying cruft forward.

> > Why are we using device_type at all for this?
> 
> That's what the upstream driver is looking for.

Drivers should look for what the binding says -- not the other way
around.

>  Anyway, most days PHYs can be discovered so they don't use/need
> compatible properties. That's I guess part of the reason we don't have
> bindings for them PHY nodes

I don't see why there couldn't be a compatible that describes the
standard programming interface.

> However, what you can't discover is how they are wired to the MAC(s) so
> we still need some nodes in the device tree to convey that. Also, when
> looking for a specific kind of PHY, such as TBI, device_type works
> easier then parsing compatibles from various vendors or so

Don't you find the TBI by following the tbi-handle property?  That said,
I don't object to having a way to label a PHY as attached via TBI if
that's useful.  I'm giving a mild, non-nacking (given the history)
objection to using device_type for that (given other history).

-Scott
Emil Medve May 6, 2014, 6:28 a.m. UTC | #4
Hello Scott,


On 05/05/2014 06:34 PM, Scott Wood wrote:
> On Sun, 2014-05-04 at 05:59 -0500, Emil Medve wrote:
>> Hello Scott,
>>
>>
>> On 04/21/2014 05:14 PM, Scott Wood wrote:
>>> On Fri, 2014-04-18 at 07:21 -0500, Shruti Kanetkar wrote:
>>>> FMan 1 Gb/s MACs (dTSEC and mEMAC) have support for SGMII PHYs.
>>>> Add support for the internal SerDes TBI PHYs
>>>>
>>>> Based on prior work by Andy Fleming <afleming@gmail.com>
>>>>
>>>> Signed-off-by: Shruti Kanetkar <Shruti@Freescale.com>
>>>> ---
>>>>  arch/powerpc/boot/dts/fsl/b4860si-post.dtsi |  28 +++++
>>>>  arch/powerpc/boot/dts/fsl/b4si-post.dtsi    |  51 +++++++++
>>>>  arch/powerpc/boot/dts/fsl/p1023si-post.dtsi |  14 +++
>>>>  arch/powerpc/boot/dts/fsl/p2041si-post.dtsi |  64 ++++++++++++
>>>>  arch/powerpc/boot/dts/fsl/p3041si-post.dtsi |  64 ++++++++++++
>>>>  arch/powerpc/boot/dts/fsl/p4080si-post.dtsi | 104 +++++++++++++++++++
>>>>  arch/powerpc/boot/dts/fsl/p5020si-post.dtsi |  64 ++++++++++++
>>>>  arch/powerpc/boot/dts/fsl/p5040si-post.dtsi | 128 +++++++++++++++++++++++
>>>>  arch/powerpc/boot/dts/fsl/t4240si-post.dtsi | 154 ++++++++++++++++++++++++++++
>>>>  9 files changed, 671 insertions(+)
>>>>
>>>> diff --git a/arch/powerpc/boot/dts/fsl/b4860si-post.dtsi b/arch/powerpc/boot/dts/fsl/b4860si-post.dtsi
>>>> index cbc354b..45b0ff5 100644
>>>> --- a/arch/powerpc/boot/dts/fsl/b4860si-post.dtsi
>>>> +++ b/arch/powerpc/boot/dts/fsl/b4860si-post.dtsi
>>>> @@ -172,6 +172,34 @@
>>>>  		compatible = "fsl,b4860-rcpm", "fsl,qoriq-rcpm-2.0";
>>>>  	};
>>>>  
>>>> +/include/ "qoriq-fman3-0-1g-4.dtsi"
>>>> +/include/ "qoriq-fman3-0-1g-5.dtsi"
>>>> +/include/ "qoriq-fman3-0-10g-0.dtsi"
>>>> +/include/ "qoriq-fman3-0-10g-1.dtsi"
>>>> +	fman@400000 {
>>>> +		ethernet@e8000 {
>>>> +			tbi-handle = <&tbi4>;
>>>> +		};
>>>
>>> Binding needed
>>>
>>> Where is the "reg" for these unit addresses?
>>
>> As I said, the bulk of the FMan work comes from another team. Here we
>> need just enough to hook up the MDIO and PHY nodes.
> 
> Unit addresses must match reg.  No reg, no unit address.

We can add a 'reg' property, but we really don't want to clash with the
team that is working on upstreaming the FMan/MAC bindings and drivers

>> I'd really like to be able to make progress on this without waiting for that moment in time
>> we can get the entire FMan binding in place
> 
> Why is the fman binding such a big deal?
> 
>>>> +		mdio@e9000 {
>>>> +			tbi4: tbi-phy@8 {
>>>> +				reg = <0x8>;
>>>> +				device_type = "tbi-phy";
>>>> +			};
>>>> +		};
>>>
>>> Binding needed for tbi-phy device_type
>>
>> I guess that's fair (BTW, you accepted tbi-phy nodes/device-type before
>> without a binding)
> 
> It's existing practice on eTSEC.  FMan seemed like an opportunity to
> avoid carrying cruft forward.

The 1 Gb/s MDIO block is not FMan specific. As I said is the same block
from eTSEC. That's part of the reason we're trying upstreaming this
independent of the FMan stuff. So, don't think FMan, think MDIO

>>> Why are we using device_type at all for this?
>>
>> That's what the upstream driver is looking for.
> 
> Drivers should look for what the binding says -- not the other way
> around.

Yeah yeah. Nobody likes it, but the driver is/describes the de facto binding

On a constructive note, the Ethernet PHY code doesn't do device tree
based probing so no compatibles are used at all. So device_type is used
to convey a TBI PHY

>>  Anyway, most days PHYs can be discovered so they don't use/need
>> compatible properties. That's I guess part of the reason we don't have
>> bindings for them PHY nodes
> 
> I don't see why there couldn't be a compatible that describes the
> standard programming interface.

Because it can be detected at runtime and I guess stuff like that should
stay out of the device tree. I'm using PCI as an analogy here

>> However, what you can't discover is how they are wired to the MAC(s) so
>> we still need some nodes in the device tree to convey that. Also, when
>> looking for a specific kind of PHY, such as TBI, device_type works
>> easier then parsing compatibles from various vendors or so
> 
> Don't you find the TBI by following the tbi-handle property?

When the MAC "attaches" to the PHY the tbi-handle is followed. But the
MDIO/PHY code/driver(s) doesn't quite "see" the tbi-handle as it's
outside the MDIO/PHY nodes

> That said,
> I don't object to having a way to label a PHY as attached via TBI if
> that's useful.  I'm giving a mild, non-nacking (given the history)
> objection to using device_type for that (given other history).

Personally, I think that TBI PHY support is a bit messy but I don't have
bandwidth to deal with that. The TBI PHY should be handled as a regular
PHY and right now is a special case


Cheers,
Joakim Tjernlund May 6, 2014, 7:40 a.m. UTC | #5
"Linuxppc-dev" 
<linuxppc-dev-bounces+joakim.tjernlund=transmode.se@lists.ozlabs.org> 
wrote on 2014/05/06 08:28:42:
> 

.....

> 
> > That said,
> > I don't object to having a way to label a PHY as attached via TBI if
> > that's useful.  I'm giving a mild, non-nacking (given the history)
> > objection to using device_type for that (given other history).
> 
> Personally, I think that TBI PHY support is a bit messy but I don't have
> bandwidth to deal with that. The TBI PHY should be handled as a regular
> PHY and right now is a special case

Yes please! We will use the TBI as the only PHY in 1000BASE-X mode so
naturally we want to see the TBI as its own PHY and monitor its link 
status, AN etc.

 Jocke
Scott Wood May 7, 2014, 11:14 p.m. UTC | #6
On Tue, 2014-05-06 at 01:28 -0500, Emil Medve wrote:
> Hello Scott,
> 
> 
> On 05/05/2014 06:34 PM, Scott Wood wrote:
> > On Sun, 2014-05-04 at 05:59 -0500, Emil Medve wrote:
> >>  Anyway, most days PHYs can be discovered so they don't use/need
> >> compatible properties. That's I guess part of the reason we don't have
> >> bindings for them PHY nodes
> > 
> > I don't see why there couldn't be a compatible that describes the
> > standard programming interface.
> 
> Because it can be detected at runtime and I guess stuff like that should
> stay out of the device tree. I'm using PCI as an analogy here

But in this case aren't you using a standardized component of the
programming model itself to probe the specific PHY type?  I think a
better analogy is the "cfi-flash" compatible.

-Scott
Emil Medve May 8, 2014, 5:18 a.m. UTC | #7
Hello Scott,


On 05/07/2014 06:14 PM, Scott Wood wrote:
> On Tue, 2014-05-06 at 01:28 -0500, Emil Medve wrote:
>> Hello Scott,
>>
>>
>> On 05/05/2014 06:34 PM, Scott Wood wrote:
>>> On Sun, 2014-05-04 at 05:59 -0500, Emil Medve wrote:
>>>>  Anyway, most days PHYs can be discovered so they don't use/need
>>>> compatible properties. That's I guess part of the reason we don't have
>>>> bindings for them PHY nodes
>>>
>>> I don't see why there couldn't be a compatible that describes the
>>> standard programming interface.
>>
>> Because it can be detected at runtime and I guess stuff like that should
>> stay out of the device tree. I'm using PCI as an analogy here
> 
> But in this case aren't you using a standardized component of the
> programming model itself to probe the specific PHY type?  I think a
> better analogy is the "cfi-flash" compatible.

Well, to speak your language,
Documentation/devicetree/bindings/net/phy.txt claims the 'compatible' to
be optional, case in which at least 'ethernet-phy-ieee802.3-c22' is
implied. 'ethernet-phy-ieee802.3-c22' (1 Gb/s MDIO/PHY) conveys the
standardized programming model that allows probing


Cheers,
diff mbox

Patch

diff --git a/arch/powerpc/boot/dts/fsl/b4860si-post.dtsi b/arch/powerpc/boot/dts/fsl/b4860si-post.dtsi
index cbc354b..45b0ff5 100644
--- a/arch/powerpc/boot/dts/fsl/b4860si-post.dtsi
+++ b/arch/powerpc/boot/dts/fsl/b4860si-post.dtsi
@@ -172,6 +172,34 @@ 
 		compatible = "fsl,b4860-rcpm", "fsl,qoriq-rcpm-2.0";
 	};
 
+/include/ "qoriq-fman3-0-1g-4.dtsi"
+/include/ "qoriq-fman3-0-1g-5.dtsi"
+/include/ "qoriq-fman3-0-10g-0.dtsi"
+/include/ "qoriq-fman3-0-10g-1.dtsi"
+	fman@400000 {
+		ethernet@e8000 {
+			tbi-handle = <&tbi4>;
+		};
+
+		mdio@e9000 {
+			tbi4: tbi-phy@8 {
+				reg = <0x8>;
+				device_type = "tbi-phy";
+			};
+		};
+
+		ethernet@ea000 {
+			tbi-handle = <&tbi5>;
+		};
+
+		mdio@eb000 {
+			tbi5: tbi-phy@8 {
+				reg = <0x8>;
+				device_type = "tbi-phy";
+			};
+		};
+	};
+
 	L2: l2-cache-controller@c20000 {
 		compatible = "fsl,b4860-l2-cache-controller";
 	};
diff --git a/arch/powerpc/boot/dts/fsl/b4si-post.dtsi b/arch/powerpc/boot/dts/fsl/b4si-post.dtsi
index 4f6e482..e59d6ae 100644
--- a/arch/powerpc/boot/dts/fsl/b4si-post.dtsi
+++ b/arch/powerpc/boot/dts/fsl/b4si-post.dtsi
@@ -260,6 +260,57 @@ 
 /include/ "qoriq-duart-1.dtsi"
 /include/ "qoriq-sec5.3-0.dtsi"
 
+/include/ "qoriq-fman3-0.dtsi"
+/include/ "qoriq-fman3-0-1g-0.dtsi"
+/include/ "qoriq-fman3-0-1g-1.dtsi"
+/include/ "qoriq-fman3-0-1g-2.dtsi"
+/include/ "qoriq-fman3-0-1g-3.dtsi"
+	fman@400000 {
+		ethernet@e0000 {
+			tbi-handle = <&tbi0>;
+		};
+
+		mdio@e1000 {
+			tbi0: tbi-phy@8 {
+				reg = <0x8>;
+				device_type = "tbi-phy";
+			};
+		};
+
+		ethernet@e2000 {
+			tbi-handle = <&tbi1>;
+		};
+
+		mdio@e3000 {
+			tbi1: tbi-phy@8 {
+				reg = <0x8>;
+				device_type = "tbi-phy";
+			};
+		};
+
+		ethernet@e4000 {
+			tbi-handle = <&tbi2>;
+		};
+
+		mdio@e5000 {
+			tbi2: tbi-phy@8 {
+				reg = <0x8>;
+				device_type = "tbi-phy";
+			};
+		};
+
+		ethernet@e6000 {
+			tbi-handle = <&tbi3>;
+		};
+
+		mdio@e7000 {
+			tbi3: tbi-phy@8 {
+				reg = <0x8>;
+				device_type = "tbi-phy";
+			};
+		};
+	};
+
 	L2: l2-cache-controller@c20000 {
 		compatible = "fsl,b4-l2-cache-controller";
 		reg = <0xc20000 0x1000>;
diff --git a/arch/powerpc/boot/dts/fsl/p1023si-post.dtsi b/arch/powerpc/boot/dts/fsl/p1023si-post.dtsi
index 81437fd..01fd153 100644
--- a/arch/powerpc/boot/dts/fsl/p1023si-post.dtsi
+++ b/arch/powerpc/boot/dts/fsl/p1023si-post.dtsi
@@ -226,4 +226,18 @@ 
 		reg = <0xe0000 0x1000>;
 		fsl,has-rstcr;
 	};
+
+	fman@100000 {
+		#address-cells = <1>;
+		#size-cells = <1>;
+		ranges = <0 0x100000 0x100000>;
+		compatible = "simple-bus";
+
+		mdio@e1120 {
+			#address-cells = <1>;
+			#size-cells = <0>;
+			compatible = "fsl,fman-mdio";
+			reg = <0xe1120 0xee0>;
+		};
+	};
 };
diff --git a/arch/powerpc/boot/dts/fsl/p2041si-post.dtsi b/arch/powerpc/boot/dts/fsl/p2041si-post.dtsi
index e2987a3..6f3836e 100644
--- a/arch/powerpc/boot/dts/fsl/p2041si-post.dtsi
+++ b/arch/powerpc/boot/dts/fsl/p2041si-post.dtsi
@@ -449,4 +449,68 @@ 
 crypto: crypto@300000 {
 		fsl,iommu-parent = <&pamu1>;
 	};
+
+/include/ "qoriq-fman-0.dtsi"
+/include/ "qoriq-fman-0-1g-0.dtsi"
+/include/ "qoriq-fman-0-1g-1.dtsi"
+/include/ "qoriq-fman-0-1g-2.dtsi"
+/include/ "qoriq-fman-0-1g-3.dtsi"
+/include/ "qoriq-fman-0-1g-4.dtsi"
+/include/ "qoriq-fman-0-10g-0.dtsi"
+	fman@400000 {
+		ethernet@e0000 {
+			tbi-handle = <&tbi0>;
+		};
+
+		mdio@e1120 {
+			tbi0: tbi-phy@8 {
+				reg = <0x8>;
+				device_type = "tbi-phy";
+			};
+		};
+
+		ethernet@e2000 {
+			tbi-handle = <&tbi1>;
+		};
+
+		mdio@e3120 {
+			tbi1: tbi-phy@8 {
+				reg = <8>;
+				device_type = "tbi-phy";
+			};
+		};
+
+		ethernet@e4000 {
+			tbi-handle = <&tbi2>;
+		};
+
+		mdio@e5120 {
+			tbi2: tbi-phy@8 {
+				reg = <8>;
+				device_type = "tbi-phy";
+			};
+		};
+
+		ethernet@e6000 {
+			tbi-handle = <&tbi3>;
+		};
+
+		mdio@e7120 {
+			tbi3: tbi-phy@8 {
+				reg = <8>;
+				device_type = "tbi-phy";
+			};
+		};
+
+		ethernet@e8000 {
+			tbi-handle = <&tbi4>;
+		};
+
+		mdio@e9120 {
+			tbi4: tbi-phy@8 {
+				reg = <8>;
+				device_type = "tbi-phy";
+			};
+		};
+	};
 };
diff --git a/arch/powerpc/boot/dts/fsl/p3041si-post.dtsi b/arch/powerpc/boot/dts/fsl/p3041si-post.dtsi
index 7af6d45..6a9ba00 100644
--- a/arch/powerpc/boot/dts/fsl/p3041si-post.dtsi
+++ b/arch/powerpc/boot/dts/fsl/p3041si-post.dtsi
@@ -477,4 +477,68 @@ 
 crypto: crypto@300000 {
 		fsl,iommu-parent = <&pamu1>;
 	};
+
+/include/ "qoriq-fman-0.dtsi"
+/include/ "qoriq-fman-0-1g-0.dtsi"
+/include/ "qoriq-fman-0-1g-1.dtsi"
+/include/ "qoriq-fman-0-1g-2.dtsi"
+/include/ "qoriq-fman-0-1g-3.dtsi"
+/include/ "qoriq-fman-0-1g-4.dtsi"
+/include/ "qoriq-fman-0-10g-0.dtsi"
+	fman@400000 {
+		ethernet@e0000 {
+			tbi-handle = <&tbi0>;
+		};
+
+		mdio@e1120 {
+			tbi0: tbi-phy@8 {
+				reg = <0x8>;
+				device_type = "tbi-phy";
+			};
+		};
+
+		ethernet@e2000 {
+			tbi-handle = <&tbi1>;
+		};
+
+		mdio@e3120 {
+			tbi1: tbi-phy@8 {
+				reg = <8>;
+				device_type = "tbi-phy";
+			};
+		};
+
+		ethernet@e4000 {
+			tbi-handle = <&tbi2>;
+		};
+
+		mdio@e5120 {
+			tbi2: tbi-phy@8 {
+				reg = <8>;
+				device_type = "tbi-phy";
+			};
+		};
+
+		ethernet@e6000 {
+			tbi-handle = <&tbi3>;
+		};
+
+		mdio@e7120 {
+			tbi3: tbi-phy@8 {
+				reg = <8>;
+				device_type = "tbi-phy";
+			};
+		};
+
+		ethernet@e8000 {
+			tbi-handle = <&tbi4>;
+		};
+
+		mdio@e9120 {
+			tbi4: tbi-phy@8 {
+				reg = <8>;
+				device_type = "tbi-phy";
+			};
+		};
+	};
 };
diff --git a/arch/powerpc/boot/dts/fsl/p4080si-post.dtsi b/arch/powerpc/boot/dts/fsl/p4080si-post.dtsi
index 2415e1f..e63823d 100644
--- a/arch/powerpc/boot/dts/fsl/p4080si-post.dtsi
+++ b/arch/powerpc/boot/dts/fsl/p4080si-post.dtsi
@@ -533,4 +533,108 @@ 
 crypto: crypto@300000 {
 		fsl,iommu-parent = <&pamu1>;
 	};
+
+/include/ "qoriq-fman-0.dtsi"
+/include/ "qoriq-fman-0-1g-0.dtsi"
+/include/ "qoriq-fman-0-1g-1.dtsi"
+/include/ "qoriq-fman-0-1g-2.dtsi"
+/include/ "qoriq-fman-0-1g-3.dtsi"
+/include/ "qoriq-fman-0-10g-0.dtsi"
+	fman@400000 {
+		ethernet@e0000 {
+			tbi-handle = <&tbi0>;
+		};
+
+		mdio@e1120 {
+			tbi0: tbi-phy@8 {
+				reg = <0x8>;
+				device_type = "tbi-phy";
+			};
+		};
+
+		ethernet@e2000 {
+			tbi-handle = <&tbi1>;
+		};
+
+		mdio@e3120 {
+			tbi1: tbi-phy@8 {
+				reg = <8>;
+				device_type = "tbi-phy";
+			};
+		};
+
+		ethernet@e4000 {
+			tbi-handle = <&tbi2>;
+		};
+
+		mdio@e5120 {
+			tbi2: tbi-phy@8 {
+				reg = <8>;
+				device_type = "tbi-phy";
+			};
+		};
+
+		ethernet@e6000 {
+			tbi-handle = <&tbi3>;
+		};
+
+		mdio@e7120 {
+			tbi3: tbi-phy@8 {
+				reg = <8>;
+				device_type = "tbi-phy";
+			};
+		};
+	};
+
+/include/ "qoriq-fman-1.dtsi"
+/include/ "qoriq-fman-1-1g-0.dtsi"
+/include/ "qoriq-fman-1-1g-1.dtsi"
+/include/ "qoriq-fman-1-1g-2.dtsi"
+/include/ "qoriq-fman-1-1g-3.dtsi"
+/include/ "qoriq-fman-1-10g-0.dtsi"
+	fman@500000 {
+		ethernet@e0000 {
+			tbi-handle = <&tbi5>;
+		};
+
+		mdio@e1120 {
+			tbi5: tbi-phy@8 {
+				reg = <8>;
+				device_type = "tbi-phy";
+			};
+		};
+
+		ethernet@e2000 {
+			tbi-handle = <&tbi6>;
+		};
+
+		mdio@e3120 {
+			tbi6: tbi-phy@8 {
+				reg = <8>;
+				device_type = "tbi-phy";
+			};
+		};
+
+		ethernet@e4000 {
+			tbi-handle = <&tbi7>;
+		};
+
+		mdio@e5120 {
+			tbi7: tbi-phy@8 {
+				reg = <8>;
+				device_type = "tbi-phy";
+			};
+		};
+
+		ethernet@e6000 {
+			tbi-handle = <&tbi8>;
+		};
+
+		mdio@e7120 {
+			tbi8: tbi-phy@8 {
+				reg = <8>;
+				device_type = "tbi-phy";
+			};
+		};
+	};
 };
diff --git a/arch/powerpc/boot/dts/fsl/p5020si-post.dtsi b/arch/powerpc/boot/dts/fsl/p5020si-post.dtsi
index 2985de4..efdb10a 100644
--- a/arch/powerpc/boot/dts/fsl/p5020si-post.dtsi
+++ b/arch/powerpc/boot/dts/fsl/p5020si-post.dtsi
@@ -468,4 +468,68 @@ 
 	raideng@320000 {
 		fsl,iommu-parent = <&pamu1>;
 	};
+
+/include/ "qoriq-fman-0.dtsi"
+/include/ "qoriq-fman-0-1g-0.dtsi"
+/include/ "qoriq-fman-0-1g-1.dtsi"
+/include/ "qoriq-fman-0-1g-2.dtsi"
+/include/ "qoriq-fman-0-1g-3.dtsi"
+/include/ "qoriq-fman-0-1g-4.dtsi"
+/include/ "qoriq-fman-0-10g-0.dtsi"
+	fman@400000 {
+		ethernet@e0000 {
+			tbi-handle = <&tbi0>;
+		};
+
+		mdio@e1120 {
+			tbi0: tbi-phy@8 {
+				reg = <0x8>;
+				device_type = "tbi-phy";
+			};
+		};
+
+		ethernet@e2000 {
+			tbi-handle = <&tbi1>;
+		};
+
+		mdio@e3120 {
+			tbi1: tbi-phy@8 {
+				reg = <8>;
+				device_type = "tbi-phy";
+			};
+		};
+
+		ethernet@e4000 {
+			tbi-handle = <&tbi2>;
+		};
+
+		mdio@e5120 {
+			tbi2: tbi-phy@8 {
+				reg = <8>;
+				device_type = "tbi-phy";
+			};
+		};
+
+		ethernet@e6000 {
+			tbi-handle = <&tbi3>;
+		};
+
+		mdio@e7120 {
+			tbi3: tbi-phy@8 {
+				reg = <8>;
+				device_type = "tbi-phy";
+			};
+		};
+
+		ethernet@e8000 {
+			tbi-handle = <&tbi4>;
+		};
+
+		mdio@e9120 {
+			tbi4: tbi-phy@8 {
+				reg = <8>;
+				device_type = "tbi-phy";
+			};
+		};
+	};
 };
diff --git a/arch/powerpc/boot/dts/fsl/p5040si-post.dtsi b/arch/powerpc/boot/dts/fsl/p5040si-post.dtsi
index 546a899..cb90867 100644
--- a/arch/powerpc/boot/dts/fsl/p5040si-post.dtsi
+++ b/arch/powerpc/boot/dts/fsl/p5040si-post.dtsi
@@ -442,4 +442,132 @@ 
 	crypto@300000 {
 		fsl,iommu-parent = <&pamu4>;
 	};
+
+/include/ "qoriq-fman-0.dtsi"
+/include/ "qoriq-fman-0-1g-0.dtsi"
+/include/ "qoriq-fman-0-1g-1.dtsi"
+/include/ "qoriq-fman-0-1g-2.dtsi"
+/include/ "qoriq-fman-0-1g-3.dtsi"
+/include/ "qoriq-fman-0-1g-4.dtsi"
+/include/ "qoriq-fman-0-10g-0.dtsi"
+	fman@400000 {
+		ethernet@e0000 {
+			tbi-handle = <&tbi0>;
+		};
+
+		mdio@e1120 {
+			tbi0: tbi-phy@8 {
+				reg = <0x8>;
+				device_type = "tbi-phy";
+			};
+		};
+
+		ethernet@e2000 {
+			tbi-handle = <&tbi1>;
+		};
+
+		mdio@e3120 {
+			tbi1: tbi-phy@8 {
+				reg = <8>;
+				device_type = "tbi-phy";
+			};
+		};
+
+		ethernet@e4000 {
+			tbi-handle = <&tbi2>;
+		};
+
+		mdio@e5120 {
+			tbi2: tbi-phy@8 {
+				reg = <8>;
+				device_type = "tbi-phy";
+			};
+		};
+
+		ethernet@e6000 {
+			tbi-handle = <&tbi3>;
+		};
+
+		mdio@e7120 {
+			tbi3: tbi-phy@8 {
+				reg = <8>;
+				device_type = "tbi-phy";
+			};
+		};
+
+		ethernet@e8000 {
+			tbi-handle = <&tbi4>;
+		};
+
+		mdio@e9120 {
+			tbi4: tbi-phy@8 {
+				reg = <8>;
+				device_type = "tbi-phy";
+			};
+		};
+	};
+
+/include/ "qoriq-fman-1.dtsi"
+/include/ "qoriq-fman-1-1g-0.dtsi"
+/include/ "qoriq-fman-1-1g-1.dtsi"
+/include/ "qoriq-fman-1-1g-2.dtsi"
+/include/ "qoriq-fman-1-1g-3.dtsi"
+/include/ "qoriq-fman-1-1g-4.dtsi"
+/include/ "qoriq-fman-1-10g-0.dtsi"
+	fman@500000 {
+		ethernet@e0000 {
+			tbi-handle = <&tbi5>;
+		};
+
+		mdio@e1120 {
+			tbi5: tbi-phy@8 {
+				reg = <8>;
+				device_type = "tbi-phy";
+			};
+		};
+
+		ethernet@e2000 {
+			tbi-handle = <&tbi6>;
+		};
+
+		mdio@e3120 {
+			tbi6: tbi-phy@8 {
+				reg = <8>;
+				device_type = "tbi-phy";
+			};
+		};
+
+		ethernet@e4000 {
+			tbi-handle = <&tbi7>;
+		};
+
+		mdio@e5120 {
+			tbi7: tbi-phy@8 {
+				reg = <8>;
+				device_type = "tbi-phy";
+			};
+		};
+
+		ethernet@e6000 {
+			tbi-handle = <&tbi8>;
+		};
+
+		mdio@e7120 {
+			tbi8: tbi-phy@8 {
+				reg = <8>;
+				device_type = "tbi-phy";
+			};
+		};
+
+		ethernet@e8000 {
+			tbi-handle = <&tbi9>;
+		};
+
+		mdio@e9120 {
+			tbi9: tbi-phy@8 {
+				reg = <8>;
+				device_type = "tbi-phy";
+			};
+		};
+	};
 };
diff --git a/arch/powerpc/boot/dts/fsl/t4240si-post.dtsi b/arch/powerpc/boot/dts/fsl/t4240si-post.dtsi
index f99d74f..5a35019 100644
--- a/arch/powerpc/boot/dts/fsl/t4240si-post.dtsi
+++ b/arch/powerpc/boot/dts/fsl/t4240si-post.dtsi
@@ -525,4 +525,158 @@ 
 		reg = <0xca0000 0x40000>;
 		next-level-cache = <&cpc>;
 	};
+
+/include/ "qoriq-fman3-0.dtsi"
+/include/ "qoriq-fman3-0-1g-0.dtsi"
+/include/ "qoriq-fman3-0-1g-1.dtsi"
+/include/ "qoriq-fman3-0-1g-2.dtsi"
+/include/ "qoriq-fman3-0-1g-3.dtsi"
+/include/ "qoriq-fman3-0-1g-4.dtsi"
+/include/ "qoriq-fman3-0-1g-5.dtsi"
+/include/ "qoriq-fman3-0-10g-0.dtsi"
+/include/ "qoriq-fman3-0-10g-1.dtsi"
+	fman@400000 {
+		ethernet@e0000 {
+			tbi-handle = <&tbi0>;
+		};
+
+		mdio@e1000 {
+			tbi0: tbi-phy@8 {
+				reg = <0x8>;
+				device_type = "tbi-phy";
+			};
+		};
+
+		ethernet@e2000 {
+			tbi-handle = <&tbi1>;
+		};
+
+		mdio@e3000 {
+			tbi1: tbi-phy@8 {
+				reg = <0x8>;
+				device_type = "tbi-phy";
+			};
+		};
+
+		ethernet@e4000 {
+			tbi-handle = <&tbi2>;
+		};
+
+		mdio@e5000 {
+			tbi2: tbi-phy@8 {
+				reg = <0x8>;
+				device_type = "tbi-phy";
+			};
+		};
+
+		ethernet@e6000 {
+			tbi-handle = <&tbi3>;
+		};
+
+		mdio@e7000 {
+			tbi3: tbi-phy@8 {
+				reg = <0x8>;
+				device_type = "tbi-phy";
+			};
+		};
+
+		ethernet@e8000 {
+			tbi-handle = <&tbi4>;
+		};
+
+		mdio@e9000 {
+			tbi4: tbi-phy@8 {
+				reg = <0x8>;
+				device_type = "tbi-phy";
+			};
+		};
+
+		ethernet@ea000 {
+			tbi-handle = <&tbi5>;
+		};
+
+		mdio@eb000 {
+			tbi5: tbi-phy@8 {
+				reg = <0x8>;
+				device_type = "tbi-phy";
+			};
+		};
+	};
+
+/include/ "qoriq-fman3-1.dtsi"
+/include/ "qoriq-fman3-1-1g-0.dtsi"
+/include/ "qoriq-fman3-1-1g-1.dtsi"
+/include/ "qoriq-fman3-1-1g-2.dtsi"
+/include/ "qoriq-fman3-1-1g-3.dtsi"
+/include/ "qoriq-fman3-1-1g-4.dtsi"
+/include/ "qoriq-fman3-1-1g-5.dtsi"
+/include/ "qoriq-fman3-1-10g-0.dtsi"
+/include/ "qoriq-fman3-0-10g-1.dtsi"
+	fman@500000 {
+		ethernet@e0000 {
+			tbi-handle = <&tbi6>;
+		};
+
+		mdio@e1000 {
+			tbi6: tbi-phy@8 {
+				reg = <0x8>;
+				device_type = "tbi-phy";
+			};
+		};
+
+		ethernet@e2000 {
+			tbi-handle = <&tbi7>;
+		};
+
+		mdio@e3000 {
+			tbi7: tbi-phy@8 {
+				reg = <0x8>;
+				device_type = "tbi-phy";
+			};
+		};
+
+		ethernet@e4000 {
+			tbi-handle = <&tbi8>;
+		};
+
+		mdio@e5000 {
+			tbi8: tbi-phy@8 {
+				reg = <0x8>;
+				device_type = "tbi-phy";
+			};
+		};
+
+		ethernet@e6000 {
+			tbi-handle = <&tbi9>;
+		};
+
+		mdio@e7000 {
+			tbi9: tbi-phy@8 {
+				reg = <0x8>;
+				device_type = "tbi-phy";
+			};
+		};
+
+		ethernet@e8000 {
+			tbi-handle = <&tbi10>;
+		};
+
+		mdio@e9000 {
+			tbi10: tbi-phy@8 {
+				reg = <0x8>;
+				device_type = "tbi-phy";
+			};
+		};
+
+		ethernet@ea000 {
+			tbi-handle = <&tbi11>;
+		};
+
+		mdio@eb000 {
+			tbi11: tbi-phy@8 {
+				reg = <0x8>;
+				device_type = "tbi-phy";
+			};
+		};
+	};
 };