USER GUIDE / MEMORY / EMMC SD / REGISTER LIST
寄存器列表
本章将介绍所有软件可访问寄存器的功能。
表1 寄存器内存映射表基址
| 名称 | 基地址 | 说明 |
|---|---|---|
| MSC0 | 0x13300000 | MSC0 的地址基数 |
| MSC1 | 0x13310000 | MSC1 的地址基数 |
表 2 列出了所有 MSC 寄存器:
表2 MSC 寄存器映射表
| 名称 | 复位值 | 偏移地址 | 说明 |
|---|---|---|---|
| SDMASA_R | 0x00000000 | 0x000 | 该寄存器用于根据主机地址配置32 位块计数或 SDMA 系统地址。 |
| BLOCKSIZE_R | 0x0000 | 0x04 | 该寄存器用于配置 SDMA 缓冲区边界和数据块中的字节数。 |
| BLOCKCOUNT_R | 0x0000 | 0x06 | 该寄存器用于配置数据块数 |
| ARGUMENT_R | 0x00000000 | 0x08 | 该寄存器用于配置 SD/eMMC 命令参数 |
| XFER_MODE_R | 0x0000 | 0x0C | 该寄存器用于控制 SD/eMMC 模式的数据传输操作 |
| CMD_R | 0x0000 | 0x0E | 该寄存器用于提供与命令和响应数据包相关的信息 |
| RESP01_R | 0x00000000 | 0x10 | 该寄存器用于保存卡的 RESP01_R 响应。 |
| RESP23_R | 0x00000000 | 0x14 | 该寄存器用于保存卡的 RESP23_R 响应。 |
| RESP45_R | 0x00000000 | 0x18 | 该寄存器用于保存卡的 RESP45_R 响应。 |
| RESP67_R | 0x00000000 | 0x1C | 该寄存器用于保存卡的 RESP67_R 响应。 |
| BUF_DATA_R | 0x00000000 | 0x20 | 该寄存器用于访问数据包缓冲区。 |
| PSTATE_REG | 0x00000000 | 0x24 | 该寄存器指示主机控制器的当前状态。 |
| HOST_CTRL1_R | 0x00 | 0x28 | 该寄存器用于控制主机控制器的运行 |
| PWR_CTRL_R | 0x00 | 0x29 | 控制卡的总线电源。该寄存器适用于 SD/eMMC 模式... |
| BGAP_CTRL_R | 0x00 | 0x2A | 主机驱动程序应使用该寄存器控制与块间隙相关的任何操作。 |
| WUP_CTRL_R | 0x00 | 0x2B | 该寄存器用于唤醒控制,唤醒功能取决于主机控制器的系统硬件和软件。 |
| CLK_CTRL_R | 0x0000 | 0x2C | 该寄存器控制 SD/eMMC 模式下的 SDCLK(卡时钟) |
| TOUT_CTRL_R | 0x0000 | 0x2E | 超时控制寄存器 |
| SW_RST_R | 0x00 | 0x2F | 向该寄存器的每一位写 1 时都会产生一个复位脉冲。完成复位后,主机控制器将清空每一位。 |
| NORMAL_INT_STAT_R | 0x0000 | 0x30 | 该寄存器反映正常中断的状态。该寄存器适用于 SD/eMMC 模式。 |
| ERROR_INT_STAT_R | 0x0000 | 0x32 | 错误中断状态使能寄存器可使能该寄存器中定义的信号。 |
| NORMAL_INT_STAT_EN_R | 0x0000 | 0x34 | 该 寄 存 器 使 能 正 常 中 断 状 态 寄 存 器(NORMAL_INT_STAT_R)的中断状态。 |
| ERROR_INT_STAT_EN_R | 0x0000 | 0x36 | 该寄存器为错误中断状态寄存器(ERROR_INT_STAT_R)设置中断状态。 |
| NORMAL_INT_SIGNAL_EN_R | 0x0000 | 0x38 | 该寄存器用于选择向主机系统指示中断状态。 |
| ERROR_INT_SIGNAL_EN_R | 0x0000 | 0x3A | 该寄存器用于选择中断状态作为中断通知主机系统。 |
| AUTO_CMD_STAT_R | 0x0000 | 0x3C | 该寄存器用于表示自动 CMD12 的 CMD12 响应错误和自动 CMD23 的 CMD23 响应错误。 |
| HOST_CTRL2_R | 0x00000000 | 0x3E | 该寄存器用于控制主机控制器的运行方式。该寄存器适用于 SD/EMMC 模式。 |
| CAPABILITIES1_R | 0x00000000 | 0x40 | 该寄存器为主机驱动程序提供主机控制器实施的特定信息。 |
| CAPABILITIES2_R | 0x00000000 | 0x44 | 该寄存器为主机驱动器提供主机控制器实施的特定信息。 |
| CURR_CAPABILITIES1_R | 0x00000000 | 0x48 | 对于 VDD1,该寄存器表示各电压的最大能力。如果 Capabilities寄存器中VoltageSupport被设置,该值才有意义。 |
| CURR_CAPABILITIES2_R | 0x00000000 | 0x4C | 对于 VDD1,该寄存器表示各电压的最大能力。如果 Capabilities寄存器中VoltageSupport被设置,该值才有意义。 |
| FORCE_AUTO_CMD_STAT_R | 0x0000 | 0x50 | 该寄存器为只写寄存器,用于设置自动 CMD 出错状态寄存器。 |
| FORCE_ERROR_INT_STAT_R | 0x0000 | 0x52 | 该寄存器为只写寄存器,用于设置错误中断状态寄存器 |
| ADMA_ERR_STAT_R | 0x00000000 | 0x54 | 该寄存器保存 ADMA 出错时的 ADMA 状态。该寄存器适用于 SD/eMMC 模式。 |
| ADMA_SA_LOW_R | 0x00000000 | 0x58 | 该寄存器保存用于 DMA 传输的低 32 位系统地址。该寄存器适用于 SD/eMMC 模式。 |
| ADMA_SA_HIGH_R | 0x00000000 | 0x5C | 该寄存器保存用于 DMA 传输的高 32 位系统地址。该寄存器适用于 SD/eMMC 模式。 |
| PRESET_INIT_R | 0x0000 | 0x60 | 该寄存器定义 SD/eMMC 模式下初始化的预设值。 |
| PRESET_DS_R | 0x0000 | 0x62 | 该寄存器定义SD默认速度模式的预设值。 |
| PRESET_HS_R | 0x0000 | 0x64 | 该寄存器定义SD高速模式的预设值。。 |
| PRESET_SDR12_R | 0x0000 | 0x66 | 该寄存器定义SD SDR12、默认速度模式和EMMC 模式下的预设值 |
| PRESET_SDR25_R | 0x0000 | 0x68 | 该寄存器定义SD SDR25、高速模式和EMMC 模式下的预设值 |
| PRESET_SDR50_R | 0x0000 | 0x6A | 该寄存器定义SD SDR50 速度模式的预设值。 |
| PRESET_SDR104_R | 0x0000 | 0x6C | 该寄存器分别定义SD SDR104和 eMMC HS200速度模式下的预设值。 |
| PRESET_DDR50_R | 0x0000 | 0x6E | 该寄存器分别定义SDDDR50、高速DDR模式和 eMMC 模式下的预设值。 |
| PRESET_UHS2_R | 0x0000 | 0x74 | 该寄存器用于保持eMMC HS400速度模式下的预设值 |
| ADMA_ID_LOW_R | 0x00000000 | 0x78 | 该寄存器用于保存低 32 位集成描述符地址。该寄存器适用于 SD/eMMC 模式。 |
| ADMA_ID_HIGH_R | 0x00000000 | 0x7C | 该寄存器保高32 位集成描述符地址。 |
| SLOT_INTR_STATUS_R | 0x0000 | 0xFC | 该寄存器显示每个插槽的中断状态。 |
| HOST_CNTRL_VERS_R | 0x0005 | 0xFE | 主机控制器版本寄存器 |
| MSC_VER_ID_R | 0x30323030 | 0x500 | 该寄存器反映 MSC 的当前版本号 |
| MSC_VER_TYPE_R | 0x67612a2a | 0x504 | 该寄存器反映 MSC 的当前版本类型 |
| MSHC_CTRL_R | 0x0001 | 0x508 | 该寄存器控制MSC操作 |
| EMMC_CTRL_R | 0x00000000 | 0x52C | 该寄存器控制 eMMC 操作 |
| AT_CTRL_R | 0x01000004 | 0x540 | 该寄存器控制tuning /auto-tuning的特性 |
| AT_STAT_R | 0x00000000 | 0x544 | 该寄存器反映tuning /auto-tuning的状态 |