請問如何增加MTD device

我們生活周遭存在太多太多的 embedded system ,過去 embedded system 有專屬的 OS,現在 linux 也可以應用在嵌入式環境,不過本版將廣泛討論所有嵌入式系統不只 linux 喔,歡迎有這方面經驗或有興趣的朋友一同進來討論。

版主: chester

請問如何增加MTD device

文章Julian » 週四 5月 20, 2004 4:14 pm

大家好,我剛接觸嵌入式系統,我想要建立一個Linux的環境來寫程式
我在文件中看到有關MTD這個東西,我使用cat /proc/mtd發現我的系統並不支援MTD,所以我重新編譯核心,我選擇了以下幾項
MTD Partitioning support
Direct char device access to MTD device
Caching block device access to MTD devices
FTL(Flash Translation Layer)support
NFTL(NAND Flash Translation Layer)support
Write support for NFTL(BETA)
還有四個子項目
RAM/ROM/FLASH chip drivers
Mapping drivers for chip access
Self-contained MTD device drivers
NAND Flash Device Drivers
上面四個子項目的內容我全選
重新開機之後再執行cat /proc/mtd 我希望能夠看到
mtd0: 00100000 00020000 "boot loader"
mtd1: 00200000 00020000 "kernel"
可是還是看不到,我進入/proc裡面也看不到跟MTD三個字相關的檔案
不知道我哪裡做錯了?? 麻煩各位大大幫幫忙,謝謝大家!!
Julian
 

re:請問如何增加MTD device

文章phidiaus » 週六 6月 05, 2004 6:51 am

refer to http://www.linux-mtd.infradead.org/ and http://www.enseirb.fr/~kadionik/embedde ... o_mtd.html
若有flash裝置要用mtd可參考上列網站,
如果沒有flash就不需要mtd吧,也不會有mtd出現
既然都有file system 可用了,寫driver or ap 應該都不成問題了
linux只是起點,不是終點。
頭像
phidiaus
可愛的小學生
可愛的小學生
 
文章: 5
註冊時間: 週一 12月 02, 2002 1:00 am

re:請問如何增加MTD device

文章訪客 » 週二 6月 08, 2004 1:32 am

假設你有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來支援. 所以才有一點小小的心得. 跟大家分享
訪客
 

re:請問如何增加MTD device

文章訪客 » 週二 6月 08, 2004 1:39 am

對了, 忘了說, flash在kernel下的base address在哪很重要, 手邊應該有memory map吧.
另外, FTL和NFTL很少用. 最重要的是chip driver和mapping driver的支援.
另外, 在embedded system上的flash都是NOR flash(幾乎, DOM例外), 而不是NAND flash, 因為NOR flash支援XIP(exection in place, 我沒記得的話), 這樣boot loader才能直接在flash上執行.
所以NAND Flash Device Drivers 就可以不用選了.
訪客
 

文章遲來 » 週二 4月 11, 2006 10:30 am

直接察看這幾個函數,那一個卡住,也是不錯的方法

(unsigned long)ioremap(FLASH_START, FLASH_SIZE);
simple_map_init(&cdb89712_flash_map);
do_map_probe("cfi_probe", &cdb89712_flash_map);
add_mtd_device(flash_mtd))
遲來
 

文章訪客 » 週二 9月 11, 2007 6:26 pm

請問flash上的partition table 要在哪裏建制, 我是用ixp425 的cpu
訪客
 


回到 embedded system

誰在線上

正在瀏覽這個版面的使用者:沒有註冊會員 和 1 位訪客