Commit Graph

2212 Commits

Author SHA1 Message Date
grog
fad86b58e4 start_config:
Add a flag `force' (VF_FORCECONFIG) to force name changes of
  existing drives.
config_drive:
  If the drive already has a vinum label, and name doesn't match the
  specified drive, do it anyway if the 'force' flag is specified.
finish_config:
  Reset the `force' flag.

Continually-tripped-over-by:  Karl Pielorz <kpielorz@tdx.co.uk>

give_sd_to_drive:
  If the drive is down, take the subdisk down and don't try to fix
  things.

update_plex_config:
  Don't try to update the config parameters of a plex which isn't
  fully configured (state plex_init or plex_unallocated).

  Correctly calculate the amount to trim off a striped or RAID-5 plex
  whose size is not a multiple of the stripe size.
1999-03-23 04:47:09 +00:00
n_hibma
acbe2b49be Cosmetical changes. 1999-03-22 19:58:59 +00:00
n_hibma
14b4156fdf Implementation of the keyboard driver.
Done by: Kazutaka YOKOTA <yokota@zodiac.mech.utsunomiya-u.ac.jp>
1999-03-22 19:55:30 +00:00
n_hibma
2988bfb936 Moved timeout initialisation a bit earlier in the process. The
untimeout function triggered panics once in a while.
1999-03-22 19:52:28 +00:00
wes
04cf1f5338 Turn on PCI bus mastering in driver attach routine
to avoid hanging the system if the BIOS has not
initialized the interface.

PR:		10150
Reviewed by:	dg
1999-03-20 04:51:25 +00:00
grog
e88ccd2db1 Define two superdevices for vinum(8), depending on whether they are
compiled with or without debugging support.  This enables us to catch
(fatal) mismatches between the kernel and userland.

Coalesce flags VINUM_DISKCONFIG and VINUM_READING_CONFIG.  They did
essentially the same thing.

Add VINUM_BIGDRIVE for pretending we have macho hardware.
1999-03-19 07:19:52 +00:00
grog
0aafc00816 VolState: return an enum volumestate, not a (non-existent) enum volstate.
Strangely, neither gcc nor EGCS noticed this bug.

Eagle-eyed by: arno@heho.snv.jussieu.fr (Arno J. Klaassen)
1999-03-19 07:17:05 +00:00
grog
ca3cc12652 Perform all of vinumstrategy at splbio. This doesn't appear
necessary, but might explain some weird problems that some people have
been getting.
1999-03-19 07:15:24 +00:00
grog
0d7fe43c55 Use microtime, not getmicrotime, to note the times in the malloc and
free histories.
1999-03-19 07:14:18 +00:00
grog
3ee7660ddf Add debug flags DEBUG_BIGDRIVE, designed for testing only. It
pretends that each drive is 100 times as large as it really is.  Not
for use at home.

Coalesce flags VINUM_DISKCONFIG and VINUM_READING_CONFIG.  They did
essentially the same thing.
1999-03-19 07:13:31 +00:00
grog
039959b573 Coalesce flags VINUM_DISKCONFIG and VINUM_READING_CONFIG. They did
essentially the same thing.

Reset flags at the right point at the end of configuration.  The
previous code disabled configuration saving at the end.
1999-03-19 07:10:19 +00:00
grog
eaa56945d5 free_vinum: don't change loop bounds for deleting drives while in the loop.
This solved a problem where 'vinum resetconfig' only reset half
	    the drives.

Reported-by:  Brad Knowles <blk@skynet.be>
	      Karl Pielorz <kpielorz@tdx.co.uk>

Change the super device.  We now have three super devices:

  1.  The normal superdevice used by vinum(8).
  2.  The superdevice used by vinum(8) when compiled with debug support.
  3.  The superdevice used by the daemon.

This method allows vinum(8) to determine debug mismatches.  Also check
correctly for the device type.  The old code did not check all bits of
the minor number.

  Reported-by: a cast of thousands, most recently by Brad Knowles
               <blk@skynet.be>.
1999-03-19 07:08:40 +00:00
grog
b32b7445f8 Modify to compile with egcs.
Prodded-by: obrien
1999-03-18 23:26:22 +00:00
luigi
be6e5ad345 MF22... add bridging support to the device drivers. Without this
bridging cannot work on -current/releng3!
1999-03-17 16:44:53 +00:00
mjacob
4563b08ab3 Prep for 1080/1240 support. Those fine h/w engineers at Qlogic
gave yet another internal register layout model for what is
*still* the same architecture. I hope they saved billyuns of gates
'coz otherwise this is *really* annoying.
1999-03-17 05:07:18 +00:00
mjacob
4921f37566 A wad of changes- prepping for 1080/1240 support (which caused a massive
thwank in register layout goop). A different mboxcmd approach. Some PDB change
infrastructure. Some better management of loopdown/loopup events (keep them
distinct from resource starvation for simq freeze/unfreeze actions).
1999-03-17 05:04:39 +00:00
julian
6bfe262c23 Submitted by: Matt Dillon <dillon@freebsd.org>
The old VN device broke in -4.x when the definition of B_PAGING
changed. This patch fixes this plus implements additional capabilities.
The new VN device can be backed by a file ( as per normal ), or it can
be directly backed by swap.

Due to dependencies in VM include files  (on opt_xxx options) the new
vn device cannot be a module yet. This will be fixed in a later commit.
This commit delimitted by tags {PRE,POST}_MATT_VNDEV
1999-03-14 09:20:01 +00:00
peter
737eef1bc9 Merge NetBSD 1.80->1.82 changes from vendor branch into mainline. 1999-03-14 08:32:52 +00:00
semenu
d1f7b2d7ee Implemented workaround for EPIC's Application Note 7-15 (concerning
chip int. and ext. clock synchronisation). Fixed workaround for
transmit threshold underrun. Added volatile keyword to CSR_READ_* and
CSR_WRITE_* macroses. Added DELAYs to eliminate randomness caused
by processor speed. Fixed all TXCON and RXCON registers to be accessed
only when chip is idle, as manual told. Changed epic_init_phy to
drop link by isolating and going loopback, should should force link
partner to restart autonegotiation.

PR: kern/10535,	kern/9742, kern/10575
Submitted by:	Peter Jeremy, David Greenman
1999-03-14 08:30:23 +00:00
grog
fd3e7331d2 deallocrqg: deallocate the correct object, also check that the object
is really in the chain.
1999-03-14 04:04:23 +00:00
phk
89369e3450 Reduce Bruce-filter verbosity. 1999-03-13 16:22:18 +00:00
joerg
5d7f7bd333 Make NDGBPORTS an official option. 1999-03-13 13:20:59 +00:00
peter
c732ae542a set if_snd.ifq_maxlen to something reasonable - note that if_de.c has
a wierd double-queue arrangement..  It always empties the if_snd queue
then puts the transmit packets into a different queue that is limited
by the number of TX descriptors and does it's own discards...
This should stop the boot-time XXX warning anyway.
1999-03-13 09:21:27 +00:00
grog
e47b3afeef Change prototype of vinum_inactive. 1999-03-13 07:46:34 +00:00
grog
0a228caafe Remove opencount from vinum_conf and struct vol, and disk index from
struct vol.

Add time to struct mc, remove KVA crud.

Add debug flags DEBUG_EOFINFO and DEBUG_MEMFREE.
1999-03-13 07:40:52 +00:00
grog
5f07112b3f Part of removing vol->opencount: now we just use a flag. 1999-03-13 07:39:17 +00:00
grog
77dc046db9 Add DEBUG_EOFINFO log messages. 1999-03-13 07:38:27 +00:00
grog
1ef337f178 Remove antique crud.
MMalloc: save the time at which the request was granted, remove more
crud.

FFree: add a circular buffer of the last 64 Free requests if
DEBUG_MEMFREE is set.
1999-03-13 07:37:44 +00:00
grog
3085bbc791 lock_drive: report on and recover from an obscure situation where the
daemon can deadlock against itself.
1999-03-13 07:35:40 +00:00
grog
ffcf48f7f7 VINUM_RESETCONFIG: do the reset even if the config is open (as it has
to be for us to issue the ioctl :-).  Also remove the opencount
parameter of the config, which just never worked.
1999-03-13 07:34:56 +00:00
grog
1f8604255f Don't frob vp->v_usecount, it scares the hell out of the driver under
certain circumstances.
1999-03-13 07:33:37 +00:00
grog
64fd27f0dc Change the way of recognizing whether a plex was given to a volume
after the volume had been fully operational; involves a change in the
use of the VF_NEWBORN flag.  Now if you add a plex to a volume which
is up, the plex will be down and the subdisks stale.  You need to
explicitly start the subdisks, which copies data from the good
subdisks to the uninitialized ones.

Stumbled-over-by: Ludwig Pummer <ludwigp@bigfoot.com>

give_sd_to_drive:
   correct method to give the entire largest chunk of drive to the
   subdisk.  Now it's enough to specify a length, and vinum will give
   you as much as it can.  Not to be recommended except for empty
   drives.

   Correct a bogon which made vinum refuse to give the last sector of
   a drive to a subdisk.

   Last-reported-by: Ludwig Pummer <ludwigp@bigfoot.com>

Change %q formats to %ll before the former go away.  This doesn't make
much difference, since kernel kvprintf currently doesn't support
either, and the messages in question are just error messages.
1999-03-13 07:32:40 +00:00
grog
8f02d06140 vinum_inactive: distinguish whether we care whether the config
is open or not.
1999-03-13 07:22:00 +00:00
dg
69c3a2389f Fixed variable overflow problem.
Obtained from:	NetBSD via Mark J. Taylor <mtaylor@cybernet.com>
1999-03-11 18:50:39 +00:00
phk
bb660c3f27 Make even more of the PPSAPI implementations generic.
FLL support in hardpps()

Various magic shuffles and improved comments

Style fixes from Bruce.
1999-03-11 15:09:51 +00:00
yokota
2658c827d8 Keyboard driver update in preparation for the USB keyboard driver.
- Refined internal interface in keyboard drivers so that:
  1. the side effect of device probe is kept minimal,
  2. polling mode function is added,
  3. and new ioctl and configuration options are added (see below).

- Added new ioctl: KDSETREPEAT
  Set keyboard typematic rate.  There has existed an ioctl command,
  KDSETRAD, for the same purpose.  However, KDSETRAD is dependent on
  the AT keyboard.  KDSETREPEAT provides more generic interface.
  KDSETRAD will still be supported in the atkbd driver.

- Added new configuration options:
  ATKBD_DFLT_KEYMAP
  Specify a keymap to be used as the default, built-in keymap.
  (There has been undocumented options, DKKEYMAP, UKKEYMAP, GRKEYMAP,
  SWKEYMAP, RUKEYMAP, ESKEYMAP, and ISKEYMAP to set the default keymap.
  These options are now gone for good.  The new option is more general.)

  KBD_DISABLE_KEYMAP_LOADING
  Don't allow the user to change the keymap.
1999-03-10 10:36:53 +00:00
julian
01ac04537d Submitted by: Larry Lile
Move the Olicom token ring driver to the officially sanctionned location of
/sys/contrib. Also fix some brokenness in the generic token ring support.

Be warned that if_dl.h has been changed and SOME programs might
like recompilation.
1999-03-10 10:11:43 +00:00
mjacob
570f2d6871 Don't forget to remove devstat entries when taking
down the CCD device.
1999-03-10 00:41:27 +00:00
andreas
686c6df99b Fix from author of the driver:
The i++ loop from 1..1000 is too small on very fast machines like
PII 450 MHz. Increasing the loop from 1..100000 lets the machine
access PHY. After this patch it's possible to use a SMC PCI card
on a HP Kayak XA series PC Workstation. Workaround until this fix
was to enable debugging in the driver (#define EPIC_DEBUG 1).

Without that patch you get an undefined state:
while true
do
ifconfig -a | grep status:
done
The status messages flaps between twwo values, but not
"connected".

Obtained from:	Ustimenko Semen <semen@iclub.nsu.ru>
1999-03-09 17:30:12 +00:00
yokota
b9efda7fa5 Don't free() a NULL pointer! 1999-03-09 14:23:14 +00:00
gibbs
5c923358e7 Clean up and order register definitions. 1999-03-08 22:43:23 +00:00
gibbs
c40b29e76f Add necessary splcam() protection around target mode setup and teardown
routines as well as card access that occurs for the AC_LOST_DEVICE async
event.
1999-03-08 22:42:52 +00:00
n_hibma
dce89af9a6 Move untimeout up before call to uhci_ii_done, avoids panic in
untimeout.

Submitted by Kazutaka YOKOTA <yokota@zodiac.mech.utsunomiya-u.ac.jp>
and gehenna@jp.FreeBSD.org.
1999-03-08 22:27:07 +00:00
gibbs
4931cbccd2 Add bt_port_probe() a routine shared by the EISA and ISA probe code to
determine IRQ and DRQ information.

Fix a bug that would cause us to attempt to retrieve extended sync
rate information on cards/firmware revs that do not support that command.
1999-03-08 21:36:34 +00:00
gibbs
904fa46143 Ask the card where our interrupt is instead of attempting to use the EISA
config info.  On early revision cards (742a), the EISA register space,
other than the location used to determine the address of the card's main
command ports, is write only.
1999-03-08 21:35:03 +00:00
gibbs
04b7722813 Pull 'ISA style' probe where interrupt information is determined through
commands sent to card, into the base driver module.  It is now used for
EISA board probes too.
1999-03-08 21:32:59 +00:00
sos
91f52ac12d ZIP drives should now be working, I'm not sure about LS120 drives,
reports on those most welcome!

Fixed problems:

    Hang on probe on "fantom" devices.
	The probe now use a timeout to avoid hangs if no interrupt
	is recevied.

There has also been more general code clenaups, and some reorgs.
1999-03-07 21:49:14 +00:00
gibbs
b231be20c2 Poll for bus reset completion instead of assuming that our interrupt
is enabled.
1999-03-05 23:37:07 +00:00
gibbs
bcc18f2914 Keep track of negotiated transfer parameters for each initiator<->target
connection.

Clean up support for devices featuring the multiple target SCSI ID feature.
On aic7890/91/96/97 chips, we can now assume the target role on multiple
target ids simultaneously.  Although these chips also have sufficient
instruction space to hold to support the initiator and target role at the
same time, the initiator role is currently disabled as it will conflict
(chip design restriction) with the multi-tid feature.  I'll probably add
a nob to enable the initiator (there-by disabling multi-tid) some time
in the future.

Return queue full or busy, depending on the tagged nature of the incoming
request, if our command input queue fills up in host memeory.

Deal with accept target I/O resource shortages.

If we get an underrun on a transaction that wasn't supposed to transmit
any data, don't attempt to print out the S/G list.  The code would
run until hitting a non-present page. (oops)
1999-03-05 23:35:48 +00:00
gibbs
a914838391 Modify to deal with changes in the storage of user negotiation settings. 1999-03-05 23:28:42 +00:00