[U-Boot] [PATCH v3 0/8] Universal PHY Infrastructure

Andy Fleming afleming at freescale.com
Fri Apr 8 04:55:59 CEST 2011


Or PHY Lib for U-Boot.

This sequence of patches adds infrastructure for universally-available PHY
drivers (and MDIO drivers).  It piggy-backs on the existing miiphy code, for
backwards compatibility, but it also creates a new set of APIs. This was
necessary partly to provide cleaner interfaces for more robust driver
support, and partly because one goal was to support 10G (802.3 Clause 45) MDIO
buses, which has an extra argument for addressing PHY registers.

Special thanks goes to Mingkai Hu, who did a substantial amount
of work up front to convert the tsec PHY code into something more usable,
which I have mostly copied for the purposes of PHY Lib.

In this version, I cleaned up all of the comments, separated out some of the
changes which were just formatting, and brought back the mdio command.

The new mdio command loses the "busname:addr" addressing mechanism, as
"busname addr" felt more natural to me (though I expect most people will
go with "ethname", as the ethernet names are much more visible.  In addition,
the <devad> argument is now optional by way of being combined with the reg
argument: [<devad>.]<regnum>.  This makes sense, as this is also how the
registers are described in the specs and in the data sheets. ie:

Register 7.1 - AN Status

I've put the relevant changelogs in the patches.  Enjoy!

Andy Fleming (6):
  Remove instances of phy_read/write
  miiphy: Fix some formatting issues
  Create PHY Lib for U-Boot
  phylib: Add a bunch of PHY drivers from tsec
  tsec: Convert tsec to use PHY Lib
  Add mdio command for new PHY infrastructure

Mingkai Hu (2):
  tsec: use IO accessors for IO accesses
  tsec: arrange the code to avoid useless function declaration

 arch/powerpc/include/asm/config.h         |    7 +
 arch/powerpc/include/asm/fsl_enet.h       |   10 +
 board/freescale/mpc837xemds/mpc837xemds.c |    7 +
 board/freescale/mpc8536ds/mpc8536ds.c     |    6 +
 board/freescale/mpc8544ds/mpc8544ds.c     |   30 +
 board/freescale/mpc8572ds/mpc8572ds.c     |    6 +
 board/freescale/p1022ds/p1022ds.c         |    6 +
 board/freescale/p1_p2_rdb/p1_p2_rdb.c     |    6 +
 board/freescale/p2020ds/p2020ds.c         |    7 +
 common/Makefile                           |    4 +
 common/cmd_mdio.c                         |  286 +++++
 common/miiphyutil.c                       |  309 +++--
 drivers/net/Makefile                      |    2 +-
 drivers/net/dm9000x.c                     |   18 +-
 drivers/net/enc28j60.c                    |   24 +-
 drivers/net/fsl_mdio.c                    |  120 ++
 drivers/net/phy/Makefile                  |   13 +
 drivers/net/phy/atheros.c                 |   48 +
 drivers/net/phy/broadcom.c                |  286 +++++
 drivers/net/phy/davicom.c                 |   98 ++
 drivers/net/phy/generic_10g.c             |   99 ++
 drivers/net/phy/lxt.c                     |   87 ++
 drivers/net/phy/marvell.c                 |  376 ++++++
 drivers/net/phy/micrel.c                  |   40 +
 drivers/net/phy/natsemi.c                 |   96 ++
 drivers/net/phy/phy.c                     |  670 ++++++++++
 drivers/net/phy/realtek.c                 |  130 ++
 drivers/net/phy/teranetics.c              |   59 +
 drivers/net/phy/vitesse.c                 |  242 ++++
 drivers/net/tsec.c                        | 1992 ++++-------------------------
 drivers/net/uli526x.c                     |   24 +-
 drivers/qe/uec.c                          |    3 -
 drivers/qe/uec_phy.c                      |  145 ++-
 include/config_phylib_all_drivers.h       |   32 +
 include/fsl_mdio.h                        |   62 +
 include/linux/ethtool.h                   |  794 ++++++++++++
 include/linux/mdio.h                      |  275 ++++
 include/miiphy.h                          |   53 +-
 include/phy.h                             |  200 +++
 include/tsec.h                            |  302 +----
 net/eth.c                                 |    6 +
 41 files changed, 4766 insertions(+), 2214 deletions(-)
 create mode 100644 common/cmd_mdio.c
 create mode 100644 drivers/net/fsl_mdio.c
 create mode 100644 drivers/net/phy/atheros.c
 create mode 100644 drivers/net/phy/broadcom.c
 create mode 100644 drivers/net/phy/davicom.c
 create mode 100644 drivers/net/phy/generic_10g.c
 create mode 100644 drivers/net/phy/lxt.c
 create mode 100644 drivers/net/phy/marvell.c
 create mode 100644 drivers/net/phy/micrel.c
 create mode 100644 drivers/net/phy/natsemi.c
 create mode 100644 drivers/net/phy/phy.c
 create mode 100644 drivers/net/phy/realtek.c
 create mode 100644 drivers/net/phy/teranetics.c
 create mode 100644 drivers/net/phy/vitesse.c
 create mode 100644 include/config_phylib_all_drivers.h
 create mode 100644 include/fsl_mdio.h
 create mode 100644 include/linux/ethtool.h
 create mode 100644 include/linux/mdio.h
 create mode 100644 include/phy.h




More information about the U-Boot mailing list