cvs commit: src/sys/pci if_pcn.c if_pcnreg.h

Marius Strobl marius at FreeBSD.org
Mon Nov 27 21:35:32 PST 2006


marius      2006-11-28 01:33:18 UTC

  FreeBSD src repository

  Modified files:
    sys/pci              if_pcn.c if_pcnreg.h 
  Log:
  - Clear the PCN_MISC_ASEL bit so the media port can be actually set
    via the PCN_CSR_MODE register. Along with sys/dev/mii/nsphy.c 1.26
    this fixes the case of certain Am79c971-based HP cards and on-board
    ones in IBM machines reporting link but not actually passing any
    traffic. [1]
  - Add support for the internal 10baseT PHY, which actually is used on
    at least said HP cards (together with an external DP83840A in a
    multiple PHYs configuration). With cards that don't make use of this
    internal PHY it'll also show up in FreeBSD but not cause any harm.
    This is still missing support for multiple PHYs configuration using
    the internal 100baseTX and/or HomePNA PHYs together with external
    PHYs or multiple external PHYs though.
  - In pcn_ifmedia_upd() call pcn_reset() as otherwise the Am79C971 of
    at least said HP cards can wedge when switching from the internal
    10baseT PHY to the external PHY. This means that we need to also
    initialize and possibly start the chip again in pcn_ifmedia_upd(),
    which isn't that bad though as for setting the media port the chip
    has to be powered down or stopped anyway and unlike documented
    doesn't take effect until the next initialization.
  
  PR:             27995, 25959, 72966 (likely) [1]
  MFC after:      2 weeks
  
  Revision  Changes    Path
  1.81      +66 -12    src/sys/pci/if_pcn.c
  1.15      +8 -4      src/sys/pci/if_pcnreg.h


More information about the cvs-src mailing list