summaryrefslogtreecommitdiffstats
path: root/sys/pci/aic7870.c
Commit message (Collapse)AuthorAgeFilesLines
* Modify my copyright notice to allow the sequencer to be used with GPLedgibbs1997-06-271-4/+11
| | | | software (aka Linux).
* The register definitions are now in the compile directory.gibbs1997-03-161-3/+3
|
* Make it clearer how the termination settings from the PCI probe are used bygibbs1997-02-251-8/+8
| | | | the ahc_init routine.
* Back out part 1 of the MCFH that changed $Id$ to $FreeBSD$. We are notpeter1997-02-221-1/+1
| | | | ready for it yet.
* ULTRAENB->FAST20gibbs1997-02-091-1/+1
|
* Add 1997 to my copyright.gibbs1997-01-291-5/+7
| | | | | Change the autotermination code slightly to be more careful on narrow adapters.
* Add the definition for the CFAUTOTERM bit in the aic78xx SEEPROM.gibbs1997-01-241-7/+163
| | | | | | | | | | | | 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.
* Be smarter about enabling memory mapped I/O. The AHC_ALLOW_MEMIO optiongibbs1997-01-221-6/+8
| | | | | | should not be required anymore. Turn on ULTRA for cards that don't have a BIOS or SEEPROM.
* Make the long-awaited change from $Id$ to $FreeBSD$jkh1997-01-141-1/+1
| | | | | | | | 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.
* AHC_FORCE_PIO -> AHC_ALLOW_MEMIOgibbs1996-11-161-2/+2
|
* Clean up the memory mapped/Programmed I/O stuff so that the driver completelygibbs1996-11-111-69/+73
| | | | | | | | | | | | | | 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.
* Clean up some code having to do with the 398X cards. We can't rely on thegibbs1996-11-051-10/+30
| | | | | | | | | 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.
* Add basic support for the 398X cards as multi-channel SCSI host adapters.gibbs1996-10-281-23/+106
| | | | | | | | | | | | 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.
* - KNF cleanup.gibbs1996-10-251-170/+143
| | | | - Add support for memory mapped I/O.
* Updated #includes to 4.4lite style.bde1996-10-151-2/+2
|
* Bring aic7xxx driver bug fixes from 'SCSI' into current.gibbs1996-10-061-9/+15
|
* Only assume the scratch ram is valid (we were initialized by the BIOS)gibbs1996-06-081-2/+2
| | | | if SCSIID is something other than 0.
* Merge in changes for NetBSD/OpenBSD.gibbs1996-05-301-98/+208
| | | | | | | 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>
* Correct a botched commit from yesturday. It helps to bring over thegibbs1996-05-231-2/+2
| | | | right patch file.<sigh>
* It seems that the aic78X0 chips will either have their scratch ramgibbs1996-05-211-1/+12
| | | | as all 0s or all 1s after POST if there is no BIOS installed.
* Fix a brain-o. The scratch ram on aic78X0 controllers is initialized to 0x00gibbs1996-05-121-2/+2
| | | | | not 0xff after POST, so test for that when trying to determine if a BIOS intialized the card for us.
* Free our device information in one error case in the driver probe.gibbs1996-05-121-1/+2
|
* Add missing '+ io_port' to two outbs.gibbs1996-05-121-5/+4
| | | | | | | Add missing splx() in one error case during probes. Remove unnecessary return and break. Submitted by: Noriyuki Soda <soda@sra.co.jp>
* The aic78X0 cards have 0xff in all bytes of scratch ram after POST. Ifgibbs1996-05-101-30/+58
| | | | | | | | | | | | | 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.
* Add PCI IDs for the aic7860 (basically an aic7850 Ultra) and the aic7855gibbs1996-04-201-10/+42
| | | | | | | | (HP motherboard aic7850 controllers). Properly handle 4 bit controller SCSI IDs. Update my copyright.
* ncr.c:gibbs1996-03-311-29/+2
| | | | | | | | | | 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.
* Be more careful in how we set SCSICONF. It was possible for a controllergibbs1996-03-111-3/+7
| | | | set to a device id above 7 to screw up the data fifo setting.
* aic7870.c, ncr.c:gibbs1996-03-101-10/+9
| | | | | | | | | 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.
* Update copyright.gibbs1996-01-291-2/+2
|
* Make PCI interrupt handlers return void like everybody else does.se1996-01-231-2/+2
| | | | Reviewed by: davidg
* Don't bother setting the DSCommand register. Adaptec's own BIOS doesn't.gibbs1996-01-091-4/+1
|
* Write the cahesize and latency timer values back into configurationgibbs1996-01-071-1/+6
| | | | | | | | space (whoops!). Add a missing argument to the cachesize/lattime printf. Set the CACHETHEN bit in DSCommand.
* The long awaited stability patch set for the aic7xxx driver:gibbs1996-01-031-8/+374
| | | | | | | | | | | | | 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>
* Another mega commit to staticize things.phk1995-12-141-4/+4
|
* Remove uneccessary increment of the unit number.gibbs1995-11-071-2/+1
|
* Conform to new probe/attach interface exported by aic7xxx.c.gibbs1995-11-051-28/+30
| | | | Use ahcintr directly as interrupt handler.
* Fixed the type of ahcintr(). The type of an ISA interrupt handler isbde1995-11-041-2/+2
| | | | | | | 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...
* Recognize the aic7880 and 3940 Ultra.gibbs1995-10-261-5/+25
| | | | | | | | 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.
* Identify the 2940 *Ultra* SCSI adapter. We treat it as a normal 2940gibbs1995-10-081-1/+6
| | | | | | | | 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.
* Detect external SRAM.gibbs1995-09-051-4/+35
| | | | | Count the number of detected 3940 controllers. Tag all even controllers as being the "B Channel".
* Correct the PCI ID for the Adaptec 7850 chips.gibbs1995-08-201-2/+2
|
* Add PCI Id for the 3940 controller.gibbs1995-07-041-2/+9
|
* Merge RELENG_2_0_5 into HEADrgrimes1995-06-111-2/+9
|
* Remove trailing whitespace.rgrimes1995-05-301-8/+8
|
* kernel.h -> sys/kernel.hgibbs1995-04-151-2/+2
|
* Mask the call to ahc_attach with an splbio/splx pair. This allows usgibbs1995-03-311-22/+47
| | | | | | | | | | 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.
* Added a new field to the pci_device struct called pd_shutdown to specifydg1995-03-171-2/+3
| | | | | | | 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.
* #include<kernel.h> to quiet a compiler warning having to do with thegibbs1995-02-031-1/+2
| | | | | | 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.
* Reapplied all of Stefan's changes. What a mess - the files were modifieddg1995-02-021-2/+6
| | | | | 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.
* Fixed up include paths after copying these in the repository.dg1995-02-021-2/+2
|
OpenPOWER on IntegriCloud