SATA 之 DMA Setup Auto-Activate

发布时间 2023-04-11 16:42:14作者: on_the_go

 

1.  原文在 《SATA3.2协议》中的13.3.3有介绍,如下:

13.3.3 Enable/disable DMA Setup FIS auto-activate optimization
A Count(7:0) value of 02h is used by the host to enable or disable the DMA Setup FIS
optimization for automatically activating transfer of the first host-to-device Data FIS following a
DMA Setup FIS with a host-to-device transfer direction. For transfers from the host to the device,
First-party DMA transfers require a sequence of DMA Setup FIS followed by a DMA Activate FIS
to initiate the transfer. The Auto-Activate optimization allows the DMA Setup FIS operation to
imply immediate activation thereby eliminating the need for the additional separate DMA Activate
FIS to start the transfer. Enabling the optimization notifies the device that the host bus adapter
implementation allows the DMA Setup FIS to include the Auto-Activate bit to trigger immediate
transfer following receipt and processing of the DMA Setup FIS. By default, the optimization is
disabled (see 10.5.9.4.2). The enable/disable state for the auto-activate optimization shall be
preserved across software reset. The enable/disable state for the auto-activate optimization shall
be reset to its default state upon COMRESET.
2. 中文解释

概括起来就是:

(1). 使能了 DMA Setup FIS auto-activate optimization 之后,DMA Setup FIS的第一个DATA FIS不需要DMA Active, DMA Setup FIS的 'A'比特为1;

(2). 如果不使能 DMA Setup FIS auto-activate optimization ,DMA Setup FIS的第一个DATA FIS需要DMA Active, DMA Setup FIS的 'A'比特为0;

3. 抓包

(1). 使能了 DMA Setup FIS auto-activate optimization

(2). 没有使能 DMA Setup FIS auto-activate optimization

 4. 市面上的硬盘对此特性的支持情况

(1).较旧的盘一般不支持使能DMA Setup FIS auto-activate optimization,如下下发使能命令,会返回失败,例如2008年生产的160G的Seagate盘

 

 (2).较新的盘一般都支持使能DMA Setup FIS auto-activate optimization,并且无法disable,即使不使能, DMA Setup FIS的 'A'比特也为1,及不管通过set feature命令使能或关闭DMA Setup FIS auto-activate optimization,最终的结果都是使能。此时identify的相应位反应的并不真实。例如word79的比特2,set feature命令使能DMA Setup FIS auto-activate optimization,word79的比特2是1;set feature命令关闭DMA Setup FIS auto-activate optimization,word79的比特2是0。但实际DMA Setup FIS的 'A'比特都是1。像是Enable/disable DMA Setup FIS auto-activate optimization不起作用一样