移植uboot(支持yaffs2及製作補丁)

支持yaffs2:
進入include/configs  smdk2444.h,加上:
#define CONFIG_CMD_NAND_YAFFS

/drivers/mtd/nand nand_util 修改一處邏輯錯誤,否則會導致只燒寫一頁數據:

567行:把if(!rval)改爲:if(rval)

燒寫的時候用 nand wirte.yaffs2

556行:把ops.mode = MTD_OOB_AUTO;
改爲:ops.mode = MTD_OOB_RAN;(原始的OOB,源文件是什麼OOB,寫入nand中就是什麼OOB)

nand_util.c:518行:
//if (!need_skip && !(flags & WITH_DROP_FFS)) {

改爲:if (!need_skip && !(flags & WITH_DROP_FFS) && !(flags & WITH_YAFFS_OOB)) {

用nand dump 檢測根文件系統映像寫進nand的內容是正確的,
dump出來的內容與UltraEdit打開的映像文件的內容不符,則首先解決uboot燒寫yaffs的問題。
啓動yaffs根文件系統,啓動參數要把 rootfstype=jffs2去掉,否則無法正確啓動。
一期原來的uboot是不能正確燒寫yaffs根文件的。

nand 數據查看命令:如: nand dump 26000,


製作補丁:

make disclean
rm u-boot.dis
僅保留修改後的源碼,要與沒經修改的源碼比較
把修改後的源碼目錄改爲:mv u-boot-2012.04.01 u-boot-2012.04.01_100ask
得到源碼目錄:tar xjf u-boot-2012.04.01.tar.bz2
生成補丁:diff -urN u-boot-2012.04.01 u-boot-2012.04.01_100ask > u-boot-2012.04.01_100ask.patch 

補丁文件的使用:(即使用補丁修改沒經修改過的源代碼)

book@book-desktop:/work/system$cd u-boot-2012.04.01
book@book-desktop:/work/system/u-boot-2012.04.01$patch -p1 < ../u-boot-2012.04.01_100ask.patch
book@book-desktop:/work/system/u-boot-2012.04.01$make smdk2440_config
book@book-desktop:/work/system/u-boot-2012.04.01$make
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章