- Make pre-1240 cards be able to do 64 bit dma as well, making sure that
they don't cross a 16MB boundary.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@316 d57e44dd-8a1f-0410-8b47-8ef2f437770f
- Make FC_SCRATCH_ACQUIRE a macro that returns true/false
- Fixes from Stanislaw for 2.6.23 & 2.6.24. Many thanks.
- A quick hack to isp_kthread to use waitqueues instead of semaphores
to have less blockage. More rewrites later
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@314 d57e44dd-8a1f-0410-8b47-8ef2f437770f
- Do some whitespace changes. Solaris related compilation fix. Remove
XS_SET_STATE_STAT macro.
- Remove XS_SET_STATE_STATE macro.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@313 d57e44dd-8a1f-0410-8b47-8ef2f437770f
- whitespace and other minor fixes
- Remove F/W crash dump support. We only worked it out for 2200 and 2300
cards. It's also true that QLogic would not support us even if we *did*
give them a crash dump, so the usage here is not really worth it.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@311 d57e44dd-8a1f-0410-8b47-8ef2f437770f
- Allow different platforms/environments to specificy the size of the
high and low private storage for tmd_cmd_t structures
- Add a scan scsi thread event so that we can attach devices as we
discover them
- Fix some tabs
- Make things work correctly when CONFIG_FW_LOADER is *not* defined
- Get rid of sema and use wait_interruptible
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@307 d57e44dd-8a1f-0410-8b47-8ef2f437770f
- pass commands to SCST after assigning initiator to them
- enable lun's on proper channel
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@302 d57e44dd-8a1f-0410-8b47-8ef2f437770f
- Connection close improved to be less agressive and honor TCP TIME_WATE state
- Docs updates
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@301 d57e44dd-8a1f-0410-8b47-8ef2f437770f
- Fixed dev_cdrom and dev_modisk load failures if there are no media in the drives
- Other minor fixes and cleanups
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@298 d57e44dd-8a1f-0410-8b47-8ef2f437770f
- Optimizations and send timeout introduced in r295 temporary disabled
- Big connection shutdown times improvements. Great thanks to Alexey Kuznetsov for suggestions!
- RESERVE/RELEASE serialization now made with TST field 0 (i.e. single task set)
- Other minor fixes and improvements
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@297 d57e44dd-8a1f-0410-8b47-8ef2f437770f
- Response data send timeout implemented: now if initiator doesn't accept data for too long (7 sec), target closes connection
- Connction closing improved: now session cleared without need to wait for all outstanding commands data fully transmitted
- On session unregistration now all outstanding commands are implicitely aborted
- TM processing in SCST core made independant from other TM commands (before they were serialized)
- Few bug fixes
- Other minor improvements and cleanups
- Docs update
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@295 d57e44dd-8a1f-0410-8b47-8ef2f437770f
- Important reference counting and barriers usage cleanups
- Sense buffer made dynamic
- Other minor improvements and cleanups
- Docs updates
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@287 d57e44dd-8a1f-0410-8b47-8ef2f437770f
Clean up MSI-X implementation and make sure we snag at least *3* vectors
so that the ATIO-Q vector is snagged.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@284 d57e44dd-8a1f-0410-8b47-8ef2f437770f
- Add a missing MSI disable and provide for pre-2.6.8 kernels.
- Fix bugs- forgot to actually compile (shame on me).
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@283 d57e44dd-8a1f-0410-8b47-8ef2f437770f
I don't know why I thought this would work- forcing a re-login to the fabric
controller just barfs.
Make down count reflect jiffies elapsed rather than depend on calls to
ISP_FC_RESCAN.
Shorten deadloop time default to 10 seconds.
At least enable MSI (if not MSI-X) for 24XX cards.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@282 d57e44dd-8a1f-0410-8b47-8ef2f437770f
We can (somehow) get commands on an atio7 for which we've never had a PLOGI/PRLI.
How this happens, I don't know. Anyway, we stick a tentative entry in the PDB
and call the task thread to find the rest of the info. This includes, badly and
stupidly, searching for the N-port handle by asking the chip. Sometimes it's not
there. In that case, we terminate the command.
In restarting commands that arrive while we start up, have the watchdog
time call isp_task_thread- this gives us a bit of hysteresis.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@281 d57e44dd-8a1f-0410-8b47-8ef2f437770f
- Need to include linux/vmalloc.h. Showed up on PPC port.
- Fix complaints about using an uninitialized pointer.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@280 d57e44dd-8a1f-0410-8b47-8ef2f437770f
Make 2100/2200 and 2300 cards also maintain a target mode port database.
For the 24XX, we have to find the IID, N-port handle and channel when we
get an ATIO7. For the other cards, we already have the channel and N-port
handle and Port IID of the initiator, but have to find the S_ID.
Do the isp_find_pdb_by_{sid,loopid} functions search backwards to minimize
search time.
Don't load fw images more than once per device type!
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@279 d57e44dd-8a1f-0410-8b47-8ef2f437770f
- Allow ISP_FC_GETDINFO callers to get target mode entries.
- Remove stray '`' from define and PPC is now working again.
- Fix a typo which had us loading 2322 f/w into a 2300. Oops.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@278 d57e44dd-8a1f-0410-8b47-8ef2f437770f
Put RISC_CODE define in the firmware files.
Use the Linux 2.6 firmware loader support if available. This saves
close to 700K of useless code getting loaded otherwise.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@277 d57e44dd-8a1f-0410-8b47-8ef2f437770f
If we're in role=NONE, then make sure that isp_init code sets state to
INITSTATE anyway.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@275 d57e44dd-8a1f-0410-8b47-8ef2f437770f
Note that asking for "prefer N-port and then Loop" with the 24XX seems to
cause the f/w to crash. So, don't do that.
Firmware crashes are now considered fatal and cause the HBA to be marked dead.
Now that we've avoided the f/w crash in isp_init_24xx, we can process
toplogy options.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@274 d57e44dd-8a1f-0410-8b47-8ef2f437770f
Add some code to do special IOCBs (that can just be ignored if they show
up as status IOCBs)- this is for some performance testing infrastructure.
Add some performance testing stuff.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@273 d57e44dd-8a1f-0410-8b47-8ef2f437770f
Don't use both WWNs in the ICB block unless they're not NAA==2. This makes us
more consistent with QLogic driver setups and thus more likely to fit into the
same zoning setups.
If we're getting a PDB and it's for the Fabric Controller, force a login
to it (just in case it logged out underneath us). Return 'not logged in'
for the 24XX in case the 24XX specific login state isn't in the range of
PLOGI_DONE to LOGGED IN.
Don't do local loop scans if we have more than one channel (NP-IV) and we're
in a FL-port topology- we just end up poking ourselves usually.
Make sure we set loopstate in a couple of places we missed so that we
try and get it again.
Add in the RESET DEVICE and ABORT COMMAND functions for the 24XX cards
(finally).
Fix a longstanding bug where were passing the wrong (off by one) output
pointer to isp_handle_other_response.
Change isp_async...ISPASYNC_CHANGE_NOTIFY to have N-port handle, nlstate and
reason included as we get these for free with PDB Changed stuff for the
24XX card. Eventually we should be able to edit single local PDB entry
states instead of doing a full eval.
Put in the put of a 24XX Task Management Function IOCB. There is no get because
the firmware doesn't return it when done- instead a status iocb is done.
There is no "FAST POST" flag for the 24XX- this is a NOACK flag which means
that there is no interrupt if all goes well.
Fix spelling mistakes.
In isp_add_wwn_entry, ahem, don't allocate PDB entries out of the 'rexerved
for chip' area.
Put more comments in as to why we're terminating an exchange (and make them
all ISP_LOGTINFO).
Add, finally, the correct handling for a QIN_NOTIFY_ACK for a task management
function- this means we construct a ct7_entry_t to get the firmware to send
an FC Response IU for it. So, finally LUN RESETS and TARGET RESETS and
ABORT TASK will actually work and, more importantly, be seen to be working
by initiators.
Fix WWN defaults/active generation and retrieval. It was broken.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@272 d57e44dd-8a1f-0410-8b47-8ef2f437770f