SNW-3 SATA port selector confusion

Karthikeyan, Kishore K kishore.k.karthikeyan at
Wed May 20 12:06:06 PDT 2009

Formatted message: <a href="">HTML-formatted message</a>

I hope atleast some people have got the chance to read through this email and
understand the issue at hand.
Again I will try to put the question in a different way to solicit some
response :)
If I don't implement this new arc in the SP statemachine (dc_idle detection
after SNW2), can I hit the discrepancy mentioned in this proposal (wrongly
detecting port selector attached) with valid speed negotiation scenarios? And
if I cannot hit this condition ever, do I really need to incorporate
unnecessary additional logic into the design?
From: owner-t10 at [mailto:owner-t10 at] On Behalf Of Karthikeyan,
Kishore K
Sent: Monday, May 18, 2009 4:27 PM
To: t10 at
Subject: SNW-3 SATA port selector confusion
Please refer to the attached document
I have a question regarding this approved change to the SAS standard
(approved in July 2008)
The problem describes a scenario where PHY-B (which supports only SNW1) can
falsely detects a port selector due to the 1st COMWAKE it receives as part of
the PHY_CAPABILITIES bit of PHY-A (which supports only SNW3) in response to
PHY-A's COMINIT transmission after hotplug timeout.
Even though this problem looks real at first glance, can it ever really
happen? I say that because I think we are overlooking the fact that PHY-B
will restart OOB only after hotplug timeout which is 10ms minimum to a max of
Lets look at the scenario in detail
If PHY-B detects that the SNW1 and SNW2 are both invalid, it will restart OOB
but ONLY after hotplug timeout (which can only be after a min of 10ms).
But PHY-A which supports only SNW3, will finish SNW-3 in RCDT (500us)+SNTT
(109us) = 610us and then restart OOB after hotplug timeout.
So while PHY-A is transmitting PHYCAP bit as part of SNW3, PHY-B is waiting
for hotplug timeout to expire. So by the time hotplug timeout of PHY-B
expires, PHY-A has already finished SNW3 and waiting for its own hotplug
timer to expire so that it can restart OOB.
So how can we ever hit the condition mentioned in this proposal? What am I
missing here?
Thanks in advance
Intel Corporation

More information about the T10 mailing list