summaryrefslogtreecommitdiffstats
path: root/sys/dev/isp
Commit message (Collapse)AuthorAgeFilesLines
* MFC r292765: Allocate separate scratch space for scanner purposes.mav2015-12-302-114/+95
| | | | | | | | This space does not require DMA syncing. It reduces lock scope of the DMA scratch space. It allows whole DMA scratch space to be used to I/O, so now we can fetch up to ~1000 ports from SNS. Due to the last fact, increase maximal number of ports from 256 to 1024.
* MFC r292764: Split DMA buffers for request, response and ATIO queues.mav2015-12-303-180/+222
|
* MFC r292745: Use single DMA tag for scratch areas of all virtual ports.mav2015-12-302-28/+32
|
* MFC r292741: Make port logins asynchronous, following r292739 logic.mav2015-12-301-66/+55
| | | | | This is even more important since it involves more network operations and more prone to delays and timeouts.
* MFC r292739: Make virtual ports control asynchronous.mav2015-12-303-87/+111
| | | | | | | | | | | | Before this change virtual ports control IOCBs were executed synchronously via Execute IOCB mailbox command. It required exclusive use of scratch space of driver and mailbox registers of the hardware. Because of that shared resources use this code could not really sleep, having to spin for completion, blocking any other operation. This change introduces new asynchronous design, sending the IOCBs directly on request queue and gracefully waiting for their return on response queue. Returned IOCBs are identified with unified handle space from r292725.
* MFC r292725: Unify handles allocation for initiator and target IOCBs.mav2015-12-307-191/+60
| | | | | | I am not sure why this was split long ago, but I see no reason for it. At this point this unification just slightly reduces memory usage, but as next step I plan to reuse shared handle space for other IOCB types.
* MFC r292715: Clear virtual port's port database when disabling it.mav2015-12-303-165/+153
| | | | | Previously it was done only on full chip reinit, that caused old ports resurrect in case of virtual port reenabling.
* MFC r292690: Some polishing for command timeouts handling.mav2015-12-303-20/+23
|
* MFC r292610: Fix speed setting by NVRAM for 24xx and above chips.mav2015-12-301-2/+26
|
* MFC r291654, r291727, r291821, r291872, r292034, r292041, r292249, r292042:mav2015-12-226-142/+281
| | | | Add initial support for 16Gbps FC QLogic chips.
* MFC r291868: Rework WWNs generation to make cards without NVRAM more useful.mav2015-12-221-67/+28
|
* MFC r291730: Update isp_put_icb_2400() for new structure fields.mav2015-12-221-3/+10
|
* MFC r291365, r291369: One more round of port scanner rewrite.mav2015-11-306-266/+181
| | | | | | | - Make scan aborted by event restart immediately and infinitely. - Improve handling of some loop events from firmware. - Remove loop down timer, adding its functionality to scanner thread. - Some more unification and simplification.
* MFC r291265: Rename ASYNC_LIP_F8 to ASYNC_LIP_NOS_OLS_RECV.mav2015-11-303-3/+3
| | | | New name better repsents its meaning for modern chips.
* MFC r291221: Remove "disable" hint, which duplicates system-wide "disabled".mav2015-11-303-34/+0
|
* MFC r291209: Fix target mode support for Qlogic 2200 FC adapters.mav2015-11-305-12/+20
| | | | | Now target mode works for all supported FC adapters except ancient 2100, which is not tested.
* MFC r291188: Rip off target mode support for parallel SCSI QLogic adapters.mav2015-11-309-1542/+127
| | | | | | | Hacks to enable target mode there complicated code, while didn't really work. And for outdated hardware fixing it is not really interesting. Initiator mode tested with Qlogic 1080 adapter is still working fine.
* MFC r291163:mav2015-11-301-3/+18
| | | | | | | | Explicitly call SEND CHANGE REQUEST for pre-24xx chips in target mode. While later firmware always registers for RSCN requests, older one does it only in initiator mode. But in target mode there RSCN can be the only way to detect gone intiator.
* MFC r291162: Generate fake ISPASYNC_CHANGE_PDB on fake login on pre-24xx.mav2015-11-301-1/+7
| | | | This makes port scanner fix absent port ID for added initiator.
* MFC r291161: Gracefully stop firmware before resetting chip when changing role.mav2015-11-301-2/+25
|
* MFC r291160: Add some more asynchronous event status codes.mav2015-11-302-23/+45
|
* MFC r291159: Add more mailbox command codes.mav2015-11-302-47/+74
|
* MFC r291147: Increase maximal value of vports tunable to 254.mav2015-11-301-1/+1
| | | | | I am not sure this value is really viable yet, but that is what chips officially support in NPIV mode (in loop mode maximum is 125).
* MFC r291144: Fix target mode with fabric for pre-24xx chips.mav2015-11-304-19/+70
| | | | | | | For those chips we are not receiving login events, adding initiators based on ATIO requests. But there is no port ID in that structure, so in fabric mode we have to explicitly fetch it from firmware to be able to do normal scan after that.
* MFC r291099: Some cosmetics for ancient cards.mav2015-11-301-3/+7
|
* MFC r291092: Optimize SNS_GID_FT request scratch memory usage.mav2015-11-301-13/+14
| | | | Now with present 4K of scratch we can fetch up to 508 ports (16 more).
* MFC r291080: Another round of port scanner rewrite.mav2015-11-306-632/+292
| | | | | | This change simplifies and unifies port adding/updating for loop and fabric scanners. It also fixes problems with scanning restarts due to concurrent port databases changes. It also fixes many cosmetic issues.
* MFC r291014: Simplify fabric tasting code.mav2015-11-301-87/+22
| | | | | Except cosmetic changes this removes fabric ports from our port database. It is always firmware duty to manage them, so driver don't need to worry.
* MFC r291013: Remove some confusions between loopid and nphdl.mav2015-11-305-66/+66
| | | | | | | | Modern cards in most cases operate abstract port handles, that have no any relation to real loop IDs. Leave loopid used only where it really goes about local loop IDs. While there, fix few more cases where LUNs were still printed in decimal.
* MFC r291000: Register our FC4 Features in SNS.mav2015-11-305-0/+152
|
* MFC r290993, r290994: Unify and cleanup FC ports scan.mav2015-11-303-217/+153
|
* MFC r290981: Off-by-one correctiont to r290980.mav2015-11-301-1/+1
|
* MFC r290980: Make firmware handle virtual ports SNS logins for us.mav2015-11-302-15/+8
|
* MFC r290978: Add real initial support for RQSTYPE_RPT_ID_ACQ.mav2015-11-303-34/+33
|
* MFC r290830: Fix/improve CRN tracking.mav2015-11-302-33/+21
|
* MFC r290507: Rework r290504.mav2015-11-302-5/+7
|
* MFC r290506: Specify VP when sending a marker.mav2015-11-301-0/+1
|
* MFC r290504: Make ISP_SLEEP() really sleep instead of spinning.mav2015-11-302-49/+14
| | | | While there, simplify the wait logic.
* MFC r290160: Remove some unneeded code.mav2015-11-301-4/+0
|
* MFC r290159: Remove reset delays for which I see neither explanation nor need.mav2015-11-301-25/+7
|
* MFC r290147: Fix and improve error masking and reporting.mav2015-11-303-48/+54
|
* MFC r290118: Change the way how target mode is enabled on 23xx chips.mav2015-11-302-4/+5
| | | | | Without docs I am not completely sure about this, but on my tests new method works better then previous, at least with our latest firmware.
* MFC r290104: Improve/fix loop scanning routine.mav2015-11-304-64/+195
| | | | | | | | | | | | For the most of chips (except anscient ones) port handlers have no relation to port IDs. In such situation old code scanning first 125 handlers was quite naive. Instead of doing that, send to chip single request to get full list of port handlers available on specific virtual port and scan only them. Old code had problems with case of several virtual ports enabled, when port handlers allocated from global address space could easily go above 125. This change was successfully tested on 23xx, 24xx and 25xx chips in loop mode with 4 virtual initiator ports, each seing 50 virtual target ports.
* MFC r290054: Reimplement next port handle generation.mav2015-11-132-60/+43
| | | | | For some reason port handles should be allocated from HBA-global space, while old code was not very specific, mixing per-HBA and per-VP logic.
* MFC r290042: Fix error code that looks like wrong.mav2015-11-131-1/+1
|
* MFC r290018: Reimplement enable and implement disable of virtual ports.mav2015-11-133-72/+167
| | | | | | | | | | Now on 24xx and above chips it is really possible to simulate several virtual FC ports with single physical one. For example, it allows to configure several targets in ctl.conf, assign each of them to separate virtual port, and let user to control access to them with switch zoning. I still doubt that all problems are solved there, but at now it passes at least basic tests.
* MFC r289942: Deliver INOTs only to enabled virtual ports.mav2015-11-131-0/+2
|
* MFC r289937: Try to keep Loop IDs persistent across chip reinits.mav2015-11-132-40/+34
|
* MFC r289933, r289939: Improve Port Database Changed handling and reporting.mav2015-11-132-13/+15
|
* MFC r289930: Formalize/unify chip (re-)inits.mav2015-11-134-51/+29
|
OpenPOWER on IntegriCloud