Add yaffs_malloc.h
[yaffs2.git] / Kconfig
1 #
2 # YAFFS file system configurations
3 #
4
5 config YAFFS_FS
6         tristate "YAFFS2 file system support"
7         default n
8         depends on MTD
9         select YAFFS_YAFFS1
10         select YAFFS_YAFFS2
11         help
12           YAFFS2, or Yet Another Flash Filing System, is a filing system
13           optimised for NAND Flash chips.
14
15           To compile the YAFFS2 file system support as a module, choose M
16           here: the module will be called yaffs2.
17
18           If unsure, say N.
19
20           Further information on YAFFS2 is available at
21           <http://www.aleph1.co.uk/yaffs/>.
22
23 config YAFFS_YAFFS1
24         bool "512 byte / page devices"
25         depends on YAFFS_FS
26         default y
27         help
28           Enable YAFFS1 support -- yaffs for 512 byte / page devices
29           
30           Not needed for 2K-page devices.
31
32           If unsure, say Y.
33
34 config YAFFS_DOES_ECC
35         bool "Lets Yaffs do its own ECC"
36         depends on YAFFS_FS && YAFFS_YAFFS1
37         default n
38         help
39           This enables Yaffs to use its own ECC functions instead of using
40           the ones from the generic MTD-NAND driver.
41
42           If unsure, say N.
43
44 config YAFFS_ECC_WRONG_ORDER
45         bool "Use the same ecc byte order as Steven Hill's nand_ecc.c"
46         depends on YAFFS_FS && YAFFS_DOES_ECC
47         default n
48         help
49           This makes yaffs_ecc.c use the same ecc byte order as Steven
50           Hill's nand_ecc.c. If not set, then you get the same ecc byte
51           order as SmartMedia.
52
53           If unsure, say N.
54
55 config YAFFS_YAFFS2
56         bool "2048 byte (or larger) / page devices"
57         depends on YAFFS_FS
58         default y
59         help
60           Enable YAFFS2 support -- yaffs for >= 2K bytes per page devices
61
62           If unsure, say Y.
63
64 config YAFFS_AUTO_YAFFS2
65         bool "Autoselect yaffs2 format"
66         depends on YAFFS_YAFFS2
67         default y
68         help
69           Without this, you need to explicitely use yaffs2 as the file
70           system type. With this, you can say "yaffs" and yaffs or yaffs2
71           will be used depending on the device page size (yaffs on
72           512-byte page devices, yaffs2 on 2K page devices).
73
74           If unsure, say Y.
75
76 config YAFFS_DISABLE_LAZY_LOAD
77         bool "Disable lazy loading"
78         depends on YAFFS_YAFFS2
79         default n
80         help
81           "Lazy loading" defers loading file details until they are
82           required. This saves mount time, but makes the first look-up
83           a bit longer.
84
85           Lazy loading will only happen if enabled by this option being 'n'
86           and if the appropriate tags are available, else yaffs2 will
87           automatically fall back to immediate loading and do the right
88           thing.
89
90           Lazy laoding will be required by checkpointing.
91
92           Setting this to 'y' will disable lazy loading.
93
94           If unsure, say N.
95
96 config YAFFS_CHECKPOINT_RESERVED_BLOCKS
97         int "Reserved blocks for checkpointing"
98         depends on YAFFS_YAFFS2
99         default 10
100         help
101           Give the number of Blocks to reserve for checkpointing.
102           Checkpointing saves the state at unmount so that mounting is
103           much faster as a scan of all the flash to regenerate this state
104           is not needed.  These Blocks are reserved per partition, so if
105           you have very small partitions the default (10) may be a mess
106           for you.  You can set this value to 0, but that does not mean
107           checkpointing is disabled at all. There only won't be any
108           specially reserved blocks for checkpointing, so if there is
109           enough free space on the filesystem, it will be used for
110           checkpointing.
111
112           If unsure, leave at default (10), but don't wonder if there are
113           always 2MB used on your large page device partition (10 x 2k
114           pagesize). When using small partitions or when being very small
115           on space, you probably want to set this to zero.
116
117 config YAFFS_DISABLE_WIDE_TNODES
118         bool "Turn off wide tnodes"
119         depends on YAFFS_FS
120         default n
121         help
122           Wide tnodes are only used for NAND arrays >=32MB for 512-byte
123           page devices and >=128MB for 2k page devices. They use slightly
124           more RAM but are faster since they eliminate chunk group
125           searching.
126
127           Setting this to 'y' will force tnode width to 16 bits and save
128           memory but make large arrays slower.
129
130           If unsure, say N.
131
132 config YAFFS_ALWAYS_CHECK_CHUNK_ERASED
133         bool "Force chunk erase check"
134         depends on YAFFS_FS
135         default n
136         help
137           Normally YAFFS only checks chunks before writing until an erased
138           chunk is found. This helps to detect any partially written
139           chunks that might have happened due to power loss.
140
141           Enabling this forces on the test that chunks are erased in flash
142           before writing to them. This takes more time but is potentially
143           a bit more secure.
144  
145           Suggest setting Y during development and ironing out driver
146           issues etc. Suggest setting to N if you want faster writing.  
147
148           If unsure, say Y.
149
150 config YAFFS_SHORT_NAMES_IN_RAM
151         bool "Cache short names in RAM"
152         depends on YAFFS_FS
153         default y
154         help
155           If this config is set, then short names are stored with the
156           yaffs_Object.  This costs an extra 16 bytes of RAM per object,
157           but makes look-ups faster.
158
159           If unsure, say Y.