13525 Commits

Author SHA1 Message Date
Bruce Evans
0c63b25bd1 Fixed a 1-bit error in initializing UDMA mode for VIA chipsets.
Instead of initializing UDMA mode, we turned it off and made sure that
it stays off by turning on the "UDMA enable by SET FEATURES" disable.

The damage was limited by bugs in cookie lookup, and suitable
initialization by some BIOSes.  The cookie list has slaves before
masters, and the unit number is ignored when cookies are looked up,
so cookie lookup always finds cookies for slaves and the bug only
clobbers slaves, so the bug was harmless for common configurations
with no slaves or only non-UDMA slaves.  UDMA initialization for
masters actually worked if the BIOS turns on the UDMA mode bit and
turns off the "UDMA enable by SET FEATURES" disable.
1999-01-16 19:48:01 +00:00
Matt Jacob
15da947cba Sascha Blank <blank@uni-trier.de> convinced me I was an
idiot about testing SA_QUIRK_2FM in samount. Fixed.

Removed the NORRLS quirk (to save quirk space) and left
the behaviour of being quiet about failed reserve/release
(failed due Illegal Request) the same.

Added a SF_QUIET_IR for prevent/allow for the same purposes.
1999-01-16 19:20:30 +00:00
Doug Rabson
c3654b5c4d A few small improvements to the bus code:
* A function device_printf() to make pretty-printing driver messages easier.
* A function device_get_children() to query the children of a device.
* Generic implementations of BUS_ALLOC_RESOURCE and BUS_RELEASE_RESOURCE.
* Change bus_generic_print_child() so that it is actually useful.
1999-01-16 17:44:09 +00:00
Doug Rabson
46bfb76599 Add kern_syscalls.c
Submitted by: Assar Westerlund <assar@sics.se>
1999-01-16 17:29:56 +00:00
KATO Takenori
4b05574297 There are two models of AMD K6-2 Model 8 (c.f. AMD's document), so the
CPU stepping must be checked.  Also, fixed print_AMD_info.

Submitted by:	Akio Morita <amorita@meadow.scphys.kyoto-u.ac.jp>
1999-01-16 13:41:33 +00:00
KATO Takenori
5d4a8edf37 Revise sio entries to synchronize with current driver.
Submitted by:	Takahashi Yoshihiro <nyan@wyvern.cc.kogakuin.ac.jp>
1999-01-16 13:20:42 +00:00
Kazutaka YOKOTA
ac060466a6 Fix palette save/load functions.
# They have been unchanged since the introduction of the VESA support.
# But, we started seeing the problem only recently ;-<
1999-01-16 12:56:00 +00:00
KATO Takenori
e42f0a2ea6 Sync with sys/i386/isa/wd.c revision up to 1.185. 1999-01-16 11:43:12 +00:00
KATO Takenori
a87737af86 Sync with sys/i386/isa/sio.c revision up to 1.223. 1999-01-16 11:42:16 +00:00
KATO Takenori
0061057d70 Sync with sys/i386/isa/npx.c revision 1.65. 1999-01-16 11:41:18 +00:00
KATO Takenori
21da8ffad1 Sync with sys/i386/isa/fd.c revision 1.131. 1999-01-16 11:40:02 +00:00
KATO Takenori
485f69e3db Sync with sys/i386/i386/machdep.c revision up to 1.125. 1999-01-16 11:39:08 +00:00
KATO Takenori
eb5417aa3a Sync with sys/i386/i386/machdep.c revision up to 1.322. 1999-01-16 11:38:03 +00:00
KATO Takenori
5b87bd54cf Sync with sys/i386/conf/majors.i386 revision up to 1.64. 1999-01-16 11:36:28 +00:00
Dag-Erling Smørgrav
9402dfb01a Move the definition of set_origin from logo_saver.c to saver.h. 1999-01-16 10:20:16 +00:00
Bill Paul
e4d0044c3a Stability fixes:
- In wb_rxeof(), if the received packet is less than MINCLSIZE bytes,
  copy it to an mbuf chain so as to be more frugal in our use of mbuf
  clusters.

- The Winbond chip, like the ASIX, wants the 'TX interrupt request'
  bit set in the _first_ fragment of a transmitted frame, not the
  last. (At least the Winbond manual states this unambiguously; too
  bad I wasn't paying attention when I read it the first time.)

- Turn off the transmit threshold mechanism (initialize the threshold
  to 0). This effectively puts the chip in 'store and forward' mode
  which seems to cut down on transmit errors a little. It may also
  reduce transmit performace a bit, but I'm willing to do that if it
  means better reliability.
1999-01-16 06:25:59 +00:00
Bill Paul
51b875b355 Fix some stability problems:
- Normally, the driver allocates an mbuf cluster for each receive
  descriptor. This is because we have to be prepared to accomodate up to
  1500 bytes (a cluster buffer can hold up to 2K). However, using up a
  whole cluster buffer for a tiny packet is a bit of a waste. Also,
  it seems to me that sometimes mbufs will linger in the kernel for
  a while after being passed out of the driver, which means we might
  drain the mbuf cluster pool. The cluster pool is smaller than the
  mbuf pool in general, so we do the following: if the packet is less
  that MINCLSIZE bytes, then we copy it into a small mbuf chain and
  leave the mbuf cluster in place for another go-round. This saves
  mbuf clusters in some cases while still allowing them to be used
  for heavy traffic exchanges with lots of full-sized frames.

- The transmit descriptor has a bit in the control word which allows
  the driver to request that a 'TX OK' interrupt be generated when
  a frame has been completed. Sometimes, a frame can be fragmented
  across several descriptors. The manual for the real DEC 21140A says
  that if this happens, the 'TX interrupt request' bit is only valid
  in the descriptor of the last fragment. With the ASIX chip, it seems
  the 'TX interrupt request' bit is only valid in the descriptor of
  the _first_ fragment. Actually, the manual contains conflicting
  information, but I think it's supposed to be the first fragment.
  To play it safe, set the bit in both the first and last fragment to
  be sure that we get a TX OK interrupt. Without this fix, the driver
  can sometimes be late in releasing mbufs from the transmit queue
  after transmission.
1999-01-16 06:19:38 +00:00
Matt Jacob
54e609ba5c More bandaids. One important one from Sascha Blank
(<blank@fox.uni-trier.de>) about quirks being set as
arithmetic values, not as bitfields. Add HP, Kennedy
and M4 1/2" reel quirk entries.

Do a lot of gratuitous source changing.

Audit all functions that build ccbs for the tape driver
and decide whether each one can be retried or not.

Still to do is some more state management post errors.
1999-01-16 04:02:31 +00:00
Mike Smith
d387675c42 Spell "ctlr" consistently. 1999-01-16 03:55:46 +00:00
John Polstra
5e26973571 Replace duplicated "old" linker set definitions with an include of
<sys/linker_set.h>.  Note, this isn't used on the i386.
1999-01-16 03:25:24 +00:00
Bruce Evans
86485cc940 Don't let bugs in ide_pci.c break wdprobe(), at least for standard
IDE hardare.  The attempted fix in rev.1.182 was a no-op except for
adding dozens of style bugs.  The undocumented options ALI_V and
DISABLE_PCI_IDE go away as a side effect.  ALI_V was a no-op because
rev.1.182 was a no-op.  DISABLE_PCI_IDE didn't actually disable
PCI IDE.  It disabled the buggy code in wdprobe() at a cost of
completely breaking support for Promise controllers.

Broken in:	rev.1.139
1999-01-16 01:06:23 +00:00
Mike Smith
38c9282d5c Fix breakage in rev 1.19; the second argument to ide_pci_candma is a
controller number, not a unit number.  Make this clear.
1999-01-16 00:36:53 +00:00
Justin T. Gibbs
2e03cdebd5 Add two missing break statements. 1999-01-15 23:24:23 +00:00
Mike Smith
a07089226d Oops, add the NMBCLUSTERS initialiser for the Alpha as well. 1999-01-15 18:00:19 +00:00
Mike Smith
2084f96c7f Add getenv_int(), specifically for retrieving integer values from kernel
environment variables.  This makes it easy to pass tuning parameters
in from the bootloader.
1999-01-15 17:25:02 +00:00
Mike Smith
8664a77199 Fetch an overide for NMBCLUSTERS from the kernel environment. Never allow
the value to be reduced below that defined when the kernel was built.
1999-01-15 17:24:05 +00:00
Bruce Evans
b8cf6ea776 Use a fast interrupt handler for the PCI version of the cy driver
if option CY_PCI_FASTINTR is configured and mapping the irq to a
fastintr is possible.  Unfortunately, this has to be optional because
pci_map_int_right() doesn't handle the INTR_EXCL flag right --
INTR_EXCL is honoured even if the interrupt needs to be non-exclusive
for other devices to work.
1999-01-15 10:00:12 +00:00
Bruce Evans
e93e63cb39 Fixed corruption of the fd buffer queue. Once upon a time, the active
buffer had to be left on the head of the queue for [bufq]disksort()
to sort against.  This isn't right for devices that can support multiple
active i/o's, and only the fd driver did it.  "Fixing" this in rev.1.36
of ufs_disksubr.c broke the fd driver in much the same way as rev.1.52
of <sys/buf.h> broke it (see rev.1.119).

Bug reported and fix tested by:	dt
1999-01-15 09:15:27 +00:00
Andrzej Bialecki
0d9ab84751 Fall back to /boot/boot.conf, if /boot/loader.rc was not fount. This is
to cover the transition period.

Suggested by:	msmith
1999-01-15 00:31:45 +00:00
Mike Smith
118537f287 Add sscanf/vsscanf/strtoq/strtouq to the kernel. Initially these will be used
for parsing kernel environment values, although they have utility elsewhere.
1999-01-15 00:03:39 +00:00
Andrzej Bialecki
1b855e4412 Change counter-intuitive pc@ and pc! to inb and outb.
Submitted by:	jkh
1999-01-14 23:48:03 +00:00
Bruce Evans
3b0db8df3e Backed out previous commit. MALLOC_DEFINE() needs <sys/kernel.h>. 1999-01-14 23:43:22 +00:00
Nicolas Souchu
602c5d866a Return error codes to user-land.
Submitted by: Takanori Watanabe <takawata@shidahara1.planet.sci.kobe-u.ac.jp>
1999-01-14 22:55:03 +00:00
Nicolas Souchu
78534d41e1 Terminate negociation if Ext. link negociation succeeds. This avoids
the unknown mode panic during boot probe.
1999-01-14 21:38:16 +00:00
John Polstra
0ec81012da Replace includes of <sys/kernel.h> with includes of
<sys/linker_set.h> in those files that use only the linker set
definitions.
1999-01-14 06:22:10 +00:00
Justin T. Gibbs
d95bc0d6d2 Add entry for the target mode black hole driver. 1999-01-14 06:16:45 +00:00
Justin T. Gibbs
863c602654 Add support for routing initiator transactions to disabled luns to the
black hole device.  The controller will now only accept selections if
the black hole device is present and some other target/lun is enabled
for target mode.

Handle the IGNORE WIDE RESIDUE message.  This support has not been tested.

Checkpoint work on handling ABORT, BUS DEVICE RESET, TERMINATE I/O PROCESS,
and CLEAR QUEUE messages as a target.

Fix a few problems with tagged command handling in target mode.

Wait until the sync offset counter falls to 0 before changing phase
after a data-in transfer completes as the DMA logic seems to indicate
transfer complete as soon as our last REQ is issued.

Simplify some of the target mode message handling code in the sequencer.
1999-01-14 06:14:15 +00:00
Justin T. Gibbs
c8bead2a12 Add support for wildcard device entries in the EDT. The target mode
'Black Hole' device uses this feature to schedule itself against any
target or lun attached to a controller that receives an unwanted request
from an initiator instead of having an instance per potential target/lun
request.

Use the wildcard entries to simplify wildcard async callback storage.

Don't announce devices twice to peripheral drivers.  The devices will
be announced as soon as the AC_PATH_REGISTERED event is registered by
the peripheral driver, so no manaul push of this event is required.

Reviewed by: Kenneth Merry <ken@FreeBSD.org>
1999-01-14 06:03:59 +00:00
Justin T. Gibbs
6fda903f5b The target mode 'Black Hole' device. This peripheral driver provides inquiry
data and sense information for target mode devices for which no other
peripheral driver is attached.  This simplifies the task of dealing with
luns that are not otherwise enabled for target mode if the controller
does not have firmware that automatically deals with this case (e.g.
the aic7xxx driver).
1999-01-14 06:00:29 +00:00
Justin T. Gibbs
443af83864 Properly handle transfers that only consume partial buffers. 1999-01-14 05:57:32 +00:00
John Polstra
045205a869 Move the linker set definitions into a new header file
<sys/linker_set.h>.  <sys/kernel.h> includes the new header, so
functionally everything is still the same.
1999-01-14 05:48:46 +00:00
Mike Smith
84252d6300 dftp -> dtfp Get it right... 1999-01-14 03:47:55 +00:00
Kenjiro Cho
34f3320ef4 add HZ missing in options.
changing HZ used to break xntpd's PLL but it should be ok now (unless
xntpd is misconfigured).
1999-01-14 03:30:48 +00:00
Kazutaka YOKOTA
47d8621a0b Fix various breakage after the recent keyboard driver change.
- Don't try to set typematic rate if there is not a keyboard.
- Fix wrong test on error code.
- Don't try to claim the keyboard twice.  The second call will fail.
1999-01-14 03:17:32 +00:00
Nick Hibma
5f2848a953 Removal unneccessary definitions 1999-01-14 01:35:12 +00:00
Nick Hibma
1c8fa23724 Corrected the latent fact that the uhub driver was providing a driver for
the usb device class instead of the uhub devclass. Only a problem with more
than one USB host controller.
1999-01-14 01:28:15 +00:00
Nick Hibma
86d7ad019e Added Entrega Parallel and Serial Connectors to the information
file.
1999-01-14 01:18:44 +00:00
Robert Nordier
05c7fdda18 In the event of a disk error, boot2 is expecting an error
code to be returned: give it one
1999-01-13 23:30:07 +00:00
Andrzej Bialecki
fb0b33b136 Change /boot/boot.conf to /boot/loader.rc - this name reflects what it
really is.

Agreed upon by:	jkh, msmith and many others
1999-01-13 21:59:58 +00:00
Andrzej Bialecki
c82de3cb3f Add words "pc!" and "pc@" which allow to manipulate I/O ports. This can
be helpful when directly fiddling with PC hardware.

Also, define "arch-i386" appropriately, as suggested by Daniel C. Sobral.
1999-01-13 21:31:50 +00:00