Eetop - CN DWC MSHC Databook
Eetop - CN DWC MSHC Databook
Controller
DWC_mshc / DWC_mshc_lite
Databook
DWC_mshc – Product Code: A555-0
DWC_mshc_lite – Product Code: B143-0
Version 1.90a
March 2021
Mobile Storage Host Controller Databook
Synopsys, Inc.
www.synopsys.com
Contents
Revision History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Preface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Product Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Databook Organization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Related Product Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Web Resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Synopsys Statement on Inclusivity and Diversity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Customer Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Chapter 1
Product Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
1.1 General Product Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
1.2 System-Level Block Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
1.3 Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
1.4 Supported Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
1.4.1 General Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
1.4.2 Supported Features for Interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
1.5 Unsupported Features and Exceptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
1.6 Standards Compliance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
1.6.1 Memory Capacities Supported by the SD Standard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
1.7 Deliverables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
1.8 Interoperability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
1.9 Speed and Clock Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
1.10 Compliance with Quality Metrics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
1.10.1 Coding and Design Guidelines and Exceptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
1.10.2 Testing and Development Process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
1.11 Hardware and Software Partition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
Chapter 2
Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.1 Overview of Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
2.2 Device and Card Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
2.2.1 Overview of the Device and Card Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
2.2.2 Configuring the Device and Card Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
2.2.3 SD/UHS-II Register Optimization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
2.2.4 SD Card Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
2.2.5 UHS-II Card Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
2.2.6 eMMC Card Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
Chapter 3
Parameter Descriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
Chapter 4
Signal Descriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
Chapter 5
Register Descriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217
Appendix A
Protocol Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 563
A.1 Signals Between Host and Device . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 564
A.2 Bus Topology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 565
A.3 Bus Protocol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 567
A.3.1 SD Bus Protocol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 567
A.3.2 UHS-II Bus Protocol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 567
A.3.3 eMMC Bus Protocol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 573
A.4 Range Definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 574
A.5 Transaction Layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 574
A.6 Control and Data Transaction Sequence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 578
A.7 UHS-II Interface Selection Process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 579
A.8 Application Layer Data Flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 580
A.8.1 ADMA2 Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 581
A.8.2 ADMA3 Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 582
A.8.3 Command Queueing Task Descriptor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 585
A.8.4 eMMC Data Structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 586
A.9 SDIO Read Wait . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 592
A.10 SDIO Card Interrupt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 592
Appendix B
Synchronizer and Technology Specific Cells . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 595
B.1 Synchronizers Used in DWC_mshc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 596
B.1.1 Synchronizer 1: Simple Double Register Synchronizer (DWC_mshc_bcm21.v) . . . . . . . . . . . . . . 596
B.1.2 Synchronizer 2: Pulse Synchronizer (DWC_mshc_bcm22.v) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 600
B.1.3 Synchronizer 3: Simple Multiple Register Synchronizer with Configurable Polarity Reset . . . . . 601
B.1.4 Synchronizer 4: Dual Independent clock FIFO (DWC_mshc_bcm74.v) . . . . . . . . . . . . . . . . . . . . . 601
B.1.5 Synchronizer 5: Pulse Synchronizer with Acknowledge (DWC_mshc_bcm23.v) . . . . . . . . . . . . . 602
B.2 Technology-Specific Cells in DWC_mshc DWC_mshc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 603
B.2.1 The DWC_mshc_clk_mux_2x1.v Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 603
B.2.2 The DWC_mshc_ddr_mux_2x1.v Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 604
B.2.3 The DWC_mshc_clk_gate.v Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 604
B.2.4 The DWC_mshc_clkgate_cell.v Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 605
B.2.5 The DWC_mshc_bcm21.v Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 606
B.2.6 The DWC_mshc_ddr_mux_sel Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 607
Appendix C
Power Consumption and Area . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 609
C.1 Clock Gating Types Used for Generating Power and Area Numbers for Non-AXI Configuration (AHB
Master and AHB slave port) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 611
C.2 Technology Libraries Used to Generate Power and Area Numbers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 611
C.2.1 Power and Area for an SD Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 611
C.2.2 Power and Area for a UHS-II Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 614
C.2.3 Power and Area for an eMMC Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 617
C.2.4 Maximum Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 620
C.2.5 Area in Slave-Only Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 621
C.2.6 Area and Power With Context Sensitive Clock Gates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 622
C.2.7 Area Savings Without ADMA3 Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 622
C.2.8 Area Savings While Using Optimized Clocking Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 622
C.3 Design for Testability for Controller . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 623
Appendix D
Clock and Data Crossing (CDC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 625
D.1 DWC_mshc Clocks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 625
D.2 Metastability Simulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 625
D.3 Asynchronous Input Signals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 626
D.4 Naming Convention Used for CDC Signals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 626
D.5 Naming Convention Used for Synchronizer (BCM) Instances . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 627
D.5.1 Context-Sensitive Clock Gating . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 629
D.5.2 Optimized Clocking Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 630
Appendix E
Clock Domain for Individual Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 631
Appendix F
Frequently Asked Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 637
Appendix G . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Standard Terms and Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 641
Chapter H
Internal Parameter Descriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 643
Revision History
- Added registers:
- AT_CTRL_R
- AT_STAT_R
- MSHC_CTRL_R
- Terms BSYN and LSS in Appendix G, “Standard Terms and
Definitions”
■ Moved:
- The “Power Consumption and Area” section to Appendix C,
“Power Consumption and Area”
- The “Internal Parameter Descriptions” chapter to Appendix H,
“Internal Parameter Descriptions”
■ Updated:
- Auto-extracted chapters
- Signals:
- tuning_cclk_sel
- tuning_cclk_sel_update
- SD Part 1 Physical Layer Specification in “Standards
Compliance” on page 24
- “Frequently Asked Questions” on page 651
February 2016 1.40a ■ Added “System Bus Master Interface Overview” on page 49 to
explain support for AHB Master Bus interface
■ Updated following sections to include AHB master interface:
- “DWC_mshc supports the following interfaces:” on page 20
- “Standards Compliance” on page 24
- “Following are various modules in the Mobile Storage Host
Controller:” on page 32
■ Restructured tables for power and area in “Compliance with Quality
Metrics” on page 27
■ Created table for error type and categories in “SD/eMMC Mode” on
page 94 and “UHS-II Mode” on page 95
■ Added AHB Master Bus interface parameter in “Parameter
Descriptions” on page 99
■ Added AHB Master Bus interface signals in Chapter 4, “Signal
Descriptions”
■ Updated “Supported Features” on page 22 to include support for
slave-only mode configuration
■ Included Overview section in Chapter 5, “Register Descriptions”
■ Added “Configuration Options” on page 496 to explain the slave-
only mode of operation of DWC_mshc.
■ Added Appendix D, “Clock and Data Crossing (CDC)”.
■ Updated the “Standards Compliance” on page 24 section to
mention compliance with SD 5.0 and AMBA 2 AHB for Master port
specifications.
October 2015 1.30a ■ Updated “Supported Features” on page 22 to include support for
SDIO protocol, and AXI 64-bit data and address width.
■ Updated “Unsupported Features and Exceptions” on page 23,
“Standards Compliance” on page 24, “Speed and Clock
Requirements” on page 26
■ Updated power numbers in “Technology Libraries Used to
Generate Power and Area Numbers” on page 625 and added
following sections:
- “Default Configuration When AXI Data Width = 32 and AXI
Address Width = 32”
- “Default Configuration When AXI Data Width = 64 and AXI
Address Width = 32”
- “Default Configuration When AXI Data Width = 64 and AXI
Address Width = 64”
■ Updated area numbers in “Area” and modified Table 1-21 on page
30 and Table 1-22
■ Updated “Following are various modules in the Mobile Storage
Host Controller:” on page 32 to include support for AXI 64-bit data
bus width.
■ Added sections “” on page 37, “AHB Slave Interface” on page 48
and “AXI Master Interface” on page 40
■ Added section “Packet Buffer Size Calculation” on page 493
■ Reorganized “UHS-II Bus Protocol” on page 581
■ Added “eMMC Bus Protocol” on page 587
■ Modified “ADMA2 Operation” on page 595 and “ADMA3 Operation”
on page 596
■ Added “Command Queueing Task Descriptor” on page 599
■ Added “eMMC Data Structures” on page 600
■ Added “SDIO Read Wait” on page 606 and “SDIO Card Interrupt”
on page 606
■ Updated description for DWC_MSHC_PKT_BUFFER_DEPTH in
“Parameter Descriptions” on page 99
■ Updated description for signals hsize[2:0], htrans[1:0], and
hresp[1:0]
■ Modifications in “Register Descriptions” on page 209:
- Added the MSHC_VER_TYPE_R register
- Updated description for the MSHC_VER_ID_R.MSHC_VER_ID
bit
- Included SDIO-related note in description for
XFER_MODE_R.AUTO_CMD_ENABLE bit
- Changed “GP_IN” to “GP_OUT” for GP_OUT_R register
■ Updated “Standard Terms and Definitions” on page 655 to include
additional terms
Preface
This databook provides the general product description, system level overview and application level usage
model for the Synopsys DesignWare® Cores Mobile Storage Host Controller (DWC_mshc). The terms
“DWC_mshc”, "DWC_mshc_lite" and “hardware” all refer to the Mobile Storage Host Controller product.
The terms “system bus” and “SoC bus” are used interchangeably.
For more details on usage of the DWC_mshc/DWC_mshc_lite, refer to the DesignWare Cores Mobile Storage
Host Controller User Guide.
The DWC_mshc and DWC_mshc_lite products support features listed in “General Features”
Note on page 22, except that the Command Queuing Engine (CQE) features are applicable only to
the DWC_mshc product.
For information on licensing requirements for DWC_mshc and DWC_mshc_lite products, see
DesignWare Cores DWC_mshc Installation Guide.
Product Description
This document describes the Synopsys DesignWare Cores Mobile Storage Host Controller Core, known as
DWC_mshc/DWC_mshc_lite. It is a highly configurable and programmable high performance mobile
storage host controller with AXI/AHB as the bus interface for data transfer.
DesignWare DWC_mshc/DWC_mshc_lite core corresponds to DWC_mshc/DWC_mshc_lite in the
SolvNet database.
Databook Organization
The chapters of this databook are organized as follows:
■ Chapter 1, “Product Overview” introduces the DWC_mshc features, supported standards, and
architecture.
■ Chapter 2, “Architecture” provides an overview of the functionality of DWC_mshc.
■ Chapter 3, “Parameter Descriptions” describes the DWC_mshc configuration options and parameters
■ Chapter 4, “Signal Descriptions”describes the DWC_mshc top-level signals.
■ Chapter 5, “Register Descriptions”, provides a memory map of DWC_mshc and the descriptions of
the programmable software registers.
■ Appendix A, “Protocol Overview”, provides an overview of protocols that are supported in the SD
and UHS-II mode of operations in DWC_mshc.
■ Appendix B, “Synchronizer and Technology Specific Cells”, documents the synchronizer methods
(blocks of synchronizer functionality) used in DWC_mshc to cross clock boundaries.
■ Appendix C, “Power Consumption and Area”discusses the power consumption and area for various
configurations of DWC_mshc
■ Appendix D, “Clock and Data Crossing (CDC)”, provides information about clocks and metastability
simulation in DWC_mshc.
■ Appendix H, “Internal Parameter Descriptions”, provides a list of internal parameter descriptions
that might be indirectly referenced in expressions in the Signals, Parameters, or Registers chapters.
■ Appendix F, “Frequently Asked Questions”, provides answers to frequency asked questions while
configuring DWC_mshc.
■ Appendix G, “Standard Terms and Definitions”, defines standard terms used in DWC_mshc
documentation.
Web Resources
■ DesignWare IP product information: http://www.designware.com
■ Your custom DesignWare IP page: http://www.mydesignware.com
■ Documentation through SolvNet: http://solvnet.synopsys.com (Synopsys password required)
Customer Support
To obtain support for your product, prepare the required files and contact the support center using one of
the methods described:
■ Prepare the following debug information, if applicable:
❑ For environment set-up problems or failures with configuration, simulation, or synthesis that
occur within coreConsultant or coreAssembler, select the following menu:
File > Build Debug Tar-file
Check all the boxes in the dialog box that apply to your issue. This option gathers all the
Synopsys product data needed to begin debugging an issue and writes it to the
<core tool startup directory>/debug.tar.gz file.
❑ For simulation issues outside of coreConsultant or coreAssembler:
■ Create a waveforms file (such as VPD or VCD).
■ Identify the hierarchy path to the DesignWare instance.
■ Identify the timestamp of any signals or locations in the waveforms that are not understood.
■ For the fastest response, enter a case through SolvNetPlus:
a. https://solvnetplus.synopsys.com
SolvNetPlus does not support Internet Explorer. Use a supported browser such
Note as Microsoft Edge, Google Chrome, Mozilla Firefox, or Apple Safari.
b. Click the Cases menu and then click Create a New Case (below the list of cases).
c. Complete the mandatory fields that are marked with an asterisk and click Save.
Make sure to include the following:
■ Product L1: DesignWare Cores
■ Product L2: Mobile Storage
■ Product L3: DWC_mshc /DWC_mshc_lite
d. After creating the case, attach any debug files you created.
For more information about general usage information, refer to the following article in SolvNetPlus:
https://solvnetplus.synopsys.com/s/article/SolvNetPlus-Usage-Help-Resources
■ Or, send an e-mail message to [email protected] (your email will be queued and then,
on a first-come, first-served basis, manually routed to the correct support engineer):
■ Include the Product L1 and Product L2 names, and Version number in your e-mail so it can be
routed correctly.
■ For simulation issues, include the timestamp of any signals or locations in waveforms that are
not understood
■ Attach any debug files you created.
■ Or, telephone your local support center:
■ North America:
Call 1-800-245-8005 from 7 AM to 5:30 PM Pacific time, Monday through Friday.
■ All other countries:
https://www.synopsys.com/support/global-support-centers.html
1
Product Overview
The DWC_mshc and DWC_mshc_lite products support features listed in “General Features”
Note on page 22, except that the Command Queuing Engine (CQE) features are applicable only to
the DWC_mshc product.
For information on licensing requirements for DWC_mshc and DWC_mshc_lite products, see
DesignWare Cores DWC_mshc Installation Guide.
This chapter provides a general description of the DesignWare DWC_mshc solution and includes the
following topics:
■ “General Product Description” on page 18
■ “System-Level Block Diagram” on page 20
■ “Applications” on page 21
■ “Supported Features” on page 22
■ “Unsupported Features and Exceptions” on page 24
■ “Standards Compliance” on page 25
■ “Deliverables” on page 27
■ “Interoperability” on page 27
■ “Speed and Clock Requirements” on page 27
■ “Compliance with Quality Metrics” on page 28
■ “Hardware and Software Partition” on page 28
DWC_mshc provides a flexible bus interface that enables you to integrate DWC_mshc into embedded
applications for system-on-a-chip (SoC) designs. DWC_mshc has an AXI and AHB master interface that
supports 32-bit and 64-bit address and data bus. Besides supporting non-DMA mode, DWC_mshc supports
various DMA options such as SDMA, ADMA2, and ADMA3 as specified in the SD Host Controller
Standard.
Based on the chosen configuration, DWC_mshc can have one of the following interface modes as shown in
Figure 1-1.
AXI/AHB Master
AXI/AHB Master
AHB Slave
AHB Slave
Controller Controller
SD/UHS-I/eMMC
SD/UHS-I/eMMC
UHS-II
Table 1-1 lists various modes supported in DWC_mshc.
Mode Usage
SD Mode Supports SD, SDIO, and UHS-I modes but does not support UHS-II mode.
System CPU
SD/UHS-I/eMMC
Line Drivers
System Memory
Controller
UHS-II PHY
Application Processor
SPRAM
The SD/eMMC interface is used to connect the SD/eMMC bus of the SD card. It consists of
command and data signals. SD supports a 4-bit interface and eMMC supports a 4-bit/8-bit interface.
■ UHS-II Link-PHY interface
The UHS-II Link-PHY interface is used to connect host controller to UHS-II PHY. It supports full
duplex and half-duplex modes. This interface is compliant with PHY-LINK I/F defined in Appendix
F of the UHS-II Addendum Version 1.01 specification.
1.3 Applications
DWC_mshc primarily targets host-controller and card-reader applications. In such instances, the device
memory card to which the DWC_mshc sends or receives data is typically a device for FLASH mass storage.
The DWC_mshc is optimized for the following applications and systems:
■ Portable electronic devices
■ High-speed storage applications
Specifically, DWC_mshc is targeted at these devices:
■ Mobile phones and laptops
■ Digital cameras and camcorders
■ Printer devices
■ Embedded applications
1.7 Deliverables
DWC_mshc provides the following deliverables:
■ DWC_mshc Verilog RTL source code
■ coreConsultant tool for configuration, simulation, and synthesis
■ Test bench based on System Verilog UVM (SV-UVM)
1.8 Interoperability
The test bench packaged with the DWC_mshc is tested to work only with the Synopsys VCS simulator.
Standard SD HCI
SD HCI Driver
Driver
Controller SP RAM
Hardware
SD/UHS-I/
eMMC UHS-II PHY
Line drivers
2
Architecture
This chapter describes the functional details of the DWC_mshc component. It also provides an overview of
the protocols used for the SD, eMMC, and UHS-II modes of operation and discusses standards complied by
these modes of operation.
This chapter includes the following topics:
■ “Overview of Architecture” on page 30
■ “Device and Card Interface” on page 32
■ “Master Bus Interface” on page 46
■ “AHB Slave Bus Interface” on page 54
■ “Low-Speed SDR Support without PHY” on page 56
■ “JTAG Interface” on page 57
■ “DMA vs Slave Mode of Data Transfer” on page 65
■ “DMA Engine” on page 66
■ “SRAM Controller” on page 69
■ “Data Flow for Card Read in DWC_mshc” on page 71
■ “Tuning in DWC_mshc” on page 72
■ “Memory” on page 93
■ “Interrupts” on page 95
■ “Error Detection” on page 96
■ “DFT Features for Synopsys SD/eMMC PHY Production Tests” on page 98
■ “Debug User Sideband Signals” on page 101
AXI/AHB Master
Bus Interface Unit DMA Engine SD/UHS-I/
AXI/AHB
eMMC Unit SD/UHS-I/eMMC Interface
(TLU)
CQE
Host
Controller
Registers FIFO
UHS-II
Controller
MUX Unit UHS-II PHY-Link Interface
JTAG JTAG Interface (TLU)
SPRAM Interface
Following are the various modules in the Mobile Storage Host Controller:
■ The Master Bus Interface Unit (MBIU)
This Master Bus Interface Unit (MBIU) implements the logic to transfer data on the AMBA Extensible
Interface Bus (AXI)/AMBA High-Performance (AHB) bus. The AXI/AHB interface transfers data to
and from the system memory through the AXI/AHB master bus interface, respectively.
■ The AHB Slave Bus Interface (SBI) module
The AHB slave bus interface (SBI) module implements the logic to primarily access the DWC_mshc
registers by using an external AMBA high-performance (AHB) bus. This module supports only the
little endian scheme for register accesses.
■ The JTAG Interface
The JTAG interface is used for programming MSHC registers in test mode only. In test mode, AHB
slave I/F is disabled and never used where the JTAG interface is used to access MSHC registers. It
follows indirect addressing scheme to access MSHC registers. AHB’s hclk input should be
synchronous (driven by same source) to tck when in testmode and hclk should remain active when
accessing JTAG interface. However, MSHC’s registers are distributed across multiple clock domains,
and hence the respective clocks for these domains must be active when accessing registers.
■ DMA Engine
The DMA Engine unit handles data transfer between DWC_mshc and system memory
■ Host Controller Registers
❑ The host controller register unit comprises of the standard SD host controller registers as
specified in the SD Specifications Part A2 SD Host Controller Standard Specification Version
4.20a.It also includes Command Queuing registers compliance to JEDEC eMMC 5.1 HCI
specification.
❑ These registers are implemented in three clock domains namely, AXI master bus interface clock
(aclk, if AXI master interface is chosen in the configuration, else the AHB clk is used as the master
interface), AHB slave bus interface clock (hclk), and controller base clock (bclk). The non-transfer
related registers are implemented in the AHB slave clock domain, so that the controller base clock
can be gated for power savings.
■ SRAM Controller (Packet buffer interface)
The SRAM controller interfaces the packet buffer of the host and the transaction controller units (SD
and UHS-II).
■ SD/UHS-I/eMMC Unit
SD/UHS-I/eMMC unit manages the SD/eMMC interface protocols
■ UHS-II Unit
UHS-II unit consists of the following sub-units:
❑ UHS-II Transaction Controller Unit
❑ UHS-II Link Controller Unit
For more information, see “UHS-II Card Interface” on page 33.
■ Command Queuing Engine (CQE)
This module implements command queuing and includes the following:
❑ Task scheduler with the ability to prioritize execution of tasks
❑ Control logic for descriptor fetch
❑ Control and sequence task submission and execution
❑ Status polling
❑ Timers and counter dedicated for CQE operation
■ Interrupt coalescing logic
UHS-II link controller unit is responsible for the link layer protocol as specified in the UHS-II
Addendum Version 1.01 specification. The key features of this unit are as follows.
❑ PHY Initialization
❑ Data Integrity
■ Packet framing with Start of Packet (SOP) and End of Packet (EOP)
■ Burst Framing with Start of Data Burst (SDB) and End of Data Burst (EDB)
■ CRC generation and checking
❑ Flow Control
■ Fixed window flow control for only data packet transfers
■ MSG packet generation and checking
❑ Power Management
■ Lane level power saving state (Electrical Idle (EIDL))
UHS-II link controller unit implements the following state machines as specified in the UHS-II
Addendum version 1.01 specifications:
❑ Data Link State Machine (DLSM)
❑ Physical Lane State Machine (PLSM)
Figure 2-2 DWC_mshc Output Data Path Structure for SD and eMMC Modes
ddr_mode_en
data_shift_reg[7:0]
0
data_reg_p
data_shift_reg[15:8] 1
DWC_mshc_ddr_mux_2x1
0
sd_dat_out
data_shift_reg[7:0] data_reg_n
1
Device
SDCLK
cclk_tx
ddr_mux_sel
.
EN
cclk_tx
cresetn
EN
DWC_mshc_ddr_mux_sel
ddr_mode_en
2.2.7.2 Output Data Path for HS400 with Data Output on Negedge
(DWC_MSHC_NEG_DATA_HS400_MODE = 1)
DWC_mshc has the option to send data out on negative edge of the TX clock(cclk_tx) in case of HS400 mode
of operation. Configure this option by setting DWC_MSHC_NEG_DATA_HS400_MODE = 1.
Set the MSHC_CTRL_R[NEGEDGE_DATAOUT_EN bit to enable this on the system.
Enable this option where the timing window is minimal because of the delays on board. The eMMC device
input timing for the lines CMD and DAT are different in case of HS400.
The device input timings for lines CMD is HS200, and lines DAT is HS400. Because of this difference, even a
minor delay in the system can cause timing issues. To ease the timing, the sd_dat_out from the controller is
sent on negedge keeping sd_cmd_out on posedge.
■ Apply the following constraint on ddr_mux_sel signal with respect to inverted cclk_tx.
Note
create_generated_clock -name ddr_mux_sel_clk -divide_by 1 source
cclk_tx_inv -master_clock cclk_tx_inv
U_DWC_mshc_sd4/U_DWC_mshc_sd4_data_tx/U_DWC_mshc_ddr_mux_sel/ddr_
mux_sel set_min_pulse_width -low <cclk_tx_period * 0.48>
ddr_mux_sel_clk set_min_pulse_width -high <cclk_tx_period * 0.48>
ddr_mux_sel_clk
■ Even though the data sent out from the controller is on the Negative edge of cclk_tx, the
expectation of the device will not change. It will still sample the data on the positive edge of
SDCLK.
To meet the hold time of the device and to ensure that data is sampled in the middle of the data window for
DDR data, SDCLK can be phase delayed with respect to cclk_tx as shown in Figure 2-5.
cclk_tx
ddr_mux_sel
sd_dat_out_en
SDCLK
Phase
delay
Figure 2-6 DWC_mshc Ouput Data Path Structure when in Low Speed SDR No PHY mode
s2tx_l_drv_posedge
cclk_tx
s2tx_l_drv_posedge
sd_dat_out_en
sd_dat_out
00 ED0 ED1 ED2
SDCLK
Tcg+To+Tl
cclk_tx
s2tx_l_drv_posedge
sd_dat_out_en
sd_dat_out
00 OD0 OD1 OD2
SDCLK Tcg+To+Tl
When data/cmd are clocked with respect to negative edge of cclk_tx, there exists a half cycle path from
positive edge of cclk_tx to driving negative edge cclk_tx for the following destination registers
■ U_DWC_mshc_sd4.U_DWC_mshc_sd4_cmd.ccmd_out
■ U_DWC_mshc_sd4.U_DWC_mshc_sd4_cmd.ccmd_out_en
■ U_DWC_mshc_sd4.U_DWC_mshc_sd4_data_tx.data_reg_p
■ U_DWC_mshc_sd4.U_DWC_mshc_sd4_data_tx. cdat_out_en
U_DWC_mshc_sd4.U_DWC_mshc_sd ccmd_in_pipe_r_reg
4_sync.U_DWC_mshc_sd4_sample.
Controller
GEN_FST2.sample_meta[0]
U_Dwc_mshc_bcm21_drift_detect_sync drift_cclk_rx
gen_drift_detect_
U_Dwc_mshc_tune_auto_dd
U_Dwc_mshc_tune_auto_dm
U_Dwc_mshc_tune_auto
U_Dwc_mshc_tune
cdat_in_ne_pipe_r
Negedge Sampling Path
mem_a Combo
rray
cdat_in_pe_pipe_r
U_RAM
U_DWC_msh c_2clkfifo_pipe_data
Posedge Sampling Path
sd_dat_in
cclk_rx_ds_mux
0
cclk_rx
ccmd_in_pipe_r 1
sd_dat_stb
datastrobe_en
0
mem_a Combo
rray 1
U_RAM
enh_strobe_en
U_DWC_msh c_2clkfifo_cmd_sample
U_DWC_mshc_sd4_sample sd_cmd_in
U_DWC_mshc_sd4_sync
U_DWC_mshc_sd4
Controller
GEN_FST2.sample_meta[0]
U_Dwc_mshc_tune_auto
U_Dwc_mshc_tune
cdat_in_ne_pipe_r
Negedge Sampling Path
mem_a Combo
rray
cdat_in_pe_pipe_r
U_RAM
U_DWC_mshc_2clkfifo_pipe_data
Posedge Sampling Path
sd_dat_in
cclk_rx_ds_mux
cclk_rx_inv cclk_rx
ccmd_in_pipe_r
s2rx_l_smpl_negedge
mem_a Combo
rray
U_RAM
U_DWC_mshc_2clkfifo_cmd_sample
U_DWC_mshc_sd4_sample sd_cmd_in
U_DWC_mshc_sd4_sync
U_DWC_mshc_sd4
Note The half cycle path from “cdat_in_ne_pipe_r” register to Data sampling FIFO can be ignored
if DWC_MSHC_LS_NO_PHY_MODE = 1
cclk_tx .
Tcg+To+Tl
SDCLK .
t_diff = Tl-Ti
cclk_rx .
Tcg+To+Ti
DAT/CMD
cclk_tx .
Tcg+To+Tl
SDCLK .
t_diff = Tl-Ti
cclk_rx .
Tcg+To+Ti
DAT/CMD
For more information, on the timing values refer to section “Low Speed Mode” in DesignWare Cores
DWC_mshc User Guide.
DMA DMA
GM GM
Interface Interface
AHB AXI
Interface Interface
The GM interface operates on a packet- or descriptor-level transfer. That is, each request represents a
descriptor or packet size transfer. In contrast, the AHB and AXI gaskets break the GM request into multiple
AHB/AXI transfers as appropriate for the interface. For example, the AHB gasket splits a 512 byte GM read
request into multiple INCR8/INCR4 bursts depending on the burst settings.
Wait cycles may appear on the master read or write data path. This happens if the RAM controller does not
have enough bandwidth to serve both the Transaction Layer Unit (TLU) and the DMA. It can also occur
during CQE as the DMA FIFOs are also utilized for message passing.
four requests can be transferred in 64 clocks. AXI write shown in Figure 2-15 is slowed down because of
lower acceptance rate of AXI slave (wready is low for longer duration).
ACLK
OSR CNT 0 1 2 3 4 5 6 7 8 7 8
AWVALID
AWREADY
BRESP 0
BVALID
BREADY
In Figure 2-16:
■ OSR_CNT, gives the number of Outstanding Requests of the AXI.
■ On receiving AWVALID and AWREADY the Outstanding request gets incremented.
■ When the OSR_CNT value reaches eight, it waits for at the least one transfer to get completed
indicated by a valid OKAY Response.
■ This decrements the OSR_CNT to 7, which in turn causes the issue of the next pending transfer.
■ After a valid transfer is sent, the OSR_CNT value again increments to 8.
Figure 2-17 shows the behavior of AXI when it is configured to support 8 Read Outstanding requests.
ACLK
OSR CNT 0 1 2 3 4 5 6 7 8 7 8
ARVALID
ARREADY
RLAST
RVALID
RREADY
In Figure 2-17:
■ OSR_CNT, gives the number of Outstanding Requests of the AXI.
■ On receiving ARVALID and ARREADY the Outstanding request will get incremented.
■ When the OSR_CNT value reaches eight, it waits for at the least one transfer to get completed.
■ This decrements the OSR_CNT to seven, which in turn causes the issue of the next pending transfer.
■ After a valid transfer is sent, the OSR_CNT value again increments to eight.
This behavior ensures that there are always transactions on the AXI bus as long as data is present to be
written/read into/from the system memory.
Example 1
Consider using the starting address = 0, DMA transfer size = 512 bytes, AHB bus data width = 32 bits, burst
sizes INC4, INC8, and INC16 enabled, and INCR is Disabled.
The DMA transfers will be Address-0 BURST-16, Address-64 BURST-16,Address-128 BURST-16, Address-
192 BURST-16, Address-256 BURST-16, Address-320 BURST-16, Address-384 BURST-16, Address-448
BURST-16.
Example 2
Consider using the starting address = 0, DMA transfer size = 508 bytes, AHB bus data width = 32 bits, burst
sizes INC4, INC8, and INC16 enabled, and INCR is Disabled.
The DMA transfers will be Address-0 BURST-16, Address-64 BURST-16,Address-128 BURST-16,Address-
192 BURST-16,Address-256 BURST-16,Address-320 BURST-16,Address-384 BURST-16,Address-448 INCR
(15 beats).
Example 3
Consider using the starting address = 0, DMA transfer size = 508 bytes, AHB bus data width = 32 bits, burst
sizes INC4, INC8, are enabled. INC16 and INCR is Disabled.
The DMA transfers will be. Address-0 BURST-8, Address-32 BURST-8, Address-64 BURST-8, Address-96
BURST-8, Address-128 BURST-8, Address-160 BURST-8, Address-192 BURST-8, Address-224 BURST-8,
Address-256 BURST-8, Address-288 BURST-8, Address-320 BURST-8, Address-352 BURST-8,
Address-384 BURST-8, Address-416 BURST-8, Address-448 BURST-8, Address-480 INCR (7 beats)
Do note the exceptions specified here for Undefined length INCR as detailed in example2 and example3.
Because even when INCR (undefined-length) is disabled, MBIU can still decide to use INCR after a few
transfers if the remaining bytes cannot be completed using a single transfer of any of the enabled burst
types.
Consider example2 where 508 bytes has to be read, after completing 7 INCR16 transfers the module is left
with reading 60 more bytes. These cannot be completed using a single transfer of any of the enabled burst
types so it falls back to using INCR.
AMBA bus wider than 32-bit can be interfaced with 32-bit AHB slave port of DWC_mshc.
Note Extra logic described in Section 3-15 of AMBA 2.0 Specification is required to interface a wider
bus.
Note This controller does not support back to back write followed by read to the same address. You
can insert and dummy read to break the back-to-back operations as a workaround.
Legacy 26 Mhz
Default 25 MHz
SDR12 25 MHz
SDR25 50 MHz
TAP_BYPASS 0xF 1 TAP is in Bypass, tdo is connected to tdi using a single flop.
SEL_RACDR 0x3 50 TAP selects RACDR data register, MSHC’s registers can be
accessed using this register.
RESERVED All others 1 Reserved instructions, when undefined are mapped to select
Bypass Register
3:0
JTAGINST
Memory
Bits Name Access Description
3:0 JTAGINST R/W Value programmed here is decoded to either select DR or put IP in bypass
■ 0xF – Selects Bypass register
■ 0x3 – Selects RACDR (Data register)
■ Others – reserved, these are mapped to Bypass register
Value After Reset: 0xF
Memory
Bits Name Access Description
Memory
Bits Name Access Description
47:46 INTR [1:0] R Critical interrupts of MSHC are mapped to these bits as it makes polling
easier.
INTR[0] – Indicates Normal interrupt. It is set to 1 if any interrupts in
NORMAL_INT_STAT_R[14:0] register is ‘1’
INTR[1] – Indicates Error interrupt. Set to 1 if NORMAL_INT_STAT_R[15]
register is ‘1’
These are cleared by clearing the respective interrupts in
NORMAL_INT_STAT_R and ERROR_INT_STAT_R
Value After Reset: 0x0
45:34 REGADDR R/W Specifies the address of the MSHC register that the JTAG I/F is trying to
[11:0] access.
Specify the offset of MSHC register address as defined in the databook here.
The offset remains the same irrespective of AHB I/F or JTAG I/F
Value After Reset: 0x0
33:32 REGSIZE R/W MSHC has registers of sizes 8bit, 16bit and 32bits. Hence this filed is
[1:0] necessary to specify the active length of the 4Byte REGDATA payload.
Only the Active Bytes are written into the addressed MSHC register. And
during READ only the content from Active Bytes are valid (others can be
masked). Refer
0x0 – Register size is Byte (8bits) hence only REGDATA[7:0] is valid.
0x1 – Register size is Half-Word (16bits) ) hence only REGDATA[15:0] is valid.
0x2 – Register size is Word (32bits) hence complete REGDATA [31:0] is valid.
0x3 – Reserved
Data bytes which are invalid should be padded with zeroes when Write
commands. During Reads, data on invalid bytes should be ignored/masked.
Value After Reset: 0x0
Memory
Bits Name Access Description
31:0 REGDATA R/W This is the data payload filed of the MSHC register access instruction.
[31:0]
When WRn is 1:
The valid bytes of REGDATA is written into MSHC register whose offset is
addressed by REGADDR. This is completed in a single JTAG DR-shift and
update
When WRn is 0:
This indicates to the IP that JTAG I/F wishes to read the data present in
register which is address by REGADDR.
A total of 2 JTAG instructions are needed to get data on tdo output.
The Update cycle of first JTAG Read instruction will inform IP the intent to
read, and the capture cycle of second JTAG Read instruction will load the data
from addressed MSHC register into RACDR.REGDATA. This will now be
shifted out on tdo during DR-SHIFT of second JTAG instruction.
BR
0 BR RW When selected, BR register connects tdi input to tdo via a single flop.
Value After Reset: 0x0
50 bits
WRn STATUS INTR[1:0] REGADDR[11:0] REGSIZE[1:0] REGDATA[31:0]
The JTIU module takes care of data alignment based on REGADDR [1:0]. Following are some register access
examples
tck
~~ ~~
Capture-DR
Update-DR
MSHC
Register Old Value New Value
tck
~~ ~~ ~~
Capture-DR
RACDR xx shift shift shift RACDR-1 new shift shift shift RACDR-
decode, Sync and addressed data is
New Write access select for read loaded in RACDR on
capture
JTIU_READ_DATA
(internal bus) xx Addressed read data
AXI/AHB
Master
AHB
AHB master
Slave
DWC_mshc
When Master Interface is used, data is directly accessed from system memory by AXI/AHB. When slave
interface is used, data is accessed from the system memory by a separate AHB master and made available to
DWC_mshc using a data port register. This type of transfer is also called Non-DMA transfer or
Programmed Input Output (PIO) transfer. For more information on non-DMA/PIO transfer, see the
“Issuing CMD with Data Transfer (Not Using DMA/PIO)” in DesignWare Cores Mobile Storage Host
Controller User Guide.
A high throughput can be achieved using master interface for data transfer. If the application not need such
a high throughput, then the slave interface can be used for data transfer.
DWC_mshc offers a configuration option to operate only in the slave mode. In this case, DWC_mshc is
optimized for area and power by removing AXI/AHB master interface module, DMA engine, DMA-related
configuration registers, CQE engine, and any other logic that may be unnecessary. This can be done by de-
selecting the "Master Interface Present" checkbox in the Basic Configuration Parameters page. For
information on this parameter, refer to Parameter Descriptions chapter. For an understanding on how this
feature saves area and power, see “Area Savings While Using Optimized Clocking Mode” on page 622.
The ADMA3 capability is reflected on the CAPABILITIES2_R.ADMA3_SUPPORT register bit. This bit is
required if the SDMA or ADMA2 can provide the performance requirement or a use case does not need
ADMA3. Based on this register bit, DWC_mshc is optimized for area and power by removing support for
ADMA3. For information on how to disabling ADMA3 feature saves area and power, see “Area Savings
Without ADMA3 Mode” on page 622.
90%
87% 87%
80%
77%
70%
60%
56%
50%
40%
30%
20%
10%
0%
ACLK 300MHz - ACLK300- ACLK200- ACLK100-
BCLK 300MHz BCLK250 BCLK250 BCLK250
clk
cs_n
wr_n
addr A1 A2 A3 A4
data_in D1 D2 D3 D4
clk
cs_n
wr_n
addr A1 A2 A3 A4
data_out D1 D2 D3
DWC_mshc
Card
SRAM Interface
DMA Logic SD/eMMC/
Controller
AXI UHS-II
aclk
Packet Buffer bclk
(External SPRAM) Card
Clock
DMA and Card interface logic can work simultaneously as read and write to packet buffer can be
interleaved. For card read, DMA can send out previous block while Card interface logic is receiving current
block. Whereas for card write, DMA can write current block into packet buffer while Card interface logic is
sending out previous block. This type of parallel processing is possible when following conditions are met:
■ Packet buffer depth is chosen based on recommendation given in Table 2-21.
■ Frequency of bclk is greater than or equal to recommended bclk frequency. Refer the section on
controller base clock in “Speed and Clock Requirements” on page 27.
■ Frequency of aclk is greater than or equal to selected bclk frequency.
DWC_mshc
tuning_cclk_sel_update
tuning_cclk_sel[7:0]
fixed_clk
sample_clk_sel
sd_dat_in
cclk_tx
tuning_cclk_update
The high-speed SDR modes that need tuning are eMMC HS200 and SD SDR104. The tuning sequence for SD
or eMMC is a software-assisted sequence in which the hardware controls the DelayLine and calculates the
phase for robust sampling, and the software determines the necessity for tuning and starting the tuning
sequence. For information on the tuning programming sequences, see the Programming chapter in the
DesignWare Cores Mobile Storage Host Controller User Guide.
cclk_rx
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Phase steps
FPF
Fail steps Pass steps Fail steps
Scenario
All Pass
Pass steps
Scenario
PFP
Scenario Pass steps Fail steps Pass steps
PFPF
Pass steps Fail steps Pass steps Fail steps
Scenario
the phase steps 7 to 15 are Pass steps and the tuning engine determines phase step 11 as the phase for
robustly sampling incoming data.
In these cases, the Tuning engines assume that the Pass steps for DataN-1 in clock period N would also
repeat for DataN in clock period N+1. Considering this assumption, tuning engine adds the Pass steps from
both the bursts to calculate a robust sampling point. In the example shown in Figure 2-34, the tuning engine
selects phase step15 as the phase for robustly sampling incoming data.
Related Parameters:
You can enable this mode by default (on reset) using the following parameters.
■ DWC_MSHC_TUNE_WINTH_EN = 1
■ DWC_MSHC_TUNE_WINTH_VAL = <as required for design>
Related Registers:
You can also enable this mode using the following registers:
■ AT_CTRL_R.SWIN_TH_EN = 1
■ AT_CTRL_R.SWIN_TH_VAL = <as required for design>
■ The recommended default threshold for SWIN_TH_VAL is 0.3UI. You should however
Note arrive at this threshold based on System on Chip and DelayLine design aspects that could
shrink the sampling window.
■ System designers can choose this schema in cases where the minimum threshold value is
known and time taken to complete tuning needs to be optimized.
In this mode, a complete sampling window is preferred over a partial sampling window. Tuning stops
when either a complete sampling window is found or when all taps are parsed. There is no minimum
threshold on the width of sampling window as shown in Figure 2-37.
Related Parameters:
You can enable this mode by default (on reset) using the following parameters:
■ DWC_MSHC_TUNE_WINTH_EN = 1
■ DWC_MSHC_TUNE_WINTH_VAL = 0
Related Registers:
You can also enable this mode using the following registers:
■ AT_CTRL_R.SWIN_TH_EN = 1
■ AT_CTRL_R.SWIN_TH_VAL = 0
Note This is not recommended if the DelayLine used has a jitter spec > [2 * TapDelay].
If there are two sampling windows of same length, then the first one is selected. A delay line generating
more than 1.25UI delay can result in double locking.
Related Parameters:
You can enable this mode by default (on reset) using the following parameters:
■ DWC_MSHC_TUNE_WINTH_EN = 0
■ DWC_MSHC_TUNE_WINTH_VAL = don't care
Related Registers:
You can also enable this mode using the following registers:
■ AT_CTRL_R.SWIN_TH_EN = 0
■ AT_CTRL_R.SWIN_TH_VAL = don't care
System designers can choose this schema in cases where the minimum threshold value is not
Note known and time taken to complete tuning is not a concern.
hclk
AT_CTRL_R.SW_TUNE_EN
cclk_tx
tuning_cclk_sel_update
sample_clk_sel
card_rx Clock
Tuning Steps 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| Eye Width = 8 |
Post Tuning
Pass Window
| Eye Width = 8 |
Right Drift
Pass Window
| Eye Width = 8 |
Left Drift
Pass Window
| Eye Width = 6 |
Shrink
Pass Window
| Eye Width = 7 |
Shrink Right
Pass Window
| Eye Width = 7 |
Shrink Left
Pass Window
Controller
autotuning_cclk_sel_update
autotuning_cclk_sel
Auto-Tuning
Interface
Auto-Tuning
Engine drift_cclk_rx Delay Line gated_cclk_tx
[Drift Measurement]
Auto-Tuning Correction
Initialization Interface Interface
tuning_cclk_sel_update
tuning_cclk_sel
Data Sampling
Interface
fixed_clk
sample_clk_sel
sd_data_in[*]
The errors described in section “Auto-Tuning Operation” on page 81 do not reflect as error
Note interrupts, as these are detected by using the drift clock with left and right edge values.
Mode 1 Tuning
Wait for
Auto-Tuning
Transfer Start
No Drift Yes
Detected?
Calculate
No End of Correction
Transfer?
Apply
Correction
drift_cclk_rx
cclk_tx
autotuning_cclk_sel
Old New
autotuning_cclk_sel_update
Note The recommended physical design constraints must be followed to ensure that the drift
correction calculated by AT engine do not adversely affect the Command-response capture.
cclk_tx
clk2card_on ]
:19
[20
L_R
C TR
_
AT
]
:17
[18
L_R
C TR
_
AT
PostCode
Change_delay
gated_cclk_tx
The Glitch-free clock switching feature is disabled by default and can be enabled by programming the
AT_CTRL_R[16] bit to 1. However, this feature can reduce the performance by a maximum of 2% as a few
cycles of clocks are stopped between a block.
Controller
GEN_FST2.sample_meta[0]
Auto-Tuning Path
drift_cclk_rx
U_DWC_mshc_bcm21_drift_detect_sync
gen_drift_detect_0_
U_DWC_mshc_tune_auto_dd
DWC_mshc_tune_auto_dm
U_DWC_mshc_tune_auto
U_DWC_mshc_tune
mem_a Combo
rray
cdat_in_pe_pipe_r
U_RAM
U_DWC_msh c_2clkfifo_pipe_data
Posedge Sampling Path
sd_dat_in
cclk_rx_ds_mux
cclk_rx
sd_dat_stb
datastrobe_en
U_DWC_mshc_2clkfifo_posedge_data
U_DWC_mshc_sd4_sample
U_DWC_mshc_sd4_sync
U_DWC_mshc_sd4
The following tables map the paths to be balanced when SD_DATA_WIDTH is configured for 8 bits:
■ Table 2-9 for DataLine 0
■ Table 2-10 for DataLine 1
■ Table 2-11 for DataLine 2
■ Table 2-12 for DataLine 3
■ Table 2-13 for DataLine 4
■ Table 2-14 for DataLine 5
■ Table 2-15 for DataLine 6
■ Table 2-16 for DataLine 7
Auto-Tuning
Auto-Tuning Path Path Endpoint Sampling Path
DataLine Hierarchy Flop Name Sampling Path Hierarchy Endpoint Flop Name
Auto-Tuning
Auto-Tuning Path Path Endpoint Sampling Path
DataLine Hierarchy Flop Name Sampling Path Hierarchy Endpoint Flop Name
Auto-Tuning
Auto-Tuning Path Path Endpoint Sampling Path
DataLine Hierarchy Flop Name Sampling Path Hierarchy Endpoint Flop Name
Auto-Tuning
Auto-Tuning Path Path Endpoint Sampling Path
DataLine Hierarchy Flop Name Sampling Path Hierarchy Endpoint Flop Name
Auto-Tuning
Auto-Tuning Path Path Endpoint Sampling Path
DataLine Hierarchy Flop Name Sampling Path Hierarchy Endpoint Flop Name
Auto-Tuning
Auto-Tuning Path Path Endpoint Sampling Path
DataLine Hierarchy Flop Name Sampling Path Hierarchy Endpoint Flop Name
Auto-Tuning
Auto-Tuning Path Path Endpoint Sampling Path
DataLine Hierarchy Flop Name Sampling Path Hierarchy Endpoint Flop Name
Auto-Tuning
Auto-Tuning Path Path Endpoint Sampling Path
DataLine Hierarchy Flop Name Sampling Path Hierarchy Endpoint Flop Name
The following tables map the paths to be balanced when SD_DATA_WIDTH is configured for 4 bits:
■ Table 2-17 for DataLine 0
■ Table 2-18 for DataLine 1
■ Table 2-19 for DataLine 2
■ Table 2-20 for DataLine 3
Auto-Tuning
Auto-Tuning Path Path Endpoint Sampling Path
DataLine Hierarchy Flop Name Sampling Path Hierarchy Endpoint Flop Name
Auto-Tuning
Auto-Tuning Path Path Endpoint Sampling Path
DataLine Hierarchy Flop Name Sampling Path Hierarchy Endpoint Flop Name
Auto-Tuning
Auto-Tuning Path Path Endpoint Sampling Path
DataLine Hierarchy Flop Name Sampling Path Hierarchy Endpoint Flop Name
Auto-Tuning
Auto-Tuning Path Path Endpoint Sampling Path
DataLine Hierarchy Flop Name Sampling Path Hierarchy Endpoint Flop Name
2.12 Memory
It is recommended that you select minimum size of the packet buffer as shown in Figure 2-21 that lists and
explains minimum packet buffer size for each card type.
Table 2-21 Minimum Packet Buffer Size
a For SD/SDIO/eMMC mode, it depends on maximum size of the data block (DWC_MSHC_MAX_BLK_SIZE)
b
Command queuing engine for eMMC mode uses 32 rows of packet buffer for its own storage in addition to the data. This
reduces effective storage available for the data. To improve the performance, depth packet buffer can be increased by 32.
You need to set the DWC_MSHC_EMMC_CQE_EXTRA_ROW (Need additional packet buffer rows for Command queuing)
parameter. Requirement of minimum packet buffer size increases to 32 in this case. Refer Example 2 for clarification.
c
For UHS-II mode, as data is processed in units of burst, it depends on maximum number of blocks in one burst (Desired value
of Maximum N_FCU) and maximum block size (DWC_MSHC_LINK_MAX_BLK_SIZE). Maximum N_FCU supported by
DWC_mshc is automatically calculated from packet buffer depth and maximum block size for UHS-II mode and is set to the
parameter DWC_MSHC_LINK_N_FCU (Maximum Number of Blocks per Flow Control Unit).
If selected configuration has both SD/eMMC and UHS-II, then minimum packet buffer size is
Note maximum of the two.
Based on this minimum packet buffer size, appropriate packet buffer depth must be calculated and
configured in DWC_mshc. Minimum packet buffer size calculation is explained in the following examples:
■ Example 1:
Card interface type: SD + UHS-II
Maximum Block size: 512 bytes
Maximum N_FCU: 4
AXI data width: 32 bits
Minimum Packet Buffer Depth = (2*4*512)/((32/8)) = 1024 Rows
You can select this minimum value or any higher value using the “Packet Buffer Depth” option in
coreConsultant. You will now need an SRAM of configuration [DWC_MSHC_MBIU_DW X
DWC_MSHC_PKT_BUFFER_DEPTH].
■ Example 2:
Card interface type: SD + eMMC
2.13 Interrupts
In DWC_mshc, interrupts are generated based on various events.
There are two interrupt outputs provided by DWC_mshc:
■ intr
■ wakeup_intr
The interrupt signal must be used as interrupt for different events during active mode. During standby
mode, wakeup_intr must be used to identify any wakeup event, such as card removal or insertion, or an
SDIO card interrupt. The interrupts are of level type, that is, the interrupt remains asserted (high) until it is
cleared by the host or the software.
The Interrupt Status Registers indicate the events that caused the interrupt generation. Each event can be
prevented from asserting the interrupt on the interrupt signal by setting the corresponding mask bits.
A bit in interrupt status register is set only if the corresponding interrupt status enable is set and interrupt
event is observed. This bit set in interrupt status register asserts interrupt only if corresponding bit in
interrupt signal enable is set.
Host driver is responsible for enabling wakeup signals and disabling interrupt signals when the
Note host system enters its standby mode, and for disabling wakeup signals and enabling interrupt
signals when host system goes into active mode. The host driver must not enable both at
same time. Interrupt signals are enabled using interrupt signal enable and wakeup signals are
enabled using wakeup event enable.
The initial (seed) value of the LSFR can be programmed using PRBS_CNG register, after the seeded LSFR
generates a pseudo-random 16bit data pattern on every valid cycle.
Controller
Loopback_mode SD/eMMC PHY
Controller data path
Data Tx module
sd_dat_out[]
PRBS CRC16
CMD Rx
cmd error status
sd_cmd_in
CRC7
2.15.2.1 Transmission
Figure 2-46 shows the loopback architecture of the controller. When in loopback, DWC_mshc data
transmission (Tx) module uses pattern generated from the PRBS unit as the data to be sent out. The data is
sent out in frames similar to how it is transmitted in functional mode. Each frame consists of a start bit
indicating beginning of the frame and ends with an 'End' bit. CRC16 for the block of data is appended and
transmitted along with the frame as shown in Figure 2-47:
START END
BIT PRBS DATA CRC16
BIT
The data packing format in this frame is same as used in the functional mode for SD/eMMC data
transmission. The size of PRBS data to be transmitted is determined by the BLOCKSIZE_R register and the
number of such frames to be sent are determined by the BLOCKCOUNT_R register.
Frame shown in Figure 2-48 is sent on the CMD line in loopback mode. The contents of CMD_R (INDEX)
and ARGUMENT_R register are used as the data payload and a CRC7 checksum is used. This frame is same
as the functional mode command frame, but here the ARGUMENT_R register can be used to send a fully
programmable 32bit pattern on the CMD line.
2.15.2.2 Reception
The incoming CMD and DAT frames sampled by the controller and are checked for framing correctness and
CRC correctness. CRC16 for the data frames and CRC7 in case of CMD frames are validated. Any errors
identified are reported using ERROR_INT_STAT_R register.
DWC_mshc uses the same sampling logic as used in the functional mode. This allows you to use features
such as; Tuning even when working on loopback mode. The data sampled is stored in DWC_mshc packet
buffer. This data can be read using PIO/DMA for software debug during bringup.
Note During the task descriptor fetch, the value on the dbg_*_task_id signals are invalid.
3
Parameter Descriptions
This chapter details all the configuration parameters. You can use the coreConsultant GUI configuration
reports to determine the actual configured state of the controller. Some expressions might refer to TCL
functions or procedures (sometimes identified as <functionof>) that coreConsultant uses to make
calculations. The exact formula used by these TCL functions is not provided in this chapter. However, when
you configure the controller in coreConsultant, all TCL functions and parameters are evaluated completely;
and the resulting values are displayed where appropriate in the coreConsultant GUI reports.
The parameter descriptions in this chapter include the Enabled: attribute which indicates the values
required to be set on other parameters before you can change the value of this parameter.
These tables define all of the configuration options for this component.
■ Basic Configuration on page 104
■ AXI Settings on page 108
■ AHB Master Bus settings on page 109
■ GPIO Configuration on page 110
■ Low Power Configuration on page 111
■ Clocking modes on page 113
■ Host Controller Capabilities on page 114
■ Maximum Current Capabilities on page 121
■ Preset Values on page 123
■ Re-locatable Register Offsets on page 136
■ Host Controller Version on page 138
■ UHS-II Specific on page 139
■ eMMC Capabilities on page 147
■ Command Queueing settings on page 149
■ Subsystem configuration on page 152
Label Description
UHS-II PHY-LINK Interface Indicates the data bit width for the UHS-II PHY-LINK interface.
Width This is applicable only for UHS-II.
Values:
■ 8 bits (0)
■ 16 bits (1)
Default Value: 16 bits
Enabled: DWC_MSHC_UHS2_SUPPORT==1
Parameter Name: DWC_MSHC_PHY_LINK_WIDTH
SD/eMMC Data Interface Indicates the data bus width for the SD/eMMC interface.
Width It is recommended to use a 4-bit data interface width for an SD application and an 8-
bit data interface width for an eMMC application. However, there is no restriction on
using any width for an SD/eMMC application from the controller.
Values:
■ 4 bits (0)
■ 8 bits (1)
Default Value: 4 bits
Enabled: DWC_MSHC_SD_EMMC_SUPPORT==1
Parameter Name: DWC_MSHC_SD_DAT_WIDTH
Label Description
SD/eMMC Low Speed SDR Indicates DWC_mshc is configured to support SD/eMMC low speed mode SDR
only support upto 100MHz without PHY.
When selected, Controller provides a programmable option to launch sd_dat_out*
and sd_cmd_out* with respect to negative edge of cclk_tx. It also implements the
programmable option to sample sd_dat_in and sd_cmd_in with respect to negative
edge of cclk_rx. Tuning of sampling clock is not supported
Values:
■ false (0)
■ true (1)
Default Value: false
Enabled: DWC_MSHC_CARD_INTERFACE_TYPE != 2
Parameter Name: DWC_MSHC_LS_NO_PHY_MODE
Master Interface Address Indicates the Master bus (AXI/AHB) Address width.
Width Values:
■ 32-bit (32)
■ 64-bit (64)
Default Value: 32-bit
Enabled: (DWC_MSHC_MST_IF_PRESENT==1) &&
(DWC_MSHC_MST_INTERFACE_TYPE==0)
Parameter Name: DWC_MSHC_MBIU_AW
Label Description
Master Interface Data Width Indicates the Master bus (AXI/AHB) Data width.
No distinction is made between read and write channels.
Note: Data width of external memory must be same as the AXI/AHB master bus
data width.
Values:
■ 32-bit (32)
■ 64-bit (64)
Default Value: 32-bit
Enabled: DWC_MSHC_MST_IF_PRESENT==1
Parameter Name: DWC_MSHC_MBIU_DW
Response Type for Nonexistent Specifies the Host Controller to generate AHB slave error response for nonexistent
Register Access register word access.
Values:
■ OKAY Response (0)
■ ERROR Response (1)
Default Value: OKAY Response
Enabled: DWC_MSHC_CRYPTO_SUPPORT==0
Parameter Name: DWC_MSHC_SLV_RESPONSE_TYPE
Label Description
Packet Buffer Depth (External Sets the depth of the Packet Buffer.
Memory Size) Packet buffer is a local storage used by DWC_mshc to store data packets while
carrying out data transfer to and from the card. An external SPRAM is used as a
packet buffer. The depth of external SPRAM must be same as value of this
parameter.
The depth of the packet buffer decides the number of blocks that can be pre-fetched
during a card write or the number of blocks that can be stored before throttling the
card interface during card read.
The selected Master Interface data width decides the total Packet Buffer Size
Packet Buffer Size (in bytes) = Packet Buffer Depth x AXI Data Width (in bytes)
It is recommended to select the minimum size of the Packet Buffer as:
■ 2 x Maximum Block Size (for SD/eMMC)
■ 2 x Maximum N_FCU x Maximum Block Size (for UHS-II)
Note: When CQE is enabled with extra rows in the packet buffer, you must select a
higher depth than the minimum required. Refer the "Packet Buffer Size Calculation"
section in the DWC_mshc Databook for more details.
Values: 256, 512, 1024, 2048, 4096, 8192, 16384, 32768
Default Value: 512
Enabled: Always
Parameter Name: DWC_MSHC_PKT_BUFFER_DEPTH
Internal FIFO Depth (DMA <-> Sets the depth of DMA'S Async FIFOs that transport data To/From Packet Buffer
External Memory) (External Memory). The depth must be selected based on AXI Clock (aclk) and
Base clock (bclk) frequencies and the target throughput.
Values: 4, 8, 16
Default Value: 4
Enabled: DWC_MSHC_MST_IF_PRESENT==1
Parameter Name: DWC_MSHC_DMAQ_DEPTH
Label Description
AXI Settings
Maximum Outstanding Read Selects the Maximum Outstanding Read Requests on AXI.
Requests Values: 4, 8
Default Value: 4
Enabled: (DWC_MSHC_MST_IF_PRESENT==1) &&
(DWC_MSHC_MST_INTERFACE_TYPE==0)
Parameter Name: DWC_MSHC_AXI_MAX_RD_REQUESTS
Maximum Outstanding Write Selects the Maximum Outstanding Write Requests on AXI.
Requests Values: 4, 8
Default Value: 8
Enabled: (DWC_MSHC_MST_IF_PRESENT==1) &&
(DWC_MSHC_MST_INTERFACE_TYPE==0)
Parameter Name: DWC_MSHC_AXI_MAX_WR_REQUESTS
Label Description
Enable AHB INCR16. Selects the Reset value of MBIU_CTRL_R.BURST_INCR16_EN register field.
Values:
■ false (0)
■ true (1)
Default Value: true
Enabled: (DWC_MSHC_MST_IF_PRESENT==1) &&
(DWC_MSHC_MST_INTERFACE_TYPE==1)
Parameter Name: DWC_MSHC_MBIU_BURST16EN
Enable AHB INCR8. Selects the Reset value of MBIU_CTRL_R.BURST_INCR8_EN register field.
Values:
■ false (0)
■ true (1)
Default Value: true
Enabled: (DWC_MSHC_MST_IF_PRESENT==1) &&
(DWC_MSHC_MST_INTERFACE_TYPE==1)
Parameter Name: DWC_MSHC_MBIU_BURST8EN
Enable AHB INCR4. Selects the Reset value of MBIU_CTRL_R.BURST_INCR4_EN register field.
Values:
■ false (0)
■ true (1)
Default Value: true
Enabled: (DWC_MSHC_MST_IF_PRESENT==1) &&
(DWC_MSHC_MST_INTERFACE_TYPE==1)
Parameter Name: DWC_MSHC_MBIU_BURST4EN
Enable AHB Undefined Length Selects the Reset value of MBIU_CTRL_R.UNDEFL_INCR_EN register field.
INCR. Values:
■ false (0)
■ true (1)
Default Value: true
Enabled: (DWC_MSHC_MST_IF_PRESENT==1) &&
(DWC_MSHC_MST_INTERFACE_TYPE==1)
Parameter Name: DWC_MSHC_MBIU_UNDEFLBURSTEN
Label Description
GPIO Settings
GPIO Support Indicates that DWC_mshc has extra General Purpose Input/Output (GPIO) ports.
When this option is selected, DWC_mshc has extra input and output ports. The
number of input and output ports are determined by parameter
DWC_MSHC_NUM_GP_IN and DWC_MSHC_NUM_GP_OUT respectively. Note
that these ports are transparent to DWC_mshc.
Values:
■ false (0)
■ true (1)
Default Value: false
Enabled: Always
Parameter Name: DWC_MSHC_GPIO_ENABLE
Number of input ports Indicates the number of General Purpose Input ports.
Values: 1, ..., 32
Default Value: 1
Enabled: DWC_MSHC_GPIO_ENABLE == 1
Parameter Name: DWC_MSHC_NUM_GP_IN
Number of output ports Indicates the number of General Purpose Output ports.
Values: 1, ..., 32
Default Value: 1
Enabled: DWC_MSHC_GPIO_ENABLE == 1
Parameter Name: DWC_MSHC_NUM_GP_OUT
Label Description
Clock Gating
Internally gate UHS2 base Indicates that the base clock to the UHS-II module must be gated internally when
clock the UHS-II interface is not used.
It is controlled using UHS-II interface enable bit in Host Control2 register. This is
applicable if the configuration supports both SD/eMMC and UHS-II interface types.
Values:
■ false (0)
■ true (1)
Default Value: false
Enabled: (DWC_MSHC_CARD_INTERFACE_TYPE == 0) ||
(DWC_MSHC_CARD_INTERFACE_TYPE == 3)
Parameter Name: DWC_MSHC_INTERNAL_CLK_GATE
Internally gate Master Bus Inserts a clock gate to switch off the MBIU clocks when the module is idle.
Interface clock when inactive Values:
■ false (0)
■ true (1)
Default Value: false
Enabled: DWC_MSHC_MST_IF_PRESENT == 1
Parameter Name: DWC_MSHC_MBIU_CLK_GATE
Internally gate DMA engine Inserts a clock gate to switch off the DMA clocks when the module is idle.
clock when inactive Values:
■ false (0)
■ true (1)
Default Value: false
Enabled: DWC_MSHC_MST_IF_PRESENT == 1
Parameter Name: DWC_MSHC_DMA_CLK_GATE
Internally gate Command Inserts a clock gate to switch off the CQE clocks when the module is idle.
Queuing engine clock when Values:
inactive ■ false (0)
■ true (1)
Default Value: false
Enabled: DWC_MSHC_EMMC_CQE_EN == 1
Parameter Name: DWC_MSHC_CQE_CLK_GATE
Label Description
Internally gate Task scheduler Inserts clock gate to switch off the Task Scheduler's clock when the module is idle.
clock when inactive Values:
■ false (0)
■ true (1)
Default Value: false
Enabled: DWC_MSHC_EMMC_CQE_EN == 1
Parameter Name: DWC_MSHC_TS_CLK_GATE
Internally gate ASYNC FIFO Inserts clock gate to switch of the asynchronous FIFO clocks when the FIFO is
clocks when inactive empty.
Values:
■ false (0)
■ true (1)
Default Value: false
Enabled: Always
Parameter Name: DWC_MSHC_ASYNC_CLK_GATE
Type of Clock gating Selects between Latch based clock gate and Flop based clock gate
mechanism Values:
■ LATCH BASED (0)
■ FLOP BASED (1)
Default Value: FLOP BASED
Enabled: DWC_MSHC_ANY_CLK_GATE==1
Parameter Name: DWC_MSHC_CLKGATE_TYPE
Label Description
Grouping of clocks
Enable grouping of clocks to Enables grouping of clocks to merge. By default, all input clocks to DWC_mshc are
merge asynchronous to each other.
If this option is enabled, you must connect grouped clocks to a common clock
source external to the controller.
Note: Refer the "Clock I/O Interface" section in DWC_mshc User Guide for more
information.
Values:
■ false (0)
■ true (1)
Default Value: false
Enabled: Always
Parameter Name: DWC_MSHC_CLKS_GROUP_EN
Select clocks to merge Selects a clock group to which same clock is connected.
Different options are provided among master clock (aclk/m_hclk), base clock (bclk)
and slave clock (hclk). The design is optimized based on selection of this clock
group. The design is optimized based on selection of this clock group.
Values:
■ Master, Slave and Base Clock (0)
■ Master and Base Clock (1)
■ Master and Slave Clock (2)
■ Base and Slave Clock (3)
Default Value: (DWC_MSHC_MST_IF_PRESENT == 1) ? 0 : 3
Enabled: (DWC_MSHC_CLKS_GROUP_EN==1) &&
(DWC_MSHC_MST_IF_PRESENT==1)
Parameter Name: DWC_MSHC_CLKS_GROUP_SEL
Label Description
DMA Support
SD/eMMC Tuning
Tuning Modes Selects the re-tuning method and limits the maximum data length.
This is applicable in SD UHS-I and eMMC modes.
Values:
■ Mode1 (0)
■ Mode3 (1)
■ Tuning Disabled (2)
Default Value: DWC_MSHC_LS_NO_PHY_MODE== 1 ? 2 : 0
Enabled: (DWC_MSHC_SD_EMMC_SUPPORT==1) &&
(DWC_MSHC_LS_NO_PHY_MODE==0)
Parameter Name: DWC_MSHC_RETUNE_MODE
Label Description
Number of Re-Tuning Timer Indicates the initial value of the Re-Tuning Timer for Mode 1 to 3.
This is applicable only for eMMC and UHS-I modes.
Values:
■ Re-Tuning Timer Disabled (0)
■ 1 Second (1)
■ 2 Seconds (2)
■ 4 Seconds (3)
■ 8 Seconds (4)
■ 16 Seconds (5)
■ 32 Seconds (6)
■ 64 Seconds (7)
■ 128 Seconds (8)
■ 256 Seconds (9)
■ 512 Seconds (10)
■ 1024 Seconds (11)
■ Get Information from Other Source (15)
Default Value: Re-Tuning Timer Disabled
Enabled: (DWC_MSHC_SD_EMMC_SUPPORT==1) &&
(DWC_MSHC_LS_NO_PHY_MODE==0)
Parameter Name: DWC_MSHC_RETUNE_TIMER
Tuning Required for SDR50 Indicates that DWC_mshc requires tuning to operate in SDR50.
This is applicable only for the UHS-I and eMMC modes.
Values:
■ false (0)
■ true (1)
Default Value: false
Enabled: (DWC_MSHC_SD_EMMC_SUPPORT==1) &&
(DWC_MSHC_LS_NO_PHY_MODE==0)
Parameter Name: DWC_MSHC_TUNE_SDR50_EN
Label Description
Number of Clock Phases Indicates the number of individual clock phases available for selection during tuning.
Available for Tuning When using a DelayLine, it indicates the number of steps supported. This is
applicable for UHS-I and eMMC modes.
Values:
■ 8 (3)
■ 16 (4)
■ 32 (5)
■ 64 (6)
■ 128 (7)
Default Value: 8
Enabled: (DWC_MSHC_SD_EMMC_SUPPORT==1) &&
(DWC_MSHC_LS_NO_PHY_MODE==0)
Parameter Name: DWC_MSHC_DL_CW
Default tuning mode This sets the default, on Reset value for AT_CTRL_R.SWIN_TH_EN register field
When '1' this setting allows tuning algorithm to select the very the first sampling
window which meets the criteria set by SWIN_TH_VAL When '0' this setting
ensures tuning algorithm sweeps all the taps and settles at the largest sampling
window
Values:
■ Largest Sampling window mode (0)
■ Threshold based mode (1)
Default Value: Threshold based mode
Enabled: (DWC_MSHC_SD_EMMC_SUPPORT==1) &&
(DWC_MSHC_LS_NO_PHY_MODE==0)
Parameter Name: DWC_MSHC_TUNE_WINTH_EN
Default Threshold value default value of AT_CTRL_R.SWIN_TH_VAL register, value is valid only if
AT_CTRL_R.SWIN_TH_EN is '1'
Values: 0, ..., (2**DWC_MSHC_DL_CW)-1
Default Value: ((2**DWC_MSHC_DL_CW)>>2)-1
Enabled: DWC_MSHC_SD_EMMC_SUPPORT==1 &&
DWC_MSHC_TUNE_WINTH_EN==1 && (DWC_MSHC_LS_NO_PHY_MODE==0)
Parameter Name: DWC_MSHC_TUNE_WINTH_VAL
Default Clock Phase Value Indicates the reset value of the tuning_cclk_sel output signal.
The tuning_cclk_sel output signal also gets initialized to this default value on tuning
reset. Tuning starts from this default value. This is applicable for UHS-I and eMMC
modes.
Values: 0, ..., (2**DWC_MSHC_DL_CW)-1
Default Value: 6
Enabled: (DWC_MSHC_SD_EMMC_SUPPORT==1) &&
(DWC_MSHC_LS_NO_PHY_MODE==0)
Parameter Name: DWC_MSHC_DEF_DL_CODE
Label Description
Clock Multiplier Value Indicates the Clock Multiplier value of the Programmable Clock Generator.
■ 0: Clock Multiplier is Not Supported
■ 1: Clock Multiplier M = 2
■ 2: Clock Multiplier M = 3
■ .............
■ 255: Clock Multiplier M = 256
Values: 0, ..., 255
Default Value: 0
Enabled: Always
Parameter Name: DWC_MSHC_CLK_MULTIPLIER
Base Clock Frequency for Indicates the Maximum Base Clock Frequency for the card clock.
SDCLK/RCLK The Maximum Clock Frequency for an SD card is SDCLK and for an UHS-II card, it
is RCLK.
■ 0: Get information using a different method
■ 1: 1 MHz
■ 2: 2 MHz
■ .........
■ 255: 255 MHz
Values: 0, ..., 255
Default Value: 1
Enabled: Always
Parameter Name: DWC_MSHC_BASE_CLK_FREQ_SD
Timer Clock Frequency Unit Indicates the Timer Clock Frequency Unit.
Values:
■ KHz (0)
■ MHz (1)
Default Value: MHz
Enabled: Always
Parameter Name: DWC_MSHC_TIMER_CLK_FREQ_UNIT
Label Description
Timer Clock Frequency to Indicates the Timer Clock Frequency to detect Data Timeout Error.
detect Data Timeout Error The unit for this frequency is decided by the
DWC_MSHC_TIMER_CLK_FREQ_UNIT parameter.
■ 0: Get information using a different method
■ 1: 1 KHz/MHz
■ 2: 2 KHz/MHz
■ ............
■ 63: 63 KHz/MHz
Values: 0, ..., 63
Default Value: 1
Enabled: Always
Parameter Name: DWC_MSHC_TIMER_CLK_FREQ
1.8V VDD1 Power Supply Indicates that DWC_mshc supports 1.8V VDD1 Power Supply.
Support Values:
■ false (0)
■ true (1)
Default Value: true
Enabled: Always
Parameter Name: DWC_MSHC_VOLT18_VDD1_SUPPORT
SD 3.0V/Embedded 1.2V Indicates that DWC_mshc supports SD 3.0V/Embededded 1.2V VDD1 Power
VDD1 Power Supply Support Supply.
Values:
■ false (0)
■ true (1)
Default Value: true
Enabled: Always
Parameter Name: DWC_MSHC_VOLT30_VDD1_SUPPORT
3.3V VDD1 Power Supply Indicates that DWC_mshc supports 3.3V VDD1 Power Supply.
Support Values:
■ false (0)
■ true (1)
Default Value: true
Enabled: Always
Parameter Name: DWC_MSHC_VOLT33_VDD1_SUPPORT
Label Description
Driver Type A Support Indicates that DWC_mshc supports Driver Type A for 1.8V Signaling.
Values:
■ false (0)
■ true (1)
Default Value: true
Enabled: DWC_MSHC_SD_EMMC_SUPPORT==1
Parameter Name: DWC_MSHC_DRV_TYPE_A_SUPPORT
Driver Type C Support Indicates that DWC_mshc supports Driver Type C for 1.8V Signaling.
Values:
■ false (0)
■ true (1)
Default Value: true
Enabled: DWC_MSHC_SD_EMMC_SUPPORT==1
Parameter Name: DWC_MSHC_DRV_TYPE_C_SUPPORT
Driver Type D Support Indicates that DWC_mshc supports Driver Type D for 1.8V Signaling.
Values:
■ false (0)
■ true (1)
Default Value: true
Enabled: DWC_MSHC_SD_EMMC_SUPPORT==1
Parameter Name: DWC_MSHC_DRV_TYPE_D_SUPPORT
Miscellaneous
Maximum Block Size Indicates that DWC_mshc supported Maximum Block Size.
Values:
■ 512 Bytes (0)
■ 1024 Bytes (1)
■ 2048 Bytes (2)
Default Value: [<functionof> DWC_MSHC_MBIU_DW
DWC_MSHC_PKT_BUFFER_DEPTH]
Enabled: Always
Parameter Name: DWC_MSHC_MAX_BLK_SIZE
Label Description
Label Description
Maximum Current for 1.8V Indicates the Maximum Current for 1.8V VDD2.
VDD2 This is applicable only for UHS-II mode. The value indicates current in 4mA steps.
■ 0: Get information using a different method
■ 1: 4mA
■ 2: 8mA
■ .......
■ 255: 1020mA
Values: 0, ..., 255
Default Value: 0
Enabled: DWC_MSHC_VOLT18_VDD2_SUPPORT == 1
Parameter Name: DWC_MSHC_MAXCUR_VOLT18_VDD2
Maximum Current for 1.8V Indicates the Maximum Current for 1.8V VDD1.
VDD1 The value indicates current in 4mA steps.
■ 0: Get information using a different method
■ 1: 4mA
■ 2: 8mA
■ .......
■ 255: 1020mA
Values: 0, ..., 255
Default Value: 0
Enabled: DWC_MSHC_VOLT18_VDD1_SUPPORT == 1
Parameter Name: DWC_MSHC_MAXCUR_VOLT18_VDD1
Maximum Current for 3.0V Indicates the Maximum Current for 3.0V VDD1.
VDD1 The value indicates current in 4mA steps.
■ 0: Get information using a different method
■ 1: 4mA
■ 2: 8mA
■ ......
■ 255: 1020mA
Values: 0, ..., 255
Default Value: 0
Enabled: DWC_MSHC_VOLT30_VDD1_SUPPORT == 1
Parameter Name: DWC_MSHC_MAXCUR_VOLT30_VDD1
Label Description
Maximum Current for 3.3V Indicates the Maximum Current for 3.3V VDD1.
VDD1 The value indicates current in 4mA steps.
■ 0: Get information using a different method
■ 1: 4mA
■ 2: 8mA
■ .......
■ 255: 1020mA
Values: 0, ..., 255
Default Value: 0
Enabled: DWC_MSHC_VOLT33_VDD1_SUPPORT == 1
Parameter Name: DWC_MSHC_MAXCUR_VOLT33_VDD1
Label Description
Driver Strength for Default Specifies the Driver Strength for Default Speed.
Speed Values:
■ Not Applicable (0)
Default Value: Not Applicable
Enabled: 0
Parameter Name: DWC_MSHC_DRV_SEL_DFLTSPD
Clock Generator Select for Specifies the Clock Generator to be selected for Initialization.
Initialization ■ 1: External Programmable Clock Generator
■ 0: External Clock Divider
Values:
■ 10-bit Divided Clock Mode (0)
■ Programmable Clock Mode (1)
Default Value: 10-bit Divided Clock Mode
Enabled: DWC_MSHC_SD_EMMC_SUPPORT==1
Parameter Name: DWC_MSHC_CLKGEN_SEL_INIT
Label Description
Clock Generator Select for Specifies the Clock Generator to be selected for Default Speed.
Default Speed ■ 1: External Programmable Clock Generator
■ 0: External Clock Divider
Values:
■ 10-bit Divided Clock Mode (0)
■ Programmable Clock Mode (1)
Default Value: 10-bit Divided Clock Mode
Enabled: DWC_MSHC_SD_EMMC_SUPPORT==1
Parameter Name: DWC_MSHC_CLKGEN_SEL_DFLTSPD
Label Description
Frequency of SDCLK for Indicates the Frequency of SDCLK for Default Speed.
Default Speed The Value indicates the Clock Divider Value for an external Clock Generator.
Clock Generator Select for Specifies the Clock Generator to be selected for High Speed.
High Speed ■ 1: External Programmable Clock Generator
■ 0: External Clock Divider
Values:
■ 10-bit Divided Clock Mode (0)
■ Programmable Clock Mode (1)
Default Value: 10-bit Divided Clock Mode
Enabled: DWC_MSHC_SD_EMMC_SUPPORT==1
Parameter Name: DWC_MSHC_CLKGEN_SEL_HSPD
Label Description
Frequency of SDCLK for High Indicates the Frequency of SDCLK for High Speed.
Speed The value indicates the Clock Divider Value for an external Clock Generator.
Driver Strength for SDR12 Specifies the Driver Strength for SDR12 Speed.
Speed Values:
■ Driver Type B (0)
■ Driver Type A (1)
■ Driver Type C (2)
■ Driver Type D (3)
Default Value: Driver Type B
Enabled: DWC_MSHC_SD_EMMC_SUPPORT==1
Parameter Name: DWC_MSHC_DRV_SEL_SDR12
Label Description
Clock Generator Select for Specifies the Clock Generator to be selected for SDR12 Speed.
SDR12 Speed ■ 1: External Programmable Clock Generator
■ 0: External Clock Divider
Values:
■ 10-bit Divided Clock Mode (0)
■ Programmable Clock Mode (1)
Default Value: 10-bit Divided Clock Mode
Enabled: DWC_MSHC_SD_EMMC_SUPPORT==1
Parameter Name: DWC_MSHC_CLKGEN_SEL_SDR12
Frequency of SDCLK for Indicates the Frequency of SDCLK for SDR12 Speed.
SDR12 Speed The Value indicates the Clock Divider Value for an external Clock Generator.
Label Description
Driver Strength for SDR25 Specifies the Driver Strength for SDR25 Speed.
Speed Values:
■ Driver Type B (0)
■ Driver Type A (1)
■ Driver Type C (2)
■ Driver Type D (3)
Default Value: Driver Type B
Enabled: DWC_MSHC_SD_EMMC_SUPPORT==1
Parameter Name: DWC_MSHC_DRV_SEL_SDR25
Clock Generator Select for Specifies the Clock Generator to be selected for SDR25 Speed.
SDR25 Speed ■ 1: External Programmable Clock Generator
■ 0: External Clock Divider
Values:
■ 10-bit Divided Clock Mode (0)
■ Programmable Clock Mode (1)
Default Value: 10-bit Divided Clock Mode
Enabled: DWC_MSHC_SD_EMMC_SUPPORT==1
Parameter Name: DWC_MSHC_CLKGEN_SEL_SDR25
Label Description
Frequency of SDCLK for Indicates the Frequency of SDCLK for SDR25 Speed.
SDR25 Speed The Value indicates the Clock Divider Value for an external.//Clock Generator.
Driver Strength for SDR50 Specifies the Driver Strength for SDR50 Speed.
Speed This is applicable only for UHS-I mode.
Values:
■ Driver Type B (0)
■ Driver Type A (1)
■ Driver Type C (2)
■ Driver Type D (3)
Default Value: Driver Type B
Enabled: DWC_MSHC_SD_EMMC_SUPPORT==1
Parameter Name: DWC_MSHC_DRV_SEL_SDR50
Label Description
Clock Generator Select for Specifies the Clock Generator to be selected for SDR50 Speed.
SDR50 Speed ■ 1: External Programmable Clock Generator
■ 0: External Clock Divider
Values:
■ 10-bit Divided Clock Mode (0)
■ Programmable Clock Mode (1)
Default Value: 10-bit Divided Clock Mode
Enabled: DWC_MSHC_SD_EMMC_SUPPORT==1
Parameter Name: DWC_MSHC_CLKGEN_SEL_SDR50
Frequency of SDCLK for Indicates the Frequency of SDCLK for SDR50 Speed.
SDR50 Speed The Value indicates the Clock Divider Value for an external Clock Generator.
Label Description
Driver Strength for SDR104 Specifies the Driver Strength for SDR104 Speed.
Speed This is applicable only for UHS-I mode.
Values:
■ Driver Type B (0)
■ Driver Type A (1)
■ Driver Type C (2)
■ Driver Type D (3)
Default Value: Driver Type B
Enabled: (DWC_MSHC_SD_EMMC_SUPPORT==1) &&
(DWC_MSHC_LS_NO_PHY_MODE==0)
Parameter Name: DWC_MSHC_DRV_SEL_SDR104
Clock Generator Select for Specifies the Clock Generator to be selected for SDR104 Speed.
SDR104 Speed ■ 1: External Programmable Clock Generator
■ 0: External Clock Divider
Values:
■ 10-bit Divided Clock Mode (0)
■ Programmable Clock Mode (1)
Default Value: 10-bit Divided Clock Mode
Enabled: (DWC_MSHC_SD_EMMC_SUPPORT==1) &&
(DWC_MSHC_LS_NO_PHY_MODE==0)
Parameter Name: DWC_MSHC_CLKGEN_SEL_SDR104
Label Description
Frequency of SDCLK for Indicates the Frequency of SDCLK for SDR104 Speed.
SDR104 Speed The Value indicates the Clock Divider Value for an external Clock Generator.
Driver Strength for DDR50 Specifies the Driver Strength for DDR50 Speed.
Speed This is applicable only for UHS-I mode.
Values:
■ Driver Type B (0)
■ Driver Type A (1)
■ Driver Type C (2)
■ Driver Type D (3)
Default Value: Driver Type B
Enabled: (DWC_MSHC_SD_EMMC_SUPPORT==1) &&
(DWC_MSHC_LS_NO_PHY_MODE==0)
Parameter Name: DWC_MSHC_DRV_SEL_DDR50
Label Description
Clock Generator Select for Specifies the Clock Generator to be selected for DDR50 Speed.
DDR50 Speed ■ 1: External Programmable Clock Generator
■ 0: External Clock Divider
Values:
■ 10-bit Divided Clock Mode (0)
■ Programmable Clock Mode (1)
Default Value: 10-bit Divided Clock Mode
Enabled: (DWC_MSHC_SD_EMMC_SUPPORT==1) &&
(DWC_MSHC_LS_NO_PHY_MODE==0)
Parameter Name: DWC_MSHC_CLKGEN_SEL_DDR50
Frequency of SDCLK for Indicates the Frequency of SDCLK for DDR50 Speed.
DDR50 Speed The Value indicates the Clock Divider Value for an external Clock Generator.
Label Description
Driver Strength for HS400 Specifies the Driver Strength for HS400.
mode Values:
■ Driver Type B (0)
■ Driver Type A (1)
■ Driver Type C (2)
■ Driver Type D (3)
Default Value: Driver Type B
Enabled: (DWC_MSHC_SD_EMMC_SUPPORT==1) &&
(DWC_MSHC_LS_NO_PHY_MODE==0)
Parameter Name: DWC_MSHC_DRV_SEL_HS400
Clock Generator Select for Specifies the Clock Generator to be selected for UHS-II Speed.
UHS-II Speed ■ 1: External Programmable Clock Generator
■ 0: External Clock Divider
Values:
■ 10-bit Divided Clock Mode (0)
■ Programmable Clock Mode (1)
Default Value: 10-bit Divided Clock Mode
Enabled: DWC_MSHC_UHS2_SUPPORT==1
Parameter Name: DWC_MSHC_CLKGEN_SEL_UHS2
Label Description
Frequency of RCLK for UHS-II Indicates the Frequency of RCLK for UHS-II Speed.
Speed The Value indicates the Clock Divider Value for an external Clock Generator.
Label Description
Select the Offset Address of Indicates the word aligned Offset Address of the UHS-II Settings Register.
the UHS-II Settings Register Values: 0x100, ..., 0xffc
Default Value: (DWC_MSHC_UHS2_SUPPORT > 0)? 328 : 3912
Enabled: DWC_MSHC_UHS2_SUPPORT==1
Parameter Name: DWC_MSHC_PTR_UHS2_SETTING
Select the Offset Address of Indicates the word aligned Offset Address of the UHS-II Host Capability Register.
the UHS-II Host Capability Values: 0x100, ..., 0xffc
Register Default Value: (DWC_MSHC_UHS2_SUPPORT > 0)? 344 : 3928
Enabled: DWC_MSHC_UHS2_SUPPORT==1
Parameter Name: DWC_MSHC_PTR_UHS2_CAPABILITY
Select the Offset Address of Indicates the word aligned Offset Address of the UHS-II Test Register.
the UHS-II Test Register Values: 0x100, ..., 0xffc
Default Value: (DWC_MSHC_UHS2_SUPPORT > 0)? 360 : 3944
Enabled: DWC_MSHC_UHS2_SUPPORT==1
Parameter Name: DWC_MSHC_PTR_UHS2_TEST
Select the Offset Address of Indicates the word aligned Offset Address of the Embedded Control Register.
the Embedded Control Values: 0x100, ..., 0xffc
Register Default Value: (DWC_MSHC_UHS2_SUPPORT > 0)? 364 : 3948
Enabled: Always
Parameter Name: DWC_MSHC_PTR_EMBDCTL
Select the Offset Address of Indicates the Offset Address of the Vendor Specific Area 1.
the Vendor Specific Register Values: 0x100, ..., 0xefc
Default Value: 0x500
Enabled: Always
Parameter Name: DWC_MSHC_PTR_VENDOR1
Label Description
Select the Offset Address of Indicates the Offset Address of the Vendor Specific Area 2.
the Vendor Specific Register The is used by eMMC HCI Registers. The address must be aligned to 128 bytes.
Values: 256, ..., ((DWC_MSHC_CRYPTO_SUPPORT > 0)?
((DWC_MSHC_CRYPTO_CFG > 0)? 8192 : 4096) : 3584)
Default Value: (DWC_MSHC_CRYPTO_SUPPORT > 0)?
((DWC_MSHC_CRYPTO_CFG > 0)? 8192 : 4096) : 384
Enabled: DWC_MSHC_CRYPTO_SUPPORT==0
Parameter Name: DWC_MSHC_PTR_VENDOR2
Label Description
Version Settings
Label Description
Label Description
Label Description
Group Allocation Power (GAP) Indicates the Maximum capability of the host power supply for a group configured by
a Host System.
This field is used to set the argument of DEVICE_INIT CCMD by the application
software.
Values:
■ Not Used (0)
■ 360 mW (1)
■ 720 mW (2)
■ 1080 mW (3)
■ 1440 mW (4)
■ 1800 mW (5)
■ 2160 mW (6)
■ 2520 mW (7)
■ 2880 mW (8)
■ 3240 mW (9)
■ 3600 mW (10)
■ 3960 mW (11)
■ 4320 mW (12)
■ 4680 mW (13)
■ 5040 mW (14)
■ 5400 mW (15)
Default Value: Not Used
Enabled: Always
Parameter Name: DWC_MSHC_UHS2_GAP
Label Description
Device Allocation Power (DAP) Indicates the Maximum capability of the host power supply for a device configured
by a Host System.
This field is used to set the argument of DEVICE_INIT CCMD by the application
software.
Values:
■ 360mW (0)
■ 360 mW (1)
■ 720 mW (2)
■ 1080 mW (3)
■ 1440 mW (4)
■ 1800 mW (5)
■ 2160 mW (6)
■ 2520 mW (7)
■ 2880 mW (8)
■ 3240 mW (9)
■ 3600 mW (10)
■ 3960 mW (11)
■ 4320 mW (12)
■ 4680 mW (13)
■ 5040 mW (14)
■ 5400 mW (15)
Default Value: 360mW
Enabled: Always
Parameter Name: DWC_MSHC_UHS2_DAP
Label Description
Minimum N_LSS_DIR Indicates the Minimum N_LSS_DIR required by the Host Controller.
Required Values:
■ 8 x 16 LSS (0)
■ 8 x 1 LSS (1)
■ 8 x 2 LSS (2)
■ 8 x 3 LSS (3)
■ 8 x 4 LSS (4)
■ 8 x 5 LSS (5)
■ 8 x 6 LSS (6)
■ 8 x 7 LSS (7)
■ 8 x 8 LSS (8)
■ 8 x 9 LSS (9)
■ 8 x 10 LSS (10)
■ 8 x 11 LSS (11)
■ 8 x 12 LSS (12)
■ 8 x 13 LSS (13)
■ 8 x 14 LSS (14)
■ 8 x 15 LSS (15)
Default Value: 8 x 16 LSS
Enabled: Always
Parameter Name: DWC_MSHC_PHY_N_LSS_DIR
Label Description
Minimum N_LSS_SYN Indicates the Minimum N_LSS_SYN required by the Host Controller.
Required Values:
■ 4 x 16 LSS (0)
■ 4 x 1 LSS (1)
■ 4 x 2 LSS (2)
■ 4 x 3 LSS (3)
■ 4 x 4 LSS (4)
■ 4 x 5 LSS (5)
■ 4 x 6 LSS (6)
■ 4 x 7 LSS (7)
■ 4 x 8 LSS (8)
■ 4 x 9 LSS (9)
■ 4 x 10 LSS (10)
■ 4 x 11 LSS (11)
■ 4 x 12 LSS (12)
■ 4 x 13 LSS (13)
■ 4 x 14 LSS (14)
■ 4 x 15 LSS (15)
Default Value: 4 x 16 LSS
Enabled: Always
Parameter Name: DWC_MSHC_PHY_N_LSS_SYN
Supported Speed Range Indicates the Supported Speed Range by the Host Controller.
Values:
■ Range A (0)
■ Range A and Range B (1)
Default Value: Range A
Enabled: Always
Parameter Name: DWC_MSHC_PHY_SPD_RANGE
Label Description
Minimum Number of Data Gap Indicates the Minimum number of data gap (DIDL) Supported.
(DIDL) Supported ■ 4: 4 LSS
■ 5: 5 LSS
■ 6: 6 LSS
■ ...........
■ 255: 255 LSS
Values: 4, ..., 255
Default Value: 4
Enabled: Always
Parameter Name: DWC_MSHC_LINK_N_DATA_GAP
Label Description
Maximum Number of Blocks Indicates Maximum number of blocks in a flow control unit Supported.
per Flow Control Unit ■ 0: 256 Blocks
■ 1: 1 Block
■ 2: 2 Blocks
■ .............
■ 255: 255 Blocks
The value of this parameter is automatically calculated based on the packet buffer
depth, the AXI data width, and the maximum block size using following formula:
DWC_MSHC_LINK_N_FCU = (DWC_MSHC_PKT_BUFFER_DEPTH /
(2*(DWC_MSHC_LINK_MAX_BLK_SIZE / (DWC_MSHC_MBIU_DW/8))))
Values: 0, ..., 255
Default Value: SNPS_RSVDPARAM_6 >= 1 ? SNPS_RSVDPARAM_6 : 1
Enabled: 0
Parameter Name: DWC_MSHC_LINK_N_FCU
Miscellaneous Settings
Minimum T_DMT_ENTRY in Indicates the Minimum time for entering into dormant state (T_DMT_ENTRY) in
bclk (equivalent to 750 RCLK) terms of base clock period. The equivalent of 750 RCLK (minimum T_DMT_ENTRY
as defined by specification) in terms of supported maximum base clock frequency
shall be provided. It should be derived based on maximum supported base clock
and minimum RCLK frequencies.
Values: 0x0, ..., 0x3fff
Default Value: 0x2224
Enabled: Always
Parameter Name: DWC_MSHC_T_DMT_ENTRY
Label Description
eMMC Features
Boot Support Indicates that DWC_mshc supports booting from an eMMC device.
DWC_mshc supports both Mandatory and Alternate Boot modes.
Values:
■ false (0)
■ true (1)
Default Value: DWC_MSHC_EMMC_SUPPORT==1
Enabled: 0
Parameter Name: DWC_MSHC_EMMC_BOOT_EN
Data Strobe Support Indicates that DWC_mshc supports strobe to sample the data on data line
sd_dat_in.
When this option is selected, DWC_mshc has extra input (sd_dat_stb), which is
used as data strobe to sample the data. The data is sampled using sd_dat_stb only
when HS400 mode is selected. This data strobe is used to sample CRC Status in
case of Card Write and Data in case of Card Read. This option is enabled when
Data Interface Width is selected as 8 bits.
Values:
■ false (0)
■ true (1)
Default Value: false
Enabled: (DWC_MSHC_EMMC_SUPPORT==1) &&
(DWC_MSHC_SD_DAT_WIDTH == 1) &&
(DWC_MSHC_LS_NO_PHY_MODE==0)
Parameter Name: DWC_MSHC_EMMC_DATASTROBE_EN
Label Description
Negedge Data transmission in Indicates DWC_mshc is configured to support Negedge transmission of data in
HS400 mode HS400 mode to help meet timing for both HS200 and HS400 device i/p timings.
Values:
■ false (0)
■ true (1)
Default Value: false
Enabled: (DWC_MSHC_EMMC_SUPPORT==1) &&
(DWC_MSHC_LS_NO_PHY_MODE==0) &&
(DWC_MSHC_EMMC_DATASTROBE_EN==1)
Parameter Name: DWC_MSHC_NEG_DATA_HS400_MODE
Label Description
Command Queuing Support Indicates DWC_mshc supports Command Queueing. This is applicable only for
SD/eMMC. It is not applicable for UHS-II.
Values:
■ false (0)
■ true (1)
Default Value: false
Enabled: DWC-MSHC-SRC or DWC-MSHC-CRYPTO license is required to enable
this parameter when Card Interface type is SD/eMMC
Parameter Name: DWC_MSHC_EMMC_CQE_EN
Controller Command Queue Indicates the command queueing depth as supported by the device. Refer the
Depth Command Queue Depth specification of the eMMC device. The controller uses this
configuration to optimize the area of task scheduler.
■ 0: Maximum of 1 task can be queued. (Depth:1)
■ 1: Maximum of 2 tasks can be queued. (Depth:2)
■ 2: Maximum of 3 tasks can be queued. (Depth:3)
■ ......
■ 31: Maximum of 32 tasks can be queued. (Depth:32)
Values: 0, ..., 31
Default Value: 31
Enabled: 0
Parameter Name: DWC_MSHC_CMDQD
Label Description
Need Additional Packet Buffer Indicates that additional packet buffer rows will be used when Command Queuing is
Rows For CMD Queuing enabled.
The Command Queuing Engine requires a maximum of 32 rows of memory for local
storage in the packet buffer.
Consider that the packet buffer depth selected is 512 rows:
■ When de-selected, the configured DWC_MSHC_PKT_BUFFER_DEPTH is
shared between the data and local storage (not optimal). In this case, the total
number of packet buffer rows is equal to 512.
■ When selected, this option indicates that Packet Buffer can provide additional
rows (recommended). In this case, the total number of packet buffer rows is
equal to 544.
Values:
■ false (0)
■ true (1)
Default Value: DWC_MSHC_EMMC_CQE_EN == 1
Enabled: DWC_MSHC_EMMC_CQE_EN == 1
Parameter Name: DWC_MSHC_EMMC_CQE_EXTRA_ROWS
CQE Timer Clock Frequency Indicates the timer clock frequency multiplier value of the command queuing engine.
Multiplier The configured value reflects in the CQCAP.ITCFMUL of the HCI.
■ 0: 1 KHz
■ 1: 10 KHz
■ 2: 100 KHz
■ 3: 1 MHz
■ 4: 10 Mhz
Values: 0, ..., 4
Default Value: 3
Enabled: DWC_MSHC_EMMC_CQE_EN == 1
Parameter Name: DWC_MSHC_CQE_TIMER_CLK_FMUL
CQE Timer Clock Frequency Indicates the timer clock frequency value of the command queuing engine. The
configured value reflects in the CQCAP.ITCFVAL of the HCI.
■ 0: Not allowed
■ 1: Multiply by 1
■ 2: Multiply by 2
■ ......
■ 1023: Multiply by 1023
Values: 0, ..., 1023
Default Value: 200
Enabled: DWC_MSHC_EMMC_CQE_EN == 1
Parameter Name: DWC_MSHC_CQE_TIMER_CLK_FVAL
Label Description
Sideband signal support for Indicates the support of sideband signals in Master interface.
AXI Master Interface Type
Values:
■ false (0)
■ true (1)
Default Value: false
Enabled: (DWC_MSHC_MST_INTERFACE_TYPE==0) &&
(DWC_MSHC_EMMC_CQE_EN==1)
Parameter Name: DWC_MSHC_DEBUG_SIDEBAND_EN
Label Description
SD/eMMC PHY Type Selects the SD/eMMC PHY to be used with this configuration inside top wrapper.
External Phy - SD/eMMC PHY will not be instantiated inside wrapper SNPS
SD/eMMC PHY - Synopsys DesignWare SD/eMMC PHY is instantiated inside the
wrapper.
Values:
■ External PHY (0)
■ SNPS SD/eMMC PHY (1)
Default Value: External PHY
Enabled: (DWC_MSHC_SD_EMMC_SUPPORT == 1) &&
(DWC_MSHC_LS_NO_PHY_MODE==0)
Parameter Name: DWC_MSHC_SDEMMC_PHY_TYPE
UHS2 PHY Type Selects UHS2 PHY used for this configuration. External Phy - UHS2 PHY will not be
instantiated inside wrapper Partner-Vendor PHY - Partner Vendor's PHY and SNPS
SD/eMMC PHY are instantiated inside the wrapper.
Values:
■ External PHY (0)
■ Partner-Vendor PHY (1)
Default Value: External PHY
Enabled: DWC_MSHC_UHS2_SUPPORT==1 &&
DWC_MSHC_SDEMMC_PHY_TYPE==1
Parameter Name: DWC_MSHC_UHS2_PHY_TYPE
SD/eMMC PHY voltage Synopsys DesignWare SD/eMMC PHY is available in two voltage support variants.
support Use this option to pick the right variant that would be used in the subsystem
wrapper.
Values:
■ 3.3v and 1.8v (0)
■ 1.8v and 1.2v (1)
■ 1.8v (2)
Default Value: 3.3v and 1.8v
Enabled: DWC_MSHC_SDEMMC_PHY_TYPE==1
Parameter Name: DWC_MSHC_SDEMMC_PHY_VOLT
Label Description
Synopsys SD/eMMC PHY When selected Controller implements Synopsys SD/eMMC PHY specific control
registers and status registers
Values:
■ false (0)
■ true (1)
Default Value: DWC_MSHC_SDEMMC_PHY_TYPE==1
Enabled: DWC_MSHC_SDEMMC_PHY_TYPE==1
Parameter Name: DWC_MSHC_SDEMMC_PHY_REGS
Implement Loopback and When selected Controller implements PRBS and Loopback features for PHY DFT
PRBS features Values:
■ false (0)
■ true (1)
Default Value: false
Enabled: DWC_MSHC_SDEMMC_PHY_TYPE==1
Parameter Name: DWC_MSHC_SDEMMC_PHY_DFT
Implement JTAG Interface When selected, Controller implements JTAG I/F that allows test mode access to
MSHC registers. This is in addition to existing AHB I/F which is to be used for
accessing MSHC registers in functional mode
Values:
■ false (0)
■ true (1)
Default Value: false
Enabled: DWC_MSHC_SDEMMC_PHY_TYPE==1
Parameter Name: DWC_MSHC_JTAGIF_EN
Base offset address for PHY Indicates the Base offset address of PHY registers address block
registers
Values: 0x100, ..., 0xefc
Default Value: 0x300
Enabled: 0
Parameter Name: DWC_MSHC_PTR_PHY_REGS
Label Description
SD/eMMC PHY active during Selects whether the PHY needs to be active during test mode
test scan mode Values:
■ false (0)
■ true (1)
Default Value: false
Enabled: DWC_MSHC_SDEMMC_PHY_TYPE==1
Parameter Name: DWC_MSHC_SDEMMC_PHY_TEST_ACTIVE
4
Signal Descriptions
This chapter details all possible I/O signals in the controller. For configurable IP titles, your actual
configuration might not contain all of these signals.
Inputs are on the left of the signal diagrams; outputs are on the right.
Attention: For configurable IP titles, do not use this document to determine the exact I/O footprint of the
controller. It is for reference purposes only.
When you configure the controller in coreConsultant, you must access the I/O signals for your actual
configuration at workspace/report/IO.html or workspace/report/IO.xml after you have completed the
report creation activity. That report comes from the exact same source as this chapter but removes all the
I/O signals that are not in your actual configuration. This does not apply to non-configurable IP titles. In
addition, all parameter expressions are evaluated to actual values. Therefore, the widths might change
depending on your actual configuration.
Some expressions might refer to TCL functions or procedures (sometimes identified as <functionof>) that
coreConsultant uses to make calculations. The exact formula used by these TCL functions is not provided in
this chapter. However, when you configure the controller in coreConsultant, all TCL functions and
parameters are evaluated completely; and the resulting values are displayed where appropriate in the
coreConsultant GUI reports.
In addition to describing the function of each signal, the signal descriptions in this chapter include the
following information:
Active State: Indicates whether the signal is active high or active low. When a signal is not intended to be
used in a particular application, then this signal needs to be tied or driven to the inactive state (opposite of
the active state).
Registered: Indicates whether or not the signal is registered directly inside the IP boundary without
intervening logic (excluding simple buffers). A value of No does not imply that the signal is not
synchronous, only that there is some combinatorial logic between the signal's origin or destination register
and the boundary of the controller. A value of N/A indicates that this information is not provided for this IP
title.
Synchronous to: Indicates which clocks in the IP sample this input (drive for an output) when considering
all possible configurations. A particular configuration might not have all of the clocks listed. This clock
might not be the same as the clock that your application logic should use to clock (sample/drive) this pin.
For more details, consult the clock section in the databook.
Exists: Names of configuration parameters that populate this signal in your configuration.
Validated by: Assertion or de-assertion of signals that validates the signal being described.
The I/O signals are grouped as follows:
■ AXI Interface on page 157
■ AHB Master Interface on page 168
■ AHB Slave Interface on page 171
■ RAM Interface on page 175
■ SD/eMMC Card Interface on page 177
■ Auto-Tuning Interface on page 180
■ UHS-II Card Interface on page 182
■ Card Clock Control on page 188
■ Card Bus Power Control Interface on page 192
■ Misc Signals Interface on page 194
■ SD/eMMC PHY Interface on page 200
■ Debug Sideband Interface on page 213
■ JTAG Interface on page 215
aclk - - awaddr
aresetn - - awlen
awready - - awid
wready - - awburst
bid - - awvalid
bresp - - awqos
bvalid - - awsize
arready - - awlock
rid - - awcache
rresp - - awprot
rdata - - wid
rvalid - - wdata
rlast - - wstrb
- wlast
- wvalid
- bready
- araddr
- arlen
- arid
- arburst
- arvalid
- arqos
- arsize
- arlock
- arcache
- arprot
- rready
m_hclk - - m_haddr
m_hresetn - - m_hburst
m_hgrant - - m_hbusreq
m_hrdata - - m_hprot
m_hready - - m_hsize
m_hresp - - m_htrans
- m_hwdata
- m_hwrite
m_hgrant I AHB bus grant. Asserted by arbiter to indicate that requesting master
has won ownership of bus.
Exists: (DWC_MSHC_MST_INTERFACE_TYPE==1) &&
(MSHC_MAHB_LITE==0)
Synchronous To: m_hclk
Registered: No
Power Domain: SINGLE_DOMAIN
Active State: High
m_hrdata[(DWC_MSHC_MBIU_DW- I Transfer read data. Used to transfer data from bus slaves to bus
1):0] master during read operations.
Exists: (DWC_MSHC_MST_INTERFACE_TYPE==1)
Synchronous To: m_hclk
Registered: No
Power Domain: SINGLE_DOMAIN
Active State: High
m_hwrite O Transfer write control. When HIGH, indicates write transfer. When
LOW, indicates read transfer.
Exists: (DWC_MSHC_MST_INTERFACE_TYPE==1)
Synchronous To: m_hclk
Registered: Yes
Power Domain: SINGLE_DOMAIN
Active State: High
hclk - - hrdata
hresetn - - hresp
hsel - - hready_resp
haddr -
hsize -
htrans -
hwrite -
hready -
hwdata -
■ OKAY:
■ RETRY:
ram_data_in - - ram_cs_n
- ram_rw_n
- ram_addr
- ram_data_out
cclk_tx - - sd_cmd_out
cclk_rx - - sd_cmd_out_en
cresetn_tx - - sd_dat_out
cresetn_rx - - sd_dat_out_en
sd_cmd_in - - sd_rst_n
sd_dat_in - - sd_rst_n_oe
sd_dat_stb - - sd_datxfer_width
sd_rst_n_oe O Output enable control for eMMC device reset signal PAD.
Exists: (DWC_MSHC_CARD_INTERFACE_TYPE > 2)
Synchronous To: hclk
Registered: Yes
Power Domain: SINGLE_DOMAIN
Active State: Low
drift_cclk_rx - - autotuning_cclk_sel
cresetn_drx - - autotuning_cclk_sel_update
autotuning_cclk_sel[(DWC_MSHC_DL_ O Selects the Left/Right Edge phase of sampling clock for Auto-tuning.
CW-1):0] This signal must be used as:
■ A "Mux-select" to the clock muxtiplixer that selects different
phases of drift_cclk_rx, or
■ A delay control code to the delay line that changes drift_cclk_rx
phase.
The value is decided by the auto-tuning engine.
Exists: (DWC_MSHC_RETUNE_MODE==1) &&
(DWC_MSHC_CARD_INTERFACE_TYPE!=2)
Synchronous To: cclk_tx
Registered: Yes
Power Domain: SINGLE_DOMAIN
Active State: High
pclk - - uhs2_mode
presetn - - uhs2_ct
uhs2_rdm - - uhs2_tdm
uhs2_rd - - uhs2_td
uhs2_rdtm - - uhs2_tdrm
uhs2_rdt - - uhs2_tdr
uhs2_st -
Exists: (DWC_MSHC_CARD_INTERFACE_TYPE==0 ||
DWC_MSHC_CARD_INTERFACE_TYPE==2 ||
DWC_MSHC_CARD_INTERFACE_TYPE==3)
Synchronous To: pclk
Registered: No
Power Domain: SINGLE_DOMAIN
Active State: High
card_clk_stable - - clk2card_on
int_bclk_stable - - tuning_cclk_sel
int_aclk_stable - - tuning_cclk_sel_update
int_tmclk_stable - - sample_cclk_sel
- card_clk_gen_sel
- card_clk_freq_sel
- uhs2_spd_range
- card_clk_en
- intclk_en
tuning_cclk_sel[(DWC_MSHC_DL_CW- O Selects the appropriate tuned (phase shifted) clock to receive the
1):0] data.
This signal should be used as:
■ A "Mux-select" to the clock muxtiplexer that selects different
phases of cclk_rx, or
■ A delay control code to the delay line that changes cclk_rx phase.
The value is decided after execution of tuning sequence and it is
used to select the phase of cclk_rx clock.
Exists: (DWC_MSHC_CARD_INTERFACE_TYPE!=2) &&
(DWC_MSHC_LS_NO_PHY_MODE==0)
Synchronous To: cclk_tx
Registered: Yes
Power Domain: SINGLE_DOMAIN
Active State: High
sample_cclk_sel O Select sampling clock to receive CMD and DAT for UHS-I Tuned
clock (phase shifted) or fixed clock
■ 1 - Tuned clock is used to sample the data
■ 0 - Fixed clock is used to sample the data
Exists: (DWC_MSHC_CARD_INTERFACE_TYPE!=2) &&
(DWC_MSHC_LS_NO_PHY_MODE==0)
Synchronous To: hclk
Registered: Yes
Power Domain: SINGLE_DOMAIN
Active State: High
card_clk_en O This signal is used to enable dedicated card clock PLL (if used in
Host system design)
Exists: Always
Synchronous To: hclk
Registered: No
Power Domain: SINGLE_DOMAIN
Active State: High
host_reg_vol_stable - - sd_vdd1_sel
- sd_vdd2_sel
- sd_vdd1_on
- sd_vdd2_on
■ 111b - 3.3V
■ 110b - 3.0V
■ 101b - 1.8V
■ 100b-000b - Reserved
Exists: Always
Synchronous To: hclk
Registered: Yes
Power Domain: SINGLE_DOMAIN
Active State: High
bclk - - intr
bresetn - - wakeup_intr
tmclk - - uhs2_if_en
tresetn - - uhs1_drv_sth
cqetmclk - - uhs1_swvolt_en
cqetresetn - - gp_out
card_detect_n - - led_control
card_write_prot -
gp_in -
test_scan_mode -
Note: This output can also be used in eMMC mode. eMMC defines
five type of driver strengths namely Type0, Type1, Type2, Type3 and
Type4. Any of the four driver strengths can be mapped to this output.
Exists: (DWC_MSHC_CARD_INTERFACE_TYPE!=2)
Synchronous To: hclk
Registered: No
Power Domain: SINGLE_DOMAIN
Active State: High
Note: This output can also be used in eMMC mode while switching
from 3.0V to 1.8V.
Exists: (DWC_MSHC_CARD_INTERFACE_TYPE!=2)
Synchronous To: hclk
Registered: Yes
Power Domain: SINGLE_DOMAIN
Active State: High
phy_powergood - - phy_resetb
pdtst_y - - phy_pad_sp
dll_locked - - phy_pad_sn
dll_lock_error - - cpd_rxsel
dll_dbg_mstlockcode - - cpd_pu
dll_dbg_slvlockcode - - cpd_pd
- cpd_txpren
- cpd_txprep
- dpd_rxsel
- dpd_pu
- dpd_pd
- dpd_txpren
- dpd_txprep
- ckpd_rxsel
- ckpd_pu
- ckpd_pd
- ckpd_txpren
- ckpd_txprep
- spd_rxsel
- spd_pu
- spd_pd
- spd_txpren
- spd_txprep
- rpd_rxsel
- rpd_pu
- rpd_pd
- rpd_txpren
- rpd_txprep
- pdtst_mode
- pdtst_oe
- pdtst_a
- phy_dl_step
- phy_dlout_en
- phy_tune_dly
- cckdl_extdlyen
- cckdl_config
- cckdl_bypassen
- cckdl_dc_update
- cckdl_dc
- smpdl_extdlyen
- smpdl_config
- smpdl_override
- smpdl_bypassen
- atdl_extdlyen
- atdl_config
- atdl_bypassen
- dllslv_update_dly
- dll_waitcycle
- dll_jumpstep
- dllmst_extdlyen
- dllmst_config
- dllmst_bypassen
- dllslv_extdlyen
- dllslv_config
- dllslv_bypassen
- dllslv_swdc_update
- dll_offset
- dll_en
- dll_offseten
- dllmst_test_dc
- dll_lbt_loadval
- dll_update_windw
- hs400_lpbk_en
phy_pad_sp[3:0] O Output buffer PMOS strength control for SD/eMMC PHY PADs
Exists: (DWC_MSHC_SDEMMC_PHY_REGS==1)
Synchronous To: hclk
Registered: Yes
Power Domain: SINGLE_DOMAIN
Active State: High
phy_pad_sn[3:0] O Output buffer NMOS strength control for SD/eMMC PHY PADs
Exists: (DWC_MSHC_SDEMMC_PHY_REGS==1)
Synchronous To: hclk
Registered: Yes
Power Domain: SINGLE_DOMAIN
Active State: High
dpd_rxsel[2:0] O SD/eMMC PHY Data Pad's receiver select control. Common for all
PADs used for data
Exists: (DWC_MSHC_SDEMMC_PHY_REGS==1)
Synchronous To: hclk
Registered: Yes
Power Domain: SINGLE_DOMAIN
Active State: High
dpd_pu O SD/eMMC PHY Data Pad's pullup enable control.Common for all
PADs used for data
Exists: (DWC_MSHC_SDEMMC_PHY_REGS==1)
Synchronous To: hclk
Registered: Yes
Power Domain: SINGLE_DOMAIN
Active State: High
dpd_pd O SD/eMMC PHY Data Pad's pull down control.Common for all PADs
used for data
Exists: (DWC_MSHC_SDEMMC_PHY_REGS==1)
Synchronous To: hclk
Registered: Yes
Power Domain: SINGLE_DOMAIN
Active State: High
dpd_txpren[3:0] O SD/eMMC PHY Data Pad's TX Slew control NMOS.Common for all
PADs used for data
Exists: (DWC_MSHC_SDEMMC_PHY_REGS==1)
Synchronous To: hclk
Registered: Yes
Power Domain: SINGLE_DOMAIN
Active State: High
dpd_txprep[3:0] O SD/eMMC PHY Data Pad's TX Slew control PMOS. Common for all
PADs used for data
Exists: (DWC_MSHC_SDEMMC_PHY_REGS==1)
Synchronous To: hclk
Registered: Yes
Power Domain: SINGLE_DOMAIN
Active State: High
rpd_rxsel[2:0] O SD/eMMC PHY GPIO Pad's receiver select control. Common for all
PADs used for all GPIOs
Exists: (DWC_MSHC_SDEMMC_PHY_REGS==1)
Synchronous To: hclk
Registered: Yes
Power Domain: SINGLE_DOMAIN
Active State: High
rpd_pu O SD/eMMC PHY GPIO Pad's pullup enable control.Common for all
PADs used for all GPIOs
Exists: (DWC_MSHC_SDEMMC_PHY_REGS==1)
Synchronous To: hclk
Registered: Yes
Power Domain: SINGLE_DOMAIN
Active State: High
rpd_pd O SD/eMMC PHY GPIO Pad's pull down control.Common for all PADs
used for all GPIOs
Exists: (DWC_MSHC_SDEMMC_PHY_REGS==1)
Synchronous To: hclk
Registered: Yes
Power Domain: SINGLE_DOMAIN
Active State: High
rpd_txpren[3:0] O SD/eMMC PHY GPIO Pad's TX Slew control NMOS.Common for all
PADs used for all GPIOs
Exists: (DWC_MSHC_SDEMMC_PHY_REGS==1)
Synchronous To: hclk
Registered: Yes
Power Domain: SINGLE_DOMAIN
Active State: High
rpd_txprep[3:0] O SD/eMMC PHY GPIO Pad's TX Slew control PMOS. Common for all
PADs used for all GPIOs
Exists: (DWC_MSHC_SDEMMC_PHY_REGS==1)
Synchronous To: hclk
Registered: Yes
Power Domain: SINGLE_DOMAIN
Active State: High
pdtst_a[(MSHC_SDEMMCPHY_NUMPA O SD/eMMC PHY PAD test mode PAD Input. Connects to test mode ia
DS-1):0] of PAD
Exists: (DWC_MSHC_SDEMMC_PHY_REGS==1)
Synchronous To: hclk
Registered: Yes
Power Domain: SINGLE_DOMAIN
Active State: High
pdtst_y[(MSHC_SDEMMCPHY_NUMPA I SD/eMMC PHY PAD test mode pad output. Conncts to test mode oy
DS-1):0] of PAD
Exists: (DWC_MSHC_SDEMMC_PHY_REGS==1)
Synchronous To: Asynchronous
Registered: Yes
Power Domain: SINGLE_DOMAIN
Active State: High
cckdl_extdlyen O SD/eMMC PHY Fixed Delay Enable. This signal enables additional
fixed delay equivalent of 128 stages for card clock delayline.
Exists: (DWC_MSHC_SDEMMC_PHY_REGS==1)
Synchronous To: hclk
Registered: Yes
Power Domain: SINGLE_DOMAIN
Active State: High
cckdl_config[1:0] O SD/eMMC PHY's card clock delay Line input source control
Exists: (DWC_MSHC_SDEMMC_PHY_REGS==1)
Synchronous To: hclk
Registered: Yes
Power Domain: SINGLE_DOMAIN
Active State: High
cckdl_dc_update O SD/eMMC PHY's card clock delay Line output disable control. When
'1' it shuts off output of delay line and prepared it for code update.
Exists: (DWC_MSHC_SDEMMC_PHY_REGS==1)
Synchronous To: hclk
Registered: Yes
Power Domain: SINGLE_DOMAIN
Active State: High
smpdl_extdlyen O SD/eMMC PHY Fixed Delay Enable. This signal enables additional
fixed delay equivalent of 128 stages for sampling clock delayline.
Exists: (DWC_MSHC_SDEMMC_PHY_REGS==1)
Synchronous To: hclk
Registered: Yes
Power Domain: SINGLE_DOMAIN
Active State: High
smpdl_config[1:0] O SD/eMMC PHY's sampling clock delay Line input source control
Exists: (DWC_MSHC_SDEMMC_PHY_REGS==1)
Synchronous To: hclk
Registered: Yes
Power Domain: SINGLE_DOMAIN
Active State: High
atdl_extdlyen O SD/eMMC PHY Fixed Delay Enable. This signal enables additional
fixed delay equivalent of 128 stages for autotuning clock delayline.
Exists: (DWC_MSHC_SDEMMC_PHY_REGS==1)
Synchronous To: hclk
Registered: Yes
Power Domain: SINGLE_DOMAIN
Active State: High
atdl_config[1:0] O SD/eMMC PHY's Autotuning clock delay Line input source control
Exists: (DWC_MSHC_SDEMMC_PHY_REGS==1)
Synchronous To: hclk
Registered: Yes
Power Domain: SINGLE_DOMAIN
Active State: High
dllslv_update_dly[1:0] O controls the duration DLL slave delayline's output are cut-off during
code update
Exists: (DWC_MSHC_EMMC_DATASTROBE_EN==1) &&
(DWC_MSHC_SDEMMC_PHY_REGS==1)
Synchronous To: hclk
Registered: Yes
Power Domain: SINGLE_DOMAIN
Active State: High
dll_waitcycle[2:0] O specifies the number of clock cycles DLL logic has to wait before
sensing lead/lag output from phase detector
Exists: (DWC_MSHC_EMMC_DATASTROBE_EN==1) &&
(DWC_MSHC_SDEMMC_PHY_REGS==1)
Synchronous To: hclk
Registered: Yes
Power Domain: SINGLE_DOMAIN
Active State: High
dllmst_extdlyen O SD/eMMC PHY DLL Master Fixed Delay Enable. This signal enables
additional fixed delay equivalent of 128 stages
Exists: (DWC_MSHC_EMMC_DATASTROBE_EN==1) &&
(DWC_MSHC_SDEMMC_PHY_REGS==1)
Synchronous To: hclk
Registered: Yes
Power Domain: SINGLE_DOMAIN
Active State: High
dllmst_config[1:0] O SD/eMMC PHY's DLL Master delay Line input source control
Exists: (DWC_MSHC_EMMC_DATASTROBE_EN==1) &&
(DWC_MSHC_SDEMMC_PHY_REGS==1)
Synchronous To: hclk
Registered: Yes
Power Domain: SINGLE_DOMAIN
Active State: High
dllslv_extdlyen O SD/eMMC PHY DLL Slave Fixed Delay Enable. This signal enables
additional fixed delay equivalent of 128 stages
Exists: (DWC_MSHC_EMMC_DATASTROBE_EN==1) &&
(DWC_MSHC_SDEMMC_PHY_REGS==1)
Synchronous To: hclk
Registered: Yes
Power Domain: SINGLE_DOMAIN
Active State: High
dllslv_config[1:0] O SD/eMMC PHY's DLL Slave delay Line input source control
Exists: (DWC_MSHC_EMMC_DATASTROBE_EN==1) &&
(DWC_MSHC_SDEMMC_PHY_REGS==1)
Synchronous To: hclk
Registered: Yes
Power Domain: SINGLE_DOMAIN
Active State: High
dllmst_test_dc[6:0] O Sets the value of DLL's master test code input when dll is disabled
Exists: (DWC_MSHC_EMMC_DATASTROBE_EN==1) &&
(DWC_MSHC_SDEMMC_PHY_REGS==1)
Synchronous To: cclk_tx
Registered: Yes
Power Domain: SINGLE_DOMAIN
Active State: High
dll_lbt_loadval[15:0] O Sets the value of DLL's olbt_loadval input. Controls the lbt timer's
timeout value at which DLL runs a revalidation cycle.
Exists: (DWC_MSHC_EMMC_DATASTROBE_EN==1) &&
(DWC_MSHC_SDEMMC_PHY_REGS==1)
Synchronous To: hclk
Registered: Yes
Power Domain: SINGLE_DOMAIN
Active State: High
dll_update_windw O DLL update window status, DLL updates slave code when this signal
is 1.
Exists: (DWC_MSHC_EMMC_DATASTROBE_EN==1) &&
(DWC_MSHC_SDEMMC_PHY_REGS==1)
Synchronous To: cclk_tx
Registered: No
Power Domain: SINGLE_DOMAIN
Active State: High
dll_dbg_mstlockcode[6:0] I DLL's Master Delay line lock code for debug purpose
Exists: (DWC_MSHC_EMMC_DATASTROBE_EN==1) &&
(DWC_MSHC_SDEMMC_PHY_REGS==1)
Synchronous To: cclk_tx
Registered: No
Power Domain: SINGLE_DOMAIN
Active State: High
dll_dbg_slvlockcode[6:0] I DLL's Slave Delay line lock code for debug purpose
Exists: (DWC_MSHC_EMMC_DATASTROBE_EN==1) &&
(DWC_MSHC_SDEMMC_PHY_REGS==1)
Synchronous To: cclk_tx
Registered: No
Power Domain: SINGLE_DOMAIN
Active State: High
- dbg_aw_task_id
- dbg_aw_pyld_descr
- dbg_w_task_id
- dbg_w_pyld_descr
- dbg_ar_task_id
- dbg_ar_pyld_descr
dbg_w_task_id[(DWC_SIDEBAND_TAS O Sideband TaskID debug signals Write data channel Signal reflects
KID_W-1):0] the task id of the current write transaction in CQE mode. Driven
based on the task ID programmed for the current transfer. When
CQE Mode is not programmed i.e. CQCFG[CQ_EN] is 0, this will be
driven to 0 always.
Exists: (DWC_MSHC_DEBUG_SIDEBAND_EN==1)
Synchronous To: aclk
Registered: Yes
Power Domain: SINGLE_DOMAIN
Active State: High
dbg_w_pyld_descr O Sideband Desc payload debug signals Write data channel 1: Payload
Write :: Data that is got from emmc card 0: All other cases
Exists: (DWC_MSHC_DEBUG_SIDEBAND_EN==1)
Synchronous To: aclk
Registered: Yes
Power Domain: SINGLE_DOMAIN
Active State: High
jtagif_sel - - tdo
tck - - tdo_en
trstn -
tms -
tdi -
5
Register Descriptions
This chapter details all possible registers in the IP. They are arranged hierarchically into maps and blocks
(banks).Your actual configuration might not contain all of these registers.
Attention: For configurable IP titles, do not use this document to determine the exact attributes of your
register map. It is for reference purposes only.
When you configure the controller in coreConsultant, you must access the register attributes for your actual
configuration at workspace/report/ComponentRegisters.html or
workspace/report/ComponentRegisters.xml after you have completed the report creation activity. That
report comes from the exact same source as this chapter but removes all the registers that are not in your
actual configuration. This does not apply to non-configurable IP titles. In addition, all parameter
expressions are evaluated to actual values. Therefore, the Offset and Memory Access values might change
depending on your actual configuration.
Some expressions might refer to TCL functions or procedures (sometimes identified as <functionof>) that
coreConsultant uses to make calculations. The exact formula used by these TCL functions is not provided in
this chapter. However, when you configure the controller in coreConsultant, all TCL functions and
parameters are evaluated completely; and the resulting values are displayed where appropriate in the
coreConsultant GUI reports.
Exists Expressions
These expressions indicate the combination of configuration parameters required for a register, field, or
block to exist in the memory map. The expression is only valid in the local context and does not indicate the
conditions for existence of the parent. For example, the expression for a bit field in a register assumes that
the register exists and does not include the conditions for existence of the register.
Offset
The term Offset is synonymous with Address.
Memory Access Attributes
The Memory Access attribute is defined as <ReadBehavior>/<WriteBehavior> which are defined in the
following table.
R/W1C You can read this register field. Writing 1 clears it.
RC/W1C Reading this register field clears it. Writing 1 clears it.
R/Wo You can read this register field. You can only write to it once.
Attribute Description
Reset Mask As defined by the IP-XACT specification. Indicates that this register
field has an unknown reset value. For example, the reset value is set
by another register or an input pin; or the register is implemented
using RAM.
* Varies Indicates that the memory access (or reset) attribute (read, write
behavior) is not fixed. For example, the read-write access of the
register is controlled by a pin or another register. Or when the
access depends on some configuration parameter; in this case the
post-configuration report in coreConsultant gives the actual access
value.
Component Banks/Blocks
The following table shows the address blocks for each memory map. Follow the link for an address block to
see a table of its registers.
DWC_mshc_block on page 221 This register block defines the standard SD Host
Controller register set
Exists: Always
DWC_mshc_UHS_II_setting_block on page 425 This register block has UHS-II related setting registers
Exists: (DWC_MSHC_UHS2_SUPPORT==1)
DWC_mshc_UHS_II_capability_block on page 434 This register block defines UHS-II related capability
registers
Exists: (DWC_MSHC_UHS2_SUPPORT==1)
DWC_mshc_UHS_II_test_block on page 445 This register block defines UHS-II test related registers
Exists: (DWC_MSHC_UHS2_SUPPORT==1)
DWC_mshc_embedded_control_block on page 451 This register block defines embedded control registers
Exists: Always
DWC_mshc_vendor2_block on page 456 This register block defines Vendor-2 related registers
Exists: DWC_MSHC_SD_EMMC_SUPPORT==1
DWC_mshc_phy_block on page 498 This register block has PHY related registers
Exists: (DWC_MSHC_SDEMMC_PHY_REGS== 1)
DWC_mshc_vendor1_block on page 540 This register block defines Vendor-1 related registers
Exists: Always
FORCE_AUTO_CMD_STAT_R on 0x50 Force Event Register for Auto CMD Error Status register
page 327
ADMA_ID_LOW_R on page 356 0x78 ADMA3 Integrated Descriptor Address Register - Low
ADMA_ID_HIGH_R on page 357 0x7c ADMA3 Integrated Descriptor Address Register - High
UHS_II_COMMAND_PKT_12_15_R on 0x94 UHS-II Command Packet Register (Byte 12, 13, 14 and 15)
page 366
UHS_II_COMMAND_PKT_16_19_R on 0x98 UHS-II Command Packet Register (Byte 16, 17, 18 and 19)
page 367
UHS_II_RESP_8_11_R on page 379 0xa8 UHS-II Response Register (Byte 8, 9, 10 and 11)
UHS_II_RESP_12_15_R on page 380 0xac UHS-II Response Register (Byte 12, 13, 14 and 15)
UHS_II_RESP_16_19_R on page 381 0xb0 UHS-II Response Register (Byte 16, 17, 18 and 19)
5.1.1 SDMASA_R
■ Name: SDMA System Address register
■ Description: This register is used to configure a 32-bit Block Count or an SDMA System Address
based on the Host Version 4 Enable bit in the Host Control 2 register. This register is applicable for
both SD and eMMC modes.
■ Size: 32 bits
■ Offset: 0x0
■ Exists: (DWC_MSHC_SD_EMMC_SUPPORT==1)
BLOCKCNT_SDMASA 31:0
Memory
Bits Name Access Description
5.1.2 BLOCKSIZE_R
■ Name: Block Size register
■ Description: This register is used to configure an SDMA buffer boundary and the number of bytes in
a data block. This register is applicable for both SD and eMMC modes.
■ Size: 16 bits
■ Offset: 0x4
■ Exists: (DWC_MSHC_SD_EMMC_SUPPORT==1)
14:12
11:0
RSVD_BLOCKSIZE15 15
SDMA_BUF_BDARY
XFER_BLOCK_SIZE
Memory
Bits Name Access Description
Memory
Bits Name Access Description
5.1.3 BLOCKCOUNT_R
■ Name: 16-bit Block Count register
■ Description: This register is used to configure the number of data blocks. This register is applicable
for both SD and eMMC modes.
■ Size: 16 bits
■ Offset: 0x6
■ Exists: (DWC_MSHC_SD_EMMC_SUPPORT==1)
BLOCK_CNT 15:0
Memory
Bits Name Access Description
5.1.4 ARGUMENT_R
■ Name: Argument register
■ Description: This register is used to configure the SD/eMMC command argument.
■ Size: 32 bits
■ Offset: 0x8
■ Exists: (DWC_MSHC_SD_EMMC_SUPPORT==1)
ARGUMENT 31:0
Memory
Bits Name Access Description
5.1.5 XFER_MODE_R
■ Name: Transfer Mode register
■ Description: This register is used to control the operation of data transfers for an SD/eMMC mode.
The Host driver sets this register before issuing a command that transfers data.
■ Size: 16 bits
■ Offset: 0xc
■ Exists: (DWC_MSHC_SD_EMMC_SUPPORT==1)
15:9
3:2
8
RESP_ERR_CHK_ENABLE 7
6
5
4
1
0
BLOCK_COUNT_ENABLE
AUTO_CMD_ENABLE
RESP_INT_DISABLE
DATA_XFER_DIR
MULTI_BLK_SEL
DMA_ENABLE
RESP_TYPE
RSVD
Memory
Bits Name Access Description
Memory
Bits Name Access Description
Values:
■ 0x0 (DISABLED): Response Error Check is disabled
■ 0x1 (ENABLED): Response Error Check is enabled
Value After Reset: 0x0
Exists: Always
Memory
Bits Name Access Description
Values:
■ 0x0 (RESP_R1): R1 (Memory)
■ 0x1 (RESP_R5): R5 (SDIO)
Value After Reset: 0x0
Exists: Always
Memory
Bits Name Access Description
Memory
Bits Name Access Description
5.1.6 CMD_R
■ Name: Command register
■ Description: This register is used to provide the information related to a command and a response
packet. This register is applicable for an SD/eMMC mode.
■ Size: 16 bits
■ Offset: 0xe
■ Exists: (DWC_MSHC_SD_EMMC_SUPPORT==1)
15:14
13:8
7:6
1:0
5
4
CMD_CRC_CHK_ENABLE 3
2
CMD_IDX_CHK_ENABLE
DATA_PRESENT_SEL
RESP_TYPE_SELECT
SUB_CMD_FLAG
CMD_INDEX
CMD_TYPE
RSVD
Memory
Bits Name Access Description
15:14 RSVD R These bits of the CMD_R register are reserved. They always
return 0.
Value After Reset: 0x0
Exists: Always
Memory
Bits Name Access Description
Values:
■ 0x0 (NO_DATA): No Data Present
■ 0x1 (DATA): Data Present
Value After Reset: 0x0
Exists: Always
Memory
Bits Name Access Description
Values:
■ 0x0 (DISABLED): Disable
■ 0x1 (ENABLED): Enable
Value After Reset: 0x0
Exists: Always
Values:
■ 0x0 (DISABLED): Disable
■ 0x1 (ENABLED): Enable
Value After Reset: 0x0
Exists: Always
Memory
Bits Name Access Description
5.1.7 RESP01_R
■ Name: Response Register 0/1
■ Description: This register stores 39-08 bits of the Response Field for an SD/eMMC mode. In UHS-II
mode, this register stores the response of the TRANS_ABORT CCMD. The response for an
SD/eMMC command can be a maximum of 128 bits. These 128 bits are segregated into four 32-bit
registers: RESP01_R, RESP23_R, RESP45_R and RESP67_R.
■ Size: 32 bits
■ Offset: 0x10
■ Exists: Always
RESP01 31:0
Memory
Bits Name Access Description
5.1.8 RESP23_R
■ Name: Response Register 2/3
■ Description: This register stores 71-40 bits of the Response Field for an SD/eMMC mode. This
register is used to store the response from the cards. The response can be a maximum of 128 bits.
These 128 bits are segregated into four 32-bit registers: RESP01_R, RESP23_R, RESP45_R and
RESP67_R. In UHS-II mode, this register is reserved
■ Size: 32 bits
■ Offset: 0x14
■ Exists: Always
RESP23 31:0
Memory
Bits Name Access Description
5.1.9 RESP45_R
■ Name: Response Register 4/5
■ Description: This register stores 103-72 bits of the Response Field for an SD/eMMC mode. In UHS-II
mode, this register is used to store the lower 4-byte CMD12 response. The response for SD/eMMC
command can be a maximum of 128 bits. These 128 bits are segregated into four 32-bit registers:
RESP01_R, RESP23_R, RESP45_R and RESP67_R.
■ Size: 32 bits
■ Offset: 0x18
■ Exists: Always
RESP45 31:0
Memory
Bits Name Access Description
5.1.10 RESP67_R
■ Name: Response Register 6/7
■ Description: This register stores 135-104 bits of the Response Field for an SD/eMMC mode. In UHS-
II mode, this register stores the upper 4-byte CMD12 response. The SD/eMMC response can be a
maximum of 128 bits. These 128 bits are segregated into four 32-bit registers: RESP01_R, RESP23_R,
RESP45_R and RESP67_R.
■ Size: 32 bits
■ Offset: 0x1c
■ Exists: Always
RESP67 31:0
Memory
Bits Name Access Description
5.1.11 BUF_DATA_R
■ Name: Buffer Data Port Register
■ Description: This register is used to access the packet buffer. This register is applicable for an
SD/eMMC/UHS-II mode.
■ Size: 32 bits
■ Offset: 0x20
■ Exists: Always
BUF_DATA 31:0
Memory
Bits Name Access Description
5.1.12 PSTATE_REG
■ Name: Present State Register
■ Description: This register indicates the present status of the Host Controller. This register is
applicable for an SD/eMMC/UHS-II mode.
■ Size: 32 bits
■ Offset: 0x24
■ Exists: Always
23:20
15:12
7:4
31
30
29
28
27
26
25
24
19
CARD_DETECT_PIN_LEVEL 18
17
16
11
10
9
8
3
2
1
0
WR_PROTECT_SW_LVL
WR_XFER_ACTIVE
DAT_LINE_ACTIVE
CMD_INHIBIT_DAT
RD_XFER_ACTIVE
BUF_WR_ENABLE
UHS2_IF_DETECT
CMD_ISSUE_ERR
BUF_RD_ENABLE
CARD_INSERTED
IN_DORMANT_ST
HOST_REG_VOL
SUB_CMD_STAT
CMD_LINE_LVL
RE_TUNE_REQ
CARD_STABLE
CMD_INHIBIT
RSVD_15_12
LANE_SYNC
RSVD_26
DAT_3_0
DAT_7_4
Table 5-17 Fields for Register: PSTATE_REG
Memory
Bits Name Access Description
Memory
Bits Name Access Description
Memory
Bits Name Access Description
Memory
Bits Name Access Description
Memory
Bits Name Access Description
Memory
Bits Name Access Description
Memory
Bits Name Access Description
Memory
Bits Name Access Description
Values:
■ 0x0 (READY): Host Controller is ready to issue a
command
■ 0x1 (NOT_READY): Host Controller is not ready to issue
a command
Value After Reset: 0x0
Exists: Always
Volatile: true
5.1.13 HOST_CTRL1_R
■ Name: Host Control 1 Register
■ Description: This register is used to control the operation of the Host Controller. This register is
applicable for an SD/eMMC/UHS-II mode.
■ Size: 8 bits
■ Offset: 0x28
■ Exists: Always
4:3
7
CARD_DETECT_TEST_LVL 6
5
2
1
0
CARD_DETECT_SIG_SEL
DAT_XFER_WIDTH
HIGH_SPEED_EN
EXT_DAT_XFER
LED_CTRL
DMA_SEL
Memory
Bits Name Access Description
Memory
Bits Name Access Description
Values:
■ 0x0 (SDMA): SDMA is selected
■ 0x1 (RSVD_BIT): Reserved
■ 0x2 (ADMA2): ADMA2 is selected
■ 0x3 (ADMA2_3): ADMA2 or ADMA3 is selected
Value After Reset: 0x0
Exists: Always
Memory
Bits Name Access Description
5.1.14 PWR_CTRL_R
■ Name: Power Control Register
■ Description: This register is used to control the bus power for the Card. This register is applicable for
an SD, eMMC, and UHS-II modes.
■ Size: 8 bits
■ Offset: 0x29
■ Exists: Always
7:5
3:1
SD_BUS_PWR_VDD2 4
SD_BUS_PWR_VDD1 0
SD_BUS_VOL_VDD2
SD_BUS_VOL_VDD1
Memory
Bits Name Access Description
Memory
Bits Name Access Description
Memory
Bits Name Access Description
3:1 SD_BUS_VOL_VDD1 R/W SD Bus Voltage Select for VDD1/eMMC Bus Voltage Select
for VDD
These bits enable the Host Driver to select the voltage level
for an SD/eMMC card. Before setting this register, the Host
Driver checks the Voltage Support bits in the Capabilities
register. If an unsupported voltage is selected, the Host
System does not supply the SD Bus voltage. The value set in
this field is available on the DWC_mshc output signal
(sd_vdd1_sel), which is used by the voltage switching
circuitry.
SD Bus Voltage Select options:
■ 0x7 : 3.3V(Typical)
■ 0x6 : 3.0V(Typical)
■ 0x5 : 1.8V(Typical) for Embedded
■ 0x4 : 0x0 - Reserved
Values:
■ 0x7 (V_3_3): 3.3V (Typ.)
■ 0x6 (V_3_0): 3.0V (Typ.)
■ 0x5 (V_1_8): 1.8V (Typ.) for Embedded
■ 0x4 (RSVD4): Reserved
■ 0x3 (RSVD3): Reserved
■ 0x2 (RSVD2): Reserved
■ 0x1 (RSVD1): Reserved
■ 0x0 (RSVD0): Reserved
Value After Reset: 0x0
Exists: Always
Memory
Bits Name Access Description
5.1.15 BGAP_CTRL_R
■ Name: Block Gap Control Register
■ Description: This register is used by the host driver to control any operation related to Block Gap.
This register is applicable for an SD/eMMC/UHS-II mode.
■ Size: 8 bits
■ Offset: 0x2a
■ Exists: Always
7:4
3
2
CONTINUE_REQ 1
0
RD_WAIT_CTRL
STOP_BG_REQ
INT_AT_BGAP
RSVD_7_4
Memory
Bits Name Access Description
7:4 RSVD_7_4 R These bits of the Block Gap Control register are reserved.
They always return 0.
Value After Reset: 0x0
Exists: Always
Memory
Bits Name Access Description
5.1.16 WUP_CTRL_R
■ Name: Wakeup Control Register
■ Description: This register is mandatory for the Host Controller, but the wakeup functionality
depends on the Host Controller system hardware and software. The Host Driver maintains voltage
on the SD Bus by setting the SD Bus Power to 1 in the Power Control Register, while a wakeup event
through the Card Interrupt is desired.
■ Size: 8 bits
■ Offset: 0x2b
■ Exists: Always
7:3
CARD_REMOVAL 2
1
0
CARD_INSERT
RSVD_7_3
CARD_INT
Memory
Bits Name Access Description
7:3 RSVD_7_3 R These bits of Wakeup Control register are reserved. They
always return 0.
Value After Reset: 0x0
Exists: Always
Memory
Bits Name Access Description
5.1.17 CLK_CTRL_R
■ Name: Clock Control Register
■ Description: This register controls SDCLK (card clock) in an SD/eMMC mode and RCLK in the
UHS-II mode. This register is applicable for an SD/eMMC/UHS-II mode.
■ Size: 16 bits
■ Offset: 0x2c
■ Exists: Always
15:8
7:6
5
4
3
2
INTERNAL_CLK_STABLE 1
0
INTERNAL_CLK_EN
UPPER_FREQ_SEL
CLK_GEN_SELECT
PLL_ENABLE
SD_CLK_EN
FREQ_SEL
RSVD_4
Memory
Bits Name Access Description
7:6 UPPER_FREQ_SEL R/W These bits specify the upper 2 bits of 10-bit SDCLK/RCLK
Frequency Select control. The value is reflected on the upper
2 bits of the card_clk_freq_sel signal.
Value After Reset: 0x0
Exists: Always
Volatile: true
Memory
Bits Name Access Description
Memory
Bits Name Access Description
5.1.18 TOUT_CTRL_R
■ Name: Timeout Control Register
■ Description: This register is used to set the Data Timeout Counter value for an SD/eMMC mode
according to the timer clock defined by the Capabilities register, while initializig the Host Controller.
■ Size: 8 bits
■ Offset: 0x2e
■ Exists: (DWC_MSHC_SD_EMMC_SUPPORT==1)
7:4
TOUT_CNT 3:0
RSVD_7_4
Memory
Bits Name Access Description
7:4 RSVD_7_4 R These bits of the Timeout Control register are reserved.
They always return 0.
Value After Reset: 0x0
Exists: Always
Memory
Bits Name Access Description
5.1.19 SW_RST_R
■ Name: Software Reset Register
■ Description: This register is used to generate a reset pulse by writing 1 to each bit of this register.
After completing the reset, the Host Controller clears each bit. As it takes some time to complete a
software reset, the Host Driver confirms that these bits are 0. This register is applicable for an
SD/eMMC/UHS-II mode.
Note: Refer Software Reset section in the DWC_mshc Databook for additional details.
■ Size: 8 bits
■ Offset: 0x2f
■ Exists: Always
7:3
2
SW_RST_CMD 1
0
SW_RST_DAT
SW_RST_ALL
RSVD_7_3
Memory
Bits Name Access Description
7:3 RSVD_7_3 R These bits of the SW_RST_R register are reserved. They
always return 0.
Value After Reset: 0x0
Exists: Always
Volatile: true
Memory
Bits Name Access Description
Values:
■ 0x0 (FALSE): Work
■ 0x1 (TRUE): Reset
Value After Reset: 0x0
Exists: Always
Volatile: true
Memory
Bits Name Access Description
Values:
■ 0x0 (FALSE): Work
■ 0x1 (TRUE): Reset
Value After Reset: 0x0
Exists: Always
Volatile: true
5.1.20 NORMAL_INT_STAT_R
■ Name: Normal Interrupt Status Register
■ Description: This register reflects the status of the Normal Interrupt. This register is applicable for an
SD/eMMC/UHS-II mode.
■ Size: 16 bits
■ Offset: 0x30
■ Exists: Always
15
14
13
12
11
10
9
CARD_INTERRUPT 8
7
6
5
4
3
2
1
0
CARD_INSERTION
XFER_COMPLETE
RE_TUNE_EVENT
DMA_INTERRUPT
ERR_INTERRUPT
CMD_COMPLETE
CARD_REMOVAL
BUF_WR_READY
BUF_RD_READY
BGAP_EVENT
CQE_EVENT
FX_EVENT
INT_C
INT_B
INT_A
Memory
Bits Name Access Description
Memory
Bits Name Access Description
13 FX_EVENT R FX Event
This status is set when R[14] of response register is set to 1
and Response Type R1/R5 is set to 0 in Transfer Mode
register. This interrupt is used with response check function.
Values:
■ 0x0 (FALSE): No Event
■ 0x1 (TRUE): FX Event is detected
Value After Reset: 0x0
Exists: Always
Volatile: true
Memory
Bits Name Access Description
Values:
■ 0x0 (FALSE): No Card Interrupt
■ 0x1 (TRUE): Generate Card Interrupt
Value After Reset: 0x0
Exists: Always
Volatile: true
Memory
Bits Name Access Description
Memory
Bits Name Access Description
5.1.21 ERROR_INT_STAT_R
■ Name: Error Interrupt Status Register
■ Description: This register enables an interrupt when the Error Interrupt Status Enable is enabled and
at least one of the statuses is set to 1. Writing to 1 clears the bit and writing to 0 retains the bit
unchanged. Signals defined in this register can be enabled by the Error Interrupt Status Enable
register, but not by the Error Interrupt Signal Enable register. More than one status can be cleared
with a single register write. This register is applicable for an SD/eMMC/UHS-II mode.
■ Size: 16 bits
■ Offset: 0x32
■ Exists: Always
15
14
13
12
11
10
9
8
7
DATA_END_BIT_ERR 6
5
4
3
2
1
0
CMD_END_BIT_ERR
DATA_TOUT_ERR
AUTO_CMD_ERR
CMD_TOUT_ERR
BOOT_ACK_ERR
DATA_CRC_ERR
CMD_CRC_ERR
VENDOR_ERR3
VENDOR_ERR2
VENDOR_ERR1
CUR_LMT_ERR
CMD_IDX_ERR
TUNING_ERR
ADMA_ERR
RESP_ERR
Memory
Bits Name Access Description
Memory
Bits Name Access Description
Memory
Bits Name Access Description
Memory
Bits Name Access Description
Memory
Bits Name Access Description
Memory
Bits Name Access Description
Memory
Bits Name Access Description
5.1.22 NORMAL_INT_STAT_EN_R
■ Name: Normal Interrupt Status Enable Register
■ Description: This register enables the Interrupt Status for Normal Interrupt Status register
(NORMAL_INT_STAT_R) when NORMAL_INT_STAT_R is set to 1. This register is applicable for an
SD/eMMC/UHS-II mode.
■ Size: 16 bits
■ Offset: 0x34
■ Exists: Always
15
14
13
12
11
10
9
CARD_INTERRUPT_STAT_EN 8
7
6
5
4
3
2
1
0
CARD_INSERTION_STAT_EN
XFER_COMPLETE_STAT_EN
RE_TUNE_EVENT_STAT_EN
DMA_INTERRUPT_STAT_EN
CMD_COMPLETE_STAT_EN
CARD_REMOVAL_STAT_EN
BUF_WR_READY_STAT_EN
BUF_RD_READY_STAT_EN
BGAP_EVENT_STAT_EN
CQE_EVENT_STAT_EN
FX_EVENT_STAT_EN
INT_C_STAT_EN
INT_B_STAT_EN
INT_A_STAT_EN
RSVD_15
Memory
Bits Name Access Description
Memory
Bits Name Access Description
Memory
Bits Name Access Description
Memory
Bits Name Access Description
5.1.23 ERROR_INT_STAT_EN_R
■ Name: Error Interrupt Status Enable Register
■ Description: This register sets the Interrupt Status for Error Interrupt Status register
(ERROR_INT_STAT_R), when ERROR_INT_STAT_EN_R is set to 1. This register is applicable for an
SD/eMMC/UHS-II mode.
■ Size: 16 bits
■ Offset: 0x36
■ Exists: Always
15
14
13
12
11
10
9
8
7
DATA_END_BIT_ERR_STAT_EN 6
5
4
3
2
1
0
CMD_END_BIT_ERR_STAT_EN
DATA_TOUT_ERR_STAT_EN
AUTO_CMD_ERR_STAT_EN
CMD_TOUT_ERR_STAT_EN
BOOT_ACK_ERR_STAT_EN
DATA_CRC_ERR_STAT_EN
CMD_CRC_ERR_STAT_EN
VENDOR_ERR_STAT_EN3
VENDOR_ERR_STAT_EN2
VENDOR_ERR_STAT_EN1
CUR_LMT_ERR_STAT_EN
CMD_IDX_ERR_STAT_EN
TUNING_ERR_STAT_EN
ADMA_ERR_STAT_EN
RESP_ERR_STAT_EN
Memory
Bits Name Access Description
15 VENDOR_ERR_STAT_EN3 R/W The 15th bit of Error Interrupt Status Enable register is
reserved.
Values:
■ 0x0 (FALSE): Masked
■ 0x1 (TRUE): Enabled
Value After Reset: 0x0
Exists: Always
Memory
Bits Name Access Description
14 VENDOR_ERR_STAT_EN2 R/W The 14th bit of Error Interrupt Status Enable register is
reserved.
Values:
■ 0x0 (FALSE): Masked
■ 0x1 (TRUE): Enabled
Value After Reset: 0x0
Exists: Always
13 VENDOR_ERR_STAT_EN1 R/W The 13th bit of Error Interrupt Status Enable register is
reserved.
Values:
■ 0x0 (FALSE): Masked
■ 0x1 (TRUE): Enabled
Value After Reset: 0x0
Exists: Always
Memory
Bits Name Access Description
8 AUTO_CMD_ERR_STAT_EN R/W Auto CMD Error Status Enable (SD/eMMC Mode only).
Values:
■ 0x0 (FALSE): Masked
■ 0x1 (TRUE): Enabled
Value After Reset: 0x0
Exists: Always
6 DATA_END_BIT_ERR_STAT_EN R/W Data End Bit Error Status Enable (SD/eMMC Mode only).
Values:
■ 0x0 (FALSE): Masked
■ 0x1 (TRUE): Enabled
Value After Reset: 0x0
Exists: Always
5 DATA_CRC_ERR_STAT_EN R/W Data CRC Error Status Enable (SD/eMMC Mode only)
Values:
■ 0x0 (FALSE): Masked
■ 0x1 (TRUE): Enabled
Value After Reset: 0x0
Exists: Always
4 DATA_TOUT_ERR_STAT_EN R/W Data Timeout Error Status Enable (SD/eMMC Mode only)
Values:
■ 0x0 (FALSE): Masked
■ 0x1 (TRUE): Enabled
Value After Reset: 0x0
Exists: Always
Memory
Bits Name Access Description
3 CMD_IDX_ERR_STAT_EN R/W Command Index Error Status Enable (SD/eMMC Mode only)
Values:
■ 0x0 (FALSE): Masked
■ 0x1 (TRUE): Enabled
Value After Reset: 0x0
Exists: Always
2 CMD_END_BIT_ERR_STAT_EN R/W Command End Bit Error Status Enable (SD/eMMC Mode
only)
Values:
■ 0x0 (FALSE): Masked
■ 0x1 (TRUE): Enabled
Value After Reset: 0x0
Exists: Always
1 CMD_CRC_ERR_STAT_EN R/W Command CRC Error Status Enable (SD/eMMC Mode only)
Values:
■ 0x0 (FALSE): Masked
■ 0x1 (TRUE): Enabled
Value After Reset: 0x0
Exists: Always
5.1.24 NORMAL_INT_SIGNAL_EN_R
■ Name: Normal Interrupt Signal Enable Register
■ Description: This register is used to select the interrupt status that is indicated to the Host System as
the interrupt. All these status bits share the same 1-bit interrupt line. Setting any of these bits to 1,
enables interrupt generation. This register is applicable for an SD/eMMC/UHS-II mode.
■ Size: 16 bits
■ Offset: 0x38
■ Exists: Always
15
14
13
12
11
10
9
CARD_INTERRUPT_SIGNAL_EN 8
7
6
5
4
3
2
1
0
CARD_INSERTION_SIGNAL_EN
XFER_COMPLETE_SIGNAL_EN
RE_TUNE_EVENT_SIGNAL_EN
DMA_INTERRUPT_SIGNAL_EN
CMD_COMPLETE_SIGNAL_EN
CARD_REMOVAL_SIGNAL_EN
BUF_WR_READY_SIGNAL_EN
BUF_RD_READY_SIGNAL_EN
BGAP_EVENT_SIGNAL_EN
CQE_EVENT_SIGNAL_EN
FX_EVENT_SIGNAL_EN
INT_C_SIGNAL_EN
INT_B_SIGNAL_EN
INT_A_SIGNAL_EN
RSVD_15
Memory
Bits Name Access Description
Memory
Bits Name Access Description
Memory
Bits Name Access Description
Memory
Bits Name Access Description
5.1.25 ERROR_INT_SIGNAL_EN_R
■ Name: Error Interrupt Signal Enable Register
■ Description: This register is used to select the interrupt status that is notified to the Host System as
an interrupt. All these status bits share the same 1-bit interrupt line. Setting any of these bits to 1
enables interrupt generation. This register is applicable for an SD/eMMC/UHS-II mode.
■ Size: 16 bits
■ Offset: 0x3a
■ Exists: Always
15
14
13
12
11
10
9
8
7
DATA_END_BIT_ERR_SIGNAL_EN 6
5
4
3
2
1
0
CMD_END_BIT_ERR_SIGNAL_EN
DATA_TOUT_ERR_SIGNAL_EN
AUTO_CMD_ERR_SIGNAL_EN
CMD_TOUT_ERR_SIGNAL_EN
BOOT_ACK_ERR_SIGNAL_EN
DATA_CRC_ERR_SIGNAL_EN
CMD_CRC_ERR_SIGNAL_EN
VENDOR_ERR_SIGNAL_EN3
VENDOR_ERR_SIGNAL_EN2
VENDOR_ERR_SIGNAL_EN1
CUR_LMT_ERR_SIGNAL_EN
CMD_IDX_ERR_SIGNAL_EN
TUNING_ERR_SIGNAL_EN
ADMA_ERR_SIGNAL_EN
RESP_ERR_SIGNAL_EN
Memory
Bits Name Access Description
15 VENDOR_ERR_SIGNAL_EN3 R/W The 16th bit of Error Interrupt Signal Enable is reserved.
Values:
■ 0x0 (FALSE): Masked
■ 0x1 (TRUE): Enabled
Value After Reset: 0x0
Exists: Always
14 VENDOR_ERR_SIGNAL_EN2 R/W The 15th bit of Error Interrupt Signal Enable is reserved.
Values:
■ 0x0 (FALSE): Masked
■ 0x1 (TRUE): Enabled
Value After Reset: 0x0
Exists: Always
Memory
Bits Name Access Description
13 VENDOR_ERR_SIGNAL_EN1 R/W The 14th bit of Error Interrupt Signal Enable is reserved.
Values:
■ 0x0 (FALSE): Masked
■ 0x1 (TRUE): Enabled
Value After Reset: 0x0
Exists: Always
Memory
Bits Name Access Description
8 AUTO_CMD_ERR_SIGNAL_EN R/W Auto CMD Error Signal Enable (SD/eMMC Mode only)
Values:
■ 0x0 (FALSE): Masked
■ 0x1 (TRUE): Enabled
Value After Reset: 0x0
Exists: Always
6 DATA_END_BIT_ERR_SIGNAL_ R/W Data End Bit Error Signal Enable (SD/eMMC Mode only)
EN Values:
■ 0x0 (FALSE): Masked
■ 0x1 (TRUE): Enabled
Value After Reset: 0x0
Exists: Always
5 DATA_CRC_ERR_SIGNAL_EN R/W Data CRC Error Signal Enable (SD/eMMC Mode only)
Values:
■ 0x0 (FALSE): Masked
■ 0x1 (TRUE): Enabled
Value After Reset: 0x0
Exists: Always
4 DATA_TOUT_ERR_SIGNAL_EN R/W Data Timeout Error Signal Enable (SD/eMMC Mode only)
Values:
■ 0x0 (FALSE): Masked
■ 0x1 (TRUE): Enabled
Value After Reset: 0x0
Exists: Always
3 CMD_IDX_ERR_SIGNAL_EN R/W Command Index Error Signal Enable (SD/eMMC Mode only)
Values:
■ 0x0 (FALSE): No error
■ 0x1 (TRUE): Error
Value After Reset: 0x0
Exists: Always
Memory
Bits Name Access Description
2 CMD_END_BIT_ERR_SIGNAL_E R/W Command End Bit Error Signal Enable (SD/eMMC Mode
N only)
Values:
■ 0x0 (FALSE): Masked
■ 0x1 (TRUE): Enabled
Value After Reset: 0x0
Exists: Always
1 CMD_CRC_ERR_SIGNAL_EN R/W Command CRC Error Signal Enable (SD/eMMC Mode only)
Values:
■ 0x0 (FALSE): Masked
■ 0x1 (TRUE): Enabled
Value After Reset: 0x0
Exists: Always
5.1.26 AUTO_CMD_STAT_R
■ Name: Auto CMD Status Register
■ Description: This register is used to indicate the CMD12 response error of Auto CMD12, and the
CMD23 response error of Auto CMD23. The Host driver can determine the kind of Auto
CMD12/CMD23 errors that can occur in this register. Auto CMD23 errors are indicated in bit 04-01.
This register is valid only when Auto CMD Error is set. This register is applicable for an SD/eMMC
mode.
■ Size: 16 bits
■ Offset: 0x3c
■ Exists: (DWC_MSHC_SD_EMMC_SUPPORT==1)
15:8
CMD_NOT_ISSUED_AUTO_CMD12 7
6
5
4
3
2
1
0
AUTO_CMD12_NOT_EXEC
AUTO_CMD_RESP_ERR
AUTO_CMD_TOUT_ERR
AUTO_CMD_EBIT_ERR
AUTO_CMD_CRC_ERR
AUTO_CMD_IDX_ERR
RSVD_15_8
RSVD_6
Memory
Bits Name Access Description
Memory
Bits Name Access Description
Memory
Bits Name Access Description
Memory
Bits Name Access Description
5.1.27 HOST_CTRL2_R
■ Name: Host Control 2 Register
■ Description: This register is used to control how the Host Controller operates. This register is
applicable for an SD/eMMC/UHS-II mode.
■ Size: 16 bits
■ Offset: 0x3e
■ Exists: Always
5:4
2:0
PRESET_VAL_ENABLE 15
14
13
12
11
10
9
8
7
6
3
DRV_STRENGTH_SEL
HOST_VER4_ENABLE
ASYNC_INT_ENABLE
ADMA2_LEN_MODE
SAMPLE_CLK_SEL
UHS2_IF_ENABLE
UHS_MODE_SEL
CMD23_ENABLE
SIGNALING_EN
EXEC_TUNING
ADDRESSING
RSVD_9
Memory
Bits Name Access Description
Memory
Bits Name Access Description
Memory
Bits Name Access Description
Memory
Bits Name Access Description
Memory
Bits Name Access Description
Memory
Bits Name Access Description
Values:
■ 0x0 (SDR12): SDR12/Legacy
■ 0x1 (SDR25): SDR25/High Speed SDR
■ 0x2 (SDR50): SDR50
■ 0x3 (SDR104): SDR104/HS200
■ 0x4 (DDR50): DDR50/High Speed DDR
■ 0x5 (RSVD5): Reserved
■ 0x6 (RSVD6): Reserved
■ 0x7 (UHS2): UHS-II/HS400
Value After Reset: 0x0
Exists: Always
5.1.28 CAPABILITIES1_R
■ Name: Capabilities 1 Register - 0 to 31
■ Description: This register provides the Host Driver with information specific to the Host Controller
implementation. The host controller may implement these values as fixed or loaded from the flash
memory during power on initialization. Capabilities register is segregated into two 32-bit registers:
CAPABILITIES1_R and CAPABILITIES2_R. The CAPABILITIES1_R register is the lower part of
Capabilities register.
■ Size: 32 bits
■ Offset: 0x40
■ Exists: Always
31:30
17:16
15:8
5:0
29
28
27
26
25
24
23
22
HIGH_SPEED_SUPPORT 21
20
19
18
7
6
ASYNC_INT_SUPPORT
SUS_RES_SUPPORT
SYS_ADDR_64_V3
SYS_ADDR_64_V4
ADMA2_SUPPORT
TOUT_CLK_FREQ
BASE_CLK_FREQ
SDMA_SUPPORT
TOUT_CLK_UNIT
Embedded_8_BIT
MAX_BLK_LEN
SLOT_TYPE_R
RSVD_20
VOLT_18
VOLT_30
VOLT_33
RSVD_6
Memory
Bits Name Access Description
Memory
Bits Name Access Description
Memory
Bits Name Access Description
Memory
Bits Name Access Description
Memory
Bits Name Access Description
Memory
Bits Name Access Description
Memory
Bits Name Access Description
5.1.29 CAPABILITIES2_R
■ Name: Capabilities Register - 32 to 63
■ Description: This register provides the Host Driver with information specific to the Host Controller
implementation. The host controller may implement these values as fixed or as loaded from flash
memory during power on initialization. Capabilities register is segregated into two 32-bit registers,
namely CAPABILITIES1_R and CAPABILITIES2_R. The CAPABILITIES2_R register is upper part of
Capabilities register.
■ Size: 32 bits
■ Offset: 0x44
■ Exists: Always
31:30
26:24
23:16
15:14
11:8
29
VDD2_18V_SUPPORT 28
27
USE_TUNING_SDR50 13
12
7
6
5
4
3
2
1
0
RE_TUNING_MODES
SDR104_SUPPORT
ADMA3_SUPPORT
DDR50_SUPPORT
SDR50_SUPPORT
UHS2_SUPPORT
RETUNE_CNT
RSVD_62_63
RSVD_56_58
DRV_TYPED
DRV_TYPEC
DRV_TYPEA
CLK_MUL
RSVD_61
RSVD_44
RSVD_39
Memory
Bits Name Access Description
Memory
Bits Name Access Description
Memory
Bits Name Access Description
Memory
Bits Name Access Description
Memory
Bits Name Access Description
5.1.30 CURR_CAPABILITIES1_R
■ Name: Maximum Current Capabilities Register - 0 to 31
■ Description: This register indicate the maximum current capability for each voltage, for VDD1. The
value is meaningful if the Voltage Support is set in the Capabilities register. If this information is
supplied by the Host System through another method, all the Maximum Current Capabilities
registers are set to 0.
■ Size: 32 bits
■ Offset: 0x48
■ Exists: Always
31:24
MAX_CUR_18V 23:16
MAX_CUR_30V 15:8
MAX_CUR_33V 7:0
RSVD_31_24
Memory
Bits Name Access Description
Memory
Bits Name Access Description
5.1.31 CURR_CAPABILITIES2_R
■ Name: Maximum Current Capabilities Register - 32 to 63
■ Description: This register indicates the maximum current capability for each voltage (for VDD2). The
value is meaningful if Voltage Support is set in the Capabilities register. If this information is
supplied by the Host System through another method, all the Maximum Current Capabilities
registers are set to 0.
■ Size: 32 bits
■ Offset: 0x4c
■ Exists: Always
31:8
MAX_CUR_VDD2_18V 7:0
RSVD_63_40
Memory
Bits Name Access Description
Memory
Bits Name Access Description
5.1.32 FORCE_AUTO_CMD_STAT_R
■ Name: Force Event Register for Auto CMD Error Status register
■ Description: The register is not a physically implemented but is an address at which the Auto CMD
Error Status register can be written.This register is applicable for an SD/eMMC mode.
❑ 1 : Sets each bit of the Auto CMD Error Status register
❑ 0 : No effect
■ Size: 16 bits
■ Offset: 0x50
■ Exists: (DWC_MSHC_SD_EMMC_SUPPORT==1)
15:8
FORCE_CMD_NOT_ISSUED_AUTO_CMD12 7
6
5
4
3
2
1
0
FORCE_AUTO_CMD12_NOT_EXEC
FORCE_AUTO_CMD_RESP_ERR
FORCE_AUTO_CMD_TOUT_ERR
FORCE_AUTO_CMD_EBIT_ERR
FORCE_AUTO_CMD_CRC_ERR
FORCE_AUTO_CMD_IDX_ERR
RSVD_15_8
RSVD_6
Memory
Bits Name Access Description
Memory
Bits Name Access Description
7 FORCE_CMD_NOT_ISSUED_AU W Force Event for Command Not Issued By Auto CMD12 Error
TO_CMD12 Values:
■ 0x1 (TRUE): Command Not Issued By Auto CMD12 Error
Status is set
■ 0x0 (FALSE): Not Affected
Value After Reset: 0x0
Exists: Always
Memory
Bits Name Access Description
5.1.33 FORCE_ERROR_INT_STAT_R
■ Name: Force Event Register for Error Interrupt Status
■ Description: This register is not physically implemented but is an address at which the Error
Interrupt Status register can be written. The effect of a write to this address is reflected in the Error
Interrupt Status register if the corresponding bit of the Error Interrupt Status Enable register is set.
This register is applicable for an SD/eMMC/UHS-II mode.
■ Size: 16 bits
■ Offset: 0x52
■ Exists: Always
15
14
13
12
11
10
9
8
7
FORCE_DATA_END_BIT_ERR 6
5
4
3
2
1
0
FORCE_CMD_END_BIT_ERR
FORCE_DATA_TOUT_ERR
FORCE_AUTO_CMD_ERR
FORCE_CMD_TOUT_ERR
FORCE_BOOT_ACK_ERR
FORCE_DATA_CRC_ERR
FORCE_CMD_CRC_ERR
FORCE_VENDOR_ERR3
FORCE_VENDOR_ERR2
FORCE_VENDOR_ERR1
FORCE_CUR_LMT_ERR
FORCE_CMD_IDX_ERR
FORCE_TUNING_ERR
FORCE_ADMA_ERR
FORCE_RESP_ERR
Memory
Bits Name Access Description
Memory
Bits Name Access Description
8 FORCE_AUTO_CMD_ERR W Force Event for Auto CMD Error (SD/eMMC Mode only)
Values:
■ 0x0 (FALSE): Not Affected
■ 0x1 (TRUE): Auto CMD Error Status is set
Value After Reset: 0x0
Exists: Always
Memory
Bits Name Access Description
6 FORCE_DATA_END_BIT_ERR W Force Event for Data End Bit Error (SD/eMMC Mode only)
Values:
■ 0x0 (FALSE): Not Affected
■ 0x1 (TRUE): Data End Bit Error Status is set
Value After Reset: 0x0
Exists: Always
5 FORCE_DATA_CRC_ERR W Force Event for Data CRC Error (SD/eMMC Mode only)
Values:
■ 0x0 (FALSE): Not Affected
■ 0x1 (TRUE): Data CRC Error Status is set
Value After Reset: 0x0
Exists: Always
4 FORCE_DATA_TOUT_ERR W Force Event for Data Timeout Error (SD/eMMC Mode only)
Values:
■ 0x0 (FALSE): Not Affected
■ 0x1 (TRUE): Data Timeout Error Status is set
Value After Reset: 0x0
Exists: Always
Memory
Bits Name Access Description
2 FORCE_CMD_END_BIT_ERR W Force Event for Command End Bit Error (SD/eMMC Mode
only)
Values:
■ 0x0 (FALSE): Not Affected
■ 0x1 (TRUE): Command End Bit Error Status is set
Value After Reset: 0x0
Exists: Always
5.1.34 ADMA_ERR_STAT_R
■ Name: ADMA Error Status Register
■ Description: This register stores the ADMA state during an ADMA error. This register is applicable
for an SD/eMMC/UHS-II mode.
■ Size: 8 bits
■ Offset: 0x54
■ Exists: (DWC_MSHC_MST_IF_PRESENT==1)
7:3
ADMA_ERR_STATES 1:0
2
ADMA_LEN_ERR
RSVD_7_3
Memory
Bits Name Access Description
Memory
Bits Name Access Description
Values:
■ 0x0 (NO_ERR): No Error
■ 0x1 (ERROR): Error
Value After Reset: 0x0
Exists: Always
Volatile: true
5.1.35 ADMA_SA_LOW_R
■ Name: ADMA System Address Register - Low
■ Description: This register holds the lower 32-bit system address for DMA transfer. This register is
applicable for an SD/eMMC/UHS-II mode.
■ Size: 32 bits
■ Offset: 0x58
■ Exists: (DWC_MSHC_MST_IF_PRESENT==1)
ADMA_SA_LOW 31:0
Memory
Bits Name Access Description
5.1.36 ADMA_SA_HIGH_R
■ Name: ADMA System Address Register - High
■ Description: This register holds the upper 32-bit system address for the DMA transfer. This register
is applicable for an SD/eMMC/UHS-II mode.
■ Size: 32 bits
■ Offset: 0x5c
■ Exists: (DWC_MSHC_MST_IF_PRESENT==1) && (DWC_MSHC_MBIU_AW==64)
ADMA_SA_HIGH 31:0
Memory
Bits Name Access Description
5.1.37 PRESET_INIT_R
■ Name: Preset Value for Initialization
■ Description: This register defines Preset Value for Initialization in SD/eMMC mode.
■ Size: 16 bits
■ Offset: 0x60
■ Exists: Always
15:14
13:11
9:0
CLK_GEN_SEL_VAL 10
FREQ_SEL_VAL
DRV_SEL_VAL
RSVD_13_11
Memory
Bits Name Access Description
Memory
Bits Name Access Description
5.1.38 PRESET_DS_R
■ Name: Preset Value for Default Speed
■ Description: This register defines Preset Value for Default Speed mode in SD mode.
■ Size: 16 bits
■ Offset: 0x62
■ Exists: Always
15:14
13:11
9:0
CLK_GEN_SEL_VAL 10
FREQ_SEL_VAL
DRV_SEL_VAL
RSVD_13_11
Memory
Bits Name Access Description
Memory
Bits Name Access Description
5.1.39 PRESET_HS_R
■ Name: Preset Value for High Speed
■ Description: This register defines Preset Value for High Speed mode in SD mode.
■ Size: 16 bits
■ Offset: 0x64
■ Exists: Always
15:14
13:11
9:0
CLK_GEN_SEL_VAL 10
FREQ_SEL_VAL
DRV_SEL_VAL
RSVD_13_11
Memory
Bits Name Access Description
Memory
Bits Name Access Description
5.1.40 PRESET_SDR12_R
■ Name: Preset Value for SDR12
■ Description: This register defines Preset Value for SDR12 and Legacy speed mode in SD and eMMC
mode respectively.
■ Size: 16 bits
■ Offset: 0x66
■ Exists: Always
15:14
13:11
9:0
CLK_GEN_SEL_VAL 10
FREQ_SEL_VAL
DRV_SEL_VAL
RSVD_13_11
Memory
Bits Name Access Description
Memory
Bits Name Access Description
5.1.41 PRESET_SDR25_R
■ Name: Preset Value for SDR25
■ Description: This register defines Preset Value for SDR25 and High Speed SDR speed mode in SD
and eMMC mode respectively.
■ Size: 16 bits
■ Offset: 0x68
■ Exists: Always
15:14
13:11
9:0
CLK_GEN_SEL_VAL 10
FREQ_SEL_VAL
DRV_SEL_VAL
RSVD_13_11
Memory
Bits Name Access Description
Memory
Bits Name Access Description
5.1.42 PRESET_SDR50_R
■ Name: Preset Value for SDR50
■ Description: This register defines Preset Value for SDR50 speed mode in SD mode.
■ Size: 16 bits
■ Offset: 0x6a
■ Exists: Always
15:14
13:11
9:0
CLK_GEN_SEL_VAL 10
FREQ_SEL_VAL
DRV_SEL_VAL
RSVD_13_11
Memory
Bits Name Access Description
Memory
Bits Name Access Description
5.1.43 PRESET_SDR104_R
■ Name: Preset Value for SDR104
■ Description: This register defines Preset Value for SDR104 and HS200 speed modes in the SD and
eMMC modes, respectively.
■ Size: 16 bits
■ Offset: 0x6c
■ Exists: Always
15:14
13:11
9:0
CLK_GEN_SEL_VAL 10
FREQ_SEL_VAL
DRV_SEL_VAL
RSVD_13_11
Memory
Bits Name Access Description
Memory
Bits Name Access Description
5.1.44 PRESET_DDR50_R
■ Name: Preset Value for DDR50
■ Description: This register defines the Preset Value for DDR50 and High Speed DDR speed modes in
the SD and eMMC modes, respectively.
■ Size: 16 bits
■ Offset: 0x6e
■ Exists: Always
15:14
13:11
9:0
CLK_GEN_SEL_VAL 10
FREQ_SEL_VAL
DRV_SEL_VAL
RSVD_13_11
Memory
Bits Name Access Description
Memory
Bits Name Access Description
5.1.45 PRESET_UHS2_R
■ Name: Preset Value for UHS-II
■ Description: This register is used to hold the preset value for UHS-II and HS400 speed modes in the
SD and eMMC modes, respectively.
■ Size: 16 bits
■ Offset: 0x74
■ Exists: Always
15:14
13:11
9:0
CLK_GEN_SEL_VAL 10
FREQ_SEL_VAL
DRV_SEL_VAL
RSVD_13_11
Memory
Bits Name Access Description
13:11 RSVD_13_11 R These bits of UHS-II Preset register are reserved. They
always return 0.
Value After Reset: 0x0
Exists: Always
Memory
Bits Name Access Description
5.1.46 ADMA_ID_LOW_R
■ Name: ADMA3 Integrated Descriptor Address Register - Low
■ Description: This register holds the lower 32-bit Integrated Descriptor address.This register is
applicable for an SD/eMMC/UHS-II mode.
■ Size: 32 bits
■ Offset: 0x78
■ Exists: (DWC_MSHC_ADMA3_SUPPORT==1)
ADMA_ID_LOW 31:0
Memory
Bits Name Access Description
5.1.47 ADMA_ID_HIGH_R
■ Name: ADMA3 Integrated Descriptor Address Register - High
■ Description: This register holds the upper 32-bit Integrated Descriptor address.This register is
applicable for an SD/eMMC/UHS-II mode.
■ Size: 32 bits
■ Offset: 0x7c
■ Exists: (DWC_MSHC_ADMA3_SUPPORT==1) && (DWC_MSHC_MBIU_AW==64)
ADMA_ID_HIGH 31:0
Memory
Bits Name Access Description
5.1.48 UHS_II_BLOCK_SIZE_R
■ Name: UHS-II Block Size Register
■ Description: This register specifies block size of data packet and SDMA buffer boundary. This
register is applicable for UHS-II mode only.
■ Size: 16 bits
■ Offset: 0x80
■ Exists: (DWC_MSHC_UHS2_SUPPORT==1)
UHS_II_SDMA_BOUND 14:12
11:0
15
UHS_II_BLK_SIZE
RSVD_15
Memory
Bits Name Access Description
Memory
Bits Name Access Description
Memory
Bits Name Access Description
5.1.49 UHS_II_BLOCK_COUNT_R
■ Name: UHS-II Block Count Register
■ Description: This register determines the length of the data transfer. This register is applicable for
UHS-II mode only.
■ Size: 32 bits
■ Offset: 0x84
■ Exists: (DWC_MSHC_UHS2_SUPPORT==1)
BLK_COUNT 31:0
Memory
Bits Name Access Description
Note:
■ When this register is read during a data transfer, it may
return an invalid value. This register must be read only
when there is no data transfer in progress or after a data
transfer had completed.
■ UHS-II Block count must be programmed with a non-zero
value for data transfer when Block Count Enable is set to
1 in the UHS-II Transfer Mode Register.
Value After Reset: 0x0
Exists: Always
Volatile: true
5.1.50 UHS_II_COMMAND_PKT_0_3_R
■ Name: UHS-II Command Packet Register (Byte 0, 1, 2 and 3)
■ Description: This register specifies byte 0-3 of UHS-II command packet. This register is applicable for
UHS-II mode only.
■ Size: 32 bits
■ Offset: 0x88
■ Exists: (DWC_MSHC_UHS2_SUPPORT==1)
COMMAND_PKT_0_3 31:0
Memory
Bits Name Access Description
5.1.51 UHS_II_COMMAND_PKT_4_7_R
■ Name: UHS-II Command Packet Register (Byte 4, 5, 6 and 7)
■ Description: This register specifies byte 4-7 of the UHS-II command packet. This register is
applicable for UHS-II mode only.
■ Size: 32 bits
■ Offset: 0x8c
■ Exists: (DWC_MSHC_UHS2_SUPPORT==1)
COMMAND_PKT_4_7 31:0
Memory
Bits Name Access Description
5.1.52 UHS_II_COMMAND_PKT_8_11_R
■ Name: UHS-II Command Packet Register (Byte 8, 9, 10 and 11)
■ Description: This register specifies byte 8-11 of the UHS-II command packet. This register is
applicable for UHS-II mode only.
■ Size: 32 bits
■ Offset: 0x90
■ Exists: (DWC_MSHC_UHS2_SUPPORT==1)
COMMAND_PKT_8_11 31:0
Memory
Bits Name Access Description
5.1.53 UHS_II_COMMAND_PKT_12_15_R
■ Name: UHS-II Command Packet Register (Byte 12, 13, 14 and 15)
■ Description: This register specifies byte 12-15 of UHS-II command packet. This register is applicable
for UHS-II mode only.
■ Size: 32 bits
■ Offset: 0x94
■ Exists: (DWC_MSHC_UHS2_SUPPORT==1)
COMMAND_PKT_12_15 31:0
Memory
Bits Name Access Description
5.1.54 UHS_II_COMMAND_PKT_16_19_R
■ Name: UHS-II Command Packet Register (Byte 16, 17, 18 and 19)
■ Description: This register specifies byte 16-19 of UHS-II command packet. This register is applicable
for UHS-II mode only.
■ Size: 32 bits
■ Offset: 0x98
■ Exists: (DWC_MSHC_UHS2_SUPPORT==1)
COMMAND_PKT_16_19 31:0
Memory
Bits Name Access Description
5.1.55 UHS_II_XFER_MODE_R
■ Name: UHS-II Transfer Mode Register
■ Description: This register specifies all the attributes of UHS-II data transfer for the reference of the
Host controller. This register is applicable for UHS-II mode only.
■ Size: 16 bits
■ Offset: 0x9c
■ Exists: (DWC_MSHC_UHS2_SUPPORT==1)
13:9
3:2
15
14
RESP_INTR_DISABLE 8
7
6
5
4
1
0
RESP_ERR_CHK_EN
BLK_BYTE_MODE
RESERVED_13_9
DATA_XFER_DIR
HALF_FULL_SEL
RESERVED_3_2
BLK_CNT_EN
EBSY_WAIT
RESP_TYP
DMA_EN
Table 5-60 Fields for Register: UHS_II_XFER_MODE_R
Memory
Bits Name Access Description
Memory
Bits Name Access Description
Memory
Bits Name Access Description
Memory
Bits Name Access Description
Values:
■ 0x0 (RESP_R1): R1 response (Memory)
■ 0x1 (RESP_R5): R5 response (SDIO)
Value After Reset: 0x0
Exists: Always
Memory
Bits Name Access Description
Values:
■ 0x0 (BLOCK_MODE): Block mode
■ 0x1 (BYTE_MODE): Byte mode
Value After Reset: 0x0
Exists: Always
Memory
Bits Name Access Description
5.1.56 UHS_II_CMD_R
■ Name: UHS-II Command Register
■ Description: This register specifies attributes of the UHS-II Command. Writing to upper byte of this
register acts as a trigger to issue the Command Packet. This register is applicable for UHS-II mode
only.
■ Size: 16 bits
■ Offset: 0x9e
■ Exists: (DWC_MSHC_UHS2_SUPPORT==1)
15:13
UHS_II_CMD_PKT_LEN 12:8
7:6
4:3
1:0
5
2
RESERVED_15_13
UHS_II_CMD_TYP
SUB_CMD_FLAG
DATA_PRESENT
RESERVED_4_3
RESERVED_1_0
Memory
Bits Name Access Description
Memory
Bits Name Access Description
Values:
■ 0x0 (NORMAL_CCMD): Normal Command
■ 0x1 (TRANS_ABORT_CCMD): TRANS_ABORT
command
■ 0x2 (CMD12_OR_SDIO_ABORT): CMD12 or SDIO
Abort command
■ 0x3 (GO_DORMANT_CCMD): Go Dormant Command
Value After Reset: 0x0
Exists: Always
Memory
Bits Name Access Description
5.1.57 UHS_II_RESP_0_3_R
■ Name: UHS-II Response Register (Byte 0, 1, 2 and 3)
■ Description: This register specifies byte 0-3 of UHS-II response packet. This register is applicable for
UHS-II mode only.
■ Size: 32 bits
■ Offset: 0xa0
■ Exists: (DWC_MSHC_UHS2_SUPPORT==1)
RESP_PKT_0_3 31:0
Memory
Bits Name Access Description
5.1.58 UHS_II_RESP_4_7_R
■ Name: UHS-II Response Register (Byte 4, 5, 6 and 7)
■ Description: This register specifies byte 4-7 of UHS-II response packet. This register is applicable for
UHS-II mode only.
■ Size: 32 bits
■ Offset: 0xa4
■ Exists: (DWC_MSHC_UHS2_SUPPORT==1)
RESP_PKT_4_7 31:0
Memory
Bits Name Access Description
5.1.59 UHS_II_RESP_8_11_R
■ Name: UHS-II Response Register (Byte 8, 9, 10 and 11)
■ Description: This register specifies byte 8-11 of UHS-II response packet. This register is applicable for
UHS-II mode only.
■ Size: 32 bits
■ Offset: 0xa8
■ Exists: (DWC_MSHC_UHS2_SUPPORT==1)
RESP_PKT_8_11 31:0
Memory
Bits Name Access Description
5.1.60 UHS_II_RESP_12_15_R
■ Name: UHS-II Response Register (Byte 12, 13, 14 and 15)
■ Description: This register specifies byte 12-15 of UHS-II response packet. This register is applicable
for UHS-II mode only.
■ Size: 32 bits
■ Offset: 0xac
■ Exists: (DWC_MSHC_UHS2_SUPPORT==1)
RESP_PKT_12_15 31:0
Memory
Bits Name Access Description
5.1.61 UHS_II_RESP_16_19_R
■ Name: UHS-II Response Register (Byte 16, 17, 18 and 19)
■ Description: This register specifies byte 16-19 of UHS-II response packet. This register is applicable
for UHS-II mode only.
■ Size: 32 bits
■ Offset: 0xb0
■ Exists: (DWC_MSHC_UHS2_SUPPORT==1)
RESP_PKT_16_19 31:0
Memory
Bits Name Access Description
5.1.62 UHS_II_MSG_SEL_R
■ Name: UHS-II MSG Select Register
■ Description: This register selects one of last four messages stored in host controller. This register is
applicable for UHS-II mode only.
■ Size: 8 bits
■ Offset: 0xb4
■ Exists: (DWC_MSHC_UHS2_SUPPORT==1)
7:2
UHS_II_MSG_SEL 1:0
RESERVED_7_2
Memory
Bits Name Access Description
5.1.63 UHS_II_MSG_R
■ Name: UHS-II MSG Register
■ Description: This register points to one of last four UHS_II MSG packets selected by UHS-II MSG
Select register. This register is applicable for UHS-II mode only.
■ Size: 32 bits
■ Offset: 0xb8
■ Exists: (DWC_MSHC_UHS2_SUPPORT==1)
UHS_II_MSG 31:0
Memory
Bits Name Access Description
5.1.64 UHS_II_DEV_INTR_STATUS_R
■ Name: UHS-II Device Interrupt Status Register
■ Description: This register shows the device from which INT MSG is received and is effective when
INT MSG Enable is set to 1 in the UHS-II Device Select register. On receiving the INT MSG from a
device, the Host controller saves the INT MSG to the UHS-II Device Interrupt Code register. A bit of
this register, which is correspondent to the Device ID is set to 1 and generates the Card Interrupt in
the Normal Interrupt Status register.
If INT MSG Enable is set to 0, this register is cleared and the Host controller ignores the receipt of INT
MSG.
The effective bit range of this register is determined by the Number of devices in the UHS-II General
Capabilities register.
This register is applicable for UHS-II mode only.
■ Size: 16 bits
■ Offset: 0xbc
■ Exists: (DWC_MSHC_UHS2_SUPPORT==1)
DEV_INTR_STATUS15 15
DEV_INTR_STATUS14 14
DEV_INTR_STATUS13 13
DEV_INTR_STATUS12 12
DEV_INTR_STATUS11 11
DEV_INTR_STATUS10 10
9
8
7
6
5
4
3
2
1
0
DEV_INTR_STATUS9
DEV_INTR_STATUS8
DEV_INTR_STATUS7
DEV_INTR_STATUS6
DEV_INTR_STATUS5
DEV_INTR_STATUS4
DEV_INTR_STATUS3
DEV_INTR_STATUS2
DEV_INTR_STATUS1
DEV_INTR_STATUS0
Memory
Bits Name Access Description
15 DEV_INTR_STATUS15 R/W1C This bit indicates that the INT MSG is received from Device
ID 15.
Values:
■ 0x0 (NO_INT): No INT MSG received
■ 0x1 (INT): INT MSG received
Value After Reset: 0x0
Exists: Always
Volatile: true
Memory
Bits Name Access Description
14 DEV_INTR_STATUS14 R/W1C This bit indicates that the INT MSG is received from Device
ID 14.
Values:
■ 0x0 (NO_INT): No INT MSG received
■ 0x1 (INT): INT MSG received
Value After Reset: 0x0
Exists: Always
Volatile: true
13 DEV_INTR_STATUS13 R/W1C This bit indicates that the INT MSG is received from Device
ID 13.
Values:
■ 0x0 (NO_INT): No INT MSG received
■ 0x1 (INT): INT MSG received
Value After Reset: 0x0
Exists: Always
Volatile: true
12 DEV_INTR_STATUS12 R/W1C This bit indicates that the INT MSG is received from Device
ID 12.
Values:
■ 0x0 (NO_INT): No INT MSG received
■ 0x1 (INT): INT MSG received
Value After Reset: 0x0
Exists: Always
Volatile: true
11 DEV_INTR_STATUS11 R/W1C This bit indicates that the INT MSG is received from Device
ID 11.
Values:
■ 0x0 (NO_INT): No INT MSG received
■ 0x1 (INT): INT MSG received
Value After Reset: 0x0
Exists: Always
Volatile: true
Memory
Bits Name Access Description
10 DEV_INTR_STATUS10 R/W1C This bit indicates that the INT MSG is received from Device
ID 10.
Values:
■ 0x0 (NO_INT): No INT MSG received
■ 0x1 (INT): INT MSG received
Value After Reset: 0x0
Exists: Always
Volatile: true
9 DEV_INTR_STATUS9 R/W1C This bit indicates that the INT MSG is received from Device
ID 9.
Values:
■ 0x0 (NO_INT): No INT MSG received
■ 0x1 (INT): INT MSG received
Value After Reset: 0x0
Exists: Always
Volatile: true
8 DEV_INTR_STATUS8 R/W1C This bit indicates that the INT MSG is received from Device
ID 8.
Values:
■ 0x0 (NO_INT): No INT MSG received
■ 0x1 (INT): INT MSG received
Value After Reset: 0x0
Exists: Always
Volatile: true
7 DEV_INTR_STATUS7 R/W1C This bit indicates that the INT MSG is received from Device
ID 7.
Values:
■ 0x0 (NO_INT): No INT MSG received
■ 0x1 (INT): INT MSG received
Value After Reset: 0x0
Exists: Always
Volatile: true
Memory
Bits Name Access Description
6 DEV_INTR_STATUS6 R/W1C This bit indicates that the INT MSG is received from Device
ID 6.
Values:
■ 0x0 (NO_INT): No INT MSG received
■ 0x1 (INT): INT MSG received
Value After Reset: 0x0
Exists: Always
Volatile: true
5 DEV_INTR_STATUS5 R/W1C This bit indicates that the INT MSG is received from Device
ID 5.
Values:
■ 0x0 (NO_INT): No INT MSG received
■ 0x1 (INT): INT MSG received
Value After Reset: 0x0
Exists: Always
Volatile: true
4 DEV_INTR_STATUS4 R/W1C This bit indicates that the INT MSG is received from Device
ID 4.
Values:
■ 0x0 (NO_INT): No INT MSG received
■ 0x1 (INT): INT MSG received
Value After Reset: 0x0
Exists: Always
Volatile: true
3 DEV_INTR_STATUS3 R/W1C This bit indicates that the INT MSG is received from Device
ID 3.
Values:
■ 0x0 (NO_INT): No INT MSG received
■ 0x1 (INT): INT MSG received
Value After Reset: 0x0
Exists: Always
Volatile: true
Memory
Bits Name Access Description
2 DEV_INTR_STATUS2 R/W1C This bit indicates that the INT MSG is received from Device
ID 2.
Values:
■ 0x0 (NO_INT): No INT MSG received
■ 0x1 (INT): INT MSG received
Value After Reset: 0x0
Exists: Always
Volatile: true
1 DEV_INTR_STATUS1 R/W1C This bit indicates that the INT MSG is received from Device
ID 1.
Values:
■ 0x0 (NO_INT): No INT MSG received
■ 0x1 (INT): INT MSG received
Value After Reset: 0x0
Exists: Always
Volatile: true
5.1.65 UHS_II_DEV_SEL_R
■ Name: UHS-II Device Select Register
■ Description: This register is used to select the UHS-II device from which INT message is received.
This register is applicable for UHS-II mode only.
■ Size: 8 bits
■ Offset: 0xbe
■ Exists: (DWC_MSHC_UHS2_SUPPORT==1)
RESERVED_6_4 6:4
3:0
7
INT_MSG_EN
DEV_SEL
Memory
Bits Name Access Description
Memory
Bits Name Access Description
5.1.66 UHS_II_DEV_INR_CODE_R
■ Name: UHS-II Device Interrupt Code Register
■ Description: This register is effective when INT MSG Enable is set to 1 in the UHS-II Device Select
register. Host Controller holds an INT MSG packet per device. One of INT MSGs (Code length is 1
byte) upto 15 can be read from this register by selecting UHS-II Device Select. The number of the
registers to hold INT MSGs is determined by Number of Devices Supported in the UHS-II General
Capabilities register. Device ID is supposed to be assigned from 1 sequentially at the UHS-II
initialization. This register is applicable for UHS-II mode only.
■ Size: 8 bits
■ Offset: 0xbf
■ Exists: (DWC_MSHC_UHS2_SUPPORT==1)
DEV_INTR_CODE 7:0
Memory
Bits Name Access Description
5.1.67 UHS_II_SOFT_RESET_R
■ Name: UHS-II Software Reset Register
■ Description: This register is used to enable UHS-II software resets. This register is applicable for
UHS-II mode only.
■ Size: 16 bits
■ Offset: 0xc0
■ Exists: (DWC_MSHC_UHS2_SUPPORT==1)
15:2
HOST_SD_TRAN_RST 1
0
HOST_FULL_RST
RESERVED_15_2
Memory
Bits Name Access Description
Memory
Bits Name Access Description
Values:
■ 0x0 (FALSE): Continue normal operation
■ 0x1 (TRUE): Reset SD-TRAN
Value After Reset: 0x0
Exists: Always
Volatile: true
Memory
Bits Name Access Description
Values:
■ 0x0 (FALSE): Continue normal operation
■ 0x1 (TRUE): Reset Host controller
Value After Reset: 0x0
Exists: Always
Volatile: true
5.1.68 UHS_II_TIMER_CNTRL_R
■ Name: UHS-II Timer Control Register
■ Description: This register is used to control the UHS-II timeout counters. This register is applicable
for UHS-II mode only.
■ Size: 16 bits
■ Offset: 0xc2
■ Exists: (DWC_MSHC_UHS2_SUPPORT==1)
15:8
7:4
TIMEOUT_CNT_CMD_RES 3:0
TIMER_CNT_DEADLOCK
RESERVED_15_8
Memory
Bits Name Access Description
Memory
Bits Name Access Description
Note: The Host driver can get information about the timer
clock frequency from the Capabilities register
(Capabilities_1_R). The Timer clock frequency for
DWC_mshc must be configured using the
DWC_MSHC_TIMER_CLK_FREQ_UNIT and the
DWC_MSHC_TIMER_CLK_FREQ parameters.
Value After Reset: 0x0
Exists: Always
Memory
Bits Name Access Description
5.1.69 UHS_II_ERR_INTR_STATUS_R
■ Name: UHS-II Error Interrupt Status Register
■ Description: When any of these fields is set to 1, Error Interrupt in the Normal Interrupt Status
register is set to 1. Note that the duplicate MSG packets are sent from the UHS-II card during the data
transfer as described in the UHS-II Addendum. If either of these packets is recognized as wrong, the
Host controller does not assert an error interrupt while continuing with the data transfer. This
register is applicable for UHS-II mode only.
■ Size: 32 bits
■ Offset: 0xc4
■ Exists: (DWC_MSHC_UHS2_SUPPORT==1) 26:18
14:9
VENDOR_SPECIFIC_ERR4 31
VENDOR_SPECIFIC_ERR3 30
VENDOR_SPECIFIC_ERR2 29
VENDOR_SPECIFIC_ERR1 28
VENDOR_SPECIFIC_ERR0 27
17
16
15
8
7
6
5
4
3
2
1
0
UNRECOVERABLE_ERR
TIMEOUT_DEADLOCK
TIMEOUT_CMD_RES
RESERVED_26_18
RETRY_EXPIRED
RESERVED_14_9
FRAMING_ERR
RES_PKT_ERR
HEADER_ERR
RESERVED_6
ADMA_ERR
EBSY_ERR
CRC_ERR
TID_ERR
Memory
Bits Name Access Description
Memory
Bits Name Access Description
Memory
Bits Name Access Description
Memory
Bits Name Access Description
Memory
Bits Name Access Description
Memory
Bits Name Access Description
Values:
■ 0x0 (FALSE): Interrupt is not generated
■ 0x1 (TRUE): Framing Error
Value After Reset: 0x0
Exists: Always
Volatile: true
Values:
■ 0x0 (FALSE): Interrupt is not generated
■ 0x1 (TRUE): CRC Error
Value After Reset: 0x0
Exists: Always
Volatile: true
Memory
Bits Name Access Description
5.1.70 UHS_II_ERR_INTR_STATUS_EN_R
■ Name: UHS-II Error Interrupt Status Enable Register
■ Description: This register is used to enable setting of error bits in the UHS-II Error Interrupt Status
register. This register is applicable for UHS-II mode only.
■ Size: 32 bits
■ Offset: 0xc8
■ Exists: (DWC_MSHC_UHS2_SUPPORT==1)
26:18
14:9
VENDOR_SPECIFIC_ERR4 31
VENDOR_SPECIFIC_ERR3 30
VENDOR_SPECIFIC_ERR2 29
VENDOR_SPECIFIC_ERR1 28
VENDOR_SPECIFIC_ERR0 27
17
16
15
8
7
6
5
4
3
2
1
0
UNRECOVERABLE_ERR
TIMEOUT_DEADLOCK
TIMEOUT_CMD_RES
RESERVED_26_18
RETRY_EXPIRED
RESERVED_14_9
FRAMING_ERR
RES_PKT_ERR
HEADER_ERR
RESERVED_6
ADMA_ERR
EBSY_ERR
CRC_ERR
TID_ERR
Memory
Bits Name Access Description
Memory
Bits Name Access Description
Memory
Bits Name Access Description
Memory
Bits Name Access Description
Memory
Bits Name Access Description
5.1.71 UHS_II_ERR_INTR_SIGNAL_EN_R
■ Name: UHS-II Error Interrupt Signal Enable Register
■ Description: This register is used to enable the generation of interrupt signals. This register is
applicable for UHS-II mode only.
■ Size: 32 bits
■ Offset: 0xcc
■ Exists: (DWC_MSHC_UHS2_SUPPORT==1)
26:18
14:9
VENDOR_SPECIFIC_ERR4 31
VENDOR_SPECIFIC_ERR3 30
VENDOR_SPECIFIC_ERR2 29
VENDOR_SPECIFIC_ERR1 28
VENDOR_SPECIFIC_ERR0 27
17
16
15
8
7
6
5
4
3
2
1
0
UNRECOVERABLE_ERR
TIMEOUT_DEADLOCK
TIMEOUT_CMD_RES
RESERVED_26_18
RETRY_EXPIRED
RESERVED_14_9
FRAMING_ERR
RES_PKT_ERR
HEADER_ERR
RESERVED_6
ADMA_ERR
EBSY_ERR
CRC_ERR
TID_ERR
Memory
Bits Name Access Description
Memory
Bits Name Access Description
Memory
Bits Name Access Description
Memory
Bits Name Access Description
Memory
Bits Name Access Description
5.1.72 P_UHS_II_SETTINGS_R
■ Name: Pointer for UHS-II Settings
■ Description: This register points to the location of UHS-II Settings register. There are three types of
UHS-II Settings registers, namely UHS-II General Settings register, UHS-II PHY Settings register, and
UHS-II LINK/TRAN Settings register. The start address of the General Settings register is pointed by
the pointer for the UHS-II Setting register. This register is applicable for UHS-II mode only.
■ Size: 16 bits
■ Offset: 0xe0
■ Exists: (DWC_MSHC_UHS2_SUPPORT==1)
15:12
REG_OFFSET_ADDR 11:0
RESERVED_15_12
Memory
Bits Name Access Description
5.1.73 P_UHS_II_HOST_CAPAB
■ Name: Pointer for UHS-II Host Capabilities
■ Description: This register points to the location of the UHS-II Host Capabilities register. There are
three types of UHS-II Host Capabilities registers, namely UHS-II General Capabilities register, UHS-
II Capabilities Setting register, and UHS-II LINK/TRAN Capabilities register. The start address of
the General Capabilities register is pointed by the pointer for the UHS-II Host Capabilities register.
This register is applicable for UHS-II mode only.
■ Size: 16 bits
■ Offset: 0xe2
■ Exists: (DWC_MSHC_UHS2_SUPPORT==1)
15:12
REG_OFFSET_ADDR 11:0
RESERVED_15_12
Memory
Bits Name Access Description
5.1.74 P_UHS_II_TEST
■ Name: Pointer for UHS-II Test
■ Description: This register points to the location of UHS-II test registers.
■ Size: 16 bits
■ Offset: 0xe4
■ Exists: (DWC_MSHC_UHS2_SUPPORT==1)
15:12
REG_OFFSET_ADDR 11:0
RESERVED_15_12
Memory
Bits Name Access Description
5.1.75 P_EMBEDDED_CNTRL
■ Name: Pointer for Embedded Control
■ Description: This register points to the location of UHS-II embedded control registers.
■ Size: 16 bits
■ Offset: 0xe6
■ Exists: Always
15:12
REG_OFFSET_ADDR 11:0
RESERVED_15_12
Memory
Bits Name Access Description
5.1.76 P_VENDOR_SPECIFIC_AREA
■ Name: Pointer for Vendor Specific Area 1
■ Description: This register used as a pointer for the Vendor Specific Area 1.
■ Size: 16 bits
■ Offset: 0xe8
■ Exists: Always
15:12
REG_OFFSET_ADDR 11:0
RESERVED_15_12
Memory
Bits Name Access Description
5.1.77 P_VENDOR2_SPECIFIC_AREA
■ Name: Pointer for Vendor Specific Area 2
■ Description: This register is used as a pointer for the Vendor Specific Area 2.
■ Size: 16 bits
■ Offset: 0xea
■ Exists: Always
REG_OFFSET_ADDR 15:0
Memory
Bits Name Access Description
5.1.78 SLOT_INTR_STATUS_R
■ Name: Slot Interrupt Status Register
■ Description: This register indicates the Interrupt status of each slot.
■ Size: 16 bits
■ Offset: 0xfc
■ Exists: Always
RESERVED_15_8 15:8
7:0
INTR_SLOT
Memory
Bits Name Access Description
Memory
Bits Name Access Description
5.1.79 HOST_CNTRL_VERS_R
■ Name: Host Controller Version
■ Description: This register is used to indicate the Host Controller Version number.
■ Size: 16 bits
■ Offset: 0xfe
■ Exists: Always
VENDOR_VERSION_NUM 15:8
7:0
SPEC_VERSION_NUM
Memory
Bits Name Access Description
Memory
Bits Name Access Description
5.2.1 UHS2_GEN_SET_R
■ Name: UHS-II General Setting register
■ Description: This register is used to configure general settings of UHS-II. This register is applicable
for UHS-II mode only.
■ Size: 32 bits
■ Offset: P_UHS_II_SETTINGS_R[11:0]
■ Exists: (DWC_MSHC_UHS2_SUPPORT==1)
RSVD_31_12 31:12
11:8
7:1
0
PWR_MODE
NUM_LANE
RSVD_7_1
Memory
Bits Name Access Description
Memory
Bits Name Access Description
5.2.2 UHS2_PHY_SET_R
■ Name: UHS-II Phy Setting register
■ Description: This register is used to configure PHY settings of UHS-II. This register is applicable for
UHS-II mode only.
■ Size: 32 bits
■ Offset: P_UHS_II_SETTINGS_R[11:0] + 0x4
■ Exists: (DWC_MSHC_UHS2_SUPPORT==1)
RSVD_31_24 31:24
23:20
19:16
14:8
SPD_RANGE 7:6
5:0
15
HBNATE_EN
N_LSS_SYN
RSVD_14_8
N_LSS_DIR
RSVD_5_0
Table 5-87 Fields for Register: UHS2_PHY_SET_R
Memory
Bits Name Access Description
Memory
Bits Name Access Description
Memory
Bits Name Access Description
5.2.3 UHS2_LNK_TRAN_SET_1_R
■ Name: UHS-II LINK/TRAN Setting register
■ Description: This register is used to configure LINK/TRAN settings of UHS-II. LINK/TRAN
settings register is segregated into two 32-bit registers UHS2_LNK_TRAN_SET_1_R and
UHS2_LNK_TRAN_SET_2_R. This register UHS2_LNK_TRAN_SET_1_R represents lower 32 bits.
This register is applicable for UHS-II mode only.
■ Size: 32 bits
■ Offset: P_UHS_II_SETTINGS_R[11:0] + 0x8
■ Exists: (DWC_MSHC_UHS2_SUPPORT==1)
RSVD_31_18 31:18
17:16
15:8
7:0
RTRY_CNT
RSVD_7_0
N_FCU
Memory
Bits Name Access Description
Memory
Bits Name Access Description
5.2.4 UHS2_LNK_TRAN_SET_2_R
■ Name: UHS-II LINK/TRAN Setting 2 register
■ Description: This register is used to configure LINK/TRAN settings of UHS-II. LINK/TRAN
settings register is segregated into two 32-bit registers, namely UHS2_LNK_TRAN_SET_1_R and
UHS2_LNK_TRAN_SET_2_R. This register UHS2_LNK_TRAN_SET_2_R represents upper 32 bits.
This register is applicable for UHS-II mode only.
■ Size: 32 bits
■ Offset: P_UHS_II_SETTINGS_R[11:0] + 0xc
■ Exists: (DWC_MSHC_UHS2_SUPPORT==1)
31:8
N_DATA_GAP 7:0
RSVD_31_8
Memory
Bits Name Access Description
5.3.1 UHS2_GEN_CAP_R
■ Name: UHS2 General Capabilities register
■ Description: This register reflects the General capabilities of UHS-II based on configuration. This
register is applicable for UHS-II mode only.
■ Size: 32 bits
■ Offset: P_UHS_II_HOST_CAPAB[11:0]
■ Exists: (DWC_MSHC_UHS2_SUPPORT==1)
31:24
23:22
21:18
RMV_EMBEDDED 17:16
13:8
7:4
3:0
15
14
RSVD_31_24
BOOT_LOAD
BUS_TOPO
NUM_LANE
NUM_DEV
ADDR64
GAP
DAP
Table 5-91 Fields for Register: UHS2_GEN_CAP_R
Memory
Bits Name Access Description
Memory
Bits Name Access Description
Memory
Bits Name Access Description
Memory
Bits Name Access Description
5.3.2 UHS2_PHY_CAP_R
■ Name: UHS2 PHY Capabilities register
■ Description: This register reflects the PHY capabilities of UHS-II based on the configuration. This
register is applicable for UHS-II mode only.
■ Size: 32 bits
■ Offset: P_UHS_II_HOST_CAPAB[11:0] + 0x4
■ Exists: (DWC_MSHC_UHS2_SUPPORT==1)
RSVD_31_24 31:24
23:20
19:16
15:8
SPD_RANGE 7:6
5:0
N_LSS_SYN
RSVD_15_8
N_LSS_DIR
PHY_REV
Memory
Bits Name Access Description
Memory
Bits Name Access Description
5.3.3 UHS2_LNK_TRAN_CAP_1_R
■ Name: UHS2 Link Tran Capabilities register (0 to 31)
■ Description: This register reflects LINK/TRAN capabilities of UHS-II based on configuration.
LINK/TRAN capabilities register is segregated into two 32-bit registers
UHS2_LNK_TRAN_SET_1_R and UHS2_LNK_TRAN_SET_2_R. This register
UHS2_LNK_TRAN_SET_1_R represents lower 32 bits. This register is applicable for UHS-II mode
only.
■ Size: 32 bits
■ Offset: P_UHS_II_HOST_CAPAB[11:0] + 0x8
■ Exists: (DWC_MSHC_UHS2_SUPPORT==1)
MAX_BLK_LEN 31:20
18:16
15:8
7:6
5:0
19
DEV_TYPE
RSVD_7_6
LNK_REV
RSVD_19
N_FCU
Memory
Bits Name Access Description
Memory
Bits Name Access Description
5.3.4 UHS2_LNK_TRAN_CAP_2_R
■ Name: UHS2 Link Tran Capabilities register (32 to 63)
■ Description: This register reflects the LINK/TRAN capabilities of UHS-II based on the configuration.
The LINK/TRAN capabilities register is segregated into two 32-bit registers, namely
UHS2_LNK_TRAN_SET_1_R and UHS2_LNK_TRAN_SET_2_R. The UHS2_LNK_TRAN_SET_2_R
register represents the upper 32 bits. This register is applicable for UHS-II mode only.
■ Size: 32 bits
■ Offset: P_UHS_II_HOST_CAPAB[11:0] + 0xc
■ Exists: (DWC_MSHC_UHS2_SUPPORT==1)
31:8
N_DATA_GAP 7:0
RSVD_31_8
Memory
Bits Name Access Description
FORCE_UHS_II_ERR_INTR_STATUS_R P_UHS_I Force Event for UHS-II Error Interrupt Status Register
on page 446 I_TEST[1
1:0]
5.4.1 FORCE_UHS_II_ERR_INTR_STATUS_R
■ Name: Force Event for UHS-II Error Interrupt Status Register
■ Description: This register is used to force the Host Controller to set Error Interrupt Status register.
This register is applicable for UHS-II mode only.
■ Size: 32 bits
■ Offset: P_UHS_II_TEST[11:0]
■ Exists: (DWC_MSHC_UHS2_SUPPORT==1)
26:18
14:9
VENDOR_SPECIFIC_ERR4 31
VENDOR_SPECIFIC_ERR3 30
VENDOR_SPECIFIC_ERR2 29
VENDOR_SPECIFIC_ERR1 28
VENDOR_SPECIFIC_ERR0 27
17
16
15
8
7
6
5
4
3
2
1
0
UNRECOVERABLE_ERR
TIMEOUT_DEADLOCK
TIMEOUT_CMD_RES
RESERVED_26_18
RETRY_EXPIRED
RESERVED_14_9
FRAMING_ERR
RES_PKT_ERR
HEADER_ERR
RESERVED_6
AMDA_ERR
EBSY_ERR
CRC_ERR
TID_ERR
Memory
Bits Name Access Description
Memory
Bits Name Access Description
Memory
Bits Name Access Description
Memory
Bits Name Access Description
Memory
Bits Name Access Description
5.5.1 EMBEDDED_CTRL_R
■ Name: Embedded Control register
■ Description: This register controls the embedded device. When the Host Controller is connected to a
removable device, this register is not used.
■ Size: 32 bits
■ Offset: P_EMBEDDED_CNTRL[11:0]
■ Exists: Always
BACK_END_PWR_CTRL 30:24
22:20
18:16
14:8
7:6
5:4
2:0
31
23
19
15
3
BUS_WIDTH_PRESET
NUM_CLK_PIN
NUM_INT_PIN
CLK_PIN_SEL
INT_PIN_SEL
RSVD_7_6
RSVD_31
RSVD_23
RSVD_19
RSVD_15
RSVD_3
Memory
Bits Name Access Description
Memory
Bits Name Access Description
Memory
Bits Name Access Description
Memory
Bits Name Access Description
CQISE on page 471 P_VEND Command Queuing Interrupt Status Enable register
OR2_SP
ECIFIC_
AREA +
0x14
CQISGE on page 473 P_VEND Command Queuing Interrupt signal enable register
OR2_SP
ECIFIC_
AREA +
0x18
CQTDLBA on page 480 P_VEND Command Queuing Task Descriptor List Base Address
OR2_SP register
ECIFIC_
AREA +
0x20
CQTDLBAU on page 481 P_VEND Command Queuing Task Descriptor List Base Address
OR2_SP Upper register
ECIFIC_
AREA +
0x24
CQCRDCT on page 491 P_VEND Command response for direct command register
OR2_SP
ECIFIC_
AREA +
0x48
CQRMEM on page 492 P_VEND Command response mode error mask register
OR2_SP
ECIFIC_
AREA +
0x50
5.6.1 CQVER
■ Name: Command Queuing Version register
■ Description: This register provides information about the version of the eMMC Command Queueing
standard, which is implemented by the CQE in BCD format.
■ Size: 32 bits
■ Offset: P_VENDOR2_SPECIFIC_AREA
■ Exists: DWC_MSHC_EMMC_CQE_EN==1
EMMMC_VER_RSVD 31:12
EMMC_VER_MAJOR 11:8
7:4
EMMC_VER_SUFFIX 3:0
EMMC_VER_MINOR
Memory
Bits Name Access Description
31:12 EMMMC_VER_RSVD R These bits of the CQVER register are reserved. They always
return 0.
Value After Reset: 0x0
Exists: Always
11:8 EMMC_VER_MAJOR R This bit indicates the eMMC major version (1st digit left of
decimal point) in BCD format.
Value After Reset: 0x5
Exists: Always
7:4 EMMC_VER_MINOR R This bit indicates the eMMC minor version (1st digit right of
decimal point) in BCD format.
Value After Reset: 0x1
Exists: Always
3:0 EMMC_VER_SUFFIX R This bit indicates the eMMC version suffix (2nd digit right of
decimal point) in BCD format.
Value After Reset: 0x0
Exists: Always
5.6.2 CQCAP
■ Name: Command Queuing Capabilities register
■ Description: This register indicates the capabilities of the command queuing engine.
■ Size: 32 bits
■ Offset: P_VENDOR2_SPECIFIC_AREA + 0x4
■ Exists: DWC_MSHC_SD_EMMC_SUPPORT==1
31:29
27:16
15:12
11:10
9:0
CRYPTO_SUPPORT 28
CQCCAP_RSVD3
CQCCAP_RSVD2
CQCCAP_RSVD1
ITCFMUL
ITCFVAL
Memory
Bits Name Access Description
31:29 CQCCAP_RSVD3 R These bits [31:29] of the CQCAP register are reserved. They
always return 0.
Value After Reset: 0x0
Exists: Always
27:16 CQCCAP_RSVD2 R These bits [27:16] of the CQCAP register are reserved. They
always return 0.
Value After Reset: 0x0
Exists: Always
Memory
Bits Name Access Description
11:10 CQCCAP_RSVD1 R These bits of the CQCAP register are reserved. They always
return 0.
Value After Reset: 0x0
Exists: Always
5.6.3 CQCFG
■ Name: Command Queuing Configuration register
■ Description: This register controls CQE behavior affecting the general operation of command
queuing engine.
■ Size: 32 bits
■ Offset: P_VENDOR2_SPECIFIC_AREA + 0x8
■ Exists: (DWC_MSHC_EMMC_CQE_EN==1) || (DWC_MSHC_CRYPTO_SUPPORT==1)
31:13
11:9
7:2
12
TASK_DESC_SIZE 8
CR_GENERAL_EN 1
0
CQCCFG_RSVD3
CQCCFG_RSVD2
CQCCFG_RSVD1
DCMD_EN
CQ_EN
Memory
Bits Name Access Description
12 DCMD_EN R/W This bit indicates to the hardware whether the Task
Descriptor in slot #31 of the TDL is a data transfer descriptor
or a direct-command descriptor. CQE uses this bit when a
task is issued in slot #31, to determine how to decode the
Task Descriptor.
Values:
■ 0x1 (SLOT31_DCMD_ENABLE): Task descriptor in slot
#31 is a DCMD Task Descriptor
■ 0x0 (SLOT31_DCMD_DISABLE): Task descriptor in slot
#31 is a data Transfer Task Descriptor
Value After Reset: 0x0
Exists: (DWC_MSHC_EMMC_CQE_EN == 1)
Memory
Bits Name Access Description
Memory
Bits Name Access Description
5.6.4 CQCTL
■ Name: Command Queuing Control register
■ Description: This register controls CQE behavior affecting the general operation of command
queuing module or simultaneous operation of multiple tasks.
■ Size: 32 bits
■ Offset: P_VENDOR2_SPECIFIC_AREA + 0xc
■ Exists: DWC_MSHC_EMMC_CQE_EN==1
31:9
7:1
CLR_ALL_TASKS 8
0
CQCTL_RSVD2
CQCTL_RSVD1
HALT
Memory
Bits Name Access Description
Memory
Bits Name Access Description
5.6.5 CQIS
■ Name: Command Queuing Interrupt Status register
■ Description: This register indicates pending interrupts that require service. Each bit in this register is
asserted in response to a specific event, only if the respective bit is set in the CQISE register.
■ Size: 32 bits
■ Offset: P_VENDOR2_SPECIFIC_AREA + 0x10
■ Exists: DWC_MSHC_EMMC_CQE_EN==1
CQIS_RSVD1 31:6
5
4
3
2
1
0
ICCE
GCE
RED
HAC
TCC
TCL
Memory
Bits Name Access Description
31:6 CQIS_RSVD1 R These bits of the CQIS register are reserved. They always
return 0.
Value After Reset: 0x0
Exists: Always
Volatile: true
Memory
Bits Name Access Description
Memory
Bits Name Access Description
Memory
Bits Name Access Description
5.6.6 CQISE
■ Name: Command Queuing Interrupt Status Enable register
■ Description: This register enables and disables the reporting of the corresponding interrupt to host
software in the CQIS register. When a bit is set (1) and the corresponding interrupt condition is
active, then the bit in CQIS is asserted. Interrupt sources that are disabled (when '0') are not indicated
in the CQIS register. This register is bit-index matched to the CQIS register.
■ Size: 32 bits
■ Offset: P_VENDOR2_SPECIFIC_AREA + 0x14
■ Exists: DWC_MSHC_EMMC_CQE_EN==1
CQISTE_RSVD1 31:6
5
4
3
2
1
0
ICCE_STE
GCE_STE
RED_STE
HAC_STE
TCC_STE
TCL_STE
Memory
Bits Name Access Description
31:6 CQISTE_RSVD1 R These bits of the CQISE register are reserved. They always
return 0.
Value After Reset: 0x0
Exists: Always
Memory
Bits Name Access Description
5.6.7 CQISGE
■ Name: Command Queuing Interrupt signal enable register
■ Description: This register enables and disables the generation of interrupts to host software. When a
bit is set and the corresponding bit in CQIS is set, then an interrupt is generated. Interrupt sources
that are disabled are still indicated in the CQIS register. This register is bit-index matched to the CQIS
register.
■ Size: 32 bits
■ Offset: P_VENDOR2_SPECIFIC_AREA + 0x18
■ Exists: DWC_MSHC_EMMC_CQE_EN==1
CQISGE_RSVD1 31:6
5
4
3
2
1
0
ICCE_SGE
GCE_SGE
RED_SGE
HAC_SGE
TCC_SGE
TCL_SGE
Memory
Bits Name Access Description
31:6 CQISGE_RSVD1 R These bits of the CQISGE register are reserved. They
always return 0.
Value After Reset: 0x0
Exists: Always
Memory
Bits Name Access Description
Memory
Bits Name Access Description
5.6.8 CQIC
■ Name: Command Queuing Interrupt Coalescing register
■ Description: This register controls and configures interrupt coalescing feature.
■ Size: 32 bits
■ Offset: P_VENDOR2_SPECIFIC_AREA + 0x1c
■ Exists: DWC_MSHC_EMMC_CQE_EN==1
30:21
19:17
14:13
12:8
6:0
31
20
16
15
TOUT_VAL_WEN 7
INTC_TH_WEN
CQIC_RSVD3
CQIC_RSVD2
CQIC_RSVD1
INTC_STAT
TOUT_VAL
INTC_RST
INTC_EN
INTC_TH
Memory
Bits Name Access Description
Memory
Bits Name Access Description
Memory
Bits Name Access Description
Memory
Bits Name Access Description
5.6.9 CQTDLBA
■ Name: Command Queuing Task Descriptor List Base Address register
■ Description: This register is used for configuring the lower 32 bits of the byte address of the head of
the Task Descriptor List in the host memory.
■ Size: 32 bits
■ Offset: P_VENDOR2_SPECIFIC_AREA + 0x20
■ Exists: DWC_MSHC_EMMC_CQE_EN==1
TDLBA 31:0
Memory
Bits Name Access Description
31:0 TDLBA R/W This register stores the LSB bits (31:0) of the byte address of
the head of the Task Descriptor List in system memory.
The size of the task descriptor list is 32 * (Task Descriptor
size + Transfer Descriptor size) as configured by the host
driver. This address is set on 1 KB boundary. The lower 10
bits of this register are set to 0 by the software and are
ignored by CQE.
Value After Reset: 0x0
Exists: Always
Volatile: true
5.6.10 CQTDLBAU
■ Name: Command Queuing Task Descriptor List Base Address Upper register
■ Description: This register is used for configuring the upper 32 bits of the byte address of the head of
the Task Descriptor List in the host memory.
■ Size: 32 bits
■ Offset: P_VENDOR2_SPECIFIC_AREA + 0x24
■ Exists: DWC_MSHC_EMMC_CQE_EN==1 && DWC_MSHC_MBIU_AW==64
TDLBAU 31:0
Memory
Bits Name Access Description
31:0 TDLBAU R/W This register stores the MSB bits (63:32) of the byte address
of the head of the Task Descriptor List in system memory.
The size of the task descriptor list is 32 * (Task Descriptor
size + Transfer Descriptor size) as configured by Host driver.
This address is set on 1 KB boundary. The lower 10 bits of
this register are set to 0 by the software and are ignored by
CQE. This register is reserved when using 32-bit addressing
mode.
Value After Reset: 0x0
Exists: Always
Volatile: true
5.6.11 CQTDBR
■ Name: Command Queuing DoorBell register
■ Description: Using this register, software triggers CQE to process a new task.
■ Size: 32 bits
■ Offset: P_VENDOR2_SPECIFIC_AREA + 0x28
■ Exists: DWC_MSHC_EMMC_CQE_EN==1
DBR 31:0
Memory
Bits Name Access Description
31:0 DBR R/W The software configures TDLBA and TDLBAU, and enable
CQE in CQCFG before using this register.
Writing 1 to bit n of this register triggers CQE to start
processing the task encoded in slot n of the TDL. Writing 0
by the software does not have any impact on the hardware,
and does not change the value of the register bit.
CQE always processes tasks according to the order
submitted to the list by CQTDBR write transactions. CQE
processes Data Transfer tasks by reading the Task
Descriptor and sending QUEUED_TASK_PARAMS (CMD44)
and QUEUED_TASK_ADDRESS (CMD45) commands to
the device. CQE processes DCMD tasks (in slot #31, when
enabled) by reading the Task Descriptor, and generating the
command encoded by its index and argument.
The corresponding bit is cleared to 0 by CQE in one of the
following events:
■ A task execution is completed (with success or error).
■ The task is cleared using CQTCLR register.
■ All tasks are cleared using CQCTL register.
■ CQE is disabled using CQCFG register.
Software may initiate multiple tasks at the same time (batch
submission) by writing 1 to multiple bits of this register in the
same transaction. In the case of batch submission, CQE
processes the tasks in order of the task index, starting with
the lowest index. If one or more tasks in the batch are
marked with QBR, the ordering of execution is based on said
processing order.
Value After Reset: 0x0
Exists: Always
Volatile: true
5.6.12 CQTCN
■ Name: Command Queuing TaskClear Notification register
■ Description: This register is used by CQE to notify software about completed tasks.
■ Size: 32 bits
■ Offset: P_VENDOR2_SPECIFIC_AREA + 0x2c
■ Exists: DWC_MSHC_EMMC_CQE_EN==1
TCN 31:0
Table 5-111 Fields for Register: CQTCN
Memory
Bits Name Access Description
5.6.13 CQDQS
■ Name: Device queue status register
■ Description: This register stores the most recent value of the device's queue status.
■ Size: 32 bits
■ Offset: P_VENDOR2_SPECIFIC_AREA + 0x30
■ Exists: DWC_MSHC_EMMC_CQE_EN==1
DQS 31:0
Table 5-112 Fields for Register: CQDQS
Memory
Bits Name Access Description
5.6.14 CQDPT
■ Name: Device pending tasks register
■ Description: This register maintains the list of tasks that are queued into device and are awaiting
execution completion.
■ Size: 32 bits
■ Offset: P_VENDOR2_SPECIFIC_AREA + 0x34
■ Exists: DWC_MSHC_EMMC_CQE_EN==1
DPT 31:0
Memory
Bits Name Access Description
5.6.15 CQTCLR
■ Name: Command Queuing DoorBell register
■ Description: This register is used for removing an outstanding task in the CQE. The register must be
used only when CQE is in Halt state.
■ Size: 32 bits
■ Offset: P_VENDOR2_SPECIFIC_AREA + 0x38
■ Exists: DWC_MSHC_EMMC_CQE_EN==1
TCLR 31:0
Memory
Bits Name Access Description
31:0 TCLR R/W Writing 1 to bit n of this register orders CQE to clear a task
that the software has previously issued.
This bit can only be written when CQE is in Halt state as
indicated in CQCFG register Halt bit. When software writes 1
to a bit in this register, CQE updates the value to 1, and
starts clearing the data structures related to the task. CQE
clears the bit fields (sets a value of 0) in CQTCLR and in
CQTDBR once the clear operation is complete. Software
must poll on the CQTCLR until it is cleared to verify that a
clear operation was done.
Value After Reset: 0x0
Exists: Always
Volatile: true
5.6.16 CQSSC1
■ Name: CQ Send Status Configuration 1 register
■ Description: This register is used for removing an outstanding task in the CQE. The register controls
when SEND_QUEUE_STATUS commands are sent.
■ Size: 32 bits
■ Offset: P_VENDOR2_SPECIFIC_AREA + 0x40
■ Exists: DWC_MSHC_EMMC_CQE_EN==1
31:20
19:16
SQSCMD_IDLE_TMR 15:0
SQSCMD_BLK_CNT
RSVD_20_31
Memory
Bits Name Access Description
31:20 RSVD_20_31 R These bits of the CQSSC1 register are reserved. They
always return 0.
Value After Reset: 0x0
Exists: Always
Memory
Bits Name Access Description
19:16 SQSCMD_BLK_CNT R/W This field indicates when SQS CMD is sent while data
transfer is in progress.
A value of 'n' indicates that CQE sends status command on
the CMD line, during the transfer of data block BLOCK_CNT-
n, on the data lines, where BLOCK_CNT is the number of
blocks in the current transaction.
■ 0x0: SEND_QUEUE_STATUS (CMD13) command is not
sent during the transaction. Instead, it is sent only when
the data lines are idle.
■ 0x1: SEND_QUEUE_STATUS command is to be sent
during the last block of the transaction.
■ 0x2: SEND_QUEUE_STATUS command when last 2
blocks are pending.
■ 0x3: SEND_QUEUE_STATUS command when last 3
blocks are pending.
■ ........
■ 0xf: SEND_QUEUE_STATUS command when last 15
blocks are pending.
15:0 SQSCMD_IDLE_TMR R/W This field configures the polling period to be used when
using periodic SEND_QUEUE_STATUS (CMD13) polling.
Periodic polling is used when tasks are pending in the
device, but no data transfer is in progress. When a
SEND_QUEUE_STATUS response indicates that no task is
ready for execution, CQE counts the configured time until it
issues the next SEND_QUEUE_STATUS.
Timer units are clock periods of the clock whose frequency is
specified in the Internal Timer Clock Frequency field CQCAP
register. The minimum value is 0001h (1 clock period) and
the maximum value is FFFFh (65535 clock periods).
For example, a CQCAP field value of 0 indicates a 19.2 MHz
clock frequency (period = 52.08 ns). If the setting in
CQSSC1.CIT is 1000h, the calculated polling period is
4096*52.08 ns= 213.33 ns.
Should be programmed only when CQCFG.CQ_EN is '0'.
Value After Reset: 0x1000
Exists: Always
5.6.17 CQSSC2
■ Name: CQ Send Status Configuration 2 register
■ Description: The register is used for configuring the RCA field in SEND_QUEUE_STATUS
command argument.
■ Size: 32 bits
■ Offset: P_VENDOR2_SPECIFIC_AREA + 0x44
■ Exists: DWC_MSHC_EMMC_CQE_EN==1
31:16
SQSCMD_RCA 15:0
RSVD_16_31
Memory
Bits Name Access Description
31:16 RSVD_16_31 R These bits of the CQSSC2 register are reserved. They
always return 0.
Value After Reset: 0x0
Exists: Always
15:0 SQSCMD_RCA R/W This field provides CQE with the contents of the 16-bit RCA
field in SEND_QUEUE_STATUS (CMD13) command
argument.
CQE copies this field to bits 31:16 of the argument when
transmitting SEND_ QUEUE_STATUS (CMD13) command.
Value After Reset: 0x0
Exists: Always
5.6.18 CQCRDCT
■ Name: Command response for direct command register
■ Description: This register stores the response of last executed DCMD.
■ Size: 32 bits
■ Offset: P_VENDOR2_SPECIFIC_AREA + 0x48
■ Exists: DWC_MSHC_EMMC_CQE_EN==1
DCMD_RESP 31:0
Memory
Bits Name Access Description
5.6.19 CQRMEM
■ Name: Command response mode error mask register
■ Description: This register controls the generation of response error detect (RED) interrupt. Only the
bits enabled here can contribute to RED.
■ Size: 32 bits
■ Offset: P_VENDOR2_SPECIFIC_AREA + 0x50
■ Exists: DWC_MSHC_EMMC_CQE_EN==1
RESP_ERR_MASK 31:0
Memory
Bits Name Access Description
31:0 RESP_ERR_MASK R/W The bits of this field are bit mapped to the device response.
This bit is used as an interrupt mask on the device status
filed that is received in R1/R1b responses.
■ 1: When a R1/R1b response is received, with a bit i in the
device status set, a RED interrupt is generated.
■ 0: When a R1/R1b response is received, bit i in the device
status is ignored.
The reset value of this register is set to trigger an interrupt on
all "Error" type bits in the device status.
Note: Responses to CMD13 (SQS) encode the QSR so that
they are ignored by this logic.
Value After Reset: 0xfdf9a080
Exists: Always
5.6.20 CQTERRI
■ Name: CQ Task Error Information register
■ Description: This register is updated by CQE when an error occurs on data or command related to a
task activity. When such an error is detected by CQE or indicated by the eMMC controller, CQE
stores the following in the CQTERRI register: task IDs and indices of commands that were executed
on the command line and data lines when the error occurred.
Software must use this information in the error recovery procedure.
■ Size: 32 bits
■ Offset: P_VENDOR2_SPECIFIC_AREA + 0x54
■ Exists: DWC_MSHC_EMMC_CQE_EN==1 30:29
28:24
23:22
21:16
14:13
12:8
7:6
5:0
TRANS_ERR_FIELDS_VALID 31
15
RESP_ERR_FIELDS_VALID
TRANS_ERR_CMD_INDX
RESP_ERR_CMD_INDX
TRANS_ERR_TASKID
RESP_ERR_TASKID
RSVD_30_29
RSVD_23_22
RSVD_13_14
RSVD_6_7
Memory
Bits Name Access Description
Memory
Bits Name Access Description
28:24 TRANS_ERR_TASKID R This field captures the ID of the task that was executed and
whose data transfer has errors.
Value After Reset: 0x0
Exists: Always
21:16 TRANS_ERR_CMD_INDX R This field captures the index of the command that was
executed and whose data transfer has errors.
Value After Reset: 0x0
Exists: Always
12:8 RESP_ERR_TASKID R This field captures the ID of the task which was executed on
the command line when the error occurred.
Value After Reset: 0x0
Exists: Always
Memory
Bits Name Access Description
5:0 RESP_ERR_CMD_INDX R This field captures the index of the command that was
executed on the command line when the error occurred.
Value After Reset: 0x0
Exists: Always
5.6.21 CQCRI
■ Name: CQ Command response index
■ Description: This register stores the index of the last received command response.
■ Size: 32 bits
■ Offset: P_VENDOR2_SPECIFIC_AREA + 0x58
■ Exists: DWC_MSHC_EMMC_CQE_EN==1
31:6
CMD_RESP_INDX 5:0
RSVD_31_6
Memory
Bits Name Access Description
31:6 RSVD_31_6 R These bits of the CQCRI register are reserved. They always
return 0.
Value After Reset: 0x0
Exists: Always
5.6.22 CQCRA
■ Name: CQ Command response argument register
■ Description: This register stores the argument of the last received command response.
■ Size: 32 bits
■ Offset: P_VENDOR2_SPECIFIC_AREA + 0x5c
■ Exists: DWC_MSHC_EMMC_CQE_EN==1
CMD_RESP_ARG 31:0
Memory
Bits Name Access Description
PADTEST_CNFG on page 514 DWC_MS SD/eMMC PHY PAD TEST interface Setting
HC_PTR
_PHY_R
EGS +
0xE
PADTEST_OUT on page 515 DWC_MS SD/eMMC PHY PAD TEST Data out value
HC_PTR
_PHY_R
EGS +
0x10
PADTEST_IN on page 516 DWC_MS SD/eMMC PHY PAD TEST Data in value
HC_PTR
_PHY_R
EGS +
0x12
DLLMST_TSTDC on page 534 DWC_MS DLL Master test code setting register
HC_PTR
_PHY_R
EGS +
0x2A
DLLDBG_MLKDC on page 538 DWC_MS DLL Master lock code debug register
HC_PTR
_PHY_R
EGS +
0x30
DLLDBG_SLKDC on page 539 DWC_MS DLL Master Slave code debug register
HC_PTR
_PHY_R
EGS +
0x32
5.7.1 PHY_CNFG
■ Name: SD/eMMC PHY General Configuration
■ Description: SD/eMMC PHY general configuration register
■ Size: 32 bits
■ Offset: DWC_MSHC_PTR_PHY_REGS + 0x0
■ Exists: (DWC_MSHC_SDEMMC_PHY_REGS== 1)
31:24
23:20
19:16
15:2
PHY_PWRGOOD 1
0
PHY_RSTN
PAD_SN
PAD_SP
Rsvd
Rsvd
Memory
Bits Name Access Description
23:20 PAD_SN R/W NMOS TX drive strength control. Common config for all for
SD/eMMC Pads.
Value After Reset: 0x0
Exists: Always
19:16 PAD_SP R/W PMOS TX drive strength control. Common config for all for
SD/eMMC Pads.
Value After Reset: 0x0
Exists: Always
1 PHY_PWRGOOD R Phy's Power Good status is captured here. Ensure this is '1'
before stating transactions.
Value After Reset: 0x0
Exists: Always
Reset Mask: 0x0
Memory
Bits Name Access Description
0 PHY_RSTN R/W Active-Low reset control for PHY, write '0' to reset PHY, Write
'1' to deassert reset.
Value After Reset: 0x0
Exists: Always
5.7.2 CMDPAD_CNFG
■ Name: SD/eMMC PHY CMD/RESP PAD Setting
■ Description: SD/eMMC PHY's Command/Response PAD settings are controlled here
■ Size: 16 bits
■ Offset: DWC_MSHC_PTR_PHY_REGS + 0x4
■ Exists: (DWC_MSHC_SDEMMC_PHY_REGS== 1)
15:13
TXSLEW_CTRL_N 12:9
TXSLEW_CTRL_P 8:5
4:3
2:0
WEAKPULL_EN
RXSEL
Rsvd
Memory
Bits Name Access Description
Memory
Bits Name Access Description
2:0 RXSEL R/W Reciver type select for PAD. Controls the RXSEL value of
SD/eMMC PHY CMD PAD
Value After Reset: 0x0
Exists: Always
5.7.3 DATPAD_CNFG
■ Name: SD/eMMC PHY Data PAD Setting
■ Description: SD/eMMC PHY's Data PAD settings are controlled here. common settings for all data
pads
■ Size: 16 bits
■ Offset: DWC_MSHC_PTR_PHY_REGS + 0x6
■ Exists: (DWC_MSHC_SDEMMC_PHY_REGS== 1)
15:13
TXSLEW_CTRL_N 12:9
TXSLEW_CTRL_P 8:5
4:3
2:0
WEAKPULL_EN
RXSEL
Rsvd
Memory
Bits Name Access Description
Memory
Bits Name Access Description
2:0 RXSEL R/W Reciver type select for PAD. Controls the RXSEL value of
SD/eMMC PHY DATA PADs
Value After Reset: 0x0
Exists: Always
5.7.4 CLKPAD_CNFG
■ Name: SD/eMMC PHY Clock PAD Setting
■ Description: SD/eMMC PHY's CLK PAD settings are controlled here.
■ Size: 16 bits
■ Offset: DWC_MSHC_PTR_PHY_REGS + 0x8
■ Exists: (DWC_MSHC_SDEMMC_PHY_REGS== 1)
15:13
TXSLEW_CTRL_N 12:9
TXSLEW_CTRL_P 8:5
4:3
2:0
WEAKPULL_EN
RXSEL
Rsvd
Memory
Bits Name Access Description
Memory
Bits Name Access Description
2:0 RXSEL R/W Reciver type select for PAD. Controls the RXSEL value of
SD/eMMC PHY CLK PAD
Value After Reset: 0x0
Exists: Always
5.7.5 STBPAD_CNFG
■ Name: SD/eMMC PHY Strobe PAD Setting
■ Description: SD/eMMC PHY's Strobe PAD settings are controlled here.
■ Size: 16 bits
■ Offset: DWC_MSHC_PTR_PHY_REGS + 0xA
■ Exists: (DWC_MSHC_SDEMMC_PHY_REGS== 1)
15:13
TXSLEW_CTRL_N 12:9
TXSLEW_CTRL_P 8:5
4:3
2:0
WEAKPULL_EN
RXSEL
Rsvd
Memory
Bits Name Access Description
Memory
Bits Name Access Description
2:0 RXSEL R/W Reciver type select for PAD. Controls the RXSEL value of
SD/eMMC PHY STROBE PAD
Value After Reset: 0x0
Exists: Always
5.7.6 RSTNPAD_CNFG
■ Name: SD/eMMC PHY RSTN PAD Setting
■ Description: SD/eMMC PHY's RSTN PAD settings are controlled here.
■ Size: 16 bits
■ Offset: DWC_MSHC_PTR_PHY_REGS + 0xC
■ Exists: (DWC_MSHC_SDEMMC_PHY_REGS== 1)
15:13
TXSLEW_CTRL_N 12:9
TXSLEW_CTRL_P 8:5
4:3
2:0
WEAKPULL_EN
RXSEL
Rsvd
Memory
Bits Name Access Description
Memory
Bits Name Access Description
2:0 RXSEL R/W Reciver type select for PAD. Controls the RXSEL value of
SD/eMMC PHY RST_N PAD(s)
Value After Reset: 0x0
Exists: Always
5.7.7 PADTEST_CNFG
■ Name: SD/eMMC PHY PAD TEST interface Setting
■ Description: PAD TEST Path and direction control
■ Size: 16 bits
■ Offset: DWC_MSHC_PTR_PHY_REGS + 0xE
■ Exists: (DWC_MSHC_SDEMMC_PHY_REGS== 1)
15:10
9:4
3:1
TESTMODE_EN 0
TEST_OE
RSVD_1
Rsvd
Memory
Bits Name Access Description
9:4 TEST_OE R/W test interface OE control. Drive's PHY's itest_oe inputs.
Value After Reset: 0x0
Exists: Always
0 TESTMODE_EN R/W enables test mode interface for all PADS. Functional
interface is disabled.
Values:
■ 0x0 (PAD_FUNCMODE): PAD's functional mode I/F is
active
■ 0x1 (PAD_TESTMODE): PAD's test mode interface is
active
Value After Reset: 0x0
Exists: Always
5.7.8 PADTEST_OUT
■ Name: SD/eMMC PHY PAD TEST Data out value
■ Description: PAD TEST Path Data out, Drives itest_a input of SD/eMMC PHY
■ Size: 16 bits
■ Offset: DWC_MSHC_PTR_PHY_REGS + 0x10
■ Exists: (DWC_MSHC_SDEMMC_PHY_REGS== 1)
15:6
TESTDATA_OUT 5:0
Rsvd
Memory
Bits Name Access Description
5.7.9 PADTEST_IN
■ Name: SD/eMMC PHY PAD TEST Data in value
■ Description: PAD TEST Path Data in, reflects value of otest_y output of SD/eMMC PHY
■ Size: 16 bits
■ Offset: DWC_MSHC_PTR_PHY_REGS + 0x12
■ Exists: (DWC_MSHC_SDEMMC_PHY_REGS== 1)
15:6
TESTDATA_IN 5:0
Rsvd
Memory
Bits Name Access Description
5.7.10 PRBS_CNFG
■ Name: Controller PRBS Config register
■ Description: Register to configure PRBS engine
■ Size: 16 bits
■ Offset: DWC_MSHC_PTR_PHY_REGS + 0x18
■ Exists: (DWC_MSHC_SDEMMC_PHY_DFT== 1)
INIT_SEED 15:0
Memory
Bits Name Access Description
15:0 INIT_SEED R/W Value programmed here is used as SEED for PRBS engine
Value After Reset: 0xffff
Exists: Always
5.7.11 PHYLPBK_CNFG
■ Name: Loopback Config register
■ Description: Register to setup loopback mode
■ Size: 8 bits
■ Offset: DWC_MSHC_PTR_PHY_REGS + 0x1A
■ Exists: (DWC_MSHC_SDEMMC_PHY_DFT== 1)
7:2
OUT_EN_PHYLPBK_MODE 1
0
PHYLPBK_EN
Rsvd
Memory
Bits Name Access Description
Memory
Bits Name Access Description
5.7.12 COMMDL_CNFG
■ Name: Common DelayLine config settings register
■ Description: Config register to settings common to all DelayLines used in PHY
■ Size: 8 bits
■ Offset: DWC_MSHC_PTR_PHY_REGS + 0x1C
■ Exists: (DWC_MSHC_SDEMMC_PHY_REGS== 1)
7:2
1
DLSTEP_SEL 0
DLOUT_EN
Rsvd
Memory
Bits Name Access Description
0 DLSTEP_SEL R/W DelayLine's per step delay selection, Drives PHY's idl_step
input
Value After Reset: 0x0
Exists: Always
5.7.13 SDCLKDL_CNFG
■ Name: SD/eMMC DelayLine settings
■ Description: Settings for SD/eMMC CLK DelayLine.
■ Size: 8 bits
■ Offset: DWC_MSHC_PTR_PHY_REGS + 0x1D
■ Exists: (DWC_MSHC_SDEMMC_PHY_REGS== 1)
7:5
INPSEL_CNFG 3:2
4
1
0
UPDATE_DC
BYPASS_EN
EXTDLY_EN
Rsvd
Memory
Bits Name Access Description
4 UPDATE_DC R/W Prepares DealyLine for code update when '1'. Its
recommended that this bit is 1 when SDCLKDL_DC is being
written. Ensure this is '0' when not updating code. Note:
Turn-off card clock using CLK_CTRL_R.SD_CLK_EN before
programing this field.
Values:
■ 0x1 (BYPASSMODE): output of DelayLine is DelayLine
output active
■ 0x0 (DLMODE): DelayLine output is enabled
Value After Reset: 0x0
Exists: Always
3:2 INPSEL_CNFG R/W Drives SD/eMMC CLK DelayLine's config input. Value here
selects the input source to DelayLine
Value After Reset: 0x0
Exists: Always
Memory
Bits Name Access Description
5.7.14 SDCLKDL_DC
■ Name: SD/eMMC DelayLine Delay code setting
■ Description: SD/eMMC CLK DelayLine Delay Code value
■ Size: 8 bits
■ Offset: DWC_MSHC_PTR_PHY_REGS + 0x1E
■ Exists: (DWC_MSHC_SDEMMC_PHY_REGS== 1)
CCKDL_DC 6:0
7
Rsvd
Memory
Bits Name Access Description
6:0 CCKDL_DC R/W Drives SD/eMMC CLK DelayLine's Delay Code input. Value
here Selects the number of active stages in the card clock
delay line.Note: Turn-off card clock using
CLK_CTRL_R.SD_CLK_EN before programing this field.
Value After Reset: 0x0
Exists: Always
5.7.15 SMPLDL_CNFG
■ Name: SD/eMMC cclk_rx DelayLine settings
■ Description: SD/eMMC cclk_rx DelayLine configuration settings
■ Size: 8 bits
■ Offset: DWC_MSHC_PTR_PHY_REGS + 0x20
■ Exists: (DWC_MSHC_SDEMMC_PHY_REGS== 1)
7:5
3:2
INPSEL_OVERRIDE 4
1
0
INPSEL_CNFG
BYPASS_EN
EXTDLY_EN
Rsvd
Memory
Bits Name Access Description
3:2 INPSEL_CNFG R/W Drives CCLK_RX DelayLine's config input. Value here
selects the input source to DelayLine
Value After Reset: 0x3
Exists: Always
Memory
Bits Name Access Description
5.7.16 ATDL_CNFG
■ Name: SD/eMMC drift_cclk_rx DelayLine configuration settings
■ Description: SD/eMMC drift_cclk_rx DelayLine configuration settings
■ Size: 8 bits
■ Offset: DWC_MSHC_PTR_PHY_REGS + 0x21
■ Exists: (DWC_MSHC_SDEMMC_PHY_REGS== 1)
7:4
INPSEL_CNFG 3:2
1
0
BYPASS_EN
EXTDLY_EN
Rsvd
Memory
Bits Name Access Description
3:2 INPSEL_CNFG R/W Drives drift_cclk_rx DelayLine's config input. Value here
selects the input source to DelayLine
Value After Reset: 0x0
Exists: Always
5.7.17 DLL_CTRL
■ Name: SD/eMMC PHY DLL control setting
■ Description: SD/eMMC PHY's DLL Control settings register
■ Size: 8 bits
■ Offset: DWC_MSHC_PTR_PHY_REGS + 0x24
■ Exists: (DWC_MSHC_SDEMMC_PHY_REGS== 1) &&
(DWC_MSHC_EMMC_DATASTROBE_EN==1)
7:3
SLV_SWDC_UPDATE 2
1
0
OFFST_EN
RSVD_3_7
DLL_EN
Memory
Bits Name Access Description
Memory
Bits Name Access Description
1 OFFST_EN R/W Enables offset mode of PHY when DLL is enabled. when
DLL is disabled this allows direct control of delay generated
by DLL's Slave
Values:
■ 0x1 (OFFSTEN): Offset value is valid
■ 0x0 (OFFSTDIS): offset value is invalid
Value After Reset: 0x0
Exists: Always
5.7.18 DLL_CNFG1
■ Name: DLL Config register 1
■ Description: SD/eMMC PHY DLL configuration register 1
■ Size: 8 bits
■ Offset: DWC_MSHC_PTR_PHY_REGS + 0x25
■ Exists: (DWC_MSHC_SDEMMC_PHY_REGS== 1) &&
(DWC_MSHC_EMMC_DATASTROBE_EN==1)
7:6
5:4
WAITCYCLE 2:0
3
SLVDLY
Rsvd
Rsvd
Memory
Bits Name Access Description
5:4 SLVDLY R/W Sets the value of DLL slave's update delay input
islv_update_dly
Value After Reset: 0x0
Exists: Always
2:0 WAITCYCLE R/W Sets the value of DLL's wait cycle input
Value After Reset: 0x0
Exists: Always
5.7.19 DLL_CNFG2
■ Name: DLL Config register 2
■ Description: SD/eMMC PHY DLL configuration register 2
■ Size: 8 bits
■ Offset: DWC_MSHC_PTR_PHY_REGS + 0x26
■ Exists: (DWC_MSHC_SDEMMC_PHY_REGS== 1) &&
(DWC_MSHC_EMMC_DATASTROBE_EN==1)
JUMPSTEP 6:0
7
Rsvd
Memory
Bits Name Access Description
6:0 JUMPSTEP R/W Sets the value of DLL's jump step input
Value After Reset: 0x0
Exists: Always
5.7.20 DLLDL_CNFG
■ Name: DLL Config register 2
■ Description: SD/eMMC PHY DLL MST & Slave DL configuration settings
■ Size: 8 bits
■ Offset: DWC_MSHC_PTR_PHY_REGS + 0x28
■ Exists: (DWC_MSHC_SDEMMC_PHY_REGS== 1) &&
(DWC_MSHC_EMMC_DATASTROBE_EN==1)
6:5
2:1
7
4
3
MST_EXTDLYEN 0
SLV_EXTDLYEN
MST_BYPASS
SLV_BYPASS
MST_INPSEL
SLV_INPSEL
Memory
Bits Name Access Description
Memory
Bits Name Access Description
5.7.21 DLL_OFFST
■ Name: DLL Offset setting register
■ Description: SD/eMMC PHY DLL Offset value settings
■ Size: 8 bits
■ Offset: DWC_MSHC_PTR_PHY_REGS + 0x29
■ Exists: (DWC_MSHC_SDEMMC_PHY_REGS== 1) &&
(DWC_MSHC_EMMC_DATASTROBE_EN==1)
OFFST 6:0
7
Rsvd
Memory
Bits Name Access Description
5.7.22 DLLMST_TSTDC
■ Name: DLL Master test code setting register
■ Description: SD/eMMC PHY DLL Master testing Delay code register
■ Size: 8 bits
■ Offset: DWC_MSHC_PTR_PHY_REGS + 0x2A
■ Exists: (DWC_MSHC_SDEMMC_PHY_REGS== 1) &&
(DWC_MSHC_EMMC_DATASTROBE_EN==1)
MSTTST_DC 6:0
7
Rsvd
Memory
Bits Name Access Description
6:0 MSTTST_DC R/W Sets the value of DLL's Master test code input when DLL is
disabled.
Value After Reset: 0x0
Exists: Always
5.7.23 DLLLBT_CNFG
■ Name: DLL LBT setting register
■ Description: SD/eMMC PHY DLL Low Bandwidth Timer configuration register
■ Size: 16 bits
■ Offset: DWC_MSHC_PTR_PHY_REGS + 0x2C
■ Exists: (DWC_MSHC_SDEMMC_PHY_REGS== 1) &&
(DWC_MSHC_EMMC_DATASTROBE_EN==1)
LBT_LOADVAL 15:0
Memory
Bits Name Access Description
15:0 LBT_LOADVAL R/W Sets the value of DLL's olbt_loadval input. Controls the lbt
timer's timeout value at which DLL runs a revalidation cycle.
Value After Reset: 0x0
Exists: Always
5.7.24 DLL_STATUS
■ Name: DLL Status register
■ Description: SD/eMMC PHY DLL Status register
■ Size: 8 bits
■ Offset: DWC_MSHC_PTR_PHY_REGS + 0x2E
■ Exists: (DWC_MSHC_SDEMMC_PHY_REGS== 1) &&
(DWC_MSHC_EMMC_DATASTROBE_EN==1)
7:2
ERROR_STS 1
0
LOCK_STS
Rsvd
Memory
Bits Name Access Description
Values:
■ 0x1 (DLL_ERROR): DLL is locked and ready
■ 0x0 (DLL_LOCK_OKAY): DLL has not locked
Value After Reset: 0x0
Exists: Always
Memory
Bits Name Access Description
5.7.25 DLLDBG_MLKDC
■ Name: DLL Master lock code debug register
■ Description: SD/eMMC PHY DLL's Master lock code status
■ Size: 8 bits
■ Offset: DWC_MSHC_PTR_PHY_REGS + 0x30
■ Exists: (DWC_MSHC_SDEMMC_PHY_REGS== 1) &&
(DWC_MSHC_EMMC_DATASTROBE_EN==1)
MSTLKDC 6:0
7
Rsvd
Memory
Bits Name Access Description
6:0 MSTLKDC R Captures the value Delay Code to which DLL's Master has
locked
Value After Reset: 0x0
Exists: Always
5.7.26 DLLDBG_SLKDC
■ Name: DLL Master Slave code debug register
■ Description: SD/eMMC PHY DLL's Slave lock code status
■ Size: 8 bits
■ Offset: DWC_MSHC_PTR_PHY_REGS + 0x32
■ Exists: (DWC_MSHC_SDEMMC_PHY_REGS== 1) &&
(DWC_MSHC_EMMC_DATASTROBE_EN==1)
SLVLKDC 6:0
7
Rsvd
Memory
Bits Name Access Description
6:0 SLVLKDC R Captures the value Delay Code to which DLL's Slave has
locked
Value After Reset: 0x0
Exists: Always
5.8.1 MSHC_VER_ID_R
■ Name: MSHC version
■ Description: This register reflects the current release number of DWC_mshc/DWC_mshc_lite.
■ Size: 32 bits
■ Offset: P_VENDOR_SPECIFIC_AREA[11:0]
■ Exists: Always
MSHC_VER_ID 31:0
Memory
Bits Name Access Description
5.8.2 MSHC_VER_TYPE_R
■ Name: MSHC version type
■ Description: This register reflects the current release type of DWC_mshc/DWC_mshc_lite.
■ Size: 32 bits
■ Offset: P_VENDOR_SPECIFIC_AREA[11:0] + 0x4
■ Exists: Always
MSHC_VER_TYPE 31:0
Memory
Bits Name Access Description
5.8.3 MSHC_CTRL_R
■ Name: MSHC Control register
■ Description: This register is used to control the operation of MSHC Host Controller.
■ Size: 8 bits
■ Offset: P_VENDOR_SPECIFIC_AREA[11:0] + 0x8
■ Exists: (DWC_MSHC_CARD_INTERFACE_TYPE!= 2) ||
(DWC_MSHC_INTERNAL_CLK_GATE==1) || (DWC_MSHC_MBIU_CLK_GATE==1) ||
(DWC_MSHC_DMA_CLK_GATE==1) || (DWC_MSHC_CQE_CLK_GATE==1) ||
(DWC_MSHC_TS_CLK_GATE==1) || (DWC_MSHC_ASYNC_CLK_GATE==1)
3:2
7
6
SLV_ERR_RESP_NONEXIS_REG 5
4
1
0
NEGEDGE_DATAOUT_EN
CMD_CONFLICT_CHECK
NEDGE_SMPL_EN
PEDGE_DRV_EN
SW_CG_DIS
RSVD1
Memory
Bits Name Access Description
Memory
Bits Name Access Description
5 SLV_ERR_RESP_NONEXIS_RE R When 0 this bit gives slave error response for non existent
G register access. Currently this is a read-ony bit with default
value 0.
Value After Reset: 0x0
Exists: (DWC_MSHC_SLV_RESPONSE_TYPE==1)
Memory
Bits Name Access Description
5.8.4 MBIU_CTRL_R
■ Name: MBIU Control register
■ Description: This register is used to select the valid burst types that the AHB Master bus interface can
generate. When more than one bit is set the master selects the burst it prefers among those that are
enabled in this register.
■ Size: 8 bits
■ Offset: P_VENDOR_SPECIFIC_AREA[11:0] + 0x10
■ Exists: (DWC_MSHC_MST_IF_PRESENT == 1)
7:4
BURST_INCR16_EN 3
2
1
0
UNDEFL_INCR_EN
BURST_INCR8_EN
BURST_INCR4_EN
RSVD
Memory
Bits Name Access Description
Memory
Bits Name Access Description
5.8.5 EMMC_CTRL_R
■ Name: eMMC Control register
■ Description: This register is used to control the eMMC operation.
■ Size: 16 bits
■ Offset: P_VENDOR_SPECIFIC_AREA[11:0] + 0x2c
■ Exists: (DWC_MSHC_SD_EMMC_SUPPORT== 1)
15:11
7:4
CQE_PREFETCH_DISABLE 10
9
8
3
2
DISABLE_DATA_CRC_CHK 1
0
ENH_STROBE_ENABLE
EMMC_RST_N_OE
CQE_ALGO_SEL
CARD_IS_EMMC
EMMC_RST_N
RSVD
Rsvd
Memory
Bits Name Access Description
Memory
Bits Name Access Description
3 EMMC_RST_N_OE R/W Output Enable control for EMMC Device Reset signal PAD
control.
This field drived sd_rst_n_oe output of DWC_mshc
Values:
■ 0x1 (ENABLE): sd_rst_n_oe is 1
■ 0x0 (DISABLE): sd_rst_n_oe is 0
Value After Reset: 0x1
Exists: (DWC_MSHC_EMMC_SUPPORT == 1)
Memory
Bits Name Access Description
5.8.6 BOOT_CTRL_R
■ Name: eMMC Boot Control register
■ Description: This register is used to control the eMMC Boot operation.
■ Size: 16 bits
■ Offset: P_VENDOR_SPECIFIC_AREA[11:0] + 0x2e
■ Exists: (DWC_MSHC_EMMC_BOOT_EN == 1)
15:12
11:9
6:1
BOOT_ACK_ENABLE 8
7
0
BOOT_TOUT_CNT
VALIDATE_BOOT
MAN_BOOT_EN
RSVD_11_9
RSVD_6_1
Memory
Bits Name Access Description
Memory
Bits Name Access Description
6:1 RSVD_6_1 R These bits (RSVD _6_1) of the BOOT_CTRL_R register are
reserved. They always return 0.
Value After Reset: 0x0
Exists: Always
5.8.7 GP_IN_R
■ Name: General Purpose Input register
■ Description: This register is used as a general purpose input register. This register stores all the
inputs sampled from input port gp_in.
■ Size: 32 bits
■ Offset: P_VENDOR_SPECIFIC_AREA[11:0] + 0x30
■ Exists: (DWC_MSHC_GPIO_ENABLE == 1)
31:y
GP_IN x:0
RSVD
Memory
Bits Name Access Description
31:y RSVD R These bits of the GP_IN_R register are reserved. They
always return 0.
Value After Reset: 0x0
Exists: Always
Volatile: true
Range Variable[y]: DWC_MSHC_NUM_GP_IN
5.8.8 GP_OUT_R
■ Name: General Purpose Output register
■ Description: This register is used as a general purpose output register. The contents of this register
are reflected on the output port gp_out.
■ Size: 32 bits
■ Offset: P_VENDOR_SPECIFIC_AREA[11:0] + 0x34
■ Exists: (DWC_MSHC_GPIO_ENABLE == 1)
31:y
GP_OUT x:0
RSVD
Memory
Bits Name Access Description
31:y RSVD R These bits of the GP_OUT_R register are reserved. They
always return 0.
Value After Reset: 0x0
Exists: Always
Range Variable[y]: DWC_MSHC_NUM_GP_OUT
x:0 GP_OUT R/W The value of this register is reflected on gp_out ports.
Value After Reset: 0x0
Exists: Always
Range Variable[x]: DWC_MSHC_NUM_GP_OUT - 1
5.8.9 AT_CTRL_R
■ Name: Tuning and Auto-tuning control register
■ Description: This register controls some aspects of tuning and auto-tuning features. Do not program
this register when HOST_CTRL2_R.SAMPLE_CLK_SEL is '1'
■ Size: 32 bits
■ Offset: P_VENDOR_SPECIFIC_AREA[11:0] + 0x40
■ Exists: (DWC_MSHC_CARD_INTERFACE_TYPE!= 2)
23:21
20:19
18:17
15:12
11:8
x:24
7:5
TUNE_CLK_STOP_EN 16
4
3
2
1
0
POST_CHANGE_DLY
PRE_CHANGE_DLY
RPT_TUNE_ERR
WIN_EDGE_SEL
SWIN_TH_VAL
SW_TUNE_EN
SWIN_TH_EN
CI_SEL
RSDV3
RSDV2
AT_EN
Rsvd
Memory
Bits Name Access Description
20:19 POST_CHANGE_DLY R/W Time taken for phase switching and stable clock output.
Specifies the maximum time (in terms of cclk cycles) that the
delay line can take to switch its output phase after a change
in tuning_cclk_sel or autotuning_cclk_sel.
Values:
■ 0x0 (LATENCY_LT_1): Less than 1-cycle latency
■ 0x1 (LATENCY_LT_2): Less than 2-cycle latency
■ 0x2 (LATENCY_LT_3): Less than 3-cycle latency
■ 0x3 (LATENCY_LT_4): Less than 4-cycle latency
Value After Reset: 0x0
Exists: (DWC_MSHC_CARD_INTERFACE_TYPE!= 2)
18:17 PRE_CHANGE_DLY R/W Maximum Latency specification between cclk_tx and cclk_rx.
Values:
■ 0x0 (LATENCY_LT_1): Less than 1-cycle latency
■ 0x1 (LATENCY_LT_2): Less than 2-cycle latency
■ 0x2 (LATENCY_LT_3): Less than 3-cycle latency
■ 0x3 (LATENCY_LT_4): Less than 4-cycle latency
Value After Reset: 0x0
Exists: (DWC_MSHC_CARD_INTERFACE_TYPE!= 2)
Memory
Bits Name Access Description
16 TUNE_CLK_STOP_EN R/W Clock stopping control for Tuning and auto-tuning circuit.
When enabled, clock gate control output of DWC_mshc
(clk2card_on) is pulled low before changing phase select
codes on tuning_cclk_sel and autotuning_cclk_sel. This
effectively stops the Device/Card clock, cclk_rx and also
drift_cclk_rx. Changing phase code when clocks are stopped
ensures glitch free phase switching. Set this bit to 0 if the
PHY or delayline can guarantee glitch free switching.
Values:
■ 0x1 (ENABLE_CLK_STOPPING): Clocks stopped during
phase code change
■ 0x0 (DISABLE_CLK_STOPPING): Clocks not stopped.
PHY ensures glitch free phase switching.
Value After Reset: 0x0
Exists: (DWC_MSHC_CARD_INTERFACE_TYPE!= 2)
11:8 WIN_EDGE_SEL R/W This field sets the phase for Left and Right edges for drift
monitoring. [Left edge offset + Right edge offset] must not be
less than total taps of delayLine.
■ 0x0: User selection disabled. Tuning calculated edges are
used.
■ 0x1: Right edge Phase is center + 2 stages, Left edge
Phase is center - 2 stages.
■ 0x2: Right edge Phase is center + 3 stages, Left edge
Phase is center - 3 stages.
■ ...
■ 0xF: Right edge Phase is center + 16 stages, Left edge
Phase is center - 16 stages.
Value After Reset: 0x0
Exists: (DWC_MSHC_RETUNE_MODE== 1)
Memory
Bits Name Access Description
3 RPT_TUNE_ERR R/W Framing errors are not generated when executing tuning.
This debug bit allows users to report these errors.
Values:
■ 0x1 (DEBUG_ERRORS): Debug mode for reporting
framing errors
■ 0x0 (ERRORS_DISABLED): Default mode where as per
SD-HCI no errors are reported.
Value After Reset: 0x0
Exists: Always
1 CI_SEL R/W Selects the interval when the corrected center phase select
code can be driven on tuning_cclk_sel output.
Values:
■ 0x0 (WHEN_IN_BLK_GAP): Driven in block gap interval
■ 0x1 (WHEN_IN_IDLE): Driven at the end of the transfer
Value After Reset: 0x0
Exists: (DWC_MSHC_RETUNE_MODE== 1)
Memory
Bits Name Access Description
0 AT_EN R/W Setting this bit enables Auto tuning engine. This bit is
enabled by default when core is configured with mode3
retuning support. Clear this bit to 0 when core is configured
to have Mode3 re-tuning but SW wishes to disable mode3 re-
tuning.
This field should be programmed only when
CLK_CTRL_R.SD_CLK_EN is 0.
Values:
■ 0x1 (AT_ENABLE): AutoTuning is enabled
■ 0x0 (AT_DISABLE): AutoTuning is disabled
Value After Reset: DWC_MSHC_RETUNE_MODE
Exists: (DWC_MSHC_RETUNE_MODE== 1)
5.8.10 AT_STAT_R
■ Name: Tuning and Auto-tuning status register
■ Description: Register to read the Center, Left and Right codes used by tuning and auto-tuning
engines. Center code field is also used for software managed tuning.
■ Size: 32 bits
■ Offset: P_VENDOR_SPECIFIC_AREA[11:0] + 0x44
■ Exists: (DWC_MSHC_CARD_INTERFACE_TYPE!= 2)
31:24
L_EDGE_PH_CODE 23:16
R_EDGE_PH_CODE 15:8
CENTER_PH_CODE 7:0
RSDV1
Memory
Bits Name Access Description
31:24 RSDV1 R These bits of the AT_STAT_R register are reserved. They
always return 0.
Value After Reset: 0x0
Exists: Always
23:16 L_EDGE_PH_CODE R Left Edge Phase code. Reading this field returns the phase
code value used by Auto-tuning engine to sample data on
Left edge of sampling window.
Value After Reset: 0x0
Exists: Always
15:8 R_EDGE_PH_CODE R Right Edge Phase code. Reading this field returns the phase
code value used by Auto-tuning engine to sample data on
Right edge of sampling window.
Value After Reset: 0x0
Exists: Always
Memory
Bits Name Access Description
7:0 CENTER_PH_CODE R/W Centered Phase code. Reading this field returns the current
value on tuning_cclk_sel output. Setting
AT_CTRL_R.SW_TUNE_EN enables software to write to
this field and its contents are reflected on tuning_cclk_sel.
Value After Reset: DWC_MSHC_DEF_DL_CODE
Exists: Always
Testable: readOnly
A
Protocol Overview
This appendix provides an overview of protocols that are supported in the SD and UHS-II mode of
operations in DWC_mshc. Additionally, this appendix provides information about important concepts of
the standard applicable to DWC_mshc. For detailed information about the protocols, refer to the applicable
standard documents. For a list of standards and specifications supported by DWC_mshc, see “Standards
Compliance” on page 25.
This appendix contains the following sections:
■ “Signals Between Host and Device” on page 564
■ “Bus Topology” on page 565
■ “Bus Protocol” on page 567
■ “Range Definition” on page 574
■ “Transaction Layer” on page 574
■ “Control and Data Transaction Sequence” on page 578
■ “UHS-II Interface Selection Process” on page 579
■ “Application Layer Data Flow” on page 580
■ “SDIO Read Wait” on page 592
■ “SDIO Card Interrupt” on page 592
Table A-1 Bus Type and Signals Between a Host and a Device
The number of data lines can be dynamically configured in the SD bus. Power up by default is
Note only through DAT0 lines, but after power up, the host can change the bus width (number of
active lines) based on system performance requirements.
The term “Master” is interchangeably used with the term “Host”. Similarly, the term “Slave” is
Note used interchangeably with “Device”. Both these terms are consistent with the relevant
standards.
Figure A-1, Figure A-2, and Figure A-3 how the bus topologies in SD and UHS-II modes.
CLK
VDD
VSS SD/eMMC
Host
Card
DO-D3, CMD(1)
Host
SD Interface
UHS-II
Interface
Ring
Host
SD
Interface
DAT data block 1 CRC data block 2 CRC data block 3 CRC
❑ Half duplex mode (2L-HD) with data rates from 78 MBps to 312 MBps
❑ Provision for additional lanes for future expansion
■ Layered architecture
This section discusses the following topics:
■ “UHS-II Architecture” on page 568
■ “UHS-II Packets” on page 569
■ “UHS-II CCMD Packet Format” on page 570
■ “UHS-II DCMD Packet Format” on page 571
■ “UHS-II RES Packet Format” on page 572
■ “UHS-II DATA Packet Format” on page 572
None Mechanical Describes mechanical specification, such as card form factor, connector
pins.
PHY Physical Denotes electrical specifications, such as voltage levels (signaling), symbol
encoding/decoding.
LINK Link Responsible for link management functions, such as PHY initialization, data
integrity, power management, flow control
TRANS Transaction Protocol management that includes packet generation and analysis,
command-response handshake.
Transaction
Application-Specific SD-TRAN
Layer
CM-TRAN
Link
Power
Management
Physical
PHY
Mechanical
Acronym for
Packet Type Packet Type Description Initiator
Acronym for
Packet Type Packet Type Description Initiator
DATA Data Packet Data payload between Host and device Host for Write,
Device for Read
Figure A-6 depicts the packet formats for each type of packet listed in Figure A-4.
Argument
Payload
CCMD Header (When Write CCMD)
R/W PLEN I/O ADDR
Argument
RES Payload
Header (When Read CCMD)
NACK CMD_ECHO_BACK
BIT
7 6 5 4 3 2 1 0
BYTE
0 Header
(NP =1, Pkt type = CCMD)
1
2 R/W RSVD PLEN I/O ADDR (MSB)
[4
Payload
...
]
BIT
7 6 5 4 3 2 1 0
BYTE
0 Header
(NP =1, Pkt type = DCMD)
1
2 R/W TMODE RSVD
Argumen
t
3 RSVD
(MSB)
[4..7] DADR
(LSB) Extended
Argumen
(MSB) t
[TLEN]
[8..11]
(LSB)
BIT
7 6 5 4 3 2 1 0
BYTE
0 Header
(NP =1, Pkt type = RES)
1
NACK=0
2 Argumen
CMD_ECHO_BACK
t
3
(MSB)
Payload
[4..] Payload
(LSB)
BIT
7 6 5 4 3 2 1 0
BYTE
0 Header
(NP =1, Pkt Type = DATA)
1
[2 (MSB)
..
Block Length + 1 Payload Payload
or
TLEN + 1]
(LSB)
DO high-speed data Used for downstream (from Host to In 2L-high-speed mode, can be
lane Device). Normally, WRITE Data and used upstream as well (Device to
(390Mbps to Command are transferred from Host Host)
1.56Gbps) to device.
D1 high-speed data Used for upstream (from Device to In 2L-high-speed mode, can be
lane Host). Normally, READ Data and used downstream as well (Host to
(390Mbps to response are transferred from Device Device)
1.56Gbps) to Host.
RCLK Reference clock Stable reference clock from Host to Same as in FD mode.
lane Device.
(26MHz to 52MHz)
Device addressing is implemented using a session address, assigned during the initialization phase, by the
bus controller to the connected device. A device is identified by its CID number. This method requires the
device to have a unique CID number. To ensure uniqueness of CIDs, the CID register contains 24 bits (MID
and OID fields) that are defined by JEDEC/MMCA. Every device manufacturer is required to apply for an
unique MID (and optionally OID) number.
Initialization of UHS-II interface is always done in Range A and device PLL acquisition time is specified
with a maximum value of 2 ms.
Application-Specific
SD CMD/RES/DAT
SD-Tran
SD Card Register
Layer
SD State Machine
Protocol Bridge (SD <-->CM)
Transaction
Common Packets
(DCMD, CCMD, RES, DATA)
Host
Application Driver
LINK
PHY
UHS-II Pkts
Device
PHY
LINK
The SD-TRAN is used to bridge the CM-TRAN with legacy SD IPs or software. SD-TRAN analyses the
Host/device register and sets UHS-II I/O registers. When SD-TRAN is used, the CM-TRAN encapsulates
the legacy SD command/response/data and generate the UHS-II packet, on the transmit side and analyze
the received packet and notify SD-TRAN, on the receiving side.
Host
Application Driver
SD Host Register
CM-TRAN SD-Tran
LINK
PHY
Encapsulated
UHS-II Pkts
UHS-II Device
PHY
LINK
UHS-II CM-TRAN
I/O register CM-Tran
SD Card register
CM-TRAN SD-Tran
D
E
V
Host I
C
E
DAT
D1 RES RES RES RES
A D1
Time
VDD1
VDD2
RCLK
UHS-II
UHS-II Card
Host
D0 = STB.L
D1
EIDL to STB.L
Power Up;
Supply VDD1, VDD2
Timeout =
200us Wait for D1 = D1 = STB.L
STB.L
Application Bus
DMA Interface
Registers Buffers
The host driver can transfer data using either a programmed I/O method or using any of the defined DMA
methods. In the Programmed Input/Output (PIO) method of data transfer, data is transferred to the system
memory by the host driver. It is done either on the basis of block (SD/eMMC) or bursts (UHS-II). In a card
write, the controller provides Buffer Write ready interrupt when it has space for one block. Based on this
interrupt, the host driver must transfer one block of data from system memory to the DWC_mshc buffer
through the Buffer data port. After that block is sent to card by controller, the same mechanism is used in
the reverse direction in the case of card read using the Buffer read ready interrupt. PIO mode is much
slower and burdens the processor. It is recommended not to use the PIO mode for large transfers.
Following are different DMA methods described in SD standards:
■ Single operation DMA (SDMA)
■ Advanced DMA-2 (ADMA2)
■ Advanced DMA-3 (ADMA3)
The capabilities register defined by the standard provides the information of type of DMA support
provided by the particular controller.
DMA supports both single block and multi-block transfers. The control bits in the Block Gap Control
register is used to Stop and Restart a DMA operation. SDMA mode is used for short data transfer as it
generates interrupts at page boundaries. ADMA2 and ADMA3 are used for long data transfers and use
scatter-gather algorithms. ADMA2 supports single READ/WRITE SD operation at a time while ADMA3
supports multiple READ/WRITE SD operation at a time.
System Memory
Advanced DMA
Descriptor Table
Descriptor Pointer Address Length Attributes
System Address Register
Address 1 Length 1 Tran
Address 2 Length 2 Tran
Data Length(internal)
Address - Link
Data 3
(Used as a descriptor pointer) Data 2
Data 1
The descriptor table is created in the system memory by the Host driver. ADMA2 fetches one descriptor line
and executes it until the end of descriptor denoted by (End = 1 in attribute) is found.
Figure A-20 shows the ADMA2 descriptor format.
Data Length is extended from Version 4.10 Valid Indicates Validity of a Descriptor Line
(1) 16-bit Data Length Mode End End of Descriptor
(2) 26-bit Data Length Mode
Int Force to generate ADMA Interrupt
Descriptor Pair
Command Descriptor + ADMA2 Descriptor SD Memory Card
System Memory (Logical) Memory Allocation
Command
Data B
ADMA2 ADMA3 Engine
Used Area
Data A
Data B
Data C
Data is scattered
physically by paging. If some data is pre-recorded,
ADMA2 descriptor data will be written by dividing
gathers scattered data into smaller data (Data A, B
and data is logically and C). A write command is
Integrated Descriptor seen continous. issued every time when data
List of Pointers to Command address is leaped by using
Descriptors. Command Descriptor.
Figure A-20 shows that the first integrated descriptor pair is programmed to transfer Data A from the
system memory to the SD memory card. Similarly, the second pair is programmed to transfer Data B, and
the third pair is programmed to transfer Data C. After processing all descriptors pointed by the integrated
descriptors are completed, ADMA3 generates the Transfer Complete interrupt to indicate completion of
data transfer to the host driver.
Figure A-22 shows the ADMA3 command descriptor format, which can be of type SD or UHS-II and the
type is identified by the Attribute. If the attribute indicates a command descriptor for SD mode, 32-bit
register fields are written to the host controller registers from 000h to 00Fh. An SD command is issued when
00Fh is written. If the attribute indicates command descriptor for UHS-II mode, 32-bit register fields are
written to host controller registers from 080h to 09Fh. A UHS-II command packet is issued, when 09Fh is
written.
The host controller register contains a pointer to a descriptor line for the command descriptor and ADMA2
descriptor. This pointer is incremented after reading each descriptor line. When the last line in the
command descriptor is read, the pointer points to the top of the ADMA2 descriptor, which is placed after
the command descriptor.
Figure A-22 shows the ADMA3 integrated descriptor format. Each row in the integrated descriptor table.
The 64-bit address pointer is set to 95-32 in the 128-bit integrated descriptor. The pointer of 32-bit address is
set to bit 63-32 in the 64-bit Integrated Descriptor and the controller ignores “Int” of attribute in this
descriptor.
Descriptor Pairs
Command Descriptor 1
Integrated Descriptor
ADMA Descriptor n
For more information about these descriptor formats, see SD Specifications Part A2 SD Host Controller
Standard Specification Version 4.10, Sep 2013.
■ Transfer Descriptor – This points either to one continuous data buffer to/from which data is
transferred (TRAN Descriptor) or to a scatter/gather list of any length (LINK Descriptor).
Figure A-24 shows the structure of the TDL in the host memory and the slot numbers in the TDL. The slot
numbers in Figure A-24 store the following information:
0 – Stores a Data Transfer Task with a TRAN descriptor.
1 – Stores a Data Transfer Task with a LINK descriptor, pointing to a scatter/gather list.
31 – Stores a DCMD descriptor.
Table A-7 Task Descriptor Structure; Lower 64 bits (Data Transfer tasks)
Block Block
Address Count Task Parameters Field Attribute
xxxx_xxxxh xxxxh Reliable QBR Priority Data Tag Context Forced Act=101 Int End= Valid
Write Direction request progra 1 =1
mming
Int 2 Indicates the interrupt generation policy required for this task.
1 – Hardware generates an interrupt upon the task completion.
0 – Hardware counts task completion for interrupt coalescing.
Act 5:3 Must be set to b101 to indicate that this is a Task Descriptor.
Context ID 10:7 A context is an active session, configured for a specific read/write CMD44
pattern. A device may support one or more concurrent contexts,
defined by a Context ID. Each context ID (besides #0) has a
configuration field in EXT_CSD to control its behavior.
Tag 11 Indicates request to receive information (about specific data types) CMD44
Request from the host.
Queue 14 Indicates the control of the host on the ordering between tasks.
Barrier
(QBR)
Reliable 15 Indicates multiple block write with pre-defined block count and Reliable CMD44
Write Write parameters.
Data Unit 95:64 A 32-bit cryptographic parameter which is used by some algorithms for N/A
Number key generation (see section B.9 for details)
(DUN) NOTE: This field is valid only in controllers supporting cryptographic
operations (CQCAP.CS=1). If CQCAP.CS=0, this field is reserved.
Crypto 103:96 The index of CRYPTOCFG to be used with this transaction. The values N/A
Configurati allowed are between 0 and CRCAP.CFGC
on Index When TD.CE is 0, this field is reserved.
(CCI) NOTE: This field is valid only in controllers supporting cryptographic
operations (CQCAP.CS=1). If CQCAP.CS=0, this field is reserved.
Crypto 111 1= Enable cryptographic operations for this task. Payload is decrypted N/A
Enable in Read tasts(DD=1). Payload is encrypted in Write tasks (DD=0).
(CE) Host controller takes no action for all other tasks.
0=Disable cryptographic operations for this task.
NOTE: When 64b descriptors are used, the implied value of this field is
0.
NOTE: This field is valid only in controllers supporting cryptographic
operations (CQCAP.CS=1). If CQCAP.CS=0, this field is reserved.
Bit
Field Name Location Description
Bit
Field Name Location Description
Act 5:3 100: TRAN – Address field of descriptor points to a data buffer.
110: LINK – Address field of descriptor points to a another descriptor.
000: NOP – no operation.
Others: Reserved
Length 31:16 Length of data buffer in bytes. A value of 0000 means 64 KB.
Address (32- 63:32 Data buffer address in host memory, in 32-bit addressing mode.
bit) Address must be set on 32-bit boundary (Lower 2 bits set to 0)
Address (64- 95:32 Data buffer address in host memory, in 64-bit addressing mode.
bit) Address must be set on 64-bit boundary (Lower 3 bits set to 0)
Table A-13 Task Descriptor Structure: Lower 64 bits (for Direct-Command (DCMD) tasks)
Command
Argument Command Parameters Task Parameters Field Attribute
63:32 31 25 24 23 22 21 16 15 14 13 6 5 3 2 1 0
xxxx_xxxxh Reserved Response CMD CMD Rsvd QBR Reserved Act=101 Int End=1 Valid =1
(0000000) Type timing Index (0) (0000000)
Bit
Field Name Location Description
Bit
Field Name Location Description
Int 2 Indicates the interrupt generation policy required for this task.
1 – Hardware generates an interrupt upon the task completion.
0 – Hardware does not generate an interrupt upon the task completion.
Interrupt coalescing is not used with DCMD.
Queue Barrier 14 Indicates the control of the host on the ordering between tasks.
(QBR)
Reserved 15
CMD Index 21:16 The index of the command to be sent to the device.
CMD Timing 22 1 – Command may be sent to device during data activity or busy time.
0 – Command may not be sent to device during data activity or busy
time.
NOTE: Software is 0 if response type is b11 (R1b).
Response 24:23 This field indicates to the host controller the response expected to be
Type received from the device.
b00 – No Response Expected
b01 – Reserved
b10 – R1, R4, R5
b11 – R1b
NOTE: R2 and R3 are not supported in DCMD.
Reserved 31:25
An asynchronous interrupt is effective in SD 4-bit mode. The asynchronous interrupt generated from the
device while the card clock is stopped to save the power is delivered to the host system.
B
Synchronizer and Technology Specific Cells
This appendix describes the synchronizer methods (blocks of synchronizer functionality) that are used in
the DWC_mshc to cross clock boundaries.
This appendix contains the following sections:
■ “Synchronizers Used in DWC_mshc” on page 596
■ “Technology-Specific Cells in DWC_mshc DWC_mshc” on page 603
The DesignWare Building Blocks (DWBB) contain several synchronizer components with
Note
functionality similar to methods documented in this appendix. For more information about the
DWBB synchronizer components, go to:
http://www.synopsys.com/dw/buildingblock.php
Synchronizer module
file Sub module file Synchronizer Type and Number DWBB Equivalent
D Q width D Q
data_s data_d
Missampling Disabled
Missampling Enabled
test
D Q width
Missampling Disabled
test
Missampling width width width
data_s Delay Block D Q D Q data_d
(per-bit basis)
D Q width
Missampling Enabled
test
width
D Q width
Missampling Disabled
test
Missampling
width width width width
data_s Delay Block D Q D Q
D Q data_d
(per-bit basis)
width
width
D Q
Missampling Enabled
BIT# 0 D Q
Random
Number
Generator
BIT# ( width-1) D Q
BIT# 0 D Q D Q D Q
Random
Number 2
Generator
BIT# ( width-1) D Q D Q D Q
clk_s clk_d
double register
synchronizer
D Q Synchronizer 1 D Q event _d
event_s toggle signal
crosses domains
clk_s clk_d
double register
synchronizer
D Q
D Q
Synchronizer 1 event _d
event _s D Q toggle signal
crosses domains
clk_s clk_d
data_s data_d
Pointer
en
Synchronizer 1
Arithemtic
almost_full_d
Dual Mode
Counter Gray
Binary almost_empty_d
full_s
almost_empty_s Synchronizer 1
DWC_mshc_clk_mux_2x1
in0_clk
0
out_clk
in1_clk 1
clk_sel
in0_clk .
in1_clk
clk_sel
out_clk
DWC_mshc_ddr_mux_2x1
data_in0
0
data_out
data_in1 1
mux_sel
mux_sel
Controller_clk_gate
test_scan_mode
enable_scan
enable enable_r
DWC_mshc_clk_mux_2x1
0
clk_inv
R clk_gated
clk
1
test_posedge_clk_sel
resetn
clk .
enable
enable_r
clk_gated
Controller_bcm21
data_s data_d
clk_d
R R
rst_d_n
clk_d
data_s
data_d
ddr_mode_en Controller_ddr_mux_sel
toggle_ddr_gen
EN ddr_mux_sel
cclk_tx
toggle_ddr_neg_gen
EN
cclk_tx_neg_gen
R
cresetn
cclk_tx
cclk_tx_neg_gen
cresetn
ddr_mode_en
toggle_ddr_gen
toggle_ddr_neg_gen
ddr_mux_sel
C
Power Consumption and Area
This appendix discusses power and area requirements for SD, UHS-II, and eMMC modes in DWC_mshc,
and also area requirement for various configurations in DWC_mshc. It also highlight the DFT numbers for
DWC_mshc controller.
This appendix discusses the following topics:
■ “Clock Gating Types Used for Generating Power and Area Numbers for Non-AXI Configuration
(AHB Master and AHB slave port)” on page 611
■ “Technology Libraries Used to Generate Power and Area Numbers” on page 611
■ “Power and Area for an SD Configuration”
❑ “SD Configuration When AXI Data Width = 32 and AXI Address Width = 32” on page 611
❑ “SD Configuration When AXI Data Width = 64 and AXI Address Width = 32” on page 612
❑ “SD Configuration When AXI Data Width = 64 and AXI Address Width = 64” on page 613
■ “Power and Area for a UHS-II Configuration”
❑ “UHS-II Configuration When AXI Data Width = 32 and AXI Address Width = 32” on page 614
❑ “UHS-II Configuration When AXI Data Width = 64 and AXI Address Width = 32” on page 615
❑ “UHS-II Configuration When AXI Data Width = 64 and AXI Address Width = 64” on page 616
■ “Power and Area for an eMMC Configuration”
❑ “eMMC Configuration When AXI Data Width = 32 and AXI Address Width = 32” on page 617
❑ “eMMC Configuration When AXI Data Width = 64 and AXI Address Width = 32” on page 618
❑ “eMMC Configuration When AXI Data Width = 64 and AXI Address Width = 64” on page 619
■ “Maximum Configuration”
❑ “Area for SD+UH-II+eMMC+CQE Configurations for AXI Master Bus Interface Unit” on
page 620
❑ “Area for SD+UH-II+eMMC+CQE Configurations for AHB Master Bus Interface Unit” on
page 621
■ “Area in Slave-Only Mode” on page 621
■ “Area and Power With Context Sensitive Clock Gates” on page 622
■ “Area Savings Without ADMA3 Mode” on page 622
■ “Area Savings While Using Optimized Clocking Mode” on page 622
C.1 Clock Gating Types Used for Generating Power and Area Numbers for
Non-AXI Configuration (AHB Master and AHB slave port)
Following are the clock gating types used for generating power and area numbers for SD, UHS-II, and
eMMC configurations in DWC_mshc:
■ No clock gating (NCG) – Clock gates not inserted in the design.
■ Clock Gating (CG) – Clock gate inserted by coreConsultant. The option to insert this clock gate is
available under the "Low Power Configuration" menu in coreConsultant.
■ Design Compiler (DC) Clock Gating (CG) – Automatic clock gates inserted by the design compiler for
power optimization.
7 nm DesignWare Logic Library for Industry Standard 28 nm HPM High-K Metal Gate Standard
Vt Process.
C.2.1.1 SD Configuration When AXI Data Width = 32 and AXI Address Width = 32
Table C-2 provides information about the power consumption of the DWC_mshc for an SD default
configuration.
Table C-2 Configuration Settings for Default SD Configuration When AXI Data Width = 32 and AXI Address
Width = 32
Configuration Value
Table C-2 Configuration Settings for Default SD Configuration When AXI Data Width = 32 and AXI Address
Width = 32
Configuration Value
tmclk 1 MHz
Table C-3 provides information about the power and area numbers for DWC_mshc when AXI data and
address width are 32.
Table C-3 Power and Area for SD Configuration When AXI Data Width = 32 and AXI Address Width = 32
Power (in W)
C.2.1.2 SD Configuration When AXI Data Width = 64 and AXI Address Width = 32
Table C-4 provides information about the power consumption of the DWC_mshc for an SD default
configuration.
Configuration Value
Configuration Value
tmclk 1 MHz
Table C-5 provides information about the power and area numbers for DWC_mshc when AXI data and
address width are 32.
Table C-5 Power and Area for SD Configuration When AXI Data Width = 64 and AXI Address Width = 32
Power (in W)
C.2.1.3 SD Configuration When AXI Data Width = 64 and AXI Address Width = 64
Table C-6 provides information about the power consumption of the DWC_mshc for an SD default
configuration.
Table C-6 Configuration Settings for Default UHS-II Configuration When AXI Data Width=64 and AXI Address
Width=32
Configuration Value
Table C-6 Configuration Settings for Default UHS-II Configuration When AXI Data Width=64 and AXI Address
Width=32
Configuration Value
tmclk 1 MHz
Table C-7 provide information about power and area for an DWC_mshc when AXI data address width are
64.
Table C-7 Configuration Settings for SD Configuration When AXI Data Width = 64 and AXI Address Width = 64
Power (in W)
C.2.2.1 UHS-II Configuration When AXI Data Width = 32 and AXI Address Width = 32
Table C-8 provides information about the power consumption of the DWC_mshc for a UHS-II default
configuration.
Table C-8 Configuration Settings for Default UHS-II Configuration When AXI Data Width = 32 and AXI
Address Width = 32
Configuration Value
Table C-8 Configuration Settings for Default UHS-II Configuration When AXI Data Width = 32 and AXI
Address Width = 32
Configuration Value
tmclk 1 MHz
Table C-9 provides information about the power and area numbers for DWC_mshc when AXI data and
address width are 32.
Table C-9 Power and Area for UHS-II Configuration When AXI Data Width = 32 and AXI Address Width = 32
Area (in
Power (in W) gates)
Total
Technology Gating Type Leakage Switching Internal Average
C.2.2.2 UHS-II Configuration When AXI Data Width = 64 and AXI Address Width = 32
Table C-10 provides information about the power consumption of the DWC_mshc for an UHS-II default
configuration.
Configuration Value
Configuration Value
tmclk 1 MHz
Table C-11 provides information about the power and area numbers for DWC_mshc when AXI data width
is 64 and address width is 32.
Table C-11 Power and Area for UHS-II Configuration When AXI Data Width = 64 and AXI Address Width = 32
Area (in
Power (in W) gates)
Total
Technology Gating Type Leakage Switching Internal Average
C.2.2.3 UHS-II Configuration When AXI Data Width = 64 and AXI Address Width = 64
Table C-12 provides information about the power consumption of the DWC_mshc for an UHS-II default
configuration.
Table C-12 Configuration Settings for Default UHS-II Configuration When AXI Data Width=64 and AXI Address
Width=64
Configuration Value
Table C-12 Configuration Settings for Default UHS-II Configuration When AXI Data Width=64 and AXI Address
Width=64
Configuration Value
tmclk 1 MHz
Table C-13provide information about power and area for an DWC_mshc when AXI data and address
widths are 64.
Table C-13 Configuration Settings for UHS-II Configuration When AXI Data Width = 64 and AXI Address Width =
64
Power (in W)
C.2.3.1 eMMC Configuration When AXI Data Width = 32 and AXI Address Width = 32
Table C-14 provides information about the power consumption of the DWC_mshc for an eMMC default
configuration.
Table C-14 Configuration Settings for Default eMMC Configuration When AXI Data Width = 32 and AXI
Address Width = 32
Configuration Value
Table C-14 Configuration Settings for Default eMMC Configuration When AXI Data Width = 32 and AXI
Address Width = 32
Configuration Value
tmclk 1 MHz
Table C-15 provides information about the power and area numbers for DWC_mshc when AXI data and
address widths are 32.
Table C-15 Power and Area for eMMC Configuration When AXI Data Width = 32 and AXI Address Width = 32
Area (in
Power (in W) gates)
Total
Technology Gating Type Leakage Switching Internal Average
C.2.3.2 eMMC Configuration When AXI Data Width = 64 and AXI Address Width = 32
Table C-16 provides information about the power consumption of the DWC_mshc for an eMMC default
configuration.
Configuration Value
Configuration Value
tmclk 1 MHz
Table C-17 provides information about the power and area numbers for DWC_mshc when AXI data width
is 64 and address width is 32.
Table C-17 Power and Area for eMMC Configuration When AXI Data Width = 64 and AXI Address Width = 32
Area (in
Power (in W) gates)
Total
Technology Gating Type Leakage Switching Internal Average
C.2.3.3 eMMC Configuration When AXI Data Width = 64 and AXI Address Width = 64
Table C-18 provides information about the power consumption of the DWC_mshc for an eMMC default
configuration.
Table C-18 Configuration Settings for Default eMMC Configuration When AXI Data Width=64 and AXI Address
Width=64
Configuration Value
Table C-18 Configuration Settings for Default eMMC Configuration When AXI Data Width=64 and AXI Address
Width=64
Configuration Value
tmclk 1 MHz
Table C-19 provide information about power and area for an DWC_mshc when AXI data and address bus
widths are 64.
Table C-19 Configuration Settings for eMMC Configuration When AXI Data Width = 64 and AXI Address Width =
64
Power (in W)
Total
Technology Gating Type Leakage Switching Internal Average Area (in gates)
C.2.4.1 Area for SD+UH-II+eMMC+CQE Configurations for AXI Master Bus Interface Unit
Table C-20 lists the area for SD+UHS-II+eMMC+CQE default configuration for 28nm and 45nm libraries for
AXI Master Bus Interface Unit (MBIU) configuration.
Table C-20 Area for Default SD+UHS-II+eMMC+CQE Configuration for AXI MBIU
Gates
Table C-20 Area for Default SD+UHS-II+eMMC+CQE Configuration for AXI MBIU
Gates
C.2.4.2 Area for SD+UH-II+eMMC+CQE Configurations for AHB Master Bus Interface Unit
Table C-21 lists the area for SD+UHS-II+eMMC+CQE default configuration for 28nm and 45nm libraries for
AHB MBIU configuration.
Table C-21 Area for Default SD+UHS-II+eMMC+CQE Configuration for AHB MBIU
Gates
Master if present No
pclk 150MHz
bclk 300MHz
cclk 200MHz
tmclk 1 MHz
Table C-23 provides information about the Area for SD, eMMC and SD+eMMC+UHS-II configurations.
SD 48462
eMMC 43383
SD+eMMC+UHS-II 47402
Table C-24 Power Saving Achieved in SD+eMMC Mode (with CQE) using the
test_cust_card_wr_rd_emmc_cqe_mode Testcase
TS CG 295 0.57
Table C-25 Area for Default Configuration for 28 nm Without ADMA3 Mode
CQE enable 1
tmclk 1 MHz
TetraMax Values
D
Clock and Data Crossing (CDC)
This appendix discusses information about clocks and metastability simulation in DWC_mshc.
Destination Clock
m2s_l_pktstat
Signal Name
Source
Clock Type of Signal
The name of synchronized signal is name of source clock domain signal prefixed with letter ‘s’. The
synchronized version of “m2s_l_pktstat “signal is called as “sm2s_l_pktstat”. Table D-1 shows alphabets
used for different DWC_mshc clock names.
hclk s
aclk/m_hclk m
bclk b
cclk_tx tx
cclk_rx rx
pclk p
tmclk tm
cqetmclk ctm
Unknown clock x
Level signal l
Toggle signal t
Pulse signal p
The alphabets used to depict clocks are the same as in Table D-1. The alphabets used to depict a
synchronous module are listed in Table D-3.
Note The naming convention in Table D-3 is applicable to only those BCM instances that
are not instantiated under any other BCM module.
These parameters are available under "Low Power Configuration" settings in coreConsultant as shown in
Figure D-3.
E
Clock Domain for Individual Registers
CQCAP Base clock if master interface is not present; Master clock if master
interface is present
F
Frequently Asked Questions
Type0 00 0
Type1 01 0
Type2 10 0
Type3 11 0
Type4 xx 1
You can also implement the entire control bit using the GP_OUT_R register.
Q: In the HOST_CTRL2_R register, there is a control bit “SIGNALING_EN” that
controls the I/O voltage regulator to switch from 3.3V to 1.8V. But, in eMMC, I/O
voltage can be either 3V, 1.8V, or 1.2V. How do we control the I/O voltage switching
for eMMC?
A. Currently DWC_mshc outputs 1-bit signal (uhs1_swvolt_en) reflecting the
register content of the HOST_CTRL2_R. SIGNALING_EN field to allow the
I/O voltage switching. This 1-bit output in conjunction with 1-bit general
purpose output can be used to select any of the I/O voltage supported by
eMMC. Table F-2 maps I/O voltage types using the uhs1_swvolt_en strength
and gp_out output of DWC_mshc.
Table F-2 Mapping of eMMC I/O Voltage Types
3.0V 0 0
1.8V 1 0
- 0 1
1.2V 1 1
Q: What are preset registers? Can these registers be used for eMMC?
A. DWC_mshc outputs three signals namely crclk_gen_sel, crclk_freq_sel, and
uhs1_drv_sth. Based on the required speed mode, an application must
configure the CLK_CTRL_R register to enable the external clock generator to
generate the required frequency. Additionally, the driver strength is
appropriately programmed by the application. These values can be
automatically loaded from the preset registers considering that the preset
registers are appropriately configured in coreConsultant, and if the
HOST_CTRL2_R.PRESET_VAL_ENABLE field is set to 1, based on the
selected speed modes. With this configuration, only four types of driver
strengths are supported. Type4 can be explicitly selected by programming the
GP_OUT_R (General Purpose) register. Table F-3 shows HOST_CTRL2_R
values for different speed modes.
Preset value for initialization (0x60h) is not selected by bus speed mode.
Before starting the initialization sequence host driver needs to set a clock
preset value to SDCLk/RCLK Frequency select in clock control register.
Preset value Enable can be set after initialization is completed.
Host Control 1
Register
(HOST_CTRL1_R)
Host Control 2 Register (HOST_CTRL2_R) Fields Fields
Host Control 1
Register
(HOST_CTRL1_R)
Host Control 2 Register (HOST_CTRL2_R) Fields Fields
.
Q: It is mentioned that SDCLK is phase shifted to meet the setup and hold time inside the
device. Is there any signal provided by DWC_mshc to control the phase shift?
A. DWC_mshc has configurable GP_OUT_R register. You can implement this
register to control the phase shift of the card clock.
Note: GPIO option "GP_OUT_R" has to be updated in Linux driver to control
delay lines for different speed modes
Q: We intend to do the complete Spyglass CDC analysis for eMMC mode with datastrobe
enable. What are the additional constraints to be considered?
A. As datastrobe (sd_dat_stb) and cclk_rx are used to sample the data from the
device, you must setup two scenarios of Spyglass CDC goal and perform CDC
analysis for both scenarios. This can be achieved by performing the
set_case_analysis on clk_sel that selects either sd_dat_stb or cclk_rx m,
mentioned as follows:
Scenario 1:
set_case_analysis -name
"DWC_mshc.U_DWC_mshc_sd4.U_DWC_mshc_sd4_sync.U_DWC_mshc_sd4_sample.U_scan_
clk_mux_2x1_cclk_rx_ds_enh_mux_gen.clk_sel" -value 0
set_case_analysis -name
"DWC_mshc.U_DWC_mshc_sd4.U_DWC_mshc_sd4_sync.U_DWC_mshc_sd4_sample.U_scan_
clk_mux_2x1_cclk_rx_ds_mux_gen.clk_sel" -value 0
Scenario 2:
set_case_analysis -name
"DWC_mshc.U_DWC_mshc_sd4.U_DWC_mshc_sd4_sync.U_DWC_mshc_sd4_sample.U_scan_
clk_mux_2x1_cclk_rx_ds_enh_mux_gen.clk_sel" -value 1
set_case_analysis -name
"DWC_mshc.U_DWC_mshc_sd4.U_DWC_mshc_sd4_sync.U_DWC_mshc_sd4_sample.U_scan_
clk_mux_2x1_cclk_rx_ds_mux_gen.clk_sel" -value 1
Q: Why set_input_delay for sd_cmd_in is defined with respect to both cclk_rx and
cclk_tx in SDC? Is there any timing consideration?
A. cclk_rx is used to sample the data and the command line driven by the device.
Additionally, DWC_mshc samples sd_cmd_in in the subsequent rising edge
of cclk_tx when a command is driven out on sd_cmd_out to monitor
command conflict. As the data driven on sd_cmd_out is compared with
sd_cmd_in in the subsequent clock edge of cclk_in_tx, there is a one cycle path
timing between sd_cmd_out to sd_cmd_in.
Q: Can sd_cmd_out_en be defined as multicycle path of 2?
A. sd_cmd_out_en is asserted one cycle prior to start bit and de-asserted at the
same time with the end bit. Since the state of end-bit and default state of CMD
line is ‘1’, sd_cmd_out_en can be defined as multicycle path.
Q: Can sd_dat_out_en be defined as multicycle path of 2?
A. sd_dat_out_en is also asserted one cycle prior to start bit and de-asserted
together with endbit. It can also be defined as multi cycle path if SDIO read
wait feature for < 50MHz is not supported.
G
Standard Terms and Definitions
Table G-1 lists the standard terms and definitions used in the DWC_mshc Databook and User Guide.
Term Definition
Application Upper layer of software that uses the functionality provided by the transaction layer.
Boot Code Loading Transmitting boot code from the boot device to the Host after PHY initialization.
CMD Command sent from host to device indicated by an index n. For example, CMD16 indicates for
Set Block length.
Device Initialization Process to make the device to enable all its functions.
DMA Direct Memory access. A method of directly access data from or to directly put into system
memory with minimal involvement of the processor.
Table G-1 Standard Terms and Definitions Used in DWC_mshc Documents (Continued)
Term Definition
Full Duplex mode Communication mode where the direction of two lanes is opposite to each other.
Half duplex mode Communication mode where the direction of two lanes is the same.
Link (layer) Layer within the host/device that performs link management functions such as PHY
initialization, data integrity, power management, and flow control.
Page Size Unit of system memory management. Normally page size is 4 KB.
PHY (layer) Layer within the host/device that deals with electrical specifications, such as voltage levels
(signaling), symbol encoding/decoding.
SDIO SD Input/Output
Suspend Stop and save a function to be able to Resume later (defined in SDIO spec).
Transaction (layer) Layer within the host/device that performs protocol management including packet generation
and analysis, command-response handshake.
Tuning Process of adjusting the sampling clock to optimally sample the received data. Normally
achieved using the tuning command by Host.
H
Internal Parameter Descriptions
Provides a description of the internal parameters that might be indirectly referenced in expressions in the
Signals, Parameters, or Registers chapters. These parameters are not visible in the coreConsultant GUI and
most of them are derived automatically from visible parameters. You must not set any of these parameters
directly.
Some expressions might refer to TCL functions or procedures (sometimes identified as function_of) that
coreConsultant uses to make calculations. The exact formula used by these TCL functions is not provided in
this chapter. However, when you configure the core in coreConsultant, all TCL functions and parameters
are evaluated completely; and the resulting values are displayed where appropriate in the coreConsultant
GUI reports.
BUS_WIDTH_PRESET 7'b000_0000
CCMD 3'b000
DWC_MSHC_AXI_BL 16
DWC_MSHC_BADDRW =[::DWC_mshc::calc_baddrw
DWC_MSHC_EMMC_CQE_EN
DWC_MSHC_EMMC_CQE_EXTRA_ROWS
DWC_MSHC_PKT_BUFFER_DEPTH
DWC_MSHC_CMDQD]
DWC_MSHC_BLW =[::DWC_mshc::calc_num_in_log2
DWC_MSHC_AXI_BL]
DWC_MSHC_EMMC_SUPPORT {DWC_MSHC_CARD_INTERFACE_TYPE == 3 ||
DWC_MSHC_CARD_INTERFACE_TYPE == 4 ||
DWC_MSHC_CARD_INTERFACE_TYPE == 5}
DWC_MSHC_HIGHSPD_SUPPORT 1
DWC_MSHC_QOS_EN 0
DWC_MSHC_RAC_INT_PIPE_STAGE 0
DWC_MSHC_SD_EMMC_SUPPORT {DWC_MSHC_CARD_INTERFACE_TYPE == 0 ||
DWC_MSHC_CARD_INTERFACE_TYPE == 1 ||
DWC_MSHC_CARD_INTERFACE_TYPE == 3 ||
DWC_MSHC_CARD_INTERFACE_TYPE == 4 ||
DWC_MSHC_CARD_INTERFACE_TYPE == 5}
DWC_MSHC_STRW {DWC_MSHC_MBIU_DW/8}
DWC_MSHC_SUSRES_SUPPORT 0
DWC_MSHC_UHS2_BOOTCODE_LOAD 0
DWC_MSHC_UHS2_SUPPORT {DWC_MSHC_CARD_INTERFACE_TYPE == 0 ||
DWC_MSHC_CARD_INTERFACE_TYPE == 2 ||
DWC_MSHC_CARD_INTERFACE_TYPE == 3}
DWC_QOS_DW 4
DWC_SIDEBAND_TASKID_W 5
EBSY 8'b1000_0000
H 1'b1
MSHC_MAHB_LITE 0
MSHC_S_ADDR_WIDTH 32
MSHC_S_DATA_WIDTH 32
ONE 2'b00
RANGE_A 2'b00
SNPS_RSVDPARAM_6 {DWC_MSHC_PKT_BUFFER_DEPTH /
(2*(DWC_MSHC_LINK_MAX_BLK_SIZE /
(DWC_MSHC_MBIU_DW/8)))}
T_DMT_ENTRY DWC_MSHC_T_DMT_ENTRY
TRANS_ABORT 3'b011