2011年5月2日 星期一

MTD , flash , 觀念修正

1.所謂的 nand flash controller ...裡面好像沒有 micro-processor ?

2.what is the relation between  NFC, MTD ?

3.----轉---
假設你有flash(在embedded system幾乎都有)首先, 先K一下flash的spec. 看看read/write/erase的command sequence(每一家的flash都不一樣). 再來看看你的flash是要用8-bit or 16-bit的bus-width, 其command sequence也不一樣. 接下來, 看看linux的MTD chip driver有沒有支援, 若有支援確無法work, 八成是bus-width的設定問題. 另外也要看看你的flash是support CFI or JEDEC or non-CFI interface. 不同的類型也使用不同的chip driver. 
最後, 規劃自己的mapping driver(也就是flash上的partition table, 因為flash不像硬碟會存partition table) 這要自己來, 否則linux怎麼知道你要如何規劃flash? linux是依賴註冊mapping driver來得知partition table information的. 

大約就是如此, 前陣子改了AMD的flash chip driver來支援. 所以才有一點小小的心得. 跟大家分享

-------------


4.http://translate.google.com.tw/translate?hl=zh-TW&sl=zh-CN&u=http://www.cnblogs.com/jinmu190/&ei=uDC_TePMGIW8vgOEg-y6BQ&sa=X&oi=translate&ct=result&resnum=4&ved=0CDwQ7gEwAw&prev=/search%3Fq%3Dftl%2Bblock%2Bdevice%26hl%3Dzh-TW%26rlz%3D1C1CHNY_zh-TWTW376TW376%26prmd%3Divns
必看網址


5, MTD 裡面有 simple FTL (mdtblock),應該是block mapped的FTL。

6. CF card , SD card , USB flash這些東西…雖然也常被叫作 "flash" ,但它們不是 MTD,因為他們有FTL,可直接視作block device,才不會和MTD搞混