#
285830 |
|
23-Jul-2015 |
gjb |
- Copy stable/10@285827 to releng/10.2 in preparation for 10.2-RC1 builds. - Update newvers.sh to reflect RC1. - Update __FreeBSD_version to reflect 10.2. - Update default pkg(8) configuration to use the quarterly branch.[1]
Discussed with: re, portmgr [1] Approved by: re (implicit) Sponsored by: The FreeBSD Foundation |
#
256281 |
|
10-Oct-2013 |
gjb |
Copy head (r256279) to stable/10 as part of the 10.0-RELEASE cycle.
Approved by: re (implicit) Sponsored by: The FreeBSD Foundation
|
#
239275 |
|
15-Aug-2012 |
gonzo |
Merging of projects/armv6, part 5
- Driver for SMSC LAN95XX and LAN8710A ethernet controllers - Driver for LAN8710A PHY
Submitted by: Ben Gray, Damjan Marion, Tim Kientzle
|
#
232016 |
|
23-Feb-2012 |
yongari |
Connect smcphy(4) to mii module build.
|
#
226995 |
|
01-Nov-2011 |
marius |
- Import the common MII bitbang'ing code from NetBSD and convert drivers to take advantage of it instead of duplicating it. This reduces the size of the i386 GENERIC kernel by about 4k. The only potential in-tree user left unconverted is xe(4), which generally should be changed to use miibus(4) instead of implementing PHY handling on its own, as otherwise it makes not much sense to add a dependency on miibus(4)/mii_bitbang(4) to xe(4) just for the MII bitbang'ing code. The common MII bitbang'ing code also is useful in the embedded space for using GPIO pins to implement MII access. - Based on lessons learnt with dc(4) (see r185750), add bus barriers to the MII bitbang read and write functions of the other drivers converted in order to ensure the intended ordering. Given that register access via an index register as well as register bank/window switching is subject to the same problem, also add bus barriers to the respective functions of smc(4), tl(4) and xl(4). - Sprinkle some const.
Thanks to the following testers: Andrew Bliznak (nge(4)), nwhitehorn@ (bm(4)), yongari@ (sis(4) and ste(4)) Thanks to Hans-Joerg Sirtl for supplying hardware to test stge(4).
Reviewed by: yongari (subset of drivers) Obtained from: NetBSD (partially)
|
#
226154 |
|
08-Oct-2011 |
marius |
- Follow the lead of dcphy(4) and pnphy(4) and move the reminder of the PHY drivers that only ever attach to a particular MAC driver, i.e. inphy(4), ruephy(4) and xlphy(4), to the directory where the respective MAC driver lives and only compile it into the kernel when the latter is also there, also removing it from miibus.ko and moving it into the module of the respective MAC driver. - While at it, rename exphy.c, which comes from NetBSD where the MAC driver it corresponds to also is named ex(4) instead of xl(4) but that in FreeBSD actually identifies itself as xlphy(4), and its function names accordingly for consistency. - Additionally while at it, fix some minor style issues like whitespace in the register headers and add multi-inclusion protection to inphyreg.h.
|
#
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@
|
#
216828 |
|
31-Dec-2010 |
yongari |
Add RDC Semiconductor R6040 10/100 PHY driver.
|
#
213900 |
|
15-Oct-2010 |
marius |
Now that all previous users of mii_phy_probe() have been converted in r213893 and r213894 to use mii_attach() instead remove the former and along with it the "EVIL HACK".
MFC after: never
|
#
213878 |
|
14-Oct-2010 |
marius |
Add a NetBSD-compatible mii_attach(), which is intended to eventually replace mii_phy_probe() altogether. Compared to the latter the advantages of mii_attach() are: - intended to be called multiple times in order to attach PHYs in multiple passes (f.e. in order to only use sub-ranges of the 0 to MII_NPHY - 1 range) - being able to pass along the capability mask from the NIC to the PHY drivers - being able to specify at which address (phyloc) to probe for a PHY (instead of always probing at all addresses from 0 to MII_NPHY - 1) - being able to specify which PHY instance (offloc) to attach - being able to pass along MIIF_* flags from the NIC to the PHY drivers (f.e. as required to indicated to the PHY drivers that flow control is supported by the NIC driver, which actually is the motivation for this change).
While at it, I used the opportunity to get rid of some hacks in mii(4) like miibus_probe() generally doing work besides sheer probing and the "EVIL HACK" (which will vanish entirely along with mii_phy_probe()) by passing the struct ifnet pointer via an argument of mii_attach() as well as to fix some resource leaks in mii(4) in case something fails. Commits which will update the PHY drivers to honor the MII flags passed down from the NIC drivers and take advantage of mii_attach() to get rid of certain types of hacks in NIC and PHY drivers as well as a conversion of the remaining uses of mii_phy_probe() will follow shortly.
Reviewed by: jhb, yongari Obtained from: NetBSD (partially)
|
#
190558 |
|
30-Mar-2009 |
imp |
New PHY driver for the internal PHY found in the AX88790. There's a number of quirks for this device, and this implements just the basics. The 2.5s powerdown recommended in the datasheet will be next...
|
#
179895 |
|
20-Jun-2008 |
delphij |
Add et(4), a port of DragonFly's Agere ET1310 10/100/Gigabit Ethernet device driver, written by sephe@
Obtained from: DragonFly Sponsored by: iXsystems MFC after: 2 weeks
|
#
179336 |
|
27-May-2008 |
yongari |
Connect jmphy(4) to the build.
|
#
179099 |
|
19-May-2008 |
yongari |
Connect atphy(4) to the build.
|
#
175702 |
|
27-Jan-2008 |
marius |
Add a driver for the National Semiconductor DP83815, DP83843 and DP83847 PHYs. The main reason for using a specific driver for these PHYs are reset quirks similar to the nsphy(4) driven DP83840A.
PR: 112654 Obtained from: NetBSD MFC after: 2 weeks Thanks to: mlaier for testing w/ DP83815
|
#
175701 |
|
27-Jan-2008 |
marius |
Sort values according to style.Makefile(5).
|
#
170526 |
|
11-Jun-2007 |
yongari |
Connect icsphy(4) to the build.
|
#
160639 |
|
25-Jul-2006 |
yongari |
Connect gentbi, ip1000phy to the build.
|
#
151441 |
|
18-Oct-2005 |
imp |
Don't build dc-only pseudo phy devices with mii.ko anymore
|
#
150757 |
|
30-Sep-2005 |
imp |
ciphy wasn't included here.
|
#
119976 |
|
11-Sep-2003 |
wpaul |
Add a PHY driver to support the built-in gigE PHY in the 8169S/8110S ethernet chips. This driver is pretty simple, however it contains special DSP initialization code which is needed in order to get the chip to negotiate a gigE link. (This special initialization may not be needed in subsequent chip revs.) Also:
- Fix typo in if_rlreg.h (RL_GMEDIASTAT_1000MPS -> RL_GMEDIASTAT_1000MBPS)
- Deal with shared interrupts in re_intr(): if interface isn't up, return.
- Fix another bug in re_gmii_writereg() (properly apply data field mask)
- Allow PHY driver to read the RL_GMEDIASTAT register via the re_gmii_readreg() register (this is register needed to determine real time link/media status).
|
#
117374 |
|
10-Jul-2003 |
wpaul |
tdkphy.c is missing from this module's Makefile. Add it.
|
#
114577 |
|
03-May-2003 |
akiyama |
Add RealTek RTL8150 USB to fast Ethernet controller driver. This driver now supports the Melco LUA-KTX and the GREEN HOUSE GH-USB100B.
Reviewed by: imp MFC after: 2 weeks
|
#
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/.
|
#
101410 |
|
06-Aug-2002 |
benno |
Connect bmtphy to the mii module build.
Forgotten a long time ago by: benno
|
#
89244 |
|
11-Jan-2002 |
msmith |
Export symbols that constitute APIs defined by these modules.
Note that in the case of 'mii' the API is not clearly defined, and the symbols exported represent a subset defined by current usage.
|
#
76479 |
|
11-May-2001 |
wpaul |
Add support for gigabit ethernet cards based on the NatSemi DP83820 and DP83821 gigabit ethernet MAC chips and the NatSemi DP83861 10/100/1000 copper PHY. There are a whole bunch of very low cost cards available with this chipset selling for $150USD or less. This includes the SMC9462TX, D-Link DGE-500T, Asante GigaNIX 1000TA and 1000TPC, and a couple cards from Addtron.
This chip supports TCP/IP checksum offload, VLAN tagging/insertion. 2048-bit multicast filter, jumbograms and has 8K TX and 32K RX FIFOs. I have not done serious performance testing with this driver. I know it works, and I want it under CVS control so I can keep tabs on it. Note that there's no serious mutex stuff in here yet either: I need to talk more with jhb to figure out the right way to do this. That said, I don't think there will be any problems.
This driver should also work on the alpha. It's not turned on in GENERIC.
|
#
75813 |
|
21-Apr-2001 |
mjacob |
add MARVELL to the list of phys to go into miibus
|
#
74133 |
|
12-Mar-2001 |
jlemon |
Add Intel 82553, 82555 PHY driver.
|
#
72132 |
|
07-Feb-2001 |
semenu |
Add QS6612, AC101 and LXT970 personal drivers and register definitions.
Obtained from: NetBSD/OpenBSD
|
#
70711 |
|
06-Jan-2001 |
obrien |
Use a consistent style and one much closer to the rest of /usr/src
|
#
66129 |
|
20-Sep-2000 |
wpaul |
Add a homePNA PHY driver. This is really only a stub: MII-based homePNA PHYs tend to look like 10mbps PHYs with no autonegotiation. This allows us to display the proper media type and link status however.
|
#
60966 |
|
27-May-2000 |
peter |
Use .include <bsd.kmod.mk> to get to ../../*/conf/kmod.mk instead of encoding the relative path.
|
#
59951 |
|
04-May-2000 |
peter |
Pull in sys/conf/kmod.mk, rather than /usr/share/mk/bsd.kmod.mk. This means that the kernel can be totally self contained now and is not dependent on the last buildworld to update /usr/share/mk. This might also make it easier to build 5.x kernels on 4.0 boxes etc, assuming gensetdefs and config(8) are updated.
|
#
59478 |
|
22-Apr-2000 |
wpaul |
Reoganize/update the SysKonnect driver:
- Break out the support for the XMAC II's PHY into an miibus driver.
- Reorganize the probe/attach stuff using newbus. Each XMAC is now attached to the parent GEnesis controller using newbus. This is necessary since each XMAC must also have an attached miibus, and the miibus read/write register routines need to be able to get at the softc struct for each XMAC, not the one for the parent controller. This allows me to get rid of the grotty code I added for selecting the unit numbers for the ifnet interfaces: the unit numbers are now derived from the newbus-assigned unit numbers, which should track with the ifnet interface numbers. I think. At the very least, there should never be any collisions.
- Add support for the SK-9821 and SK-9822 1000baseTX adapters. Special thanks to SysKonnect for loaning me two adapters for testing.
|
#
56735 |
|
28-Jan-2000 |
bde |
Add ${DEBUG_FLAGS} to CFLAGS in bsd.kmod.mk, not in scattered module makefiles. Bad examples in fxp/Makefile keep getting copied to new makefiles.
|
#
54140 |
|
05-Dec-1999 |
wpaul |
Add pci_if.h to SRCS so that dcphy will build.
|
#
54134 |
|
04-Dec-1999 |
wpaul |
Add the if_dc driver and remove all of the al, ax, dm, pn and mx drivers which it replaces. The new driver supports all of the chips supported by the ones it replaces, as well as many DEC/Intel 21143 10/100 cards.
This also completes my quest to convert things to miibus and add Alpha support.
|
#
53846 |
|
28-Nov-1999 |
bde |
Removed special rules for building and cleaning device interface files and empty options files. The rules are now generated automatically in bsd.kmod.mk. Cleaned up related things ($S and ${CLEANFILES}).
|
#
52282 |
|
16-Oct-1999 |
wpaul |
Convert the mx driver to miibus.
In order to make this work, I created a pseudo-PHY driver to deal with Macronix chips that use the built-in NWAY support and symbol mode port. This is actually all of them, with the exception of the original MX98713 which presents its NWAY support via the MII serial interface.
The mxphy driver actually manipulates the controller registers directly rather than using the miibus_readreg()/miibus_writereg() bus interface since there are no MII registers to read. The mx driver itself pretends that the NWAY interface is a PHY locayed at MII address 31 for the sole purpose of allowing the mxphy_probe() routine to know when it needs to attach to a host controller.
|
#
51443 |
|
20-Sep-1999 |
obrien |
Change the name of the installed KLM to contain a leading "if_". Except for miibus which is now installed as miibus.ko.
Discussed by: msmith, peter, and wpaul
|
#
50983 |
|
06-Sep-1999 |
wpaul |
Add a driver for the AMD AM79c873 10/100 PHY. By some strange coincidence, this PHY and the Davicom DM9101 have exactly the same register definitions. One of them is probably a clone of the other. I'm not sure which.
This is needed for the Davicom DM9102 10/100 PCI ethernet driver which will be committed shortly.
|
#
50702 |
|
31-Aug-1999 |
wpaul |
Add a driver for the internal PHY in the RealTek 8139.
|
#
50477 |
|
28-Aug-1999 |
peter |
$Id$ -> $FreeBSD$
|
#
50464 |
|
27-Aug-1999 |
wpaul |
Update these Makefiles; add mlphy and tlphy to the mii module, add miibus_if.h to tl module's dependencies.
|
#
50120 |
|
21-Aug-1999 |
wpaul |
This commit adds support for the NetBSD MII abstraction layer and MII-compliant PHY drivers. Many 10/100 ethernet NICs available today either use an MII transceiver or have built-in transceivers that can be programmed using an MII interface. It makes sense then to separate this support out into common code instead of duplicating it in all of the NIC drivers. The mii code also handles all of the media detection, selection and reporting via the ifmedia interface.
This is basically the same code from NetBSD's /sys/dev/mii, except it's been adapted to FreeBSD's bus architecture. The advantage to this is that it automatically allows everything to be turned into a loadable module. There are some common functions for use in drivers once an miibus has been attached (mii_mediachg(), mii_pollstat(), mii_tick()) as well as individual PHY drivers. There is also a generic driver for all PHYs that aren't handled by a specific driver. It's possible to do this because all 10/100 PHYs implement the same general register set in addition to their vendor-specific register sets, so for the most part you can use one driver for pretty much any PHY. There are a couple of oddball exceptions though, hence the need to have specific drivers.
There are two layers: the generic "miibus" layer and the PHY driver layer. The drivers are child devices of "miibus" and the "miibus" is a child of a given NIC driver. The "miibus" code and the PHY drivers can actually be compiled and kldoaded as completely separate modules or compiled together into one module. For the moment I'm using the latter approach since the code is relatively small.
Currently there are only three PHY drivers here: the generic driver, the built-in 3Com XL driver and the NS DP83840 driver. I'll be adding others later as I convert various NIC drivers to use this code.
I realize that I'm cvs adding this stuff instead of importing it onto a separate vendor branch, but in my opinion the import approach doesn't really offer any significant advantage: I'm going to be maintaining this stuff and writing my own PHY drivers one way or the other.
|