1
0
mirror of https://git.FreeBSD.org/src.git synced 2024-12-29 12:03:03 +00:00
Commit Graph

53524 Commits

Author SHA1 Message Date
Justin T. Gibbs
dd1290f033 aic7xxx.c:
Filter incoming transfer negotiation requests to ensure they
	never exceed the settings specified by the user.

	In restart sequencer attempt to deal with a bug in the aic7895.
	If a third party reset occurs at just the right time, the
	stack register can lock up.  When restarting the sequencer
	after handling the SCSI reset, poke SEQADDR1 before resting
	the sequencers program counter.

	When something strange happens, dump the card's transaction
	state via ahc_dump_card_state().  This should aid in debugging.

	Handle request sense transactions via the QINFIFO instead of
	attaching them to the waiting queue directly.  The waiting
	queue consumes card SCB resources and, in the pathological case
	of every target on the bus beating our selection attemps and
	issuing a check condition, could have caused us to run out
	of SCBs.  I have never seen this happen, and only early
	cards with 3 or 4 SCBs had any real chance of ever getting
	into this state.

	Add additional sequencer interrupt codes to support firmware
	diagnostics.  The diagnostic code is enabled with the
	AHC_DEBUG_SEQUENCER kernel option.

	Make it possible to switch into and out of target mode on
	the fly.  The card comes up by default as an initiator but
	will switch into target mode as soon as an enable lun operation
	is performed.  As always, target mode behavior is gated
	by the AHC_TMODE_ENABLE kernel option so most users will
	not be affected by this change.

	In ahc_update_target_msg_request(), also issue a new
	request if the ppr_options have changed.

	Never issue a PPR as a target.  It is forbidden by the spec.

	Correct a bug in ahc_parse_msg() that prevented us from
	responding to PPR messages as a target.

	Mark SCBs that are on the untagged queue with a flag instead
	of checking several fields in the SCB to see if the SCB should
	be on the queue.  This makes it easier for things like automatic
	request sense requests to be queued without touching the
	untagged queues even though they are untagged requests.

	When dealing with ignore wide residue messages that occur
	in the middle of a transfer, reset HADDR, not SHADDR for
	non-ultra2 chips.  Although SHADDR is where the firmware
	fetches the ending transfer address for a save data pointers
	request, it is readonly. Setting HADDR has the side effect
	of also updating SHADDR.

	Cleanup the output of ahc_dump_card_state() by nulling out the
	free scb list in the non-paging case.  The free list is only
	used if we must page SCBs.

	Correct the transmission of cdbs > 12 bytes in length.  When
	swapping HSCBs prior to notifing the sequencer of the new
	transaction, the bus address pointer for the cdb must also
	be recalculated to reflect its new location.  We now defer
	the calculation of the cdb address until just before queing
	it to the card.

	When pulling transfer negotiation settings out of scratch
	ram, convert 5MHz/clock doubled settings to 10MHz.

	Add a new function ahc_qinfifo_requeue_tail() for use by
	error recovery actions and auto-request sense operations.
	These operations always occur when the sequencer is paused,
	so we can avoid the extra expense incurred in the normal
	SCB queue method.

	Use the BMOV instruction for all single byte moves on
	controllers that support it.  The bmov instruction is
	twice as fast as an AND with an immediate of 0xFF as
	is used on older controllers.

	Correct a few bugs in ahc_dump_card_state().  If we have
	hardware assisted queue registers, use them to get the
	sequencer's idea of the head of the queue.  When enumerating
	the untagged queue, it helps to use the correct index for
	the queue.

aic7xxx.h:

	Indicate via a feature flag, which controllers can take
	on both the target and the initiator role at the same time.

	Add the AHC_SEQUENCER_DEBUG flag.

	Add the SCB_CDB32_PTR flag used for dealing with cdbs
	with lengths between 13 and 32 bytes.

	Add new prototypes.

aic7xxx.reg:
	Allow the SCSIBUSL register to be written to.  This is
	required to fix a selection timeout problem on the 7892/99.

	Cleanup the sequencer interrupt codes so that all debugging
	codes are grouped at the end of the list.

	Correct the definition of the ULTRA_ENB and DISC_DSB locations
	in scratch ram.  This prevented the driver from properly honoring
	these settings when no serial eeprom was available.

	Remove an unused sequencer flag.

aic7xxx.seq:
	Just before a potential select-out, clear the SCSIBUSL
	register.  Occasionally, during a selection timeout, the
	contents of the register may be presented on the bus,
	causing much confusion.

	Add sequencer diagnostic code to detect software and or
	hardware bugs.  The code attempts to verify most list
	operations so any corruption is caught before it occurs.
	We also track information about why a particular reconnection
	request was rejected.

	Don't clobber the digital REQ/ACK filter setting in SXFRCTL0
	when clearing the channel.

	Fix a target mode bug that would cause us to return busy
	status instead of queue full in respnse to a tagged transaction.

	Cleanup the overrun case.  It turns out that by simply
	butting the chip in bitbucket mode, it will ack any
	bytes until the phase changes.  This drasticaly simplifies
	things.

	Prior to leaving the data phase, make sure that the S/G
	preload queue is empty.

	Remove code to place a request sense request on the waiting
	queue.  This is all handled by the kernel now.

	Change the semantics of "findSCB".  In the past, findSCB
	ensured that a freshly paged in SCB appeared on the disconnected
	list.  The problem with this is that there is no guarantee that
	the paged in SCB is for a disconnected transation.  We now
	defer any list manipulation to the caller who usually discards
	the SCB via the free list.

	Inline some busy target table operations.

	Add a critical section to protect adding an SCB to
	the disconnected list.

aic7xxx_freebsd.c:
	Handle changes in the transfer negotiation setting API
	to filter incoming requests.  No filtering is necessary
	for "goal" requests from the XPT.

	Set the SCB_CDB32_PTR flag when queing a transaction with
	a large cdb.

	In ahc_timeout, only take action if the active SCB is
	the timedout SCB.  This deals with the case of two
	transactions to the same device with different timeout
	values.

	Use ahc_qinfifo_requeu_tail() instead of home grown
	version.

aic7xxx_inline.h:
	Honor SCB_CDB32_PTR when queuing a new request.

aic7xxx_pci.c:
	Use the maximum data fifo threshold for all chips.
2000-10-31 18:43:29 +00:00
Justin T. Gibbs
a08d5a42df Add the aic7xxx option AHC_DEBUG_SEQUENCER. This enables some diagnostic
code in the firmware downloaded to the aic7xxx RISC engine.
2000-10-31 18:01:15 +00:00
Justin T. Gibbs
df7addf026 0x03F -> 0x3F for consistancy with the rest of the file. 2000-10-31 18:00:23 +00:00
Justin T. Gibbs
04b1132484 Allow async transfer negotiation updates to modify tagging behavior.
The XPT uses this to prevent tags from being used on parallel SCSI
interfaces immediately after a bus reset or BDR so that controllers
have an oportunity to renegotiate without tag messages in the way.
Somehow this got disabled... the functionality has been here for
quite some time.

Noticed by: my SCSI bus analyzer
2000-10-31 17:59:43 +00:00
John Baldwin
bfbc104f8a Use do { ... } while (0) to wrap the body of mtx_assert().
Reported by:	rwatson
2000-10-31 17:20:55 +00:00
Julian Elischer
7ccbb17bb3 Swap the order of two tags in the pppoe PADI and PADS packets
as there are apparently some buggy switches that need them in that order.
(I hope there aren't any that require them in the old order!)
2000-10-31 14:40:23 +00:00
Roger Hardiman
def1ddf3a8 Fix typo in comments 2000-10-31 14:30:29 +00:00
Jeroen Ruigrok van der Werven
3051954cb4 Resolve conflicts. 2000-10-31 14:19:55 +00:00
Jeroen Ruigrok van der Werven
da1b4bb715 This commit was generated by cvs2svn to compensate for changes in r68073,
which included commits to RCS files with non-trunk default branches.
2000-10-31 14:17:05 +00:00
Jeroen Ruigrok van der Werven
015944e3a5 Virgin import of BIND v8.2.3-T6B 2000-10-31 14:17:05 +00:00
Jeroen Ruigrok van der Werven
29c9277956 Fix a fundamental error. The device is not owned by the parent
bus before allocation.  The resource is.

Asked about by:	julian on -current
Verified by:	msmith
2000-10-31 13:16:47 +00:00
Roger Hardiman
51c5172097 Upgrade to driver 2.18
Support for new Hauppauge Model 44xxx WinTV Cards
(the ones with no audio mux)

Submitted by:	Christian Gusenbauer <Christian.Gusenbauer@netway.at>
2000-10-31 13:09:56 +00:00
Jeroen Ruigrok van der Werven
bc3a71005f Resolve conflicts. 2000-10-31 12:38:22 +00:00
Jeroen Ruigrok van der Werven
0fa5b6b1ab Virgin import of BIND v8.2.3-T6B 2000-10-31 12:35:45 +00:00
Jeroen Ruigrok van der Werven
054caa0371 This commit was generated by cvs2svn to compensate for changes in r68068,
which included commits to RCS files with non-trunk default branches.
2000-10-31 12:35:45 +00:00
Takanori Watanabe
840f9b5317 If acpica driver is loaded using kldload(8), warn and just ignore. 2000-10-31 11:54:10 +00:00
David E. O'Brien
1d266bf638 Quiet -Wall. 2000-10-31 11:36:33 +00:00
Poul-Henning Kamp
a16d0eb2d7 Deprecate devsw->d_bmaj entirely.
This removes support for booting current kernels with very old bootblocks.

Device driver writers: Please remove initializations for the d_bmaj
field in your cdevsw{}.
2000-10-31 10:58:14 +00:00
Hellmuth Michaelis
ba72024c93 Add missing redirection to /dev/null to prevent disturbing
of fullscreen display.
2000-10-31 10:00:51 +00:00
Hellmuth Michaelis
11d402ab1d Don't issue a warning if isdncontroller is set to -1 2000-10-31 09:59:04 +00:00
Ruslan Ermilov
48cb400fb1 Do not waste a time saving a copy of IP header if we are certainly
not going to send an ICMP error message (net.inet.udp.blackhole=1).
2000-10-31 09:13:02 +00:00
Poul-Henning Kamp
9005f14a3b Remove unused #includes.
Approved by:	nyan
2000-10-31 08:22:26 +00:00
Yoshihiro Takahashi
168d542ea5 Disabled EGA/VGA 1bpp/4bpp modes support. This is not real fix, but this comes
back to support 8bpp mode.
2000-10-31 07:58:34 +00:00
Tatsumi Hosokawa
0a3cb3425f I forgot the driver configuration file for mfsroot.flp.
http://people.freebsd.org/~hosokawa/driver-floppy/ for details.

Reviewed by:	current@FreeBSD.org
2000-10-31 07:41:38 +00:00
Tatsumi Hosokawa
b98c5f70ff Moved driver modules for some PCI NICs and PCCARD-only NICs to mfsroot.flp.
http://people.freebsd.org/~hosokawa/driver-floppy/ for details.

Reviewed by:	current@FreeBSD.org
2000-10-31 07:39:07 +00:00
Greg Lehey
0ba3999559 Correct a bignum.
Detected-by: 	lang/clisp
Approved-by:	jkh
2000-10-31 07:20:46 +00:00
Jordan K. Hubbard
ff7d516252 Add support for virgin disklabels
Submitted by:	dillon
2000-10-31 07:07:39 +00:00
Jordan K. Hubbard
e7c2b5a51d Add a new ioctl for doing virgin disklabels.
Submitted by:	dillon
2000-10-31 07:05:40 +00:00
MIHIRA Sanpei Yoshiro
cda33ccbd5 remove duplicated item.
"Laneed Wireless card" is "ELECOM *Laneed*
Air@Hawk/LD-WL11/PCC Wireless card" which
was already committed.
2000-10-31 06:19:58 +00:00
Matt Jacob
aa0898c0e0 I'm dropping the MAINTAINER request and see what happens. If it becomes
too hard for me to keep in sync with other platforms, FreeBSD will go
it's own way.
2000-10-31 05:55:54 +00:00
Kris Kennaway
4147bd4426 Filter out some more magic environment variables used by libraries linked
with telnetd. This should really be done with a positive filter - i.e.
only allow through a configured list of variables.

Also do some buffer-safety cleanups while I'm here - I don't think these
are exploitable.
2000-10-31 05:29:54 +00:00
Tatsumi Hosokawa
85c2b43f35 Forgotten RELEASE_CRUNCH hack for mppe.c.
This fix is for "make release" and "make boot.flp".
2000-10-31 05:00:25 +00:00
Takanori Watanabe
e927e6a1c0 Makefile for ACPI CA base acpi driver kernel module.
This module is intended to be loaded from /boot/loader,not from kldload(8).
2000-10-31 04:09:35 +00:00
MIHIRA Sanpei Yoshiro
3637a0ce8b Oops, in previous commit(rev.1.4), I replaced
pitch and duration only in ``struct'', I forgot
to replace these in sysbeep and timeout, sorry.
2000-10-31 03:28:02 +00:00
Andrew Gallatin
84aa58ab03 fix the sigaltstack hack by lowering the stack size to the original value
if the request was for less than MINSIGSTKSZ (in which case we "round up").
discussed with: marcel
2000-10-31 03:10:41 +00:00
Brian Somers
fbf0385368 Use the new-style ngpppoe_init_data structure.
Approved by: archie
2000-10-31 02:46:12 +00:00
Brian Somers
76a70671fc Change the format of ngpppoe_init_data so that the provider is NUL
terminated and the data_len field is no longer necessary.

Add ASCII2BINARY and BINARY2ASCII capabilities.

The old format is still understood and dealt with, but can't do
the ASCII2BINARY and BINARY2ASCII stuff.

Approved by: archie
2000-10-31 02:45:24 +00:00
David E. O'Brien
a07101ab73 Remove vestages of a previous implimentation of "-h".
Submitted by:	Tony Finch <dot@dotat.at>
2000-10-31 02:26:10 +00:00
Brian Somers
58b1e45d5d Mention that ``nat deny_incoming'' drops unrecognised IP packets.
Requested by: kris
2000-10-31 02:25:54 +00:00
Takanori Watanabe
0df282c2e4 Add pcib_if location to list of *.m files. 2000-10-31 02:25:20 +00:00
Robert Watson
98965adac8 o Document various sysctl's available for managing services available
within jail()
2000-10-31 01:47:59 +00:00
Robert Watson
cb1f0db9db o Deny access to System V IPC from within jail by default, as in the
current implementation, jail neither virtualizes the Sys V IPC namespace,
  nor provides inter-jail protections on IPC objects.
o Support for System V IPC can be enabled by setting jail.sysvipc_allowed=1
  using sysctl.
o This is not the "real fix" which involves virtualizing the System V
  IPC namespace, but prevents processes within jail from influencing those
  outside of jail when not approved by the administrator.

Reported by:	Paulo Fragoso <paulo@nlink.com.br>
2000-10-31 01:34:00 +00:00
Mark Murray
f7261d9c5f Convert the de driver into a loadable module. Still missing is an
unload method. Lots of old cruft is removed.

Thanks to WPaul for large clue-injection and debugging services.

Reviewed by:	wpaul
2000-10-31 01:25:10 +00:00
David E. O'Brien
bd6216a121 GCC uses .asm files on the Alpha for crt{begin,end}.o rather than
crtstuff.c as they do for other platforms.

Moral support from:	jdp
2000-10-31 01:06:28 +00:00
Mike Smith
f704b43d99 Move 'tw*' after 'twe*' so that it's possible to create the control device
for the 'twe' driver.  This is an expedient solution for an
actually-manifesting symptom of a major problem with MAKEDEV.  Roll on
DEVFS.
2000-10-31 00:21:41 +00:00
Bill Paul
e99285a4f7 Call dc_apply_fixup() in dc_setcfg() for the MII case. 2000-10-31 00:06:39 +00:00
Bill Paul
5d801891d3 Grrr. The 'reg' variable in dc_apply_fixup() needs to be a u_int32_t, not
a u_int8_t. Pass the conical hat. This should fix certain cardbus 21143
cards that require SROM h0h0magic in order to enable their transceivers.
2000-10-30 23:51:39 +00:00
Jordan K. Hubbard
a911f71629 Changes have been made to support a concept of VAR_FIXIT_TTY being
standard or serial.  This change needs to be done to the entire system that
depends on this.  This way we don't have some code using OnVTY checks
and other doing
        strcmp(variable_get(VAR_FIXIT_TTY), "standard") == 0
checks.  Also we need to set VAR_FIXIT_TTY to "serial" if we come up on
a serial console.

Also fixed a dialog problem in that dialog was used when dialog was
disabled causing some troubles such as not letting the cursor keys
work when exiting the fixit mode on media (ie. not the fixit shell but
for example fixit on a floppy).

Submitted by:	Doug Ambrisko <ambrisko@whistle.com>
PR:		22352
2000-10-30 23:46:12 +00:00
John Baldwin
4ce9d25de4 Add an entry for the Xircom 10/100 Network PC Card adapter. 2000-10-30 23:34:44 +00:00
Scott Long
96b8a53d48 Update to reflect that the XPT device can accept path inquiry commands.
Reviewed by:	gibbs
2000-10-30 23:33:39 +00:00