Commit | Line | Data |
---|---|---|
b2441318 | 1 | # SPDX-License-Identifier: GPL-2.0 |
1da177e4 LT |
2 | # |
3 | # Block device driver configuration | |
4 | # | |
5 | ||
fd11d171 JE |
6 | menuconfig BLK_DEV |
7 | bool "Block devices" | |
8 | depends on BLOCK | |
9 | default y | |
06bfb7eb JE |
10 | ---help--- |
11 | Say Y here to get to see options for various different block device | |
12 | drivers. This option alone does not add any kernel code. | |
13 | ||
14 | If you say N, all options in this submenu will be skipped and disabled; | |
15 | only do this if you know what you are doing. | |
9361401e | 16 | |
fd11d171 | 17 | if BLK_DEV |
1da177e4 | 18 | |
f2298c04 JA |
19 | config BLK_DEV_NULL_BLK |
20 | tristate "Null test block driver" | |
6cd1a6fe | 21 | select CONFIGFS_FS |
f2298c04 | 22 | |
1da177e4 LT |
23 | config BLK_DEV_FD |
24 | tristate "Normal floppy disk support" | |
a08b6b79 | 25 | depends on ARCH_MAY_HAVE_PC_FDC |
1da177e4 LT |
26 | ---help--- |
27 | If you want to use the floppy disk drive(s) of your PC under Linux, | |
28 | say Y. Information about this driver, especially important for IBM | |
31c00fc1 RD |
29 | Thinkpad users, is contained in |
30 | <file:Documentation/blockdev/floppy.txt>. | |
1da177e4 LT |
31 | That file also contains the location of the Floppy driver FAQ as |
32 | well as location of the fdutils package used to configure additional | |
33 | parameters of the driver at run time. | |
34 | ||
35 | To compile this driver as a module, choose M here: the | |
36 | module will be called floppy. | |
37 | ||
38 | config AMIGA_FLOPPY | |
39 | tristate "Amiga floppy support" | |
40 | depends on AMIGA | |
41 | ||
42 | config ATARI_FLOPPY | |
43 | tristate "Atari floppy support" | |
44 | depends on ATARI | |
45 | ||
1da177e4 LT |
46 | config MAC_FLOPPY |
47 | tristate "Support for PowerMac floppy" | |
48 | depends on PPC_PMAC && !PPC_PMAC64 | |
49 | help | |
50 | If you have a SWIM-3 (Super Woz Integrated Machine 3; from Apple) | |
51 | floppy controller, say Y here. Most commonly found in PowerMacs. | |
52 | ||
8852ecd9 LV |
53 | config BLK_DEV_SWIM |
54 | tristate "Support for SWIM Macintosh floppy" | |
55 | depends on M68K && MAC | |
56 | help | |
57 | You should select this option if you want floppy support | |
58 | and you don't have a II, IIfx, Q900, Q950 or AV series. | |
59 | ||
1da177e4 LT |
60 | config AMIGA_Z2RAM |
61 | tristate "Amiga Zorro II ramdisk support" | |
62 | depends on ZORRO | |
63 | help | |
64 | This enables support for using Chip RAM and Zorro II RAM as a | |
65 | ramdisk or as a swap partition. Say Y if you want to include this | |
66 | driver in the kernel. | |
67 | ||
68 | To compile this driver as a module, choose M here: the | |
69 | module will be called z2ram. | |
70 | ||
2395e463 RD |
71 | config GDROM |
72 | tristate "SEGA Dreamcast GD-ROM drive" | |
73 | depends on SH_DREAMCAST | |
72148aec | 74 | select BLK_SCSI_REQUEST # only for the generic cdrom code |
2395e463 RD |
75 | help |
76 | A standard SEGA Dreamcast comes with a modified CD ROM drive called a | |
77 | "GD-ROM" by SEGA to signify it is capable of reading special disks | |
78 | with up to 1 GB of data. This drive will also read standard CD ROM | |
79 | disks. Select this option to access any disks in your GD ROM drive. | |
80 | Most users will want to say "Y" here. | |
81 | You can also build this as a module which will be called gdrom. | |
82 | ||
1da177e4 LT |
83 | config PARIDE |
84 | tristate "Parallel port IDE device support" | |
6a19b41b | 85 | depends on PARPORT_PC |
1da177e4 LT |
86 | ---help--- |
87 | There are many external CD-ROM and disk devices that connect through | |
88 | your computer's parallel port. Most of them are actually IDE devices | |
89 | using a parallel port IDE adapter. This option enables the PARIDE | |
90 | subsystem which contains drivers for many of these external drives. | |
31c00fc1 | 91 | Read <file:Documentation/blockdev/paride.txt> for more information. |
1da177e4 LT |
92 | |
93 | If you have said Y to the "Parallel-port support" configuration | |
94 | option, you may share a single port between your printer and other | |
95 | parallel port devices. Answer Y to build PARIDE support into your | |
96 | kernel, or M if you would like to build it as a loadable module. If | |
97 | your parallel port support is in a loadable module, you must build | |
98 | PARIDE as a module. If you built PARIDE support into your kernel, | |
99 | you may still build the individual protocol modules and high-level | |
100 | drivers as loadable modules. If you build this support as a module, | |
101 | it will be called paride. | |
102 | ||
103 | To use the PARIDE support, you must say Y or M here and also to at | |
104 | least one high-level driver (e.g. "Parallel port IDE disks", | |
105 | "Parallel port ATAPI CD-ROMs", "Parallel port ATAPI disks" etc.) and | |
106 | to at least one protocol driver (e.g. "ATEN EH-100 protocol", | |
107 | "MicroSolutions backpack protocol", "DataStor Commuter protocol" | |
108 | etc.). | |
109 | ||
110 | source "drivers/block/paride/Kconfig" | |
111 | ||
88523a61 SB |
112 | source "drivers/block/mtip32xx/Kconfig" |
113 | ||
cd67e10a MK |
114 | source "drivers/block/zram/Kconfig" |
115 | ||
1da177e4 LT |
116 | config BLK_DEV_DAC960 |
117 | tristate "Mylex DAC960/DAC1100 PCI RAID Controller support" | |
118 | depends on PCI | |
119 | help | |
120 | This driver adds support for the Mylex DAC960, AcceleRAID, and | |
121 | eXtremeRAID PCI RAID controllers. See the file | |
31c00fc1 RD |
122 | <file:Documentation/blockdev/README.DAC960> for further information |
123 | about this driver. | |
1da177e4 LT |
124 | |
125 | To compile this driver as a module, choose M here: the | |
126 | module will be called DAC960. | |
127 | ||
128 | config BLK_DEV_UMEM | |
b8977285 KC |
129 | tristate "Micro Memory MM5415 Battery Backed RAM support" |
130 | depends on PCI | |
1da177e4 LT |
131 | ---help--- |
132 | Saying Y here will include support for the MM5415 family of | |
133 | battery backed (Non-volatile) RAM cards. | |
134 | <http://www.umem.com/> | |
135 | ||
136 | The cards appear as block devices that can be partitioned into | |
137 | as many as 15 partitions. | |
138 | ||
139 | To compile this driver as a module, choose M here: the | |
140 | module will be called umem. | |
141 | ||
142 | The umem driver has not yet been allocated a MAJOR number, so | |
bf6ee0ae | 143 | one is chosen dynamically. |
1da177e4 LT |
144 | |
145 | config BLK_DEV_UBD | |
146 | bool "Virtual block device" | |
147 | depends on UML | |
148 | ---help--- | |
149 | The User-Mode Linux port includes a driver called UBD which will let | |
150 | you access arbitrary files on the host computer as block devices. | |
151 | Unless you know that you do not need such virtual block devices say | |
152 | Y here. | |
153 | ||
154 | config BLK_DEV_UBD_SYNC | |
155 | bool "Always do synchronous disk IO for UBD" | |
156 | depends on BLK_DEV_UBD | |
157 | ---help--- | |
158 | Writes to the virtual block device are not immediately written to the | |
159 | host's disk; this may cause problems if, for example, the User-Mode | |
160 | Linux 'Virtual Machine' uses a journalling filesystem and the host | |
161 | computer crashes. | |
162 | ||
163 | Synchronous operation (i.e. always writing data to the host's disk | |
164 | immediately) is configurable on a per-UBD basis by using a special | |
165 | kernel command line option. Alternatively, you can say Y here to | |
166 | turn on synchronous operation by default for all block devices. | |
167 | ||
168 | If you're running a journalling file system (like reiserfs, for | |
169 | example) in your virtual machine, you will want to say Y here. If | |
170 | you care for the safety of the data in your virtual machine, Y is a | |
171 | wise choice too. In all other cases (for example, if you're just | |
172 | playing around with User-Mode Linux) you can choose N. | |
173 | ||
174 | config BLK_DEV_COW_COMMON | |
175 | bool | |
176 | default BLK_DEV_UBD | |
177 | ||
1da177e4 LT |
178 | config BLK_DEV_LOOP |
179 | tristate "Loopback device support" | |
180 | ---help--- | |
181 | Saying Y here will allow you to use a regular file as a block | |
182 | device; you can then create a file system on that block device and | |
183 | mount it just as you would mount other block devices such as hard | |
184 | drive partitions, CD-ROM drives or floppy drives. The loop devices | |
185 | are block special device files with major number 7 and typically | |
186 | called /dev/loop0, /dev/loop1 etc. | |
187 | ||
188 | This is useful if you want to check an ISO 9660 file system before | |
189 | burning the CD, or if you want to use floppy images without first | |
190 | writing them to floppy. Furthermore, some Linux distributions avoid | |
191 | the need for a dedicated Linux partition by keeping their complete | |
192 | root file system inside a DOS FAT file using this loop device | |
193 | driver. | |
194 | ||
195 | To use the loop device, you need the losetup utility, found in the | |
196 | util-linux package, see | |
4f6cce39 | 197 | <https://www.kernel.org/pub/linux/utils/util-linux/>. |
1da177e4 LT |
198 | |
199 | The loop device driver can also be used to "hide" a file system in | |
200 | a disk partition, floppy, or regular file, either using encryption | |
201 | (scrambling the data) or steganography (hiding the data in the low | |
202 | bits of, say, a sound file). This is also safe if the file resides | |
203 | on a remote file server. | |
204 | ||
205 | There are several ways of encrypting disks. Some of these require | |
206 | kernel patches. The vanilla kernel offers the cryptoloop option | |
207 | and a Device Mapper target (which is superior, as it supports all | |
208 | file systems). If you want to use the cryptoloop, say Y to both | |
209 | LOOP and CRYPTOLOOP, and make sure you have a recent (version 2.12 | |
210 | or later) version of util-linux. Additionally, be aware that | |
211 | the cryptoloop is not safe for storing journaled filesystems. | |
212 | ||
213 | Note that this loop device has nothing to do with the loopback | |
214 | device used for network connections from the machine to itself. | |
215 | ||
216 | To compile this driver as a module, choose M here: the | |
217 | module will be called loop. | |
218 | ||
219 | Most users will answer N here. | |
220 | ||
d134b00b KS |
221 | config BLK_DEV_LOOP_MIN_COUNT |
222 | int "Number of loop devices to pre-create at init time" | |
223 | depends on BLK_DEV_LOOP | |
224 | default 8 | |
225 | help | |
226 | Static number of loop devices to be unconditionally pre-created | |
227 | at init time. | |
228 | ||
229 | This default value can be overwritten on the kernel command | |
230 | line or with module-parameter loop.max_loop. | |
231 | ||
232 | The historic default is 8. If a late 2011 version of losetup(8) | |
233 | is used, it can be set to 0, since needed loop devices can be | |
234 | dynamically allocated with the /dev/loop-control interface. | |
235 | ||
1da177e4 LT |
236 | config BLK_DEV_CRYPTOLOOP |
237 | tristate "Cryptoloop Support" | |
238 | select CRYPTO | |
8df3b0a2 | 239 | select CRYPTO_CBC |
1da177e4 LT |
240 | depends on BLK_DEV_LOOP |
241 | ---help--- | |
242 | Say Y here if you want to be able to use the ciphers that are | |
243 | provided by the CryptoAPI as loop transformation. This might be | |
244 | used as hard disk encryption. | |
245 | ||
246 | WARNING: This device is not safe for journaled file systems like | |
247 | ext3 or Reiserfs. Please use the Device Mapper crypto module | |
248 | instead, which can be configured to be on-disk compatible with the | |
249 | cryptoloop device. | |
250 | ||
b411b363 PR |
251 | source "drivers/block/drbd/Kconfig" |
252 | ||
1da177e4 LT |
253 | config BLK_DEV_NBD |
254 | tristate "Network block device support" | |
255 | depends on NET | |
256 | ---help--- | |
257 | Saying Y here will allow your computer to be a client for network | |
258 | block devices, i.e. it will be able to use block devices exported by | |
259 | servers (mount file systems on them etc.). Communication between | |
260 | client and server works over TCP/IP networking, but to the client | |
261 | program this is hidden: it looks like a regular local file access to | |
262 | a block device special file such as /dev/nd0. | |
263 | ||
264 | Network block devices also allows you to run a block-device in | |
265 | userland (making server and client physically the same computer, | |
266 | communicating using the loopback network device). | |
267 | ||
31c00fc1 RD |
268 | Read <file:Documentation/blockdev/nbd.txt> for more information, |
269 | especially about where to find the server code, which runs in user | |
270 | space and does not need special kernel support. | |
1da177e4 LT |
271 | |
272 | Note that this has nothing to do with the network file systems NFS | |
273 | or Coda; you can say N here even if you intend to use NFS or Coda. | |
274 | ||
275 | To compile this driver as a module, choose M here: the | |
276 | module will be called nbd. | |
277 | ||
278 | If unsure, say N. | |
279 | ||
e67f86b3 AB |
280 | config BLK_DEV_SKD |
281 | tristate "STEC S1120 Block Driver" | |
282 | depends on PCI | |
283 | depends on 64BIT | |
284 | ---help--- | |
285 | Saying Y or M here will enable support for the | |
286 | STEC, Inc. S1120 PCIe SSD. | |
287 | ||
288 | Use device /dev/skd$N amd /dev/skd$Np$M. | |
289 | ||
1da177e4 LT |
290 | config BLK_DEV_SX8 |
291 | tristate "Promise SATA SX8 support" | |
292 | depends on PCI | |
293 | ---help--- | |
294 | Saying Y or M here will enable support for the | |
295 | Promise SATA SX8 controllers. | |
296 | ||
297 | Use devices /dev/sx8/$N and /dev/sx8/$Np$M. | |
1da177e4 LT |
298 | |
299 | config BLK_DEV_RAM | |
9db5579b | 300 | tristate "RAM block device support" |
1647b9b9 | 301 | select DAX if BLK_DEV_RAM_DAX |
1da177e4 LT |
302 | ---help--- |
303 | Saying Y here will allow you to use a portion of your RAM memory as | |
304 | a block device, so that you can make file systems on it, read and | |
305 | write to it and do all the other things that you can do with normal | |
306 | block devices (such as hard drives). It is usually used to load and | |
307 | store a copy of a minimal root file system off of a floppy into RAM | |
308 | during the initial install of Linux. | |
309 | ||
31c00fc1 RD |
310 | Note that the kernel command line option "ramdisk=XX" is now obsolete. |
311 | For details, read <file:Documentation/blockdev/ramdisk.txt>. | |
1da177e4 LT |
312 | |
313 | To compile this driver as a module, choose M here: the | |
a3b25d9b FF |
314 | module will be called brd. An alias "rd" has been defined |
315 | for historical reasons. | |
1da177e4 LT |
316 | |
317 | Most normal users won't need the RAM disk functionality, and can | |
318 | thus say N here. | |
319 | ||
320 | config BLK_DEV_RAM_COUNT | |
a687fb18 | 321 | int "Default number of RAM disks" |
1da177e4 | 322 | default "16" |
a687fb18 | 323 | depends on BLK_DEV_RAM |
1da177e4 | 324 | help |
2e977c85 | 325 | The default value is 16 RAM disks. Change this if you know what you |
1da177e4 LT |
326 | are doing. If you boot from a filesystem that needs to be extracted |
327 | in memory, you will need at least one RAM disk (e.g. root on cramfs). | |
328 | ||
329 | config BLK_DEV_RAM_SIZE | |
330 | int "Default RAM disk size (kbytes)" | |
331 | depends on BLK_DEV_RAM | |
332 | default "4096" | |
333 | help | |
334 | The default value is 4096 kilobytes. Only change this if you know | |
2e977c85 | 335 | what you are doing. |
1da177e4 | 336 | |
a7a97fc9 MW |
337 | config BLK_DEV_RAM_DAX |
338 | bool "Support Direct Access (DAX) to RAM block devices" | |
339 | depends on BLK_DEV_RAM && FS_DAX | |
75acb9cd NP |
340 | default n |
341 | help | |
a7a97fc9 MW |
342 | Support filesystems using DAX to access RAM block devices. This |
343 | avoids double-buffering data in the page cache before copying it | |
344 | to the block device. Answering Y will slightly enlarge the kernel, | |
345 | and will prevent RAM block device backing store memory from being | |
75acb9cd NP |
346 | allocated from highmem (only a problem for highmem systems). |
347 | ||
1da177e4 | 348 | config CDROM_PKTCDVD |
5a8b187c | 349 | tristate "Packet writing on CD/DVD media (DEPRECATED)" |
1da177e4 | 350 | depends on !UML |
72148aec | 351 | select BLK_SCSI_REQUEST |
1da177e4 | 352 | help |
5a8b187c JA |
353 | Note: This driver is deprecated and will be removed from the |
354 | kernel in the near future! | |
355 | ||
2d4eeec5 TM |
356 | If you have a CDROM/DVD drive that supports packet writing, say |
357 | Y to include support. It should work with any MMC/Mt Fuji | |
358 | compliant ATAPI or SCSI drive, which is just about any newer | |
359 | DVD/CD writer. | |
1da177e4 | 360 | |
2d4eeec5 TM |
361 | Currently only writing to CD-RW, DVD-RW, DVD+RW and DVDRAM discs |
362 | is possible. | |
1da177e4 LT |
363 | DVD-RW disks must be in restricted overwrite mode. |
364 | ||
2d4eeec5 TM |
365 | See the file <file:Documentation/cdrom/packet-writing.txt> |
366 | for further information on the use of this driver. | |
367 | ||
1da177e4 LT |
368 | To compile this driver as a module, choose M here: the |
369 | module will be called pktcdvd. | |
370 | ||
371 | config CDROM_PKTCDVD_BUFFERS | |
372 | int "Free buffers for data gathering" | |
373 | depends on CDROM_PKTCDVD | |
374 | default "8" | |
375 | help | |
376 | This controls the maximum number of active concurrent packets. More | |
377 | concurrent packets can increase write performance, but also require | |
378 | more memory. Each concurrent packet will require approximately 64Kb | |
e1bc89bc PO |
379 | of non-swappable kernel memory, memory which will be allocated when |
380 | a disc is opened for writing. | |
1da177e4 LT |
381 | |
382 | config CDROM_PKTCDVD_WCACHE | |
b8977285 KC |
383 | bool "Enable write caching" |
384 | depends on CDROM_PKTCDVD | |
1da177e4 LT |
385 | help |
386 | If enabled, write caching will be set for the CD-R/W device. For now | |
387 | this option is dangerous unless the CD-RW media is known good, as we | |
388 | don't do deferred write error handling yet. | |
389 | ||
1da177e4 LT |
390 | config ATA_OVER_ETH |
391 | tristate "ATA over Ethernet support" | |
392 | depends on NET | |
393 | help | |
394 | This driver provides Support for ATA over Ethernet block | |
395 | devices like the Coraid EtherDrive (R) Storage Blade. | |
396 | ||
667ef3c3 DM |
397 | config SUNVDC |
398 | tristate "Sun Virtual Disk Client support" | |
399 | depends on SUN_LDOMS | |
400 | help | |
401 | Support for virtual disk devices as a client under Sun | |
402 | Logical Domains. | |
403 | ||
61d48c2c MS |
404 | source "drivers/s390/block/Kconfig" |
405 | ||
74489a91 GL |
406 | config XILINX_SYSACE |
407 | tristate "Xilinx SystemACE support" | |
6fa612b5 | 408 | depends on 4xx || MICROBLAZE |
74489a91 GL |
409 | help |
410 | Include support for the Xilinx SystemACE CompactFlash interface | |
411 | ||
9f27ee59 JF |
412 | config XEN_BLKDEV_FRONTEND |
413 | tristate "Xen virtual block device support" | |
414 | depends on XEN | |
415 | default y | |
2de06cc1 | 416 | select XEN_XENBUS_FRONTEND |
9f27ee59 JF |
417 | help |
418 | This driver implements the front-end of the Xen virtual | |
419 | block device driver. It communicates with a back-end driver | |
420 | in another domain which drives the actual block device. | |
421 | ||
dfc07b13 | 422 | config XEN_BLKDEV_BACKEND |
ea5e1161 | 423 | tristate "Xen block-device backend driver" |
dfc07b13 KRW |
424 | depends on XEN_BACKEND |
425 | help | |
426 | The block-device backend driver allows the kernel to export its | |
427 | block devices to other guests via a high-performance shared-memory | |
428 | interface. | |
429 | ||
a4c34858 KRW |
430 | The corresponding Linux frontend driver is enabled by the |
431 | CONFIG_XEN_BLKDEV_FRONTEND configuration option. | |
432 | ||
433 | The backend driver attaches itself to a any block device specified | |
434 | in the XenBus configuration. There are no limits to what the block | |
435 | device as long as it has a major and minor. | |
436 | ||
437 | If you are compiling a kernel to run in a Xen block backend driver | |
438 | domain (often this is domain 0) you should say Y here. To | |
439 | compile this driver as a module, chose M here: the module | |
440 | will be called xen-blkback. | |
441 | ||
442 | ||
e467cde2 | 443 | config VIRTIO_BLK |
b8977285 KC |
444 | tristate "Virtio block driver" |
445 | depends on VIRTIO | |
e467cde2 | 446 | ---help--- |
0ad07ec1 | 447 | This is the virtual block driver for virtio. It can be used with |
ecda85e7 | 448 | QEMU based VMMs (like KVM or Xen). Say Y or M. |
e467cde2 | 449 | |
97b50a65 CH |
450 | config VIRTIO_BLK_SCSI |
451 | bool "SCSI passthrough request for the Virtio block driver" | |
452 | depends on VIRTIO_BLK | |
453 | select BLK_SCSI_REQUEST | |
454 | ---help--- | |
455 | Enable support for SCSI passthrough (e.g. the SG_IO ioctl) on | |
456 | virtio-blk devices. This is only supported for the legacy | |
457 | virtio protocol and not enabled by default by any hypervisor. | |
543b334d | 458 | You probably want to use virtio-scsi instead. |
97b50a65 | 459 | |
602adf40 YS |
460 | config BLK_DEV_RBD |
461 | tristate "Rados block device (RBD)" | |
b8977285 | 462 | depends on INET && BLOCK |
602adf40 YS |
463 | select CEPH_LIB |
464 | select LIBCRC32C | |
465 | select CRYPTO_AES | |
466 | select CRYPTO | |
467 | default n | |
468 | help | |
469 | Say Y here if you want include the Rados block device, which stripes | |
470 | a block device over objects stored in the Ceph distributed object | |
471 | store. | |
472 | ||
473 | More information at http://ceph.newdream.net/. | |
474 | ||
475 | If unsure, say N. | |
476 | ||
8722ff8c | 477 | config BLK_DEV_RSXX |
f730e3dc | 478 | tristate "IBM Flash Adapter 900GB Full Height PCIe Device Driver" |
8722ff8c | 479 | depends on PCI |
480 | help | |
481 | Device driver for IBM's high speed PCIe SSD | |
f730e3dc | 482 | storage device: Flash Adapter 900GB Full Height. |
8722ff8c | 483 | |
484 | To compile this driver as a module, choose M here: the | |
485 | module will be called rsxx. | |
486 | ||
fd11d171 | 487 | endif # BLK_DEV |