79602 Commits

Author SHA1 Message Date
scottl
cbcc6c0caa Add a manual page for the ahd driver. 2002-09-01 07:34:47 +00:00
tjr
3c7d05d837 Typo: refer to MB_LEN_MAX instead of MB_CHAR_MAX (which does not exist). 2002-09-01 07:21:58 +00:00
scottl
abed8239c8 Use the correct bit value for a debug options 2002-09-01 07:14:26 +00:00
scottl
f555de9981 Remove options that don't actually exist (in this form). 2002-09-01 07:13:10 +00:00
tjr
2e5584e864 Add restrict qualifiers to the arguments of mbstowcs, mbtowc() and
wcstombs().
2002-09-01 07:08:22 +00:00
mike
8485252733 Bump __FreeBSD_version for _BSD_FOO_T_ to _FOO_T_DECLARED switch.
This should have been committed about a week ago to coincide with the
actual changes.
2002-09-01 04:49:38 +00:00
mjacob
d9cfb70fec Upgrade to latest QLogic f/w from their intranet site for 2100, 2200 and
2300 cards.

MFC after:	1 day
2002-09-01 02:28:36 +00:00
obrien
5734f78aa3 Fix xterm-color so that it (1) doesn't bitch on exit, (2) doesn't restore
the pre-run screen.

Desired by:	alfred, peter, mini
2002-09-01 02:04:42 +00:00
jmallett
685f567d90 Stylistic fixes for the inclusion of the opt_puc.h header, so it comes from the
right places, and so it's sorted consistently with how all the other N-hundreds
of files ding this do it.

Submitted by:	Hiten Pandya <hiten@uk.FreeBSD.org>
2002-09-01 01:59:38 +00:00
mike
02b206400e Fix a memory leak. 2002-09-01 01:49:27 +00:00
peter
6840044b4e 'aicasm optional ahc ahd' means 'build aicasm only if BOTH ahc and ahd
are specified'.  Ie: it is a logical and, not a logical or.
2002-08-31 23:30:16 +00:00
dwmalone
31d77eaa65 Spell Ken Olsen's name the same way everywhere.
PR:		7434
2002-08-31 23:15:41 +00:00
trhodes
2d54012414 use 'file system superblock' for the error message. This will match other
disk utilities.

Discussed with:		bde
2002-08-31 21:34:54 +00:00
dillon
1703af0c56 Reduce the maximum KVA reserved for swap meta structures from 70 to 32 MB.
Reduce the swap meta calculation by a factor of 2, it's still massive overkill.

X-MFC after: immediately
2002-08-31 21:15:29 +00:00
obrien
9e3c08d6b1 Update for 2.12.1 20-July-2002 import. 2002-08-31 20:57:53 +00:00
obrien
d88a845623 Merge rev 1.6 (ELF_DYNAMIC_INTERPRETER) into Binutils 2.12_20020720. 2002-08-31 20:38:58 +00:00
phk
1ea87921ab More cleaning up and unhacking:
Don't expect all RIDs to be PCI rids.  The previous code made at
least 1 mistake, even for PCI.

Give the card definitions a chance to specify a init function.
Use this instead of the gross superio hack.
Move the win877 init function to puc_pci.c where it belongs.

RIDs can actually be zero, don't set badmuxed if so.

Set a less incorrect end for the construct SYS_RES_IOPORT entries,
I guess both sio and lpt happen to use 8 IO ports, but that shouldn't
really be hardcoded this way.

Fixup puc_pccard.c to match.

We're getting closer.
2002-08-31 20:29:46 +00:00
kris
ed521becb9 Don't treat unknown commands as fatal errors: they are probably just
the signature of out-of-date pkg_tools and newer packages.

Reviewed by:	jkh
MFC after:	3 days
2002-08-31 20:21:47 +00:00
obrien
f2f47abcd4 This commit was generated by cvs2svn to compensate for changes in r102729,
which included commits to RCS files with non-trunk default branches.
2002-08-31 20:20:07 +00:00
obrien
0570468a60 Import of Binutils from the FSF 2.12 branch (post-.1 release). 2002-08-31 20:20:07 +00:00
jake
ffe6f08557 Make this compile. 2002-08-31 19:33:59 +00:00
phk
11f9714e60 Don't enable PUC_DEBUG by accident 2002-08-31 18:42:31 +00:00
phk
edb326987a Split the puc driver in pci specific and generic parts.
Add a pccard frontend for it as well.

The PCcard stuff does not work yet because there is still some PCImagic
left in puc.c
2002-08-31 18:38:43 +00:00
imp
480c5ff48a Make modems work:
Don't set the CCR_OPTION register when registering/deregistering
interrupts unless the card is a MFC card.  This makes a lot of cards
work that didn't work before.  These bits are only defined for MFC
cards.

Remove COOKIE_FOR_WARNER kludges that phk introduced.

Add more debug info.

Annoy the purists by committing two minor style nits at the same time.

Many thanks to phk.  He tracked this problem down to what was screwing
things up, so fixing it became trivially easy once the problem was
understood.
2002-08-31 18:34:30 +00:00
gibbs
95bc8730df Add cleandepend target. 2002-08-31 17:15:43 +00:00
phk
bcd9be0b7d Different and more correct workaround for broken cards under NEWCARD:
don't spam the configuration index register.

I'm not sure where those bits truly belong, but spamming the config
index sure doesn't do us any good.
2002-08-31 16:07:17 +00:00
gibbs
15f3647566 Pass the cleandir target on to the aicasm Makefile. This should
fix the buildkernel target.
2002-08-31 14:50:46 +00:00
phk
18afceec82 Ignore all config entries which have a non-zero start I/O address.
This is a bandaid which makes some more PCCards work under NEWCARD
which would otherwise not work.

Cards with only fixed address windows still loose.
2002-08-31 14:38:24 +00:00
tjr
ca719015df Implement the XSI extension which allows the destination string to be
NULL, and returns the number of bytes that would be required to store
the result of the conversion without storing anything.

PR:		17694
2002-08-31 14:16:12 +00:00
yar
624d02ba22 New release notes: ftpd(8) -m, -M, -W
MFCs noted: ftpd(8) -o, -O
2002-08-31 14:08:57 +00:00
tjr
4a4fda0f86 Split ansi.c into a separate source file for each function. 2002-08-31 11:26:55 +00:00
peter
e9b6904091 Deal with bootstrapping from an old -current (almost exactly a year old)
which fails the make tests (doesn't understand ${notdef:U}) and therefore
fails on __FBSDID in usr.bin/make/*.  -DBOOTSTRAPPING is no help here since
this is before we are using the new share/mk/* files, and it would conflict
with the builtin -DBOOTSTRAPPING support later.. so use a different flag.
2002-08-31 07:18:40 +00:00
gibbs
956a397806 Complete the hookup of ahd/ahc module building. 2002-08-31 06:57:50 +00:00
gibbs
f742d6ed37 Enable ahd/ahc register pretty printing by default. This expedites
handling of bug reports.
2002-08-31 06:56:43 +00:00
gibbs
33ed809319 Add support for ahd/ahc register pretty printing in diagnostics.
This feature can be disabled via the AHD/AHC_REG_PRETTY_PRINT kernel
option.

The ahc driver now uses the same debug options mechanism as ahd:
AHC_DEBUG 	- Compile in debugging code
AHC_DEBUG_OPTS	- String of debug options as listed in aic7xxx.h
2002-08-31 06:55:59 +00:00
gibbs
55f7d935a9 Sync perforce Ids. 2002-08-31 06:53:06 +00:00
gibbs
9c9597b81a Identify new controllers and the aic7901A.
Move interrupt enable to the OSM.

Remove some debugging messages.

Remove chip bug workarounds for non-production asics.
2002-08-31 06:52:27 +00:00
gibbs
37a065ecf0 Hook up the endian macros.
Correct some comments.
2002-08-31 06:51:51 +00:00
gibbs
9d6ae32264 Enable card interrupts in our OSM rather than in the core.
This ensures that we don't enter our interrupt handler until
all OSM components it might reference have been fully initialized
during attach.

Remove vestiges of untagged queue handling.

Add hints to ahd_get_scb() so it knows what type of SCB collision
management to perform for each new transaction.

Properly disable/enable IU_REQ with changes in tagged queuing and
disconnection settings passed in by CAM.
2002-08-31 06:51:15 +00:00
gibbs
c32b716b69 Correct lun representation during packetized operation.
Uninline some routines that are just too big to be inlined.

Add some helper macros for SCB ID collision management.

Use a hardware SCB rather than a full SCB for the "next
SCB to queue" sentinal.

Update for new "high SCBID bit" qoutfifo delivery scheme.

If interrupts are disabled on the card, don't bother running
our interrupt handler.  Our handler was called due to a shared
interrupt, and the card's interrupts are explicitly disabled
to prevent entry into our interrupt handler.
2002-08-31 06:50:39 +00:00
gibbs
e69206fb17 Add a prefix to be used for assembler generated tables and
functions for register pretty-printing.

Implement "top bit of SCBID is valid bit" qoutfifo delivery scheme.

"the the" -> "the".

Remove old and never used tag collision chain handling in the
sequencer.  Tag collisions are never allowed to get as far as
on the controller.

Simplify busy target table handling routines.

Update comments to reflect reality.

Add support for catching more protocol violations.

Correct a bug in data fifo handling in mixed packetized and
non-packetized environments.  SG_STATE must be cleared even
if an SG fetch is not in progress at the time of FIFO shutdown
or we may confuse the non-packetized transaction idle-loop.
2002-08-31 06:49:55 +00:00
gibbs
a9d25def03 Convert to new assembler field syntax.
Add preliminary Rev B definitions.

Add QOUTFIFO_ENTRY_VALID_TAG for new qoufifo scheme.

Reserve SCB space for large luns.
2002-08-31 06:49:11 +00:00
gibbs
8661e9a06c Updates for new non-packetized SCB-ID collision avoidance,
busy target table addressing changes, our qoufifo scheme,
and long lun support.

Drop bus reset hold delay to 25us.

Remove chip workarounds for revisions that never went to
production.

Add aic7901A identification information.

Remove untagged queue logic.
2002-08-31 06:48:42 +00:00
gibbs
bd78286a39 Identify the AIC7901A as such instead of an AIC7902.
Push protocol violation handler to its own routine.  We now
properly detect and recovery from the following target induced
protocol violations:
	o Unexpected or invalid non-packetized Relesection
	o Command complete with no status message
	o Good Status after incomplete cdb transfer

Add an SCB collision avoidance algorithm that allows us to
use all 512 SCBs for non-packetized operations.  There is
still the possibility of running out of SCBs with non-colliding
tag identifiers, but the algorithm ensures that the stall will
be rare and short lived.

Convert to a read-only algorithm for validing entries in the
qoufifo.  The sequencer now toggles the high bit of the SCB
identifier on each wrap around of the qinfifo.  If the high
bit doesn't match the expected value for this pass of the
qoufifo, the entry is not valid.  This has the benefit of
working on machines that have large granularity cache write
back semantics without requiring any additional memory.

Remove lots of code related to untagged SCB queues.  Since
these controllers can keep a fully busy target table, we
will never have untagged SCB queues.

Lots of improvements to diagnostic logging.

Clarify some comments.

Don't clear BUSFREE interrupt enable in SIMODE1 in the SELTO
handler.  Just clearing the interrupt status is sufficient and
this avoids the chance of disabling busfree detection in connection
that occurs while we are handling the busfree interrupt.

Clear all possible interrupt sources when handling a busfree
interrupt.  The hardware clears some but not all of them.

Don't panic if we get into the default SCSIINT handler.
Dump the card state and clear all interrupt sources in the
hope that we can continue.

LASTPHASE != PREVPHASE.  Use the correct PREVPHASE for testing
against values in the PERRDIAG register.

According to SPI4, the bus free that is required after certain
PPR negotiations will only occur at the end of all message phases.
Handle the bus free if it occurs after a transaction in either
the message-in or message-out phases.  The busfree can also occur
if the status of IU_REQ changes due to a WDTR or SDTR message.
We now set the expect busfree flag in ahd_set_syncrate so that
it works regardless of message type.

Correct a problem with missing certain busfree events.  The
chip supports single-stepping even if a SCSIINT is pending.
This obviates the need to clear all of the SCSI interrupt enables
prior to single stepping.  Since ENBUSFREE can only be disabled
manually and not re-enabled, avoiding touching this bit in the
single-step case yields reliable bus free detection.

Enhance ahd_clear_intstat to clear all SCSIINT sources.

Only use ahd_update_pending_scbs() if we are active on the
bus.  We cannot modify the "MK_MESSAGE" bits on SCBs in the
execution queue if a selection might be in process since
the sequencer uses this bit to detect PPR negotiation to
a target with an outstanding IU_REQ agreement.

Allocate the SCB delivery mechansim's sentinal SCB specially
so we don't waste a valid SCB for this task.

Move tranceive state settle logic to ahd_chip_init() since
this needs to occur after every chip reset, not just the
chip reset that happens during primary driver initialization.

Correct a bug with transmitting lun information in packetized
connections.

Restrict busy target table operations to the range of luns
that can be used for non-packetized connections.  Larger luns
can only be accessed in packetized mode.

Correct a busy target table addressing bug.

Be more careful about how we shutdown the DMA engines during
bus reset events.

Only freeze the SIMQ once regardless of the number of bus
reset events that occur while we are polling for the resets
to stop.

Don't rely on the sequencer remaining paused() during our
reset poll.  It is safe for the sequencer to run during this
time, and many callers to the bus reset code would need to
be modified to make this assumption universally true.

Even if we are not going to clobber SCB state when an auto-request
sense SCB has a check condition, we must still unfreeze the queue.
Re-arrange the BAD STATUS handler to handle this case appropriately.

Modify the SCB download size depending on whether long luns are
being stored in the SCB.

Add ahd_print_register() for pretty printing register diagnostics.

Don't trust that the flexport logic to detect the presence of
a seeprom is available.  It may not be on some motherboard
implementations.

"the the" -> "the"
2002-08-31 06:48:14 +00:00
gibbs
b78a8f46b5 If interrupts are disabled on the card, don't bother running
our interrupt handler.  Our handler was called due to a shared
interrupt, and the card's interrupts are explicitly disabled
to prevent entry into our interrupt handler.
2002-08-31 06:46:37 +00:00
gibbs
50acf70bd7 Update Perforce Ids. 2002-08-31 06:45:28 +00:00
gibbs
02c6814e72 Move interrupt enable into the OSM.
Set the AHC_LSCBS_ENABLED softc flag appropriately.

Convert to using softc storage for our seeprom data.

Break seeprom parsing out into a separate routine.

Change our policy in regards to AHC_SPIOCAP so that we
will allow auto-termination to take place on some aic7855
based cards.

Remove initialized but never really used variables.
2002-08-31 06:44:56 +00:00
gibbs
82788c3a66 Cleanup endian macros.
Honor the AHC_REG_PRETTY_PRINT option.

Add lock placeholders for new locks used by the core.  These
are not currently needed for FreeBSD.
2002-08-31 06:44:20 +00:00
gibbs
ce7ac83562 Enable card interrupts from the OSM.
Use "offset == 0" not "period == 0" to denote async trasnfers.

Implement TARG_IMMEDIATE_SCB non-disconnected target mode
SCB delivery scheme.

In our timeout handler, don't rely on the phase already being
set to denote an active connection.  IDENTIFY_SEEN is more
than sufficient.

Verify that the softc passed in ahc_detach is still known
to the driver before blindly using it.
2002-08-31 06:43:55 +00:00
gibbs
55b47b8af9 Add a prefix to be used for assembler generated tables and
functions for register pretty-printing.

Only clear SELDO once we've recorded enough information for
the host to understand that the connection is valid.  The
host uses the SELDO status as a handshake to close this
race window.

Correct a bug in target mode handling of non-disconnected
transactions.  The host would indicate the correct SCB to
DMA by setting the SCB id in the currently selected hardware
SCB.  Unfortunately, we would then immediated allocate a
hardware SCB which, depending on the access patern might not
be the same hardware SCB that the host setup for us.  Avoid
this by having the host put the SCBID into scratch ram.
2002-08-31 06:43:15 +00:00