Home | History | Annotate | Download | only in ic
History log of /src/sys/dev/ic/isp.c
RevisionDateAuthorComments
 1.135  12-Dec-2021  andvar fix various typos, mainly in comments.
 1.134  12-Dec-2021  andvar fix typos in word "request(s)".
 1.133  05-Dec-2021  rillig isp: fix typo in comment
 1.132  05-Dec-2021  msaitoh s/corret/correct/ in comment.
 1.131  21-Oct-2021  andvar fix various typos, mainly in comments, but also in man pages and log messages.
 1.130  19-Sep-2021  andvar fix various typos in comments, messages and documentation.
 1.129  11-Sep-2021  andvar Add missing double p and d for stopped and overriden accordingly.
Fix few more typos along the way, mainly in copy-pasted comments.
 1.128  06-Sep-2021  andvar fix various typos in comments.
 1.127  08-Feb-2018  dholland Typos.
 1.126  11-Mar-2017  maya Don't loop infinitely if the output pointer was changed
Untested, but the change done seems to match the comment above it

CID 980321
 1.125  14-Sep-2013  joerg branches: 1.125.6; 1.125.10; 1.125.14;
GC unused functions and variables.
 1.124  14-Sep-2013  martin Remove unused variables, use C99 open arrays for variable sized arrays
 1.123  27-Feb-2013  martin branches: 1.123.6;
Disable ICBOPT_FAST_POST for ISP 2100.
Fixes PR kern/47302. From Matthew Jacob.
 1.122  28-Feb-2011  mjacob branches: 1.122.4; 1.122.10; 1.122.14;
Update isp driver to be in sync with other platforms. Mostly very minor changes
with effectively zero impact on NetBSD.
 1.121  26-Mar-2010  mjacob branches: 1.121.2; 1.121.4;
Synchronize with other platforms:

Strongly architect handles so we can more easily detect bogus
handles. This switches us to a full 32 bits for all handles.

Handle the case of FC disks disappearing and then reappearing-
at least at the FC transport level.

Some better and finer control of debug and non-debug printouts.
 1.120  15-Jan-2010  mjacob branches: 1.120.2; 1.120.4;
Amazingly, we've been freeing a handle and then using that which it referred
to for years. Bad.
 1.119  05-Jan-2010  mbalmer Remove extra semicolons.
 1.118  03-Jan-2010  mjacob Add some more definitions appropriate for T10 standards
and use those cleaned up definitions.

Use 2100 style firmware loading if the load address and
load size is less than 64k. Some apparently buggy ROMs
out there choke otherwise.

Clean up some WWNN derivations from WWPN.
 1.117  25-Jun-2009  mjacob Update ISP driver to latest and greatest. Includes support for the 8Gb part.
 1.116  03-Jan-2009  yamt branches: 1.116.2;
remove extra semicolons.
 1.115  11-May-2008  mjacob branches: 1.115.6;
Make fc scratch acquisition something that can fail. Remove in_intr flag.
Otherwise synchronize with changes made due to other platforms.
 1.114  11-Mar-2008  mjacob branches: 1.114.2; 1.114.4; 1.114.6;
Checkpoint of some fairly major isp(4) rototilling.

Reintroduce more of a 'channel' concept in preparation for NP-IV support.
This gets rid of the chanA/chanB concept as the 2400 can have up to 128
virtual channels. Actually, with MID firmware you can also have the 2200
and 2300 support 'channels, but they do it with an FL-Port topology.
Because FC cards can now have 'channels', just about every support
function for fibre channel had to be redone to have a channel index
as well. Rototill isp_ioctl.h for channel stuff as well.

Pick up a lot of work about fabric management (hopefully better) and keep
work in place that will allow for dynamic attachment/detachment of devices
(if I can figure out how to make the midlayer support it).

Merge the target code with external trees. Eventually it might even
be sorted out on NetBSD.

Update some firmware stuff.
 1.113  07-Jul-2007  mjacob branches: 1.113.8; 1.113.24; 1.113.28;
Do a number of 24XX related fixes: fix the actual getting of initiator
status correctly (which we never were doing before). Add an underrun
checker for 24XX. The process of sorting this out led to a whole bunch
of endian surprises that had to be dealt with. Fix NVRAM endian issues
for the 24XX as well.

Do a little 2200 related cleanup- in particular, turn off complaints about
not finding a fast posting handle when running with RIO enabled- we are
somehow getting duplicate completions in this case. If we ignore them and
don't complain, all is well, and we actually start averaging > 2 commands
completed per interrupt.
 1.112  26-Jun-2007  mjacob When loading firmware for the 23XX and 24XX cards and DMA'ing it from
the request queue, remember to convert it to little endian format.
 1.111  24-May-2007  mjacob Major update to isp(4) driver to bring it in line with external sources.

The major changes are:

+ 4Gb (24XX) card support
+ Rewritten fabric and loop evaluation code
+ New f/w sets

The 4Gb changes required major rototilling, which caused a rewrite of
fabric and loop eval code. The latter can now be set up to tune for
dynamic device arrival/departure if the framework is set up for it,
or to be firm about waiting for devices.

Testing has been principally on amd64, i386 and sparc64 and seems to
not have broken things for me.
 1.110  16-Nov-2006  christos branches: 1.110.8; 1.110.10;
__unused removal on arguments; approved by core.
 1.109  12-Oct-2006  christos - sprinkle __unused on function decls.
- fix a couple of unused bugs
- no more -Wno-unused for i386
 1.108  11-Dec-2005  christos branches: 1.108.20; 1.108.22;
merge ktrace-lwp.
 1.107  30-May-2005  christos branches: 1.107.2;
- add missing const
- fix variable shadowing
- remove unneeded casts
 1.106  27-Feb-2005  perry nuke trailing whitespace
 1.105  04-Dec-2003  keihan branches: 1.105.8; 1.105.10;
netbsd.org -> NetBSD.org

This was the last commit of this kind to src/sys, which is now totally
"NetBSD.org clean". Thanks for the patiance, and sorry for all the commits.
 1.104  02-Nov-2003  wiz Fix some typos. From Tom Cosgrove via jmc@openbsd.
 1.103  07-Aug-2003  mjacob Update from mainline: add ISP_NO_ZIO option. constify a few items.
LINT/ProPolice fixes from OpenBSD.

In isp_reinit, clear the port database.
 1.102  03-May-2003  wiz branches: 1.102.2;
DMA, not dma nor Dma.
 1.101  03-Mar-2003  mjacob Spelling fixes. Leave an example for how to set icbdelay timer for
ZIO operations. If we have ISP_FW_CRASH_DUMP defined, don't reinit
the chip on ISP_CONN_FATAL (that's up to the outer layers to do).
 1.100  25-Nov-2002  thorpej Avoid strict-alias warnings.
 1.99  18-Oct-2002  mjacob Add in (sight unseen) 10160 support.

Start doing the work necessary to support DAC (Dual Address Cycle)
environments. This allows for direct DMA to > 4GB memory from a PCI
card.

Lose STRNCAT over the side and use SNPRINTF instead.
 1.98  17-Aug-2002  mjacob If we're using ancient (pre 1.17.0) 2100 f/w (for the cards that cannot
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.
 1.97  16-Aug-2002  mjacob Further fix problems with 23XX ISR handling and correctly initialize the
23XX to use ZIO in preference to fast posting.
 1.96  12-Aug-2002  mjacob Various changes to allow for overriding just loopid and/or iid.
Fix a random 23XX ISR reading bug. Be chattier about HBA_BOTCH
errors. More f/w cashdump layering.
 1.95  15-Jun-2002  mjacob Make sure we set maxluns even if isp_touched is already set.

Do a fallback on reading stuff from the fabric. Some devices/initiators
don't correctly register their type with the fabric nameserver. This
seems to be due to a misinterpretation of what TYPE should mean for a
CT_HDR. In any case, do a fallback to try and catch these misentered
entities.

Add some stuff for default framesize and throttle. Fix some buglets.
 1.94  17-May-2002  mjacob Fix seveeral issues- but the most important of which is that we have
to check if we get a RQCS_DATA_UNDERRUN - if we're an FC card, we may
not have RQCS_RU set- if it isn't set, we just lost a DATA XFR IU in the
middle of the exchange. In this case, we have to bomb out the whole xfer.
We had been getting silent data corruption before.
 1.93  20-Apr-2002  mjacob branches: 1.93.2;
Number of luns supported for SCC-2 is actually really 16384- top
3 bits are lun address modifiers.

Remove code that (incorrectly) thought it was asking the f/w to only
PLOGI if not already PLOGI'd. The current f/w documentation tells us
that we have this backwards.
 1.92  11-Apr-2002  mjacob Clean up a bit from the last checkin so that the correct result pointers
are used- didn't make a difference, but hey...

Put in commented out GFF_ID code- for use in future attempts to search
the fabric- this probably has to go thru the management server path.

Don't whine about handles we can't find if these are aborted commands
(we know we can't find the handles because we destroy handles after
a successful mailbox abort- we don't wait for the F/W to decide whether
it wants to return a status IOCB after this happens).
 1.91  04-Apr-2002  mjacob Redo fabric evaluation to not use GET ALL NEXT (GA_NXT). Switches seem
to be trying to wriggle out of supporting this well. Instead, use
GID_FT to get a list of Port IDs and then use GPN_ID/GNN_ID to find the
port and node wwn. This should make working on fabrics a bit cleaner and
more stable.

This also caused some cleanup of SNS subcommand canonicalization so that
we can actually check for FS_ACC and FS_RJT, and if we get an FS_RJT,
print out the reason and explanation codes.

We'll keep the old GA_NXT method around if people want to uncomment a
controlling definition in ispvar.h.

This also had us clean up ISPASYNC_FABRICDEV to use a local lportdb argument
and to have the caller explicitly say that a device is at the end of the
fabric list.
 1.90  22-Mar-2002  mjacob Handle Port Unavailable the same as Port Logout (i.e., send a LIP).

Unconst pointer to f/w in the ispdv structure. Too many compilers get
unhappy over our walking the array. Make casts as appropriate so that
initialization in structure is still happy.

Limit length of fabric to 256. This will all go away soon.

Do a cleaner case of keeping multiple CPUs/threads from reading the
same response queue entries.
 1.89  07-Mar-2002  mjacob Disable RIO (reduced interrupt operation) for 2200 boards- it seemed like
it worked- but I ran into a case with a 2204 where commands were being lost
right and left. Best be safe.

For target mode, or things called if we call isp_handle_other response- note
that we might have dropped locks by changing the output pointer so we bail
from the loop. It's the responsibility of the entity dropping the lock to
make sure that we let the f/w know we've read thus far into the response
queue (else we begin processing the same entries again- blech!).
 1.88  21-Feb-2002  mjacob Implement F/W crashdumps for 2200 && 2300 cards (kernel compile option).

Distinguish between 2312 and 2300 cards (they *are* different). Enable
RIO (Reduced Interrupt Operation) for the LVD cards (hey- I've seen
batched completions of the 30 commands at a time with this,....)...

If we get a Port Logout on local loop topologies, we have to force the
f/w to log back in. The easiest way (for us) to do this is to force
a LIP. This also will wake up the disk that probably just had a f/w crash.

Implement mailbox 'continuations'- this allows interrupts to re-drive
a mailbox command if it's one that just essentially repeats the previous
mailbox command (e.g., f/w download). This saves a boatload of sleep/wakeup
twitches.

If we're not a 2300 and we're about to return with a 'bogus interrupt'- check
the semaphore register to be non-zero at all and outgoing mailbox 0- this
seems to be where some of the lost ISP1080 commands came from.
 1.87  03-Jan-2002  mjacob Implement REDUCED INTERRUPT OPERATION usage for FC cards- this allows the
firmware to delay completion of commands so that it can attempt to batch
a bunch of completions at once- either returning 16 bit handles in mailbox
registers, or in a resposne queue entry that has a whole wad of 16 bit handles.

Distinguish between 2300 and 2312 chipsets- if only because the revisions
on the chips have different meanings.

Add more instrumentation plus ISP_GET_STATS and ISP_CLR_STATS ioctls.
Run up the maximum number of response queue entities we'll look at
per interrupt.

If we haven't set HBA role yet, always return success from isp_fc_runstate.
 1.86  14-Dec-2001  mjacob Major restructuring for swizzling to the request queue and unswizzling from
the response queue. Instead of the ad hoc ISP_SWIZZLE_REQUEST, we now have
a complete set of inline functions in isp_inline.h. Each platform is
responsible for providing just one of a set of ISP_IOX_{GET,PUT}{8,16,32}
macros.

The reason this needs to be done is that we need to have a single set of
functions that will work correctly on multiple architectures for both little
and big endian machines. It also needs to work correctly in the case that
we have the request or response queues in memory that has to be treated
specially (e.g., have ddi_dma_sync called on it for Solaris after we update
it or before we read from it).

One thing that falls out of this is that we no longer build requests in the
request queue itself. Instead, we build the request locally (e.g., on the
stack) and then as part of the swizzling operation, copy it to the request
queue entry we've allocated. I thought long and hard about whether this was
too expensive a change to make as it in a lot of cases requires an extra
copy. On balance, the flexbility is worth it. With any luck, the entry that
we build locally stays in a processor writeback cache (after all, it's only
64 bytes) so that the cost of actually flushing it to the memory area that is
the shared queue with the PCI device is not all that expensive. We may examine
this again and try to get clever in the future to try and avoid copies.

Another change that falls out of this is that MEMORYBARRIER should be taken
a lot more seriously. The macro ISP_ADD_REQUEST does a MEMORYBARRIER on the
entry being added. But there had been many other places this had been missing.
It's now very important that it be done.

For NetBSD, it does a ddi_dmamap_sync as appropriate. This gets us out of
the explicit ddi_dmamap_sync on the whole response queue that we did for SBus
cards at each interrupt.

Set things up so that platforms that cannot have an SBus don't get a lot of
the SBus code checks (dead coded out).

Additional changes:

Fix a longstanding buglet of sorts. When we get an entry via isp_getrqentry,
the iptr value that gets returned is the value we intend to eventually plug
into the ISP registers as the entry *one past* the last one we've written-
*not* the current entry we're updating. All along we've been calling sync
functions on the wrong index value. Argh. The 'fix' here is to rename all
'iptr' variables as 'nxti' to remember that this is the 'next' pointer-
not the current pointer.

Devote a single bit to mboxbsy- and set aside bits for output mbox registers
that we need to pick up- we can have at least one command which does not
have any defined output registers (MBOX_EXECUTE_FIRMWARE).

Explicitly decode GetAllNext SNS Response back *as* a GetAllNext response.
Otherwise, we won't unswizzle it correctly.

Nuke some additional __P macros.
 1.85  13-Nov-2001  lukem add/cleanup RCSID
 1.84  23-Oct-2001  mjacob tra-la, another QLogic f/w funny- this time with the 2300.
If we get a completion status of RQCS_QUEUE_FULL, it means
that the internal queues are full. Other QLogic boards set
the QFULL SCSI status. But *nooooooooooo*, not the 2300.
 1.83  23-Oct-2001  mjacob Comment out some redundant initializations to zero.
 1.82  20-Oct-2001  mjacob Protect against deranged fabric nameservers that spit out 10000 identical
port numbers.
 1.81  06-Oct-2001  mjacob Fix various 2300 GB issues related to chip errata and documentation
misunderstandings. We also now can report our connection rate.
 1.80  05-Sep-2001  mjacob branches: 1.80.2;
Clean up some issues wrt loaded f/w vs. resident f/w. We can tell
attributes of some variants of FC f/w (SCCLUN or not). Fake f/w
rev for SBus cards- the f/w versions we're using don't return
version in outgoing mailbox registers like they should.
 1.79  01-Sep-2001  mjacob Add support for 2 Gigabit cards (2300/2312). This necessitated a change
in how interrupts are down- the 23XX has not only a different place to check
for an interrupt, but unlike all other QLogic cards, you have to read the
status as a 32 bit word- not 16 bit words. Rather than have device specific
functions as called from the core module (in isp_intr), it makes more sense
to have the platform/bus modules do the gruntwork of splitting out the
isr, semaphore register and the first outgoing mailbox register (if needed)
*prior* to calling isp_intr (if calling isp_intr is necessary at all).
 1.78  06-Jul-2001  mjacob branches: 1.78.2;
Some whitespace cleanup. Initial forcelout support.

Fix longstanding bug where we should have been checking
against Channel B's settings to see whether to apply tag
usage. Oops.

Some more 2300 support- macroize access to request queue in/out pointers.
Firmware crashes now handled in platform outer code via an isp_async call.

If we get a LIP, and we're on a private or public loop, kill off all
active commands as if they had been killed by a 'SCSI Bus Reset'. I've
seen data corruption on commands that complete 'normally' after a LIP.
Bad.
 1.77  25-May-2001  mjacob Create a kernel thread for Fibre Channel cards. This is the new
way of doing business- modulo some startup spasms and peculiarities
of the way kthreads are started (*after* configuration, weird) and
some strangeness with the freeze/thaw code, what now happens is
that any of Loop Down, LIP, Loop Reset or Port Datbase or Name
Server Database Changed ASYNC events cause the queues to freeze
for this channel. The arrival of a Loop UP is not relevant.

What *is* relevant is that the Port Datbase or Name Server Changed
async event indicate that it's okay to go and (re)evaluate the
state of the FC link and (re)probe local loop and fabric membership.
We have a kthread do this because it's *sooooo* much nicer to be
able to sleep while doing the 130-250 mailbox commands it'll take
to re-evaluate things.

When the state is well known again, we can unfreeze the channel
queues. Then, as commands start arriving, we simply can start them
or bounce them with XS_SELTIMEOUT (if the device in question has
gone away). Previously, we did lazy evaluation, which meant that
if a change occurred, we would wait until the very *next* command
to go rebuild stuff.

The reason this is not sensible is:

a) Even with sleeping, you can hang up your system because you might be
making some poor stat(2) call pay the price of re-evaluating the whole
fabric.

b) If we ever really want to get to dynamic attachment/detachment, we
should find out sooner, rather than later, where things get to.

Split off ispminphys_1020 from ispminphys- a 1020 has a 24 bit limit-
not anything newer.

Re-enable LIPs and Loop Resets as async events- this allows the outer
layer to set policy about them.

Roll platform major && minor. Remove bogus waitq (no longer used).
Remove callout entry in softc (no longer used). Define some shorthands
for channels. Clean up a variety of cruft left over from the
thorpej_scsipi changeover.
 1.76  16-May-2001  mjacob beginning basic 2300 infrstructure support
 1.75  10-Apr-2001  mjacob Note one other place that bogus interrupts can be measured.
 1.74  05-Apr-2001  mjacob Change how SCSI defaults are latched if we're supporting Target Mode.
Make sure we pick up the channel for dual bus cards when enabling target
mode. Catch a silly null pointer dereference.
 1.73  14-Mar-2001  mjacob Update copyright date. ANSIfy isp.c (NetBSD was the holdout of all
the platforms this code runs on). Handles are now u_int16_t, so adjust
code as required.
 1.72  23-Feb-2001  mjacob branches: 1.72.2;
Fix a longstanding bug- we had the sense of what bit 14
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.
 1.71  20-Feb-2001  mjacob Add ISPCTL_RUN_MBOXCMD control function and ISPASYNC_UNHANDLED_RESPONSE
async event. Call ISP_DUMPREGS on f/w erro. Correct problem in bitmap
for MBOX_DUMP_RAM.
 1.70  12-Feb-2001  mjacob Minor stuff:
Remove ISP2100_FABRIC defines- we always handle fabric now. Insert
isp_getmap helper function (for getting Loop Position map). Make
sure we (for our own benefit) mark req_state_flags with RQSF_GOT_SENSE
for Fibre Channel if we got sense data- the !*$)!*$)~*$)*$ Qlogic
f/w doesn't do so. Add ISPCTL_SCAN_FABRIC, ISPCTL_SCAN_LOOP, ISPCTL_SEND_LIP,
and ISPCTL_GET_POSMAP isp_control functions. Correctly send async notifications
upstream for changes in the name server, changes in the port database, and
f/w crashes. Correctly set topology when we get a ASYNC_PTPMODE event.

When resetting the Qlogic 2X00 units, reset the FPM (Fibre Protocol
Module) and FBM (Fibre Buffer Modules). Also remember to clear the
semaphore registers. Tell the RISC processor to not halt on FPM
parity errors.


Finally, use a new tag in the softc to store the opcode for the
last mailbox command used so we can report which opcode timed
out.

Major stuff:
Quite massively redo how we handle Loop events- we've now added several
intermediate states between LOOP_PDB_RCVD and LOOP_READY. This allows us
a lot finer control about how we scan fabric, whether we go further
than scanning fabric, how we look at the local loop, and whether we
merge entries at the level or not. This is the next to last step for
moving managing loop state out of the core module entirely (whereupon
loop && fabric events will simply freeze the command queue and a thread
will run to figure out what's changed and *it* will re-enable the queu).
This fine amount of control also gets us closer to having an external
policy engine decide which fabric devices we really want to log into.

Throw out the ISP_CFG_NOINIT silliness and instead go to the use of
adapter 'roles' to see whether one completes initialization or not
(mostly for Fibre Channel). The ultimate intent, btw, of all of this
is to have a warm standby adapter for failover reasons. Because
we do roles now, setting of Target Capable Class 3 service parameters
in the ICB for the 2x00 cards reflects from role. Also, in isp_start,
if we're not supporting an initiator role, we bounce outgoing commands
with a Selection Timeout error. Also clean out the TOGGLE_TMODE
goop for FC- there is no toggling of target mode like there is
for parallel SCSI cards.

Do more cleanup with respect to using target ids 0..125 in F-port
topologies. Also keep track of things which *were* fabric devices
so that when you rescan the fabric you can notify the outer layers
when fabric devices go away.

Only force a LOGOUT for fabric devices if they're still logged in
(i.e., you cat their Port Database entry. Clean up the Get All Next
scanning.
 1.69  09-Jan-2001  mjacob Use a SNS REGISTER FC4 TYPE subcommand to register with the name server.
This means we should be able to work with McData switches now. Change
ISPASYNC_PDB_CHANGED to ISPASYNC_LOGGED_INOUT (more descriptive). Allow
F-Port topologies to use target ids 0..125 to log into fabric devices.
Yet again fool around with defaul WWN stuff.
 1.68  30-Dec-2000  mjacob [ dummy checkin to add to previous CVS ]

It's probably not really a compiler bug- somebody pointed out
that it was the kernel making strings readonly. But I do think it's
a bug. The actual code was really more like:

char *revname;

...

revname = "2X00";

...
revname[1] = '2'; <<<<<<<<< BOOOM


The variable revname is not a const. If I had said

const char *revname = "2X00"
...
revname[1] = '2';

that would indeed be breaking const rules.
 1.67  30-Dec-2000  mjacob There's a compiler bug for sparc64 that makes the construct:

char *foo = "XXXX";
...
foo[1] = 'Y';

blow up (in the kernel) with the 2nd assignment. Work around it here-
it's probably just as well- I was spending more in cpu instructions doing
the assignment than I was saving in string space (it would have been
cheap on a pdp11 or a 68k- but the address loads and assignments on something
like sparc or alpha way outweigh the savings in space. Tsk.).
 1.66  28-Dec-2000  mjacob Apply nearly all of Bill Sommerfeld's -Wformat patches. The one
change I didn't take is the %llu format- I can't have a common
across multiple platform module assume a %ll argument capability-
which really pointed out that I shouldn't be trying to *print*
something which could long long.
 1.65  28-Dec-2000  mjacob Use the ISP_CFG_NOINIT flag to decide whether to complete the full init
process steps (this is used in some platforms where you want to bring
the adapter to ready (to get a WWN, e.g.) , but not engage either target
or initiator mode until some later time). Set the correct defaults WWNs.
 1.64  23-Dec-2000  wiz Fix pathnames in comment.
 1.63  09-Dec-2000  mjacob Finally fix this driver to be sensible about the ENDIAN dance. It's not
quite simply a question of the Qlogic being little endian and having
to have stuff swapped on big endian machines- it also has to do with the
fact that the SBus and PCI DMA layouts are wierd with respect to this.

At any rate, now finally fixed- works on Mac G4, tested it on a SS10
for sparc, checked on alpha to see if I've broken anything, and as
soon as I get another spare afternoon I'll finally install a sparc64
version which should just work (as it'll be like the Mac).
 1.62  16-Oct-2000  mjacob Clarify/cleanup how node and port names are derived from nvram. Remove
clause 2 of licence. Remember to print initiator ID (LOGINFO level).
 1.61  16-Aug-2000  mjacob Add some changes/notes suggested by eeh@netbsd.org (zero header of
response queue entry). Clean up some of the Fibre Channel completion
stuff so that thing we check actually match the current manual. There's
only one silly lossage that the manual doesn't cover at present- if
an FC command completes with SV (sense valid), the f/w does *not* s
et "GOT_STATUS" in the state bits- I guess they assume that you'd figure
out that if you have SENSE DATA you probably have a CHECK CONDITION. Still-
yet another fine f/w frotz from Qlogic. Add in an ISP_EXEC_THROTTLE
define to set a per-device execution throttle.
 1.60  14-Aug-2000  mjacob Add a maintenance note.

Clarify some startup SCSI mode settings. Insist that the FC f/w options
*must* have ICBOPT_PDBCHANGE_AE set (wasted a half day on this crock).

Make a specific comment in isp_start that the tags being selected for FC
cards, in lieu of any set by the outer layers, are there for safety's sake.
This removes the change from a previous commit.

For the ISP_TOGGLE_TMODE function, do a complete reset, not just an
isp_init (info from Solaris port). Make some cleanup changes for
code clarity.
 1.59  11-Aug-2000  tls Make our policy WRT tagged queueing consistent and sane: ordered tags for sync writes, simple tags for all else. Should make ahc and adv a bit more reliable (metadata writes won't get reordered incorrectly...) and isp a bit more performant (it was using ordered tags all the time).
 1.58  08-Aug-2000  mjacob Remove ispcmd_slow routine- SCBUSACCEL routine will set/clear tag/wide/sync.
Make some changes about where some things sit in the softc.
 1.57  01-Aug-2000  mjacob Core version 2.0 (platform version 1.0) rewrite of ISP driver. Some
interace cleanups, some new common functions. The major impact that
will be noticeable right away is that if you boot with not Fibre connected
to the FC cards, you no longer hang indefinitely.
 1.56  19-Jul-2000  mjacob fix mislabelled error case
 1.55  06-Jul-2000  mjacob Per advice from thorpej, reinstated some of Erik's changes.
 1.54  05-Jul-2000  mjacob Back out previous commit- the author is incorrect. There is no 'narrow'
Qlogic controller driven by this chipset. If they don't want the verbosity,
don't compile a DIAGNOSTIC kernel.

Major amount of mailbox command rewrites- hopefully should fix some of the
outstanding PRs.

Change header to note that this is no longer maintained at NASA/Ames.
 1.53  03-Jun-2000  fair branches: 1.53.2;
Change the debug level from 1 to 3 for "skipping target" diagnostic
which spews unreasonably for a Qlogic SCSI-2 narrow controller, which
does not have ID's above 7.
 1.52  13-May-2000  he branches: 1.52.2;
Update from Matthew Jacob:

Correctly account for F-port vs. F-port (no FLOGI_ACC) topologies.
Make sure we get a port database entry for the fabric name server.
Preserve fabric logins if the device didn't change across fabric
or port database changes, or the device has already logged into
us (e.g., for target/initiator dual role devices like Veritas
SANbox). Propagate class 3 service parameter changes where devices
can change roles.

Fix all occurrences of setting a sendmarker so that setting it
for one bus on dual bus cards doesn't wipe a pending sendmarker
for other busses on the same card :-;.

Comments added and clarifications made in some of the target mode code.
 1.51  21-Feb-2000  mjacob clen up some error messages
 1.50  19-Feb-2000  mjacob Remove residual and now broken !ISP_NO_FASTPOST_SCSI code (which was
turning back on fast posting!). Redo fabric (re)login loop- don't try
and log out ports that haven't been logged in. Do correct target id
shuffling so we just always find the target ID we want. Add in support
for > 12 byte commands for parallel SCSI. Handle some Dual Bus reset
stuff. Finally fix ABORT COMMAND to use the right 16 bit order of the
handle to abort.
 1.49  12-Feb-2000  mjacob Add in 12160 (Ultra3) support. Turn back on fast posting for the new
generateion parallel SCSI cards (1240/1080/1280/12160). Split up nvram
reading routines to be more readable. Fix topology reporting- 2200 has
connected topology in mailbox 6 when you're done getting your loop id
(supported: Private Loop (NL Port), N-Port, F-Port, FL-Port). The 2100
doens't report this, but we can synthesize it to be either NL-Port or
FL-Port. Add in some connection mode async events.
 1.48  14-Jan-2000  mjacob UltraMode is okay for SBus cards with chiptypes of 1020A.
 1.47  06-Jan-2000  mjacob Bump up level of some very verbose debugs so that SCSIDEBUG doesn't cause them
to print.
 1.46  06-Jan-2000  mjacob Bump default login time to 60 seconds. Move the spot at
which we claim we've seen the loop up at least once so
that we don't hang forever coming up. Add in the basics
for MI target mode stuff. Force the outer layers to deal
with a FCP response coming back that has a CHECK CONDITION
but no sense data.
 1.45  20-Dec-1999  mjacob clean up some f/w revision stuff. clean up some dualbus stuff.
 1.44  16-Dec-1999  mjacob Dual LVD (1280) support.
 1.43  04-Dec-1999  mjacob Some queue related functions now use a u_int16_t. Turn some messages into
CFGPRINTF messages. Clear up the f/w download slightly. If less than
rev 5 2100 chip, turn off loop fairness. Clean up a botch or two.
 1.42  28-Oct-1999  mjacob I was misinformed. I cannot get away from specifying tags for FC. Some devices
are happy w/o them- some are unhappy (IBM drives).
 1.41  26-Oct-1999  mjacob nuke a debug printout I thought was already gone
 1.40  22-Oct-1999  mjacob remember to initialize mailbox 2 for FC isp bus resets
 1.39  17-Oct-1999  mjacob branches: 1.39.2; 1.39.4;
Some stylistic changes, but also use the new INT_PENDING macro. Start
tracking LIP sequence numbers.
 1.38  14-Oct-1999  mjacob remove most target mode stuff. Change the arguments to the
isp_fastpost_complete function to include a handle. Do some
isr register debouncing. Use new inline functions for xflist
handle storage. Remove isp_dumpxflist function. Do some fixups
of NVRAM from some broken cards. Use Full Login after LIP option
for FC cards if f/w < 1.17 - there's a f/w bug that causes the
port database to not be actually refreshed for local loop devices!
Do the appropriate endian swizzling for the ICB. Ditto for SNS structures
(these are no-ops until UltraSparc PCI needs them).
 1.37  05-Jul-1999  mjacob branches: 1.37.2;
Change to approved NASA/Ames copyright. Add Fabric support. Fix SCCLUN support.
Add code that tries to track LoopID shifting.
 1.36  12-May-1999  mjacob Do a fairly large internal restructuring to accomodate dual-bus host adapters
(e.g., the 1240). Include the new 1080/1240 NVRAM layout reading code. Some
moderately significant mailbox changes were necessary also to accomodate a
second channel.
 1.35  04-Apr-1999  mjacob 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.
 1.34  26-Mar-1999  mjacob branches: 1.34.2; 1.34.4;
add isp1080 support and some basic PDB change stuff
 1.33  17-Mar-1999  mjacob Update the driver with some infrastructure for the 1080. Fix an embarrassing
clock botch bug. Additional infrastructure for PDB change stuff.
 1.32  09-Feb-1999  mjacob 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.
 1.31  30-Jan-1999  mjacob 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.
 1.30  10-Jan-1999  mjacob + Some basic deadchip detection.
+ Enable FIFO bursts, but also detect bogus 1040A with busted FIFO.
+ Use new MEMZERO crossplatform define.
+ Handle RQCS_QUEUE_FULL status case and let upper layer parse SCSI ststus
byte if nonzero (should be 0x28- Queue Full status)
+ Fold ISP_NVRAM_FIFO_THRESHOLD_128 into isp_fifo_threshold tag.
 1.29  28-Dec-1998  mjacob clean up headers; move uninit/watch to outer layers
 1.28  05-Dec-1998  mjacob Update HBAs to incorporate the new max_lun property.
 1.27  17-Sep-1998  mjacob Several changes, including some stub fibre target mode stuff. Establish
a slightly different fibre startup (print ALPA now too). Change
the way that return values from dma setup is done. Make debug messages
out of some queue overflow situations. Turn PORT LOGGED OUT into
Selection Timeout equivlaent. On isp_restart actions don't blow off
the commands with HBA_BOTCH (XS_DRIVER_STUFFUP) - set them with HBA_BUSRESET
(which is defined as XS_DRIVER_STUFFUP until someone decides whether
the suggested change to the midlayer NetBSD is worthy of inclusion).
 1.26  10-Sep-1998  mjacob turn into a debug message an ABOUT F/W failure. Add ISPCTL_UPDATE_PARAMS isp_control case
 1.25  08-Sep-1998  mjacob Major reworking of initialization code, addition of NVRAM reading, usage
of device speed updating, etc... A lot of FC and other case statement
handling. Whew. Too much to really detail here.
 1.24  18-Jul-1998  mjacob Locking is now in the outer framework for isp_init/isp_reset- this allows
us to call isp_reset/isp_init internally with impunity.

Rename isp_phoenix to isp_restart and make it global. Clean it up a tad.

If we get an ASYNC_SYSTEM_ERROR code in isp_intr, call isp_restart and
return- the f/w is toasted at this point (usually), so we have to bring
things back to a known state.

In isp_mboxcmd, when we don't see the HOST_INT bit go clear, try and
find out if the isp is trying to tell us something and try again. This
may avoid a potential deadlock where the previous mailbox command hasn't
been cleared by the ISP.

In isp_init don't try and get device parameters if we already have them-
this typically doesn't work if we're in the middle of an isp_restart.
 1.23  15-Jul-1998  mjacob Some major thrashing to handle building for other than NetBSD.

There is one change of note- build a list of completing commands in
ispintr and then say you're done- this avoids some re-entrancy issues
that had surfaced.
 1.22  05-May-1998  mjacob there is an (unimportant) difference between 1020 && 1020A
 1.21  24-Mar-1998  mjacob some minor debug printout changes
 1.20  22-Mar-1998  mjacob update some debugging stuff- also turn off possible ULTRA mode for 1020s
 1.19  13-Feb-1998  thorpej Don't include <dev/scsipi/scsipi_conf.h> twice.
 1.18  28-Jan-1998  mjacob Fix for port-alpha/4903- always download f/w unless config flags say
no or we have no firmware to download.
 1.17  12-Jan-1998  thorpej Adjust for config changes.
 1.16  05-Dec-1997  mjacob Add a new async notification, and also fix a bug where the queue entry
wasn't getting fully zeroed as it should be.
 1.15  29-Sep-1997  mjacob branches: 1.15.2;
A little cleanup and print more error messages.
 1.14  13-Sep-1997  mjacob Wierd- well, what isn't with devices? Anyway, the type code for the ISP
chip on AlphaStation 500 is 2- which wasn't handled, and bad things happened
because the default case wasn't sane. Both are corrected now.
 1.13  10-Sep-1997  mjacob Some formatting cleanup, and for the ISP2100, the flags hadn't being set
quite right, but things worked okay anyhow.
 1.12  27-Aug-1997  bouyer Merge scsipi branch in the mainline. This add support for ATAPI devices
(currently only CD-ROM drives on i386). The sys/dev/scsipi system provides 2
busses to which devices can attach (scsibus and atapibus). This needed to
change some include files and structure names in the low level scsi drivers.
 1.11  16-Aug-1997  mjacob Merge foo.
 1.10  16-Aug-1997  mjacob *Major* differences to support the Qlogic 2100 (Fibre Channel PCI), as well
as being able to do microdifferentiation of the ISP SCSI chip; a couple of
bug fixes, and the beginnings of some watchdog support.
 1.9  28-Jul-1997  mjacob branches: 1.9.2;
Kudos and thanks to Mark Brinicombe (mark@causality.com): bug in waiting for
RISC_INT to be set after stuffing a mailbox.
 1.8  22-Jun-1997  mjacob branches: 1.8.2;
Hmm- seriously funny and sad bug: you need to directly establish the
clock rate for this board on Alpha/PCI systems. Under x86/PCI, the
board f/w will correctly tell you "I'm running at 60Mhz", so the code
that preserved that across a board reset (which would drop the chip
back to 40Mhz) worked fine. On the 8200, the chip was saying "I'm 40Mhz"-
which wasn't true. This turned out to be okay as long as you didn't have
any FAST or UltraFast targets- In fact, setting the chip to 40Mhz allowed
you to run up to 8Mhz SCSI. Unfortunately you die bigtime on the devices
that go faster than that. The fix here is to only use what the chip tells
you the clock rate is in the cases you don't really know (sbus is the
only case where this could be different, although with 66Mhz PCI coming up,
this may change).
 1.7  08-Jun-1997  thorpej - Simplify mailbox DMA setup, allowing the front-ends to allocate the
mailbox storage in a way they see fit.
- Define macros to index and size the request and result queue entries.
 1.6  01-Jun-1997  mjacob Finally found the cause of that nagging 'lost command' (for the first
command) bug: the initial response queue index is take from mbox 5,
not mbox 4, and mbox 5 wasn't getting initialized to zero.
 1.5  05-Apr-1997  mjacob Okay, Charles convinced me that XS_DRIVER_STUFFUP is better than XS_SELTIMEOUT.
 1.4  05-Apr-1997  mjacob A) Attempt to get clock rate from ISP chip prior to bashing it over the head
in reset. If none there, try and get from the bus/platform specific code.
If a nonzero value for either, set the clock rate. This is why the PCI
card versions weren't working- they need to be set at 60MHZ, rather than
the default 40MHZ (which worked fine for the internal ISP chips on the
Alpha 8X00).

B) If a isp_poll returns failure (command never completed) to the caller
and no error is set in the xs struct, set XS_SELTIMEOUT. And then call...

C) Added isp_lostcmd function to try and ask the ISP chip about it's current
state as well as the state of commands for a particular target/lun. This is
going along to try and figure out why the very first command to the ISP always
seems to get swallowed up.
 1.3  23-Mar-1997  cgd clean up isp_poll() so that it works more correctly. (Modeled on the version
in the BusLogic driver.)
 1.2  12-Mar-1997  cgd NetBSD RCS ID tweaks, a few comment block tweaks. Also, make copyright
notices consistent (per Matt Jacob).
 1.1  12-Mar-1997  cgd branches: 1.1.1;
Initial revision
 1.1.1.1  12-Mar-1997  cgd ISP 10x0 driver from Matthew Jacob of NASA Ames Research Center.
(March 12, 1997 version).
 1.8.2.3  26-Aug-1997  bouyer Update from trunk.
 1.8.2.2  30-Jul-1997  bouyer Sync with trunk.
 1.8.2.1  01-Jul-1997  bouyer Updates for new scsipi subsystem. Actally known to work on i386 and sparc.
 1.9.2.4  14-Oct-1997  thorpej Update marc-pcmcia branch from trunk.
 1.9.2.3  16-Sep-1997  thorpej Update marc-pcmcia branch from trunk.
 1.9.2.2  27-Aug-1997  thorpej Update marc-pcmcia branch from trunk.
 1.9.2.1  23-Aug-1997  thorpej Update marc-pcmcia branch from trunk.
 1.15.2.2  07-Nov-1998  cgd pull up revs 1.16-1.17, 1.19-1.27 from trunk (mjacob)
 1.15.2.1  08-May-1998  mycroft Pull up 1.18, per request of cgd.
 1.34.4.2  02-Aug-1999  thorpej Update from trunk.
 1.34.4.1  21-Jun-1999  thorpej Sync w/ -current.
 1.34.2.2  13-May-2000  he Apply patch (requested by Matthew Jacob via he):
Correctly account for F-port vs. F-port (no FLOGI_ACC) topologies.
Make sure we get a port database entry for the fabric name server.
Preserve fabric logins if the device didn't change across fabric
or port database changes, or the device has already logged into
us (e.g., for target/initiator dual role devices like Veritas
SANbox). Propagate class 3 service parameter changes where devices
can change roles.

Fix all occurrences of setting a sendmarker so that setting it
for one bus on dual bus cards doesn't wipe a pending sendmarker
for other busses on the same card.

Comments added and clarifications made in some of the target mode code.

Add support for > 12 byte CDBs. Split out nvram reading into
per-card functions. Add proper Ultra2/Ultra3 support. Upgrade
firmware.
 1.34.2.1  08-Jan-2000  he Pull up revisions 1.35-1.47 (requested by mjacob):
Untangle Qlogic firmware copyright problems and update firmware.
Untangle some MD support issues for said firmware. Add 1280 (Dual
LVD), 1240 (Dual Ultra), 2200 (2nd Generation Qlogic FC chipset).
Fix some synchronous negotiation problems for parallel SCSI.
Firm up some Fabric Support issues.
 1.37.2.1  27-Dec-1999  wrstuden Pull up to last week's -current.
 1.39.4.1  15-Nov-1999  fvdl Sync with -current
 1.39.2.8  21-Apr-2001  bouyer Sync with HEAD
 1.39.2.7  27-Mar-2001  bouyer Sync with HEAD.
 1.39.2.6  12-Mar-2001  bouyer Sync with HEAD.
 1.39.2.5  18-Jan-2001  bouyer Sync with head (for UBC+NFS fixes, mostly).
 1.39.2.4  05-Jan-2001  bouyer Sync with HEAD
 1.39.2.3  13-Dec-2000  bouyer Sync with HEAD (for UBC fixes).
 1.39.2.2  20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.39.2.1  04-Feb-2000  thorpej - If the ISP's internal queues are full, don't synthesize a QFULL status,
but rather report it as a host adapter resource shortage.
- If the I_T_L's command queues are full, report that the target is busy
(with QFULL status).
 1.52.2.1  22-Jun-2000  minoura Sync w/ netbsd-1-5-base.
 1.53.2.4  16-Mar-2001  he Pull up revisions 1.66-1.73 (requested by mjacob):
Add ISPCTL_RUN_MBOXCMD control function and ISPASYNC_UNHANDLED_RESPONSE
async event. Call ISP_DUMPREGS on f/w erro. Correct problem in
bitmap for MBOX_DUMP_RAM. Remove ISP2100_FABRIC defines. When
resetting the Qlogic 2X00 units, reset the FPM (Fibre Protocol
Module) and FBM (Fibre Buffer Modules). Massively redo how loop
events are handled. Throw out ISP_CFG_NOINIT and do HBA roles
instead. Use a SNS REGISTER FC4 TYPE subcommand to register with
the name server. Don't attempt to modify strings that the compiler
might have marked readonly. Bad ANSI! No Biscuit! Do some -Wformat
patches. Fix longstanding bug in ICB initialization of WWNs.
Handles are u_int16_t now. ANSIfy.
 1.53.2.3  25-Jan-2001  jhawk Pull up revisions 1.62-1.65 (requested by mjacob):
Add in correct SBus bursting; upgrade to 2.01.26 firmware; pull to latest
initiator mode level; make changes to WWN default handling; quiet
chatty boot messages; fix endian code so MacPPC works; fix bug in
lock recursion counter; fix bug which excluded all but NL-ports from
being logged into on a fabric.
 1.53.2.2  28-Aug-2000  mjacob Complete rewrite of internals for isp core version 2.0.
Pullup to netbsd-1-5 approved by thorpej@netbsd.org.
 1.53.2.1  11-Aug-2000  tls Pull up tagged queueing policy changes: now we use ordered tags for sync writes, simple tags for reads and async writes.
 1.72.2.17  11-Dec-2002  thorpej Sync with HEAD.
 1.72.2.16  11-Nov-2002  nathanw Catch up to -current
 1.72.2.15  27-Aug-2002  nathanw Catch up to -current.
 1.72.2.14  13-Aug-2002  nathanw Catch up to -current.
 1.72.2.13  20-Jun-2002  nathanw Catch up to -current.
 1.72.2.12  17-Apr-2002  nathanw Catch up to -current.
 1.72.2.11  01-Apr-2002  nathanw Catch up to -current.
(CVS: It's not just a program. It's an adventure!)
 1.72.2.10  28-Feb-2002  nathanw Correct a merge botch.
 1.72.2.9  28-Feb-2002  nathanw Catch up to -current.
 1.72.2.8  11-Jan-2002  nathanw More catchup.
 1.72.2.7  08-Jan-2002  nathanw Catch up to -current.
 1.72.2.6  14-Nov-2001  nathanw Catch up to -current.
 1.72.2.5  22-Oct-2001  nathanw Catch up to -current.
 1.72.2.4  21-Sep-2001  nathanw Catch up to -current.
 1.72.2.3  24-Aug-2001  nathanw Catch up with -current.
 1.72.2.2  21-Jun-2001  nathanw Catch up to -current.
 1.72.2.1  09-Apr-2001  nathanw Catch up with -current.
 1.78.2.5  06-Sep-2002  jdolecek sync kqueue branch with HEAD
 1.78.2.4  23-Jun-2002  jdolecek catch up with -current on kqueue branch
 1.78.2.3  16-Mar-2002  jdolecek Catch up with -current.
 1.78.2.2  10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.78.2.1  13-Sep-2001  thorpej Update the kqueue branch to HEAD.
 1.80.2.1  11-Oct-2001  fvdl Catch up with -current. Fix some bogons in the sparc64 kbd/ms
attach code. cd18xx conversion provided by mrg.
 1.93.2.3  29-Aug-2002  gehenna catch up with -current.
 1.93.2.2  20-Jun-2002  gehenna catch up with -current.
 1.93.2.1  30-May-2002  gehenna Catch up with -current.
 1.102.2.5  10-Nov-2005  skrll Sync with HEAD. Here we go again...
 1.102.2.4  04-Mar-2005  skrll Sync with HEAD.

Hi Perry!
 1.102.2.3  21-Sep-2004  skrll Fix the sync with head I botched.
 1.102.2.2  18-Sep-2004  skrll Sync with HEAD.
 1.102.2.1  03-Aug-2004  skrll Sync with HEAD
 1.105.10.1  19-Mar-2005  yamt sync with head. xen and whitespace. xen part is not finished.
 1.105.8.1  29-Apr-2005  kent sync with -current
 1.107.2.2  17-Mar-2008  yamt sync with head.
 1.107.2.1  03-Sep-2007  yamt sync with head.
 1.108.22.2  10-Dec-2006  yamt sync with head.
 1.108.22.1  22-Oct-2006  yamt sync with head
 1.108.20.1  18-Nov-2006  ad Sync with head.
 1.110.10.1  11-Jul-2007  mjf Sync with head.
 1.110.8.3  15-Jul-2007  ad Sync with head.
 1.110.8.2  15-Jul-2007  ad Sync with head.
 1.110.8.1  27-May-2007  ad Sync with head.
 1.113.28.3  17-Jan-2009  mjf Sync with HEAD.
 1.113.28.2  02-Jun-2008  mjf Sync with HEAD.
 1.113.28.1  03-Apr-2008  mjf Sync with HEAD.
 1.113.24.1  24-Mar-2008  keiichi sync with head.
 1.113.8.1  23-Mar-2008  matt sync with HEAD
 1.114.6.1  23-Jun-2008  wrstuden Sync w/ -current. 34 merge conflicts to follow.
 1.114.4.5  11-Aug-2010  yamt sync with head.
 1.114.4.4  11-Mar-2010  yamt sync with head
 1.114.4.3  18-Jul-2009  yamt sync with head.
 1.114.4.2  04-May-2009  yamt sync with head.
 1.114.4.1  16-May-2008  yamt sync with head.
 1.114.2.1  18-May-2008  yamt sync with head.
 1.115.6.1  19-Jan-2009  skrll Sync with HEAD.
 1.116.2.1  23-Jul-2009  jym Sync with HEAD.
 1.120.4.2  05-Mar-2011  rmind sync with head
 1.120.4.1  30-May-2010  rmind sync with head
 1.120.2.1  30-Apr-2010  uebayasi Sync with HEAD.
 1.121.4.1  05-Mar-2011  bouyer Sync with HEAD
 1.121.2.1  06-Jun-2011  jruoho Sync with HEAD.
 1.122.14.3  03-Dec-2017  jdolecek update from HEAD
 1.122.14.2  20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.122.14.1  23-Jun-2013  tls resync from head
 1.122.10.1  14-Mar-2013  riz Pull up following revision(s) (requested by martin in ticket #838):
sys/dev/ic/isp.c: revision 1.123
Disable ICBOPT_FAST_POST for ISP 2100.
Fixes PR kern/47302. From Matthew Jacob.
 1.122.4.1  22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.123.6.1  18-May-2014  rmind sync with head
 1.125.14.1  21-Apr-2017  bouyer Sync with HEAD
 1.125.10.1  20-Mar-2017  pgoyette Sync with HEAD
 1.125.6.1  28-Aug-2017  skrll Sync with HEAD

RSS XML Feed