[T10] Question about NCQ H2D transmission be postponed when receive X_RDY
guojian111 at hisilicon.com
Fri Sep 30 04:05:01 PDT 2016
发送时间: 2016年9月30日 16:18
收件人: Guojian (F)
主题: Question about NCQ H2D transmission be postponed when receive X_RDY
I have confusion about NCQ H2D tansmission.
According to SATA spec 3.2(9.6.3 Link transmit state machine)
LT1: HL_SendChkRdy state, this state is entered if a frame transmission has been requested by the host Transport layer.
If in this state, the Link layer transmits X_RDYp and waits for X_RDYp or R_RDYp from the Phy layer.
NOTE 43 - It is possible that both the host and the device simultaneously request frame transmission by transmitting X_RDYp . If the host receives X_RDYp
while transmitting X_RDYp , the host shall back off and enter the L_R cvWaitFifo state, postponing its desired frame transmission until the device has completed its frame transmission and the bus is
Transition LT1:1, if the host Link layer receives R_RDYp from the Phy layer, the Link layer shall make a transition to the LT3: L_SendSOF state.
Transition LT1:2, if the host Link layer receives X_RDYp from the Phy layer, the Link layer shall make a transition to the LR 2: L_RcvWaitFifo state.
Consider following scenario:
host adapter is sending X_RDYp for H2D(NCQ command) but receive X_RDYp for DMA SETUP FIS. After complete reception of DMA SETUP FIS, link layer retransmits H2D(NCQ command), it will result in SATA device aborting the command(NCQ data phase interrupted by H2D).
My question is :
In this scenario,
1) the H2D(NCQ command) should be postponed in link layer until the device completed its frame transmission or
2) link layer should reports error to transport layer because X_RDY conflicts
which one is correct?
Thanks for your help.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the T10