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

下面是這兩天看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中,根據定義包含相應的頭文件即可。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章