5.4 Command Protocol
5.4.6 Native Command Queuing protocol
Native Queued commands include the following commands:
•READ FP DMA QUEUED
•WRITE FP DMA QUEUED
An outline of the command queuing protocol is as follows:
1)After the device receives a Native Queued command, if the command is executable, the device sends to the host the RegDH FIS with the settings of I bit = 0, BSY bit = 0, and DRQ bit = 0, and it places the command in the command queue. Otherwise, the device sends the RegDH FIS to the host to report an error.
2)If the device receives a command that is not a Native Queued command during command queuing, the device sends to the host the RegDH FIS with the settings of ERR bit = 1, I bit = 1, BSY bit = 0, DRQ bit = 0, and Error register = 0x04 to report an abort.
3)When the device is ready to send data for the data transfer of the READ FP DMA QUEUED command, it sends to the host the DMA Setup FIS with the settings of TAG = #, D bit = 1, I bit = 0, and A bit = 0, and it then sends the Data FIS to the host. (The Data FIS is transferred in units of up to 8 KB).
4)When the read data transfer requested by the command is completed and the command is completed normally, the bit in the SActive field in the SetDB FIS corresponding to the tag number of the completed command is set by the device, and the device sets 0 in the Err bit and 0 in the Error register in the Set Device Bits FIS. Then, it sends the Set Device Bits FIS to the host.
5)For the data transfer of the WRITE FP DMA QUEUED command, if the DMA Setup Auto Activate function is disabled, the device sends to the host the DMA Setup FIS with the settings of TAG = #, D bit = 0, A bit = 0, and I bit = 0, and it sends the DMA Active FIS before it receives the Data FIS from the host. (The Data FIS is transferred in units of up to 8 KB, with the actual length of the Data FIS varying depending on the host).
6)If the DMA Setup AutoActivate function is enabled, the device sends to the host the DMA Setup FIS with the settings of TAG = #, D bit = 0, A bit = 1, and I bit = 0, and it then receives the Data FIS from the host (in units of 8 KB, 16 sectors).
7)When the write data transfer requested by the command is completed and the command is completed normally, the bit in the SActive field in the SetDB FIS corresponding to the tag number of the completed command is set by the device, and the device sets 0 in the Err bit and 0 in the Error register in the Set Device Bits FIS. Then, it sends the Set Device Bits FIS to the host. (The DMA Setup AutoActivate function can be enabled and disabled by the SET FEATURES command. The function is disabled by default.)