Commit Graph

26 Commits

Author SHA1 Message Date
peter
dc1b9002a0 Bring the 'new-bus' to the i386. This extensively changes the way the
i386 platform boots, it is no longer ISA-centric, and is fully dynamic.
Most old drivers compile and run without modification via 'compatability
shims' to enable a smoother transition.  eisa, isapnp and pccard* are
not yet using the new resource manager.  Once fully converted, all drivers
will be loadable, including PCI and ISA.

(Some other changes appear to have snuck in, including a port of Soren's
 ATA driver to the Alpha.  Soren, back this out if you need to.)

This is a checkpoint of work-in-progress, but is quite functional.

The bulk of the work was done over the last few years by Doug Rabson and
Garrett Wollman.

Approved by:	core
1999-04-16 21:22:55 +00:00
eivind
e18e01c670 Staticize. 1999-04-11 02:55:52 +00:00
imp
d6204f0ff7 Better logging when the Geometry register probe fails. 1999-03-02 20:56:07 +00:00
imp
f4a3c77e86 o enable plug and play support for the aha driver. Given the cumbersome
pnp system in freebsd, I'm not sure how useful this will be, but my
  1542CP seems to work well in plug and play mode and does seem to
  probe correctly at all the oddball addresses/irq/drqs that I tried.
  [[
     I was unable to get /kernel.conf or /kernel.config to read in, so
     I wasn't able to verify that this method of userconfig works.  that's
     one thing that makes pnp so hard to use in the current scheme.
     Pointers to the right new way of doing this accepted.
  ]]
o Add some kludges to maybe bring support for 1540A/1542A into the
  driver.  Since I have no 154xA cards, and the only person I know
  that has them hasn't given me feedback, I'm making this commit
  blind.
o Honor unit numbers that are in the config file now.  This allows one
  to hard wire the unit numbers (and have high unit numbers for plug
  and pray devices, which can't seem to be hardwired) and have the
  cards not migrate from aha1 -> aha0 should aha0 go on the fritz.  I
  didn't verify that hard wired scsi busses would work, but did verify
  that hard wired aha addresses did work to a limited extent.  Both
  aha0 and aha1 must be hardwired, or when the card that was in aha0
  goes away, the probe for aha0 might pick up the card that otherwise
  would have been aha1.
1999-01-20 06:21:27 +00:00
imp
0fe14c5c5c Invalid is spelled with the v *BEFORE* the a. 1998-12-22 22:31:06 +00:00
gibbs
b02ac91ee3 Don't calculate the residual twice. 1998-12-22 18:14:50 +00:00
imp
3993a0c3df o Convert length of hccb to integer from the array. Eivind Eklund
pointed this out, but I've not seen a manifestation of this.
o Check against 0x00 as well as 0xff for geometry register, as some clone
  cards don't return 0xff.  Vadim Mikhailov pointed this out in PR
  8743 for his Dell SCSI Array controller working in AHA-1540
  emulation mode.  Note that this test is likely to go away in the
  future in favor of a better one Justin has recommended.
1998-12-15 02:51:54 +00:00
gibbs
b0a5a5e11b Pull in fixes similar to those recently committed to the bt driver:
- For transactions of 0 length, us a non-residual checking CCB type.

 - Preserve command status if our interrupt handler completes a command
   while we are polling for completion in aha_cmd.
1998-12-13 00:05:04 +00:00
archie
dcdc1187e3 Examine all occurrences of sprintf(), strcat(), and str[n]cpy()
for possible buffer overflow problems. Replaced most sprintf()'s
with snprintf(); for others cases, added terminating NUL bytes where
appropriate, replaced constants like "16" with sizeof(), etc.

These changes include several bug fixes, but most changes are for
maintainability's sake. Any instance where it wasn't "immediately
obvious" that a buffer overflow could not occur was made safer.

Reviewed by:	Bruce Evans <bde@zeta.org.au>
Reviewed by:	Matthew Dillon <dillon@apollo.backplane.com>
Reviewed by:	Mike Spengler <mks@networkcs.com>
1998-12-04 22:54:57 +00:00
imp
72632e38cc o Patch, slightly altered, from Graham Menhennitt for older aha 1542B
cards.  My machine didn't tickle this problem, so I can't tell if
  it fixed anything or not.  However, it didn't break my already working
  1542-{B,C,CF,CP} probes.
o Minor comment correction
o Minor correction in printf
1998-11-25 19:12:56 +00:00
gibbs
18cff7f98b Noop Commit - Change was in last revision.
If the next available mailbox is not in the free state, print a warning
and handle the condition as a temporary resource shortage.  The condition
should never happen, but we shouldn't panic since recovery is possible.
1998-11-10 06:47:11 +00:00
gibbs
82e8381385 Fix probes when a port address is specified. 1998-11-10 06:44:54 +00:00
gibbs
aaacaecba2 Fix probes when a port address is specified.
Convert from BT'isms to AHA'isms

Don't fail the probe if the illegal command bit is set in the status
register.  If the BusLogic MultiMaster probe preceeded us, it may well
have determined that the card we are attaching to was not a true MultiMaster
by sending us a command that fails on the 154X.

Reset the adapter before doing the inquiry.  This provides extra sanity
and will also clear the illegal command status bit that my be left over
from the MultiMaster probe.
1998-11-10 06:44:42 +00:00
gibbs
75d0bd6286 -Wunused cleanup.
Submitted by:	Poul-Henning Kamp <phk@freebsd.org>
1998-10-15 23:46:33 +00:00
imp
576f72b4a0 Reduce the number of ccbs to 16, per the aha documentation. Move
bogus comment to proper place.

This should fix the hangs people are seeing under very heavy load, at
least it does for me.  Please let me know if you continue to have
problems.
1998-10-15 19:53:30 +00:00
imp
f4a82702ff Fix breakage introduced by last patch. bde has added CC_QUIET flag to
hasseen_isadev so this will be less noisy when conflicts do exist.
Also eliminate redundant warnings about conflicts.

Requested by: bde
Reviewed by: gibbs
1998-10-12 18:53:33 +00:00
imp
d0e138a0ae Fix conficts in probe:
o For bt and aha only probe the one I/O range if a specific I/O is specified
  in the config file.
o Don't even try to probe I/O ranges that have been seen already.
o If we conflict with an IRQ or DRQ, then fail the probe.

Requested by: bde, gibbs
Approved by: jkh
1998-10-10 00:44:12 +00:00
gibbs
1b52ceb57f Hook up ahapoll so that dumps, synchronize cache commands or any other
command that comes in through xpt_polled_action works correctly.
1998-10-09 21:38:36 +00:00
imp
b7d4dd9c63 GC unused stuff. 1998-10-02 04:37:49 +00:00
imp
e8dc5f22c7 Misc cleanup and probe rework:
o Use the board id command to find out what kind of board
	  we're talking to.  If we're talking to a board that is has
	  an ID that is shared between boards supported by the aha
	  driver and the bt driver, then use the bt's geometry
	  register to weed out the bt cards.  Otherwise assume that we
	  support this card.
	o Remove bt esetup command sending to the card.  It seems to
	  wedge too many cards.
	o Revert to doing a soft reset after an invalid command.  This
	  change didn't fix anything, so I'm backing it out.  The
	  whole issue of card resetting needs to be revisisted at some
	  point so that we can do it properly on all hardware.
	o GC unused stuff in some places.
1998-10-01 04:53:55 +00:00
imp
4ab4ae1766 Perform a hard reset on cards when the command fails. This should help
those people that have cards that become wedged when a bogus command is
issued that are too wedged to have a soft reset help.
1998-09-30 00:10:44 +00:00
imp
bb9799eb68 Several minor cleanups, inspired by bug reports and the old driver:
o Unlock mailbox interface if we have a new card.  Before only newer cards
  (B or newer) that had the BIOS disabled would probe.  Cards with the
  BIOS enabled would fail to probe in the mailbox initialization code.
o Increase the number of ccbs and sg to 17 from 16 to support 64k I/O
  on a non page aligned boundary.  Ideas for dynamic determination of this
  value welcomed, as more of these are better.
o Took credit for this driver, even though I derived it from Justin's code.
  Made sure that Justin's copyright from bt.c was preserved, along with
  his name, since the error handling code is nearly identical.  Add my
  own, identical copyright.  Point people to aha_isa.c.

Cards tested: 1542C and 1542CF.  The B and CP might work now as well,
but logistical problems precluded me from testing them this evening
(if you have jumper settings for the B card, please send me private
mail).
1998-09-29 06:50:21 +00:00
bde
67375efaa6 Removed unused include of "ioconf.h" again. The CAM changes made ioconf.h
empty but regressed to including it here.
1998-09-24 10:43:42 +00:00
gibbs
2a4452ee7c Use %p with (void *) casts to print pointers with printf. 1998-09-17 00:08:29 +00:00
gibbs
1d85032947 Fix printf format bugs. 1998-09-16 03:27:12 +00:00
gibbs
c52f410ee6 Adaptec 154X SCSI-Host Adapter driver for CAM.
Submitted by:	Warner Losh <imp@village.org>
1998-09-15 07:39:55 +00:00