History log of /src/sys/dev/ic/isp_tpublic.h |
Revision | | Date | Author | Comments |
1.21 |
| 12-Dec-2021 |
andvar | fix various typos, mainly in comments.
|
1.20 |
| 19-Aug-2020 |
msaitoh | s/ be be / be /
|
1.19 |
| 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.18 |
| 25-Jun-2009 |
mjacob | Update ISP driver to latest and greatest. Includes support for the 8Gb part.
|
1.17 |
| 11-May-2008 |
mjacob | branches: 1.17.12; Make fc scratch acquisition something that can fail. Remove in_intr flag. Otherwise synchronize with changes made due to other platforms.
|
1.16 |
| 11-Mar-2008 |
mjacob | branches: 1.16.2; 1.16.4; 1.16.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.15 |
| 24-May-2007 |
mjacob | branches: 1.15.8; 1.15.24; 1.15.28; 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.14 |
| 11-Dec-2005 |
christos | branches: 1.14.30; 1.14.32; merge ktrace-lwp.
|
1.13 |
| 27-Feb-2005 |
perry | branches: 1.13.4; nuke trailing whitespace
|
1.12 |
| 04-Dec-2003 |
keihan | branches: 1.12.8; 1.12.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.11 |
| 02-Nov-2003 |
wiz | Fix some typos. From Tom Cosgrove via jmc@openbsd.
|
1.10 |
| 07-Aug-2003 |
mjacob | Various updates to sync with mainline code. Nothing of great significance to NetBSD, yet.
|
1.9 |
| 03-Mar-2003 |
mjacob | branches: 1.9.2; spelling
|
1.8 |
| 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.7 |
| 16-May-2001 |
mjacob | branches: 1.7.2; Keep up with the Joneses.... further synchronization for the eventual implementation in NetBSD for target mode.
|
1.6 |
| 14-Mar-2001 |
mjacob | Clean up some comments. Expand usage of cd_reserved. Expand cd_tagval to 32 bits so it can haul along this furshlugginer handle for parallel SCSI as well as a regular vanilla 8 bit SCSI tag.
|
1.5 |
| 23-Dec-2000 |
wiz | branches: 1.5.2; Fix pathnames in comment.
|
1.4 |
| 14-Aug-2000 |
mjacob | branches: 1.4.2; Add a maintenance note
|
1.3 |
| 13-May-2000 |
he | branches: 1.3.4; 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.2 |
| 19-Feb-2000 |
mjacob | Clarify cd_resid tag.
|
1.1 |
| 12-Feb-2000 |
mjacob | add a more public shared i/f to target mode
|
1.3.4.1 |
| 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.4.2.4 |
| 27-Mar-2001 |
bouyer | Sync with HEAD.
|
1.4.2.3 |
| 05-Jan-2001 |
bouyer | Sync with HEAD
|
1.4.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.4.2.1 |
| 14-Aug-2000 |
bouyer | file isp_tpublic.h was added on branch thorpej_scsipi on 2000-11-20 11:40:40 +0000
|
1.5.2.3 |
| 08-Jan-2002 |
nathanw | Catch up to -current.
|
1.5.2.2 |
| 21-Jun-2001 |
nathanw | Catch up to -current.
|
1.5.2.1 |
| 09-Apr-2001 |
nathanw | Catch up with -current.
|
1.7.2.1 |
| 10-Jan-2002 |
thorpej | Sync kqueue branch with -current.
|
1.9.2.4 |
| 04-Mar-2005 |
skrll | Sync with HEAD.
Hi Perry!
|
1.9.2.3 |
| 21-Sep-2004 |
skrll | Fix the sync with head I botched.
|
1.9.2.2 |
| 18-Sep-2004 |
skrll | Sync with HEAD.
|
1.9.2.1 |
| 03-Aug-2004 |
skrll | Sync with HEAD
|
1.12.10.1 |
| 19-Mar-2005 |
yamt | sync with head. xen and whitespace. xen part is not finished.
|
1.12.8.1 |
| 29-Apr-2005 |
kent | sync with -current
|
1.13.4.2 |
| 17-Mar-2008 |
yamt | sync with head.
|
1.13.4.1 |
| 03-Sep-2007 |
yamt | sync with head.
|
1.14.32.1 |
| 11-Jul-2007 |
mjf | Sync with head.
|
1.14.30.1 |
| 27-May-2007 |
ad | Sync with head.
|
1.15.28.2 |
| 02-Jun-2008 |
mjf | Sync with HEAD.
|
1.15.28.1 |
| 03-Apr-2008 |
mjf | Sync with HEAD.
|
1.15.24.1 |
| 24-Mar-2008 |
keiichi | sync with head.
|
1.15.8.1 |
| 23-Mar-2008 |
matt | sync with HEAD
|
1.16.6.1 |
| 23-Jun-2008 |
wrstuden | Sync w/ -current. 34 merge conflicts to follow.
|
1.16.4.3 |
| 11-Mar-2010 |
yamt | sync with head
|
1.16.4.2 |
| 18-Jul-2009 |
yamt | sync with head.
|
1.16.4.1 |
| 16-May-2008 |
yamt | sync with head.
|
1.16.2.1 |
| 18-May-2008 |
yamt | sync with head.
|
1.17.12.1 |
| 23-Jul-2009 |
jym | Sync with HEAD.
|