JESD220D
Contents
Foreword
Introduction
1 Scope
2 Normative Reference
3 Terms and Definitions
3.1 Acronyms
3.2 Conventions
3.3 Keywords
3.4 Abbreviations
4 Introduction
4.1 General Features
4.2 Interface Features
4.3 Functional Features
5 UFS Architecture Overview
5.1 UFS Top Level Architecture
5.2 UFS System Model
5.3 System Boot and Enumeration
5.4 UFS Interconnect (UIC) Layer
5.4.1 UFS Physical Layer Signals
5.4.2 MIPI UniPro
5.4.3 MIPI UniPro Related Attributes
5.5 UFS Transport Protocol (UTP) Layer
5.5.1 Architectural Model
5.5.1.1 Client-Server Model
5.5.1.2 CDB, Status, Task Management
5.5.1.3 Nexus
5.5.1.4 SCSI Command Model
5.5.1.5 SCSI Task Management Functions
5.6 UFS Application and Command Layer
5.7 Mechanical
6 UFS Electrical: Clock, Reset, Signals And Supplies
6.1 UFS Signals
6.2 Reset Signal
6.3 Power Supplies
6.4 Reference Clock
6.4.1 HS Gear Rates
6.4.2 Host Controller requirements for reference clock generation
6.5 External Charge Pump Capacitors (Optional)
6.6 Absolute Maximum DC Ratings and Operating Conditions
7 Reset, Power-Up And Power-Down
7.1 Reset
7.1.1 Power-on Reset
7.1.2 Hardware Reset
7.1.3 EndPointReset
7.1.4 Logical Unit Reset
7.1.5 Host UniPro Warm Reset
7.1.6 Summary of Resets and Device Behavior
7.2 Power up ramp
7.3 Power off ramp
7.4 UFS Device Power Modes and LU Power Condition
7.4.1 Device Power Modes
7.4.1.1 Active Power Mode
7.4.1.2 Idle Power Mode
7.4.1.3 Pre-Active Power Mode
7.4.1.4 UFS-Sleep Power Mode
7.4.1.5 Pre-Sleep Power Mode
7.4.1.6 UFS-PowerDown Power Mode
7.4.1.7 Pre-PowerDown Power Mode
7.4.1.8 Power Mode State Machine
7.4.1.8.1 Transitions from Powered On Power Mode
7.4.1.8.2 Transitions from Pre‐Active Power Mode
7.4.1.8.3 Transitions from Active Power Mode
7.4.1.8.4 Transitions from Idle Power Mode
7.4.1.8.5 Transitions from Pre‐Sleep Power Mode
7.4.1.8.6 Transitions from UFS‐Sleep Power Mode
7.4.1.8.7 Transitions from Pre‐PowerDown Power Mode
7.4.1.8.8 Transitions from UFS‐PowerDown Power Mode
7.4.1.8.9 SCSI command and UPIU transactions
7.4.1.9 Responses to SCSI commands
7.4.1.9 Responses to SCSI commands (cont’d)
7.4.2 Power Management Command: START STOP UNIT
7.4.3 Power Mode Control
7.4.4 Logical Unit Power Condition
8 UFS UIC Layer: MIPI M-PHY
8.1 Termination
8.2 Drive Levels
8.3 PHY State machine
8.4 HS Burst
8.4.1 HS Prepare Length Control
8.4.2 HS Sync Length Control
8.5 PWM Burst
8.5.1 LS Prepare Length Control
8.6 Adapt
8.7 UFS PHY Attributes
8.8 Electrical characteristics
8.8.1 Transmitter Characteristics
8.8.2 Receiver Characteristics
9 UFS UIC Layer: MIPI Unipro
9.1 Overview
9.2 Architectural Model
9.3 UniPro/UFS Transport Protocol Interface (Data Plane)
9.4 UniPro/UFS Control Interface (Control Plane)
9.5 UniPro/UFS Transport Protocol Address Mapping
9.6 Options and Tunable Parameters of UniPro
9.6.1 UniPro PHY Adapter
9.6.2 UniPro Data Link Layer
9.6.3 UniPro Network Layer
9.6.4 UniPro Transport Layer
9.6.5 UniPro Device Management Entity Transport Layer
9.6.6 UniPro Attributes
10 UFS Transport Protocol (UTP) Layer
10.1 Overview
10.2 UTP and UniPro Specific Overview
10.2.1 Phases
10.2.2 Data Pacing
10.2.3 UniPro
10.3 UFS Transport Protocol Transactions Overview
10.4 Service Delivery Subsystem
10.5 UPIU Transactions
10.6 General UFS Protocol Information Unit Format
10.6.1 Overview
10.6.2 Basic Header Format
10.7 UFS Protocol Information Units
10.7.1 COMMAND UPIU
10.7.1.1 Basic Header
10.7.1.1 Basic header (cont’d)
10.7.2 RESPONSE UPIU
10.7.2.1 Basic Header
10.7.3 DATA OUT UPIU
10.7.3.1 Basic Header
10.7.4 DATA IN UPIU
10.7.4.1 Basic Header
10.7.5 READY TO TRANSFER UPIU
10.7.5.1 Basic Header
10.7.6 TASK MANAGEMENT REQUEST UPIU
10.7.6.1 Basic Header
10.7.7 TASK MANAGEMENT RESPONSE UPIU
10.7.7.1 Basic Header
10.7.8 QUERY REQUEST UPIU
10.7.8.1 Overview
10.7.8.2 Query Function
10.7.8.3 Transaction Specific Fields
10.7.8.4 Read Descriptor Opcode
10.7.8.5 Write Descriptor Opcode
10.7.8.6 Read Attribute Opcode
10.7.8.7 Write Attribute Opcode
10.7.8.8 Read Flag Opcode
10.7.8.9 Set Flag
10.7.8.10 Clear Flag
10.7.8.11 Toggle Flag
10.7.8.12 NOP
10.7.9 QUERY RESPONSE UPIU
10.7.9.1 Overview
10.7.9.2 Query Function
10.7.9.3 Query Response
10.7.9.4 Device Information
10.7.9.5 Transaction Specific Fields
10.7.9.6 Read Descriptor Opcode
10.7.9.7 Write Descriptor Opcode
10.7.9.8 Read Attribute Opcode
10.7.9.9 Write Attribute Opcode
10.7.9.10 Read Flag Opcode
10.7.9.11 Set Flag
10.7.9.12 Clear Flag
10.7.9.13 Toggle Flag
10.7.9.14 NOP
10.7.10 REJECT UPIU
10.7.10.1 Basic Header
10.7.11 NOP OUT UPIU
10.7.11.1 Basic Header
10.7.12 NOP IN UPIU
10.7.12.1 Basic Header
10.7.13 Data out transfer rules
10.7.13.1 Implementation
10.8 Logical Units
10.8.1 UFS SCSI Domain
10.8.2 UFS Logical Unit Definition
10.8.3 Well Known Logical Unit Definition
10.8.4 Logical Unit Addressing
10.8.5 Well Known Logical Unit Defined in UFS
10.8.6 Translation of 8-bit UFS LUN to 64-bit SCSI LUN Address
10.8.7 SCSI Write Command
10.8.8 SCSI Read Command
10.8.9 Unit Attention Condition
10.9 Application Layer and Device Manager Transport Protocol Services
10.9.1 UFS Initiator Port and Target Port Attributes
10.9.2 Execute Command procedure call transport protocol services
10.9.3 SCSI Command transport protocol service
10.9.4 SCSI Command Received transport protocol
10.9.5 Send Command Complete transport protocol service
10.9.6 Command Complete Received transport protocol service
10.9.7 Data transfer SCSI transport protocol services
10.9.7.1 Send Data-In transport protocol service
10.9.7.2 Data-In Delivered transport protocol service
10.9.7.3 Receive Data-Out transport protocol service
10.9.7.4 Data-Out Received transport protocol service
10.9.8 Task Management Function procedure calls
10.9.8.1 ABORT TASK
10.9.8.2 ABORT TASK SET
10.9.8.3 CLEAR TASK SET
10.9.8.4 LOGICAL UNIT RESET
10.9.8.5 QUERY TASK
10.9.8.6 QUERY TASK SET
10.9.8.7 Task Management SCSI Transport Protocol Services
10.9.8.8 Send Task Management Request SCSI transport protocol service request
10.9.8.9 Task Management Request Received SCSI transport protocol service indication
10.9.8.10 Task Management Function Executed SCSI transport protocol service response
10.9.8.11 Received Task Management Function Executed SCSI transport protocol service confirmation
10.9.9 Query Function transport protocol services
10.9.9.1 Send Query Request UFS transport protocol service
10.9.9.2 Query Request Received UFS transport protocol service indication
10.9.9.3 Query Function Executed UFS transport protocol service response
10.9.9.4 Received Query Function Executed UFS transport protocol service confirmation
11 UFS Application (UAP) Layer – SCSI Commands
11.1 Universal Flash Storage Command Layer (UCL) Introduction
11.1.1 The Command Descriptor Block (CDB)
11.2 Universal Flash Storage Native Commands (UNC)
11.3 Universal Flash Storage SCSI Commands
11.3.1 General information about SCSI commands in UFS
11.3.2 INQUIRY Command
11.3.2.1 VITAL PRODUCT DATA
11.3.2.2 STANDARD INQUIRY DATA
11.3.2.3 Inquiry Command Data Response
11.3.2.4 Inquiry Response Data
11.3.2.5 Inquiry Command Status Response
11.3.3 MODE SELECT (10) Command
11.3.3.1 Mode Select Command Parameters
11.3.3.2 Mode Select Command Data Transfer
11.3.3.3 Mode Select Command Status Response
11.3.4 MODE SENSE (10) Command
11.3.4.1 Mode Sense Command Parameters
11.3.4.2 Page Control Function
11.3.4.3 Mode Sense Command Data Transfer
11.3.4.4 Mode Sense Command Status Response
11.3.5 READ (6) Command
11.3.5.1 Read (6) Command Parameters
11.3.5.2 Read (6) Command Data Transfer
11.3.5.3 Read (6) Command Status Response
11.3.6 READ (10) Command
11.3.6.1 Read (10) Command Parameters
11.3.6.2 Read (10) Command Data Transfer
11.3.6.3 Read (10) Command Status Response
11.3.7 READ (16) Command
11.3.7.1 Read (16) Command Parameters
11.3.7.2 Read (16) Command Data Transfer
11.3.7.3 Read (16) Command Status Response
11.3.8 READ CAPACITY (10) Command
11.3.8.1 Read Capacity (10) Data Response
11.3.8.2 Read Capacity (10) Parameter Data
11.3.8.3 Read Capacity (10) Status Response
11.3.9 READ CAPACITY (16) Command
11.3.9.1 Read Capacity (16) Data Response
11.3.9.2 Read Capacity (16) Parameter Data
11.3.9.3 Read Capacity (16) Status Response
11.3.10 START STOP UNIT Command
11.3.10.1 START STOP UNIT Parameters
11.3.10.2 Start Stop Unit Data Response
11.3.10.3 Start Stop Unit Status Response
11.3.11 TEST UNIT READY Command
11.3.11.1 Test Unit Ready Data Response
11.3.11.2 Test Unit Ready Status Response
11.3.12 REPORT LUNS Command
11.3.12.1 Report LUNS Command Parameters
11.3.12.2 Report LUNS Command Select Report Field Values
11.3.12.3 Report LUNS Data Response
11.3.12.4 Report LUNS Parameter Data Format
11.3.12.5 Report LUNS LUN Addressing Formats
11.3.12.6 Report LUNS Status Response
11.3.12.7 UFS LUN Format
11.3.13 VERIFY (10) Command
11.3.13.1 Verify Command Parameters
11.3.13.2 Verify Command Data Transfer
11.3.13.3 Verify Command Status Response
11.3.14 WRITE (6) Command
11.3.14.1 Write (6) Command Parameters
11.3.14.2 Write (6) Command Data Transfer
11.3.14.3 Write (6) Command Status Response
11.3.15 WRITE (10) Command
11.3.15.1 Write (10) Command Parameters
11.3.15.2 Write(10) Command Data Transfer
11.3.15.3 Write (10) Command Status Response
11.3.16 WRITE (16) Command
11.3.16.1 Write (16) Command Parameters
11.3.16.2 Write (16) Command Data Transfer
11.3.16.3 Write (16) Command Status Response
11.3.17 REQUEST SENSE Command
11.3.17.1 Request Sense Data Response
11.3.17.2 Sense Data
11.3.17.3 Sense Key
11.3.17.4 Request Sense Status Response
11.3.18 FORMAT UNIT Command
11.3.18.1 Format Unit Command Parameters
11.3.18.2 Format Unit Command Data Transfer
11.3.18.3 Format Unit Command Status Response
11.3.19 PRE-FETCH (10) Command
11.3.19.1 PRE-FETCH (10) Command Parameters
11.3.19.2 PRE-FETCH Command Data Transfer
11.3.19.3 PRE-FETCH Command Status Response
11.3.20 PRE-FETCH (16) Command
11.3.21 SECURITY PROTOCOL IN Command
11.3.21.1 SECURITY PROTOCOL IN Command Parameter
11.3.21.2 SECURITY PROTOCOL IN Command Data Transfer
11.3.21.3 SECURITY PROTOCOL IN Command Status Response
11.3.22 SECURITY PROTOCOL OUT Command
11.3.22.1 SECURITY PROTOCOL OUT Command Parameter
11.3.22.2 SECURITY PROTOCOL OUT Command Data Transfer
11.3.22.3 SECURITY PROTOCOL OUT Command Status Response
11.3.23 SEND DIAGNOSTIC Command
11.3.23.1 Send Diagnostic Parameters
11.3.23.2 Send Diagnostic Command Data Transfer
11.3.23.3 Send Diagnostic Command Status Response
11.3.24 SYNCHRONIZE CACHE (10) Command
11.3.24.1 Synchronize Cache Command Parameters
11.3.24.2 Synchronize Cache Command Data Transfer
11.3.24.3 Synchronize Cache Command Status Response
11.3.25 SYNCHRONIZE CACHE (16) Command
11.3.26 UNMAP Command
11.3.26.1 UNMAP parameter list
11.3.26.2 UNMAP block descriptor
11.3.26.3 UNMAP parameter list transfer
11.3.26.4 UNMAP Command Status Response
11.3.27 READ BUFFER Command
11.3.27.1 Read Buffer Command MODE Field Values
11.3.27.2 Data Mode (MODE = 02h)
11.3.27.3 Error History Mode (MODE = 1Ch)
11.3.27.3.1 Error History Directory
11.3.27.3.2 Retrieving error history with the READ BUFFER command
11.3.27.4 Read Buffer Command Status Response
11.3.28 WRITE BUFFER Command
11.3.28.1 Write Buffer Command Parameters
11.3.28.2 Write Buffer Command Mode Field Values
11.3.28.3 Write Buffer Command Data Transfer
11.3.28.4 Write Buffer Command Status Response
11.4 Mode Pages
11.4.1 Mode Page Overview
11.4.1.1 Mode Page/Subpage Codes
11.4.1.2 Mode parameter list format
11.4.1.3 Mode Parameter Header
11.4.1.4 Mode Parameter Header Detail
11.4.1.5 Page_0 mode page format
11.4.1.6 Sub_page mode page format
11.4.2 UFS Supported Pages
11.4.2.1 Control Mode Page
11.4.2.2 Read-Write Error Recovery Mode Page
11.4.2.3 Caching Mode Page
11.5 Vital product data parameters
11.5.1 Overview
11.5.2 VPD page format
11.5.3 Supported VPD Pages VPD page
11.5.4 Mode Page Policy VPD page
12 UFS Security
12.1 UFS Security Feature Support Requirements
12.2 Secure Mode
12.2.1 Description
12.2.2 Requirements
12.2.2.1 Secure Removal
12.2.2.2 Erase Operation
12.2.2.3 Discard Operation
12.2.2.4 Purge Operation
12.2.3 Implementation
12.2.3.1 Erase
12.2.3.2 Discard
12.2.3.3 Purge operation
12.2.3.4 Wipe Device
12.2.3.5 bProvisioningType Parameter
12.2.3.6 bSecureRemovalType Parameter
12.3 Device Data Protection
12.3.1 Description and Requirements
12.3.2 Implementation
12.4 RPMB
12.4.1 Introduction
12.4.2 RPMB Well Known Logical Unit Description
12.4.3 Requirements
12.4.3.1 RPMB Resources
12.4.3.2 Algorithm and Key for MAC Calculation
12.4.3.3 RPMB Message Components
12.4.3.4 Request Message Types
12.4.3.5 Response Message Types
12.4.3.6 RPMB Operation Result
12.4.4 Implementation
12.4.4.1 RPMB Message
12.4.4.2 MAC Calculation
12.4.4.3 RPMB Message Data Frame Delivery
12.4.5 SECURITY PROTOCOL IN/OUT Commands
12.4.5.1 CDB format of SECURITY PROTOCOL IN/OUT commands
12.4.5.2 Supported security protocols list description
12.4.5.3 Certificate data description
12.4.6 RPMB Operations
12.4.6.1 Request Type Message Delivery
12.4.6.2 Response Type Message Delivery
12.4.6.3 Authentication Key Programming
12.4.6.4 Read Counter Value
12.4.6.5 Authenticated Data Write
12.4.6.6 Authenticated Data Read
12.4.6.7 Authenticated Secure Write Protect Configuration Block Write
12.4.6.8 Authenticated Secure Write Protect Configuration Block Read
12.5 Malware Protection
13 UFS Functional Descriptions
13.1 UFS Boot
13.1.1 Introduction
13.1.2 Boot Configuration
13.1.3 Initialization and boot code download process
13.1.3.1 Partial initialization
13.1.3.2 Boot transfer
13.1.3.3 Initialization completion
13.1.4 Initialization process without boot code download
13.1.5 Boot Logical Unit Operations
13.1.6 Configurability
13.1.7 Security
13.1.7.1 Boot Area Protection
13.2 Logical Unit Management
13.2.1 Introduction
13.2.2 Logical Unit features
13.2.3 Logical Unit Configuration
13.3 Logical Block Provisioning
13.3.1 Overview
13.3.2 Full Provisioning
13.3.3 Thin Provisioning
13.4 Host Device Interaction
13.4.1 Overview
13.4.2 Applicable Devices
13.4.3 Command Queue: Inter-LU Priority
13.4.3.1 Implementation
13.4.4 Background Operations Mode
13.4.4.1 Introduction
13.4.4.2 Purpose
13.4.4.3 Background Operations Status
13.4.4.4 Operation Initiation
13.4.4.5 Power Failure
13.4.4.6 Implementation
13.4.4.6.1 Background Operations Enable
13.4.4.6.2 Background Operations Status
13.4.4.6.3 Background Operations Termination Latency
13.4.5 Power Off Notification
13.4.6 Dynamic Device Capacity
13.4.6.1 Implementation
13.4.6.1.1 Initial Device Requirements
13.4.6.1.2 Dynamic Capacity Procedural Flow
13.4.6.1.3 Dynamic Device Capacity Notification
13.4.6.1.4 Error handling
13.4.6.1.5 Physical Memory Resource State Machine
13.4.7 Data Reliability
13.4.7.1 Description
13.4.7.2 Implementation
13.4.8 Real-Time Clock Information
13.4.9 Context Management
13.4.9.1 Context configuration
13.4.9.2 Activation and direction mode
13.4.9.3 Large-Unit mode
13.4.9.4 Reliability mode
13.4.9.5 Large-Unit Multiplier
13.4.10 System Data Tag Mechanism
13.4.11 Exception Events Mechanism
13.4.12 Queue Depth Definition
13.4.12.1 Shared Queue
13.4.12.2 Per-Logical Unit Queues
13.4.12.3 RPMB Well Known Logical Unit Queue
13.4.13 Device Life Span Mode
13.4.13.1 Implementation
13.4.14 Refresh Operation
13.4.14.1 Configuration
13.4.14.1.1 Refresh Method
13.4.14.1.2 Refresh Unit
13.4.14.1.3 Refresh Frequency
13.4.14.2 Initiation and Interruption
13.4.14.3 Progress Management
13.4.15 Temperature Event Notification
13.5 UFS Cache
13.6 Production State Awareness (PSA)
13.6.1 Introduction
13.6.2 PSA flow
14 UFS Descriptors, Flags And Attributes
14.1 UFS Descriptors
14.1.1 Descriptor Types
14.1.2 Descriptor Indexing
14.1.3 Accessing Descriptors and Device Configuration
14.1.3.1 Read Descriptor
14.1.3.2 Write Descriptor
14.1.4 Descriptor Definitions
14.1.4.1 Generic Descriptor Format
14.1.4.2 Device Descriptor
14.1.4.3 Configuration Descriptor
14.1.4.4 Geometry Descriptor
14.1.4.5 Unit Descriptor
14.1.4.6 RPMB Unit Descriptor
14.1.4.7 Power Parameters Descriptor
14.1.4.8 Interconnect Descriptor
14.1.4.9 Manufacturer Name String Descriptor
14.1.4.10 Product Name String Descriptor
14.1.4.11 OEM ID String Descriptor
14.1.4.12 Serial Number String Descriptor
14.1.4.13 Product Revision Level String Descriptor
14.1.4.14 Device Health Descriptor
14.2 Flags
14.3 Attributes
15 UFS Mechanical Standard
Annex A (informtive) Dynamic Capacity Host Implementation Example
A.1 Overview
A.2 Method Outline
Annex B (informative) Differences Between Specification Revisions
B.1 Changes between JESD220D and its predecessor JESD220C (March 2016)
B.1.1 New features or new definitions
B.1.2 Changes in section 2 “Normative Reference”
B.1.3 Changes in features already defined in UFS 2.1
B.2 Changes between JESD220C and its predecessor JESD220B (September 2013)
B.2.1 New features or new definitions
B.2.2 Changes in section 2 “Normative Reference”
B.2.3 Changes in features already defined in UFS 2.0
B.3 Changes between JESD220B and its predecessor JESD220A (June 2012)
B.3.1 New features or new definitions
B.3.2 Changes in section 2 “Normative Reference”
B.3.3 Changes in features already defined in UFS 1.1
Standard Improvement Form