89605 Commits

Author SHA1 Message Date
Wilko Bulte
61c7d26dfc Add more detail on CPUs to AS4100 section based on some experimentation.
Minor misc. wordsmithing
2003-05-04 20:25:53 +00:00
Poul-Henning Kamp
5d853216d2 Add transparent handling of mbroffset for backwards compatibility. 2003-05-04 19:27:22 +00:00
Poul-Henning Kamp
b624374de8 Only accept a rawoffset if it is identical to the mbroffset. 2003-05-04 19:26:31 +00:00
Poul-Henning Kamp
7f9e81b703 Add a way to read the current mbroffset from a BSD label class. 2003-05-04 19:25:48 +00:00
Poul-Henning Kamp
1ee055e692 Add gctl_set_param() function. 2003-05-04 19:24:34 +00:00
Alan Cox
f7dd7b637b Extend the scope of the vm_object lock in vm_object_terminate(). 2003-05-04 19:23:40 +00:00
Poul-Henning Kamp
ce40bcd0d1 Remove debugging printfs which should not have been committed. 2003-05-04 18:48:25 +00:00
David E. O'Brien
1628730478 This is now Gcc 3.3 WARNS 6 clean. 2003-05-04 18:34:00 +00:00
David E. O'Brien
bbe4999bd1 Set abitag __unused. 2003-05-04 18:33:26 +00:00
Søren Schmidt
64ff745cf5 Change the way loadbalancing works on RAID1's.
Based on code partially by me and by <Tor.Egge@cvsup.no.freebsd.org>.
2003-05-04 16:17:54 +00:00
Daniel Eischen
40791d9d15 Fix suspend and resume.
Submitted (in part) by:	Kazuaki Oda <kaakun@highway.ne.jp>
2003-05-04 16:17:01 +00:00
Warner Losh
452855111a fix typo in TI1515 ID. 2003-05-04 12:49:37 +00:00
Søren Schmidt
cf764e45ae Implement dump function for ATA RAID's. Minor fixes by me...
Submitted by: Tor Egge <Tor.Egge@cvsup.no.freebsd.org>
2003-05-04 12:16:47 +00:00
Søren Schmidt
08b25cc045 Add support for using the CDROM env var for device to use;
PR: 38178
2003-05-04 10:09:57 +00:00
Søren Schmidt
01c31bbeca Fix filename printing when using -l option.
PR: 43574
2003-05-04 10:03:15 +00:00
Søren Schmidt
295d40f6b6 Dont fixate when doing dvdrw or test writing.
PR:	47195
2003-05-04 09:55:46 +00:00
Søren Schmidt
515b360c81 Default speed is 4 not 1.
PR: 50474
2003-05-04 09:53:05 +00:00
Søren Schmidt
0a2b02fe0a Added more descriptive error outputs.
PR:	46096
2003-05-04 09:51:06 +00:00
Søren Schmidt
9c51ecf436 Grap the ATA lock on all channels before suspend, this makes certain
that we have no outstanding ops in transit, which would cause problems
on resume.
2003-05-04 09:34:14 +00:00
Søren Schmidt
7ed6898c2f On getting status print the stripesize on RAID0's. 2003-05-04 09:28:43 +00:00
Murray Stokely
dab0c25bf9 Fix a bunch of typos and grammatical errors.
PR:		docs/40234
Submitted by:	Chris Pepper <pepper@rockefeller.edu>  (mostly)
MFC After:	3 days
2003-05-04 08:23:24 +00:00
Scott Long
b243b76c82 Eliminate the separate malloc type for the sparing table. 2003-05-04 07:41:07 +00:00
Scott Long
185416b425 Add a missing __inline. Strange that gcc never complained about it.
Implement udf_readlblks() in terms of RDSECTOR.
2003-05-04 07:40:29 +00:00
Scott Long
1830bca169 Correctly calculate the size of the extent that should be read in
udf_readatoffset().  This should fixe problems with reading udf filesystems
created with mkisofs.
2003-05-04 07:39:11 +00:00
Jake Burkholder
6e11162c7b Forgot to update string and signal tables when some of the trap types
changed.
2003-05-04 07:21:04 +00:00
Alan Cox
c4a1d732a3 Avoid a lock-order reversal and implement vm_object locking
in vm_pageout_page_free().
2003-05-04 06:56:27 +00:00
Murray Stokely
df788a526f Document the login-backoff and login-retries capabilities.
PR:		docs/51397
MFC After:	3 days
2003-05-04 06:43:24 +00:00
Warner Losh
a26df538d2 Document a workaround for getting past the groff infinite loop problem
when your userland is older tahn your kernel and Makefile.inc1 therefore
thinks that you don't need to rebuild groff, when in fact you do.  This
workaround is to set OSRELDATE to 500110 before building, but only if you
have a new enough Makefile.inc1.

I've confirmed this on my laptop, which was suffering from this problem.
Since it only hits power users, we'll naively assume that such users are
smart enough to read UPDATING.
2003-05-04 06:26:30 +00:00
Murray Stokely
5add5cc474 Remove man page reference for gated, as it isn't in the base system
nor is it available from the ports tree.
2003-05-04 06:17:38 +00:00
Murray Stokely
6f34d4fe78 Note that gated is a commercial routing product now, and remove
references to it's man page, which is almost never installed on a
FreeBSD system.  The information about using this command with gated
has been retained.  I have just made it clear that gated is not a part
of FreeBSD.

PR:		docs/51407
2003-05-04 06:13:25 +00:00
Warner Losh
cf808dab3f Grab some of the latest TI cardbus bridge IDs. Inspired by a similar
commit to NetBSD.  I'll add these to various tables soon.
2003-05-04 06:10:05 +00:00
Martin Blapp
aa2e39baed My previous commit broke builds for restricted namespaces. Add
a underscore to fix this.

Reviewed by:	peter
2003-05-04 05:57:50 +00:00
Greg Lehey
1b8afd3984 Forced commit. Grr: I used the wrong text before. Here's the correct
information.

Rewrite of startup code:

vinum_scandisk:

  1.  Hand a string with device names, not a table and length.  This
      is the way we get it at system startup time.  This also means
      that we don't insist on a /dev in the names.
  2.  Allocate drive list dynamically.
  3.  If passed a null drive list, use kern.disks as a list to search.
2003-05-04 05:20:56 +00:00
Greg Lehey
af5e35e6ad Update declaration of vinum_scandisk (only one parameter). 2003-05-04 05:19:48 +00:00
Greg Lehey
f911210e72 Rewrite of startup code:
Add ioctl VINUM_READCONFIG which implements both the "read" and
"start" commands in vinum(8).  Aim for marginally better error
messages when something goes wrong.
2003-05-04 05:16:02 +00:00
Greg Lehey
8ffac9562e Rewrite of startup code:
Add ioctl VINUM_READCONFIG which implements both the "read" and
"start" commands in vinum(8).
2003-05-04 05:15:32 +00:00
Greg Lehey
acf0d9331b Rewrite of startup code:
parse_config: Remove kw_read case.  It's not used any more.

parse_user_config: Remove check for failed read.
2003-05-04 05:15:07 +00:00
Greg Lehey
60500a5ca2 Rewrite of startup code:
vinumattach: Move the startup code to vinum_scandisk.
2003-05-04 05:13:45 +00:00
Greg Lehey
888c270436 Rewrite of startup code:
vinum_read:
  Accept 0 parameters, hand an empty string to the kernel if so.
  Use new ioctl VINUM_READCONFIG, not VINUM_CREATE, to read config.

vinum_start: When passed 0 parameters, drop the devstat kludge and
     call vinum_read instead.  It's no longer necessary to distinguish
     between "start" and "read" if no parameters are passed, and
     probably one of them should go away.
2003-05-04 05:13:17 +00:00
Warner Losh
22bd4d16b6 Many developers run with userland != to kernel. While this isn't
supported, it usually works for months at a time.  Allow these people
to override the OSRELDATE of their installed world when things don't
match and the exact OSRELDATE matters and is different than the
kernel.  Now that Makefile.inc1 depends more and more about which date
you have to optimize the pieces it builds, it may be necessary to
pessimize things if its guesses are wrong.

If OSRELDATE is already set, we won't fork the sysctl to find out what
the kernel's date is.

Developers on IRC suggested that they run mismatches all the time as
well.

Reviewed by: obrien
2003-05-04 04:14:10 +00:00
Scott Long
c9c0dc5bcd Implement the node cache as a hash table. 2003-05-04 03:40:11 +00:00
David E. O'Brien
77b7cdf199 Use __FBSDID vs. rcsid[]. Also protect sccs[] and copyright[] from GCC 3.3. 2003-05-04 02:54:49 +00:00
David E. O'Brien
1542dbb49a Use __FBSDID vs. rcsid[]. 2003-05-04 02:51:42 +00:00
Paul Saab
20430a6b04 Something I missed in my tree.
If the media changes, poke the DSP on the 5401/5411 Broadcom PHY's.

Obtained from:	NetBSD
2003-05-04 02:03:20 +00:00
Yoshihiro Takahashi
8c78720918 KSE is useful for pc98. 2003-05-04 02:02:48 +00:00
David E. O'Brien
22e9bc15f9 Use __FBSDID vs. rcsid[]. 2003-05-04 00:59:13 +00:00
David E. O'Brien
78af18bd24 Fix signed/unsigned comparison warnings. 2003-05-04 00:56:00 +00:00
David E. O'Brien
8f5f415d44 Fix a sign/unsigned comparison. 2003-05-04 00:43:39 +00:00
Justin T. Gibbs
d7cff4ab97 Correct spelling errors.
Switch to handling bad SCSI status as a sequencer interrupt
instead of having the kernel proccess these failures via
the completion queue.  This is done because:

 o The old scheme required us to pause the sequencer and clear
   critical sections for each SCB.  It seems that these pause
   actions, if coincident with a sequencer FIFO interrupt, would
   result in a FIFO interrupt getting lost or directing to the
   wrong FIFO.  This caused hangs when the driver was stressed
   under high "queue full" loads.
 o The completion code assumed that it was always called with
   the sequencer running.  This may not be the case in timeout
   processing where completions occur manually via
   ahd_pause_and_flushwork().
 o With this scheme, the extra expense of clearing critical
   sections is avoided since the sequencer will only self pause
   once all pending selections have cleared and it is not in
   a critical section.

  aic79xx.c
	Add code to handle the new BAD_SCB_STATUS sequencer
	interrupt code.  This just redirects the SCB through
	the already existing ahd_complete_scb() code path.
	Remove code in ahd_handle_scsi_status() that paused
	the sequencer, made sure that no selections where
	pending, and cleared critical sections.  Bad
	status SCBs are now only processed when all of these
	conditions are true.

  aic79xx.reg:
	Add the BAD_SCB_STATUS sequencer interrupt code.

  aic79xx.seq:
	When completing an SCB upload to the host, if
	we are doing this because the SCB contains non-zero
	SCSI status, defer completing the SCB until there
	are no pending selection events.  When completing
	these SCBs, use the new BAD_SCB_STATUS sequencer
	interrupt.  For all other uploaded SCBs (currently
	only for underruns), the SCB is completed via the
	normal done queue.  Additionally, keep the SCB that
	is currently being uploaded on the COMPLETE_DMA_SCB
	list until the dma is completed, not just until the
	DMA is started.  This ensures that the DMA is restarted
	properly should the host disable the DMA transfer for
	some reason.

	In our RevA workaround for Maxtor drives, guard against
	the host pausing us while trying to pause I/O until the
	first data-valid REQ by clearing the current snapshot
	so that we can tell if the transfer has completed prior
	to us noticing the REQINIT status.

	In cfg4data_intr, shave off an instruction before getting
	the data path running by adding an entrypoint to the
	overrun handler to also increment the FIFO use count.

	In the overrun handler, be sure to clear our LONGJMP
	address in both exit paths.

Perform a few sequencer optimizations.

  aic79xx.c:
	Print the full path from the SCB when a packetized
	status overrun occurs.

	Remove references to LONGJMP_SCB which is being
	removed from firmware usage.

	Print the new SCB_FIFO_USE_COUNT field in the
	per-SCB section of ahd_dump_card_state().  The
	SCB_TAG field is now re-used by the sequencer,
	so it no longer makes sense to reference this
	field in the kernel driver.

  aic79xx.h:
	Re-arrange fields in the hardware SCB from largest
	size type to smallest.  This makes it easier to
	move fields without changing field alignment.

	The hardware scb tag field is now down near the
	"spare" portion of the SCB to facilitate reuse
	by the sequencer.

  aic79xx.reg:
	Remove LONGJMP_ADDR.

	Rearrange SCB fields to match aic79xx.h.
	Add SCB_FIFO_USE_COUNT as the first byte
	of the SCB_TAG field.

  aic79xx.seq:
	Add a per-SCB "Fifos in use count" field and use
	it to determine when it is safe (all data posted)
	to deliver status back to the host.  The old method
	involved polling one or both FIFOs to verify that
	the current task did not have pending data.  This
	makes running down the GSFIFO very cheap, so we
	will empty the GSFIFO in one idle loop pass in
	all cases.

	Use this simplification of the completion process
	to prune down the data FIFO teardown sequencer for
	packetized transfers.  Much more code is now shared
	between the data residual and transfer complete cases.

	Correct some issues in the packetized status handler.
	It used to be possible to CLRCHN our FIFO before status
	had fully transferred to the host.  We also failed to
	handle NONPACKREQ phases that could occur should a CRC
	error occur during transmission of the status data packet.

Correct a few big endian issues:

  aic79xx.c:
  aic79xx_inline.h:
  aic79xx_pci.c:
  aic79xx_osm.c:
	o Always get the SCB's tag via the SCB_GET_TAG acccessor
	o Add missing use of byte swapping macros when touching
	  hscb fields.
	o Don't double swap SEEPROM data when it is printed.
	  Correct a big-endian bug.  We cannot assign a
	o When assigning a 32bit LE variable to a 64bit LE
	  variable, we must be explict about how the words
	  of the 64bit LE variable are initialized.  Cast to
	  (uint32_t*) to do this.

aic79xx.c:
	In ahd_clear_critical_section(), hit CRLSCSIINT
	after restoring the interrupt masks to avoid what
	appears to be a glitch on SCSIINT.  Any real SCSIINT
	status will be persistent and will immidiately
	reset SCSIINT.  This clear should only get rid of
	spurious SCSIINTs.

	This glitch was the cause of the "Unexpected PKT busfree"
	status that occurred under high queue full loads

	Call ahd_fini_scbdata() after shutdown so that
	any ahd_chip_init() routine that might access
	SCB data will not access free'd memory.

	Reset the bus on an IOERR since the chip doesn't
	seem to reset to the new voltage level without
	this.

	Change offset calculation for scatter gather maps
	so that the calculation is correct if an integral
	multiple of sg lists does not fit in the allocation
	size.

	Adjust bus dma tag for data buffers based on 39BIT
	addressing flag in our softc.

	Use the QFREEZE count to simplify ahd_pause_and_flushworkd().
	We can thus rely on the sequencer eventually clearing ENSELO.

	In ahd_abort_scbs(), fix a bug that could potentially
	corrupt sequencer state.  The saved SCB was being
	restored in the SCSI mode instead of the saved mode.
	It turns out that the SCB did not need to be saved at all
	as the scbptr is already restored by all subroutines
	called during this function that modify that register.

aic79xx.c:
aic79xx.h:
aic79xx_pci.c:
	Add support for parsing the seeprom vital product
	data.  The VPD data are currently unused.

aic79xx.h:
aic79xx.seq:
aic79xx_pci.c:
	Add a firmware workaround to make the LED blink
	brighter during packetized operations on the H2A.

aic79xx_inline.h:
	The host does not use timer interrupts, so don't
	gate our decision on whether or not to unpause
	the sequencer on whether or not a timer interrupt
	is pending.
2003-05-04 00:20:07 +00:00
Paul Saab
3927098f93 Implement the write twice to send producer index workaround for
BCM5700 chips as described in the Broadcom Errata documents.

Obtained from:	NetBSD and Broadcom Errata documentation
2003-05-04 00:07:21 +00:00