mirror of
https://github.com/torvalds/linux.git
synced 2024-11-16 17:12:06 +00:00
9361401eb7
Make it possible to disable the block layer. Not all embedded devices require it, some can make do with just JFFS2, NFS, ramfs, etc - none of which require the block layer to be present. This patch does the following: (*) Introduces CONFIG_BLOCK to disable the block layer, buffering and blockdev support. (*) Adds dependencies on CONFIG_BLOCK to any configuration item that controls an item that uses the block layer. This includes: (*) Block I/O tracing. (*) Disk partition code. (*) All filesystems that are block based, eg: Ext3, ReiserFS, ISOFS. (*) The SCSI layer. As far as I can tell, even SCSI chardevs use the block layer to do scheduling. Some drivers that use SCSI facilities - such as USB storage - end up disabled indirectly from this. (*) Various block-based device drivers, such as IDE and the old CDROM drivers. (*) MTD blockdev handling and FTL. (*) JFFS - which uses set_bdev_super(), something it could avoid doing by taking a leaf out of JFFS2's book. (*) Makes most of the contents of linux/blkdev.h, linux/buffer_head.h and linux/elevator.h contingent on CONFIG_BLOCK being set. sector_div() is, however, still used in places, and so is still available. (*) Also made contingent are the contents of linux/mpage.h, linux/genhd.h and parts of linux/fs.h. (*) Makes a number of files in fs/ contingent on CONFIG_BLOCK. (*) Makes mm/bounce.c (bounce buffering) contingent on CONFIG_BLOCK. (*) set_page_dirty() doesn't call __set_page_dirty_buffers() if CONFIG_BLOCK is not enabled. (*) fs/no-block.c is created to hold out-of-line stubs and things that are required when CONFIG_BLOCK is not set: (*) Default blockdev file operations (to give error ENODEV on opening). (*) Makes some /proc changes: (*) /proc/devices does not list any blockdevs. (*) /proc/diskstats and /proc/partitions are contingent on CONFIG_BLOCK. (*) Makes some compat ioctl handling contingent on CONFIG_BLOCK. (*) If CONFIG_BLOCK is not defined, makes sys_quotactl() return -ENODEV if given command other than Q_SYNC or if a special device is specified. (*) In init/do_mounts.c, no reference is made to the blockdev routines if CONFIG_BLOCK is not defined. This does not prohibit NFS roots or JFFS2. (*) The bdflush, ioprio_set and ioprio_get syscalls can now be absent (return error ENOSYS by way of cond_syscall if so). (*) The seclvl_bd_claim() and seclvl_bd_release() security calls do nothing if CONFIG_BLOCK is not set, since they can't then happen. Signed-Off-By: David Howells <dhowells@redhat.com> Signed-off-by: Jens Axboe <axboe@kernel.dk>
272 lines
10 KiB
Plaintext
272 lines
10 KiB
Plaintext
# drivers/mtd/maps/Kconfig
|
|
# $Id: Kconfig,v 1.18 2005/11/07 11:14:24 gleixner Exp $
|
|
|
|
menu "Self-contained MTD device drivers"
|
|
depends on MTD!=n
|
|
|
|
config MTD_PMC551
|
|
tristate "Ramix PMC551 PCI Mezzanine RAM card support"
|
|
depends on MTD && PCI
|
|
---help---
|
|
This provides a MTD device driver for the Ramix PMC551 RAM PCI card
|
|
from Ramix Inc. <http://www.ramix.com/products/memory/pmc551.html>.
|
|
These devices come in memory configurations from 32M - 1G. If you
|
|
have one, you probably want to enable this.
|
|
|
|
If this driver is compiled as a module you get the ability to select
|
|
the size of the aperture window pointing into the devices memory.
|
|
What this means is that if you have a 1G card, normally the kernel
|
|
will use a 1G memory map as its view of the device. As a module,
|
|
you can select a 1M window into the memory and the driver will
|
|
"slide" the window around the PMC551's memory. This was
|
|
particularly useful on the 2.2 kernels on PPC architectures as there
|
|
was limited kernel space to deal with.
|
|
|
|
config MTD_PMC551_BUGFIX
|
|
bool "PMC551 256M DRAM Bugfix"
|
|
depends on MTD_PMC551
|
|
help
|
|
Some of Ramix's PMC551 boards with 256M configurations have invalid
|
|
column and row mux values. This option will fix them, but will
|
|
break other memory configurations. If unsure say N.
|
|
|
|
config MTD_PMC551_DEBUG
|
|
bool "PMC551 Debugging"
|
|
depends on MTD_PMC551
|
|
help
|
|
This option makes the PMC551 more verbose during its operation and
|
|
is only really useful if you are developing on this driver or
|
|
suspect a possible hardware or driver bug. If unsure say N.
|
|
|
|
config MTD_MS02NV
|
|
tristate "DEC MS02-NV NVRAM module support"
|
|
depends on MTD && MACH_DECSTATION
|
|
help
|
|
This is an MTD driver for the DEC's MS02-NV (54-20948-01) battery
|
|
backed-up NVRAM module. The module was originally meant as an NFS
|
|
accelerator. Say Y here if you have a DECstation 5000/2x0 or a
|
|
DECsystem 5900 equipped with such a module.
|
|
|
|
If you want to compile this driver as a module ( = code which can be
|
|
inserted in and removed from the running kernel whenever you want),
|
|
say M here and read <file:Documentation/modules.txt>. The module will
|
|
be called ms02-nv.o.
|
|
|
|
config MTD_DATAFLASH
|
|
tristate "Support for AT45xxx DataFlash"
|
|
depends on MTD && SPI_MASTER && EXPERIMENTAL
|
|
help
|
|
This enables access to AT45xxx DataFlash chips, using SPI.
|
|
Sometimes DataFlash chips are packaged inside MMC-format
|
|
cards; at this writing, the MMC stack won't handle those.
|
|
|
|
config MTD_M25P80
|
|
tristate "Support for M25 SPI Flash"
|
|
depends on MTD && SPI_MASTER && EXPERIMENTAL
|
|
help
|
|
This enables access to ST M25P80 and similar SPI flash chips,
|
|
used for program and data storage. Set up your spi devices
|
|
with the right board-specific platform data.
|
|
|
|
config MTD_SLRAM
|
|
tristate "Uncached system RAM"
|
|
depends on MTD
|
|
help
|
|
If your CPU cannot cache all of the physical memory in your machine,
|
|
you can still use it for storage or swap by using this driver to
|
|
present it to the system as a Memory Technology Device.
|
|
|
|
config MTD_PHRAM
|
|
tristate "Physical system RAM"
|
|
depends on MTD
|
|
help
|
|
This is a re-implementation of the slram driver above.
|
|
|
|
Use this driver to access physical memory that the kernel proper
|
|
doesn't have access to, memory beyond the mem=xxx limit, nvram,
|
|
memory on the video card, etc...
|
|
|
|
config MTD_LART
|
|
tristate "28F160xx flash driver for LART"
|
|
depends on SA1100_LART && MTD
|
|
help
|
|
This enables the flash driver for LART. Please note that you do
|
|
not need any mapping/chip driver for LART. This one does it all
|
|
for you, so go disable all of those if you enabled some of them (:
|
|
|
|
config MTD_MTDRAM
|
|
tristate "Test driver using RAM"
|
|
depends on MTD
|
|
help
|
|
This enables a test MTD device driver which uses vmalloc() to
|
|
provide storage. You probably want to say 'N' unless you're
|
|
testing stuff.
|
|
|
|
config MTDRAM_TOTAL_SIZE
|
|
int "MTDRAM device size in KiB"
|
|
depends on MTD_MTDRAM
|
|
default "4096"
|
|
help
|
|
This allows you to configure the total size of the MTD device
|
|
emulated by the MTDRAM driver. If the MTDRAM driver is built
|
|
as a module, it is also possible to specify this as a parameter when
|
|
loading the module.
|
|
|
|
config MTDRAM_ERASE_SIZE
|
|
int "MTDRAM erase block size in KiB"
|
|
depends on MTD_MTDRAM
|
|
default "128"
|
|
help
|
|
This allows you to configure the size of the erase blocks in the
|
|
device emulated by the MTDRAM driver. If the MTDRAM driver is built
|
|
as a module, it is also possible to specify this as a parameter when
|
|
loading the module.
|
|
|
|
#If not a module (I don't want to test it as a module)
|
|
config MTDRAM_ABS_POS
|
|
hex "SRAM Hexadecimal Absolute position or 0"
|
|
depends on MTD_MTDRAM=y
|
|
default "0"
|
|
help
|
|
If you have system RAM accessible by the CPU but not used by Linux
|
|
in normal operation, you can give the physical address at which the
|
|
available RAM starts, and the MTDRAM driver will use it instead of
|
|
allocating space from Linux's available memory. Otherwise, leave
|
|
this set to zero. Most people will want to leave this as zero.
|
|
|
|
config MTD_BLOCK2MTD
|
|
tristate "MTD using block device"
|
|
depends on MTD && BLOCK
|
|
help
|
|
This driver allows a block device to appear as an MTD. It would
|
|
generally be used in the following cases:
|
|
|
|
Using Compact Flash as an MTD, these usually present themselves to
|
|
the system as an ATA drive.
|
|
Testing MTD users (eg JFFS2) on large media and media that might
|
|
be removed during a write (using the floppy drive).
|
|
|
|
comment "Disk-On-Chip Device Drivers"
|
|
|
|
config MTD_DOC2000
|
|
tristate "M-Systems Disk-On-Chip 2000 and Millennium (DEPRECATED)"
|
|
depends on MTD
|
|
select MTD_DOCPROBE
|
|
select MTD_NAND_IDS
|
|
---help---
|
|
This provides an MTD device driver for the M-Systems DiskOnChip
|
|
2000 and Millennium devices. Originally designed for the DiskOnChip
|
|
2000, it also now includes support for the DiskOnChip Millennium.
|
|
If you have problems with this driver and the DiskOnChip Millennium,
|
|
you may wish to try the alternative Millennium driver below. To use
|
|
the alternative driver, you will need to undefine DOC_SINGLE_DRIVER
|
|
in the <file:drivers/mtd/devices/docprobe.c> source code.
|
|
|
|
If you use this device, you probably also want to enable the NFTL
|
|
'NAND Flash Translation Layer' option below, which is used to
|
|
emulate a block device by using a kind of file system on the flash
|
|
chips.
|
|
|
|
NOTE: This driver is deprecated and will probably be removed soon.
|
|
Please try the new DiskOnChip driver under "NAND Flash Device
|
|
Drivers".
|
|
|
|
config MTD_DOC2001
|
|
tristate "M-Systems Disk-On-Chip Millennium-only alternative driver (DEPRECATED)"
|
|
depends on MTD
|
|
select MTD_DOCPROBE
|
|
select MTD_NAND_IDS
|
|
---help---
|
|
This provides an alternative MTD device driver for the M-Systems
|
|
DiskOnChip Millennium devices. Use this if you have problems with
|
|
the combined DiskOnChip 2000 and Millennium driver above. To get
|
|
the DiskOnChip probe code to load and use this driver instead of
|
|
the other one, you will need to undefine DOC_SINGLE_DRIVER near
|
|
the beginning of <file:drivers/mtd/devices/docprobe.c>.
|
|
|
|
If you use this device, you probably also want to enable the NFTL
|
|
'NAND Flash Translation Layer' option below, which is used to
|
|
emulate a block device by using a kind of file system on the flash
|
|
chips.
|
|
|
|
NOTE: This driver is deprecated and will probably be removed soon.
|
|
Please try the new DiskOnChip driver under "NAND Flash Device
|
|
Drivers".
|
|
|
|
config MTD_DOC2001PLUS
|
|
tristate "M-Systems Disk-On-Chip Millennium Plus"
|
|
depends on MTD
|
|
select MTD_DOCPROBE
|
|
select MTD_NAND_IDS
|
|
---help---
|
|
This provides an MTD device driver for the M-Systems DiskOnChip
|
|
Millennium Plus devices.
|
|
|
|
If you use this device, you probably also want to enable the INFTL
|
|
'Inverse NAND Flash Translation Layer' option below, which is used
|
|
to emulate a block device by using a kind of file system on the
|
|
flash chips.
|
|
|
|
NOTE: This driver will soon be replaced by the new DiskOnChip driver
|
|
under "NAND Flash Device Drivers" (currently that driver does not
|
|
support all Millennium Plus devices).
|
|
|
|
config MTD_DOCPROBE
|
|
tristate
|
|
select MTD_DOCECC
|
|
|
|
config MTD_DOCECC
|
|
tristate
|
|
|
|
config MTD_DOCPROBE_ADVANCED
|
|
bool "Advanced detection options for DiskOnChip"
|
|
depends on MTD_DOCPROBE
|
|
help
|
|
This option allows you to specify nonstandard address at which to
|
|
probe for a DiskOnChip, or to change the detection options. You
|
|
are unlikely to need any of this unless you are using LinuxBIOS.
|
|
Say 'N'.
|
|
|
|
config MTD_DOCPROBE_ADDRESS
|
|
hex "Physical address of DiskOnChip" if MTD_DOCPROBE_ADVANCED
|
|
depends on MTD_DOCPROBE
|
|
default "0x0000" if MTD_DOCPROBE_ADVANCED
|
|
default "0" if !MTD_DOCPROBE_ADVANCED
|
|
---help---
|
|
By default, the probe for DiskOnChip devices will look for a
|
|
DiskOnChip at every multiple of 0x2000 between 0xC8000 and 0xEE000.
|
|
This option allows you to specify a single address at which to probe
|
|
for the device, which is useful if you have other devices in that
|
|
range which get upset when they are probed.
|
|
|
|
(Note that on PowerPC, the normal probe will only check at
|
|
0xE4000000.)
|
|
|
|
Normally, you should leave this set to zero, to allow the probe at
|
|
the normal addresses.
|
|
|
|
config MTD_DOCPROBE_HIGH
|
|
bool "Probe high addresses"
|
|
depends on MTD_DOCPROBE_ADVANCED
|
|
help
|
|
By default, the probe for DiskOnChip devices will look for a
|
|
DiskOnChip at every multiple of 0x2000 between 0xC8000 and 0xEE000.
|
|
This option changes to make it probe between 0xFFFC8000 and
|
|
0xFFFEE000. Unless you are using LinuxBIOS, this is unlikely to be
|
|
useful to you. Say 'N'.
|
|
|
|
config MTD_DOCPROBE_55AA
|
|
bool "Probe for 0x55 0xAA BIOS Extension Signature"
|
|
depends on MTD_DOCPROBE_ADVANCED
|
|
help
|
|
Check for the 0x55 0xAA signature of a DiskOnChip, and do not
|
|
continue with probing if it is absent. The signature will always be
|
|
present for a DiskOnChip 2000 or a normal DiskOnChip Millennium.
|
|
Only if you have overwritten the first block of a DiskOnChip
|
|
Millennium will it be absent. Enable this option if you are using
|
|
LinuxBIOS or if you need to recover a DiskOnChip Millennium on which
|
|
you have managed to wipe the first block.
|
|
|
|
endmenu
|
|
|