xref: /rk3399_rockchip-uboot/fs/yaffs2/Kconfig (revision 0e8cc8bd92257da2e1df88cbc985e166e472ce61)
1#
2# YAFFS file system configurations
3#
4
5config 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
23config 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
34config YAFFS_9BYTE_TAGS
35	bool "Use older-style on-NAND data format with pageStatus byte"
36	depends on YAFFS_YAFFS1
37	default n
38	help
39
40	  Older-style on-NAND data format has a "pageStatus" byte to record
41	  chunk/page state.  This byte is zero when the page is discarded.
42	  Choose this option if you have existing on-NAND data using this
43	  format that you need to continue to support.  New data written
44	  also uses the older-style format.  Note: Use of this option
45	  generally requires that MTD's oob layout be adjusted to use the
46	  older-style format.  See notes on tags formats and MTD versions
47	  in yaffs_mtdif1.c.
48
49	  If unsure, say N.
50
51config YAFFS_DOES_ECC
52	bool "Lets Yaffs do its own ECC"
53	depends on YAFFS_FS && YAFFS_YAFFS1 && !YAFFS_9BYTE_TAGS
54	default n
55	help
56	  This enables Yaffs to use its own ECC functions instead of using
57	  the ones from the generic MTD-NAND driver.
58
59	  If unsure, say N.
60
61config YAFFS_ECC_WRONG_ORDER
62	bool "Use the same ecc byte order as Steven Hill's nand_ecc.c"
63	depends on YAFFS_FS && YAFFS_DOES_ECC && !YAFFS_9BYTE_TAGS
64	default n
65	help
66	  This makes yaffs_ecc.c use the same ecc byte order as Steven
67	  Hill's nand_ecc.c. If not set, then you get the same ecc byte
68	  order as SmartMedia.
69
70	  If unsure, say N.
71
72config YAFFS_YAFFS2
73	bool "2048 byte (or larger) / page devices"
74	depends on YAFFS_FS
75	default y
76	help
77	  Enable YAFFS2 support -- yaffs for >= 2K bytes per page devices
78
79	  If unsure, say Y.
80
81config YAFFS_AUTO_YAFFS2
82	bool "Autoselect yaffs2 format"
83	depends on YAFFS_YAFFS2
84	default y
85	help
86	  Without this, you need to explicitely use yaffs2 as the file
87	  system type. With this, you can say "yaffs" and yaffs or yaffs2
88	  will be used depending on the device page size (yaffs on
89	  512-byte page devices, yaffs2 on 2K page devices).
90
91	  If unsure, say Y.
92
93config YAFFS_DISABLE_LAZY_LOAD
94	bool "Disable lazy loading"
95	depends on YAFFS_YAFFS2
96	default n
97	help
98	  "Lazy loading" defers loading file details until they are
99	  required. This saves mount time, but makes the first look-up
100	  a bit longer.
101
102	  Lazy loading will only happen if enabled by this option being 'n'
103	  and if the appropriate tags are available, else yaffs2 will
104	  automatically fall back to immediate loading and do the right
105	  thing.
106
107	  Lazy laoding will be required by checkpointing.
108
109	  Setting this to 'y' will disable lazy loading.
110
111	  If unsure, say N.
112
113config YAFFS_CHECKPOINT_RESERVED_BLOCKS
114	int "Reserved blocks for checkpointing"
115	depends on YAFFS_YAFFS2
116	default 10
117	help
118          Give the number of Blocks to reserve for checkpointing.
119	  Checkpointing saves the state at unmount so that mounting is
120	  much faster as a scan of all the flash to regenerate this state
121	  is not needed.  These Blocks are reserved per partition, so if
122	  you have very small partitions the default (10) may be a mess
123	  for you.  You can set this value to 0, but that does not mean
124	  checkpointing is disabled at all. There only won't be any
125	  specially reserved blocks for checkpointing, so if there is
126	  enough free space on the filesystem, it will be used for
127	  checkpointing.
128
129	  If unsure, leave at default (10), but don't wonder if there are
130	  always 2MB used on your large page device partition (10 x 2k
131	  pagesize). When using small partitions or when being very small
132	  on space, you probably want to set this to zero.
133
134config YAFFS_DISABLE_WIDE_TNODES
135	bool "Turn off wide tnodes"
136	depends on YAFFS_FS
137	default n
138	help
139	  Wide tnodes are only used for NAND arrays >=32MB for 512-byte
140	  page devices and >=128MB for 2k page devices. They use slightly
141	  more RAM but are faster since they eliminate chunk group
142	  searching.
143
144	  Setting this to 'y' will force tnode width to 16 bits and save
145	  memory but make large arrays slower.
146
147	  If unsure, say N.
148
149config YAFFS_ALWAYS_CHECK_CHUNK_ERASED
150	bool "Force chunk erase check"
151	depends on YAFFS_FS
152	default n
153	help
154          Normally YAFFS only checks chunks before writing until an erased
155	  chunk is found. This helps to detect any partially written
156	  chunks that might have happened due to power loss.
157
158	  Enabling this forces on the test that chunks are erased in flash
159	  before writing to them. This takes more time but is potentially
160	  a bit more secure.
161
162	  Suggest setting Y during development and ironing out driver
163	  issues etc. Suggest setting to N if you want faster writing.
164
165	  If unsure, say Y.
166
167config YAFFS_SHORT_NAMES_IN_RAM
168	bool "Cache short names in RAM"
169	depends on YAFFS_FS
170	default y
171	help
172	  If this config is set, then short names are stored with the
173	  yaffs_Object.  This costs an extra 16 bytes of RAM per object,
174	  but makes look-ups faster.
175
176	  If unsure, say Y.
177