Zynq-7000 SoC,SDIO - 软件复位序列,以避免互连挂起

描述

SDIO控制器要求SDIO时钟有效,以便写入软件复位CMD和DAT。如果SDIO时钟未激活,则控制器和互连将挂起。

影响:

轻微,请参阅解决方法。
解决方法:

在向控制器发出软复位之前使能SDIO时钟

受影响的配置:

使用SDIO控制器的系统。

受影响的器件版本: 全部,没有计划修复。请参阅(Xilinx答复47916) Zynq-7000设计咨询主答复记录

解决方案详细信息:主机驱动程序软件流程。

可选:CMD和DAT重置:
如果主机驱动程序在主机控制器初始化期间发出CMD和DAT重置,则此选项位于主机驱动程序流程之前。如果主机驱动程序初始化期间主机驱动程序仅为ALL发出软复位,则不需要此选项。需要SDIO时钟来清除软复位CMD和DAT位。

1)使能SDIO时钟。
2)执行CMD和DAT重置。将1然后写入0到sdio.Clock_Control_Timeout_control_Software_reset [25,26]。

示例:主机驱动程序流程:

1)等待卡插入。配置卡检测中断。
2)插入卡时,执行软复位ALL。将1然后写入0到sdio.Clock_Control_Timeout_control_Software_reset [24]。
3)启用主机中断并启用SDIO时钟。
4)初始化SD卡。

全部软复位:
断言Software_Reset_for_All将重置所有SDIO寄存器,包括sdio.Clock_Control_Timeout_control_Software_reset寄存器本身。复位后,驱动程序应启用SDIO时钟。

2012年8月20日更新

编辑 重设标签(回车键确认) 标为违禁 关闭 合并 删除

提问于 2018-07-31 14:51:06 +0800

这个帖子被标记为一个社区wiki

这个帖子是一个wiki(维基). 任何一个积分 >500的人都可以完善它