U-BOOT移植——支持Davinci的MMC

来源:互联网 发布:重庆知梦科技有限公司 编辑:程序博客网 时间:2024/05/21 00:54

下面是这两天看SD标准和365资料进行的小结,下一步对U-BOOT添加MMC支持。让悲剧的网卡见鬼去吧。

1.       MMC/SD是两种不同的格式,SDMMC要高级,可以兼容MMC,并且速度要快。软件区分SD还是MMC,靠CMD1CMD41,前者只有SD卡支持,后者只有MMC支持,发出一条命令,谁成功返回,对应的就是什么卡。

2.       ResponseCPU发出CMD之后,SD/MMC通过CMD信号线串行返回的数据,包括卡状态等等信息。对于MMC/SD来说,Response共分为6种,具体见

http://www.sdcard.org/developers/tech/sdcard/pls/Simplified_Physical_Layer_Spec.pdf 的第4.9节。

3.       以上几种是response的格式,对应到365上面是另外的情况。365SD控制器共有432位的寄存器来保存返回的值。共有三种存储方式(48bits with CRC ,48bits without CRC,136bits with CRC),在MMCCMD寄存器中可以设置。其中48bits with CRC对应的就是SD标准中的R1 ,R6,R7,48 bits without CRC对应的是R3136bits with CRC对应的是R2。在MMCCMD中还可以设置一位叫BUSY,对应的就是R1b。在虽然有三种存储格式,但是返回数据的排列方式只有两种,具体见datasheet54页。

4.       现在遗留着一个问题,如何区分两块SD卡,这个问题还是等待CU的解答吧~~

 

下面先对将要进行的移植进行一下构思。

 

1.       仿照ATMEL_MCI.C对相关函数进行重写。

2.       查看FAT命令的实现流程,看是否需要进行相应的配置。

3.       让移植支持所有Davinci系列,在dm365_configs里面对CONFIG进行设置,e.pCONFIG_365_MMC,MMC.h中,根据定义包含相应的头文件即可。

原创粉丝点击