Home | History | Annotate | Download | only in net
History log of /src/sys/net/if_media.h
RevisionDateAuthorComments
 1.72  18-Apr-2024  andvar s/resoure/resource/ in comments.
 1.71  15-Mar-2020  thorpej Define and implement a locking protocol for the ifmedia / mii layers:
- MP-safe drivers provide a mutex to ifmedia that is used to serialize
access to media-related structures / hardware regsiters. Converted
drivers use the new ifmedia_init_with_lock() function for this. The
new name is provided to ease the transition.
- Un-converted drivers continue to call ifmedia_init(), which will supply
a compatibility lock to be used instead. Several media-related entry
points must be aware of this compatibility lock, and are able to acquire
it recursively a limited number of times, if needed. This is a SPIN
mutex with priority IPL_NET.
- This same lock is used to serialize access to PHY registers and other
MII-related data structures.

The PHY drivers are modified to acquire and release the lock, as needed,
and assert the lock is held as a diagnostic aid.

The "usbnet" framework has had an overhaul of its internal locking
protocols to fit in with the media / mii changes, and the drivers adapted.

USB wifi drivers have been changed to provide their own adaptive mutex
to the ifmedia later via a new ieee80211_media_init_with_lock() function.
This is required because the USB drivers need an adaptive mutex.

Besised "usbnet", a few other drivers are converted: vmx, wm, ixgbe / ixv.

mcx also now calls ifmedia_init_with_lock() because it needs to also use
an adaptive mutex. The mcx driver still needs to be fully converted to
NET_MPSAFE.
 1.70  17-Feb-2020  msaitoh - Remove 50GBASE-LR10.
- Add the following medias:
- 25GBASE-ACC
- 100GBASE-ACC
- 100GBASE-AOC
- 100GBASE-FR
- 100GBASE-LR
- 200GBASE-ER4
- 400GBASE-ER8
- 400GBASE-FR4
- 400GBASE-LR4
- 400GBASE-SR4.2
- 400GBASE-SR8
 1.69  01-Feb-2020  thorpej - Add an ifmedia_fini() routine, to free resources assocated with
an ifmedia. Currently calls ifmedia_removeall(). All drivers
that call ifmedia_init() and support detach should call this
routine.
- In ifmedia_delete_instance(), set ifm->ifm_cur to NULL and
ifm->ifm_media to IFM_NONE when removing / freeing that entry,
not simply when we've been asked to delete every media instance.
 1.68  05-Dec-2019  msaitoh branches: 1.68.2;
Fix previous comment change for ifm_media. It was correct.

The real problem is that some driver misuse ifm_media as the current active
media. struct mii_data has the current active media(mii_media_active). If a
driver use mii(4), it can be use mii->mii_media_active for this purpose.
struct ifmedia has no entry for this purpose. Some drivers have an entry
in their own softc to keep the value, but some other's don't have it and
they mistakenly use ifm_media.

We might add a new entry to struct ifmedia in future to avoid this confusion
and for simplify.
 1.67  28-Nov-2019  msaitoh Fix comment. The ifm_media member of struct ifmedia is NOT user-set media
word but the current "active" media.

The user-set media word is one of the ifmedia_entry's ifm_media(A) that
ifm_cur points to (e.g. IFM_AUTO). It can be taken as ifmediareq's ifm_current
entry. The current active media word is the ifm_media(B) entry of struct
ifmedia (e.g 1000baseTX-FDX as the result of auto negotiation). It can be
taken as ifmediareq's ifm_active entry.

struct ifmedia_entry {
TAILQ_ENTRY(ifmedia_entry) ifm_list;
u_int ifm_media; /* IFMWD: description of this media */ /* A */
u_int ifm_data; /* for driver-specific use */
void *ifm_aux; /* for driver-specific use */
};

struct ifmedia {
u_int ifm_mask; /* IFMWD: mask of changes we don't care */
u_int ifm_media; /* IFMWD: current active media word */ /* B */
struct ifmedia_entry *ifm_cur; /* current user-selected media */
TAILQ_HEAD(, ifmedia_entry) ifm_list; /* list of all supported media */
ifm_change_cb_t ifm_change; /* media change driver callback */
ifm_stat_cb_t ifm_status; /* media status driver callback */
};

So:

in kernel SIOCGIFMEDIA(ifmediareq)
-----------------------------------------------------------------
user-setting: ifm->ifm_cur->ifm_media ifm_current
current active: ifm->ifm_media ifm_active

It would be good to rename some members to make those meaning clear.
 1.66  03-Oct-2019  jmcneill Add IFM_IEEE80211_VHT subtype, IFM_IEEE80211_11AC operating mode, and missing descriptions
 1.65  17-May-2019  msaitoh branches: 1.65.2;
The max subtype of the ifmedia word is 31. It's too small for Ethernet now.
We currently use use it up to 30. We should extend the limit to be able to use
more than 10Gbps speeds. Our ifmedia(4) is inconvenience and have some problem
so we should redesign the interface, but it's too late for netbsd-9 to do it.
So, we keep the data structure size and modify the structure a bit. The
strategy is almost the same as FreeBSD. Many bits of IFM_OMASK for Ethernet
have not used, so use some of them for Ethernet's subtype.

The differences against FreeBSD are:
- We use NetBSD style compat code (i.e. no SIOCGIFXMEDIA).
- FreeBSD's IFM_ETH_XTYPE's bit location is from 11 to "14" even though
IFM_OMASK is from 8 to "15". We use _IFM_ETH_XTMASK from bit 13 to "15".
- FreeBSD changed the meaning of IFM_TYPE_MATCH(). I think we should
not do it. We keep it not changing and added new IFM_TYPE_SUBTYPE_MATCH()
macro for matching both TYPE and SUBTYPE.
- Added up to 400GBASE-SR16.

New layout of the media word is as follows (from ifmedia_h):

* if_media Options word:
* Bits Use
* ---- -------
* 0-4 Media subtype MAX SUBTYPE == 255 for ETH and 31 for others
* 5-7 Media type
* 8-15 Type specific options
* 16-18 Mode (for multi-mode devices)
* 19 (Reserved for Future Use)
* 20-27 Shared (global) options
* 28-31 Instance
*
* 3 2 1
* 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0
* +-------+---------------+-+-----+---------------+-----+---------+
* | | |R| | | | |
* | IMASK | GMASK |F|MMASK+-----+ OMASK |NMASK| TMASK |
* | | |U| |XTMSK| | | |
* +-------+---------------+-+-----+-----+---------+-----+---------+
* <-----> <---> <--->
* IFM_INST() IFM_MODE() IFM_TYPE()
*
* IFM_SUBTYPE(other than ETH)<------->
*
* <---> IFM_SUBTYPE(ETH)<------->
*
*
* <-------------> <------------->
* IFM_OPTIONS()
 1.64  10-May-2019  msaitoh Remove extra parenthesis.
 1.63  24-Apr-2019  msaitoh No functional change:
- IFM_AVALID and IFM_ACTIVE are NOT for the media word. Fix comment.
- RFU stands for Reserved for Future Use.
 1.62  17-Apr-2019  msaitoh Tabify. No functional change.
 1.61  04-Oct-2017  msaitoh branches: 1.61.4;
Add 2.5GBASE-T and 5GBASE-T.
 1.60  04-Oct-2017  msaitoh All Ethernet media more than 1000Mbps don't support half duplex.
For the convinience, ifconfig without "mediaopt fullduplex" sets IFM_FDX
automatically for those medias. Without this change, "ifconfig xxN mediaopt
10Gbase-T" (without "mediaopt fullduplex") returns EINVAL if a
driver doesn't call ifmedia_add() without IFM_FDX because ifmedia_match()
returns NULL.
 1.59  08-Jun-2017  msaitoh - Add some missing baudrate entries
- Add 1000BASE-KX and 2500BASE-KX
 1.58  05-Jun-2017  msaitoh No functional change:
- Relocate definitions in the following order to be easy to understand.
0) IFM_*MASK
1) macros to extract various bits of information from the media word.
2) Media type.
3) Shared media sub-type.
4) Status bits.
5) Shared (global) options
6) Media dependent definitions.
7) kernel function declarations.
7) userland function declarations.
- Add comments.

This change makes me realize that:
0) RFU bit have never used.
1) bit 1..0 are shared between Shared media sub-type and Status bits.
It's little dangerous.
2) No. 5 of Media type is not used (hole).
3) Only IEEE80211 uses IFM_MMASK(IFM_MODE()) bits.
4) IFM_TOKEN's OMASK bits doesn't start from 0x00000100 but starts from
0x00000200. Is this for BSD/OS compatibility?
 1.57  14-Sep-2016  roy branches: 1.57.8;
Introduce IFM_GENERIC.
This allows use of the media interface, but without media as such.
It's sole purpose is to facilitate the reporting of the link status.
 1.56  25-Oct-2012  msaitoh branches: 1.56.14; 1.56.18;
Add 1000baseT-FDX.
 1.55  20-Feb-2011  cegger branches: 1.55.4; 1.55.14;
add MBSS. From FreeBSD.
 1.54  26-Jan-2011  dyoung Add some 10-gigabit media words used by Intel 82599.
 1.53  05-Oct-2009  dyoung branches: 1.53.4; 1.53.6; 1.53.8;
Replace u_quad_t with uint64_t. u_quad_t is just a typedef for
uint64_t, so no ABI/API breakage will result from this change.
 1.52  12-Aug-2009  msaitoh Add 1000BASE-BX10.
 1.51  09-Sep-2008  mhitch Add support for SerDes controllers; from the OpenBSD driver. Tested on a
Dell Blade server by me, and an HP Blade server by Havard.
 1.50  15-Jun-2008  christos branches: 1.50.2;
- Add more definitions from FreeBSD
- Add ifmedia_removeall from FreeBSD
 1.49  28-Apr-2008  martin branches: 1.49.2; 1.49.4;
Remove clause 3 and 4 from TNF licenses
 1.48  13-Feb-2008  skrll branches: 1.48.4; 1.48.6; 1.48.8; 1.48.10;
CARP is Common *Address* Redundancy Protocol
 1.47  10-Jan-2008  dyoung Add a helper subroutine for ethernet drivers, ifmedia_change().
 1.46  03-Jun-2006  ragge branches: 1.46.32; 1.46.38; 1.46.46;
Add IFM_10G_SR and IFM_10G_CX4, to keep in sync with FreeBSD.
Kindly requested by Gleb Smirnoff at FreeBSD.
 1.45  18-May-2006  liamjfoy branches: 1.45.2;
Integrate Common Address Redundancy Procotol (CARP) from OpenBSD

'pseudo-device carp'

Thanks to: joerg@ christos@ riz@ and others who tested
Ok: core@
 1.44  08-Mar-2006  lukem branches: 1.44.2;
Use the SI capitalization for "Hz", "kHz", and "MHz" in comments and strings.
Add a space between numbers and Hz unit.
 1.43  10-Dec-2005  elad branches: 1.43.4; 1.43.6; 1.43.8; 1.43.10;
Multiple inclusion protection, as suggested by christos@ on tech-kern@
few days ago.
 1.42  11-Nov-2004  dsl branches: 1.42.12;
Add prototypes for functions that convert media to/from strings.
In libutil/if_media.c (moved from ifconfig.c so that they can be shared
in crunched binaries)
 1.41  16-Oct-2004  dsl Put spaces either side of '|' for clarity ('|' looks too much like 'I' or 'l')
 1.40  09-Apr-2004  thorpej De-__P'ify.
 1.39  09-Apr-2004  thorpej Add flow control-related media bits / descriptions.

From HITOSHI Osada.
 1.38  10-Mar-2004  keihan branches: 1.38.4;
Add 10GBASE-LR to IFM_10G_LR.
 1.37  19-Feb-2004  ragge Add media type 10GbaseLR. Change ifmb_baudrate and ifmedia_baudrate()
to u_quad_t instead of int (common speed today exceeds 2Gbit).
 1.36  13-Oct-2003  dyoung Add constants and strings for 802.11 radios with OFDM PHY (802.11a,
802.11g).

Add constants and strings for multi-mode devices (a/b/g).

From FreeBSD/Sam Leffler.
 1.35  08-Jul-2003  itojun prototype must not have variable name
 1.34  23-Apr-2003  bjh21 branches: 1.34.2;
Accept standard IEEE 802.3 names for Ethernet medium types.
Suggested by Christos, IIRC.
 1.33  25-Feb-2003  dyoung Add support for Prism monitor mode. From Kevin Lahey
<kml@patheticgeek.net>.

This patch does NOT add monitor mode support for the Lucent radios.

awi(4) was only modified for compatibility with the new mediaopt.
It does NOT support monitor mode.

Tested by Kevin, Daniel Carosone, and I.
 1.32  07-Nov-2002  thorpej Fix more signed/unsigned comparison warnings.
 1.31  07-Nov-2002  thorpej Make ifm_data unsigned.
 1.30  07-Nov-2002  thorpej Make media and mask unsigned.
 1.29  27-Sep-2002  onoe Change ifmb_baudrate for IFM_IEEE80211_DS5: 5Mbps -> 5.5Mbps
 1.28  21-Aug-2002  onoe Delete IFM_IEEE80211_IBSS [ibss] and IFM_IEEE80211_IBSSMASTER [ibss-master]
from media options, since IEEE80211_ADHOC [adhoc] is already defined for
IBSS. Instead, [ibss] is assigned as an alias for IEEE80211_ADHOC.
 1.27  10-Aug-2002  thorpej Add "hostap", "ibss", and "ibss-master" 802.11 media options.

From OpenBSD.
 1.26  30-Jun-2001  kleink branches: 1.26.2; 1.26.14;
Rename an IFM_1000_TX occurrence missed in previous.
 1.25  30-Jun-2001  bjh21 IFM_1000_TX -> IFM_1000_T, as (breifly) discussed on tech-net.
 1.24  31-May-2001  thorpej Add an Ethernet option bit for master mode (for 1000baseTX, the link
master provides the clock -- this is normally the switch, but if you
are doing back-to-back NICs, you need to tell one side to be the master).
 1.23  06-Mar-2000  thorpej branches: 1.23.6;
Add ifmedia_baudrate(), which returns a value suitable for ifi_baudrate
given a media word, or 0 for unknown.
 1.22  17-Feb-2000  sommerfeld More 802.11 subtypes: there's also 1MB/s DS
(the BayStack 660 firmware claims to support it).
 1.21  16-Feb-2000  thorpej Fix TMASK to use all 5 lower bits of the media word, and add HomePNA 1.0.
 1.20  26-Jan-2000  thorpej Add a way to delete all media for a specified instance.
 1.19  25-Jan-2000  thorpej IFM_1000_FX -> IFM_1000_SX, like it's supposed to be, and add a few
more gigabit Ethernet tyes from FreeBSD.
 1.18  25-Jan-2000  thorpej Define some convenience information and tables related to ifmedia status
bits for ifconfig(8).
 1.17  24-Jan-2000  augustss Fix a typo.
 1.16  23-Jan-2000  chopps add 802.11 media types
 1.15  03-Nov-1999  thorpej Make the ifmedia_entry list a TAILQ. This is pretty much for cosmetics
(media added to tail, so that when e.g. the list is run to print out
what media exist, they appear in-order).
 1.14  27-Oct-1999  thorpej Expose the ifmedia_match() function.
 1.13  23-Mar-1999  thorpej branches: 1.13.2; 1.13.8; 1.13.10; 1.13.12;
Add a new shared media option, IFM_FLOW, used to enable link-level
flow control. IEEE 802.3x is in mind, but this could be generally
useful for different types of media.
 1.12  02-Nov-1998  thorpej Add "10baseT-FDX" and "100baseTX-FDX" aliases to the end of the subtype
table. These are actually subtype+option combos, but these are the
strings displayed by the MII code to indicate 10Mbps full-duplex and
100Mbps full-duplex respectively, and it's Nice that ifconfig(8) can
grok them.
 1.11  12-Aug-1998  thorpej Oops, I forgot aliases for some old names (10baseT/UTP, 10base2/BNC,
and 10base5/AUI).
 1.10  08-Aug-1998  thorpej Define IFM_INST_MAX, the largest possible "instance" value.
 1.9  06-Aug-1998  thorpej Define the minimum and maximum "network type" values. These values are
incremented by the minimum to interate through them.
 1.8  06-Aug-1998  thorpej Add a macro to create a media word from type, subtype, options, and instance.
 1.7  06-Aug-1998  thorpej Completely rewrite the way media descriptions are represented. The same
data structure is used, but a much saner matching mechanism is used, one
which allows greater ease in adding new types.
 1.6  03-Aug-1998  thorpej Add IFM_10_FL - 10baseFL (fiber)
 1.5  30-Jan-1998  jtc Fix tipo
 1.4  30-Jan-1998  thorpej Add 1000baseFX and 10baseT/STP Ethernet media types.
 1.3  26-Mar-1997  thorpej Back out the previous change (add IFM_10_EXT) after some dicussion
w/ BSDI and Matt Thomas.
 1.2  24-Mar-1997  thorpej Add the IFM_10_EXT ("external") ethernet subtype, to accomodate cards
that have the notion of an "external media port". Suggested by
Matt Thomas <matt@3am-software.com>.
 1.1  17-Mar-1997  thorpej BSD/OS-style network interface media selection, implemented by
Jonathan Stone and myself. Many thanks to Matt Thomas for providing
the information necessary to implement this interface, and for helping
to shake out the bugs.
 1.13.12.1  27-Dec-1999  wrstuden Pull up to last week's -current.
 1.13.10.1  15-Nov-1999  fvdl Sync with -current
 1.13.8.1  20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
 1.13.2.1  11-May-2000  he Pull up revisions 1.16-1.17,1.19,1.21-1.23 (requested by jhawk):
Add a driver for ``wi'', Lucent "Orinoco"/Wavelan.
 1.23.6.6  11-Nov-2002  nathanw Catch up to -current
 1.23.6.5  18-Oct-2002  nathanw Catch up to -current.
 1.23.6.4  27-Aug-2002  nathanw Catch up to -current.
 1.23.6.3  13-Aug-2002  nathanw Catch up to -current.
 1.23.6.2  24-Aug-2001  nathanw Catch up with -current.
 1.23.6.1  21-Jun-2001  nathanw Catch up to -current.
 1.26.14.1  29-Aug-2002  gehenna catch up with -current.
 1.26.2.2  10-Oct-2002  jdolecek sync kqueue with -current; this includes merge of gehenna-devsw branch,
merge of i386 MP branch, and part of autoconf rototil work
 1.26.2.1  06-Sep-2002  jdolecek sync kqueue branch with HEAD
 1.34.2.6  11-Dec-2005  christos Sync with head.
 1.34.2.5  14-Nov-2004  skrll Sync with HEAD.
 1.34.2.4  19-Oct-2004  skrll Sync with HEAD
 1.34.2.3  21-Sep-2004  skrll Fix the sync with head I botched.
 1.34.2.2  18-Sep-2004  skrll Sync with HEAD.
 1.34.2.1  03-Aug-2004  skrll Sync with HEAD
 1.38.4.1  24-Jul-2005  snj Pull up revision 1.42 (requested by riz in ticket #5518):
Add prototypes for functions that convert media to/from strings.
In libutil/if_media.c (moved from ifconfig.c so that they can be shared
in crunched binaries)
 1.42.12.3  27-Feb-2008  yamt sync with head.
 1.42.12.2  21-Jan-2008  yamt sync with head
 1.42.12.1  21-Jun-2006  yamt sync with head.
 1.43.10.1  19-Apr-2006  elad sync with head.
 1.43.8.3  26-Jun-2006  yamt sync with head.
 1.43.8.2  24-May-2006  yamt sync with head.
 1.43.8.1  13-Mar-2006  yamt sync with head.
 1.43.6.3  03-Jun-2006  kardel Sync with head.
 1.43.6.2  01-Jun-2006  kardel Sync with head.
 1.43.6.1  22-Apr-2006  simonb Sync with head.
 1.43.4.1  09-Sep-2006  rpaulo sync with head
 1.44.2.1  24-May-2006  tron Merge 2006-05-24 NetBSD-current into the "peter-altq" branch.
 1.45.2.1  19-Jun-2006  chap Sync with head.
 1.46.46.1  10-Jan-2008  bouyer Sync with HEAD
 1.46.38.1  18-Feb-2008  mjf Sync with HEAD.
 1.46.32.1  23-Mar-2008  matt sync with HEAD
 1.48.10.4  11-Mar-2010  yamt sync with head
 1.48.10.3  19-Aug-2009  yamt sync with head.
 1.48.10.2  04-May-2009  yamt sync with head.
 1.48.10.1  16-May-2008  yamt sync with head.
 1.48.8.2  17-Jun-2008  yamt sync with head.
 1.48.8.1  18-May-2008  yamt sync with head.
 1.48.6.3  28-Sep-2008  mjf Sync with HEAD.
 1.48.6.2  29-Jun-2008  mjf Sync with HEAD.
 1.48.6.1  02-Jun-2008  mjf Sync with HEAD.
 1.48.4.1  23-Feb-2008  skrll Merge from FreeBSD.
 1.49.4.1  18-Jun-2008  simonb Sync with head.
 1.49.2.2  24-Sep-2008  wrstuden Merge in changes between wrstuden-revivesa-base-2 and
wrstuden-revivesa-base-3.
 1.49.2.1  23-Jun-2008  wrstuden Sync w/ -current. 34 merge conflicts to follow.
 1.50.2.1  19-Oct-2008  haad Sync with HEAD.
 1.53.8.2  05-Mar-2011  bouyer Sync with HEAD
 1.53.8.1  08-Feb-2011  bouyer Sync with HEAD
 1.53.6.1  06-Jun-2011  jruoho Sync with HEAD.
 1.53.4.1  05-Mar-2011  rmind sync with head
 1.55.14.2  03-Dec-2017  jdolecek update from HEAD
 1.55.14.1  20-Nov-2012  tls Resync to 2012-11-19 00:00:00 UTC
 1.55.4.1  30-Oct-2012  yamt sync with head
 1.56.18.1  04-Nov-2016  pgoyette Sync with HEAD
 1.56.14.2  28-Aug-2017  skrll Sync with HEAD
 1.56.14.1  05-Oct-2016  skrll Sync with HEAD
 1.57.8.2  21-Nov-2017  martin Pull up following revision(s) (requested by msaitoh in ticket #366):
sys/net/if_media.h: revision 1.60
sys/net/if_media.h: revision 1.61
All Ethernet media more than 1000Mbps don't support half duplex.
For the convinience, ifconfig without "mediaopt fullduplex" sets IFM_FDX
automatically for those medias. Without this change, "ifconfig xxN mediaopt
10Gbase-T" (without "mediaopt fullduplex") returns EINVAL if a
driver doesn't call ifmedia_add() without IFM_FDX because ifmedia_match()
returns NULL.
Add 2.5GBASE-T and 5GBASE-T.
 1.57.8.1  04-Jul-2017  martin Pull up following revision(s) (requested by msaitoh in ticket #82):
sys/net/if_media.h: revision 1.58
sys/net/if_media.h: revision 1.59
No functional change:
- Relocate definitions in the following order to be easy to understand.
0) IFM_*MASK
1) macros to extract various bits of information from the media word.
2) Media type.
3) Shared media sub-type.
4) Status bits.
5) Shared (global) options
6) Media dependent definitions.
7) kernel function declarations.
7) userland function declarations.
- Add comments.
This change makes me realize that:
0) RFU bit have never used.
1) bit 1..0 are shared between Shared media sub-type and Status bits.
It's little dangerous.
2) No. 5 of Media type is not used (hole).
3) Only IEEE80211 uses IFM_MMASK(IFM_MODE()) bits.
4) IFM_TOKEN's OMASK bits doesn't start from 0x00000100 but starts from
0x00000200. Is this for BSD/OS compatibility?
- Add some missing baudrate entries
- Add 1000BASE-KX and 2500BASE-KX
 1.61.4.4  13-Apr-2020  martin Mostly merge changes from HEAD upto 20200411
 1.61.4.3  08-Apr-2020  martin Merge changes from current as of 20200406
 1.61.4.2  10-Jun-2019  christos Sync with HEAD
 1.61.4.1  12-Jul-2018  phil State save. New kernel config for this brach only. TESTWIFI does
produce a kernel. It is not working. athn files not compiling yet
and commented out of the TESTWIFI kernel, which only has urtwn 802.11
driver enabled. ieee80211_alq.c and ieee80211_ddb.c not compiling yet.
 1.65.2.2  19-Mar-2020  martin Pull up following revision(s) (requested by msaitoh in ticket #785):

sys/net/if_media.h: revision 1.70

- Remove 50GBASE-LR10.

- Add the following medias:
- 25GBASE-ACC
- 100GBASE-ACC
- 100GBASE-AOC
- 100GBASE-FR
- 100GBASE-LR
- 200GBASE-ER4
- 400GBASE-ER8
- 400GBASE-FR4
- 400GBASE-LR4
- 400GBASE-SR4.2
- 400GBASE-SR8
 1.65.2.1  25-Feb-2020  martin Pull up following revision(s) (requested by mrg in ticket #717):

sys/dev/fdt/dwcmmc_fdt.c 1.11
sys/dev/ic/bwfm.c 1.15-1.18
sys/dev/ic/bwfmreg.h 1.4-1.6
sys/dev/ic/bwfmvar.h 1.4,1.5
sys/dev/ic/dwc_mmc.c 1.21,1.22
sys/dev/ic/dwc_mmc_reg.h 1.8,1.9,1.12,1.13
sys/dev/pcmcia/pcmciareg.h 1.11
sys/dev/sdmmc/if_bwfm_sdio.c 1.4,1.6-1.12
sys/dev/sdmmc/if_bwfm_sdio.h 1.1,1.2
sys/dev/sdmmc/sdhc.c 1.105,1.106
sys/dev/sdmmc/sdmmc.c 1.37,1.39
sys/dev/sdmmc/sdmmc_cis.c 1.6,1.8
sys/dev/sdmmc/sdmmc_io.c 1.15-1.19
sys/dev/sdmmc/sdmmc_ioreg.h 1.4,1.5
sys/dev/sdmmc/sdmmc_mem.c 1.69-1.71
sys/dev/sdmmc/sdmmcdevs 1.5-1.8
sys/dev/sdmmc/sdmmcvar.h 1.31,1.33,1.34
sys/net/if_media.h 1.66

Add Broadcom devices
-
Fix typo
-
add PCMCIA_CISTPL_SDIO definition.
-
From OpenBSD:
- move event handling to workqueue
- check for save/restore capability
-
Tag work queue as MPsafe and increase length.
-
Juse use bpf_mtap(), the 802.11 encapsulation is handled by firmware.
-
From OpenBSD:
- support block length per function
- add functions to read/write regions
-
Decode (but not use) SDIO tuple in CIS.
-
Fix locking.
-
Add more SDIO defines (partially from version 3.0).
-
From OpenBSD:
- All the missing pieces (firmware load, chip setup, protocol handling)
TX queue and interrupt handling via sdmmc_task.
-
Fix locking.
-
Fix packet parsing.
-
Add parser for original firmware config files.
-
tagging work queue as MPSAFE was premature. Revert.
-
SD_IO_RW_EXTENDED is a data transfer command, so set ADTC flag instead of AC
Use correct function to verify if a task has been queued. Avoids race
that can corrupt the task queue.
-
More register definitions.
-
Add IFM_IEEE80211_VHT subtype, IFM_IEEE80211_11AC operating mode, and missing descriptions
-
If firmware is connected in HT or VHT mode, report it to SIOCGIFMEDIA
-
white space police.

Skip setting power when the voltage doesn't change.
Also increase some timeouts.
-
Add and use sdmmc_pause to avoid long-term busy waits.
-
Add sdio abort function.
-
Additional error messages.
-
Print parameters for SDIO devices.
-
Minor cosmetics.
-
Simplyfy sdmmc_io_set_blocklen function signature by dropping the
extra softc pointer. Aligns with OpenBSD.
-
Missing commit for sdio abort function.
-
More code from OpenBSD
-
no need to splnet() when enqueing packets
-
explicit structure padding
-
make internal functions static
-
also prepare for GPIO interrupts.
-
Avoid warnings for tautological shifts as sole conditional.
-
Follow the Linux driver an use the FDT "compatible" property to build a
filename for the nvram config file, fall back to the standard filename.
E.g.
[Caching 123 nodes and 1093 properties]
compatible 73696e6f 766f6970 2c627069 2d6d322d "sinovoip,bpi-m2-
0010: 7a65726f 00...... ........ ........ zero"
0015: 616c6c77 696e6e65 722c7375 6e38692d "allwinner,sun8i-
0025: 68322d70 6c757300 ........ ........ h2-plus"
interrupt-parent 00000001 ........ ........ ........ ....
model 42616e61 6e612050 69204250 492d4d32 "Banana Pi BPI-M2
0010: 2d5a6572 6f00.... ........ ........ -Zero"
name 00...... ........ ........ ........ ""
serial-number 30326330 30303432 65636431 36376566 02c00042ecd167ef
0010: 00...... ........ ........ ........ .
-rw-r--r-- 1 root wheel 875 Nov 2 12:06 brcmfmac43430-sdio.AP6212.txt
lrwxr-xr-x 1 root wheel 29 Dec 30 16:19 brcmfmac43430-sdio.sinovoip,bpi-m2-zero.txt -> brcmfmac43430-sdio.AP6212.txt
-rw-r--r-- 1 root wheel 874 Jun 30 2019 brcmfmac43430-sdio.raspberrypi,3-model-b.txt
-rw-r--r-- 1 root wheel 1864 Jun 30 2019 brcmfmac43455-sdio.raspberrypi,3-model-b-plus.txt
lrwxr-xr-x 1 root wheel 29 Dec 30 11:24 brcmfmac43455-sdio.raspberrypi,4-model-b-plus.txt -> brcmfmac43455-sdio.raspberrypi,3-model-b-plus.txt
-
Add product ID for Broadcom BCM43455
-
Use correct firmware for BCM43456
-
size check was backwards.
-
Be less noisy for some commands.
-
Fix DWC_MMC_INT_SDIO_INT bit
-
dwc_mmc fixes:
- Rockchip uses a different SDIO int bit, so take this into consideration
- Avoid unnecessary resets and always wait for resets to complete
- kpause instead of delay while holding spinlock
- Do not attempt autostop for SD_IO_RW_EXTENDED commands
- Allow for sub-blklen byte counts for single block transfers
-
More SDIO stability and performance fixes
 1.68.2.1  29-Feb-2020  ad Sync with head.

RSS XML Feed