freebsd with flexible iflib nic queues
Go to file
Marius Strobl f279f5ced4 - In hme_stop() mask all interrupts.
- In hme_eint() print MIF register contents on MIF interrupts.
- In hme_mifinit() don't bother to preserve the previous MIF config.
  This was mainly done in order to preserve the PHY select bit (external
  or internal PHY) but which only needs to be set as appropriate when
  reading from or writing to the desired PHY in hme_mii_{read,write}reg().
  Similarly don't bother to set the PHY select bit in hme_mii_statchg().
- In hme_mii_{read,write}reg() ignore requests to PHYs other than the
  external and internal PHY one.
- Move enabling/disabling the MII drivers of the external transceiver
  from hme_init_locked() and based on the sheer presence of an external
  to hme_mifinit() and based on the currently selected media, defaulting
  to the internal transceiver when the media hasn't been set, yet.
  Invoke hme_mifinit() from the newly added hme_mediachange_locked() so
  the setting of the MII drivers is updated when changing media.
  These changes keep the MII bus from wedging (which manifests in the HME
  and the PHYs no longer being able to communicate with each other) when
  the PHY device drivers isolate the unused PHY in two-PHY configurations
  as present in f.e. Netra t1 100 while changing media, either from
  hme_init_locked() (see also below) or via ifconfig(8). They also allow
  for using both transceivers/PHYs.
- In the newly added hme_mediachange_locked() also reset the PHYs in two-
  PHY configurations before invoking mii_mediachg(). This is required
  for successfully unisolating the previously unused PHY when switching
  between PHYs.
- Now that changing media should no longer cause problems back out rev.
  1.27 and re-enable setting the current media in hme_init_locked() (see
  the commit message of rev. 1.23 for more info).

These changes are roughly a merge of NetBSD gem.c rev. 1.32 - 1.35 (1.30
was already fixed differently in our 1.36; 1.31 and 1.32 were wrong) with
some parts reworked and things that don't make sense like setting the MII
drivers and restoring the previous MIF and XIF settings in hme_mii_{read,
write}reg() omitted.

MFC after:	2 weeks
2006-12-04 00:51:08 +00:00
bin Fix some of the alignment warnings on ARM. 2006-11-27 22:17:11 +00:00
contrib The sigconv.awk script generates a sigdesc.h header file, which 2006-12-01 07:01:19 +00:00
crypto Resolve conflicts. 2006-11-10 16:52:41 +00:00
etc - put some common code in a function handle_remount(); 2006-12-03 23:50:29 +00:00
games o Fix typo: manger -> manager. 2006-12-03 15:25:55 +00:00
gnu MFP4: Add an implementation of the ELF(3) and GELF(3) API set. 2006-11-11 17:16:35 +00:00
include Attempt to improve application portability by marking `struct ar_hdr' 2006-11-13 04:28:29 +00:00
kerberos5 Kerberos/Heimdal doesn't really depend on the INET6 macro. 2006-07-28 06:33:27 +00:00
lib Minor clarification. 2006-12-03 19:26:17 +00:00
libexec Fix TLS on sparc64 for statically and dynamically linked binaries 2006-10-08 02:50:34 +00:00
release - Revert signedness type changes to "struct vmtotal"; by making 2006-11-28 12:46:02 +00:00
rescue Remove mount_ext2fs. 2006-11-22 22:55:54 +00:00
sbin It's confusing to say that "Command Queueing Supported" just based 2006-12-03 07:11:55 +00:00
secure Fix static compilation. 2006-10-07 17:32:05 +00:00
share bce(4) does not work correctly in polling(4) mode for now. 2006-12-02 09:03:06 +00:00
sys - In hme_stop() mask all interrupts. 2006-12-04 00:51:08 +00:00
tools New test cases demonstrating fixed bugs, and the reason why 2006-12-03 19:18:41 +00:00
usr.bin Prevent buffer overflow when forcibly terminating an escape character. 2006-12-03 17:50:21 +00:00
usr.sbin Add ftp.il.freebsd.org to the IPv6 server section. 2006-12-02 09:58:01 +00:00
COPYRIGHT
LOCKS
MAINTAINERS Request pre-commit review of BSD.{local,x11*}.dist by portmgr, since these 2006-11-11 22:24:10 +00:00
Makefile Add arm to universe. 2006-11-28 01:03:29 +00:00
Makefile.inc1 There was a timeframe where crunchgen(1) was broken; force 2006-11-27 19:38:28 +00:00
ObsoleteFiles.inc Delete old (and now unused) alias_*.so.4 files. 2006-12-01 16:23:25 +00:00
README Simply running ``make world'' will bomb unless you dig up the 2006-06-07 03:33:48 +00:00
UPDATING Welcome to Once-a-year Sound Mega-Commit. Enjoy numerous updates and fixes 2006-11-26 12:24:06 +00:00

This is the top level of the FreeBSD source directory.  This file
was last revised on:
$FreeBSD$

For copyright information, please see the file COPYRIGHT in this
directory (additional copyright information also exists for some
sources in this tree - please see the specific source directories for
more information).

The Makefile in this directory supports a number of targets for
building components (or all) of the FreeBSD source tree, the most
commonly used one being ``world'', which rebuilds and installs
everything in the FreeBSD system from the source tree except the
kernel, the kernel-modules and the contents of /etc.  The ``world''
target should only be used in cases where the source tree has not
changed from the currently running version.  See:
http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/makeworld.html
for more information, including setting make(1) variables.

The ``buildkernel'' and ``installkernel'' targets build and install
the kernel and the modules (see below).  Please see the top of
the Makefile in this directory for more information on the
standard build targets and compile-time flags.

Building a kernel is a somewhat more involved process, documentation
for which can be found at:
   http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/kernelconfig.html
And in the config(8) man page.
Note: If you want to build and install the kernel with the
``buildkernel'' and ``installkernel'' targets, you might need to build
world before.  More information is available in the handbook.

The sample kernel configuration files reside in the sys/<arch>/conf
sub-directory (assuming that you've installed the kernel sources), the
file named GENERIC being the one used to build your initial installation
kernel.  The file NOTES contains entries and documentation for all possible
devices, not just those commonly used.  It is the successor of the ancient
LINT file, but in contrast to LINT, it is not buildable as a kernel but a
pure reference and documentation file.


Source Roadmap:
---------------
bin		System/user commands.

contrib		Packages contributed by 3rd parties.

crypto		Cryptography stuff (see crypto/README).

etc		Template files for /etc.

games		Amusements.

gnu		Various commands and libraries under the GNU Public License.
		Please see gnu/COPYING* for more information.

include		System include files.

kerberos5	Kerberos5 (Heimdal) package.

lib		System libraries.

libexec		System daemons.

release		Release building Makefile & associated tools.

rescue		Build system for statically linked /rescue utilities.

sbin		System commands.

secure		Cryptographic libraries and commands.

share		Shared resources.

sys		Kernel sources.

tools		Utilities for regression testing and miscellaneous tasks.

usr.bin		User commands.

usr.sbin	System administration commands.


For information on synchronizing your source tree with one or more of
the FreeBSD Project's development branches, please see:

  http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/synching.html