Commit Graph

8200 Commits

Author SHA1 Message Date
Ceri Davies
0898b961b6 The re.4 manpage has been checked in now, so hook it back up. 2003-09-09 18:30:34 +00:00
Bill Paul
b9f78d2b4a Add a device driver for the Broadcom BCM4401 ethernet controller,
written by Stuart Walsh and Duncan Barclay (with some kibbitzing by
me). I'm checking it in on Stuart's behalf.

The BCM4401 is built into several x86 laptop and desktop systems. For the
moment, I have only enabled it in the x86 kernel config because although
it's a PCI device, I haven't heard of any standalone NICs that use it. If
somebody knows of one, we can easily add it to the other arches.

This driver uses register/structure data gleaned from the Linux
driver released by Broadcom, but does not contain any of the code
from the Linux driver itself. It uses busdma.
2003-09-09 18:17:23 +00:00
Bill Paul
6cee741b2b Add the re.4 man page, which I forgot to do last night. 2003-09-09 02:45:53 +00:00
Ruslan Ermilov
fe08efe680 mdoc(7): Use the new feature of the .In macro. 2003-09-08 19:57:22 +00:00
Doug Barton
4f6c710fc9 Looks like the re.4 man page didn't make it in the last commit,
so unhook it to get the build back in action.
2003-09-08 07:46:41 +00:00
Bill Paul
a94100fa9b Take the support for the 8139C+/8169/8169S/8110S chips out of the
rl(4) driver and put it in a new re(4) driver. The re(4) driver shares
the if_rlreg.h file with rl(4) but is a separate module. (Ultimately
I may change this. For now, it's convenient.)

rl(4) has been modified so that it will never attach to an 8139C+
chip, leaving it to re(4) instead. Only re(4) has the PCI IDs to
match the 8169/8169S/8110S gigE chips. if_re.c contains the same
basic code that was originally bolted onto if_rl.c, with the
following updates:

- Added support for jumbo frames. Currently, there seems to be
  a limit of approximately 6200 bytes for jumbo frames on transmit.
  (This was determined via experimentation.) The 8169S/8110S chips
  apparently are limited to 7.5K frames on transmit. This may require
  some more work, though the framework to handle jumbo frames on RX
  is in place: the re_rxeof() routine will gather up frames than span
  multiple 2K clusters into a single mbuf list.

- Fixed bug in re_txeof(): if we reap some of the TX buffers,
  but there are still some pending, re-arm the timer before exiting
  re_txeof() so that another timeout interrupt will be generated, just
  in case re_start() doesn't do it for us.

- Handle the 'link state changed' interrupt

- Fix a detach bug. If re(4) is loaded as a module, and you do
  tcpdump -i re0, then you do 'kldunload if_re,' the system will
  panic after a few seconds. This happens because ether_ifdetach()
  ends up calling the BPF detach code, which notices the interface
  is in promiscuous mode and tries to switch promisc mode off while
  detaching the BPF listner. This ultimately results in a call
  to re_ioctl() (due to SIOCSIFFLAGS), which in turn calls re_init()
  to handle the IFF_PROMISC flag change. Unfortunately, calling re_init()
  here turns the chip back on and restarts the 1-second timeout loop
  that drives re_tick(). By the time the timeout fires, if_re.ko
  has been unloaded, which results in a call to invalid code and
  blows up the system.

  To fix this, I cleared the IFF_UP flag before calling ether_ifdetach(),
  which stops the ioctl routine from trying to reset the chip.

- Modified comments in re_rxeof() relating to the difference in
  RX descriptor status bit layout between the 8139C+ and the gigE
  chips. The layout is different because the frame length field
  was expanded from 12 bits to 13, and they got rid of one of the
  status bits to make room.

- Add diagnostic code (re_diag()) to test for the case where a user
  has installed a broken 32-bit 8169 PCI NIC in a 64-bit slot. Some
  NICs have the REQ64# and ACK64# lines connected even though the
  board is 32-bit only (in this case, they should be pulled high).
  This fools the chip into doing 64-bit DMA transfers even though
  there is no 64-bit data path. To detect this, re_diag() puts the
  chip into digital loopback mode and sets the receiver to promiscuous
  mode, then initiates a single 64-byte packet transmission. The
  frame is echoed back to the host, and if the frame contents are
  intact, we know DMA is working correctly, otherwise we complain
  loudly on the console and abort the device attach. (At the moment,
  I don't know of any way to work around the problem other than
  physically modifying the board, so until/unless I can think of a
  software workaround, this will have do to.)

- Created re(4) man page

- Modified rlphy.c to allow re(4) to attach as well as rl(4).

Note that this code works for the sample 8169/Marvell 88E1000 NIC
that I have, but probably won't work for the 8169S/8110S chips.
RealTek has sent me some sample NICs, but they haven't arrived yet.
I will probably need to add an rlgphy driver to handle the on-board
PHY in the 8169S/8110S (it needs special DSP initialization).
2003-09-08 02:11:25 +00:00
Hiten Pandya
af3f61eb4e Change an is' to a was' in the AUTHORS section.
Recommended by:	jmallett
2003-09-07 16:34:03 +00:00
Ruslan Ermilov
be01c2220b - No need to create libfoo.so -> libfoo.so.X symlinks in /lib,
as it was decided that our toolchain will revert to looking
  for libraries in /usr/lib only.

- Make /usr/lib/libfoo.so -> /lib/libfoo.so.X symlinks absolute
  so that they still work if /usr is symlinked.

- Remove stale /usr/lib/libfoo.so.X libraries during install.

Discussed with:	gordon, obrien, peter
2003-09-07 14:15:40 +00:00
Ruslan Ermilov
68de25ddb4 Implement sed(1) commands using the make(1)'s RE variable modifier.
(This almost eliminates the need of a sed(1) during installworld.)
2003-09-07 12:59:22 +00:00
John-Mark Gurney
978243bd80 make sure we really don't have a tty when installing rules. This prevents
a flush command from asking a question (you can't see):
If there is no tty associated with the process, this is implied.

MFC after: 1 day
2003-09-07 07:52:56 +00:00
John Birrell
ad96272726 Document msize which is often needed with maddr. 2003-09-07 04:18:17 +00:00
Marcel Moolenaar
854d378a59 Hook-up the uart(4) manpage.
Reminded by: bmah@
2003-09-07 02:52:25 +00:00
Hiten Pandya
fdae0df42a Mdoc Review:
* Remove extraneous .Pp in SYNOPSIS

	* Remove hard sentence break

	* Add the AUTHORS section
2003-09-06 23:46:29 +00:00
Marcel Moolenaar
27d5dc189c The uart(4) driver is an universal driver for various UART hardware.
It improves on sio(4) in the following areas:
o  Fully newbusified to allow for memory mapped I/O. This is a must
   for ia64 and sparc64,
o  Machine dependent code to take full advantage of machine and firm-
   ware specific ways to define serial consoles and/or debug ports.
o  Hardware abstraction layer to allow the driver to be used with
   various UARTs, such as the well-known ns8250 family of UARTs, the
   Siemens sab82532 or the Zilog Z8530. This is especially important
   for pc98 and sparc64 where it's common to have different UARTs,
o  The notion of system devices to unkludge low-level consoles and
   remote gdb ports and provides the mechanics necessary to support
   the keyboard on sparc64 (which is UART based).
o  The notion of a kernel interface so that a UART can be tied to
   something other than the well-known TTY interface. This is needed
   on sparc64 to present the user with a device and ioctl handling
   suitable for a keyboard, but also allows us to cleanly hide an
   UART when used as a debug port.

Following is a list of features and bugs/flaws specific to the ns8250
family of UARTs as compared to their support in sio(4):
o  The uart(4) driver determines the FIFO size and automaticly takes
   advantages of larger FIFOs and/or additional features. Note that
   since I don't have sufficient access to 16[679]5x UARTs, hardware
   flow control has not been enabled. This is almost trivial to do,
   provided one can test. The downside of this is that broken UARTs
   are more likely to not work correctly with uart(4). The need for
   tunables or knobs may be large enough to warrant their creation.
o  The uart(4) driver does not share the same bumpy history as sio(4)
   and will therefore not provide the necessary hooks, tweaks, quirks
   or work-arounds to deal with once common hardware. To that extend,
   uart(4) supports a subset of the UARTs that sio(4) supports. The
   question before us is whether the subset is sufficient for current
   hardware.
o  There is no support for multiport UARTs in uart(4). The decision
   behind this is that uart(4) deals with one EIA RS232-C interface.
   Packaging of multiple interfaces in a single chip or on a single
   expansion board is beyond the scope of uart(4) and is now mostly
   left for puc(4) to deal with. Lack of hardware made it impossible
   to actually implement such a dependency other than is present for
   the dual channel SAB82532 and Z8350 SCCs.

The current list of missing features is:
o  No configuration capabilities. A set of tunables and sysctls is
   being worked out. There are likely not going to be any or much
   compile-time knobs. Such configuration does not fit well with
   current hardware.
o  No support for the PPS API. This is partly dependent on the
   ability to configure uart(4) and partly dependent on having
   sufficient information to implement it properly.

As usual, the manpage is present but lacks the attention the
software has gotten.
2003-09-06 23:13:47 +00:00
Bruce A. Mah
bfb86d9ff2 Catch up isp.4 manpage with hardware notes.
PR:		55558
Submitted by:	Lukas Ertl <l.ertl@univie.ac.at>
2003-09-06 17:47:25 +00:00
Hiten Pandya
5a4501e107 Remove hard sentence breaks. 2003-09-06 17:46:16 +00:00
Bruce A. Mah
88f04461c3 Add stg(4) manpage and hook up to the section 4 manpage build.
PR:		55605
Submitted by:	Bob Bishop <rb@gid.co.uk>
2003-09-06 17:31:50 +00:00
Peter Pentchev
095a0a15af Change /dev/rsa0 and /dev/rwt0 references to sa0 and wt0.
PR:		55925
Submitted by:	Michael L. Squires <mikes@siralan.org>
MFC after:	1 month
2003-09-05 15:28:09 +00:00
Peter Pentchev
dbcefa3f61 Catch up with the hardware notes: list the supported cards.
PR:		55645
Submitted by:	Lukas Ertl <l.ertl@univie.ac.at>
MFC after:	1 month
2003-09-05 14:27:22 +00:00
Peter Pentchev
732bf4906e Catch up with the hardware notes: list the supported cards.
PR:		55643
Submitted by:	Lukas Ertl <l.ertl@univie.ac.at>
MFC after:	1 month
2003-09-05 14:23:22 +00:00
Peter Pentchev
831203cbc0 Catch up with the hardware notes: list the supported Compaq controllers.
PR:		55641
Submitted by:	Lukas Ertl <l.ertl@univie.ac.at>
2003-09-05 14:17:33 +00:00
Peter Pentchev
e11a2faaf2 Document the SC_NO_SUSPEND_VTYSWITCH kernel config option.
PR:		55562
Submitted by:	Lukas Ertl <l.ertl@univie.ac.at>
2003-09-05 13:27:57 +00:00
Maxim Konovalov
9740d06384 o Fix a typo in rev. 1.196: ifconfig 9 -> ifconfig 8.
PR:		docs/56488
Submitted by:	Yoshihiko Sarumaru <mistral@imasy.or.jp>
2003-09-05 11:43:18 +00:00
Joseph Koshy
4836485595 Correct troff usage; typo fixes. 2003-09-05 09:40:10 +00:00
Joseph Koshy
ea0b1bdbe4 Allow the PS version of this paper to be built. 2003-09-05 09:38:54 +00:00
Ruslan Ermilov
b1c28d0a0c Make the creation of the OpenSSL whatis(1) database conditional on
NOCRYPT and NO_OPENSSL.
2003-09-04 21:24:18 +00:00
Peter Wemm
eb7f25e17e Emergency backout of rev 1.152. This is a 100% guaranteed way to totally
hose your system.  You end up with just about everything statically linked
(except for libpam.so), which then causes all the pam users to fail.
eg: login, sshd, su etc all stop working because dlopen no longer works
because there is no libc.so in memory anymore.

gcc passes -L/usr/lib to ld.  The /usr/lib/libxxx.so symlink is *not* a
compatability link.  It is actually the primary link.  There should be no
symlinks in /lib at all.  Only /lib/libXX.so.Y.

peter@daintree[9:27pm]/usr/bin-104> file yppasswd
yppasswd: setuid ELF 32-bit LSB executable, Intel 80386, version 1 (FreeBSD), for FreeBSD 5.1.1, dynamically linked (uses shared libs), stripped
peter@daintree[9:27pm]/usr/bin-105> ldd yppasswd
yppasswd:
        libpam.so.2 => /usr/lib/libpam.so.2 (0x280d1000)
peter@daintree[9:28pm]/usr/bin-106>

Note no libc.so.5.  Hence libpam.so.2 has unresolved dependencies.

I believe this is also the cause of the recent buildworld failures when
pam_krb5.so references -lcrypto stuff etc and when librpcsvc.so references
des_setparity() etc.

This change could not possibly have worked, unless there are other missing
changes to the gcc configuration.  It won't work with ports versions of
gcc either.
2003-09-04 04:29:11 +00:00
Ruslan Ermilov
1c0b8fcbfe As ld(1) was taught to look into /lib, there's no longer a reason
for having compatibility .so symlinks.

Submitted by:	obrien
Reviewed by:	gordon
2003-09-03 06:31:50 +00:00
Kenneth D. Merry
e0254f1068 Fix typo in the last commit.
Pointed out by:	njl
MFC after:	3 days
2003-09-03 05:35:37 +00:00
Kenneth D. Merry
cb32189e23 Move dynamic sysctl(8) variable creation for the cd(4) and da(4) drivers
out of cdregister() and daregister(), which are run from interrupt context.

The sysctl code does blocking mallocs (M_WAITOK), which causes problems
if malloc(9) actually needs to sleep.

The eventual fix for this issue will involve moving the CAM probe process
inside a kernel thread.  For now, though, I have fixed the issue by moving
dynamic sysctl variable creation for these two drivers to a task queue
running in a kernel thread.

The existing task queues (taskqueue_swi and taskqueue_swi_giant) run in
software interrupt handlers, which wouldn't fix the problem at hand.  So I
have created a new task queue, taskqueue_thread, that runs inside a kernel
thread.  (It also runs outside of Giant -- clients must explicitly acquire
and release Giant in their taskqueue functions.)

scsi_cd.c:	Remove sysctl variable creation code from cdregister(), and
		move it to a new function, cdsysctlinit().  Queue
		cdsysctlinit() to the taskqueue_thread taskqueue once we
		have fully registered the cd(4) driver instance.

scsi_da.c:	Remove sysctl variable creation code from daregister(), and
		move it to move it to a new function, dasysctlinit().
		Queue dasysctlinit() to the taskqueue_thread taskqueue once
		we have fully registered the da(4) instance.

taskqueue.h:	Declare the new taskqueue_thread taskqueue, update some
		comments.

subr_taskqueue.c:
		Create the new kernel thread taskqueue.  This taskqueue
		runs outside of Giant, so any functions queued to it would
		need to explicitly acquire/release Giant if they need it.

cd.4:		Update the cd(4) man page to talk about the minimum command
		size sysctl/loader tunable.  Also note that the changer
		variables are available as loader tunables as well.

da.4:		Update the da(4) man page to cover the retry_count,
		default_timeout and minimum_cmd_size sysctl variables/loader
		tunables.  Remove references to /dev/r???, they aren't used
		any longer.

cd.9:		Update the cd(9) man page to describe the CD_Q_10_BYTE_ONLY
		quirk.

taskqueue.9:	Update the taskqueue(9) man page to describe the new thread
		task queue, and the taskqueue_swi_giant queue.

MFC after:	3 days
2003-09-03 04:46:28 +00:00
Warner Losh
7d43c8c902 CardBus instead of Cardbus. Add I/O Data WN-AG/CB and Prixim Skyline
4030 cards.

Special Thanks: shigeru yamamoto-san for the kind donation of I/O Data and
	other wireless cards
2003-09-01 23:09:09 +00:00
Simon L. B. Nielsen
79a97ad9c5 Catch up my(4) with hardware notes by adding Myson MTD89X to list of
supported devices.

Submitted by:	Lukas Ertl <l.ertl@univie.ac.at>
PR:		docs/56244
Confirmed by:	driver source code
2003-08-31 19:37:48 +00:00
Ruslan Ermilov
41f8931571 Whitespace diff reduction between bsd.prog.mk and bsd.lib.mk outputs. 2003-08-31 15:20:17 +00:00
Simon L. B. Nielsen
88fced4cb3 - Update the page title to include information about which cards
are supported by the driver.
- Use a list to specify which cards are supported.
- Add the 3c592/3c597 EISA cards to the list of supported cards.

PR:		docs/56086 (based on)
Submitted by:	Lukas Ertl <l.ertl@univie.ac.at>
2003-08-29 17:59:01 +00:00
Poul-Henning Kamp
7a8431a677 document various NO* options 2003-08-29 11:24:53 +00:00
Marcel Moolenaar
d911f786ab Limit testing for an up-to-date version of make(1) to the world and
buildworld targets by default, but allow it to be done for all user
targets by introducing a boolean option, named ALWAYS_CHECK_MAKE.

This change is by no means perfect and I don't even want to claim
this to be a solution. It does however address the fact that not
everybody likes to see make(1) rebuilt simply because the regression
test failed for some reason or other, including pilot error. It
therefore serves the purpose of keeping the crowd happy until we
have something better or simply reached a compromise.

The reasons for changing the default behaviour are:
o  It avoids a negative, possibly non-intuitive option,
o  It's according to POLA and fond of feet,
o  Only buildworld is documented to do its best to be
   successful at reasonably cost.

Reviewed by: gad, imp, obrien, peter
2003-08-28 04:03:13 +00:00
Nate Lawson
61a63db063 Add a warning describing at least one circumstance where cvsup can hose
a local branch.  Text from an email from jdp@

Reported by:	simon
2003-08-25 19:08:37 +00:00
Bruce A. Mah
744cb35d65 Sort the lists of supported devices. No other content changes. 2003-08-25 04:29:43 +00:00
Bruce A. Mah
2e1a133fa4 In the lists of supported devices, remove "The" from the names of
devices and capitalize the words "Gigabit", "Ethernet", and "adapter"
consistently.
2003-08-25 04:28:29 +00:00
Bruce A. Mah
1780f0787a Catch up ti(4) with hardware notes.
PR:		55637
Submitted by:	Lukas Ertl <l.ertl@univie.ac.at>
2003-08-25 04:25:58 +00:00
Bruce A. Mah
05ba13027b Add a few PC98-specific (?) devices, from the hardware notes. 2003-08-24 22:51:09 +00:00
Bruce A. Mah
1256904d38 Sort device list, no other content changes. 2003-08-24 22:39:18 +00:00
Bruce A. Mah
b3e01060bb Add a few more PC98-specific instances of fe(4) devices, obtained from
the hardware notes.
2003-08-24 22:38:00 +00:00
Andrey A. Chernov
aec5c3d0cc fix short weekday names in zh_CN.*
PR:             55895
Submitted by:   Kang Liu <liukang@bjpu.edu.cn>
2003-08-23 20:46:23 +00:00
Nate Lawson
b842ac21d6 Add a section on maintaining a local branch in CVS.
MFC after:	1 day
2003-08-22 17:12:55 +00:00
Andrey A. Chernov
deb2a95690 Fix ascii compatibility
Submitted by:   Liu Kang <liukang@bjpu.edu.cn>
2003-08-21 19:23:15 +00:00
Simon L. B. Nielsen
69d1b638df Add VT6105/VT6105M Rhine III to the list of supported chips. [1]
Change the manual page title to use the device family name (Rhine),
since the list of supported device id's won't fit on one line anymore.

Submitted by:	Lukas Ertl <l.ertl@univie.ac.at> (based on) [1]
PR:		docs/55639 (based on) [1]
Confirmed by:	driver source code [1]
MFC after:	3 days
2003-08-21 18:15:45 +00:00
Robert Watson
b8be9d15c8 Hook up repo-copied mac_none.4 to mac_stub.4.
Update mac_none to reflect change in role; xref mac_stub.

Update mac_stub to reflect name change, arrival in 5.1; xref
mac_none.

Obtained from:	TrustedBSD Project
Sponsored by:	DARPA, Network Associates Laboratories
2003-08-21 16:53:06 +00:00
Murray Stokely
1de8bd1c41 Add FreeBSD 5.1 and BSD/OS 5.0 to the family tree. 2003-08-21 16:48:38 +00:00
Simon L. B. Nielsen
f6cdc82f08 Catch up ep(4) with the hardware notes.
Submitted by:	Lukas Ertl <l.ertl@univie.ac.at>
PR:		docs/55659
Confirmed by:	driver source code and pccard.conf
MFC after:	3 days
2003-08-21 15:40:05 +00:00