cvs commit: src/sys/dev/mii nsphy.c

Marius Strobl marius at
Mon Nov 27 21:35:47 PST 2006

marius      2006-11-28 01:01:02 UTC

  FreeBSD src repository

  Modified files:
    sys/dev/mii          nsphy.c 
  - Don't add IFM_NONE when used in combination with pcn(4) as for MII
    loopback to work PCnet chips additionally need to be placed into
    external loopback mode which pcn(4) doesn't do so far.
  - In nsphy_service() just use if_dname instead of determining the name
    of the parent NIC via device_get_name(device_get_parent(sc->mii_dev)).
  - Don't set MIIF_NOISOLATE, except for when used in combination with a
    NIC that wedges when isolating the PHYs, so nsphy(4) can be used in
    configurations with multiple PHYs.
  - Use mii_phy_add_media() instead of mii_add_media() so the latter can
    be eventually retired.
  - Take advantage of mii_phy_setmedia() (requires the MIIF_FORCEANEG
    added in sys/dev/mii/mii_physubr.c 1.26, sys/dev/mii/miivar.h 1.19).
  - Implement a separate nsphy_reset(). There are two reasons for this:
    1) This PHY can take an inordinate amount of time to reset if media
       is attached; under fairly normal circumstances up to nearly one
       second. This is because it appears to go through an implicit auto-
       negotiation cycle as part of the reset.
    2) During reset and auto-negotiation, the BMCR will clear the reset
       bit before the process is complete. It will return 0 until the
       process is complete and it's safe to access the PHY again.
    This is the first of two changes required to make the combination of
    Am79c971 and DP83840A found on certain HP cards and on-board in IBM
    machines work.
  - Fix some whitespace nits.
  Based on:       NetBSD (except for the first and second item)
  MFC after:      2 weeks
  Revision  Changes    Path
  1.26      +77 -49    src/sys/dev/mii/nsphy.c

More information about the cvs-src mailing list