#
267654 |
|
19-Jun-2014 |
gjb |
Copy stable/9 to releng/9.3 as part of the 9.3-RELEASE cycle.
Approved by: re (implicit) Sponsored by: The FreeBSD Foundation |
#
258964 |
|
05-Dec-2013 |
yongari |
MFC r253481: Recognize BCM5725C PHY.
|
#
245865 |
|
24-Jan-2013 |
yongari |
MFC r244482: Recognize 5720S PHY and treat it as 5708S PHY. Unfortunately 5720S uses 5709S PHY id so add a hack to detect 5720S PHY by checking parent device name. 5720S PHY does not support 2500SX.
|
#
245861 |
|
23-Jan-2013 |
yongari |
MFC r244481: For fiber PHYs, BRGPHY_MII_1000CTL register is not defined at all so do not touch it.
|
#
243544 |
|
26-Nov-2012 |
yongari |
MFC r241437: For 5717C/5719C/5720C and 57765 PHYs, do not perform any special handling(jumbo, wire speed etc) in brgphy_reset(). Touching BRGPHY_MII_AUXCTL register seems to confuse APE firmware such that it couldn't establish a link.
|
#
232134 |
|
24-Feb-2012 |
marius |
MFC: r231913
- Probe BCM57780. - In case the parent is bge(4), don't set the Jumbo frame settings unless the MAC actually is Jumbo capable as otherwise the PHY might not have the corresponding registers implemented. This is also in line with what the Linux tg3 driver does.
PR: 165032 Submitted by: Alexander Milanov Obtained from: OpenBSD
|
#
230717 |
|
28-Jan-2012 |
marius |
MFC: r227907, r22791 (for diff reduction)
Add BCM5785 but wrap it in #ifdef notyet for now. According to yongari@ there are issues probably needing workarounds in bge(4) when brgphy(4) handles this PHY. Letting ukphy(4) handle it instead results in a working configuration, although likely with performance penalties.
|
#
229357 |
|
02-Jan-2012 |
yongari |
MFC r226870: Recognize BCM5720C PHY.
|
#
229093 |
|
31-Dec-2011 |
hselasky |
MFC r226173, r227843, r227848 and r227908: Use DEVMETHOD_END to mark end of device methods. Remove superfluous device methods. Add some missing __FBSBID() macros.
|
#
225736 |
|
22-Sep-2011 |
kensmith |
Copy head to stable/9 as part of 9.0-RELEASE release cycle.
Approved by: re (implicit)
|
#
225014 |
|
19-Aug-2011 |
marius |
r221812 reveals that at least some Broadcom PHYs default to being not only isolated but also powered down after a reset and while they just work fine [sic] when both is the case they don't if they are only deisolate but still powered down. So in order to put PHYs in an overall normal operation mode for the common case, ensure in mii_phy_reset() that they are not powered down after a reset. Unfortunately, this only helps in case of BCM5421, while BCM5709S apparently only work when they remain isolated and powered down after a reset. So don't call mii_phy_reset() in brgphy_reset() and implement the reset locally leaving the problematic bits alone. Effectively this bypasses r221812 for brgphy(4). Thanks to Justin Hibbits for doing a binary search in order to identify the problematic commit.
PR: 157405, 158156 Reviewed by: yongari (mii_phy_reset() part) Approved by: re (kib) MFC after: 3 days
|
#
221713 |
|
09-May-2011 |
yongari |
Recognize BCM5719C PHY.
Submitted by: Geans Pin at Broadcom
|
#
221468 |
|
04-May-2011 |
yongari |
Enable Ethernet@WireSpeed for BCM5718/BCM57765 family. While I'm here inverse meaning of PHY flag as Ethernet@WireSpeed is enabled for most PHYs.
|
#
221407 |
|
03-May-2011 |
marius |
- Remove attempts to implement setting of BMCR_LOOP/MIIF_NOLOOP (reporting IFM_LOOP based on BMCR_LOOP is left in place though as it might provide useful for debugging). For most mii(4) drivers it was unclear whether the PHYs driven by them actually support loopback or not. Moreover, typically loopback mode also needs to be activated on the MAC, which none of the Ethernet drivers using mii(4) implements. Given that loopback media has no real use (and obviously hardly had a chance to actually work) besides for driver development (which just loopback mode should be sufficient for though, i.e one doesn't necessary need support for loopback media) support for it is just dropped as both NetBSD and OpenBSD already did quite some time ago. - Let mii_phy_add_media() also announce the support of IFM_NONE. - Restructure the PHY entry points to use a structure of entry points instead of discrete function pointers, and extend this to include a "reset" entry point. Make sure any PHY-specific reset routine is always used, and provide one for lxtphy(4) which disables MII interrupts (as is done for a few other PHYs we have drivers for). This includes changing NIC drivers which previously just called the generic mii_phy_reset() to now actually call the PHY-specific reset routine, which might be crucial in some cases. While at it, the redundant checks in these NIC drivers for mii->mii_instance not being zero before calling the reset routines were removed because as soon as one PHY driver attaches mii->mii_instance is incremented and we hardly can end up in their media change callbacks etc if no PHY driver has attached as mii_attach() would have failed in that case and not attach a miibus(4) instance. Consequently, NIC drivers now no longer should call mii_phy_reset() directly, so it was removed from EXPORT_SYMS. - Add a mii_phy_dev_attach() as a companion helper to mii_phy_dev_probe(). The purpose of that function is to perform the common steps to attach a PHY driver instance and to hook it up to the miibus(4) instance and to optionally also handle the probing, addition and initialization of the supported media. So all a PHY driver without any special requirements has to do in its bus attach method is to call mii_phy_dev_attach() along with PHY-specific MIIF_* flags, a pointer to its PHY functions and the add_media set to one. All PHY drivers were updated to take advantage of mii_phy_dev_attach() as appropriate. Along with these changes the capability mask was added to the mii_softc structure so PHY drivers taking advantage of mii_phy_dev_attach() but still handling media on their own do not need to fiddle with the MII attach arguments anyway. - Keep track of the PHY offset in the mii_softc structure. This is done for compatibility with NetBSD/OpenBSD. - Keep track of the PHY's OUI, model and revision in the mii_softc structure. Several PHY drivers require this information also after attaching and previously had to wrap their own softc around mii_softc. NetBSD/OpenBSD also keep track of the model and revision on their mii_softc structure. All PHY drivers were updated to take advantage as appropriate. - Convert the mebers of the MII data structure to unsigned where appropriate. This is partly inspired by NetBSD/OpenBSD. - According to IEEE 802.3-2002 the bits actually have to be reversed when mapping an OUI to the MII ID registers. All PHY drivers and miidevs where changed as necessary. Actually this now again allows to largely share miidevs with NetBSD, which fixed this problem already 9 years ago. Consequently miidevs was synced as far as possible. - Add MIIF_NOMANPAUSE and mii_phy_flowstatus() calls to drivers that weren't explicitly converted to support flow control before. It's unclear whether flow control actually works with these but typically it should and their net behavior should be more correct with these changes in place than without if the MAC driver sets MIIF_DOPAUSE.
Obtained from: NetBSD (partially) Reviewed by: yongari (earlier version), silence on arch@ and net@
|
#
221341 |
|
02-May-2011 |
marius |
Probe the PHY accompanying BCM57765. Tested by: Paul Thornton
MFC after: 1 week
|
#
217413 |
|
14-Jan-2011 |
marius |
- Even after masking the media with IFM_GMASK the result may have bits besides the duplex ones set so just comparing it with IFM_FDX may lead to false negatives. - Simplify ciphy_service() to only set the manual configuration bits once after we have figured them all out. This also means we no longer unnecessarily update the hardware along the road.
MFC after: 1 week
|
#
215355 |
|
15-Nov-2010 |
jkim |
Restore the previous behaviour of substring match.
|
#
215353 |
|
15-Nov-2010 |
jkim |
Plug memory leakage introduced in r204989.
Reported by: yongari
|
#
215302 |
|
14-Nov-2010 |
marius |
Move the limiting of the PHY to 10/100 modes of operation due to limitations of certain MAC models from brgphy(4) to bge(4) where it belongs. While at it, update the list of models having that restriction to what OpenBSD uses, which in turn seems to have obtained that information from the Linux tg3 driver.
|
#
215297 |
|
14-Nov-2010 |
marius |
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
|
#
215015 |
|
08-Nov-2010 |
jmallett |
Recognize the BCM5482S.
|
#
214427 |
|
27-Oct-2010 |
yongari |
Add BCM5717C 10/100/1000TX PHY id.
|
#
214012 |
|
18-Oct-2010 |
marius |
Revert r213867; while this driver really doesn't use any of the generic subroutines, at least mii_capabilities is used within itself.
|
#
213893 |
|
15-Oct-2010 |
marius |
Convert the PHY drivers to honor the mii_flags passed down and convert the NIC drivers as well as the PHY drivers to take advantage of the mii_attach() introduced in r213878 to get rid of certain hacks. For the most part these were: - Artificially limiting miibus_{read,write}reg methods to certain PHY addresses; we now let mii_attach() only probe the PHY at the desired address(es) instead. - PHY drivers setting MIIF_* flags based on the NIC driver they hang off from, partly even based on grabbing and using the softc of the parent; we now pass these flags down from the NIC to the PHY drivers via mii_attach(). This got us rid of all such hacks except those of brgphy() in combination with bce(4) and bge(4), which is way beyond what can be expressed with simple flags.
While at it, I took the opportunity to change the NIC drivers to pass up the error returned by mii_attach() (previously by mii_phy_probe()) and unify the error message used in this case where and as appropriate as mii_attach() actually can fail for a number of reasons, not just because of no PHY(s) being present at the expected address(es).
Reviewed by: jhb, yongari
|
#
213867 |
|
14-Oct-2010 |
marius |
Just like xmphy(4) this driver doesn't use any of the generic subroutines so there's no need to fill mii_{ext,}capabilities either.
|
#
213464 |
|
05-Oct-2010 |
yongari |
Separate common flags into controller specific and PHY related flags. There should be no functional changes. This change will make it easy to add more quirk/flags in future.
Reviewed by: davidch
|
#
213364 |
|
02-Oct-2010 |
marius |
- In the spirit of previous simplifications factor out the checks for a different PHY instance being selected and isolation out into the wrappers around the service methods rather than duplicating them over and over again (besides, a PHY driver shouldn't need to care about which instance it actually is). - Centralize the check for the need to isolate a non-zero PHY instance not supporting isolation in mii_mediachg() and just ignore it rather than panicing, which should sufficient given that a) things are likely to just work anyway if one doesn't plug in more than one port at a time and b) refusing to attach in this case just leaves us in a unknown but most likely also not exactly correct configuration (besides several drivers setting MIIF_NOISOLATE didn't care about these anyway, probably due to setting this flag for no real reason). - Minor fixes like removing unnecessary setting of sc->mii_anegticks, using sc->mii_anegticks instead of hardcoded values etc.
|
#
213229 |
|
27-Sep-2010 |
marius |
Use the mii_data provided via mii_attach_args and mii_pdata respectively instead of reaching out for the softc of the parent.
|
#
212307 |
|
07-Sep-2010 |
yongari |
Consistently use tab characters instead of tab + space characters. No functional changes.
|
#
207391 |
|
29-Apr-2010 |
davidch |
- Pass flow control settings back to bce(4).
MFC after: Two weeks
|
#
205299 |
|
18-Mar-2010 |
davidch |
- Added support for 5709S/5716S PHYs.
Submitted by: pyunyh MFC after: 2 weeks
|
#
204990 |
|
10-Mar-2010 |
sobomax |
Fix style(9) bugs in the previous revision.
|
#
204989 |
|
10-Mar-2010 |
sobomax |
further narrow down no carrier workaround, since it appears to only affect very specific IBM hardware and other machines with the same BCM ASIC chip id 0x57081021 are just fine.
MFC after: 1 month
|
#
204941 |
|
10-Mar-2010 |
sobomax |
Provide workaround for the ages old bug affecting certain BCM5708S chip revision often found in the blades and resulting in interfaces not sensing carrier signal. Looking at all problem reports it appears that it only affects some very specific silicon revision (ASIC (0x57081021); Rev (B2)) and version of the PHY that supports 1000baseSX-FDX media only. Therefore, narrow the scope of workaround to combination of that revision and media type. Given that the first report on this issue is dated back to 2007, there is not much hope that this issue will ever be properly resolved.
Among affected systems are IBM HS21, Intel SBXD132 and HP BL460c.
PR: 118238, 122551, 140970 MFC after: 1 month
|
#
204144 |
|
20-Feb-2010 |
marius |
Add support for BCM54K2 found in combination with Apple K2 GMAC.
Submitted by: Andreas Tobler Obtained from: OpenBSD MFC after: 1 week
|
#
202294 |
|
14-Jan-2010 |
yongari |
Add check for fiber mode for BCM5714 PHY. This PHY supports both copper and fiber interfaces over GMII so an explicit check is necessary to know whether it was configured for fiber interface. This change make BCM5715S work.
Tested by: olli MFC after: 1 week
|
#
202269 |
|
13-Jan-2010 |
yongari |
Add BCM5754 PHY id that is found on Dell Studio XPS 16.
Tested by: scf MFC after: 1 week
|
#
198813 |
|
02-Nov-2009 |
yongari |
Add BCM5761 PHY id.
|
#
181619 |
|
11-Aug-2008 |
yongari |
Restore link state handling which was broken in rev 1.69. Also report current link state while auto-negotiation is in progress. With this change link loss should be reported within a second and drivers that rely on link state should work.
Reported by: Pete French < petefrench at ticketswitch dot com > Tested by: Pete French < petefrench at ticketswitch dot com > MFC after: 1 week
|
#
181618 |
|
11-Aug-2008 |
yongari |
Remove 'cr' at the end of line.
|
#
181617 |
|
11-Aug-2008 |
yongari |
Remove whitespace at the end of line.
|
#
179772 |
|
12-Jun-2008 |
davidch |
- Added support for BCM5709 and BCM5716.
MFC after: 2 weeks
|
#
178667 |
|
29-Apr-2008 |
jhb |
Add support for the BCM5906[M] adapters. These adapters only support 10/100 operation and place the mailbox registers at a different offset. They also do not have an EEPROM, so the MAC address must be read from NVRAM instead.
MFC after: 1 month PR: kern/118975 Submitted by: benjsc, Thomas Nyström thn at saeab dot se Submitted by: sephe (original patch for DragonflyBSD)
|
#
176881 |
|
06-Mar-2008 |
jhb |
Flesh out support for the BCM5722 by recognizing the phy on the 5722 and the specific ASIC revision.
MFC after: 1 week Obtained from: OpenBSD (mii/phy bits)
|
#
176850 |
|
05-Mar-2008 |
davidch |
- Add PHY ID for BCM5709C 1000Base-T controllers.
MFC after: 1 week
|
#
175466 |
|
18-Jan-2008 |
jkim |
Add a flag for Ethernet@WireSpeed capability and correct chip revisions. The idea was taken from OpenBSD and cross-referenced with Linux driver.
|
#
170417 |
|
08-Jun-2007 |
davidch |
- Fixed a problem that caused autonegotiation failures.
Submitted by: tor.egge@cvsup.no.freebsd.org MFC after: 4 weeks
|
#
170391 |
|
07-Jun-2007 |
davidch |
New features: - Moved BCM5706S/5708S SerDes support to brgphy (since they are not technically TBI interfaces) - Added 2.5G support for BCM5708S
Comments: Since this driver is shared with bge I tested several available controllers supported by bge and all worked as expected, however the list was not exhaustive. Need wider testing.
MFC after: 4 weeks
|
#
169153 |
|
30-Apr-2007 |
marius |
- Take advantage of mii_phy_add_media() for adding media and setting sc->mii_anegticks according to whether the respective BGE chip supports Fast Ethernet only or also Gigabit Ethernet. - At least the BGE chips I've tested with wedge when isolating them so document this as the reason for setting MIIF_NOISOLATE and remove the unused (and partially even #ifdef'ed out) isolation related code. Add code that panics if we encounter a non-zero MII instance as generally there's no way a PHY requiring MIIF_NOISOLATE can be handled gracefully in a multi-PHY configuration (it's ok for the internal PHY of single-PHY-only-NIC to not support isolation though). - Additionally set MIIF_NOLOOP as loopback doesn't seem to work either and remove the #ifdef'ed out code for adding respective media. The MIIF_NOLOOP flag currently triggers nothing but hopefully will be respected by mii_phy_setmedia() later on.
Reviewed by: jkim, yongari MFC after: 1 month
|
#
168601 |
|
10-Apr-2007 |
marius |
Let brgphy(4) attach for the Broadcom BCM5755 ASIC based chipsets as well.
Obtained from: OpenBSD MFC after: 1 week
|
#
167728 |
|
19-Mar-2007 |
jkim |
Revert couple of changes from 1.51 and 1.52. Reading link status with BMSR is okay for most of the chipsets but BCM5701 PHY does not seem to like it. Set media to IFM_NONE if link is not up instead of the previous value.
Reported by: Goran Lowkrantz (goran dot lowkrantz at ismobile dot com)
|
#
166876 |
|
21-Feb-2007 |
jhb |
Restore support for the 5706C bce(4) phy that was broken during the addition of SerDes support. According to the docs, the 5706C and 5708C phys are supposed to use the same MII model that is separate from the SerDes parts, but the 5706C actually uses the MII model of the SerDes parts. To fix this, readd the old 5706C entry to miidevs and add a special check in brgphy_probe() for phys that match the 5706C ID. If the phy is supported by the gentbi(4) driver, then it's a SerDes phy, so we fail the probe and let gentbi(4) grab it. Otherwise, it's a 5706C phy, so we let brgphy(4) grab it.
In coordination with: dwhite
|
#
166716 |
|
14-Feb-2007 |
jkim |
Fix a typo from the previous commit.
Pointed out by: brad@openbsd.org
|
#
166680 |
|
12-Feb-2007 |
jkim |
Fix typos in comments while I am here.
|
#
166677 |
|
12-Feb-2007 |
jkim |
Add BCM5701 A0/B0 CRC bug workaround. Magic values taken from Linux driver.
|
#
166676 |
|
12-Feb-2007 |
jkim |
Fix style(9).
Pointed out by: many
|
#
166673 |
|
12-Feb-2007 |
jkim |
Add PHY DSP code for BCM5755M.
Obtained from: OpenBSD
|
#
166666 |
|
12-Feb-2007 |
jkim |
BCM5701 PHY cannot read-modify-write. Just re-use the magic number from DSP init code.
|
#
166665 |
|
12-Feb-2007 |
jkim |
Replace magic numbers with corresponding definitions.
|
#
166262 |
|
26-Jan-2007 |
dwhite |
Collapse 5706C and 5708C PHYs into one entry. ID 0x15 is actually used for the SERDES PHY on these chips and we want gentbi to pick this up, not brgphy.
|
#
166049 |
|
16-Jan-2007 |
jkim |
Correct driver_t brgphy_driver, which was forgotten from the last commit.
|
#
166037 |
|
15-Jan-2007 |
jkim |
Move MII model and revision into softc.
|
#
166032 |
|
15-Jan-2007 |
jkim |
- Move Ethernet@WireSpeed and jumbo frame configurations to separate functions. The idea is taken from OpenBSD. - Set/clear jumbo frame configurations for bge(4). - Re-add BCM5750 PHY workaround for bce(4), which was mistakenly removed from the previous commit.
|
#
166031 |
|
15-Jan-2007 |
jkim |
- Fix BCM5754 support found in Dell PowerEdge SC440. - Move some PHY bug detections from brgphy.c to if_bge.c. - Do not penalize working PHYs. - Re-arrange bge_flags roughly by their categories. - Fix minor style(9) nits.
PR: kern/107257 Obtained from: OpenBSD Tested by: Mike Hibler <mike at flux dot utah dot edu>
|
#
165361 |
|
19-Dec-2006 |
jkim |
Use BMSR for link status in one more place and clean up more.
|
#
165360 |
|
19-Dec-2006 |
jkim |
- Do not depend on auto negotiation for link speed/duplex status. - Read link status from BMSR instead of auxilary status register. - Clean up style(9) nits.
|
#
165343 |
|
19-Dec-2006 |
oleg |
- Fix autonegotiation timer. - Use MII_ANEGTICKS/MII_ANEGTICKS_GIGE defines instead of hardcoded value. - Fix some comments. - style(9)
MFC after: 2 month
|
#
165090 |
|
10-Dec-2006 |
scottl |
Teach the brgphy about some new Broadcom IDs.
Submitted by: David Christenson Sponsored by: www.UIA.net
|
#
164830 |
|
02-Dec-2006 |
marius |
Some style changes to a couple of PHY drivers: - Fix some whitespace nits. - Fix some spelling in comments. - Use MII_ANEGTICKS instead of 5. - Don't define variables in nested scope. - Remove superfluous returns at the end of void functions. - Remove unused static global rgephy_mii_model. - Remove dupe $Id$ in tdkphy(4). - Sort brgphys table.
MFC after: 2 weeks
|
#
164827 |
|
02-Dec-2006 |
marius |
Add a helper function mii_phy_dev_probe(), which wraps around the mii_phy_match() API and takes care of the PHY device probe based on the struct mii_phydesc array and the match return value provided. Convert PHY drivers to take advantage of mii_phy_dev_probe(), converting drivers to provide a mii_phydesc table in the first place where necessary.
Reviewed by: yongari MFC after: 2 weeks
|
#
161750 |
|
31-Aug-2006 |
yongari |
Add PHY support for BCM5752.
Tested by: delphij, Ganbold < ganbold AT micom DOT mng DOT net >
|
#
161551 |
|
23-Aug-2006 |
glebius |
Pack several boolean fields into single bge_flags field.
|
#
160078 |
|
03-Jul-2006 |
yongari |
Use mii_phy_match to reduce duplicated code.
Reviewed by: glebius
|
#
160076 |
|
03-Jul-2006 |
yongari |
Replace hard-coded magic constants to system defined constants (BUS_PROBE_DEFAULT, BUS_PROBE_GENERIC etc). There is no functional changes.
Reviewed by: oleg, scottl
|
#
158651 |
|
16-May-2006 |
phk |
Since DELAY() was moved, most <machine/clock.h> #includes have been unnecessary.
|
#
157691 |
|
12-Apr-2006 |
ps |
Fix the PHY support for the 5780. I mis-merged this from my sources.
|
#
157642 |
|
10-Apr-2006 |
ps |
Add a driver for the Broadcom NetXtreme II (BCM5706/BCM5708) PCI/PCIe Gigabit Ethernet adapeter.
Submitted by: David Christensen
|
#
157041 |
|
23-Mar-2006 |
oleg |
Add basic support for BCM5780 PHY.
Submitted by: grehan Approved by: glebius (mentor) MFC after: 1 week
|
#
153234 |
|
08-Dec-2005 |
oleg |
1) fix tiny bug in bge_start_locked() 2) rework link state detection code & use it in POLLING mode 3) fix 2 bugs in link state detection code: a) driver unable to detect link loss on bcm5721 b) on bcm570x chips (tested on bcm5700 bcm5701 bcm5702) driver fails to detect link loss with probability 1/6 (solved in brgphy.c)
Devices working in TBI mode should not be affected by this change.
Approved by: glebius (mentor) MFC after: 1 month
|
#
151681 |
|
25-Oct-2005 |
grehan |
Oops, forgot to add in r1.36 -
MFC after: 1 day
(it's been in HEAD for quite a while now..)
|
#
151370 |
|
16-Oct-2005 |
grehan |
The BCM5401 dspcode load on media changes also applies to the 100/1000 BCM5400 phy. This fixes the problem with the GEM port not syncing up on Sawtooth G4's.
Obtained from: NetBSD Reported by: Ben Rosengart <ben + freebsd org at narcissus net>
|
#
150763 |
|
30-Sep-2005 |
imp |
Use ansi function definitions in preference to K&R to reduce diffs with NetBSD (and cause it looks cooler).
|
#
146413 |
|
19-May-2005 |
ps |
Support the 5714C
Submitted by: John Cagle <john dot cagle at hp dot com>
|
#
139749 |
|
05-Jan-2005 |
imp |
Start each of the license/copyright comments with /*-, minor shuffle of lines
|
#
135772 |
|
24-Sep-2004 |
ps |
Add support for the BCM5750/5751. Unfortunately the documentation I have from Broadcom does not give much information on these devices, so the Broadcom Linux driver was used for clues to what these chips support. It turns out they are similar to the 5705 with the 5751 being the PCI-Express version and needing special work-arounds and settings.
|
#
129876 |
|
30-May-2004 |
phk |
Add some missing <sys/module.h> includes which are masked by the one on death-row in <sys/kernel.h>
|
#
129844 |
|
29-May-2004 |
marius |
Remove double __FBSDID and move the remaining one into a common place after the license(s) and before the driver comment (the latter only in drivers not having __FBSDID at that location).
|
#
128870 |
|
03-May-2004 |
andre |
Correct the phy_service() routine case MII_TICK to correctly track the falling edge of a media state change.
This is in preparation for media state change notification to the routing socket.
No objections by: sam, wpaul, ru, bms Brucification by: bde
|
#
121816 |
|
31-Oct-2003 |
brooks |
Replace the if_name and if_unit members of struct ifnet with new members if_xname, if_dname, and if_dunit. if_xname is the name of the interface and if_dname/unit are the driver name and instance.
This change paves the way for interface renaming and enhanced pseudo device creation and configuration symantics.
Approved By: re (in principle) Reviewed By: njl, imp Tested On: i386, amd64, sparc64 Obtained From: NetBSD (if_xname)
|
#
120537 |
|
28-Sep-2003 |
ps |
Typo when setting wirespeed. || != |
Found by: jake
|
#
119418 |
|
24-Aug-2003 |
obrien |
Use __FBSDID(). Also some minor style cleanups.
|
#
119285 |
|
22-Aug-2003 |
imp |
Prefer new location of pci include files (which have only been in the tree for two or more years now), except in a few places where there's code to be compatible with older versions of FreeBSD.
|
#
119157 |
|
20-Aug-2003 |
ambrisko |
On Dell boxes such as the PE2650 we need to disable 3 led mode for the link LED to work.
Reviewed by: wpaul Obtained from: Linux driver
|
#
118814 |
|
12-Aug-2003 |
wpaul |
Add support for the Broadcom BCM5901 and BCM5901 rev A2 chips. These are 10/100 only NICs found on the IBM Thinkpad R40E and G40. These seem to be based on the BCM5705 MAC but with a PHY that doesn't support 1000Mbps modes.
Submitted by: Igor Sviridov <sia@nest.org>
|
#
117659 |
|
15-Jul-2003 |
wpaul |
Add support for the BCM5705 and its ilk. Changes:
- 5705 doesn't support jumbo frames - Statistics must be read from registers - RX return ring must be capped at 512 entries - Omit initialization of certain device blocks - Acknowledge link change interrupts by setting the 'link changed' bit in the status register (used to have no effect) - Remember to toggle the MI completion bit too - Set the mbuf low watermark differently (on-chip memory buffers, not BSD mbufs) - Don't enable Ethernet@WireSpeed feature for certain 5705 chip revs - Add additional PCI IDs for 5705 and 5782 parts - Add a forgotten 5704 PCI ID
Most changes ripped kicking and screaming from the Broadcom linux driver. Thanks to Paul Saab for sanity testing. (My lack of sanity has been confirmed.)
|
#
114628 |
|
04-May-2003 |
ps |
Something I missed in my tree. If the media changes, poke the DSP on the 5401/5411 Broadcom PHY's.
Obtained from: NetBSD
|
#
114590 |
|
03-May-2003 |
ps |
- Move bge_phy_hack into the phy code and implement the various DSP patch workarounds for each phy revision. Obtained from: NetBSD & Broadcom Linux driver
- Disable AUTOPOLL when accessing the PHY as it may cause PCI errors. Obtained from: NetBSD
- Check the UPDATED bit in the status block so the driver knows that the status block as indeed changed since the last access. Broadcom documentation states drivers should unset the UPDATED/CHANGED bits after reading them.
- When changing media types, first loop the phy then set the media. Broadcom documentation and Linux drivers do this and I observed much better handling of link after this change.
- Broadcom documentation states that for 1000BaseT operation, autonegotiation must be enabled. Fix hard coding of media so that the driver only advertises 1000BaseT as the supported media type and enable autonegotition.
- Only set Master/Slave on the 5701. Obtained from Broadcom Linux driver.
|
#
114547 |
|
02-May-2003 |
ps |
Add untested support for the Broadcom 5704.
Obtained from: NetBSD
|
#
113038 |
|
03-Apr-2003 |
obrien |
Use __FBSDID rather than rcsid[].
|
#
109514 |
|
19-Jan-2003 |
obrien |
Remove miidevs.h and generate it from miidevs at compile time. The devlist2h.awk tool to do this has been repocopied to sys/tools/.
|
#
106107 |
|
28-Oct-2002 |
semenu |
Remove unnecessary <sys/malloc.h> include.
Submitted by: marius@alchemy.franken.de MFC after: 1 week
|
#
105135 |
|
14-Oct-2002 |
alfred |
Put function return types on a line by themselves. Cleanup my earlier de-__P sweep and remove whitespace between function names and paramters.
|
#
103103 |
|
08-Sep-2002 |
jdp |
Add support for the BCM5703x chips. I do not have one of these cards to test; however the submitter reports that this patch works with the on-board interface on the IBM x235 server.
Submitted by: Jung-uk Kim <jkim@niksun.com> MFC after: 1 month
|
#
96026 |
|
04-May-2002 |
phk |
Clean up mii/phy drivers: Remove the MIIF_DOINGAUTO which doesn't really do anything at the end of the day except bloat the drivers which has copy&pasted it.
|
#
95722 |
|
29-Apr-2002 |
phk |
Make one generic mii_phy_detach() to replace 19 slightly different ones.
Rename mii_phy_auto_stop() mii_phy_down().
Introduce mii_down(), use it from nge. Do not indirect it to 19 identical case's in 19 switchstatements like NetBSD did.
|
#
95673 |
|
28-Apr-2002 |
phk |
Follow NetBSD and s/IFM_1000_TX/IFM_1000_T/
|
#
95667 |
|
28-Apr-2002 |
phk |
Don't pass three args when one will do just fine, and even prevent mistakes like the one brgphy.c (now corrected).
|
#
95665 |
|
28-Apr-2002 |
phk |
Improve an API by about 4 lines per driver.
|
#
92931 |
|
22-Mar-2002 |
wpaul |
Teach the brgphy driver about the BCM5701's internal copper PHY.
|
#
92739 |
|
20-Mar-2002 |
alfred |
Remove __P.
|
#
84145 |
|
29-Sep-2001 |
jlemon |
Cleanup pass for mii drivers. . Make internal service routines static. . Use a consistent ordering of checks in MII_TICK. Do the work in the mii_phy_tick() subroutine if appropriate. . Call mii_phy_update() to trigger the callbacks.
|
#
83597 |
|
17-Sep-2001 |
wpaul |
Tweak the autoneg kickoff code to that it more closely resembles the method uses in the nsgphy driver.
|
#
83029 |
|
04-Sep-2001 |
wpaul |
Add support for the BCM5401 and BCM5411 10/100/1000Mbps copper gigE PHYs. This basically updates the brgphy driver to support 10/100 modes in addition to 1000Mbps modes.
|
#
69925 |
|
12-Dec-2000 |
wpaul |
Grrrrr. That last commit was supposed to be to the head, not to -stable (even though I want the fixes in -stable anyway). I'm sure I'm going to get flamed now for committing to -stable and -current too quickly. *sigh*
|
#
67164 |
|
15-Oct-2000 |
phk |
Remove unneeded #include <machine/clock.h>
|
#
59477 |
|
21-Apr-2000 |
wpaul |
Add PHY drivers for the XMAC II's internal PHY and the Broadcom BCM5400 1000baseTX PHY. These will be used by the SysKonnect gigabit ethernet driver shortly.
|