> The embedded PHYs are only connected to the switch in this SoC and on
> all other SoCs from this line I am aware of.
Hi Hauke
O.K, then it makes sense to have it part of the switch driver.
> The firmware is 64KBytes big and we have to load that into continuous
> memory which is then used by the PHY itself. When we are late in the
> boot process we could run into memory problems, most devices have 64MB
> or 128MB of RAM.
You might want to look at using CMA. I've never used it myself, so
cannot help much.
> How should the device tree binding should look like?
>
> Should I create an extra sub node:
>
> gswip: gswip@E108000 {
> #address-cells = <1>;
> #size-cells = <0>;
> compatible = "lantiq,xrx200-gswip";
> reg = < 0xE108000 0x3000 /* switch */
> 0xE10B100 0x70 /* mdio */
> 0xE10B1D8 0x30 /* mii */
> >;
> dsa,member = <0 0>;
>
> ports {
> #address-cells = <1>;
> #size-cells = <0>;
>
> port@0 {
> reg = <0>;
> label = "lan3";
> phy-mode = "rgmii";
> phy-handle = <&phy0>;
> };
> ....
> };
>
> mdio@0 {
> #address-cells = <1>;
> #size-cells = <0>;
> compatible = "lantiq,xrx200-mdio";
> reg = <0>;
>
> phy0: ethernet-phy@0 {
> reg = <0x0>;
> };
> ....
> };
>
> # this would be the new part
> phys {
> gphy0: gphy@20 {
> compatible = "lantiq,xrx200a2x-gphy";
It would be good to make it clear this is for firmware download. So
scatter "firmware" or "fw" in some of these names. What we don't want
is a mix up with phy's within the mdio subtree. Otherwise this looks
good. But you should cross post the device tree binding to the device
tree mailing list.
Andrew