summaryrefslogtreecommitdiffstats
path: root/sys/dev/isp/isp_pci.c
Commit message (Collapse)AuthorAgeFilesLines
...
* * Completely rewrite the alpha busspace to hide the implementation fromdfr2000-08-281-9/+0
| | | | | | | | | | | | the drivers. * Remove legacy inx/outx support from chipset and replace with macros which call busspace. * Rework pci config accesses to route through the pcib device instead of calling a MD function directly. With these changes it is possible to cleanly support machines which have more than one independantly numbered PCI busses. As a bonus, the new busspace implementation should be measurably faster than the old one.
* remove clause 3 licencemjacob2000-08-271-7/+1
|
* Part of major rewrite for core version 2.0- clarification ofmjacob2000-08-011-99/+106
| | | | | mdvec structure, removal of printf/CFGPRINTF in place of isp_prt calls. Parameterization of RQUEST_QUEUE_LEN/RESULT_QUEUE_LEN.
* Keep interrupts blocked for all of isp_pci_attach. Redo DMA routinesmjacob2000-07-181-78/+161
| | | | for target mode for cleanliness and accuracy.
* Change startup locking. Use new isp_handle_index functionmjacob2000-07-041-20/+16
| | | | for indexing off of handles to get dma maps.
* Clean up firmware load issues and remove darn near all config options.mjacob2000-06-181-95/+43
| | | | | | | | | | | | | | | | | | Force alphas to prefer mem mapping as the default. Basically, we have a pointer to a function which we can call which will return us a pointer to firmware for the card we have. We call this function (if it's non-NULL) with the address of our mdvec f/w pointer. The way this works is that if ispfw (as a module or a static) is loaded, it initializes the pointer in isp_pci, so we can call into to it to fetch a pointer to a f/w set. If ispfw is MOD_UNLOADed, it's retained a pointer to our mdvec f/w pointers, which then get zeroed out so we don't have any references to data that's now gone from kernel memory. Removing the f/w saves ~360KBytes. Alas, there is no autounload mechanism that works for is here.
* Clean up defines for correct 12160/1080 exclusion. Final 4.0.mjacob2000-02-291-3/+3
| | | | approved: JKH
* If the CDB length is greater than 12 for parallel SCSI, ispscsicmd hasmjacob2000-02-151-1/+5
| | | | | | | made the initial queue entry a EXTENDED CMD queue entry, so we have to go straight to continuation segments for any data segments. approved: jkh
* Add in 12160 (Ultra3) support. Redo things to use the newbus code.mjacob2000-02-111-141/+196
| | | | | | Approved: jkh@freebsd.org PR: 16141
* Remove compile warning not seen when compiling with target mode enabled.mjacob2000-01-151-0/+2
|
* Redo FC target mode dma routine to try and generate an extra CTIOmjacob2000-01-151-107/+232
| | | | | in the not so odd case of Moving Data *AND* Sending Status in last CTIO *AND* status is a CHECK CONDITION *AND* we have Sense Data to send.
* Add in an isp_tdebug environment variable. Clean up some debuggingmjacob2000-01-041-10/+65
| | | | printouts for clarity.
* Support target mode operations. This involves having some variantmjacob2000-01-031-45/+350
| | | | | | dma mapping callback routines to select from as target mode entries are handled a fair bit differently from normal initiator mode entries.
* Add Dual LVD bus (1280) supportmjacob1999-12-161-12/+41
|
* Fix dmasetup functions to have 16 bit queue indices. Get the chip revisionmjacob1999-11-211-28/+40
| | | | | | out of the PCI CLASS reg and store it in the softc. Use the getenv_quad function to get a WWN override from the environment. Look for a config value for same. Make slightly less lame the wwn seed construction.
* Remove calls to alpha_register_pci_scsi(). After Mike's recent bootgallatin1999-11-051-6/+0
| | | | | | changes, it no longer exists and is preventing alpha kernels from building. reviewed by: msmith
* Organize things to cope with the (possible) lack of downloadablemjacob1999-10-301-11/+27
| | | | firmware a bit better.
* Add in inclusion of machine/md_var.h (so alpha_scsi_bus_register or whatmjacob1999-10-171-22/+59
| | | | | | | have you is prototyped). Removed code versions in md struct- not used any more. Allocate transfer dma maps and xflist stuff in mbxdmasetup based upon isp->isp_maxcmds. Allow for multiple calls to mbxdmasetup (for isp_reset cases).
* remove unnecessary includesmjacob1999-10-111-3/+0
|
* $Id$ -> $FreeBSD$peter1999-08-281-1/+1
|
* Cast pointers to uintptr_t instead of casting them to u_long, and/or vicebde1999-08-241-2/+2
| | | | versa. Cosmetic.
* Set some correct return values. Prefer I/O map all the time unless configuredmjacob1999-08-161-13/+20
| | | | otherwise.
* Properly set the alignment argument to bus_dma_tag_create(). If wegibbs1999-08-161-2/+2
| | | | don't care about the alignment, set it to 1, meaning single byte alignment.
* add in a boot environment isp_disable flagmjacob1999-07-061-1/+11
|
* Wow- too much breakage..wait until you compile it, buckwheat...mjacob1999-07-051-2/+2
|
* Oops- got sense of ifdef wrongmjacob1999-07-051-2/+2
|
* add ISP_DISABLE_2200_SUPPORT defines; Add reference to 2200 F/Wmjacob1999-07-051-8/+14
|
* Remove pre-CAM code. Add in getenv_int calls for variables isp_mem_map,mjacob1999-07-021-325/+235
| | | | | | | | | | | | isp_io_map, isp_no_fwload, isp_fwload, isp_no_nvram, isp_fcduplex which are all bitmaps of isp instances that should or shouldn't map memory space, I/O space, not load f/w, load f/w, ignore nvram, not ignore nvarm, set full duplex mode. Also have an isp_seed value that we can use to generate a pseudo seed for a synthetic WWN. Other minor cosmetic cleanup. Add in support for the Qlogic ISP 2200. Very important change where we actually check now to see whether we were successful in mapping request and response queues (and fibre channel scratch space).
* (corrections for type change in softc)mjacob1999-06-241-3/+3
|
* Clean up 2.2.X support (which might have to be cleaned up againmjacob1999-05-111-30/+53
| | | | | | after some of the previous commits). Add in support for the 1240 dual channel ISP card. Try the dance of unmapping a PCI interrupt if we don't configure (if that ever works it'll be helpful).
* Simplify the COMPAT_PCI_DRIVER/DATA_SET hack. We can add:peter1999-05-091-5/+1
| | | | | | | | #define COMPAT_PCI_DRIVER(name,data) DATA_SET(pcidevice_set,data) .. to 2.2.x and 3.x if people think it's worth it. Driver writers can do this if it's not defined. (The reason for this is that I'm trying to progressively eliminate use of linker_sets where it hurts modularity and runtime load capability, and these DATA_SET's keep getting in the way.)
* Use COMPAT_PCI_DRIVER() for registration if it exists. This shouldn'tpeter1999-04-241-1/+5
| | | | hurt the driver portability to 3.x too much for where drivers are shared.
* Staticize.eivind1999-04-111-2/+2
|
* Read the board revision and trim cache line size back from 16 to 1mjacob1999-04-041-8/+71
| | | | | for early revision 2100 boards. Make sure to turn ROM off for these boards.
* enable 1080 LVD supportmjacob1999-03-251-21/+19
|
* Prep for 1080/1240 support. Those fine h/w engineers at Qlogicmjacob1999-03-171-80/+185
| | | | | | gave yet another internal register layout model for what is *still* the same architecture. I hope they saved billyuns of gates 'coz otherwise this is *really* annoying.
* Cleanup. Set all PCI parameters of importance. Set a define that willmjacob1999-02-091-15/+105
| | | | allow us via config options prefer mem space to I/O space.
* roll internal release tagmjacob1999-01-301-2/+2
|
* Amazingly stupid forgetfullness had me forgetting to turn on FIFO burstsmjacob1999-01-101-4/+4
| | | | for the 1XX0 cards. That cost > 50% performance.
* clarify headers;ansifymjacob1998-12-281-60/+22
|
* probe function changed from returning char * to const char *.dillon1998-12-141-2/+2
|
* trivial header fixmjacob1998-12-051-0/+5
|
* Examine all occurrences of sprintf(), strcat(), and str[n]cpy()archie1998-12-041-1/+1
| | | | | | | | | | | | | | 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>
* Add hooks so that the alpha can detect which disk has the root partition.dfr1998-09-261-0/+3
|
* (requested by gibbs) Remove the SCSI_CAM option (and rework the isp drivermjacob1998-09-181-7/+8
| | | | | that had depended on it for compilation within or without CAM to use __FreeBSD_version instead).
* A major amount of cleaning up:mjacob1998-09-171-44/+32
| | | | | | | | | | | | | + Change some messages about CCB memory allocation + Turn a failure to DMA map all of a transaction due to lack of ISP queue entries into a requeue operation (instead of the case where it had been treated the same as a DMA too big operation). + put back splsoftvm around bus_dmamap_load calls. + cleanup (and fix a glaring bug) in the and of the dma setup routine. Also, the dma setup routines either return CMD_QUEUED (for success) or CMD_COMPLETE (for failure) or CMD_EAGAIN (for requeuing for resource shortage reasons).
* Alpha port related fixes from Doug Rabson.mjacob1998-09-161-17/+33
| | | | Submitted by: dfr
* Convert ISP pci front end to CAM/bus space/dma.gibbs1998-09-151-36/+428
| | | | Convert ncr driver to CAM.
* Use [u]intptr_t instead of [unsigned] long to convert and/or representbde1998-08-101-3/+3
| | | | | | | pointers. This finishes fixing conversions between pointers and integers of possibly different sizes in GENERIC.
* Fixed printf format errors (only 1 left in GENERIC now).bde1998-07-131-5/+5
|
OpenPOWER on IntegriCloud