xref: /OK3568_Linux_fs/kernel/drivers/mtd/Kconfig (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyunmenuconfig MTD
2*4882a593Smuzhiyun	tristate "Memory Technology Device (MTD) support"
3*4882a593Smuzhiyun	imply NVMEM
4*4882a593Smuzhiyun	help
5*4882a593Smuzhiyun	  Memory Technology Devices are flash, RAM and similar chips, often
6*4882a593Smuzhiyun	  used for solid state file systems on embedded devices. This option
7*4882a593Smuzhiyun	  will provide the generic support for MTD drivers to register
8*4882a593Smuzhiyun	  themselves with the kernel and for potential users of MTD devices
9*4882a593Smuzhiyun	  to enumerate the devices which are present and obtain a handle on
10*4882a593Smuzhiyun	  them. It will also allow you to select individual drivers for
11*4882a593Smuzhiyun	  particular hardware and users of MTD devices. If unsure, say N.
12*4882a593Smuzhiyun
13*4882a593Smuzhiyunif MTD
14*4882a593Smuzhiyun
15*4882a593Smuzhiyunconfig MTD_TESTS
16*4882a593Smuzhiyun	tristate "MTD tests support (DANGEROUS)"
17*4882a593Smuzhiyun	depends on m
18*4882a593Smuzhiyun	help
19*4882a593Smuzhiyun	  This option includes various MTD tests into compilation. The tests
20*4882a593Smuzhiyun	  should normally be compiled as kernel modules. The modules perform
21*4882a593Smuzhiyun	  various checks and verifications when loaded.
22*4882a593Smuzhiyun
23*4882a593Smuzhiyun	  WARNING: some of the tests will ERASE entire MTD device which they
24*4882a593Smuzhiyun	  test. Do not use these tests unless you really know what you do.
25*4882a593Smuzhiyun
26*4882a593Smuzhiyunmenu "Partition parsers"
27*4882a593Smuzhiyunsource "drivers/mtd/parsers/Kconfig"
28*4882a593Smuzhiyunendmenu
29*4882a593Smuzhiyun
30*4882a593Smuzhiyuncomment "User Modules And Translation Layers"
31*4882a593Smuzhiyun
32*4882a593Smuzhiyun#
33*4882a593Smuzhiyun# MTD block device support is select'ed if needed
34*4882a593Smuzhiyun#
35*4882a593Smuzhiyunconfig MTD_BLKDEVS
36*4882a593Smuzhiyun	tristate
37*4882a593Smuzhiyun
38*4882a593Smuzhiyunconfig MTD_BLOCK
39*4882a593Smuzhiyun	tristate "Caching block device access to MTD devices"
40*4882a593Smuzhiyun	depends on BLOCK
41*4882a593Smuzhiyun	select MTD_BLKDEVS
42*4882a593Smuzhiyun	help
43*4882a593Smuzhiyun	  Although most flash chips have an erase size too large to be useful
44*4882a593Smuzhiyun	  as block devices, it is possible to use MTD devices which are based
45*4882a593Smuzhiyun	  on RAM chips in this manner. This block device is a user of MTD
46*4882a593Smuzhiyun	  devices performing that function.
47*4882a593Smuzhiyun
48*4882a593Smuzhiyun	  At the moment, it is also required for the Journalling Flash File
49*4882a593Smuzhiyun	  System(s) to obtain a handle on the MTD device when it's mounted
50*4882a593Smuzhiyun	  (although JFFS and JFFS2 don't actually use any of the functionality
51*4882a593Smuzhiyun	  of the mtdblock device).
52*4882a593Smuzhiyun
53*4882a593Smuzhiyun	  Later, it may be extended to perform read/erase/modify/write cycles
54*4882a593Smuzhiyun	  on flash chips to emulate a smaller block size. Needless to say,
55*4882a593Smuzhiyun	  this is very unsafe, but could be useful for file systems which are
56*4882a593Smuzhiyun	  almost never written to.
57*4882a593Smuzhiyun
58*4882a593Smuzhiyun	  You do not need this option for use with the DiskOnChip devices. For
59*4882a593Smuzhiyun	  those, enable NFTL support (CONFIG_NFTL) instead.
60*4882a593Smuzhiyun
61*4882a593Smuzhiyunconfig MTD_BLOCK_RO
62*4882a593Smuzhiyun	tristate "Readonly block device access to MTD devices"
63*4882a593Smuzhiyun	depends on MTD_BLOCK!=y && BLOCK
64*4882a593Smuzhiyun	select MTD_BLKDEVS
65*4882a593Smuzhiyun	help
66*4882a593Smuzhiyun	  This allows you to mount read-only file systems (such as cramfs)
67*4882a593Smuzhiyun	  from an MTD device, without the overhead (and danger) of the caching
68*4882a593Smuzhiyun	  driver.
69*4882a593Smuzhiyun
70*4882a593Smuzhiyun	  You do not need this option for use with the DiskOnChip devices. For
71*4882a593Smuzhiyun	  those, enable NFTL support (CONFIG_NFTL) instead.
72*4882a593Smuzhiyun
73*4882a593Smuzhiyunconfig FTL
74*4882a593Smuzhiyun	tristate "FTL (Flash Translation Layer) support"
75*4882a593Smuzhiyun	depends on BLOCK
76*4882a593Smuzhiyun	select MTD_BLKDEVS
77*4882a593Smuzhiyun	help
78*4882a593Smuzhiyun	  This provides support for the original Flash Translation Layer which
79*4882a593Smuzhiyun	  is part of the PCMCIA specification. It uses a kind of pseudo-
80*4882a593Smuzhiyun	  file system on a flash device to emulate a block device with
81*4882a593Smuzhiyun	  512-byte sectors, on top of which you put a 'normal' file system.
82*4882a593Smuzhiyun
83*4882a593Smuzhiyun	  You may find that the algorithms used in this code are patented
84*4882a593Smuzhiyun	  unless you live in the Free World where software patents aren't
85*4882a593Smuzhiyun	  legal - in the USA you are only permitted to use this on PCMCIA
86*4882a593Smuzhiyun	  hardware, although under the terms of the GPL you're obviously
87*4882a593Smuzhiyun	  permitted to copy, modify and distribute the code as you wish. Just
88*4882a593Smuzhiyun	  not use it.
89*4882a593Smuzhiyun
90*4882a593Smuzhiyunconfig NFTL
91*4882a593Smuzhiyun	tristate "NFTL (NAND Flash Translation Layer) support"
92*4882a593Smuzhiyun	depends on BLOCK
93*4882a593Smuzhiyun	select MTD_BLKDEVS
94*4882a593Smuzhiyun	help
95*4882a593Smuzhiyun	  This provides support for the NAND Flash Translation Layer which is
96*4882a593Smuzhiyun	  used on M-Systems' DiskOnChip devices. It uses a kind of pseudo-
97*4882a593Smuzhiyun	  file system on a flash device to emulate a block device with
98*4882a593Smuzhiyun	  512-byte sectors, on top of which you put a 'normal' file system.
99*4882a593Smuzhiyun
100*4882a593Smuzhiyun	  You may find that the algorithms used in this code are patented
101*4882a593Smuzhiyun	  unless you live in the Free World where software patents aren't
102*4882a593Smuzhiyun	  legal - in the USA you are only permitted to use this on DiskOnChip
103*4882a593Smuzhiyun	  hardware, although under the terms of the GPL you're obviously
104*4882a593Smuzhiyun	  permitted to copy, modify and distribute the code as you wish. Just
105*4882a593Smuzhiyun	  not use it.
106*4882a593Smuzhiyun
107*4882a593Smuzhiyunconfig NFTL_RW
108*4882a593Smuzhiyun	bool "Write support for NFTL"
109*4882a593Smuzhiyun	depends on NFTL
110*4882a593Smuzhiyun	help
111*4882a593Smuzhiyun	  Support for writing to the NAND Flash Translation Layer, as used
112*4882a593Smuzhiyun	  on the DiskOnChip.
113*4882a593Smuzhiyun
114*4882a593Smuzhiyunconfig INFTL
115*4882a593Smuzhiyun	tristate "INFTL (Inverse NAND Flash Translation Layer) support"
116*4882a593Smuzhiyun	depends on BLOCK
117*4882a593Smuzhiyun	select MTD_BLKDEVS
118*4882a593Smuzhiyun	help
119*4882a593Smuzhiyun	  This provides support for the Inverse NAND Flash Translation
120*4882a593Smuzhiyun	  Layer which is used on M-Systems' newer DiskOnChip devices. It
121*4882a593Smuzhiyun	  uses a kind of pseudo-file system on a flash device to emulate
122*4882a593Smuzhiyun	  a block device with 512-byte sectors, on top of which you put
123*4882a593Smuzhiyun	  a 'normal' file system.
124*4882a593Smuzhiyun
125*4882a593Smuzhiyun	  You may find that the algorithms used in this code are patented
126*4882a593Smuzhiyun	  unless you live in the Free World where software patents aren't
127*4882a593Smuzhiyun	  legal - in the USA you are only permitted to use this on DiskOnChip
128*4882a593Smuzhiyun	  hardware, although under the terms of the GPL you're obviously
129*4882a593Smuzhiyun	  permitted to copy, modify and distribute the code as you wish. Just
130*4882a593Smuzhiyun	  not use it.
131*4882a593Smuzhiyun
132*4882a593Smuzhiyunconfig RFD_FTL
133*4882a593Smuzhiyun	tristate "Resident Flash Disk (Flash Translation Layer) support"
134*4882a593Smuzhiyun	depends on BLOCK
135*4882a593Smuzhiyun	select MTD_BLKDEVS
136*4882a593Smuzhiyun	help
137*4882a593Smuzhiyun	  This provides support for the flash translation layer known
138*4882a593Smuzhiyun	  as the Resident Flash Disk (RFD), as used by the Embedded BIOS
139*4882a593Smuzhiyun	  of General Software. There is a blurb at:
140*4882a593Smuzhiyun
141*4882a593Smuzhiyun		http://www.gensw.com/pages/prod/bios/rfd.htm
142*4882a593Smuzhiyun
143*4882a593Smuzhiyunconfig SSFDC
144*4882a593Smuzhiyun	tristate "NAND SSFDC (SmartMedia) read only translation layer"
145*4882a593Smuzhiyun	depends on BLOCK
146*4882a593Smuzhiyun	select MTD_BLKDEVS
147*4882a593Smuzhiyun	help
148*4882a593Smuzhiyun	  This enables read only access to SmartMedia formatted NAND
149*4882a593Smuzhiyun	  flash. You can mount it with FAT file system.
150*4882a593Smuzhiyun
151*4882a593Smuzhiyunconfig SM_FTL
152*4882a593Smuzhiyun	tristate "SmartMedia/xD new translation layer"
153*4882a593Smuzhiyun	depends on BLOCK
154*4882a593Smuzhiyun	select MTD_BLKDEVS
155*4882a593Smuzhiyun	select MTD_NAND_ECC_SW_HAMMING
156*4882a593Smuzhiyun	help
157*4882a593Smuzhiyun	  This enables EXPERIMENTAL R/W support for SmartMedia/xD
158*4882a593Smuzhiyun	  FTL (Flash translation layer).
159*4882a593Smuzhiyun	  Write support is only lightly tested, therefore this driver
160*4882a593Smuzhiyun	  isn't recommended to use with valuable data (anyway if you have
161*4882a593Smuzhiyun	  valuable data, do backups regardless of software/hardware you
162*4882a593Smuzhiyun	  use, because you never know what will eat your data...)
163*4882a593Smuzhiyun	  If you only need R/O access, you can use older R/O driver
164*4882a593Smuzhiyun	  (CONFIG_SSFDC)
165*4882a593Smuzhiyun
166*4882a593Smuzhiyunconfig MTD_OOPS
167*4882a593Smuzhiyun	tristate "Log panic/oops to an MTD buffer"
168*4882a593Smuzhiyun	help
169*4882a593Smuzhiyun	  This enables panic and oops messages to be logged to a circular
170*4882a593Smuzhiyun	  buffer in a flash partition where it can be read back at some
171*4882a593Smuzhiyun	  later point.
172*4882a593Smuzhiyun
173*4882a593Smuzhiyunconfig MTD_PSTORE
174*4882a593Smuzhiyun	tristate "Log panic/oops to an MTD buffer based on pstore"
175*4882a593Smuzhiyun	depends on PSTORE_BLK
176*4882a593Smuzhiyun	help
177*4882a593Smuzhiyun	  This enables panic and oops messages to be logged to a circular
178*4882a593Smuzhiyun	  buffer in a flash partition where it can be read back as files after
179*4882a593Smuzhiyun	  mounting pstore filesystem.
180*4882a593Smuzhiyun
181*4882a593Smuzhiyun	  If unsure, say N.
182*4882a593Smuzhiyun
183*4882a593Smuzhiyunconfig MTD_SWAP
184*4882a593Smuzhiyun	tristate "Swap on MTD device support"
185*4882a593Smuzhiyun	depends on MTD && SWAP
186*4882a593Smuzhiyun	select MTD_BLKDEVS
187*4882a593Smuzhiyun	help
188*4882a593Smuzhiyun	  Provides volatile block device driver on top of mtd partition
189*4882a593Smuzhiyun	  suitable for swapping.  The mapping of written blocks is not saved.
190*4882a593Smuzhiyun	  The driver provides wear leveling by storing erase counter into the
191*4882a593Smuzhiyun	  OOB.
192*4882a593Smuzhiyun
193*4882a593Smuzhiyunconfig MTD_PARTITIONED_MASTER
194*4882a593Smuzhiyun	bool "Retain master device when partitioned"
195*4882a593Smuzhiyun	default n
196*4882a593Smuzhiyun	depends on MTD
197*4882a593Smuzhiyun	help
198*4882a593Smuzhiyun	  For historical reasons, by default, either a master is present or
199*4882a593Smuzhiyun	  several partitions are present, but not both. The concern was that
200*4882a593Smuzhiyun	  data listed in multiple partitions was dangerous; however, SCSI does
201*4882a593Smuzhiyun	  this and it is frequently useful for applications. This config option
202*4882a593Smuzhiyun	  leaves the master in even if the device is partitioned. It also makes
203*4882a593Smuzhiyun	  the parent of the partition device be the master device, rather than
204*4882a593Smuzhiyun	  what lies behind the master.
205*4882a593Smuzhiyun
206*4882a593Smuzhiyunsource "drivers/mtd/chips/Kconfig"
207*4882a593Smuzhiyun
208*4882a593Smuzhiyunsource "drivers/mtd/maps/Kconfig"
209*4882a593Smuzhiyun
210*4882a593Smuzhiyunsource "drivers/mtd/devices/Kconfig"
211*4882a593Smuzhiyun
212*4882a593Smuzhiyunsource "drivers/mtd/nand/Kconfig"
213*4882a593Smuzhiyun
214*4882a593Smuzhiyunsource "drivers/mtd/lpddr/Kconfig"
215*4882a593Smuzhiyun
216*4882a593Smuzhiyunsource "drivers/mtd/spi-nor/Kconfig"
217*4882a593Smuzhiyun
218*4882a593Smuzhiyunsource "drivers/mtd/ubi/Kconfig"
219*4882a593Smuzhiyun
220*4882a593Smuzhiyunsource "drivers/mtd/hyperbus/Kconfig"
221*4882a593Smuzhiyun
222*4882a593Smuzhiyunendif # MTD
223