[U-Boot] [PATCH 1/2] common: miiphyutil: Add helper function for mdio bus name

Simon Glass sjg at chromium.org
Sun Dec 11 21:27:47 CET 2016


Hi Michal,

On 9 December 2016 at 01:39, Michal Simek <michal.simek at xilinx.com> wrote:
> The most of ethernet drivers are using this mdio registration sequence.
> strcpy(priv->bus->name, "emac");
> mdio_register(priv->bus);
> Where driver can be used only with one MDIO bus because only unique
> name should be used.
>
> Other drivers are using unique device name for MDIO registration to
> support multiple instances.
> snprintf(priv->bus->name, sizeof(bus->name), "%s", name);
>
> With DM dev->seq is used more even in logs
> (like random MAC address generation:
> printf("\nWarning: %s (eth%d) using random MAC address - %pM\n",
>        dev->name, dev->seq, pdata->enetaddr);
> )
> where eth%d prefix is used.
>
> Simplify driver code to register mdio device with dev->seq number
> to simplify mdio registration and reduce code duplication across
> all drivers. With DM_SEQ_ALIAS enabled dev->seq reflects alias setting.
>
> Signed-off-by: Michal Simek <michal.simek at xilinx.com>
> ---
>
> For example:
>
> Board: Xilinx Zynq
> Net:   ZYNQ GEM: e000b000, phyaddr 7, interface rgmii-id
>
> Warning: ethernet at e000b000 (eth0) using random MAC address -
> 7a:fc:90:53:6a:41
> eth0: ethernet at e000b000ZYNQ GEM: e000c000, phyaddr ffffffff, interface
> rgmii-id
>
> Warning: ethernet at e000c000 (eth3) using random MAC address -
> 1a:ff:d7:1a:a1:b2
> , eth3: ethernet at e000c000
> ** Bad device size - mmc 0 **
> Checking if uenvcmd is set ...
> Hit any key to stop autoboot:  0
> Zynq> mdio list
> eth0:
> 17 - Marvell 88E1111S <--> ethernet at e000b000
> eth3:
> 17 - Marvell 88E1111S <--> ethernet at e000c000
> Zynq>
>
> ---
>  common/miiphyutil.c | 12 ++++++++++++
>  include/miiphy.h    |  1 +
>  2 files changed, 13 insertions(+)

Reviewed-by: Simon Glass <sjg at chromium.org>

But please see below.

>
> diff --git a/common/miiphyutil.c b/common/miiphyutil.c
> index aca18db52a00..8eb0f761bb01 100644
> --- a/common/miiphyutil.c
> +++ b/common/miiphyutil.c
> @@ -107,6 +107,18 @@ int mdio_register(struct mii_dev *bus)
>         return 0;
>  }
>
> +int mdio_register_seq(struct mii_dev *bus, int seq)
> +{
> +       int ret;
> +
> +       /* Setup a unique name for each mdio bus */
> +       ret = snprintf(bus->name, MDIO_NAME_LEN, "eth%d", seq);
> +       if (ret < 0)
> +               return ret;
> +
> +       return mdio_register(bus);
> +}
> +
>  int mdio_unregister(struct mii_dev *bus)
>  {
>         if (!bus)
> diff --git a/include/miiphy.h b/include/miiphy.h
> index 83141b4a6ae1..df371425441d 100644
> --- a/include/miiphy.h
> +++ b/include/miiphy.h
> @@ -48,6 +48,7 @@ void miiphy_listdev(void);
>  struct mii_dev *mdio_alloc(void);
>  void mdio_free(struct mii_dev *bus);
>  int mdio_register(struct mii_dev *bus);
> +int mdio_register_seq(struct mii_dev *bus, int seq);

Please can you add a comment for this function?

>  int mdio_unregister(struct mii_dev *bus);
>  void mdio_list_devices(void);
>
> --
> 1.9.1
>

Regards,
Simon


More information about the U-Boot mailing list