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