| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
| |
that are pertinetnt for state flags on Qlogic 2X00 status completion
entries.
Notes:
svn path=/head/; revision=70824
|
| |
|
|
|
|
|
| |
out the mailbox command opcode if the command times out.
Notes:
svn path=/head/; revision=70823
|
| |
|
|
|
|
|
| |
ISPASYNC_NOTIFY_CHANGE now is for both local loop && fabric changes.
Notes:
svn path=/head/; revision=70822
|
| |
|
|
|
|
|
|
|
|
|
| |
that require us to register our FC4 types of interest. Allow ourselves, in
F-port topologies, to start logging in fabric devices in the target 0..125
range. Change ISPASYNC_PDB_CHANGED (misnamed) to ISPASYNC_LOGGED_INOUT.
Fix (*SMACK*) again some default WWN stuff. This is *really* hard to get
right across all the range of platforms.
Notes:
svn path=/head/; revision=70821
|
| |
|
|
| |
Notes:
svn path=/head/; revision=70820
|
| |
|
|
| |
Notes:
svn path=/head/; revision=70546
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
construct:
char *foo;
...
foo = "XXX";
...
foo[1] = 'Y';
is wrong. IT blew up on NetBSD-sparc64 because that platform write-protects
constant strings.
Notes:
svn path=/head/; revision=70516
|
| |
|
|
|
|
|
| |
to keep from completing initialization when isp_init is called.
Notes:
svn path=/head/; revision=70490
|
| |
|
|
|
|
|
|
|
|
|
|
| |
WWNs correctly (Again!) - this time for the case that we're not going
to fully init the adapter if isp_init is called (with ISP_CFG_NOINIT
set in options). The pupose for this is to bring the adapter up to
almost ready to go, get info out of NVRAM, but to not start it up- leaving
it until later to actually start things up if wanted (and possibly with
different roles selected).
Notes:
svn path=/head/; revision=70489
|
| |
|
|
|
|
|
| |
allows us to grab lock as we should.
Notes:
svn path=/head/; revision=70488
|
| |
|
|
|
|
|
| |
Make sure we enter Giant for now if we call into cam for completion.
Notes:
svn path=/head/; revision=70487
|
| |
|
|
| |
Notes:
svn path=/head/; revision=70457
|
| |
|
|
|
|
|
|
| |
Submitted by: josh@zipperup.org
Submitted by: Robert Drehmel <robd@gmx.net>
Notes:
svn path=/head/; revision=69781
|
| |
|
|
|
|
|
|
|
| |
Add a test against isp->isp_osinfo.islocked prior to trying to see
whether --isp->isp_osinfo.islocked is zero to cause us to unlock
(non-SMPLOCK case).
Notes:
svn path=/head/; revision=69598
|
| |
|
|
|
|
|
| |
for rate setting/getting printouts.
Notes:
svn path=/head/; revision=69597
|
| |
|
|
|
|
|
| |
to set ISP_LOGINFO if bootverbose is set.
Notes:
svn path=/head/; revision=69596
|
| |
|
|
|
|
|
|
|
| |
Submitted by: josh@zipperup.org
Submitted by: Robert Drehmel <robd@gmx.net>
Approved by: mjacob
Notes:
svn path=/head/; revision=69557
|
| |
|
|
|
|
|
| |
ISP_LOCK/ISP_UNLOCK macros.
Notes:
svn path=/head/; revision=69525
|
| |
|
|
|
|
|
|
|
|
|
| |
(specifically, how many entries we've looked at so far). Maintain
interrupt instrumentation. Use USEC_SLEEP instead of USEC_DELAY in
a number of places (this allows us to drop locks and sleep instead
of spin). Track changes to configuration options for topology preference.
Fix botched order of printout for Channel, Target, Lun.
Notes:
svn path=/head/; revision=69523
|
| |
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
| |
too hard for me to keep in sync with other platforms, FreeBSD will go
it's own way.
Notes:
svn path=/head/; revision=68040
|
| |
|
|
|
|
|
|
| |
ISP_SMPLOCK define based on the previous 5.4 major/minor release
define of PVS- because this allows us to turn it off easier.
Notes:
svn path=/head/; revision=67550
|
| |
|
|
|
|
|
| |
change. Sorry about that.
Notes:
svn path=/head/; revision=67549
|
| |
|
|
|
|
|
|
| |
- machine/ipl.h -> sys/ipl.h
- machine/mutex.h -> sys/mutex.h
Notes:
svn path=/head/; revision=67365
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
compile time will build in mutex locks, otherwise the old locking (splcam/splx
with a recursion counter) will be compiled in.
We still depend on config_intr_hook to tell us when it's okay to call
msleep instead of polling. It'd be real nice if we could do this early
enough to not hang up a machine struggling with a bad Fibre Channel loop,
but that's still to come.
Notes:
svn path=/head/; revision=67258
|
| |
|
|
| |
Notes:
svn path=/head/; revision=67257
|
| |
|
|
| |
Notes:
svn path=/head/; revision=67164
|
| |
|
|
|
|
|
| |
WWNS are made and used.
Notes:
svn path=/head/; revision=67049
|
| |
|
|
|
|
|
| |
we don't stomp on the differences between ports for a Qlogic 2202.
Notes:
svn path=/head/; revision=67048
|
| |
|
|
| |
Notes:
svn path=/head/; revision=67047
|
| |
|
|
| |
Notes:
svn path=/head/; revision=66189
|
| |
|
|
|
|
|
|
|
| |
in case it's insane enough to not do what you tell it to.
Print out (LOGINFO level) initiator ID.
Notes:
svn path=/head/; revision=66173
|
| |
|
|
|
|
|
| |
a certain SubVendorID.
Notes:
svn path=/head/; revision=65588
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
Notes:
svn path=/head/; revision=65176
|
| |
|
|
| |
Notes:
svn path=/head/; revision=65141
|
| |
|
|
| |
Notes:
svn path=/head/; revision=65140
|
| |
|
|
| |
Notes:
svn path=/head/; revision=64176
|
| |
|
|
|
|
|
| |
While I'm at it, move the #include line up to the top of the file.
Notes:
svn path=/head/; revision=64174
|
| |
|
|
|
|
|
| |
selectively printed/supressed in isp_mboxcmd.
Notes:
svn path=/head/; revision=64096
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
changes is that there's now a Solaris port of this driver, so some things
in the core version had to change (not much, but some).
In order, from the top.....:
A lot of error strings are gathered in one place at the head of the file.
This caused me to rewrite them to look consistent (with respect to
things like 'Port 0x%' and 'Target %d' and 'Loop ID 0x%x'.
The major mailbox function, isp_mboxcmd, now takes a third argument,
which is a mask that selectively says whether mailbox command failures
will be logged. This will substantially reduce a lot of spurious noise
from the driver.
At the first run through isp_reset we used to try and get the current
running firmware's revision by issuing a mailbox command. This would
invariably fail on alpha's with anything but a Qlogic 1040 since SRM
doesn't *start* the f/w on these cards. Instead, we now see whether we're
sitting ROM state before trying to get a running BIOS loaded f/w version.
All CFGPRINTF/PRINTF/IDPRINTF macros have been replaced with calls to
isp_prt. There are seperate print levels that can be independently
set (see ispvar.h), which include debugging, etc.
All SYS_DELAY macros are now USEC_DELAY macros. RQUEST_QUEUE_LEN and
RESULT_QUEUE_LEN now take ispsoftc as a parameter- the Fibre Channel
cards and the Ultra2/Ultra3 cards can have 16 bit request queue entry
indices, so we can make a 1024 entry index for them instead of the
256 entries we've had until now.
A major change it to fix isp_fclink_test to actually only wait the
delay of time specified in the microsecond argument being passed.
The problem has always been that a call to isp_mboxcmd to get he
current firmware state takes an unknown (sometimes long) amount of
time- this is if the firmware is busy doing PLOGIs while we ask
it what's up. So, up until now, the usdelay argument has been
a joke. The net effect has been that if you boot without being plugged
into a good loop or into a switch, you hang. Massively annonying, and
hard to fix because the actual time delta was impossible to know
from just guessing. Now, using the new GET_NANOTIME macros, a precise
and measured amount of USEC_DELAY calls are done so that only the
specified usecdelay is allowed to pass. This means that if the initial
startup of the firmware if followed by a call from isp_freebsd.c:isp_attach
to isp_control(isp, ISP_FCLINK_TEST, &tdelay) where tdelay is 2 * 1000000,
no more than two seconds will actually elapse before we leave concluding
that the cable is unhooked. Jeez. About time....
Change the ispscsicmd entry point to isp_start, and the XS_CMD_DONE
macro to a call to the platform supplied isp_done (sane naming).
Limit our size of request queue completions we'll look at at interrupt
time. Since we've increased the size of the Request Queue (and the
size of the Response Queue proportionally), let's not create an
interrupt stack overflow by having to keep a max completion list
(forw links are not an option because this is common code with
some platforms that don't have link space in their XS_T structures).
A limit of 32 is not unreasonable- I doubt there'd be even this many
request queue completions at a time- remember, most boards now use
fast posting for normal command completion instead of filling out
response queue entries.
In the isp_mboxcmd cleanup, also create an array of command
names so that "ABOUT FIRMWARE" can be printed instead of "CMD #8".
Remove the isp_lostcmd function- it's been deprecated for a while.
Remove isp_dumpregs- the ISP_DUMPREGS goes to the specific bus
register dump fucntion.
Various other cleanups.
Notes:
svn path=/head/; revision=64095
|
| |
|
|
|
|
|
|
|
| |
isp_prt calls. We now use an argument to the ISPCTL_FCLINK_TEST
call. We change all IDPRINTF macros to isp_prt calls. We add
the isp_prt function here.
Notes:
svn path=/head/; revision=64093
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
quite a bit so that all of the ports have a similar set of required
macros/definitions (and in similar places in the isp_<platform>.h
file).
Some new macros/functions added- Mailbox Acquire/Relase macros,
NANOTIME macros, SNPRINTf and STRNCAT. MemoryBarrier beomes
MEMORYBARRIER with much stronger types.
Notes:
svn path=/head/; revision=64092
|
| |
|
|
|
|
|
|
|
|
| |
isp2100_fw_statename as an INLINE (now a function in isp.c). Remove
isp2100_pdb_statename (unused). Redo all ISP_SCSI_XFER_T as XS_T types.
Change all RQUEST_QUEUE_LEN/RESULT_QUEUE_LEN macros to take a parameter.
Add isp_print_bytes function.
Notes:
svn path=/head/; revision=64091
|
| |
|
|
|
|
|
| |
isp_prt logging function.
Notes:
svn path=/head/; revision=64090
|
| |
|
|
|
|
|
| |
as a selector now). Change DFLT_CMD_CNT to a fixed amount for now.
Notes:
svn path=/head/; revision=64089
|
| |
|
|
| |
Notes:
svn path=/head/; revision=64088
|
| |
|
|
|
|
|
|
| |
a substantial amount of commenting about what each platform
specific definitions are supposed to be.
Notes:
svn path=/head/; revision=64087
|
| |
|
|
|
|
|
|
| |
mdvec structure, removal of printf/CFGPRINTF in place of isp_prt
calls. Parameterization of RQUEST_QUEUE_LEN/RESULT_QUEUE_LEN.
Notes:
svn path=/head/; revision=64086
|
| |
|
|
|
|
|
|
| |
for the rototilling that !*$)~@!$_@*_(~@$*_(~@$*~@$*
Qlogic F/W changes will need.
Notes:
svn path=/head/; revision=63390
|
| |
|
|
|
|
|
|
|
|
| |
when we're done reading it (makes checking things easier).
Before calling isp_notify_ack make sure we're at RUNSTATE-
elsewise we can be responding to LIPs or SCSI bus resets
before we've finished some of the wiring.
Notes:
svn path=/head/; revision=63388
|