freebsd kernel with SKQ
Go to file
Bill Paul b078a935b6 Overhaul the ThunderLAN driver. This update includes the following
changes:

- Cleaned up register access macros so that they work like the XL
  driver macros (you can switch from PIO to memory-mapped mode
  using a single #define -- default is still memory mapped mode).
  The old 'struct overlayed onto the memory mapped register space'
  cruft has been removed.

- Improved multicast filter code. The ThunderLAN has four entry
  perfect filter table in addition to the 64-bit hash table: we need
  one of the perfect filter entries for the station address, but we
  can use the other three for multicast filtering. We arrange to put
  the first three multicast group addresses in the perfect filter
  slots so that commonly joined groups like the all hosts group and
  the all routers group can be filtered without using up bits in the
  hash table.

  Note: in FreeBSD 3.0, multicast groups are stored in a doubly
  linked list, however new entries are added at the head of the list
  (thereby pushing existing entries down towards the tail). We want
  to update the filter starting from the oldest entry to the newest
  since the all hosts group is always joined first. This means we
  really want to start from the tail of the list, not the head, but
  to find the tail we first have to traverse the list all the way to
  the end and then add entries working backwards. This is a bit of a
  kludge and could be inefficient if the list is long.

- Cleaned up autonegotiation code: tl_autoneg() wasn't always setting
  modes correctly.

- Cleaned up ifmedia update and status routines as well.

- Added tl_hardreset() routine to initialize the internal PHY according
  to the ThunderLAN manual.

- Did away with the kludge where PHYs were treated as separate logical
  interfaces. This didn't really work, especially in the case of the
  newer Olicom 2326 adapters which use a Micro Linear ML6692 PHY which
  provides only 100Mbps support, relying on the internal PHY for 10Mbps
  support (both PHYs share the RJ45 port, with the 6692 doing all the
  autonegotiation work). This kludge resulted from my misunderstanding
  of the operation of the Compaq Netelligent Dual Port card (the tlan
  manual mentions multiple channels, but in a different context; this
  got me a little confused). The driver has been reported to work
  correctly with the dual port card.

- Added dio_getbit/dio_setbit/dio_read/dio_write functions which carefully
  set the ThunderLAN's indirectly accessed internal registers. This makes
  the EEPROM reading code more reliable.

Hopefully I won't have to touch this again before 3.0 goes out the door.
I plan to import the 2.2.x version sometime this week.

Approved-by: jkh
1998-09-23 05:08:54 +00:00
bin Updated the ch(4) driver and chio(1) command to include volume 1998-09-15 07:48:51 +00:00
contrib Fix segmentation violation that sometimes occurred when warning 1998-09-19 22:31:40 +00:00
crypto Remove redundant decl. of time(). Causes problems on alpha 1998-09-01 15:17:28 +00:00
etc I'm not sure how/when router_enable got set to YES, but it doesn't 1998-09-23 04:42:02 +00:00
games Back out the last two hacks. I've added games to the (correct) build 1998-09-21 09:01:53 +00:00
gnu Big cleanup of the perl build. 1998-09-22 12:00:59 +00:00
include Don't declare functions without a prototype if KERNEL is defined. This 1998-09-21 02:43:30 +00:00
kerberos5 While I am no longer making a shared library, nuke the old one to prevent 1998-08-30 13:08:54 +00:00
kerberosIV Add -lcrypt. 1998-09-05 00:34:36 +00:00
lib Include "stand.h", not <stand.h>. 1998-09-21 06:07:34 +00:00
libexec Make LD_PRELOAD work for ELF. 1998-09-22 02:09:56 +00:00
lkm Add support for glibc consumers using the new ld-linux.so.2 linker. 1998-09-17 22:08:34 +00:00
release Fix proflibs again. 1998-09-23 03:58:41 +00:00
sbin Change rst0 into rsa0. 1998-09-22 10:05:27 +00:00
secure Remove useless `BINOWN=root' now that it is the default. 1998-09-19 22:42:14 +00:00
share (1) Add BROKEN_ELF variable, similar to BROKEN. (There is no BROKEN_AOUT, 1998-09-22 23:58:49 +00:00
sys Overhaul the ThunderLAN driver. This update includes the following 1998-09-23 05:08:54 +00:00
tools Prevent ldconfig from choking by creating any missing directories. 1998-09-16 17:42:53 +00:00
usr.bin Terminate our output string correctly if we've got 1998-09-22 18:39:47 +00:00
usr.sbin Change the devstat generation number from an int to a long. The int-sized 1998-09-20 00:11:23 +00:00
COPYRIGHT Add Id keyword 1998-09-13 23:11:13 +00:00
Makefile Restore default implict behavior of running the all target we had before. 1998-09-15 05:10:17 +00:00
Makefile.inc0 Purely cosmetic but useful change. 1998-09-17 16:32:00 +00:00
Makefile.inc1 Remove the bootstrap-rtld target which wasn't needed. 1998-09-21 08:55:50 +00:00
Makefile.upgrade Change 3.0-CURRENT to 3.0-BETA when deciding if the installed system 1998-09-23 01:46:25 +00:00
README Correct the facts. The kerberosIV/ directory is not export restricted. 1998-09-13 09:38:34 +00:00

This is the top level of the FreeBSD source directory.  This file
was last revised on: $Id: README,v 1.12 1998/06/30 08:08:05 jkh Exp $

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 and the contents of /etc.  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 with config(8) is a somewhat more involved process,
documentation for which can be found at:
   http://www.freebsd.org/handbook/kernelconfig.html
And in the config(8) man page.

The sample kernel configuration files reside in the sys/i386/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 LINT contains entries for all possible devices, not
just those commonly used, and is meant more as a general reference
than an actual kernel configuration file (a kernel built from it
wouldn't even run).


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

contrib		Packages contributed by 3rd parties.

crypto		Export controlled 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.

kerberosIV	Kerberos package.

lib		System libraries.

libexec		System daemons.

lkm		Loadable Kernel Modules.

release		Release building Makefile & associated tools.

sbin		System commands.

secure		DES and DES-related utilities - NOT FOR EXPORT!

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/handbook/synching.html