improving networks worldwide. unh interoperability lab sata chapters 11 and 12 device command layer...
TRANSCRIPT
![Page 1: Improving Networks Worldwide. UNH InterOperability Lab SATA Chapters 11 and 12 Device Command Layer Protocols](https://reader035.vdocuments.site/reader035/viewer/2022062421/56649cf75503460f949c7343/html5/thumbnails/1.jpg)
Improving Networks Worldwide.
UNH InterOperability Lab
SATA Chapters 11 and 12Device Command Layer Protocols
![Page 2: Improving Networks Worldwide. UNH InterOperability Lab SATA Chapters 11 and 12 Device Command Layer Protocols](https://reader035.vdocuments.site/reader035/viewer/2022062421/56649cf75503460f949c7343/html5/thumbnails/2.jpg)
2
SATA Device Command Layer Protocols
Presentation Topics
• Device Command Layer Protocol– Power-on and COMRESET– Device Idle– EXECUTE DEVICE DIAGNOSITC– DEVICE RESET– DMA data-in– FPDMA QUEUED (Host and Device)
• Other Command Layer Protocols
![Page 3: Improving Networks Worldwide. UNH InterOperability Lab SATA Chapters 11 and 12 Device Command Layer Protocols](https://reader035.vdocuments.site/reader035/viewer/2022062421/56649cf75503460f949c7343/html5/thumbnails/3.jpg)
3
SATA Device Command Layer Protocols
Command Layer Protocols
• Series of inter-related state machines
• Guidelines for devices and hosts on steps to take when processing and incoming or outgoing command
![Page 4: Improving Networks Worldwide. UNH InterOperability Lab SATA Chapters 11 and 12 Device Command Layer Protocols](https://reader035.vdocuments.site/reader035/viewer/2022062421/56649cf75503460f949c7343/html5/thumbnails/4.jpg)
4
SATA Device Command Layer Protocols
Presentation Topics
• Device Command Layer Protocol– Power-on and COMRESET– Device Idle– EXECUTE DEVICE DIAGNOSITC– DEVICE RESET– DMA data-in– FPDMA QUEUED (Host and
Device)
• Other Command Layer Protocols
![Page 5: Improving Networks Worldwide. UNH InterOperability Lab SATA Chapters 11 and 12 Device Command Layer Protocols](https://reader035.vdocuments.site/reader035/viewer/2022062421/56649cf75503460f949c7343/html5/thumbnails/5.jpg)
5
SATA Device Command Layer Protocols
Power-on and COMRESET
• On reception of COMRESET from a Host, devices shall execute the hardware reset protocol regardless of current device command layer state or power management state
• Covers the basic power on procedures to be used by both Packet and Non-packet devices
![Page 6: Improving Networks Worldwide. UNH InterOperability Lab SATA Chapters 11 and 12 Device Command Layer Protocols](https://reader035.vdocuments.site/reader035/viewer/2022062421/56649cf75503460f949c7343/html5/thumbnails/6.jpg)
6
SATA Device Command Layer Protocols
Power-on and COMRESET
• DHR0: Hardware_reset_asserted– Command Layer has received a
message from the Transport Layer that a COMRESET has been asserted
– Device stays in this state until message from Phy State Machine is received saying that the hardware reset has been negated
– Only transitions to DHR1
![Page 7: Improving Networks Worldwide. UNH InterOperability Lab SATA Chapters 11 and 12 Device Command Layer Protocols](https://reader035.vdocuments.site/reader035/viewer/2022062421/56649cf75503460f949c7343/html5/thumbnails/7.jpg)
7
SATA Device Command Layer Protocols
Power-on and COMRESET
• DHR1: Execute_diagnostics– During this state, a Device
initializes its hardware and executes its power up diagnostic routines
– Upon completion of power up diagnostic routines a Device can transition to DHR2 or DHR3
![Page 8: Improving Networks Worldwide. UNH InterOperability Lab SATA Chapters 11 and 12 Device Command Layer Protocols](https://reader035.vdocuments.site/reader035/viewer/2022062421/56649cf75503460f949c7343/html5/thumbnails/8.jpg)
8
SATA Device Command Layer Protocols
Power-on and COMRESET
• DHR2: Send_good_status– In this state, a Devices transmits
a Register FIS to the Host indicating that the power up diagnostics have been completed successfully
– The Device then transitions to DI0: Device_idle
![Page 9: Improving Networks Worldwide. UNH InterOperability Lab SATA Chapters 11 and 12 Device Command Layer Protocols](https://reader035.vdocuments.site/reader035/viewer/2022062421/56649cf75503460f949c7343/html5/thumbnails/9.jpg)
9
SATA Device Command Layer Protocols
Power-on and COMRESET
• DHR3: Send_bad_status– In this state, a Devices transmits
a Register FIS to the Host indicating that the power up diagnostics have NOT been completed successfully
– The Device then transitions to DI0: Device_idle
![Page 10: Improving Networks Worldwide. UNH InterOperability Lab SATA Chapters 11 and 12 Device Command Layer Protocols](https://reader035.vdocuments.site/reader035/viewer/2022062421/56649cf75503460f949c7343/html5/thumbnails/10.jpg)
10
SATA Device Command Layer Protocols
Presentation Topics
• Device Command Layer Protocol– Power-on and COMRESET– Device Idle– EXECUTE DEVICE DIAGNOSITC– DEVICE RESET– DMA data-in– FPDMA QUEUED (Host and
Device)
• Other Command Layer Protocols
![Page 11: Improving Networks Worldwide. UNH InterOperability Lab SATA Chapters 11 and 12 Device Command Layer Protocols](https://reader035.vdocuments.site/reader035/viewer/2022062421/56649cf75503460f949c7343/html5/thumbnails/11.jpg)
11
SATA Device Command Layer Protocols
Device Idle Protocol
• The default state for all SATA Devices
– Awaiting the reception of a FIS from the Host
– State machine defines how to process commands and how to decide which command specific state machine to enter based on the received FIS
![Page 12: Improving Networks Worldwide. UNH InterOperability Lab SATA Chapters 11 and 12 Device Command Layer Protocols](https://reader035.vdocuments.site/reader035/viewer/2022062421/56649cf75503460f949c7343/html5/thumbnails/12.jpg)
12
SATA Device Command Layer Protocols
Device Idle Protocol
• DI0: Device Idle– Default State– Just waiting for something to
happen from the Host– Numerous possible transitions
from this state based on Host actions
![Page 13: Improving Networks Worldwide. UNH InterOperability Lab SATA Chapters 11 and 12 Device Command Layer Protocols](https://reader035.vdocuments.site/reader035/viewer/2022062421/56649cf75503460f949c7343/html5/thumbnails/13.jpg)
13
SATA Device Command Layer Protocols
Device Idle Protocol
• DI1: Check_FIS– Entered from DI0 upon reception
of a FIS– Check C-bit and SRST-Bit of the
FIS• If C-bit asserted → DI2:
Check_command• If SRST-bit asserted → DSR0:
Software_reset_asserted
– Any other FIS → DI0: Device_idle
![Page 14: Improving Networks Worldwide. UNH InterOperability Lab SATA Chapters 11 and 12 Device Command Layer Protocols](https://reader035.vdocuments.site/reader035/viewer/2022062421/56649cf75503460f949c7343/html5/thumbnails/14.jpg)
14
SATA Device Command Layer Protocols
Device Idle Protocol
• DI2: Check_command– Check the fields of the command– 15 possible transitions out of this
state based on the command type found when checking fields
![Page 15: Improving Networks Worldwide. UNH InterOperability Lab SATA Chapters 11 and 12 Device Command Layer Protocols](https://reader035.vdocuments.site/reader035/viewer/2022062421/56649cf75503460f949c7343/html5/thumbnails/15.jpg)
15
SATA Device Command Layer Protocols
Device Idle Protocol• DI3: No_Command
– Entered when a Device receives a command not supported
– ABRT-bit of command set to one → DI0: Device_idle
• DI4: Set_service– Entered when Device is ready to
complete data transfer for a queued command
– SERV-bit of command set to one → DI0: Device_idle
![Page 16: Improving Networks Worldwide. UNH InterOperability Lab SATA Chapters 11 and 12 Device Command Layer Protocols](https://reader035.vdocuments.site/reader035/viewer/2022062421/56649cf75503460f949c7343/html5/thumbnails/16.jpg)
16
SATA Device Command Layer Protocols
Device Idle Protocol
• DI5: Service_test– Entered when a SERVICE
Command is received– Check the command to see if a
Register FIS needs to be transmitted for DRQ bit and to set the Tag
– If PACKET PIO In/Out → DI7: Service_decode
– Else → DI6: Service_send_tag
![Page 17: Improving Networks Worldwide. UNH InterOperability Lab SATA Chapters 11 and 12 Device Command Layer Protocols](https://reader035.vdocuments.site/reader035/viewer/2022062421/56649cf75503460f949c7343/html5/thumbnails/17.jpg)
17
SATA Device Command Layer Protocols
Device Idle Protocol
• DI6: Service_send_tag– Entered when a SERVICE
command has been received– Device waits for a Register FIS
with the BSY-bit de-asserted, DRQ-bit asserted, and an appropriate tag
– Upon reception of the FIS → DI7: Service_decode
![Page 18: Improving Networks Worldwide. UNH InterOperability Lab SATA Chapters 11 and 12 Device Command Layer Protocols](https://reader035.vdocuments.site/reader035/viewer/2022062421/56649cf75503460f949c7343/html5/thumbnails/18.jpg)
18
SATA Device Command Layer Protocols
Device Idle Protocol
• DI7: Service_Decode– Check the command that has
been received after the required Register FIS has been received
– 6 Possible transitions based on the command type
![Page 19: Improving Networks Worldwide. UNH InterOperability Lab SATA Chapters 11 and 12 Device Command Layer Protocols](https://reader035.vdocuments.site/reader035/viewer/2022062421/56649cf75503460f949c7343/html5/thumbnails/19.jpg)
19
SATA Device Command Layer Protocols
Presentation Topics
• Device Command Layer Protocol– Power-on and COMRESET– Device Idle– EXECUTE DEVICE DIAGNOSITC– DEVICE RESET– DMA data-in– FPDMA QUEUED (Host and
Device)
• Other Command Layer Protocols
![Page 20: Improving Networks Worldwide. UNH InterOperability Lab SATA Chapters 11 and 12 Device Command Layer Protocols](https://reader035.vdocuments.site/reader035/viewer/2022062421/56649cf75503460f949c7343/html5/thumbnails/20.jpg)
20
SATA Device Command Layer ProtocolsExecute Device Diagnostics
Protocol• Command Class for the EXECUTE
DEVICE DIAGNOSTIC command– If COMRESET or a FIS with SRST-
bit asserted is received, the Device shall execute the COMRESET Command Protocol or the Software Reset Command Protocol respectively
• Describes the process for EXECUTE DEVICE DIAGNOSTIC command
![Page 21: Improving Networks Worldwide. UNH InterOperability Lab SATA Chapters 11 and 12 Device Command Layer Protocols](https://reader035.vdocuments.site/reader035/viewer/2022062421/56649cf75503460f949c7343/html5/thumbnails/21.jpg)
21
SATA Device Command Layer ProtocolsExecute Device Diagnostics
Protocol• DEDD0: Execute_device_diag
– In this state, a Device will execute its internal diagnostic procedures
• If diagnostics completed successfully → DEDD1: Send_good_status
• Else → DEDD2: Send_bad_status • From DEDD1 and DEDD2 → DI0:
Device_Idle
![Page 22: Improving Networks Worldwide. UNH InterOperability Lab SATA Chapters 11 and 12 Device Command Layer Protocols](https://reader035.vdocuments.site/reader035/viewer/2022062421/56649cf75503460f949c7343/html5/thumbnails/22.jpg)
22
SATA Device Command Layer Protocols
Presentation Topics
• Device Command Layer Protocol– Power-on and COMRESET– Device Idle– EXECUTE DEVICE DIAGNOSITC– DEVICE RESET– DMA data-in– FPDMA QUEUED (Host and
Device)
• Other Command Layer Protocols
![Page 23: Improving Networks Worldwide. UNH InterOperability Lab SATA Chapters 11 and 12 Device Command Layer Protocols](https://reader035.vdocuments.site/reader035/viewer/2022062421/56649cf75503460f949c7343/html5/thumbnails/23.jpg)
23
SATA Device Command Layer Protocols
Device Reset Protocol
• Command Class for the DEVICE RESET command
– If COMRESET or a FIS with SRST-bit asserted is received, the Device shall execute the COMRESET Command Protocol or the Software Reset Command Protocol respectively
• When this command is received, a Device will stop all activity
![Page 24: Improving Networks Worldwide. UNH InterOperability Lab SATA Chapters 11 and 12 Device Command Layer Protocols](https://reader035.vdocuments.site/reader035/viewer/2022062421/56649cf75503460f949c7343/html5/thumbnails/24.jpg)
24
SATA Device Command Layer Protocols
Device Reset Protocol• DDR0: Device_reset
– Upon reception of this command, a Device will halt all execution of any outstanding commands and will hald all background activity
– When activity has ceased → DDR1: Send_good_status
• DDR1: Send_good_status– Device requests the Host transmit a
Register FIS– Upon reception of this FIS → DI0:
Device_Idle
![Page 25: Improving Networks Worldwide. UNH InterOperability Lab SATA Chapters 11 and 12 Device Command Layer Protocols](https://reader035.vdocuments.site/reader035/viewer/2022062421/56649cf75503460f949c7343/html5/thumbnails/25.jpg)
25
SATA Device Command Layer Protocols
Presentation Topics
• Device Command Layer Protocol– Power-on and COMRESET– Device Idle– EXECUTE DEVICE DIAGNOSITC– DEVICE RESET– DMA data-in– FPDMA QUEUED (Host and
Device)
• Other Command Layer Protocols
![Page 26: Improving Networks Worldwide. UNH InterOperability Lab SATA Chapters 11 and 12 Device Command Layer Protocols](https://reader035.vdocuments.site/reader035/viewer/2022062421/56649cf75503460f949c7343/html5/thumbnails/26.jpg)
26
SATA Device Command Layer Protocols
DMA Data-in Protocol
• Command Class for the READ DMA and READ DMA EXT commands
• Execution of this command induces the transfer of one ore more blocks of data from the device to the host use using a DMA transfer
• Command Protocol for most read operations in modern, non-packet devices
![Page 27: Improving Networks Worldwide. UNH InterOperability Lab SATA Chapters 11 and 12 Device Command Layer Protocols](https://reader035.vdocuments.site/reader035/viewer/2022062421/56649cf75503460f949c7343/html5/thumbnails/27.jpg)
27
SATA Device Command Layer Protocols
DMA Data-in Protocol
• DDMAI0: DMA_in– In this state, a Device will prepare
the date for transfer to the host – When Data FIS is ready →
DDMAI1: Send_data– Otherwise, command has been
completed or aborted → DDMA2: Send_status
![Page 28: Improving Networks Worldwide. UNH InterOperability Lab SATA Chapters 11 and 12 Device Command Layer Protocols](https://reader035.vdocuments.site/reader035/viewer/2022062421/56649cf75503460f949c7343/html5/thumbnails/28.jpg)
28
SATA Device Command Layer Protocols
DMA Data-in Protocol
• DDMAI1: Send_data– In this state, the Device shall
transmit the prepared FIS to the host
• DDMAI2: Send_status– A Device enters this state when
all the data for a command has been transmitted to a Host or an error has caused the command to abort
![Page 29: Improving Networks Worldwide. UNH InterOperability Lab SATA Chapters 11 and 12 Device Command Layer Protocols](https://reader035.vdocuments.site/reader035/viewer/2022062421/56649cf75503460f949c7343/html5/thumbnails/29.jpg)
29
SATA Device Command Layer Protocols
Presentation Topics
• Device Command Layer Protocol– Power-on and COMRESET– Device Idle– EXECUTE DEVICE DIAGNOSITC– DEVICE RESET– DMA data-in– FPDMA QUEUED (Host and
Device)
• Other Command Layer Protocols
![Page 30: Improving Networks Worldwide. UNH InterOperability Lab SATA Chapters 11 and 12 Device Command Layer Protocols](https://reader035.vdocuments.site/reader035/viewer/2022062421/56649cf75503460f949c7343/html5/thumbnails/30.jpg)
30
SATA Device Command Layer Protocols
FPDMA Queued Protocol
• Command Class for READ FPDMA QUEUED and WRITE FPDMA QUEUED commands
– Special Read and Write commands for Native Command Queuing features found in SATA2+
![Page 31: Improving Networks Worldwide. UNH InterOperability Lab SATA Chapters 11 and 12 Device Command Layer Protocols](https://reader035.vdocuments.site/reader035/viewer/2022062421/56649cf75503460f949c7343/html5/thumbnails/31.jpg)
31
SATA Device Command Layer Protocols
FPDMA Queued Protocol
• DFPDMAQ1: AddCommandToQueue
– Upon determining a FPDMA command has been received, a Device will add the command to its internal queue and store the command's TAG value
– Successful en-queuing → DFPDMAQ2: CleareInterfaceBsy
– Else → DFPDMAQ12: BrokenHost_ClearBusy
![Page 32: Improving Networks Worldwide. UNH InterOperability Lab SATA Chapters 11 and 12 Device Command Layer Protocols](https://reader035.vdocuments.site/reader035/viewer/2022062421/56649cf75503460f949c7343/html5/thumbnails/32.jpg)
32
SATA Device Command Layer Protocols
FPDMA Queued Protocol
• DFPDMAQ2: ClearInterfaceBsy– Transmit a Register FIS to the
host with BSY and DRQ bits deasserted, indicating the Device is ready to receive the next command
– Upon transmission → DI0: Device_idle
![Page 33: Improving Networks Worldwide. UNH InterOperability Lab SATA Chapters 11 and 12 Device Command Layer Protocols](https://reader035.vdocuments.site/reader035/viewer/2022062421/56649cf75503460f949c7343/html5/thumbnails/33.jpg)
33
SATA Device Command Layer Protocols
FPDMA Queued Protocol
• DFPDMAQ3: DataPhaseReadSetup– State entered when the device is
ready to transmit data from a previously queued READ FPDMA QUEUED command
– In this state, a Device will attempt to setup up a host memory write DMA connection with the Host
– Once the connection is established, a Device will transition to DFPDMAQ8
![Page 34: Improving Networks Worldwide. UNH InterOperability Lab SATA Chapters 11 and 12 Device Command Layer Protocols](https://reader035.vdocuments.site/reader035/viewer/2022062421/56649cf75503460f949c7343/html5/thumbnails/34.jpg)
34
SATA Device Command Layer Protocols
FPDMA Queued Protocol• DFPDMAQ4:
DataPhasePreWriteSetup– State entered when the device is
ready to receive data from a previously queued WRITE FPDMA QUEUED command
– In this state a Device needs to determine if Auto-Activate is supported an enabled • If yes, → DFPDMAQ5:
DataPhase_WriteSetup• Else → DFPDMAQ6:
DatePahse_OldWriteSetup
![Page 35: Improving Networks Worldwide. UNH InterOperability Lab SATA Chapters 11 and 12 Device Command Layer Protocols](https://reader035.vdocuments.site/reader035/viewer/2022062421/56649cf75503460f949c7343/html5/thumbnails/35.jpg)
35
SATA Device Command Layer Protocols
FPDMA Queued Protocol
• DFPDMAQ5: DataPhase_WriteSetup– This state is entered when a
Device is ready to Auto-Activate– A device transmits a DMA Setup
FIS to the host with a DMA buffer Id, the queued TAG value, the direction bit cleared (Host Memory Read), and the AA bit set to one
– Once Setup FIS is completed → DFPDMAQ9: DataXmitWrite
![Page 36: Improving Networks Worldwide. UNH InterOperability Lab SATA Chapters 11 and 12 Device Command Layer Protocols](https://reader035.vdocuments.site/reader035/viewer/2022062421/56649cf75503460f949c7343/html5/thumbnails/36.jpg)
36
SATA Device Command Layer Protocols
FPDMA Queued Protocol• DFPDMAQ6: DataPhase_OldWriteSetup– This state is entered when Auto-
Activate is not supported or enabled– A device transmits a DMA Setup FIS
to the host with a DMA buffer Id, the queued TAG value, the direction bit cleared (Host Memory Read), and the AA bit set to zero
– Once Setup FIS is completed → DFPDMAQ9: DataXmitWrite
![Page 37: Improving Networks Worldwide. UNH InterOperability Lab SATA Chapters 11 and 12 Device Command Layer Protocols](https://reader035.vdocuments.site/reader035/viewer/2022062421/56649cf75503460f949c7343/html5/thumbnails/37.jpg)
37
SATA Device Command Layer Protocols
FPDMA Queued Protocol• DFPDMAQ7: DataPhaseXmit_Activate
– This state is entered after a device completed setup for a WRITE DPDMA QUEUED command
– While in this state a Device transmits a DMA Activate FIS indicating its readiness to receive DATA FISes
– The device then transitions to DFPDMAQ9: DataXmitWrite
![Page 38: Improving Networks Worldwide. UNH InterOperability Lab SATA Chapters 11 and 12 Device Command Layer Protocols](https://reader035.vdocuments.site/reader035/viewer/2022062421/56649cf75503460f949c7343/html5/thumbnails/38.jpg)
38
SATA Device Command Layer Protocols
FPDMA Queued Protocol• DFPDMAQ8: DataXmitRead
– This state is entered after a device has completed setup for a READ FPDMA QUEUED command
– A device continues to transmit Data FISs until the command has been completed or an error has been encountered
– Device transitions to DI0: Device_idle upon completion
![Page 39: Improving Networks Worldwide. UNH InterOperability Lab SATA Chapters 11 and 12 Device Command Layer Protocols](https://reader035.vdocuments.site/reader035/viewer/2022062421/56649cf75503460f949c7343/html5/thumbnails/39.jpg)
39
SATA Device Command Layer Protocols
FPDMA Queued Protocol• DFPDMAQ9: DataXmitWrite
– This state is entered after a device has completed setup for a WRITE FPDMA QUEUED command
– A device continues to receive DATA FISes until the command has been completed or an error has been encountered
– Device transitions to DI0: Device_idle upon completetion
![Page 40: Improving Networks Worldwide. UNH InterOperability Lab SATA Chapters 11 and 12 Device Command Layer Protocols](https://reader035.vdocuments.site/reader035/viewer/2022062421/56649cf75503460f949c7343/html5/thumbnails/40.jpg)
40
SATA Device Command Layer Protocols
FPDMA Queued Protocol• DFPDMAQ10: SendStatus
– This state is entered after a device has completed the data transfer associated with a command
– In this state, a device will transmit a Set Device Bits FIS to the host indicating the completion of the command
– Following the transmission of this FIS, a device will transition to DI0: Device_idle
![Page 41: Improving Networks Worldwide. UNH InterOperability Lab SATA Chapters 11 and 12 Device Command Layer Protocols](https://reader035.vdocuments.site/reader035/viewer/2022062421/56649cf75503460f949c7343/html5/thumbnails/41.jpg)
41
SATA Device Command Layer Protocols
FPDMA Queued Protocol• DFPDMAQ11: Error
– This state is entered when a device has encountered an unrecoverable error
– When this state is entered, a device halts all transmissions and transmits a Set Device Bits FIS to the host indictating the error condition
– A device then transitions to DFPDMAQ13: WaitforClear
![Page 42: Improving Networks Worldwide. UNH InterOperability Lab SATA Chapters 11 and 12 Device Command Layer Protocols](https://reader035.vdocuments.site/reader035/viewer/2022062421/56649cf75503460f949c7343/html5/thumbnails/42.jpg)
42
SATA Device Command Layer Protocols
FPDMA Queued Protocol• DFPDMAQ12: BrokenHost_ClearBusy
– This state is entered when a device receives a READ or WRITE FPDMA QUEUED command with a tag that exists already in the queue or a non-queued command is received while there are still outstanding commands in the queue
– Upon entering this state, a device will transmit a Register FIS to the host indicating the error condition and then transition to DFPDMAQ13
![Page 43: Improving Networks Worldwide. UNH InterOperability Lab SATA Chapters 11 and 12 Device Command Layer Protocols](https://reader035.vdocuments.site/reader035/viewer/2022062421/56649cf75503460f949c7343/html5/thumbnails/43.jpg)
43
SATA Device Command Layer Protocols
FPDMA Queued Protocol• DFPDMAQ13: WaitforClear
– This state is entered when a device has transmitted an error FIS and is waiting for a READ LOG EXT command or a Soft-Reset
– All other commands will be responded to with an Error FIS
– When the READ LOG EXT command is received the device shall transition to DFPDMAQ12
![Page 44: Improving Networks Worldwide. UNH InterOperability Lab SATA Chapters 11 and 12 Device Command Layer Protocols](https://reader035.vdocuments.site/reader035/viewer/2022062421/56649cf75503460f949c7343/html5/thumbnails/44.jpg)
44
SATA Device Command Layer Protocols
FPDMA Queued Protocol• DFPDMAQ14: SendQueue_CleanACK
– This stae is entered when the Host has responseded to an error FIS with a READ LOG EXT command
– The Device will discard all queued commands remaining and transmit a Set Device Bits FIS with the ERR bit cleared, Error Field cleared, and Sactive = FFFFFFFFh and interup cleared
– Upon transmission of this FIS, the device shall transition to DPIOI0:PIO_in
![Page 45: Improving Networks Worldwide. UNH InterOperability Lab SATA Chapters 11 and 12 Device Command Layer Protocols](https://reader035.vdocuments.site/reader035/viewer/2022062421/56649cf75503460f949c7343/html5/thumbnails/45.jpg)
45
SATA Device Command Layer ProtocolsFPDMA Queued Protocol
(Hosts)• This state machine describes the
behavior for Native Command Queuing Hosts
• This class is largely similar to the behavior of the devices but also covers:
– TAG assignment – Error Recovery– Retrying Failed Commands
![Page 46: Improving Networks Worldwide. UNH InterOperability Lab SATA Chapters 11 and 12 Device Command Layer Protocols](https://reader035.vdocuments.site/reader035/viewer/2022062421/56649cf75503460f949c7343/html5/thumbnails/46.jpg)
46
SATA Device Command Layer Protocols
Presentation Topics
• Device Command Layer Protocol– Power-on and COMRESET– Device Idle– EXECUTE DEVICE DIAGNOSITC– DEVICE RESET– DMA data-in– FPDMA QUEUED (Host and Device)
• Other Command Layer Protocols
![Page 47: Improving Networks Worldwide. UNH InterOperability Lab SATA Chapters 11 and 12 Device Command Layer Protocols](https://reader035.vdocuments.site/reader035/viewer/2022062421/56649cf75503460f949c7343/html5/thumbnails/47.jpg)
47
SATA Device Command Layer Protocols
Software Reset Protocol
• This state machine covers how a device handles receiving a FIS with the SRST bit asserted
• Essentially the same as the DEVICE RESET Command Protocol
![Page 48: Improving Networks Worldwide. UNH InterOperability Lab SATA Chapters 11 and 12 Device Command Layer Protocols](https://reader035.vdocuments.site/reader035/viewer/2022062421/56649cf75503460f949c7343/html5/thumbnails/48.jpg)
48
SATA Device Command Layer Protocols
Non-Data Protocol
• This state machine describes how a device will handle receiving a non-data command FIS
• Commands include: FLUSH CACHE, IDLE, MEDIA LOCK, SEEK, NOP, and SET MULTIPLE MODE among others
![Page 49: Improving Networks Worldwide. UNH InterOperability Lab SATA Chapters 11 and 12 Device Command Layer Protocols](https://reader035.vdocuments.site/reader035/viewer/2022062421/56649cf75503460f949c7343/html5/thumbnails/49.jpg)
49
SATA Device Command Layer ProtocolsPIO Data-in and Data-out
Protocol• These two state machines describe how
commands will responds to PIO requests (Diagnostic and legacy commands from previous ATA standards)
• Commands include IDENTIFY DEVICE, READ SECTORS, SMART READ DATA, DOWNLOAD MICROCODE, and WRITE SECTORS among others
![Page 50: Improving Networks Worldwide. UNH InterOperability Lab SATA Chapters 11 and 12 Device Command Layer Protocols](https://reader035.vdocuments.site/reader035/viewer/2022062421/56649cf75503460f949c7343/html5/thumbnails/50.jpg)
50
SATA Device Command Layer Protocols
Packet Protocol
• This state machine describes how a device will handle receiving a packet based commands. Packet commands are used by Optical Disc Drives and other ATAPI device which do not utilize the traditional PIO and DMA interfaces defined with ATA