7/17/09:
Overview
This document discusses issues surrounding potential initialization issues on SAS and SATA SSD
devices. Similar situation may exist on HDD devices as well but most likely only internal to the
manufacture.
The SAS interface requires a valid World Wide Name (WWN). A WWN is a 8 byte unique device
identifier used in Fibre Channel (FC) and Serial Attached SCSI (SAS) interface. The purpose of the
WWN is to assign a unique identifier to a interface node much like a MAC address is used in the
Ethernet interface. Like the serial number of a device, a raw uninitialized device may initially contain
zeros or some non-unique series of numbers for the WWN which would be invalid according to the
SAS spec.
Similarly, for the uninitialized SATA device, there maybe limitations that it may not support the full
ATA command set until such a time where it has been programmed correctly, and initialized.
These conditions may limit or inhibit the ability for such devices to communicate to SAS HBAs.
2. SAS SSD
It has come to our attention that many SAS SSD devices when in a uninitialized state (the device is
electronically complete but has not been properly programmed), some of them do not have a valid
WWN. The SAS protocol requires that a unique non-zero series of numbers be assigned to each SAS
device much like a IP address must be unique within a given network.
Many SAS Host Bus Adapters (HBA) are designed to communicate to devices with the expected
SAS protocol behavior and if the SAS device has a WWN of all zeros, or some other invalid
condition, may not detect the device or ignore the device all together.
If the HBA and SAS device combination are in such a condition, there is no possible way for the two
to communicate. Without the ability to communicate, there is no chance that the device can be further
initialized and prepared with the correct WWN and device serial number through the SAS interface.
In such a case, an alternate method may be required (alternate serial bus, in-circuit programming,
etc.) to pre-initialize the WWN into the device before it is mated to a SAS interface.
An option for some HBA is that it may be possible to communicate to the SAS device if the initial
WWN was some non-unique but non-zero value. As long as the WWN is non-zero, it may be
possible for one of the port on the HBA to communicate to the SAS device where the proper
initialization sequence can be executed and the proper WWN and serial number can be programmed.
Subsequently, upon power cycling the device, it will appear on the SAS bus with a valid WWN and
serial number. Careful planning and port to port synchronization would be required for this scheme to
work since if more than one port detects a device with the same WWN, the HBA will be confused
and will end with unexpected result.
3. SATA SSD Initialization on a SAS HBA
On SATA SSD devices, there are no WWN to contend with. Instead, the uninitialized SATA SSD
device typically are reduced to a very limited function since no Firmware and other programming
initialization has not been done yet. In this state, typically the device will abort most regular ATA
commands and only execute the Firmware Download ATA command.
The problem with SATA devices in this state attached to some SAS HBA is that some SAS controller
will ignore a SATA device if it does not complete some basic ATA commands such as Identify
Command. The result is that the Firmware of the SAS HBA will return a status of “Device Not
Found” which does not distinguish the difference between an device that is on line but unable to
complete the Identify Command and a SATA bus with no device attached.
In this state, no communication between the HBA and device is possible and hence, no further device
initialization can be done through the SAS HBA and a different method will need to be deployed to
initialize the device.
download the press release of SSD_INIT_Papers
|