/* u-boot 对nand的支持及整个流程的分析 */
nand_init
nand_init_chip
board_nand_init
nand->cmd_ctrl = s3c2440_hwcontrol;
nand_scan
nand_scan_ident
nand_set_defaults
chip->select_chip = nand_select_chip;
nand_get_flash_type
chip->select_chip(mtd, 0);
chip->cmdfunc(mtd, NAND_CMD_RESET, -1, -1);
chip->cmdfunc(mtd, NAND_CMD_READID, 0x00, -1);
*maf_id = chip->read_byte(mtd);
*dev_id = chip->read_byte(mtd);
nand_register(i)
void (*cmdfunc)(struct mtd_info *mtd, unsigned command, int column,int page_addr);
chip->cmdfunc(mtd, NAND_CMD_RESET, -1, -1);
nand_init_chip
board_nand_init
nand->cmd_ctrl = s3c2440_hwcontrol;
nand_scan
nand_scan_ident
nand_set_defaults
chip->select_chip = nand_select_chip;
nand_get_flash_type
chip->select_chip(mtd, 0);
chip->cmdfunc(mtd, NAND_CMD_RESET, -1, -1);
chip->cmdfunc(mtd, NAND_CMD_READID, 0x00, -1);
*maf_id = chip->read_byte(mtd);
*dev_id = chip->read_byte(mtd);
nand_register(i)
void (*cmdfunc)(struct mtd_info *mtd, unsigned command, int column,int page_addr);
chip->cmdfunc(mtd, NAND_CMD_RESET, -1, -1);
/* u-boot的基本参数设置 */
set ipaddr 192.168.2.2
set ethaddr 00:0c:29:2d:59:7d
set serverip 192.168.2.1
/* 通过tftp将u-boot写入nor flash */
tftp 30000000 u-boot_new.bin
protect off all
erase 0 3ffff
cp.b 30000000 0 40000
tftp 30000000 u-boot_new.bin
protect off all
erase 0 3ffff
cp.b 30000000 0 40000
tftp 30000000 fs_mini_mdev.jffs2
nand erase.part rootfs
nand write 30000000 0x00260000 5b89a8
set bootargs console=ttySAC0 root=/dev/mtdblock3 rootfstype=jffs2
/* 移植内核 */
tftp 30000000 uImage_3.5
nand erase.part kernel
nand write 30000000 0x00060000 1c3590
tftp 30000000 uImage_3.5
nand erase.part kernel
nand write 30000000 0x00060000 1c3590
/* 移植文件系统 */
set bootargs console=ttySAC0 root=/dev/mtdblock3 rootfstype=yaffs2
tftp 30000000 fs_mini_mdev.yaffs2
nand erase.part rootfs
nand write.yaffs 30000000 0x00260000 889bc0
nand erase.part rootfs
nand write.yaffs 30000000 0x00260000 889bc0
tftp 30000000 u-boot.bin
protect off all; erase 0 3ffff; cp.b 30000000 0 40000
/* 在完成了对u-boot的修改后,生成补丁文件,记录下修改过的内容。 */
make distclean //清除生成的所有文件
rm u-boot.dis
rm u-boot.dis
cd ..
mv u-boot-2012.04.01 u-boot-2012.04.01_new //重新命名
tar -xjf u-boot-2012.04.01.tar.bz2 //创建原文件
diff -urN u-boot-2012.04.01 u-boot-2012.04.01_new > u-boot-2012.04.01_new.patch //生成补丁
mv u-boot-2012.04.01 u-boot-2012.04.01_new //重新命名
tar -xjf u-boot-2012.04.01.tar.bz2 //创建原文件
diff -urN u-boot-2012.04.01 u-boot-2012.04.01_new > u-boot-2012.04.01_new.patch //生成补丁