S11218 v1.3 SAS Gen3 Error Codes
S11218 v1.3 SAS Gen3 Error Codes
DB05-000299-03
SAS Generation 3 Error Codes Systems Engineering Note
February 2015
For a comprehensive list of changes to this document, see the Revision History.
Avago, Avago Technologies, the A logo, LSI, Storage by LSI, CacheCade, Fusion-MPT, and GigaBlaze are trademarks of
Avago Technologies in the United States and other countries. The PowerPC name and logo are registered trademarks
of IBM Corp. and used under license therefrom. All other brand and product names may be trademarks of their
respective companies.
Data subject to change. Copyright © 2012–2015 Avago Technologies. All Rights Reserved.
SAS Generation 3 Error Codes Systems Engineering Note Table of Contents
February 2015
Table of Contents
1 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2 SAS-3 Firmware Fault Codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.1 Obtain the Fault Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.1.1 Doorbell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.1.2 Heartbeat LED . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.2 Fault Code Interpretation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.3 I/O Processor Fault Codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.4 Protocol Layer Fault Codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.5 Integrated RAID Fault Codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
3 MPI-2 Reply Message Codes for SAS-3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.1 I/O Processor Message Codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
3.2 Protocol Layer Message Codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
3.3 Integrated RAID Message Codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
3.4 MPI-2 IOC Status Codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
3.5 MPI-2 IOCLogInfo Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
4 DDR Fault Code Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
5 LSISAS3108 Controller Internal Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
5.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
5.2 Internal Error: 0x265B . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
5.3 Internal Error: 0x0820 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
5.4 Internal Error: 0x2627 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
5.5 Internal Error: 0x2662 and 0x2664 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
5.6 Internal Error: 0x1500 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
5.7 Internal Error: 0x2622 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
5.8 Miscellaneous PCIe Internal Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
5.9 Internal Error: 0x800 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
5.10 Miscellaneous PBAM Internal Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
5.11 Internal Error: 0xD033 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
5.12 Internal Error: 0xD064 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
5.13 Internal Error: 0xD040 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
5.14 Internal Error: 0xD20B . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
5.15 Internal Error: 0xD20C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
6 Acronyms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
Revision History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .66
1 References
When the IOC encounters an unhandled exception, such as an unrecoverable internal error or a hardware failure, the
IOC transitions to the Fault state. Reading the System Doorbell register when the IOC is in the Fault state returns
0b0100 in the IOC State bits 31:28. Bits 15:0 contain the fault code.
This section contains information about the firmware fault codes that the LSISAS3004 (4 port), LSISAS3008 (8 port),
and LSISAS3108 (8 port) controller firmware might generate. Use the System Doorbell register or the Heartbeat LED to
determine the fault code. See the following section for more details.
When the firmware has entered the Fault state, the host driver must use a hard reset to attempt to recover.
This section explains how to obtain the fault code from the System Doorbell register or from the flash sequence issued
by the Heartbeat LED.
2.1.1 Doorbell
The process of obtaining the fault code from the System Doorbell register is explained in Section 4, IOC States, of the
Fusion-MPT Message Passing Interface Specification v2.0 Rev. L. When the firmware detects a fault, each System Doorbell
register is written with the fault code. You can determine the presence of a fault code if the State Nibble (upper 4 bits)
of the System Doorbell register is 0b0100. The remaining bits of the System Doorbell register indicate the fault code.
After this sequence, the length of the next 17 flashes indicates each bit of the fault code. A long flash (1 second) equals
1 and a short flash (1/4 second) equals 0. A 2.5-second delay occurs between each flash.
When you write down a sequence, a hexadecimal number results, as shown in the following example.
L SSSL SSLS SSLL SLSS
1 0001 0010 0011 0100
The previous sequence indicates a fault code of 0x00011234 (15 leading 0 bits added). The first digit in this example
refers to bit 16, which indicates the channel where the fault was detected.
31 17 16 15 0
Reserved Ch Fault Code
The following table lists the I/O processor (IOP) fault codes and a brief description of each code.
The following table lists the protocol layer (PL) fault codes and a brief description of each code.
The following table lists the Integrated RAID (IR) fault codes and a brief description of each code.
Every MPI message has a Request message and a Reply message, which are documented in the Fusion-MPT Message
Passing Interface Specification, v1.5.3. The 32-bit IOCLogInfo field in the Reply message relays information back to the
host. The information can be error codes when an error occurs, or information about the message.
The IOCLogInfo field of the Reply message includes the following subfields.
[31:28] – MPI2_IOCLOGINFO_TYPE_SAS (3)
[27:24] – IOC_LOGINFO_ORIGINATOR: 0 = IOP, 1 = PL, 2 = IR
[23:16] – LOGINFO_CODE
[15:0] – LOGINFO_CODE Specific
The following table lists IOCLogInfo codes for IOC_LOGINFO_ORIGINATOR = 0 (IOP code segment).
The following table lists IOCLogInfo codes for IOC_LOGINFO_ORIGINATOR = 1 (PL code segment).
The following table lists IOCLogInfo codes for IOC_LOGINFO_ORIGINATOR = 2 (IR code segment).
The following table lists the DDR fault codes for the firmware GCA phases 1, 2, and 3.
5.1 Overview
The following figure depicts the top-level block diagram of the LSISAS3108 controller. It comprises the I/O blocks and
the processing engines and shows the bus connections between the different controller blocks. These buses are used
for communication within each block and also between different blocks. Error check is implemented in each I/O block
and memory block:
Parity protects memory, buffer, and cache internal to the controller.
CRC error protection is provided in the SAS and PCIe region.
Error protection is provided in the flash region.
DDR memory controller protects the DDR memory with ECC.
Parity protects internal buses to ensure the internal transaction error is detected.
Figure 1 Overview
/HJHQG
1RWH ([WHUQDO0HPRU\3HULSKHUDOV 8$57
[ 3DULW\[[[[ ,GHQWLILHVORJLFZKHUHSDULW\LVJHQHUDWHGRUFKHFNHG $OO3/%&RQWUROSDWKVDUHFRYHUHGE\SDULW\
,&
$OO3DULW\LVE\WHSDULW\ 6LJQDWXUH&KHFNV
[ 3DULW\[[[[ ,GHQWLILHVORJLFRIZKHUHGDWDEORFNVDUHFRYHUHGE\D&5&
1965$0
[ [[[[[[ ,GHQWLILHVORJLFFRYHUHGE\PXOWLSOHLQWHJULW\VFKHPHV
QDPH! ,GHQWLILHVDSK\VLFDO5$0
3/%$WWDFK )ODVK
QDPH! )ODVK
)ODVK
,GHQWLILHVDEORFNZKRVHGDWDLVFRYHUHGE\DQ(&&
QDPH! ,GHQWLILHVORJLFLPSOHPHQWLQJGDWDLQWHJULW\GHILQHGE\/6,
)LUPZDUH
QDPH! ,GHQWLILHVORJLFLPSOHPHQWLQJ7(('3ORJLF *HQHUDWHG&5&
,23 3/%%XV
6+(//'DWD3DWKV
3&,H&RUH
3/%6KHOO$WWDFK
&RQWH[W5$0 6$6&RUH 0HPRU\&RQWUROOHU
)UDPH'DWD
6KHOO%XIIHU
6KHOO%XIIHU
6KHOO%XIIHU
6KHOO%XIIHU
5HSO\),)2
32%%XIIHU
3/%'DWD
3/%$WWDFK 3/%6KHOO$WWDFK 3/%6KHOO$WWDFK
&RQILJ
&RQILJ &KN &RQILJ &KN
&RQWH[W0HPRU\7LOH &KN*HQ 7[ 5[
6KHOO3RUW & & &
'DWDSDWK 'DWDSDWK &KN $UELWHU
&RQWH[W0HPRU\7LOH &KN*HQ '0$ &KN
&KN &KN /&DFKH
'0$
'0$ &KN &KN
%XIIHU
%XIIHU '0$ 3DULW\*HQ 7UDQVSRUW/D\HU
&RQWH[W0HPRU\7LOH &KN*HQ %XIIHU '0$
'0$
'0$ %XIIHU
'0$ /58$UUD\ 43 3DULW\&KHFN
&KN
&KN '0$ '0$
%XIIHU
&KN %XIIHU
%XIIHU %XIIHU /'DWD &KN
&KN*HQ %XIIHU %XIIHU (&5&*HQ (&5&&KHFN
&KN*HQ
&KN*HQ &KN 7DJ *HQ
6KHOO3RUW
6KHOO3RUW
6KHOO3RUW 3DULW\&KHFN
3RUW/D\HU 5HSOD\%HT%XI 3&,H3+< 3DULW\&KHFN
&KN6WULS /&5&*HQ /&5&&KHFN
0HPRU\&RQWUROOHU 1$1')ODVK
(&&*HQ&KHFN &RQWUROOHU
3DULW\&KHFN &5&&KHFN
6$6/LQN3+< 3DULW\&KHFN 3,3( 3DULW\*HQ
&5&*HQ 3DULW\*HQ
This section describes the L2 cache internal errors that correspond to the firmware fault code 0x265B.
This section describes the OCM internal errors that correspond to the firmware fault code 0x820.
This section describes the PCIe internal errors that correspond to the firmware fault code 0x2627.
This section describes the PCIe internal errors that correspond to the firmware fault codes 0x2662 and 0x2664.
This section describes the PCIe internal errors that correspond to the firmware fault code 0x1500.
This section describes the PCIe internal errors that correspond to the firmware fault code 0x2622.
This section describes the PBAM internal errors that correspond to the firmware fault code 0x800.
This section describes the Detroit internal errors that correspond to the firmware fault code 0xD033.
This section describes the Detroit internal errors that correspond to the firmware fault code 0xD064.
This section describes the I/O accelerator internal errors that correspond to the firmware fault code 0xD040.
This section describes the I/O accelerator internal errors that correspond to the firmware fault code 0xD20B.
This section describes the I/O accelerator internal errors that correspond to the firmware fault code 0xD20C.
6 Acronyms
Acronym Definition
AI Arbiter Interface, Address Increment
ATA Advanced Technology Attachment
CCOH CacheCade® on Host
CDB Command Descriptor Block
DCR Device Control Register
DDR Double Data Rate
DFI DDR Phy Interface
Acronym Definition
DIMM Dual Inline Memory Module
DMA Direct Memory Access
ECC Error Correction Code
EEDP End-to-End Data Protection
EPOW Early Power-Off Warning
FIFO First-In, First-Out
FIQ Fast interrupt
FM Frame, Frame Manager
FP Fast Path
FPDMA First Party DMA
FPE Fast Path Engine
GCA General Customer Availability
GPIO General-Purpose I/O
GSN Golden Sequence Number
HBD Host-Based Discovery
IIC Inter-Integrated Circuit
I/O Input/Output
IOC I/O Controller
IR Integrated RAID
ISTWI Industrial Standard Two-Wire Interface
IT Initiator Target
LBA Logical Block Address
LDF Logical Disk Format
LRU Least Recently Used
MC Memory Controller
MID Message ID
MIRQ Memory Interrupt Request
MP Memory Port
MPI Message Passing Interface
MPT Message Passing Technology
MRx Mode Register x
MST MID State Table
MSIx Message Signaled Interrupts x
MUR Message Unit Reset
NCQ Native Command Queuing
NVDATA Non-Volatile Data
NVSRAM Non-Volatile Random Access Memory
OCM On-Chip Memory
ODS Output Drive Strength
PBAM Peripheral Bus Access Module
Acronym Definition
PCI Peripheral Component Interconnect
PI Protection Information
PL Protocol Layer
PLB Processor Local Bus
PSC PLB Slave Configuration
PSM PLB Slave Memory-controller
RAID Redundant Array of Independent Disks
RAM Random Access Memory
RDF Read Data Flow
ROM Read-Only Memory
RTT Trace Termination Resistor
RVRA RECOVER_VOLUME RAID Action
SAS Serial-Attached SCSI
SATA Serial ATA
SBR Serial Boot Read-Only Memory
SCSI Small Computer Systems Interface
SEP SCSI Enclosure Processor
SES SCSI Enclosure Services
SGE Scatter-Gather Element
SGL Scatter-Gather List
SGPIO Serial General-Purpose I/O
SMP Serial Management Protocol
SOD Start of Day
SPD Serial Presence Detect
SRT Self-Refresh Temperature
STP SATA Tunneling Protocol
TCL Time Column Address Strobe Latency
TLB Translation Look-aside Buffer
TLP Transaction Layer Packet
UIC Universal Interrupt Controller
UART Universal Asynchronous Receiver/Transmitter
WLA Write-Leveling Adjustment
WDF Write Data Flow
WWID World Wide ID
Revision History
The following changes were made to Version 1.3, February 2015, of this document:
Updated references in Section 1, References.
Added Section 3, MPI-2 Reply Message Codes for SAS-3
Updated Table 1:
— Added fault codes 0x2810, 1D02, 0x0709, 0x0708, 0x070A, 0x030A, 0x001A, 0x0019
— Updated fault code description for fault codes 0x1CA0 through 0x1CA4, 0x0306
Updated Table 2:
— Added fault codes 0x6210, 0x6220, 0x6221, 0x6222, 0x6230, 0x682C, 0x7003, 0x7C21, 0x7C23, 0xD136,
0xD140, 0xE400 through 0xE40E, 0xE450 through 0xE454, 0xE460, 0xE5A0 through 0xE5A4, 0xEBFF, 0xEC00,
0xEC04, 0xEC06 through 0xEC0B, 0xEC0D, 0xEC0E, 0xEC10 through 0xEC13, 0xEC17, 0xEC18, 0xEC19, 0xEC1D
through 0xEC25, 0xECA1, 0xECA4, 0xED00, 0xED01, 0xED02, 0xEE01 through 0xEE04
Updated code 0x8316 description in Table 3.
Updated Table 5:
— Added fault codes 0x00010501, 0x00030800
— Updated fault code name and description for fault codes 0x00000001, 0x00000002, 0x00000004, 0x00000008
Updated Table 9:
— Added fault codes 0x00000800 through 0x0000080C, 0x00070000, 0x00070001, 0x00220010, 0x00220012
— Updated fault code description for fault codes
Updated Table 11:
— Added fault codes 0x00010081
— Updated fault code description for fault codes 0x0010071
Template change
The following changes were made to Version 1.2, January 2014, of this document:
Deleted Section 3, MPI-2 Reply Message Codes for SAS-2.
Added Section 5, LSISAS3108 Controller Internal Errors.
The following changes were made to Version 1.1, October 2013, of this document:
Updated references in Section 1, References.
Updated Table 1:
— Added fault codes 0x0016 to 0x0018, 0x0820, 0x0A05, 0x1403, 0x1801, 0x1820, 0x1CA0 to 0x1CA4, 0x2626 to
0x2628, 0x26A0 to 0x26A2, 0x26B4, 0x26B5
— Changed fault code 0x0306 to IFAULT_IOP_MAXIMUM_MEM_REGIONS_EXCEEDED
— Removed fault codes 0x0612, 0x1906
— Updated fault code description for fault code 0x130F
Updated Table 2:
— Added fault codes 0x4462 to 0x4465, 0x4A02, 0x5005, 0x5118, 0x5121, 0x584D, 0x58A1, 0x58B6 to 0x58BC,
0x601F, 0x610F, 0x6111, 0x6B07, 0x6B08, 0x6D00, 0x7000 to 0x7002, 0x7830 to 0x7832, 0x7C46, 0xD053,
0xD114 to 0xD116
— Updated fault code description for fault codes 0x58B4, 0x5863
Updated Table 14:
— Revised introduction
— Unreserved code 0x903B
— Added codes 0x9075, 0x9076, 0x9077
Updated Table 5:
— Added codes 0x00000010, 0x00000020, 0x00000040, 0x00000080, 0x00000100, 0x00000200, 0x00000400,
0x00010408 to 0x0001040F
Updated Table 6:
— Added codes 0x00240006, 0x00250000
Updated Table 7:
— Added code 0x00230009
Updated Table 8:
— Added code 0x00000443
Updated Table 10:
— Added codes 0x00010046, 0x0001004B, 0x00010072, 0x00010073, 0x00011000 to 0x00011007, 0x00011010
to 0x00011014
The following changes were made to Version 1.0, July 2012, of this document:
Initial release of the document.