<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="/rss.xsl.xml"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
    <title>Changes in ispvar.h</title>
    <description></description>
    <language>en</language>
    <copyright>Copyright 2015</copyright>
    <generator>Java</generator><item>
        <title>5d949247 - MFC r345008:</title>
        <link>http://172.16.0.5:8080/history/freebsd-12.1/sys/dev/isp/ispvar.h#5d949247</link>
        <description>MFC r345008:  ------------------------------------------------------------------------  r345008 | ken | 2019-03-11 10:21:14 -0400 (Mon, 11 Mar 2019) | 59 lines  Fix CRN resets in the isp(4) driver in certain situations.  The Command Reference Number (CRN) is part of the FC-Tape features  that we enable when talking to tape drives.  It starts at 1, and  goes to 255 and wraps around to 1.  There are a number of reset  type conditions that result in the CRN getting reset to 1.  These  are detailed in section 4.10 (table 8) of the FCP-4r02b specification.  One of the conditions is when a PRLI (Process Login) is sent by  the initiator, and the Establish Image Pair bit is set in Word 0  of the PRLI.  Previously, the isp(4) driver core sent a notification via  isp_async() that the target had changed or stayed in place, but  there was no indication of whether a PRLI was sent and whether the  Establish Image Pair bit was set.  The result of this was that in some situations, notably  switching back and forth between a direct connection and a switch  connection to a tape drive, the isp(4) driver would fail to reset  the CRN in situations that require it according to the spec.  When  the CRN isn&apos;t reset in a situation that requires it, the tape drive  then rejects every subsequent command that is sent to the drive.  It is assuming that the commands are being sent out of order.  So, modify the isp(4) driver to include Word 0 of the PRLI command  when it sends isp_async() notifications of target changes.  Look at  the Establish Image Pair bit, and reset the CRN if that bit is set.  With this change, I am able to switch a tape drive back and forth  between a direct connection and a switch connection, and the isp(4)  driver resets the CRN when it should.  sys/dev/isp_stds.h:  	Add bit definitions for PRLI Word 0.  sys/dev/ispmbox.h:  	Add PRLI Word 0 to the port database type, isp_pdb_t.  sys/dev/ispvar.h  	Add PRLI Word 0 to fcportdb_t.  sys/dev/isp.c:  	Populate the new prli_word0 parameter in the port database.  	In isp_pdb_add_update(), add a check to see if the  	Establish Image Pair bit is set in PRLI Word 0.  If it is,  	then that is an additional reason to create a change  	notification.  sys/dev/isp_freebsd.c:  	In isp_async(), if the device changed or stayed, look at  	PRLI Word 0 to see if the Establish Image Pair bit is set.  	If it is, reset the CRN if we haven&apos;t already.  Sponsored by:	Spectra Logic  ------------------------------------------------------------------------Differential Revision:	https://reviews.freebsd.org/D19472

            List of files:
            /freebsd-12.1/sys/dev/isp/ispvar.h</description>
        <pubDate>Fri, 17 May 2019 14:29:56 +0000</pubDate>
        <dc:creator>Kenneth D. Merry &lt;ken@FreeBSD.org&gt;</dc:creator>
    </item>
<item>
        <title>14e084ad - Add support for Enhanced Gen 5 (16Gb) and Gen 6 (32Gb) QLogic FC HBAs.</title>
        <link>http://172.16.0.5:8080/history/freebsd-12.1/sys/dev/isp/ispvar.h#14e084ad</link>
        <description>Add support for Enhanced Gen 5 (16Gb) and Gen 6 (32Gb) QLogic FC HBAs.MFC after:	2 weeksSponsored by:	iXsystems, Inc.

            List of files:
            /freebsd-12.1/sys/dev/isp/ispvar.h</description>
        <pubDate>Wed, 28 Feb 2018 16:24:32 +0000</pubDate>
        <dc:creator>Alexander Motin &lt;mav@FreeBSD.org&gt;</dc:creator>
    </item>
<item>
        <title>718cf2cc - sys/dev: further adoption of SPDX licensing ID tags.</title>
        <link>http://172.16.0.5:8080/history/freebsd-12.1/sys/dev/isp/ispvar.h#718cf2cc</link>
        <description>sys/dev: further adoption of SPDX licensing ID tags.Mainly focus on files that use BSD 2-Clause license, however the tool Iwas using misidentified many licenses so this was mostly a manual - errorprone - task.The Software Package Data Exchange (SPDX) group provides a specificationto make it easier for automated tools to detect and summarize well knownopensource licenses. We are gradually adopting the specification, notingthat the tags are considered only advisory and do not, in any way,superceed or replace the license texts.

            List of files:
            /freebsd-12.1/sys/dev/isp/ispvar.h</description>
        <pubDate>Mon, 27 Nov 2017 14:52:40 +0000</pubDate>
        <dc:creator>Pedro F. Giffuni &lt;pfg@FreeBSD.org&gt;</dc:creator>
    </item>
<item>
        <title>a94fab67 - Switch fabric scans from GID_FT to GID_PT+GFF_ID/GFT_ID.</title>
        <link>http://172.16.0.5:8080/history/freebsd-12.1/sys/dev/isp/ispvar.h#a94fab67</link>
        <description>Switch fabric scans from GID_FT to GID_PT+GFF_ID/GFT_ID.Instead of using GID_FT SNS request to get list of registered FCP ports,use GID_PT to get list of all Nx_Ports, and then use GFF_ID and/or GFT_IDrequests to find whether they are FCP and target capable.The problem with old approach is that GID_FT does not report ports withoutFC-4 type registered.  In particular it was impossible to boot OS fromFreeBSD FC target using QLogic FC BIOS, since one does not register FC-4type even on new cards and so ignored by old code as incompatible.As a side bonus this allows initiator to skip pointless logins to otherinitiators by fetching that information from SNS instead.In case some switches do not implement GFF_ID/GFT_ID correctly, add sysctlsto disable that functionality.  I handled broken GFF_ID of my Brocade 200E,but there may be other switches with different bugs.Linux also uses GID_PT, but GFF_ID is disabled by default there, and GFT_IDis not supported.Sponsored by:	iXsystems, Inc.

            List of files:
            /freebsd-12.1/sys/dev/isp/ispvar.h</description>
        <pubDate>Mon, 03 Jul 2017 15:56:45 +0000</pubDate>
        <dc:creator>Alexander Motin &lt;mav@FreeBSD.org&gt;</dc:creator>
    </item>
<item>
        <title>57b6261f - Correct loop mode CRN resets to adhere to FCP-4 section 4.10</title>
        <link>http://172.16.0.5:8080/history/freebsd-12.1/sys/dev/isp/ispvar.h#57b6261f</link>
        <description>Correct loop mode CRN resets to adhere to FCP-4 section 4.10Prior to this change, the CRN (Command Reference Number) is reset on anyfirmware LIP, LOOP DOWN, or LOOP RESET event in violation of FCP-4 whichspecifies that the CRN should only be reset in response to a LIP Reset(LIPyx) primitive. FCP-4 also indicates PLOGI/LOGO and PRLI/PRLO ELSactions as conditions for resetting the CRN for the associated initiatorport.These violations manifest themselves when the HBA is removed from theloop, or a target device is removed (especially during an outstandingcommand) without power cycling. If the HBA and and the target devicedetermine upon re-establishing the loop that no PLOGI or PRLI isrequired, and the target does not issue a LIPxy to the initiator, theCRN for the target will have been improperly reset by the isp driver. Asa result, the target port will silently ignore all FCP commands issuedduring the device probe (which will time out) preventing the device fromattaching.This change corrects thie CRN reset behavior in response to loop statechanges, also introduces CRN resets for the above mentioned ELS actionsas encountered through async PDB change events.This change also adds cleanup of outstanding commands in isp_loop_dead()that was previously missing.sys/dev/isp/isp.c	Add the last login state to debug output when syncing the pdbsys/dev/isp/isp_freebsd.c	Replace binary statement setting aborted ccb status in	isp_watchdog() with the XS_SETERR macro used elsewhere	In isp_loop_dead(), abort or complete pending commands as done	in isp_watchdog()	In isp_async(), segregate the ISPASYNC_LOOP_RESET action from	ISPASYNC_LIP, ISPASYNC_LOOP_DOWN, and ISPASYNC_LOOP_UP	fallthroughs, and only reset the CRN in the RESET case. Also add	checks to handle false LOOP RESET actions that do not have a	proper associated LIP primitive, and log the primitive in the	debug messages	In isp_async(), remove the goto from ISP_ASYNC_DEV_STAYED, and	only reset the CRN in the DEV_CHANGED action	In isp_async(), when processing an ISPASYNC_CHANGE_PDB status,	reset CRN(s) for the associated nphdl (or all ports) if the	change reason is some form of ELS login/logout. Also remove	assignment to fc since it is not used in the scopesys/dev/isp/ispmbox.h	Add macro definition for the global N-Port handle, and correct a	macro typo &apos;PDB24XX_AE_PRLI_DONJE&apos;sys/dev/isp/ispvar.h	Add macros FCP_AL_DA_ALL, FCP_AL_PA, and FCP_IS_DEST_ALPD for	more legible code when determining if an AL_PD port matches the	portid for a given struct fcparam* by value or by virtue of the	AL_PD port being 0xFFSubmitted by:	Reid LinnemannSponsored by:	Spectra LogicMFC after:	1 week

            List of files:
            /freebsd-12.1/sys/dev/isp/ispvar.h</description>
        <pubDate>Wed, 03 May 2017 13:17:01 +0000</pubDate>
        <dc:creator>Kenneth D. Merry &lt;ken@FreeBSD.org&gt;</dc:creator>
    </item>
<item>
        <title>7e31684e - Unify initiator and target DMA setup and command sending.</title>
        <link>http://172.16.0.5:8080/history/freebsd-12.1/sys/dev/isp/ispvar.h#7e31684e</link>
        <description>Unify initiator and target DMA setup and command sending.The code is so alike that it is pointless to keep it separate.MFC after:	2 weeks

            List of files:
            /freebsd-12.1/sys/dev/isp/ispvar.h</description>
        <pubDate>Fri, 24 Mar 2017 14:44:03 +0000</pubDate>
        <dc:creator>Alexander Motin &lt;mav@FreeBSD.org&gt;</dc:creator>
    </item>
<item>
        <title>2d24b6af - Cleanup response queue processing.</title>
        <link>http://172.16.0.5:8080/history/freebsd-12.1/sys/dev/isp/ispvar.h#2d24b6af</link>
        <description>Cleanup response queue processing.MFC after:	2 weeks

            List of files:
            /freebsd-12.1/sys/dev/isp/ispvar.h</description>
        <pubDate>Wed, 22 Mar 2017 08:56:03 +0000</pubDate>
        <dc:creator>Alexander Motin &lt;mav@FreeBSD.org&gt;</dc:creator>
    </item>
<item>
        <title>31c161a6 - Improve command timeout handling.</title>
        <link>http://172.16.0.5:8080/history/freebsd-12.1/sys/dev/isp/ispvar.h#31c161a6</link>
        <description>Improve command timeout handling.Let firmware do its best first, and if it can&apos;t, try software recovery.I would remove software timeout handler completely, but found bunch ofcomplains on command timeout on sparc64 mailing list few years ago, sobetter be safe in case of interrupt loss.MFC after:	2 weeks

            List of files:
            /freebsd-12.1/sys/dev/isp/ispvar.h</description>
        <pubDate>Tue, 21 Mar 2017 13:10:37 +0000</pubDate>
        <dc:creator>Alexander Motin &lt;mav@FreeBSD.org&gt;</dc:creator>
    </item>
<item>
        <title>98339da1 - Remove some more dead code.</title>
        <link>http://172.16.0.5:8080/history/freebsd-12.1/sys/dev/isp/ispvar.h#98339da1</link>
        <description>Remove some more dead code.MFC after:	2 weeks

            List of files:
            /freebsd-12.1/sys/dev/isp/ispvar.h</description>
        <pubDate>Mon, 20 Mar 2017 20:44:14 +0000</pubDate>
        <dc:creator>Alexander Motin &lt;mav@FreeBSD.org&gt;</dc:creator>
    </item>
<item>
        <title>9abc1e2b - Remove some useless code.</title>
        <link>http://172.16.0.5:8080/history/freebsd-12.1/sys/dev/isp/ispvar.h#9abc1e2b</link>
        <description>Remove some useless code.MFC after:	2 weeks

            List of files:
            /freebsd-12.1/sys/dev/isp/ispvar.h</description>
        <pubDate>Sun, 19 Mar 2017 21:25:13 +0000</pubDate>
        <dc:creator>Alexander Motin &lt;mav@FreeBSD.org&gt;</dc:creator>
    </item>
<item>
        <title>08826086 - Add initial support for multiple MSI-X vectors.</title>
        <link>http://172.16.0.5:8080/history/freebsd-12.1/sys/dev/isp/ispvar.h#08826086</link>
        <description>Add initial support for multiple MSI-X vectors.For 24xx and above use 2 vectors (default and response queue).For 26xx and above use 3 vectors (default, response and ATIO queues).Due to global lock interrupt hardlers never run simultaneously now, butat least this allows to save one regitster read per interrupt.MFC after:	2 weeks

            List of files:
            /freebsd-12.1/sys/dev/isp/ispvar.h</description>
        <pubDate>Sun, 19 Mar 2017 19:11:40 +0000</pubDate>
        <dc:creator>Alexander Motin &lt;mav@FreeBSD.org&gt;</dc:creator>
    </item>
<item>
        <title>9c81a61e - Remove hackish code delaying ATIOs to unknown virtual port.</title>
        <link>http://172.16.0.5:8080/history/freebsd-12.1/sys/dev/isp/ispvar.h#9c81a61e</link>
        <description>Remove hackish code delaying ATIOs to unknown virtual port.Since we support RQSTYPE_RPT_ID_ACQ, that functionality is only usefulin loop mode, which probably doesn&apos;t worth having this hack in 2017.MFC after:	2 weeks

            List of files:
            /freebsd-12.1/sys/dev/isp/ispvar.h</description>
        <pubDate>Sun, 19 Mar 2017 13:46:11 +0000</pubDate>
        <dc:creator>Alexander Motin &lt;mav@FreeBSD.org&gt;</dc:creator>
    </item>
<item>
        <title>0e6bc811 - Refactor interrupt handling.</title>
        <link>http://172.16.0.5:8080/history/freebsd-12.1/sys/dev/isp/ispvar.h#0e6bc811</link>
        <description>Refactor interrupt handling.Instead of single isp_intr() function doing all possible magic, introducefour different functions to handle mailbox operation completions, asyncevents, response and ATIO queues.  The goal is to isolate different codepaths to make code more readable, and to make easier support for multipleinterrupt vectors.  Even oldest hardware in many cases can identify whatcode path it should run on interrupt.  Contemporary hardware can assignthem to different interrupt vectors.MFC after:	2 weeks

            List of files:
            /freebsd-12.1/sys/dev/isp/ispvar.h</description>
        <pubDate>Wed, 15 Mar 2017 14:58:29 +0000</pubDate>
        <dc:creator>Alexander Motin &lt;mav@FreeBSD.org&gt;</dc:creator>
    </item>
<item>
        <title>9c2e9bcf - Remove some dead/broken code paths around async handling</title>
        <link>http://172.16.0.5:8080/history/freebsd-12.1/sys/dev/isp/ispvar.h#9c2e9bcf</link>
        <description>Remove some dead/broken code paths around async handlingMFC after:	2 weeks

            List of files:
            /freebsd-12.1/sys/dev/isp/ispvar.h</description>
        <pubDate>Tue, 14 Mar 2017 18:42:33 +0000</pubDate>
        <dc:creator>Alexander Motin &lt;mav@FreeBSD.org&gt;</dc:creator>
    </item>
<item>
        <title>6327b0d2 - Remove tangled isp_mbox_continue() mechanism.</title>
        <link>http://172.16.0.5:8080/history/freebsd-12.1/sys/dev/isp/ispvar.h#6327b0d2</link>
        <description>Remove tangled isp_mbox_continue() mechanism.It was implemented to reduce context switches when uploading firmware tocard&apos;s RAM.  But this mechanism is not used last 10 years since all mboxoperations are now polled, and it was never used for cards produced inlast 15 years.  Newer cards can use DMA to upload firmware.MFC after:	2 weeks

            List of files:
            /freebsd-12.1/sys/dev/isp/ispvar.h</description>
        <pubDate>Tue, 14 Mar 2017 17:34:44 +0000</pubDate>
        <dc:creator>Alexander Motin &lt;mav@FreeBSD.org&gt;</dc:creator>
    </item>
<item>
        <title>a1fa0267 - Improvements around attach, reset and detach.</title>
        <link>http://172.16.0.5:8080/history/freebsd-12.1/sys/dev/isp/ispvar.h#a1fa0267</link>
        <description>Improvements around attach, reset and detach.This change fixes DMA resource leak on driver unload.  Also it removesDMA resources allocation for hardcoded number of requests before fetchingthe real number from firmware.  Also it prepares ground for more flexibleIRQs allocation according to firmware capabilities.MFC after:	2 weeks

            List of files:
            /freebsd-12.1/sys/dev/isp/ispvar.h</description>
        <pubDate>Tue, 14 Mar 2017 08:03:56 +0000</pubDate>
        <dc:creator>Alexander Motin &lt;mav@FreeBSD.org&gt;</dc:creator>
    </item>
<item>
        <title>352427b3 - Add proper reporting for early task management errors.</title>
        <link>http://172.16.0.5:8080/history/freebsd-12.1/sys/dev/isp/ispvar.h#352427b3</link>
        <description>Add proper reporting for early task management errors.This covers unknown requests and requests to unknown virtual ports.Previously it &quot;worked&quot; only because of timeout handling on initiator.

            List of files:
            /freebsd-12.1/sys/dev/isp/ispvar.h</description>
        <pubDate>Thu, 19 May 2016 17:02:33 +0000</pubDate>
        <dc:creator>Alexander Motin &lt;mav@FreeBSD.org&gt;</dc:creator>
    </item>
<item>
        <title>5fa351ed - Completely remove broken now autologin port flag.</title>
        <link>http://172.16.0.5:8080/history/freebsd-12.1/sys/dev/isp/ispvar.h#5fa351ed</link>
        <description>Completely remove broken now autologin port flag.Firmware automatically logs in only to local loop ports, and those portscan be easily identified without extra flag by zero domain and area IDs.MFC after:	1 week

            List of files:
            /freebsd-12.1/sys/dev/isp/ispvar.h</description>
        <pubDate>Tue, 17 May 2016 13:18:57 +0000</pubDate>
        <dc:creator>Alexander Motin &lt;mav@FreeBSD.org&gt;</dc:creator>
    </item>
<item>
        <title>453130d9 - sys/dev: minor spelling fixes.</title>
        <link>http://172.16.0.5:8080/history/freebsd-12.1/sys/dev/isp/ispvar.h#453130d9</link>
        <description>sys/dev: minor spelling fixes.Most affect comments, very few have user-visible effects.

            List of files:
            /freebsd-12.1/sys/dev/isp/ispvar.h</description>
        <pubDate>Tue, 03 May 2016 03:41:25 +0000</pubDate>
        <dc:creator>Pedro F. Giffuni &lt;pfg@FreeBSD.org&gt;</dc:creator>
    </item>
<item>
        <title>212fad74 - Extract virtual port address from RQSTYPE_RPT_ID_ACQ.</title>
        <link>http://172.16.0.5:8080/history/freebsd-12.1/sys/dev/isp/ispvar.h#212fad74</link>
        <description>Extract virtual port address from RQSTYPE_RPT_ID_ACQ.This should close the race between request arriving on new target modevirtual port and its scanner thread finally fetch its address for requestrouting.

            List of files:
            /freebsd-12.1/sys/dev/isp/ispvar.h</description>
        <pubDate>Thu, 14 Apr 2016 20:49:01 +0000</pubDate>
        <dc:creator>Alexander Motin &lt;mav@FreeBSD.org&gt;</dc:creator>
    </item>
</channel>
</rss>
