参考:http://blog.csdn.net/IT_114
在自己2.6.33 内核中,分区是:
uboot与yaffs2的集成
我的NANDFLASH是1G的2k,NANDFLASH. 我用的uboot是1.3.4,用网上下的yaffs2IAMGE工具源码,做成的yaffs2文件系统,烧进去,提示: yaffs: auto selecting yaffs2 yaffs: dev is 32505858 name is "mtdblock2" yaffs: passed flags "" yaffs: Attempting MTD mount on 31.2, "mtdblock2" No filesystem could mount root, tried: cramfs msdos vfat romfs fuseblk yaffs ya ffs2 Kernel panic - not syncing: VFS: Unable to mount...
现在正在看uboot烧写yaffs2的代码,有点疑问 输入命令后执行do_nand,然后执行到nand_write_opts int nand_write_opts(nand_info_t *meminfo, const nand_write_options_t *opts) { 。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。 。。。。。。。。。。。。。。。。。。。。。。。。。。。。 memcpy(data_buf, buffer, readlen); buffer += readlen; if (opts->writeoob) { ...
修改u-boot,使其能正确烧写oob区。 diff --git a/common/cmd_nand.c b/common/cmd_nand.c index a90fcab..69e82fd 100755 --- a/common/cmd_nand.c +++ b/common/cmd_nand.c @@ -10,7 +10,7 @@ #include - +#define CFG_NAND_yaffs2_WRITE #ifndef CFG_NAND_LEGACY /* * @@ -363,6 +363,23 @@ int do_nand(cmd_tbl_t * cmdtp, int flag, int argc, char *argv[]) opts.quiet ...
yaffs2 rootfs PXA270的正常情况:yaffs: dev is 32505857 name is "mtdblock1"yaffs: Attempting MTD mount on 31.1, "mtdblock1"block 294 is bad2VFS: Mounted root (yaffs2 filesystem).Freeing init memory: 136KINIT: version 2.85 bootingMounting a tmpfs over /dev...done. 2440上的非正常情况:yaffs: dev is 32505857 name is "mtdblock1"yaffs: passed flags ""yaffs: Attempting MTD mount on 31.1, "mtdblock1"yaffs...
我用的目标板是arm9 + linux 2.6.30. 采用yaffs2 文件系统。 分区如下: dev: size erasesize name mtd0: 00020000 00020000 "bootstrap" mtd1: 00040000 00020000 "uboot" mtd2: 00020000 00020000 "env1" mtd3: 00020000 00020000 "env2" mtd4: 00200000 00020000 "linux" mtd5: 07d60000 00020000 "root" 现在增加在线烧写固件的功能。编译最新的busybox 1.20后,得到flash_erase/flash_eraseall, nandwrite/n...
1.前言 略。 2.yaffs文件系统简介 按理说这里应该出现一些诸如“yaffs是一种适合于NAND Flash的文件系统XXXXX”之类的字眼,不过考虑到网络上关于yaffs/yaffs2的介绍已经多如牛毛,所以同上,略。 3.本文内容组织 本文将模仿《linux内核源代码情景分析》一书,以情景分析的方式对yaffs2文件系统的源代码进行分析。首先将分析几组底层函数,如存储空间的分配和释放等;其次分析文件逻辑地址映射;然后是垃圾收集机制;接下来…...
下载的新内核linux2.6.28。下载yaffs2文件系统,给内核打补丁。结果编译出现。fs/yaffs2/yportenv.h:41:25: operator '<' has no left operand fs/yaffs2/yportenv.h:80:25: operator '>' has no left operand 这个问题。而往linux2.6.19上打补丁没有出现这个问题。试过好几种打补丁方法。都没有解决问题。linux内核是没有问题的。请教各位大侠这是怎麽回事?