Commit Graph

94049 Commits

Author SHA1 Message Date
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
Marcel Moolenaar
dc7d0dea12 Enhance puc(4) to support uart(4). This includes:
o  Introduce PUC_PORT_TYPE_UART so that we can attach to uart(4),
o  Introduce port sub-types (eg PUC_PORT_UART_NS8250, PUC_PORT_UART_Z8530)
   to handle different hardware and determine resource sizes.
o  Introduce two new IVARs: PUC_IVAR_SUBTYPE and PUC_IVAR_REGSHFT. Both
   are used by uart(4) to get sufficient information to talk to the HW.
o  Introduce PUC_FLAGS_ALTRES to tell puc(4) to try memory mapped I/O
   if I/O port space cannot be allocated, or vice versa.
o  Have ports of type PUC_PORT_TYPE_COM attach to uart(1) if attaching
   to sio(4) fails (due to not having the sio driver).
o  Put struct puc_device_description in struct puc_softc instead of
   having a pointer to a device description in the softc. This allows
   us to create device descriptions on the fly without having to use
   malloc() or otherwise have them staticly defined.
o  Move puc_find_description() from puc.c to puc_pci.c as it's specific
   to PCI.
o  Add EBUS and SBUS frontends for use on sparc64. Note that the P in
   puc stands for PCI, so we kinda mess things up here. It's too soon
   to worry about it though. We'll know what to do about it in time.

NOTE: This commit changes the behaviour of puc(4) to not quieten the
device probe and attach for child devices. The uart(4) driver provides
additional device description that is valuable to have.
2003-09-06 21:48:50 +00:00
Sam Leffler
6c024e8ef6 add fast swi taskqueue spinlock to the order_list so witness doesn't complain
Submitted by:	Tor Egge <Tor.Egge@cvsup.no.freebsd.org>
2003-09-06 21:06:08 +00:00
Sam Leffler
7e2282a5a6 correct fast swi taskqueue spinlock name to be different from the sleep lock
Submitted by:	Tor Egge <Tor.Egge@cvsup.no.freebsd.org>
2003-09-06 21:05:18 +00:00
Alan Cox
603d3d4a44 Giant is no longer required by pipe_destroy_write_buffer(). Reduce
unnecessary white space from pipe_destroy_write_buffer().
2003-09-06 21:02:10 +00:00
Simon L. B. Nielsen
51a257c0e5 Trim the twe(4) device list; the twe(4) manual page is more up-to-date. 2003-09-06 20:03:09 +00:00
Poul-Henning Kamp
a8c1568e29 Bzero the right number of bytes.
Found by:	Juergen Buchmueller <pullmoll@stop1984.com>
2003-09-06 18:37:17 +00:00
Hiten Pandya
74cd7c2b5a Baud rate capability is br', not ba'.
PR:		docs/56426
Submitted by:	FUJISHIMA Satsuki <sf@FreeBSD.ORG>
2003-09-06 18:36:51 +00:00
Bruce A. Mah
a93c89d35b New release notes: PIM support, amd-6.0.9, GNU Readline 4.3, GNU Sort
2.1, ISC DHCP client 3.0.1rc12.
2003-09-06 18:15:11 +00:00
Bruce A. Mah
fe191bffe6 Trim isp(4), vx(4), and stg(4) device lists. 2003-09-06 17:56:05 +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
Bruce A. Mah
14a815df92 Trim the device lists for tl(4), aue(4), and kue(4) after recent
manpage catchup updates.  The nearby axe(4) and rue(4) lists appear to
be in sync with the manpages so trim those too.
2003-09-06 17:19:59 +00:00
Tim J. Robbins
94508dc9c8 #include <string.h> for prototypes for strcpy() and strlen().
Submitted by:	Stefan Farfeleder
2003-09-06 16:33:55 +00:00
Doug Rabson
a5c1ae0c87 Make indentation uniform. 2003-09-06 14:04:30 +00:00
Doug Rabson
ef0040ab3b No need for a separate nfpm driver now - amdpm handles both. 2003-09-06 13:58:06 +00:00
Doug Rabson
8e60aa28ab When recording resources for the amdpm driver, only describe the ports
we actually use. Originally, the code reserved 0x8000 to 0x80ff inclusive
which on my hardware conflicts with the acpi timer. This broke the amdpm
driver since it was actually given ports 0x800c to 0x810b (which should
not have happened, IMHO).

This also allows us to considerably simplify the handling of the nForce
smb driver, removing the need for a separate nfpm driver. With this, SMB
accesses appear to work on my Tyan Tiger MP board. Your mileage may vary.
In particular, the nForce changes have not been tested.
2003-09-06 13:56:56 +00:00
Jens Schweikhardt
dcae6166e2 Removed another spurious semicolon forgotten in the previous commit. 2003-09-06 11:55:05 +00:00
Jens Schweikhardt
81f8caf7ef Removed two spurious semicolons after function definitions.
Removed three spurious tabs on lines by themselves.

PR:		bin/56492
Submitted by:	Stefan Farfeleder <stefan@fafoe.narf.at>
MFC after:	6 weeks
2003-09-06 10:55:30 +00:00
Marcel Moolenaar
dfbd7790d4 Load the kernel at a 64M instead of 5M. The advantage of this is that
we can switch to 64M-sized identity mappings and not having to map the
first 64M. This is especially important because the first 1M contains
the VGA frame buffer and is otherwise a legacy memory range. Best to
make as little assumptions about it as possible. Switching to 64M-sized
mappings is important to avoid creating overlapping translations, which
have the side-effect of triggering machine checks. This is currently
what's preventing us to boot on an Intel Tiger 4.

Note that since we currently use 256M-sized identity mappings, we
would reduce the size of the mappings and consequently increase the
TLB pressure. The performance implications of this are minimal if
measurable at all because identify mappings are not our primary
means for memory management.

Also note that there's no guarantee that physical memory exists at
64M. Then again, we didn't had the guarantee when we were loading at
5M. We'll deal with this when it's a problem.

Discussed with: arun@
2003-09-06 05:15:36 +00:00
Sam Leffler
468cf6f61a Add locking.
Special thanks to Pavlin Radoslavov <pavlin@icir.org> for testing and
fixing numerous problems.

Sponsored by:	FreeBSD Foundation
Reviewed by:	Pavlin Radoslavov <pavlin@icir.org>
2003-09-06 04:53:43 +00:00
David E. O'Brien
02f7e15bfa Finish the deorbital burn of the i386-only a.out toolchain. 2003-09-06 02:18:03 +00:00
David Xu
407c3de522 Add small piece of code to support pthread_rwlock_timedrdlock and
pthread_rwlock_timedrwlock.
2003-09-06 00:07:52 +00:00
Sam Leffler
f82c9e70f9 "fast swi" taskqueue support. This is a taskqueue that uses spinlocks
making it useful for dispatching swi tasks from fast interrupt handlers.

Sponsered by:	FreeBSD Foundation
2003-09-05 23:09:22 +00:00
Sam Leffler
7c00e355a2 Print a message at boot for interrupt handlers created with INTR_MPSAFE
and/or INTR_FAST.  This belongs elsehwere and perhaps under bootverbose;
I'm committing it for now as it's uesful to know which drivers have
been converted and which have not.
2003-09-05 22:51:18 +00:00
Marcel Moolenaar
8d8d970db1 Fix a place where I forgot to change the code that checks whether
we return to kernel or userland. This triggered a panic in a KSE
application when TDF_USTATCLOCK was set in the case userland was
interrupted, but we never called ast() on our way out. As such,
we called ast() at some other time. Unfortunately, TDF_USTATCLOCK
handling assumes running in the interrupt thread. This was not
the case anymore.

To avoid making the same mistake later, interrupt() now returns
to its caller whether we interrupted userland or not. This avoids
that we have to duplicate the check in assembly, where it's bound
to fall off the scope. Now we simply check the return value and
call ast() if appropriate.

Run into this: davidxu
2003-09-05 22:50:10 +00:00
Sam Leffler
45276e4aa4 change timeout to be MPSAFE
Sponsored by:	FreeBSD Foundation
2003-09-05 22:37:31 +00:00
Sam Leffler
55b659ffc1 change timer to MPSAFE
Sponsored by:	FreeBSD Foundation
2003-09-05 22:33:44 +00:00
Sam Leffler
8df91fc8bc o add experimental radiotap capture format
o add netbsd logic to convert rssi to device-independent values

Obtained from:	NetBSD (rssi conversion code)
2003-09-05 22:29:30 +00:00
Sam Leffler
73454c7385 Add support for the experimental radiotap capture format. With this
we no longer need the debugging code to dump packets.
2003-09-05 22:22:49 +00:00
Sam Leffler
95a22a9a71 Experimental bpf capture format for 802.11 devices. The link layer
type belongs in net/bpf.h but we keep it here for the moment.

P:
Submittep by:
Obtained from:	David Young <dyoung@pobox.com>
2003-09-05 22:19:32 +00:00
Peter Wemm
917cf8d2a3 Log involuntary context switches correctly. 2003-09-05 22:15:26 +00:00
Sam Leffler
4faedfe87f Add locking. We use a single lock to guard the global vlan list and also
to protect the vlan state in each ifnet (e.g. vlan count).  The latter is
probably better handled through an ifnet-centric means but since changes
are infrequent shouldn't matter for now.

Sponsored by:	FreeBSD Foundation
2003-09-05 20:58:59 +00:00
Peter Wemm
c896a8adbf Oops. sizeof(long) = 8, not 4. Get the fxsave buffer inside mcontext
the right size.  I'm planning on *possibly* stealing the two 'spare'
variables on either side for botched alignment correction.
2003-09-05 20:47:27 +00:00
Alexander Kabaev
48b9d042a8 The caller is expected to set up PIC register corectly before
jumping to .cerror. This means .cerror has to be present in the
same module with its consumers, or bad things will happen.
2003-09-05 18:08:19 +00:00
Tim J. Robbins
5c65194915 #include <runetype.h> directly for the definition of _CACHED_RUNES, needed
by ldef.h, rather than relying on GCC-specific pollution from <ctype.h>.

Noticed by:	Stefan Farfeleder
2003-09-05 16:05:21 +00:00
Peter Pentchev
8f4b894fbc Clarify that the second argument to accept() may be a null pointer if
no peer address information is desired.

PR:		56044
Submitted by:	Felix Opatz <felix@zotteljedi.de> and
		Bernd Luevelsmeyer <bdluevel@heitec.net>
MFC after:	1 month
2003-09-05 15:41:52 +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 Wemm
116b8c8695 Mark the isa compat shims for BURN_BRIDGES for 6.0 2003-09-05 14:55:11 +00:00
Peter Wemm
b324e86370 Clean up some antique stuff. We do not support Weitek FPUs etc, and never
did.
2003-09-05 14:54:26 +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
Poul-Henning Kamp
0ace036ce5 Remove now unused BOOTP tags related to NFS swap device. 2003-09-05 11:12:55 +00:00
Poul-Henning Kamp
ce914a08b0 Put the message about msgbuf cksum mismatch under bootverbose and tell
people what the consequence is.
2003-09-05 11:12:00 +00:00
Poul-Henning Kamp
9aad651f23 Fix off-by-one error in array bounds check. 2003-09-05 11:09:26 +00:00
Poul-Henning Kamp
bc7c831fc7 Forgotten in previous commit to atapi-cd.c: Add #ifndef BURN_BRIDGES
around cloning routines.
2003-09-05 11:08:55 +00:00