#
fc0685ea |
| 17-Oct-1999 |
Matt Jacob <mjacob@FreeBSD.org> |
Remove some target mode stuff. It will get re-introduced in a different file later. Do some pencil-sharpening types of minor changes. Change how active commands are remembered (using new inline funct
Remove some target mode stuff. It will get re-introduced in a different file later. Do some pencil-sharpening types of minor changes. Change how active commands are remembered (using new inline functions to get handles, etc..). Now do a GET FIRMWARE STATUS after firing up the f/w as outgoing mailbox 2 will tell you the f/w's notion of the max commands that can be supported. Attempt to retrieve loop topology. Add in the appropriate SWIZZLE/UNSWIZZLE macros calls (this is a no-op on Little Endian machines but is needed for sparc (on other platforms)). Move the temp port database we use to find out where things have moved to after a LIP to the softc and off the kernel stack. Follow Qlogic's hint and don't bother setting a tag for commands that don't have this enabled (presumably the f/w will do it's own selection then). Use an INT_PENDING macro to check for an interrupt. The call to ISP_DMAFREE now just takes the handle- not the 'handle-1' which was a layering violation. Use CFGPRINTF in a couple of places to make things less chatty if not booting verbose, or CAMDEBUG compiles, etc..
show more ...
|
Revision tags: release/3.3.0_cvs |
|
#
c3aac50f |
| 28-Aug-1999 |
Peter Wemm <peter@FreeBSD.org> |
$Id$ -> $FreeBSD$
|
#
ce7f792d |
| 16-Aug-1999 |
Matt Jacob <mjacob@FreeBSD.org> |
More code cleanup. Go back to using FULL_LOGIN Fibre Chan if f/w is less than 1.17.0 level. Change where we do the loop database init. Add in the CMD_RQLATER return. Add some register debounce.
|
#
3692397b |
| 05-Jul-1999 |
Matt Jacob <mjacob@FreeBSD.org> |
add 2200 f/w; fix botched define
|
#
83cdc1a2 |
| 03-Jul-1999 |
Matt Jacob <mjacob@FreeBSD.org> |
Roll revision levels. Add support for the Qlogic 2200 (warn about not having SCSI_ISP_SCCLUN config defined if we don't have f/w for the 2200- it's resident firmware uses SCCLUN (65535 luns)). Change
Roll revision levels. Add support for the Qlogic 2200 (warn about not having SCSI_ISP_SCCLUN config defined if we don't have f/w for the 2200- it's resident firmware uses SCCLUN (65535 luns)). Change the way the default LoopID is gathered (it's now a platform specific define so that some attempt at a synthetic WWN can be made in case NVRAM isn't readable).
Change initialization of options a bit- don't use ADISC. Set FullDuplex mode if config options tells us to do so. Do not use FULL_LOGIN after LIP- it's the right thing to do but it causes too much loop disruption (Loop Resets). Sanity check some default values. Redo construction of port and node WWNs based upon what we have- if we have 2 in the top nibble, we can have distinct port and node WWNs. Clean up some SCCLUN related code that we obviously had never compiled (:-(). Audit commands coming int ispscsicmd and don't throw commands at Fibre devices that do not have Class 3 service parameters TARGET ROLE defined.
Clean up f/w initialization a bit. Add Fabric support (or at least the first blush of it). Whew - way too much to describe here. Basically, after a LIP, hang out until we see a Loop Up or a Port DataBase Change async event, then see if we're on a Fabric (GET_PORT_NAME of FL_PORT_ID). If we are, try and scan the fabric controller for fabric devices using the GetAllNext SNS subcommand. As we find devices, announce them to the outer layer. Try and do some guard code for broken (Brocade) SNS servers (that get stuck in loops- gotta maybe do this a different way using the GP_ID3 cmd instead). Then do a scan of the lower (local loop) ids using a GET_PORT_NAME to see if the f/w has logged into anything at that loop id. If so, then do a GET_PORT_DATABASE command. Do this scan into a local database. At this point we can say the loop is 'Ready'. After this, we merge our local loop port database with our stored port database- in a as yet to be really fully exercised fashion we try and follow the logic of something having moved around. The first time we see something at a Loop ID, we fix it, for the purpose of this system instance, at that Loop ID. If things shift around so it ends up somewhere else, we still keep it at this Loop ID (our 'Target') but use the new (moved) Loop ID when we actually throw commands at it. Check for insane cases of different Loop IDs both claiming to have the same WWN- if that happens, invalidate both. Notify the outer layer of devices that have arrived and devices that have gone away. *Finally*, when this is done, search the softc's database of Fabric devices and perform logout/login actions. The Qlogic f/w maintains logout/login for all local loop devices. We have to maintain logout/login for fabric devices- total PITA. Expect to see this area undergo more change over time.
show more ...
|
Revision tags: release/3.2.0 |
|
#
442257d9 |
| 12-May-1999 |
Matt Jacob <mjacob@FreeBSD.org> |
be a bit more chatty about some speed negotiations
|
#
5a025c82 |
| 11-May-1999 |
Matt Jacob <mjacob@FreeBSD.org> |
Some massive thwunking in initialization to handle dual bus adapters. More massive thwunking to include an XS_CHANNEL value. Some changes of how parameters are reported to outer layers (including bus
Some massive thwunking in initialization to handle dual bus adapters. More massive thwunking to include an XS_CHANNEL value. Some changes of how parameters are reported to outer layers (including bus, e.g.). Yet more stirring around in isp_mboxcmd to try and get it right. Decode of 1080/1240 NVRAM.
show more ...
|
#
17b1ea03 |
| 14-Apr-1999 |
Matt Jacob <mjacob@FreeBSD.org> |
temp fix for internal queue overflow problem
|
#
3c6e29e0 |
| 04-Apr-1999 |
Matt Jacob <mjacob@FreeBSD.org> |
Make firmware revision a triple. Clean up some FC init stuff for board versions with no BIOS. Separate mailbox interrupts from IOCB interrupts. Read OUTMAILBOX5 while RISC_INT is active- not after yo
Make firmware revision a triple. Clean up some FC init stuff for board versions with no BIOS. Separate mailbox interrupts from IOCB interrupts. Read OUTMAILBOX5 while RISC_INT is active- not after you clear it (potential race condition). Clear out older broken BIG_ENDIAN goop. Don't negotiate narrow/async for LVD busses at startup if already in LVD mode. Note usage of presumptive 1040C revision. For all the LIP, PDB Changed, Loop UP/DOWN async events, mark fw state as unknown as well as marking the need to do a getpdb on targets- after a LIP for certain the f/w has to do PRLI/PLOGI for all targets again and marking f/w state as unknown gives us a fighting chance to (start to) hold up for that to complete.
show more ...
|
#
3bd28825 |
| 26-Mar-1999 |
Matt Jacob <mjacob@FreeBSD.org> |
Annoying little nigglet- apparently *some* Qlogic temporarily ignore settings you've just sent them and return random values if you follow the set by a get. This causes problems when you latter run a
Annoying little nigglet- apparently *some* Qlogic temporarily ignore settings you've just sent them and return random values if you follow the set by a get. This causes problems when you latter run a Tag-enabled command when you've command tagged mode off.
show more ...
|
#
4394c92f |
| 25-Mar-1999 |
Matt Jacob <mjacob@FreeBSD.org> |
Add in 1080 LVD support and some basis also for the 1240. The port database printout is now enabled.
|
#
57c801f5 |
| 17-Mar-1999 |
Matt Jacob <mjacob@FreeBSD.org> |
A wad of changes- prepping for 1080/1240 support (which caused a massive thwank in register layout goop). A different mboxcmd approach. Some PDB change infrastructure. Some better management of loopd
A wad of changes- prepping for 1080/1240 support (which caused a massive 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).
show more ...
|
Revision tags: release/3.1.0 |
|
#
3c688670 |
| 09-Feb-1999 |
Matt Jacob <mjacob@FreeBSD.org> |
Roll internal release tag. Print out if we're in a 64 bit PCI slot. Use fast memory timing NVRAM parameter. Clean up and fix establishment of default target parameters. Don't use NVRAM if are flagged
Roll internal release tag. Print out if we're in a 64 bit PCI slot. Use fast memory timing NVRAM parameter. Clean up and fix establishment of default target parameters. Don't use NVRAM if are flagged as not to do so (I had a busted NVRAM setup which I couldn't edit that enabled SYNC mode but disabled disconnect/reconnect and wide!!). Fix delays after resets. BUS resets not done in isp_init anymore- relegated to OS specific outer layers. Fix a buglet where you can get in a loop for a NULL xs in the completion list in isp_intr. Add in some defines that can disable fast posting. Add in code for Loop Up/Loop Down events that call into the outer layers as to what to do.
show more ...
|
#
cbf57b47 |
| 30-Jan-1999 |
Matt Jacob <mjacob@FreeBSD.org> |
Implement and use Fast Posting for both parallel && fibre. Redo a bit of the startup code. Implement a call to outer framework function so that asynchronous events can be handled (e.g., speed negotia
Implement and use Fast Posting for both parallel && fibre. Redo a bit of 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.
show more ...
|
Revision tags: release/3.0.0, release/2.2.8 |
|
#
bff85e29 |
| 10-Jan-1999 |
Matt Jacob <mjacob@FreeBSD.org> |
Suggested by bde@freebsd.org- memcpy not necessarily good to use. D'oh- not in the BSD DKI. Stop being lazy and finish the defines so MEMCPY becomes bzero for FreeBSD.
|
#
f7102a20 |
| 10-Jan-1999 |
Matt Jacob <mjacob@FreeBSD.org> |
Add some prototype deadchip detection. Set FIFO bursting (1XX0 only- it's already on for the 2XX0) and detect the broken 1040A FIFO. Change bzero to MEMZERO (portability with **nux). Use memcpy for s
Add some prototype deadchip detection. Set FIFO bursting (1XX0 only- it's already on for the 2XX0) and detect the broken 1040A FIFO. Change bzero to MEMZERO (portability with **nux). Use memcpy for same reason.
Finally detect QUEUE FULL conditions and return this as an error that will get cam_periph_error to do it's 'tagged openings now XXX' dance.
show more ...
|
#
c3055363 |
| 28-Dec-1998 |
Matt Jacob <mjacob@FreeBSD.org> |
clarify headers;move uninit to outer layer;remove watchdog
|
#
cc569282 |
| 05-Dec-1998 |
Matt Jacob <mjacob@FreeBSD.org> |
oops on last
|
#
e205b454 |
| 05-Dec-1998 |
Matt Jacob <mjacob@FreeBSD.org> |
Remove the Target mode functions until they're in better shape. Implement some suggested compilation cleanups from Eklund. Wire down a hard loop id if we are not on a platform that has the ability to
Remove the Target mode functions until they're in better shape. Implement some suggested compilation cleanups from Eklund. Wire down a hard loop id if we are not on a platform that has the ability to get to a PCI BIOS (it still will float to the ID it gets after a LIP but at least we can try). Clarify that the expanded lun is based upon SCCLUN defines (in f/w).
show more ...
|
#
a70ac9fd |
| 18-Sep-1998 |
Matt Jacob <mjacob@FreeBSD.org> |
per bde (who is right about this) that an inlined fucntion with const char * strings being returned defined in a header file included several places but only used in one module, is, uh, silly.
|
#
7ac6b5a3 |
| 18-Sep-1998 |
Matt Jacob <mjacob@FreeBSD.org> |
Cleanliness. Don't leave defined a const char array that's only used if target mode is defined (which it isn't, yet).
|
#
42b74275 |
| 17-Sep-1998 |
Matt Jacob <mjacob@FreeBSD.org> |
ISP_DMASETUP now returns a value to be possibly punted to outer layers. Turn request queue overflow messages into debug messages. Ensure on isp_restarts that we nullify the xflist array.
|
#
050ea0d6 |
| 16-Sep-1998 |
Matt Jacob <mjacob@FreeBSD.org> |
fix reported compile error flying blind- I do not have the new compiler yet
|
#
478f8a96 |
| 15-Sep-1998 |
Justin T. Gibbs <gibbs@FreeBSD.org> |
Update QLogic ISP support for CAM. Add preliminary target mode support.
Submitted by: Matthew Jacob <mjacob@feral.com>
|
Revision tags: release/2.2.7 |
|
#
6054c3f6 |
| 22-Apr-1998 |
Matt Jacob <mjacob@FreeBSD.org> |
Add support for the Qlogic ISP SCSI && FC/AL Adapters
|