YAFFS和YAFFS2是由AlephOne公司開發的NAND Flash文件系統。YAFFS和YAFFS2主要差異在於PAGE讀寫size的大小,YAFFS2可支持到2Kper page,遠高於YAFFS的512 Bytes,因此YAFFS2對於大容量NANDflash來說更具優勢。
就u-boot來說,主要是能夠使它支持下載YAFFS文件,以供操作系統使用,因此只要能夠實現YAFFS的寫入功能即可,無需實現讀取功能。
u-boot-2011.06是支持寫入YAFFS文件的,但默認情況下,該功能沒有開啟。要想開啟該功能,就必須在include/configs/zhaocj2440.h文件內定義CONFIG_CMD_NAND_YAFFS宏,即:
#define CONFIG_CMD_NAND_YAFFS
至於到底是YAFFS,還是YAFFS2,u-boot-2011.06會根據NANDFlash頁的大小,自動實現。
在定義了CONFIG_CMD_NAND_YAFFS宏以後,u-boot-2011.06會多出一個nand write.yaffs命令,用該命令就可以把YAFFS文件寫入到NANDFlash中,它的格式與nand write相似。
在這裡,我們再隨便介紹一下如何制作YAFFS2文件。
首先輸入下列網址,下載yaffs2-source.tar:
http://fatplus.googlecode.com/files/yaffs2-source.tar
解壓後,進入utils目錄,然後執行make命令編譯文件。該命令執行完後,會在該目錄下生成mkyaffs2image文件,以根用戶的身份再把該文件復制到/usr/bin目錄下,並改變它的屬性,具體操作如下:
$ su
# cp mkyaffs2image /usr/bin/
# chmod 777 /usr/bin/mkyaffs2image
回到普通用戶下,檢查mkyaffs2image是否安裝成功:
$ mkyaffs2image
mkyaffs2image: image building tool for YAFFS2 built Jul 18 2012
usage: mkyaffs2image dir image_file [convert]
dir thedirectory tree to be converted
image_file the output file to hold theimage
'convert' produce a big-endianimage from a little-endian machine
表明安裝成功,其中第二行顯示了該命令的用法:
mkyaffs2image dir image_file
第一個參數為被轉換的目錄,第二個參數為最終輸出的鏡像文件。
相關閱讀:
U-Boot源代碼下載地址 http://www.linuxidc.com/Linux/2011-07/38897.htm
U-Boot-2011.06啟動流程分析 http://www.linuxidc.com/Linux/2011-07/39310.htm
u-boot-2011.06在基於s3c2440開發板的移植之編譯配置 http://www.linuxidc.com/Linux/2011-10/45455.htm
u-boot-2011.06在基於s3c2440開發板的移植之NorFlash啟動 http://www.linuxidc.com/Linux/2011-10/45456.htm
u-boot-2011.06在基於S3C2440開發板的移植之解決raise: Signal # 8 caught http://www.linuxidc.com/Linux/2011-10/454554.htm
u-boot-2011.06在基於s3c2440開發板的移植之支持NandFlash讀寫 http://www.linuxidc.com/Linux/2011-10/45457.htm
u-boot-2011.06在基於s3c2440開發板的移植之硬件ECC http://www.linuxidc.com/Linux/2011-10/454558.htm
u-boot-2011.06在基於s3c2440開發板的移植之DM9000 http://www.linuxidc.com/Linux/2012-09/70507.htm
u-boot-2011.06在基於s3c2440開發板的移植之nandflash啟動 http://www.linuxidc.com/Linux/2012-09/70508.htm
u-boot-2011.06在基於s3c2440開發板的移植之支持YAFFS2 http://www.linuxidc.com/Linux/2012-09/70509.htm
u-boot-2011.06在基於s3c2440開發板的移植之引導內核與加載根文件系統 http://www.linuxidc.com/Linux/2012-09/70510.htm
u-boot-2011.06在基於s3c2440開發板的移植之結束篇 http://www.linuxidc.com/Linux/2012-09/70511.htm