<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="Generator" content="Microsoft Exchange Server">
<!-- converted from rtf -->
<style><!-- .EmailQuote { margin-left: 1pt; padding-left: 4pt; border-left: #800000 2px solid; } --></style>
</head>
<body>
<font face="Calibri" size="2"><span style="font-size:10pt;">
<div><font color="#1F497D">Kwok ,</font></div>
<div><font color="#1F497D"> </font></div>
<div><font color="#1F497D">To submit patches for the Samsung  items below, should I wait for the Sandisk patch (currently last in line behind LSI, IDT, and Intel I think) to be resubmitted and accepted and then submit our patches based on the then-current top
of tree? </font></div>
<div><font size="2" color="#1F497D"><span style="font-size:11pt;"> </span></font></div>
<div><font color="#1F497D">I’m pasting code snippets meanwhile (see below) s o I can incorporate any early feedback that may be available. All changes are in <span style="background-color:yellow;">yellow highlight</span>. Also, one other miscellaneous bug:</font></div>
<div><font color="#1F497D"> </font></div>
<div style="padding-left:18pt;"><font color="#1F497D">In nvmeSntiTypes.h:</font></div>
<div style="padding-left:36pt;"><font size="2" color="#1F497D"><span style="font-size:11pt;"> </span></font></div>
<div style="text-indent:18pt;padding-left:36pt;"><font color="#1F497D">added  <font color="black"><span style="background-color:yellow;"><b>#define NUM_BYTES_IN_DWORDS      4</b></span></font></font></div>
<div style="padding-left:18pt;"><font size="2" color="#1F497D"><span style="font-size:11pt;"> </span></font></div>
<div style="padding-left:18pt;"><font color="#1F497D">In nvmeSnti.c, in function SntiTranslateWriteBuffer():</font></div>
<div style="padding-left:18pt;"><font color="#1F497D">         . . .</font></div>
<div style="text-indent:36pt;padding-left:18pt;"><font color="#1F497D">case DOWNLOAD_SAVE_ACTIVATE:</font></div>
<div><font color="#1F497D">                                 /* Issue NVME FIRMWARE IMAGE DOWNLOAD command */</font></div>
<div style="text-indent:36pt;padding-left:18pt;"><font color="#1F497D">            dword10 |= paramListLength <font color="black"><span style="background-color:yellow;"><b>/ NUM_BYTES_IN_DWORDS;</b></span></font></font></div>
<div><font size="2" color="#1F497D"><span style="font-size:11pt;"> </span></font></div>
<div style="text-indent:36pt;padding-left:18pt;"><font color="#1F497D">case DOWNLOAD_SAVE_DEFER_ACTIVATE:</font></div>
<div><font color="#1F497D">                                 /* Issue NVME FIRMWARE IMAGE DOWNLOAD command */</font></div>
<div style="text-indent:36pt;padding-left:18pt;"><font color="#1F497D">            dword10 |= paramListLength <font color="black"><span style="background-color:yellow;"><b>/ NUM_BYTES_IN_DWORDS;</b></span></font></font></div>
<div style="text-indent:36pt;padding-left:36pt;"><font size="2"><span style="font-size:11pt;"> </span></font></div>
<div><b>“</b><b>Format NVM Error</b><b>”</b><b> patch</b><b>:</b></div>
<div style="padding-left:18pt;"><font size="2" color="#1F497D"><span style="font-size:11pt;"> </span></font></div>
<div style="padding-left:36pt;"><font color="#1F497D">BOOLEAN FormatNVMFailure(</font></div>
<div style="padding-left:36pt;"><font color="#1F497D">    PNVME_DEVICE_EXTENSION pDevExt,</font></div>
<div style="padding-left:36pt;"><font color="#1F497D">    PNVME_SRB_EXTENSION pSrbExt</font></div>
<div style="padding-left:36pt;"><font color="#1F497D">)</font></div>
<div style="padding-left:36pt;"><font color="#1F497D">{</font></div>
<div style="padding-left:36pt;"><font color="#1F497D">    PFORMAT_NVM_INFO pFormatNvmInfo = &pDevExt->FormatNvmInfo;</font></div>
<div style="padding-left:36pt;"><font size="2" color="#1F497D"><span style="font-size:11pt;"> </span></font></div>
<div style="padding-left:36pt;"><span style="background-color:yellow;"><b>#if LEAVE_ORPHANED_REQUEST_OUTSTANDING</b></span><span style="background-color:yellow;"><b> </b></span><span style="background-color:yellow;"><b>//</b></span><span style="background-color:yellow;"><b>
</b></span><span style="background-color:yellow;"><b>Q. is original code needed for something? Looks like it was intentional but results in lost req</b></span></div>
<div style="padding-left:36pt;"><font color="#1F497D">    /*</font></div>
<div style="padding-left:36pt;"><font color="#1F497D">     * Depends on AddNamespaceNeeded:</font></div>
<div style="padding-left:36pt;"><font color="#1F497D">     * If TRUE, add back the namespace(s) via calling NVMeIoctlHotAddNamespace.</font></div>
<div style="padding-left:36pt;"><font color="#1F497D">     *          and return FALSE since the request will be completed later.</font></div>
<div style="padding-left:36pt;"><font color="#1F497D">     * If FALSE, Clear the FORMAT_NVM_INFO structure and return TRUE</font></div>
<div style="padding-left:36pt;"><font color="#1F497D">     *          to let caller complete the request.</font></div>
<div style="padding-left:36pt;"><font color="#1F497D">     */</font></div>
<div style="padding-left:36pt;"><font color="#1F497D">    if (pFormatNvmInfo->AddNamespaceNeeded == TRUE) {</font></div>
<div style="padding-left:36pt;"><font color="#1F497D">        /* Need to add back namespace(s) first */</font></div>
<div style="padding-left:36pt;"><font color="#1F497D">        NVMeIoctlHotAddNamespace(pSrbExt);</font></div>
<div style="padding-left:36pt;"><font color="#1F497D">        return FALSE;</font></div>
<div style="padding-left:36pt;"><font color="#1F497D">    } else {</font></div>
<div style="padding-left:36pt;"><font color="#1F497D">        /*</font></div>
<div style="padding-left:36pt;"><font color="#1F497D">         * Reset FORMAT_NVM_INFO structure to zero</font></div>
<div style="padding-left:36pt;"><font color="#1F497D">         * since the request is completed</font></div>
<div style="padding-left:36pt;"><font color="#1F497D">         */</font></div>
<div style="padding-left:36pt;"><font color="#1F497D">        memset((PVOID)pFormatNvmInfo, 0, sizeof(FORMAT_NVM_INFO));</font></div>
<div style="padding-left:36pt;"><font color="#1F497D">        return TRUE;</font></div>
<div style="padding-left:36pt;"><font color="#1F497D">    }</font></div>
<div style="padding-left:36pt;"><span style="background-color:yellow;"><b>#else</b></span></div>
<div style="padding-left:36pt;"><b>    </b><span style="background-color:yellow;"><b>/*</b></span></div>
<div style="padding-left:36pt;"><span style="background-color:yellow;"><b>     * If AddNamespaceNeeded is TRUE, add back the namespace(s) via </b></span></div>
<div style="padding-left:36pt;">        <span style="background-color:yellow;"><b> * NVMeIoctlHotAddNamespace. Then clear the FORMAT_NVM_INFO structure and</b></span></div>
<div style="padding-left:36pt;">        <span style="background-color:yellow;"><b> * return TRUE in order to complete the request. Since we hit an error</b></span></div>
<div style="padding-left:36pt;">        <span style="background-color:yellow;"><b> * we need to finish it.</b></span></div>
<div style="padding-left:36pt;"><span style="background-color:yellow;"><b>     */</b></span></div>
<div style="padding-left:36pt;"> </div>
<div style="padding-left:36pt;">        <span style="background-color:yellow;"><b>if (pFormatNvmInfo->AddNamespaceNeeded == TRUE) {</b></span></div>
<div style="padding-left:36pt;"><span style="background-color:yellow;"><b>        /* Need to add back namespace(s) first */</b></span></div>
<div style="padding-left:36pt;"><span style="background-color:yellow;"><b>        NVMeIoctlHotAddNamespace(pSrbExt);</b></span></div>
<div style="padding-left:36pt;">        <span style="background-color:yellow;"><b>}</b></span></div>
<div style="padding-left:36pt;"><span style="background-color:yellow;"><b>    /*</b></span></div>
<div style="padding-left:36pt;"><span style="background-color:yellow;"><b>     * Reset FORMAT_NVM_INFO structure to zero</b></span></div>
<div style="padding-left:36pt;"><span style="background-color:yellow;"><b>     * since the request is completed</b></span></div>
<div style="padding-left:36pt;"><span style="background-color:yellow;"><b>     */</b></span></div>
<div style="padding-left:36pt;"><span style="background-color:yellow;"><b>    memset((PVOID)pFormatNvmInfo, 0, sizeof(FORMAT_NVM_INFO));</b></span></div>
<div style="padding-left:36pt;"><span style="background-color:yellow;"><b>    return TRUE;</b></span></div>
<div style="padding-left:36pt;"><font size="2" color="#1F497D"><span style="font-size:11pt;"> </span></font></div>
<div style="padding-left:36pt;"><span style="background-color:yellow;"><b>#endif /* !LEAVE_ORPHANED_REQUEST_OUTSTANDING */</b></span><b> </b></div>
<div style="padding-left:36pt;"><font size="2" color="#1F497D"><span style="font-size:11pt;"> </span></font></div>
<div style="padding-left:36pt;"><font color="#1F497D">}</font></div>
<div style="padding-left:18pt;"><font size="2" color="#1F497D"><span style="font-size:11pt;"> </span></font></div>
<div><b>“</b><b>Not </b><b>handling CSTS.RDY status (from 1->0 and 0->1) properly on NVMe reset”</b><b> patch</b><b>:</b></div>
<div><font size="2" color="#1F497D"><span style="font-size:11pt;"> </span></font></div>
<div style="padding-left:36pt;"><b>* </b><span style="background-color:yellow;"><b>@return BOOLEAN</b></span></div>
<div style="padding-left:36pt;"><span style="background-color:yellow;"><b> *     TRUE  - If Adapter is enabled correctly</b></span></div>
<div style="padding-left:36pt;"><span style="background-color:yellow;"><b> *     FALSE - If anything goes wrong</b></span></div>
<div style="padding-left:36pt;"><font color="#1F497D"><span style="background-color:yellow;"> ******************************************************************************/</span></font></div>
<div style="padding-left:36pt;"><span style="background-color:yellow;"><b>BOOLEAN</b></span><font color="#1F497D"> NVMeEnableAdapter(</font></div>
<div style="padding-left:36pt;"><font color="#1F497D">    PNVME_DEVICE_EXTENSION pAE</font></div>
<div style="padding-left:36pt;"><font color="#1F497D">)</font></div>
<div style="padding-left:36pt;"><font color="#1F497D">{</font></div>
<div style="padding-left:36pt;"><font color="#1F497D">    PQUEUE_INFO pQI = &pAE->QueueInfo;</font></div>
<div style="padding-left:36pt;"><font color="#1F497D">    NVMe_CONTROLLER_CONFIGURATION CC = {0};</font></div>
<div style="padding-left:36pt;"><font color="#1F497D">    <font color="black"><span style="background-color:yellow;"><b>NVMe_CONTROLLER_STATUS CSTS;</b></span></font></font></div>
<div style="padding-left:36pt;"><span style="background-color:yellow;"><b>    ULONG PollMax = pAE->uSecCrtlTimeout / MAX_STATE_STALL_us;</b></span></div>
<div style="padding-left:36pt;"><span style="background-color:yellow;"><b>    ULONG PollCount;</b></span></div>
<div style="padding-left:36pt;"><font size="2" color="#1F497D"><span style="font-size:11pt;"> </span></font></div>
<div style="padding-left:36pt;"><font color="#1F497D">. . .</font></div>
<div style="padding-left:36pt;"><font size="2" color="#1F497D"><span style="font-size:11pt;"> </span></font></div>
<div style="padding-left:36pt;"><font color="#1F497D">    StorPortWriteRegisterUlong(</font></div>
<div style="padding-left:36pt;"><font color="#1F497D">        pAE,</font></div>
<div style="padding-left:36pt;"><font color="#1F497D">        (PULONG)(&pAE->pCtrlRegister->ACQ.HighPart),</font></div>
<div style="padding-left:36pt;"><font color="#1F497D">        (ULONG)(pQI->pCplQueueInfo->CplQStart.HighPart));</font></div>
<div style="padding-left:36pt;"><font color="#1F497D"> </font></div>
<div style="padding-left:36pt;"><font color="#1F497D"> </font></div>
<div style="padding-left:36pt;"><font color="#1F497D">    StorPortDebugPrint(INFO, "NVMeEnableAdapter:  Setting EN...\n");</font></div>
<div style="padding-left:36pt;"><font color="#1F497D">    /*</font></div>
<div style="padding-left:36pt;"><font color="#1F497D">     * Set up Controller Configuration Register</font></div>
<div style="padding-left:36pt;"><font color="#1F497D">     */</font></div>
<div style="padding-left:36pt;"><font color="#1F497D">         </font></div>
<div style="padding-left:36pt;"><span style="background-color:yellow;"><b>/* After reset, we must wait for CSTS.RDY == 0 before setting CC.EN to 1 */</b></span></div>
<div style="padding-left:36pt;">        <span style="background-color:yellow;"><b> </b></span></div>
<div style="padding-left:36pt;"><span style="background-color:yellow;"><b>    for (PollCount = 0; PollCount < PollMax; PollCount++) {</b></span></div>
<div style="padding-left:36pt;"><span style="background-color:yellow;"><b>        CSTS.AsUlong = StorPortReadRegisterUlong(pAE,</b></span></div>
<div style="padding-left:36pt;"><span style="background-color:yellow;"><b>                           (PULONG)(&pAE->pCtrlRegister->CSTS.AsUlong));</b></span></div>
<div style="padding-left:36pt;"> </div>
<div style="padding-left:36pt;"><span style="background-color:yellow;"><b>        if (CSTS.RDY == 0) {</b></span></div>
<div style="padding-left:36pt;"><span style="background-color:yellow;"><b>            /* Move on if RDY bit is cleared */</b></span></div>
<div style="padding-left:36pt;"><span style="background-color:yellow;"><b>            break;</b></span></div>
<div style="padding-left:36pt;"><span style="background-color:yellow;"><b>        }</b></span></div>
<div style="padding-left:36pt;"> </div>
<div style="padding-left:36pt;"><span style="background-color:yellow;"><b>        NVMeStallExecution(pAE, MAX_STATE_STALL_us);</b></span></div>
<div style="padding-left:36pt;"><span style="background-color:yellow;"><b>    }</b></span></div>
<div style="padding-left:36pt;"> </div>
<div style="padding-left:36pt;"><span style="background-color:yellow;"><b>    if (CSTS.RDY != 0) {</b></span></div>
<div style="padding-left:36pt;"><span style="background-color:yellow;"><b>        /* If RDY bit won't clear we can't enable the adapter */</b></span></div>
<div style="padding-left:36pt;"><span style="background-color:yellow;"><b>        return FALSE;</b></span></div>
<div style="padding-left:36pt;"><span style="background-color:yellow;"><b>    }</b></span></div>
<div style="padding-left:36pt;"><font size="2" color="#1F497D"><span style="font-size:11pt;">        </span></font></div>
<div style="padding-left:36pt;"><font color="#1F497D">    CC.EN = 1;</font></div>
<div style="padding-left:36pt;"><font color="#1F497D">    CC.CSS = NVME_CC_NVM_CMD;</font></div>
<div style="padding-left:36pt;"><font color="#1F497D">    CC.MPS = (PAGE_SIZE >> NVME_MEM_PAGE_SIZE_SHIFT);</font></div>
<div style="padding-left:36pt;"><font color="#1F497D">    CC.AMS = NVME_CC_ROUND_ROBIN;</font></div>
<div style="padding-left:36pt;"><font color="#1F497D">    CC.SHN = NVME_CC_SHUTDOWN_NONE;</font></div>
<div style="padding-left:36pt;"><font color="#1F497D">    CC.IOSQES = NVME_CC_IOSQES;</font></div>
<div style="padding-left:36pt;"><font color="#1F497D">    CC.IOCQES = NVME_CC_IOCQES;</font></div>
<div style="padding-left:36pt;"><font color="#1F497D"> </font></div>
<div style="padding-left:36pt;"><font color="#1F497D">    StorPortWriteRegisterUlong(pAE,</font></div>
<div style="padding-left:36pt;"><font color="#1F497D">                               (PULONG)(&pAE->pCtrlRegister->CC),</font></div>
<div style="padding-left:36pt;"><font color="#1F497D">                               CC.AsUlong);</font></div>
<div style="padding-left:36pt;"><span style="background-color:yellow;"><b>return TRUE;</b></span></div>
<div style="padding-left:36pt;"><font size="2"><span style="font-size:11pt;"> </span></font></div>
<div style="padding-left:36pt;"><font color="#1F497D">} /* NVMeEnableAdapter */</font></div>
<div style="padding-left:36pt;"><font size="2" color="#1F497D"><span style="font-size:11pt;"> </span></font></div>
<div style="padding-left:36pt;"><font size="2" color="#1F497D"><span style="font-size:11pt;"> </span></font></div>
<div style="padding-left:36pt;"><font color="#1F497D">In NVMeInitialize():</font></div>
<div style="padding-left:36pt;"><font color="#1F497D">…</font></div>
<div style="padding-left:36pt;"><font size="2" color="#1F497D"><span style="font-size:11pt;">        <font size="2"><span style="font-size:10pt;"> </span></font><font size="2" color="black"><span style="font-size:10pt;"><b> </b></span></font><font size="2" color="black"><span style="font-size:10pt;background-color:yellow;"><b>if
((NVMeEnableAdapter(pAE)) == FALSE) {</b></span></font></span></font></div>
<div style="padding-left:36pt;">                <span style="background-color:yellow;"><b>    return (FALSE);</b></span></div>
<div style="padding-left:36pt;">                <span style="background-color:yellow;"><b>}</b></span></div>
<div style="padding-left:36pt;"><font size="2"><span style="font-size:11pt;"> </span></font></div>
<div style="padding-left:36pt;"><font size="2"><span style="font-size:11pt;"> </span></font></div>
<div style="padding-left:36pt;"><font color="#1F497D">In NVMeInitAdminQueues ():</font></div>
<div style="padding-left:36pt;"><font size="2"><span style="font-size:11pt;"> </span></font></div>
<div style="padding-left:36pt;">…</div>
<div style="padding-left:36pt;"><font size="2" color="#1F497D"><span style="font-size:11pt;">        <font size="2"><span style="font-size:10pt;">  </span></font><font size="2" color="black"><span style="font-size:10pt;background-color:yellow;"><b>if ((NVMeEnableAdapter(pAE))
== FALSE) {</b></span></font></span></font></div>
<div style="padding-left:36pt;">                <span style="background-color:yellow;"><b>    return (FALSE);</b></span></div>
<div style="padding-left:36pt;">                <span style="background-color:yellow;"><b>}</b></span></div>
<div style="padding-left:36pt;"><font size="2"><span style="font-size:11pt;"> </span></font></div>
<div style="padding-left:36pt;"><font color="#1F497D">In nvmeStd.h:</font></div>
<div style="padding-left:36pt;"><font size="2"><span style="font-size:11pt;"> </span></font></div>
<div style="padding-left:36pt;"><span style="background-color:yellow;"><b>BOOLEAN</b></span> NVMeEnableAdapter(</div>
<div style="padding-left:36pt;">    __in PNVME_DEVICE_EXTENSION pAE</div>
<div style="padding-left:36pt;">);</div>
<div><font size="2"><span style="font-size:11pt;"> </span></font></div>
<div><font size="2"><span style="font-size:11pt;"> </span></font></div>
<div>Thanks,</div>
<div>Judy</div>
<div><font size="2"><span style="font-size:11pt;"> </span></font></div>
<div>-----Original Appointment-----<br>

<b>From:</b> Kong, Kwok <br>

<b>Sent:</b> Friday, June 07, 2013 10:01 AM<br>

<b>To:</b> Kong, Kwok; 'nvmewin@lists.openfabrics.org'<br>

<b>Cc:</b> Chang, Alex; Bart Bartel; Knoblaugh, Rick; Murray, Kris R; Bob Griswold; Steven Shrader; Dave Landsman; Robert Randall (rrandall); Brandon.Schulz@hgst.com; Yong Chen; Neal Galbo (ngalbo); Judy Brock-SSI; Javier Castro-SSI; Bruce Langworthy; Nathan
Obr; Thomas.Freeman@hgst.com<br>

<b>Subject:</b> [nvmewin] Review Driver Development Status - Sorry, I have to reschedule<br>

<b>When:</b> Monday, June 17, 2013 1:00 PM-2:00 PM (UTC-08:00) Pacific Time (US & Canada).<br>

<b>Where:</b> Conf call </div>
<div><font size="2"><span style="font-size:11pt;"> </span></font></div>
<div><font size="2"><span style="font-size:11pt;"> </span></font></div>
<div><font size="2"><span style="font-size:11pt;"> </span></font></div>
<div>You are invited to attend an AT&T Connect iMeeting .</div>
<div> </div>
<div>To connect to the Web Conference:</div>
<div>=============================</div>
<div>Click here: <a href="https://connect9.uc.att.com/service32/meet/?ExEventID=8811938&CT=M"><font color="blue"><u>https://connect9.uc.att.com/service32/meet/?ExEventID=8811938&CT=M</u></font></a></div>
<div> </div>
<div>TO CONNECT WITH YOUR *TELEPHONE ONLY* (no computer): </div>
<div>=================================================== </div>
<div>1. Choose one of the following numbers to dial:</div>
<div>If you are calling from an office location with on-site number(s) (listed below), try this number first. If you do not have on-site access, or you are not a member of the host's company/organization, use one of the other numbers shown.</div>
<div>      * Caller-Paid number: 602-333-0032</div>
<div>      * Toll-Free Number (in USA): 888-270-9936.</div>
<div>      * Blackberry (Caller-Paid): 6023330032x811938#</div>
<div>      * A number in your country or in a country close to you (may be toll free): <a href="https://www.teleconference.att.com/servlet/glbAccess?process=1&accessNumber=8882709936&accessCode=811938"><font color="blue"><u>https://www.teleconference.att.com/servlet/glbAccess?process=1&accessNumber=8882709936&accessCode=811938</u></font></a></div>
<div>2. When prompted, enter the Meeting Access Code: 811938#</div>
<div> </div>
<div> </div>
<div> </div>
<div>To prepare in advance for the conference (for all devices): <a href="https://connect9.uc.att.com/service32/Prepare/"><font color="blue"><u>https://connect9.uc.att.com/service32/Prepare/</u></font></a>.</div>
<div> </div>
<div>To view supported Operating Systems and devices: <a href="http://www.uc.att.com/support/SupportedDevices.html"><font color="blue"><u>http://www.uc.att.com/support/SupportedDevices.html</u></font></a></div>
<div> </div>
<div>Powered by AT&T Connect. </div>
<div> </div>
<div> </div>
<div>Agenda:</div>
<ul style="margin:0;padding-left:30pt;">
<li>Review Release 1.2 Status</li><li>- Supports the following Windows versions in addition to Windows 7 - 64 bits (IDT)</li><li>    - Windows 8 64-bit</li><li>    - Windows Server 2008R2 64-bit</li><li>    - Windows Server 2012 64-bit</li><li>    </li><li>- TRIM command support           (LSI)</li><li>- NVMe 1.00e enhancement         (IDT)</li><li>- Hibernation as a boot drive   (Huawei)</li><li>Review Known problems Status</li></ul>
<div>- Not Accessing NVMe registers in their native width. (Ray - Intel)</div>
<div style="text-indent:36pt;">- ModeSense Translation issue. (Dharani - SanDisk)</div>
<div style="text-indent:36pt;">- format nvm error. (Judy - Samsung)</div>
<div style="text-indent:36pt;">- Not handling CSTS.RDY status (from 1->0 and 0->1) properly on NVMe reset. (Judy - Samsung)</div>
<div> </div>
<ul style="margin:0;padding-left:30pt;">
<li>SCSI Translation Update (Yong Chen - Huawei)</li><li>Release 1.3 Discussion</li></ul>
<div style="text-indent:36pt;">- Support additional Windows versions</div>
<div>    - Windows 7 32-bit</div>
<div style="text-indent:36pt;">    - Windows 8 32-bit</div>
<div> </div>
<div style="text-indent:36pt;">- Windows 8 features:</div>
<div style="text-indent:36pt;">    - Extended SRB format</div>
<div style="text-indent:36pt;">    - SMART handling via new Extended SRB format</div>
<div> </div>
<div style="text-indent:36pt;">Features that will not be supported in 2013 (will be reviewed mid-year):</div>
<div>        NVMe 1.1 support:</div>
<div style="text-indent:36pt;">- multi-path</div>
<div style="text-indent:36pt;">- SGL </div>
<div style="text-indent:36pt;">- Get/Set feature update</div>
<div>                - Autonomous power state transition</div>
<div>                - Host Identifier</div>
<div>                - Reservation Notification Mask</div>
<div>                - Reservation Persistence</div>
<div style="text-indent:36pt;">- identify structure update </div>
<div style="text-indent:36pt;">- write zeros command</div>
<div> </div>
<div style="text-indent:36pt;">Other feature:</div>
<div style="text-indent:36pt;">- End-to-end protection (Server 2012 support this)</div>
<div> </div>
<div> </div>
<div> </div>
<div>  << File: ATT00001.txt >> </div>
<div><font size="2"><span style="font-size:11pt;"> </span></font></div>
</span></font>
</body>
</html>