summaryrefslogtreecommitdiffstats
path: root/sys/dev/isp
Commit message (Collapse)AuthorAgeFilesLines
* Pointy hat- bad commit.mjacob2003-02-161-1/+1
|
* Make sure we propagate rxid && iid in isp_target_put_atiomjacob2003-02-161-0/+2
|
* Pick up some compilation warning fixes from NetBSD.mjacob2003-02-161-7/+7
| | | | | | If we don't have ISP_FW_CRASH_DUMP defined, we have to do a isp_reinit in the core code- not the platform code- so fix the ISP_CONN_FATAL case.
* Remove M_TRYWAIT/M_WAITOK/M_WAIT. Callers should use 0.alfred2003-01-212-5/+5
| | | | Merge M_NOWAIT/M_DONTWAIT into a single flag M_NOWAIT.
* Make compiles (LINT and/or ISP_TARGET_MODE options) happier by making suremjacob2003-01-021-5/+7
| | | | | | printf type format args and actual args match. Reviewed by: Sam Leffler <sam@errno.com>
* Correct typos, mostly s/ a / an / where appropriate. Some whitespace cleanup,schweikh2003-01-012-4/+4
| | | | especially in troff files.
* Fix typos, mostly s/ an / a / where appropriate and a few s/an/and/schweikh2002-12-303-4/+4
| | | | Add FreeBSD Id tag where missing.
* LINT related fixes (as noticed by bde)mjacob2002-10-141-6/+6
|
* This should enable 10160 support. As best as I can tell, the samemjacob2002-10-113-4/+27
| | | | | | | f/w as 12160 is used, and otherwise, this is just a single channel variant of the 10160. MFC after: 0 days
* From PHK's flex tool- we can get -1 returned from xpt_path_target_id,mjacob2002-10-101-15/+18
| | | | | | so don't index off of it. MFC after: 1 day
* Some kernel threads try to do significant work, and the default KSTACK_PAGESscottl2002-10-021-1/+1
| | | | | | | | | | | | | doesn't give them enough stack to do much before blowing away the pcb. This adds MI and MD code to allow the allocation of an alternate kstack who's size can be speficied when calling kthread_create. Passing the value 0 prevents the alternate kstack from being created. Note that the ia64 MD code is missing for now, and PowerPC was only partially written due to the pmap.c being incomplete there. Though this patch does not modify anything to make use of the alternate kstack, acpi and usb are good candidates. Reviewed by: jake, peter, jhb
* Remove ISP_DMA_ADDR_T definition.mjacob2002-09-231-10/+17
| | | | | | | | Instead, based upon whether ISP_DAC_SUPPORTED is defined, typedef isp_dma_addr_t appropriately. If ISP_DAC_SUPPORTRED is defined, the DMA_WD2/DMA_WD3 macros do something useful, else they define to '0'.
* Add MBOX_INIT_REQ_QUEUE_A64/MBOX_INIT_RES_QUEUE_A64 definitions.mjacob2002-09-231-0/+6
| | | | Define ispreq64_t to be the same as ispreqt3_t.
* Redo dma tag creation to correctly reflect the boundary and segmentmjacob2002-09-231-8/+7
| | | | limitations inherent to the isp1000 on SBus cards.
* Re-specify the bus space creation such that if we have ISP_DAC_SUPPORTEDmjacob2002-09-231-8/+12
| | | | | | | | | | | defined, we set the address space limitation to BUS_SPACE_UNRESTRICTED, otherwise to BUS_SPACE_MAXADDR_32BIT. If we have a 1240, ULTRA2 or better, or an FC card, the boundary limit is BUS_SPACE_UNRESTRICTED and segment limit is BUS_SPACE_MAXADDR_32BIT. The older 1020/1040 cards have boundary and segment limits of BUS_SPACE_MAXADDR_24BIT.
* Fix buglet in A64 CTIO3 structure copy.mjacob2002-09-231-1/+1
|
* Remove ISP_DMA_ADDR_T define (see ispvar.h)mjacob2002-09-231-1/+4
| | | | | | Add in commented out: +/* #define ISP_DAC_SUPPORTED 1 */
* If we have a 1240 or an ULTRA2 or better card, use MBOX_INIT_RES_QUEUE_A64mjacob2002-09-231-22/+49
| | | | (preparation for DAC/A64 support)
* The size argument to snprintf does not have to be backed off by onemjacob2002-09-071-17/+17
| | | | | | to account for a NULL byte. Submitted by: Jacques A. Vidrine <nectar@celabo.org>
* Remove STRNCAT (==>strncat) usage. Apparently I never read the manmjacob2002-09-063-20/+17
| | | | | | page correctly and it wasn't doing what I thought it was. Noticed by: Brooks Davis <brooks@one-eyed-alien.net>
* Tsk. Now that we're not using our own locks, we have to remembermjacob2002-09-061-0/+2
| | | | | to grab Giant in isp_kthread so that msleep is *happy* that there's no lock being passed to it (as tsleep turns out to be...)
* Turn off usage of SMP style locking until we sort out CAM.mjacob2002-09-032-21/+72
|
* Define ISP_DMA_ADDR_T to be a bus_addr_t, not a u_int32_t.mjacob2002-08-221-0/+3
| | | | This is in preparation to completing A64 PCI support.
* unused variable removal (pointed out by bde)mjacob2002-08-221-1/+0
|
* If we're using ancient (pre 1.17.0) 2100 f/w (for the cards that cannotmjacob2002-08-171-22/+63
| | | | | | | | | | | | | | | | | | | | load f/w images > 0x7fff words), set ISP_FW_ATTR_SCCLUN. We explicitly don't believe we can find attributes if f/w is < 1.17.0, so we have to set SCCLUN for the 1.15.37 f/w we're using manually- otherwise every target will replicate itself across all 16 supported luns for non-SCCLUN f/w. Correctly set things up for 23XX and either fast posting or ZIO. The 23XX, it turns out, does not support RIO. If you put a non-zero value in xfwoptions, this will disable fast posting. If you put ICBXOPT_ZIO in xfwoptions, then the 23XX will do interrupt delays but post to the response queue- apparently QLogic *now* believes that reading multiple handles from registers is less of a win than writing (and delaying) multiple 64 byte responses to the response queue. At the end of taking a a good f/w crash dump, send the ISPASYNC_FW_DUMPED event to the outer layers (who can then do things like wake a user daemon to *fetch* the crash image, etc.).
* We only do isp_reinit from isp_async if ISP_FW_CRASH_DUMP is defined-mjacob2002-08-171-0/+12
| | | | otherwise the core code does this.
* Fix the incorrect parsing of the Risc2Host isr. For RIO_16,mjacob2002-08-171-1/+13
| | | | | | | | fast posting command completion, and fast post CTIO completion, the upper half of Risc2Host is a copy of mailbox #1- *not* mailbox #0. MFC after: 1 day
* Add ICBXOPT_ZIO definition.mjacob2002-08-171-0/+1
|
* Add ISPASYNC_FW_DUMPED async event.mjacob2002-08-171-0/+3
| | | | add ISP_FW_NEWER_THAN macro- makes the code easier to read.
* Frequency default should be '25' for 25MHz, not 25000000.mjacob2002-07-251-7/+23
| | | | | | | | | | Through the PITA of endiannness, clock has to be MHz freq << 8. Don't trust NVRAM on SBus cards. Set a default initiator ID sensibly. SBus/ISP now working, what with the change to sbus.c earlier today.
* Don't test against default_iid being zero as a test for whether wemjacob2002-07-251-1/+2
| | | | set something- iid 0 is valid.
* Make sure that if are in fact using 'full SMP', make the interruptmjacob2002-07-253-12/+25
| | | | | | | | | flags include INTR_MPSAFE. Put the flags in a common place so that both isp_sbus && isp_pci DTRT. In isp_mbxdma setup, drop any locks prior to calling things like bus_dmatag_create. This gets rid of these obnoxious WITNESS messages about 'sleeping with locks held' blah blah blah blah blah.
* Put MODULE_VERSION back here so that ispfw is happy.mjacob2002-07-251-0/+2
|
* Remove a couple of debugging lines.mjacob2002-07-111-7/+0
|
* 'Support' for ISP SBus cards.mjacob2002-07-115-9/+853
| | | | | | | | | | This code does not imply that SBus cards work yet. They hang for me. But I can't netboot the latest snapshot on my ultra1e, and things hang at bus_setup_intr time. Since I'm offline for a while, I thought I'd toss this in in case somebody else who has a bit better luck wants to fart around with it. Please try and wait until I get back to check things in.
* Add 2002 to copyright.mjacob2002-07-081-1/+1
| | | | | | | Oops; I forgot for previous delta... If we're and FC or ULTRA2 or better card, we can have a 1024 element request queue instead of 256. MFC after: 1 week
* Add get/set param ioctl support.mjacob2002-07-082-135/+154
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Remove sim queue freezes for resource shortages. I've had too many strange race conditions where I freeze on a resource shortage but never get unfrozen. Consolidate the remaining sim queue freeze condition (for loopdown) into an inline with debug messages that allows us to track problems at ISP_LOGDEBUG0 level easier. Change a bunch of debug messages about loop down/up conditions to ISP_LOGDEBUG0 level. Remove dead isp_relsim code. Change some internal flag stuff for efficiency. Complain vociferously if we try and use our FC scratch area while it's busy being used already (I mean, if we don't have solaris' ability to sleep as an interrupt thread which would allow us to just use a p/v semaphore, at least *say* when you've just borked yourself). Add infrastructure to allow overrides of hard loopid && initiator id from boot variables. Fix the usual quota of silly bugs: + 'ktmature' needs to be per-instance. Argh. + When entering isp_watchdog, set intsok to zero, preserving old value to restore later. It's not nice to try and sleep from splsoftclock. + Fix tick overflow buglet in checking timeout value. MFC after: 1 week
* Add get/set param ioctls.mjacob2002-07-081-0/+23
| | | | MFC after: 1 week
* Add override so that we can force set our hard loopdid.mjacob2002-07-081-0/+14
| | | | MFC after: 1 week
* Remove the 'bogus registrant' hack for fabric searches. It reallymjacob2002-07-081-12/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | turns out that there's something of a hole in our new fabric name server stuff. We ask the name server for entities that have registered as a specific type. That type is FC-SCSI. If the entity hasn't performed a REGISTER FC4 TYPES, the fabric nameserver won't return it. This brings this driver to a bit of a fork in the road as to what the right thing to do is. For servicing the needs of accessing FC-SCSI devices, this method is fine, and to be preferred. It is extremely unlikely we're interested in fabric devices that *don't* register correctly. If I ever get around to adding an FC-IP stack, then asking for devices that have registers as FC-IP types is also the right thing to do. So- asking the fabric nameserver for a specific type is fine, *as long as you are only interested in specific types*. If, on the other hand, you want to create (as for management tool support) a picture of everything on the fabric, this is *not* so fine. There are a large class of FC-SCSI *initiators* who *don't* correctly register, so we never will *see* them. Is this a problem? Yes, but only a little one. If we want to do such management tool support, we should probably run a *different* fabric nameserver query algorithm. Better yet, we should talk to the management nameserver in Brocade switches instead of the standard FC-GS-2 fabric nameserver (which can be unwieldy). Other changes: if we've overrrides marked, don't set some default values from reading NVRAM. This allows us to override things like EXEC throttle without having to ignore NVRAM entirely. MFC after: 1 week
* If the HBA is already 'touched', still set maxluns. Othewise formjacob2002-06-161-67/+126
| | | | | | | | | | | | | | | | | CAM_QUIRK_HILUN devices we loop thru 32bits of lun. Oops. Switch to using USEC_DELAY rather than USEC_SLEEP at isp_reset time. Try to paper around a defect in clients that don't correctly registers themeselves with the fabric nameserver. Minor updates for Mirapoint support- they still use code that is not HANDLE_LOOPSTATE_IN_OUTER_LAYERS, and, surprise surprise, this old stuff had some bugs in it. Clean up some target mode stuff. MFC after: 1 week
* Add support for ISP_FC_GETHINFO, which returns current connectionmjacob2002-06-161-38/+158
| | | | | | | | | | | | | | | | | | | | | | | | topology, speed, loopid, WWPN/WWNN, etc. Beef up target mode. Add isp_handle_platform_notify_scsi and isp_handle_platform_notify_fc platform handlers to handle immediate notifies (isp_handle_platform_notify_scsi is still stubbed out). In implementation of isp_handle_platform_notify_fc, for IN_ABORT_TASK, peel off a pending XPT_IMMED_NOTIFY and call xpt_done on it and hope that somebody upstream is listening. Make sure on final CTIO2s that we set residual correctly. These are absolutely crucial. Make sure we set relative offset for each CTIO2 based upon bytes we've already xferred. This is what the private adjunct datat to the original ATIO is. Note state of command so we can figure out where to find it if we get an ABORT from the firmware. Make sure we *always* set CAM_TAG_ACTION_VALID for ATIO2s. Make sure we keep track of the original lun. If se sent status (or we're otherwise done with the command), don't forget to free the adjunct structure.
* Extend private adjunct to ATIO to have both tag lun, and extended statemjacob2002-06-161-1/+10
| | | | | | | | | | (so we can, when things get lost, find out who currently is processing on behalf of this open exchange. Invariably, when things are lost and wedged, it's CAM). Keep an atio resource counter locally. MFC after: 1 week
* Force commit (last CVS comment was wrong).mjacob2002-06-161-1/+0
| | | | | Go back to *not* fully evaluating loop/fabric state if our role is ISP_ROLE_NONE.
* Add ISP_FC_GETHINFO ioctl.mjacob2002-06-162-1/+30
| | | | MFC after: 1 week
* Set all 23XX cards as 'touched' (we have trouble, unpredictably, aboutmjacob2002-06-161-241/+73
| | | | | | | | | | running ABOUT FIRMWARE with some that were started by BIOS downloads). Redo CTIO2 dma mapping- use continuation segments instead of multiple CTIO2s. Thanks to Veritas for sponsoring this work (in a different context). MFC after: 1 week
* Change isp_target_async to a function returning an integer.mjacob2002-06-161-20/+8
| | | | Roll most immediate notifies into something the platform has to handle.
* Set default command count to 0xfe. This tells the f/w essentiallymjacob2002-06-161-3/+5
| | | | | | | to *not* do flow control based upon resource counts for the firmware. Increase default immediate notify count to 16. Change isp_target_async to a function returning an integer.
* Add MBOX_DRIVER_HEARTBEAT/MBOX_FW_HEARTBEAT/FC4_FC_SVC defines.mjacob2002-06-161-0/+4
| | | | MFC after: 1 week
* Roll minor version. Add ISPASYNC_FW_RESTARTED async event. Addmjacob2002-06-161-4/+11
| | | | | | DEFAULT_FRAMESIZE && DEFAULT_EXEC_THROTTLE references. MFC after: 1 week
OpenPOWER on IntegriCloud