freebsd-skq/sys
marius 278d761d73 o Flesh out the generic IEEE 802.3 annex 31B full duplex flow control
support in mii(4):
  - Merge generic flow control advertisement (which can be enabled by
    passing by MIIF_DOPAUSE to mii_attach(9)) and parsing support from
    NetBSD into mii_physubr.c and ukphy_subr.c. Unlike as in NetBSD,
    IFM_FLOW isn't implemented as a global option via the "don't care
    mask" but instead as a media specific option this. This has the
    following advantages:
    o allows flow control advertisement with autonegotiation to be
      turned on and off via ifconfig(8) with the default typically
      being off (though MIIF_FORCEPAUSE has been added causing flow
      control to be always advertised, allowing to easily MFC this
      changes for drivers that previously used home-grown support for
      flow control that behaved that way without breaking POLA)
    o allows to deal with PHY drivers where flow control advertisement
      with manual selection doesn't work or at least isn't implemented,
      like it's the case with brgphy(4), e1000phy(4) and ip1000phy(4),
      by setting MIIF_NOMANPAUSE
    o the available combinations of media options are readily available
      from the `ifconfig -m` output
  - Add IFM_FLOW to IFM_SHARED_OPTION_DESCRIPTIONS and IFM_ETH_RXPAUSE
    and IFM_ETH_TXPAUSE to IFM_SUBTYPE_ETHERNET_OPTION_DESCRIPTIONS so
    these are understood by ifconfig(8).
o Make the master/slave support in mii(4) actually usable:
  - Change IFM_ETH_MASTER from being implemented as a global option via
    the "don't care mask" to a media specific one as it actually is only
    applicable to IFM_1000_T to date.
  - Let mii_phy_setmedia() set GTCR_MAN_MS in IFM_1000_T slave mode to
    actually configure manually selected slave mode (like we also do in
    the PHY specific implementations).
  - Add IFM_ETH_MASTER to IFM_SUBTYPE_ETHERNET_OPTION_DESCRIPTIONS so it
    is understood by ifconfig(8).
o Switch bge(4), bce(4), msk(4), nfe(4) and stge(4) along with brgphy(4),
  e1000phy(4) and ip1000phy(4) to use the generic flow control support
  instead of home-grown solutions via IFM_FLAGs. This includes changing
  these PHY drivers and smcphy(4) to no longer unconditionally advertise
  support for flow control but only if the selected media has IFM_FLOW
  set (or MIIF_FORCEPAUSE is set) and implemented for these media variants,
  i.e. typically only for copper.
o Switch brgphy(4), ciphy(4), e1000phy(4) and ip1000phy(4) to report and
  set IFM_1000_T master mode via IFM_ETH_MASTER instead of via IFF_LINK0
  and some IFM_FLAGn.
o Switch brgphy(4) to add at least the the supported copper media based on
  the contents of the BMSR via mii_phy_add_media() instead of hardcoding
  them. The latter approach seems to have developed historically, besides
  causing unnecessary code duplication it was also undesirable because
  brgphy_mii_phy_auto() already based the capability advertisement on the
  contents of the BMSR though.
o Let brgphy(4) set IFM_1000_T master mode on all supported PHY and not
  just BCM5701. Apparently this was a misinterpretation of a workaround
  in the Linux tg3 driver; BCM5701 seem to require RGPHY_1000CTL_MSE and
  BRGPHY_1000CTL_MSC to be set when configuring autonegotiation but
  this doesn't mean we can't set these as well on other PHYs for manual
  media selection.
o Let ukphy_status() report IFM_1000_T master mode via IFM_ETH_MASTER so
  IFM_1000_T master mode support now is generally available with all PHY
  drivers.
o Don't let e1000phy(4) set master/slave bits for IFM_1000_SX as it's
  not applicable there.

Reviewed by:	yongari (plus additional testing)
Obtained from:	NetBSD (partially), OpenBSD (partially)
MFC after:	2 weeks
2010-11-14 13:26:10 +00:00
..
amd64 Move identical copies of apm_bios.h to sys/x86/include, replace them with 2010-11-11 19:36:21 +00:00
arm Add a GPIO driver for the Gateworks Cambria platform. 2010-11-11 20:18:33 +00:00
boot Fix the jump location. 2010-11-14 08:31:02 +00:00
bsm
cam When requesting sense data for SIM not doing it automatically (such as 2010-11-08 15:59:41 +00:00
cddl Disable VFS_HOLD placed on mnt_vnodecovered during the mount of a snapshot 2010-11-13 21:09:18 +00:00
compat According to specs for MmAllocateContiguousMemorySpecifyCache() physically 2010-11-11 18:43:31 +00:00
conf Let the linker pick the right output format automatically 2010-11-13 18:38:35 +00:00
contrib o) Recognize the Lanner MR-730. 2010-11-08 21:22:55 +00:00
crypto Change two missed instances of 'retq' in aeskeys_i386.S to 'retl', which 2010-10-13 17:55:53 +00:00
ddb
dev o Flesh out the generic IEEE 802.3 annex 31B full duplex flow control 2010-11-14 13:26:10 +00:00
fs Remove unused includes of <sys/mutex.h> and <machine/mutex.h>. 2010-11-09 20:41:10 +00:00
gdb there must be only one SYSINIT with SI_SUB_RUN_SCHEDULER+SI_ORDER_ANY order 2010-09-30 17:05:23 +00:00
geom Fix regression introduced in r215088: gpart(8) reports 2010-11-11 12:13:41 +00:00
gnu The r184588 changed the layout of struct export_args, causing an ABI 2010-10-10 07:05:47 +00:00
i386 MFamd64: (based on) r209957 2010-11-12 20:55:14 +00:00
ia64 - Remove <machine/mutex.h>. Most of the headers were empty, and the 2010-11-09 20:46:41 +00:00
isa bus_add_child: change type of order parameter to u_int 2010-09-10 11:19:03 +00:00
kern Fix style(9) issues from r215281 and r215282. 2010-11-14 08:06:29 +00:00
kgssapi
libkern Make the RPC specific __rpc_inet_ntop() and __rpc_inet_pton() general 2010-09-24 15:01:45 +00:00
mips Remove the 'machine mips' from DEFAULTS. Put the proper 'machine mips 2010-11-13 22:34:12 +00:00
modules Correct mips/arm elimination of sym 2010-11-13 20:28:06 +00:00
net o Flesh out the generic IEEE 802.3 annex 31B full duplex flow control 2010-11-14 13:26:10 +00:00
net80211 The ni_rctls checks are used to verify that a ratectl algo has set up 2010-11-14 09:59:52 +00:00
netatalk
netgraph When calling panic(), always pass a format string. 2010-10-13 17:21:21 +00:00
netinet Fix a locking issue reported by brucec@ affecting 2010-11-13 12:52:44 +00:00
netinet6 Make the IPsec SADB embedded route cache a union to be able to hold both the 2010-10-23 20:35:40 +00:00
netipsec Announce both IPsec and UDP Encap (NAT-T) if available for 2010-10-30 18:52:44 +00:00
netipx
netnatm
netncp
netsmb
nfs Fix the type of the 3rd argument for nm_getinfo so that it works 2010-10-19 11:55:58 +00:00
nfsclient Add missing "readahead" to the nfs_opts list. 2010-10-27 14:08:37 +00:00
nfsserver Fix a bug in r214049. The nvp == vp case shall be handled specially 2010-11-05 21:13:16 +00:00
nlm Modify the NFS clients and the NLM so that the NLM can be used 2010-10-19 00:20:00 +00:00
opencrypto Let cryptosoft(4) add its pseudo-device with a specific unit number and its 2010-11-14 13:09:32 +00:00
pc98 Move identical copies of apm_bios.h to sys/x86/include, replace them with 2010-11-11 19:36:21 +00:00
pci Remove standard PCI configuration space register definitions. 2010-11-08 22:10:51 +00:00
powerpc Partially revert r215182. There appears to be a silicon bug on the 970 2010-11-12 20:26:34 +00:00
rpc Fix the krpc so that it can handle NFSv3,UDP mounts with a read/write 2010-10-13 00:57:14 +00:00
security Fix typos. 2010-11-09 10:59:09 +00:00
sparc64 Enable reservation-based physical memory allocation. Even without the 2010-11-10 17:57:34 +00:00
sun4v Fix a few more places to use cpumask_t rather than 'u_int'. These are 2010-11-11 16:06:47 +00:00
sys Make POLL_ERR and POLL_HUP different. 2010-11-12 15:30:49 +00:00
teken Partially implement the mysterious cons25 \e[x escape sequence. 2010-11-05 00:56:21 +00:00
tools Add an extra comment to the SDT probes definition. This allows us to get 2010-08-22 11:18:57 +00:00
ufs The softdep_setup_freeblocks() adds worklist items before 2010-11-11 11:54:01 +00:00
vm Enable reservation-based physical memory allocation. Even without the 2010-11-10 17:57:34 +00:00
x86 Move identical copies of apm_bios.h to sys/x86/include, replace them with 2010-11-11 19:36:21 +00:00
xdr
xen Improve the Xen para-virtualized device infrastructure of FreeBSD: 2010-10-19 20:53:30 +00:00
Makefile