Re: Query about Implementing Device tree for Networking on HPE BMC

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Jul 10, 2023 at 2:33 PM Hawkins, Nick <nick.hawkins@xxxxxxx> wrote:
>
> Greetings Rob and Krzysztof,
>
> I am attempting to describe the HPE GXP BMCs networking interfaces for
> the device tree.
>
> Here are the details: The GXP contains two Ethernet MACs that can be
> connected externally to several physical devices. From an external
> interface perspective the BMC provides two SERDES interface connections
> capable of either SGMII or 1000Base-X operation. The BMC also provides
> a RMII interface for sideband connections to external Ethernet controllers.
>
> The primary MAC (umac0) can be mapped to either SGMII/1000-BaseX
> SERDES interface.  The secondary MAC (umac1) can be mapped to only
> the second SGMII/1000-Base X Serdes interface or it can be mapped for
> RMII sideband.
>
> The MDIO(mdio0) interface from the primary MAC (umac0) is used for
> external PHY status and configuration. The MDIO(mdio1) interface from
> the secondary MAC (umac1) is routed to the SGMII/100Base-X IP blocks
> on the two SERDES interface connections.
>
> I cannot find any examples of something currently like this in linux and
> I am looking for suggestions.

What is your question? Do I know of hardware like this? No. Maybe ask
networking folks.

> Below is this previous attempt that was used to describe this architecture:
>
> mdio0: mdio@4080 {
>         compatible = "hpe,gxp-umac-mdio";
>         reg = <0x4080 0x10>;
>         #address-cells = <1>;
>         #size-cells = <0>;
>         ext_phy0: ethernt-phy@0 {
>                 compatible = "marvell,88e1415","ethernet-phy-ieee802.3-c22";
>                 phy-mode = "sgmii";
>                 reg = <0>;
>         };
> };
>
> mdio1: mdio@5080 {
>         compatible = "hpe,gxp-umac-mdio";
>         reg = <0x5080 0x10>;
>         #address-cells = <1>;
>         #size-cells = <0>;
>         int_phy0: ethernt-phy@0 {
>                 compatible = "ethernet-phy-ieee802.3-c22";
>                 phy-mode = "gmii";
>                              reg = <0>;
>         };
>
>         int_phy1: ethernt-phy@1 {
>                 compatible = "ethernet-phy-ieee802.3-c22";
>                 phy-mode = "gmii";
>                 reg = <1>;
>         };
> };
>
> umac0: umac@4000 {
>         compatible = "hpe, gxp-umac";
>         reg = <0x4000 0x80>;
>         interrupts = <10>;
>         interrupt-parent = <&vic0>;
>         mac-address = [94 18 82 16 04 d8];
>         phy-handle = <&ext_phy0>;
>         int-phy-handle = <&int_phy0>;

This is the only thing that stands out to me.

Are both phys usable on a given system? If not, then you shouldn't
need to describe both. Otherwise, we could allow 'phy-handle' to take
more than 1 entry if we don't already. Then you can define which entry
is which interface.

Rob




[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]


  Powered by Linux