aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/isp/ispvar.h
Commit message (Collapse)AuthorAgeFilesLines
...
* Add some more firmware revision macros. Add firmware attributes fieldMatt Jacob2001-09-031-1/+7
| | | | | | | | to fcparam structure. MFC after: 4 weeks Notes: svn path=/head/; revision=82841
* Add 2 Gigabit Fibre Channel support (2300 && 2312 cards). This requiredMatt Jacob2001-08-311-17/+42
| | | | | | | | | | | | | some reworking (and consequent cleanup) of the interrupt service code. Also begin to start a cleanup of target mode support that will (eventually) not require more inforamtion routed with the ATIO to come back with the CTIO other than tag. MFC after: 4 weeks Notes: svn path=/head/; revision=82689
* Fix a spelling error in a comment.Matt Jacob2001-08-161-1/+1
| | | | Notes: svn path=/head/; revision=81794
* Redo how we manage SCSI device settings- have a 3rd flags (nvram) that recordsMatt Jacob2001-07-301-9/+13
| | | | | | | | | | | | either what's in NVRAM or what the safe defaults would be if we lack NVRAM. Then we rename cur_XXXX to actv_XXXX (these are the currently active settings) and the dev_XXX settings to goal_XXXX (these are the settings which we want cur_XXXX to converge to). Roll core minor. Notes: svn path=/head/; revision=80582
* Firmware crashes handled in platform specific code (isp_async call).Matt Jacob2001-07-041-3/+5
| | | | | | | Fix longstanding silly buglet that left a hole in the debug log defines. Notes: svn path=/head/; revision=79235
* Fix botch for state levels. Role minor release. Start adding code for aMatt Jacob2001-06-051-6/+7
| | | | | | | | | 'force logout' path. MFC after: 4 weeks Notes: svn path=/head/; revision=77776
* Spring MegaChange #1.Matt Jacob2001-05-281-5/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ---- Make a device for each ISP- really usable only with devfs and add an ioctl entry point (this can be used to (re)set debug levels, reset the HBA, rescan the fabric, issue lips, etc). ---- Add in a kernel thread for Fibre Channel cards. The purpose of this thread is to be woken up to clean up after Fibre Channel events block things. Basically, any FC event that casts doubt on the location or identify of FC devices blocks the queues. When, and if, we get the PORT DATABASE CHANGED or NAME SERVER DATABASE CHANGED async event, we activate the kthread which will then, in full thread context, re-evaluate the local loop and/or the fabric. When it's satisfied that things are stable, it can then release the blocked queues and let commands flow again. The prior mechanism was a lazy evaluation. That is, the next command to come down the pipe after change events would pay the full price for re-evaluation. And if this was done off of a softcall, it really could hang up the system. These changes brings the FreeBSD port more in line with the Solaris, Linux and NetBSD ports. It also, more importantly, gets us being more proactive about topology changes which could then be reflected upwards to CAM so that the periph driver can be informed sooner rather than later when things arrive or depart. --- Add in the (correct) usage of locking macros- we now have lock transition macros which allow us to transition from holding the CAM lock (Giant) and grabbing the softc lock and vice versa. Switch over to having this HBA do real locking. Some folks claim this won't be a win. They're right. But you have to start somewhere, and this will begin to teach us how to DTRT for HBAs, etc. -- Start putting in prototype 2300 support. Add back in LIP and Loop Reset as async events that each platform will handle. Add in another int_bogus instrumentation point. Do some more substantial target mode cleanups. MFC after: 8 weeks Notes: svn path=/head/; revision=77365
* In order to save ourselves grief with the SUNPRO compiler underMatt Jacob2001-03-141-19/+19
| | | | | | | | | Solaris (which, for reasons unknown to me, chokes on u_int16_t as a typedef of unsigned short if used in a transitional (mixed K&R and ANSI) way), we'll go the extra mile and fully ANSIfy things. Notes: svn path=/head/; revision=74229
* More 32 to 16 bit handle stuff. Roll core minor version.Matt Jacob2001-03-041-2/+2
| | | | Notes: svn path=/head/; revision=73530
* Fix a longstanding bug- we had the sense of what bit 14Matt Jacob2001-02-231-1/+9
| | | | | | | | | | | | | | | | | | for the ICB firmware options meant- *I* had taken it to mean that if you set it, Node Name would be ignored and derived from Port Name. Actually, it meant the opposite. As a consequence- change ICBOPT_USE_PORTNAME to the define ICBOPT_BOTH_WWNS- makes more sense. Fix wrong input bitmap for MBOX_DUMP_RAM command. Call ISP_DUMPREGS if we get a f/w crash. Add ISPCTL_RUN_MBOXCMD control command (so outer layers can run a mailbox command directly) and add a ISPASYNC_UNHANDLED_RESPONSE hook so outer layers can understand response queue entries we might not know about. Notes: svn path=/head/; revision=72938
* Eliminate ISP2100_FABRIC- we always allow for fabric now. Add anMatt Jacob2001-02-111-18/+85
| | | | | | | | | | | | isp_iid_set/isp_iid for fibre channel- this is because we now fake a port database entry for ourselves. Add the additional loop states between LOOP_PDB_RCVD and LOOP_READY. Change and comment on a wad of Fibre Channel isp_control functions. Change and comment on some of the ISPASYNC Fibre Channel events. Notes: svn path=/head/; revision=72355
* Add was_fabric_dev/fabric_dev tags to our local FC database structureMatt Jacob2001-01-151-9/+45
| | | | | | | | | | | | | | | | (so we can see rapidly whether something was a fabric device but is now gone). Add a tag which says what role this adapter should take. It can take on the value of None, Target, Initiator or Both. None is useful for warm failover purposes. Remove the ISP_CFG_NOINIT silliness since a role of "None" does this. Add a isp_lastmbxcmd tag to store the opcode for the last mailbox command used. Notes: svn path=/head/; revision=71079
* ISPASYNC_PDB_CHANGED -> ISPASYNC_LOGGED_INOUT.Matt Jacob2001-01-091-4/+3
| | | | Notes: svn path=/head/; revision=70825
* Add in Bill Sommerfeld's -Wformat stuff. Add a ISP_CFG_NOINIT optionMatt Jacob2000-12-291-0/+7
| | | | | | | to keep from completing initialization when isp_init is called. Notes: svn path=/head/; revision=70490
* Add interrupt instrumentation. Change ISP_CFG_NPORT config option toMatt Jacob2000-12-021-1/+11
| | | | | | | | a set of options that allows specific loop, loop-only, nport, nport-only topology settings. Define a required macro for all platforms (USEC_SLEEP). Notes: svn path=/head/; revision=69522
* Change some default macro usages/definitions/requirements.Matt Jacob2000-10-121-9/+14
| | | | Notes: svn path=/head/; revision=67047
* some copyright cleanupsMatt Jacob2000-09-211-6/+2
| | | | Notes: svn path=/head/; revision=66189
* various fixesMatt Jacob2000-08-271-10/+15
| | | | Notes: svn path=/head/; revision=65140
* Rewrite for version 2.0. Some structural changes, but alsoMatt Jacob2000-08-011-34/+189
| | | | | | | | a substantial amount of commenting about what each platform specific definitions are supposed to be. Notes: svn path=/head/; revision=64087
* Remove obsolete isp_dogactive tag.Matt Jacob2000-07-041-1/+1
| | | | Notes: svn path=/head/; revision=62500
* Add 8 bits of volatile mailbox busy mask- this will be the bitmask ofMatt Jacob2000-06-271-3/+5
| | | | | | | | | | | output mailbox values we want to get back out of the chip once a mailbox command is done. Add storage for the maximum number of output mailbox registers to the softc. Roll minor version number. Notes: svn path=/head/; revision=62171
* Roll core minor version. Set ISP_MAX_LUNS to be off of new isp_maxlunsMatt Jacob2000-06-181-11/+4
| | | | | | | tag in softc. Notes: svn path=/head/; revision=61772
* Roll core minor version. Change our 'fabdev' tag to 'loggedin'.Matt Jacob2000-05-091-6/+6
| | | | Notes: svn path=/head/; revision=60221
* Roll minor version. Increase size (and add defines for) topology storage.Matt Jacob2000-04-211-2/+9
| | | | Notes: svn path=/head/; revision=59454
* Add 12160 (Ultra3) defines. Add config option flag for forcing point-to-pointMatt Jacob2000-02-111-5/+12
| | | | | | | | | instead of FC-AL (2200 only). Approved: jkh@freebsd.org Notes: svn path=/head/; revision=57145
* include public target mode functionsMatt Jacob2000-01-151-0/+3
| | | | Notes: svn path=/head/; revision=56004
* Roll minor revision number and add a more finalized listMatt Jacob2000-01-031-8/+7
| | | | | | | of target mode related enums. Notes: svn path=/head/; revision=55364
* Add Dual LVD bus (1280) supportMatt Jacob1999-12-161-3/+10
| | | | Notes: svn path=/head/; revision=54671
* Fix some includes for when we (eventually) get target mode working again.Matt Jacob1999-11-211-53/+76
| | | | | | | | | | Role the core version minor number. Change the arguments to the dma setup function to use a u_int16_t for the output request loop pointer (truly amazing that this hasn't blown up in anyones face so far). Do some shuffling around of some items. Notes: svn path=/head/; revision=53487
* Roll core version number. Do some stylistic changes. Ensure thatMatt Jacob1999-10-171-112/+49
| | | | | | | | | | | | | | the result queue length is never less than 64. Move (ick) temp port database used for post-LIP merging off the kernel stack and put it into the softc. Remove some target mode stuff which will come back later in a different file. Change how the list of outstanding commands are stored (now allocated at mailbox setup time to be just enough for the max for a specific HBA which can vary). Keep a rotating seed of the last index for this in the softc. Increase the count of active commands from 10 to 16 bits. Notes: svn path=/head/; revision=52347
* $Id$ -> $FreeBSD$Peter Wemm1999-08-281-1/+1
| | | | Notes: svn path=/head/; revision=50477
* Clarify lun limits for FC && SCSI.Matt Jacob1999-08-161-3/+16
| | | | Notes: svn path=/head/; revision=49909
* add 2200 f/w; fix botched defineMatt Jacob1999-07-051-2/+2
| | | | Notes: svn path=/head/; revision=48602
* Roll revision levels. Move DEFAULT_LOOPID definition to platform files.Matt Jacob1999-07-021-40/+63
| | | | | | | | | | | | | | | | | | | | | | | | | | Change some fcp parameter structures such that we can get the portid (24 bit value), get both node and port WWN, know whether we're on a fabric or not, note whether we've ever seen the loop up, and note the current state of the loop. Replace the isp_pdb_t structure in fcparams with a reduced cost structure that maintains a static relationship to 'Target', but can have the actual loop ID used change (in case, post LIP, we discover things have moved around). This also retains portid and node/port WWNs. This array gets larger if we have fabric support compiled in. Note special loop IDs that are invariate for this device- FL_PORT_ID (0x7e) which tells us if there's a fabric controller present, FC_PORT_ID and FC_SNS_ID (fabric controller port and fabric SNS server port). We don't use the latter two for anything. IDs above FC_SNS_ID up through 255 are available for mapping fabric devices to 'target' ids. Add in a config define to set FC full duplex mode. Add in a define to recognize the Qlogic 2200 boards. Add comments about ISPCTL commands. Add and change some ISPASYNC enumes. Notes: svn path=/head/; revision=48484
* Bruce pointed out I was being silly with volatile.Matt Jacob1999-06-241-5/+5
| | | | | | | Submitted by: bde@freebsd.org Notes: svn path=/head/; revision=48195
* Roll core minor number. Re-layout a lot of SCSI fields to accomodate multipleMatt Jacob1999-05-111-21/+23
| | | | | | | bus adapters. Notes: svn path=/head/; revision=46968
* Change f/w revision to major,minor,micro version. Add in ISP1040C definition.Matt Jacob1999-04-041-5/+8
| | | | Notes: svn path=/head/; revision=45282
* Add in 1080 LVD support and some basis also for the 1240. The port databaseMatt Jacob1999-03-251-10/+17
| | | | | | | printout is now enabled. Notes: svn path=/head/; revision=45040
* A wad of changes- prepping for 1080/1240 support (which caused a massiveMatt Jacob1999-03-171-7/+26
| | | | | | | | | thwank in register layout goop). A different mboxcmd approach. Some PDB change infrastructure. Some better management of loopdown/loopup events (keep them distinct from resource starvation for simq freeze/unfreeze actions). Notes: svn path=/head/; revision=44819
* Roll internal release tag. Roll core version minor. Fix broken DPARM_DEFAULTMatt Jacob1999-02-091-5/+8
| | | | | | | | | | | | | | | define. Add a new config flag param (ISP_CFG_NONVRAM) whose intent it is to cause NVRAM to be ignored. Add ISPASYNC_LOOP_DOWN and ISPASYNC_LOOP_UP isp_async enums. Amazingly enough, I did all my scsi_sa work recently without realizing that I had a broken isp card whose (unchangeable- it's an old old old isp1020) NVRAM has sync mode enabled, but disconnect/reconnect disabled- the ISP_CFG_NONVRAM is definitely warranted when you want to bloody well ignore the NVRAM and set something sensible. Notes: svn path=/head/; revision=43793
* Implement and use Fast Posting for both parallel && fibre. Redo a bit ofMatt Jacob1999-01-301-8/+28
| | | | | | | | | | the startup code. Implement a call to outer framework function so that asynchronous events can be handled (e.g., speed negotiation, target mode). Roll internal release tags. Notes: svn path=/head/; revision=43420
* up isp_fifo_threshold NVRAM storage to 3 bits (for future 128 bit)Matt Jacob1999-01-101-3/+3
| | | | Notes: svn path=/head/; revision=42461
* clarify headers;move uninit to outer layer;remove watchdogMatt Jacob1998-12-281-13/+59
| | | | Notes: svn path=/head/; revision=42131
* roll core version minor and wire a non-i386 default Loop ID to 113Matt Jacob1998-12-051-3/+7
| | | | Notes: svn path=/head/; revision=41519
* per bde (who is right about this) that an inlined fucntion with constMatt Jacob1998-09-171-19/+1
| | | | | | | | char * strings being returned defined in a header file included several places but only used in one module, is, uh, silly. Notes: svn path=/head/; revision=39440
* Update QLogic ISP support for CAM. Add preliminary target mode support.Justin T. Gibbs1998-09-151-58/+115
| | | | | | | Submitted by: Matthew Jacob <mjacob@feral.com> Notes: svn path=/head/; revision=39235
* Fixed pedantic semantics errors (bitfields not of type int, signed intBruce Evans1998-06-081-3/+3
| | | | | | | | | | or unsigned int (this doesn't change the struct layout, size or alignment in any of the files changed in this commit, at least for gcc on i386's. Using bitfields of type u_char may affect size and alignment but not packing)). Notes: svn path=/head/; revision=36767
* Support compiling with `gcc -ansi'. Just use __inline instead of inline.Bruce Evans1998-05-011-2/+5
| | | | | | | | | | [__]inline is only used to bloat the code here. It gives a separate copy of all the strings for each time this header is included... Fixed misuse of __P(()). Notes: svn path=/head/; revision=35597
* Add support for the Qlogic ISP SCSI && FC/AL AdaptersMatt Jacob1998-04-221-0/+338
Notes: svn path=/head/; revision=35388