u-boot-2014.10移植第20天----新增nand flash命令支援(二)
繼前一天移植的情況,執行後發現:
Flash: 2 MiB
NAND: 0 MiB
說明Nand flash沒有移植成功,在檔案drivers/mtd/nand/s3c2440_nand.c 中發現board_nand_init函式中:
nand->select_chip = NULL
選擇晶片函式為NULL,我們在board_nand_init函式上面加上s3c2440_nand_select函式,程式碼如下:static void s3c2440_nand_select(struct mtd_info *mtd, int chipnr)
{
struct s3c2440_nand *nand = s3c2440_get_base_nand();
switch(chipnr){
case -1: /* 取消選中 */
nand->nfcont |= (1<<1);
break;
case 0: /* 選中 */
nand->nfcont &= ~(1 << 1);
break;
default:
BUG();
}
return;
}
再將board_nand_init函式中的select_chip改為:
nand->select_chip = s3c2440_nand_select;
重新編譯執行:Flash: 2 MiB
NAND: 64 MiB
tq2440的nand flash的大小是為64M,說明nandflash被成功探測到了。下面進行讀寫測試:
測試之前先將nand flash擦除一遍:
[TQ2440 #] nand erase 0 4000000
從伺服器上下載test檔案,放在0x31000000地址處。
[TQ2440 #] tftp 31000000 test
檢視0x31000000地址處的內容:[TQ2440 #] md 31000000
31000000: 34333231 38373635 0a0a3039 00000000 1234567890......
31000010: 00000000 00000000 00000000 00000000 ................
將0x31000000地址處的內容寫到nand flash的0地址處:
[TQ2440 #] nand write 31000000 0 ff
NAND write: device 0 offset 0x0, size 0xff
255 bytes written: OK
[TQ2440 #]
說明些是成功的。再將其讀到0x31000000地址處下面讀操作:
[TQ2440 #] nand read 31000000 0 ff
NAND read: device 0 offset 0x0, size 0xff
255 bytes read: OK
說明讀也是OK的,比較前後讀寫的內容是否一樣:[TQ2440 #] md 31000000
31000000: 34333231 38373635 0a0a3039 00000000 1234567890......
說明Nand flash移植OK。下圖為tq2440開發板上的nand flash,頁、塊和裝置之間的關係,以及oob區:
從圖中可以看出一頁的大小為512bytes,oob的大小為16位元組,可以使用nand dump命令檢視。
首先擦除一個塊,因為nand flash只能0不能寫1,所以擦除的操作就是講頁和oob區中的位元組都置為1,如下
[TQ2440 #] nand erase 0 ff
[TQ2440 #] nand dump 0 Page 00000000 dump:
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
OOB:
ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff
綠色部分為一頁大小,512bytes,紅色部分為oob區,16bytes。擦除後的第一個頁和oob區的位元組都為ff。
在SDRAM中0x3100 0000起始位置後的10個位元組為0~9的ASCII值,我們將其寫入Nand flash的第一個頁中去。
[TQ2440 #] md 31000000
31000000: 34333231 38373635 0a0a3039 00000000 1234567890......
31000010: 00000000 00000000 00000000 00000000 ................
寫入16個位元組:
[TQ2440 #] nand write 31000000 0 10
[TQ2440 #] nand dump 0
Page 00000000 dump:
31 32 33 34 35 36 37 38 39 30 0a 0a 00 00 00 00
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
OOB:
aa a5 ab ff ff ff ff ff
ff ff ff ff ff ff ff ff
可以看到第一個頁中已經儲存了0~9的ASCII值,多寫了0a0a不用管。
明天繼續。
相關文章
- u-boot-2014.10移植第21天----新增nand flash命令支援(三)bootNaN
- u-boot-2014.10移植第22天----新增nand flash命令支援(四)bootNaN
- u-boot-2014.10移植第19天----新增nand flash命令支援(一)bootNaN
- u-boot-2014.10移植第24天----nand flash啟動(二)bootNaN
- u-boot-2014.10移植第30天----nand flash的SPL啟動(二)bootNaN
- u-boot-2014.10移植第28天----nand flash啟動(六)bootNaN
- u-boot-2014.10移植第27天----nand flash啟動(五)bootNaN
- u-boot-2014.10移植第25天----nand flash啟動(三)bootNaN
- u-boot-2014.10移植第26天----nand flash啟動(四)bootNaN
- u-boot-2014.10移植第23天----nand flash啟動(一)bootNaN
- u-boot-2014.10移植第29天----nand flash的SPL啟動(一)bootNaN
- u-boot-2014.10移植第18天----新增DM9000網路卡支援(二)boot
- u-boot-2014.10移植第15天----nor flash操作boot
- u-boot-2014.10移植第16天----Nor flash啟動boot
- u-boot-2014.10移植第17天----新增DM9000網路卡支援(一)boot
- u-boot-2014.10移植第31天----核心啟動(一)boot
- NAND FlashNaN
- NAND Flash和NOR Flash的區別NaN
- Mini2440 64M Nand Flash 更改為128M Nand FlashNaN
- nor flash 和nand flash 傻傻分不清楚NaN
- NAND FLASH的介面控制設計NaN
- DRAMeXchange:2019年第二季全球NAND Flash 品牌廠商營收排行NaN營收
- NAND FLASH系統的權衡利弊NaN
- Nand Flash結構及錯誤機制NaN
- 關於NAND FLASH解釦的認識NaN
- NAND Flash是如何生產出來的?NaN
- ARM學習之Nand FLash控制器NaN
- 宏旺半導體科普SPI NAND Flash和SPI NOR Flash的區別NaN
- 給alias命令新增引數支援
- TrendForce:預估2022年第二季NAND Flash價格翻漲5~10%NaN
- 新增MyEclipse WebSphere Portal Server支援(二)EclipseWebServer
- TrendForce:預計2022年第二季度NAND Flash價格上漲5-10%NaN
- S3C2440從NAND Flash啟動和NOR FLASH啟動的問題S3NaN
- 第216天:Angular—自定義指令(二)Angular
- 11gR2新特性之二 - Flash Cache 的SSD支援
- DRAMeXchange:2019年Q1 NAND Flash品牌商營收季減23.8%NaN營收
- TrendForce:2024年第一季全球NAND Flash產業營收季增28.1%NaN產業營收
- 怎麼看時序圖--nand flash的讀操作詳解時序圖NaN