config YAFFS_MTD_ENABLED bool "NAND mtd support" depends on YAFFS_FS help This adds the yaffs file system support for working with a NAND mtd.
If unsure, say Y.
config YAFFS_RAM_ENABLED bool "yaffsram file system support" depends on YAFFS_FS help This adds the yaffsram file system support. Nice for testing on x86, but uses 2MB of RAM. Don't enable for NAND-based targets.
If unsure, say N.
comment "WARNING: mtd and/or yaffsram support should be selected" depends on YAFFS_FS && !YAFFS_MTD_ENABLED && !YAFFS_RAM_ENABLED
config YAFFS_USE_OLD_MTD bool "Old mtd support" depends on YAFFS_FS && 0 help Enable this to use the old MTD stuff that did not have yaffs support. You can use this to get around compilation problems, but the best thing to do is to upgrade your MTD support. You will get better speed.
If unsure, say N.
config YAFFS_USE_NANDECC bool "Use ECC functions of the generic MTD-NAND driver" depends on YAFFS_FS default y help This enables the ECC functions of the generic MTD-NAND driver. This will not work if you are using the old mtd.
NB Use NAND ECC does not work at present with yaffsram.
If unsure, say Y.
config YAFFS_ECC_WRONG_ORDER bool "Use the same ecc byte order as Steven Hill's nand_ecc.c" depends on YAFFS_FS help This makes yaffs_ecc.c use the same ecc byte order as Steven Hill's nand_ecc.c. If not set, then you get the same ecc byte order as SmartMedia.
If unsure, say N.
config YAFFS_USE_GENERIC_RW bool "Use Linux file caching layer" default y depends on YAFFS_FS help Use generic_read/generic_write for reading/writing files. This enables the use of the Linux file caching layer.
If you disable this, then caching is disabled and file read/write is direct.
If unsure, say Y.
config YAFFS_USE_HEADER_FILE_SIZE bool "Use object header size" depends on YAFFS_FS help When the flash is scanned, two file sizes are constructed: * The size taken from the object header for the file. * The size figured out by scanning the data chunks. If this option is enabled, then the object header size is used, otherwise the scanned size is used.
If unsure, say N.
config YAFFS_DISABLE_CHUNK_ERASED_CHECK bool "Turn off debug chunk erase check" depends on YAFFS_FS default y help Enabling this turns off the test that chunks are erased in flash before writing to them. This is safe, since the write verification will fail. Suggest enabling the test (ie. say N) during development to help debug things.
If unsure, say Y.
#config YAFFS_DISABLE_WRITE_VERIFY # bool "Disable write verify (DANGEROUS)" # depends on YAFFS_FS && EXPERIMENTAL # help # I am severely reluctant to provide this config. Disabling the # verification is not a good thing to do since NAND writes can # fail silently. Disabling the write verification will cause your # teeth to rot, rats to eat your corn and give you split ends. # You have been warned. ie. Don't uncomment the following line. # # If unsure, say N. #
config YAFFS_SHORT_NAMES_IN_RAM bool "Cache short names in RAM" depends on YAFFS_FS default y help If this config is set, then short names are stored with the yaffs_Object. This costs an extra 16 bytes of RAM per object, but makes look-ups faster.
If unsure, say Y. 5.在/arch/arm/mach-s3c2410/mach-smdk2410.c找到smdk_default_nand_part结构,修改nand分区,如下: struct mtd_partition smdk_default_nand_part[] = { [0] = { .name = "vivi", .size = 0x00020000, .offset = 0x00000000, }, [1] = { .name = "param", .size = 0x00010000, .offset = 0x00020000, }, [2] = { .name = "kernel", .size = 0x00100000, .offset = 0x00030000, }, [3] = { .name = "root", .size = 0x01900000, .offset = 0x00130000, }, [4] = { .name = "user", .size = 0x025d0000, .offset = 0x01a30000, } }; 注:此分区要结合vivi里面的分区来进行设置。 6.配置内核时选中MTD支持: Memory Technology Devices (MTD) ---> <*> Memory Technology Device (MTD) support
MTD partitioning support …… --- User Modules And Translation Layers <*> Direct char device access to MTD devices <*> Caching block device access to MTD devices …… NAND Flash Device Drivers ---> <*> NAND Device Support <*> NAND Flash support for S3C2410 SoC
S3C2410 NAND driver debug 7.配置内核时选中YAFFS支持: File systems ---> Miscellaneous filesystems ---> <*> Yet Another Flash Filing System(YAFFS) file system support
NAND mtd support
Use ECC functions of the generic MTD-NAND driver
Use Linux file caching layer
Turn off debug chunk erase check
Cache short names in RAM 8.编译内核并将内核下载到开发板的flash中。 三、Yaffs文件系统测试: 1.内核启动之后,在启动信息里面可以看到如下内容: NAND device: Manufacturer ID: 0xec, Chip ID: 0x76 (Samsung NAND 64MiB 3,3V 8-bit) Scanning device for bad blocks Creating 5 MTD partitions on "NAND 64MiB 3,3V 8-bit": 0x00000000-0x00020000 : "vivi" 0x00020000-0x00030000 : "param" 0x00030000-0x00130000 : "kernel" 0x00130000-0x01a30000 : "root" 0x01a30000-0x04100000 : "user" 2.如果在内核里面添加了proc文件系统的支持那么你在proc里面可以看到有关yaffs的信息 ~ # cat proc/filesystems nodev sysfs nodev rootfs nodev bdev nodev proc nodev sockfs nodev pipefs nodev futexfs nodev tmpfs nodev eventpollfs nodev devpts nodev ramfs vfat nodev devfs nodev nfs yaffs nodev rpc_pipefs 3.查看dev目录下相关目录可以看到: ~ # ls dev/mtd -al drwxr-xr-x 1 root root 0 Jan 1 00:00 . drwxr-xr-x 1 root root 0 Jan 1 00:00 .. crw-rw-rw- 1 root root 90, 0 Jan 1 00:00 0 cr--r--r-- 1 root root 90, 1 Jan 1 00:00 0ro crw-rw-rw- 1 root root 90, 2 Jan 1 00:00 1 cr--r--r-- 1 root root 90, 3 Jan 1 00:00 1ro crw-rw-rw- 1 root root 90, 4 Jan 1 00:00 2 cr--r--r-- 1 root root 90, 5 Jan 1 00:00 2ro crw-rw-rw- 1 root root 90, 6 Jan 1 00:00 3 cr--r--r-- 1 root root 90, 7 Jan 1 00:00 3ro crw-rw-rw- 1 root root 90, 8 Jan 1 00:00 4 cr--r--r-- 1 root root 90, 9 Jan 1 00:00 4ro