| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
software (aka Linux).
|
| |
|
|
|
|
| |
the ahc_init routine.
|
|
|
|
| |
ready for it yet.
|
| |
|
|
|
|
|
| |
Change the autotermination code slightly to be more careful on narrow
adapters.
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add auto-termination support as well as support for setting the high byte
termination. Booting with '-v' will display the settings that the driver
chose. If you stick narrow devices onto the external wide port, you had
better make sure that your converter cable terminates the bus, you have a
wide device on there that terminates the bus, or you manually set the
termination properly in SCSI-Select instead of using "Automatic". The
code will get the setting right regardless if you *don't* have internal
wide devices in this type of configuration. Unfortunatly this is a limitation
of the design of the Adaptec cards.
|
|
|
|
|
|
| |
should not be required anymore.
Turn on ULTRA for cards that don't have a BIOS or SEEPROM.
|
|
|
|
|
|
|
|
| |
This will make a number of things easier in the future, as well as (finally!)
avoiding the Id-smashing problem which has plagued developers for so long.
Boy, I'm glad we're not using sup anymore. This update would have been
insane otherwise.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
uses one or the other. This required some changes to the ahc_reset()
function, and how early the probes had to allocate their softc.
Turn the AHC_IN/OUT* macros into inline functions and lowercase their names
to indicate this change. Geting AHC_OUTSB to work as a macro doing
conditional memory mapped I/O would have been too gross.
Be smart about the STPWEN control bit in SCFRCTL1. It should only be set
if the low byte of the bus is to be terminated. We figure this out either
by "caching" the value left over from the BIOS setup before we reset the card
or by using the values stored in the seeprom if it is availible.
|
|
|
|
|
|
|
|
|
| |
7810 being either the last of the first device to be probed, so use a counting
scheme instead to determine when one card ends and another begins. There may
be a better way to do this by decoding the PCI tag, which I will investigate
later.
2.2 Candidate.
|
|
|
|
|
|
|
|
|
|
|
|
| |
This involves expanding the support of the SEEPROM routines to deal with
the larger SEEPROMs on these cards and providing a mechanism to share
SCB arrays between multiple controllers.
Most of the 398X support came from Dan Eischer.
ahc_data -> ahc_softc
Clean up some more type bogons I missed from the last pass.
|
|
|
|
| |
- Add support for memory mapped I/O.
|
| |
|
| |
|
|
|
|
| |
if SCSIID is something other than 0.
|
|
|
|
|
|
|
| |
NetBSD/OpenBSD support Submitted by:Noriyuki Soda <soda@sra.co.jp>,
Pete Bentley <pete@demon.net>,
Charles M. Hannum <mycroft@mit.edu>,
Theo de Raadt <deraadt@theos.com>
|
|
|
|
| |
right patch file.<sigh>
|
|
|
|
| |
as all 0s or all 1s after POST if there is no BIOS installed.
|
|
|
|
|
| |
not 0xff after POST, so test for that when trying to determine if a BIOS
intialized the card for us.
|
| |
|
|
|
|
|
|
|
| |
Add missing splx() in one error case during probes.
Remove unnecessary return and break.
Submitted by: Noriyuki Soda <soda@sra.co.jp>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
a BIOS was not installed, this will still be true by the time we probe
the chip. We use this heuristic to determine if we should use the left
over scratch ram target settings for controllers that don't have an
SEEPROM. We also "snapshot" the host adapter SCSI id and whether ultra
is enabled or not and use these values if a BIOS was installed. The card
will act as if a BIOS was installed even if there wasn't one if you warm
reboot, but since the scratch ram area is still valid in this case, its
hardly worth the effort of writing a shutdown routing that clears out
the scratch ram. This should make users of motherboard controllers
happy.
|
|
|
|
|
|
|
|
| |
(HP motherboard aic7850 controllers).
Properly handle 4 bit controller SCSI IDs.
Update my copyright.
|
|
|
|
|
|
|
|
|
|
| |
Use new XS_SELTIMEOUT error code for selection timeouts.
aic7870.c:
Move SCB walking code to aic7xxx.c and make it work for all card types.
The flag AHC_EXTSCB is no longer needed since the SCBs are walked in
all cases now.
|
|
|
|
| |
set to a device id above 7 to screw up the data fifo setting.
|
|
|
|
|
|
|
|
|
| |
Cleanse the SCSI subsystem of its internally defined types
u_int32, u_int16, u_int8, int32, int16, int8.
Use the system defined *_t types instead.
aic7870.c:
Handle Seeprom data a little better.
|
| |
|
|
|
|
| |
Reviewed by: davidg
|
| |
|
|
|
|
|
|
|
|
| |
space (whoops!).
Add a missing argument to the cachesize/lattime printf.
Set the CACHETHEN bit in DSCommand.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Simplify the initialization of adapters by pulling all card specific
initialization to the card specific modules.
Set the Latency timer and Burst len to good values if thery are not
initialized during post or are reset during chip reset.
Properly identify and handle external SCB SRAM. The code was false
id'ing 255 SCBs on aic7880 chips.
Reviewed by: David Greenman <davidg@FreeBSd.org>
|
| |
|
| |
|
|
|
|
| |
Use ahcintr directly as interrupt handler.
|
|
|
|
|
|
|
| |
incompatible with the type of a PCI interrupt handler. A new entry
point `ahc_pci_intr()' is used for PCI. ISA and PCI interrupts are
penalized equally (:-) by calling a common handler `ahc_intr()'. This
should be reorganized. Some strings now name the wrong function...
|
|
|
|
|
|
|
|
| |
If RAMENB is set in devconfig, walk the external SCBs. Some Intel Xpress
motherboards set this bit.
For external SCBs for the 3940. It doesn't set RAMPS or RAMENB, but does
have the ram.
|
|
|
|
|
|
|
|
| |
for now since I don't have any documentation on this card yet and it
is software compatible with the earlier cards.
The 2940 *Ultra* is Adaptec's push to take SCSI to 20MHz bus rates. Its
based on the aic7880 chip which is the successor to the aic7870.
|
|
|
|
|
| |
Count the number of detected 3940 controllers. Tag all even controllers
as being the "B Channel".
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
to poll succesfully even if we are sharing the interrupt.
Register the interrupt handler before the attach.
This commit makes the 294x PCI shared interrupt compliant. This has
been tested with an aic7870 motherboard controller and a 294x in the
same machine shareing an irq.
|
|
|
|
|
|
|
| |
a device specific shutdown routine for devconf. Assign the value of this
to the kern_devconf struct. Implement a device shutdown routine for if_de
that disables the device. This will stop the device from corrupting memory
after a reboot.
|
|
|
|
|
|
| |
DATA_SET (pcidevice_set, ahc_device) macro. Maybe this will allow
the aic7870 to be probed again. I don't have a PCI machine here
to test it.
|
|
|
|
|
| |
and moved at the same time. This made it *very* difficult to fix the
revision log lossage that happend when the files were moved. SIGH.
|
| |
|