<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>