2005-06-24 13:01:10 +08:00
|
|
|
# For a description of the syntax of this configuration file,
|
2007-10-31 04:37:19 +08:00
|
|
|
# see Documentation/kbuild/kconfig-language.txt.
|
2005-06-24 13:01:10 +08:00
|
|
|
|
|
|
|
mainmenu "Linux/Xtensa Kernel Configuration"
|
|
|
|
|
|
|
|
config FRAME_POINTER
|
|
|
|
bool
|
|
|
|
default n
|
|
|
|
|
2007-02-10 17:43:09 +08:00
|
|
|
config ZONE_DMA
|
|
|
|
bool
|
|
|
|
default y
|
|
|
|
|
2005-06-24 13:01:10 +08:00
|
|
|
config XTENSA
|
|
|
|
bool
|
|
|
|
default y
|
|
|
|
help
|
|
|
|
Xtensa processors are 32-bit RISC machines designed by Tensilica
|
|
|
|
primarily for embedded systems. These processors are both
|
|
|
|
configurable and extensible. The Linux port to the Xtensa
|
|
|
|
architecture supports all processor configurations and extensions,
|
|
|
|
with reasonable minimum requirements. The Xtensa Linux project has
|
|
|
|
a home page at <http://xtensa.sourceforge.net/>.
|
|
|
|
|
|
|
|
config RWSEM_XCHGADD_ALGORITHM
|
|
|
|
bool
|
|
|
|
default y
|
|
|
|
|
[PATCH] bitops: xtensa: use generic bitops
- remove {,test_and_}{set,clear,change}_bit()
- remove __{,test_and_}{set,clear,change}_bit() and test_bit()
- remove generic_fls64()
- remove find_{next,first}{,_zero}_bit()
- remove ext2_{set,clear,test,find_first_zero,find_next_zero}_bit()
- remove generic_hweight{32,16,8}()
- remove sched_find_first_bit()
- remove minix_{test,set,test_and_clear,test,find_first_zero}_bit()
Signed-off-by: Akinobu Mita <mita@miraclelinux.com>
Cc: Chris Zankel <chris@zankel.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-03-26 17:39:43 +08:00
|
|
|
config GENERIC_FIND_NEXT_BIT
|
|
|
|
bool
|
|
|
|
default y
|
|
|
|
|
|
|
|
config GENERIC_HWEIGHT
|
|
|
|
bool
|
|
|
|
default y
|
|
|
|
|
2005-06-24 13:01:10 +08:00
|
|
|
config GENERIC_HARDIRQS
|
|
|
|
bool
|
|
|
|
default y
|
|
|
|
|
2006-12-08 18:37:49 +08:00
|
|
|
config ARCH_HAS_ILOG2_U32
|
|
|
|
bool
|
|
|
|
default n
|
|
|
|
|
|
|
|
config ARCH_HAS_ILOG2_U64
|
|
|
|
bool
|
|
|
|
default n
|
|
|
|
|
2007-02-11 23:41:31 +08:00
|
|
|
config NO_IOPORT
|
|
|
|
def_bool y
|
|
|
|
|
avoid overflows in kernel/time.c
When the conversion factor between jiffies and milli- or microseconds is
not a single multiply or divide, as for the case of HZ == 300, we currently
do a multiply followed by a divide. The intervening result, however, is
subject to overflows, especially since the fraction is not simplified (for
HZ == 300, we multiply by 300 and divide by 1000).
This is exposed to the user when passing a large timeout to poll(), for
example.
This patch replaces the multiply-divide with a reciprocal multiplication on
32-bit platforms. When the input is an unsigned long, there is no portable
way to do this on 64-bit platforms there is no portable way to do this
since it requires a 128-bit intermediate result (which gcc does support on
64-bit platforms but may generate libgcc calls, e.g. on 64-bit s390), but
since the output is a 32-bit integer in the cases affected, just simplify
the multiply-divide (*3/10 instead of *300/1000).
The reciprocal multiply used can have off-by-one errors in the upper half
of the valid output range. This could be avoided at the expense of having
to deal with a potential 65-bit intermediate result. Since the intent is
to avoid overflow problems and most of the other time conversions are only
semiexact, the off-by-one errors were considered an acceptable tradeoff.
At Ralf Baechle's suggestion, this version uses a Perl script to compute
the necessary constants. We already have dependencies on Perl for kernel
compiles. This does, however, require the Perl module Math::BigInt, which
is included in the standard Perl distribution starting with version 5.8.0.
In order to support older versions of Perl, include a table of canned
constants in the script itself, and structure the script so that
Math::BigInt isn't required if pulling values from said table.
Running the script requires that the HZ value is available from the
Makefile. Thus, this patch also adds the Kconfig variable CONFIG_HZ to the
architectures which didn't already have it (alpha, cris, frv, h8300, m32r,
m68k, m68knommu, sparc, v850, and xtensa.) It does *not* touch the sh or
sh64 architectures, since Paul Mundt has dealt with those separately in the
sh tree.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
Cc: Ralf Baechle <ralf@linux-mips.org>,
Cc: Sam Ravnborg <sam@ravnborg.org>,
Cc: Paul Mundt <lethal@linux-sh.org>,
Cc: Richard Henderson <rth@twiddle.net>,
Cc: Michael Starvik <starvik@axis.com>,
Cc: David Howells <dhowells@redhat.com>,
Cc: Yoshinori Sato <ysato@users.sourceforge.jp>,
Cc: Hirokazu Takata <takata@linux-m32r.org>,
Cc: Geert Uytterhoeven <geert@linux-m68k.org>,
Cc: Roman Zippel <zippel@linux-m68k.org>,
Cc: William L. Irwin <sparclinux@vger.kernel.org>,
Cc: Chris Zankel <chris@zankel.net>,
Cc: H. Peter Anvin <hpa@zytor.com>,
Cc: Jan Engelhardt <jengelh@computergmbh.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2008-02-08 20:21:26 +08:00
|
|
|
config HZ
|
|
|
|
int
|
|
|
|
default 100
|
|
|
|
|
2005-06-24 13:01:10 +08:00
|
|
|
source "init/Kconfig"
|
|
|
|
|
|
|
|
menu "Processor type and features"
|
|
|
|
|
|
|
|
choice
|
|
|
|
prompt "Xtensa Processor Configuration"
|
2006-12-10 18:18:48 +08:00
|
|
|
default XTENSA_VARIANT_FSF
|
2005-06-24 13:01:10 +08:00
|
|
|
|
2006-12-10 18:18:48 +08:00
|
|
|
config XTENSA_VARIANT_FSF
|
|
|
|
bool "fsf"
|
2005-06-24 13:01:10 +08:00
|
|
|
endchoice
|
|
|
|
|
|
|
|
config MMU
|
|
|
|
bool
|
|
|
|
default y
|
|
|
|
|
|
|
|
config XTENSA_UNALIGNED_USER
|
|
|
|
bool "Unaligned memory access in use space"
|
|
|
|
---help---
|
|
|
|
The Xtensa architecture currently does not handle unaligned
|
|
|
|
memory accesses in hardware but through an exception handler.
|
|
|
|
Per default, unaligned memory accesses are disabled in user space.
|
|
|
|
|
|
|
|
Say Y here to enable unaligned memory access in user space.
|
|
|
|
|
|
|
|
config PREEMPT
|
|
|
|
bool "Preemptible Kernel"
|
|
|
|
---help---
|
|
|
|
This option reduces the latency of the kernel when reacting to
|
|
|
|
real-time or interactive events by allowing a low priority process to
|
|
|
|
be preempted even if it is in kernel mode executing a system call.
|
|
|
|
Unfortunately the kernel code has some race conditions if both
|
|
|
|
CONFIG_SMP and CONFIG_PREEMPT are enabled, so this option is
|
|
|
|
currently disabled if you are building an SMP kernel.
|
|
|
|
|
|
|
|
Say Y here if you are building a kernel for a desktop, embedded
|
|
|
|
or real-time system. Say N if you are unsure.
|
|
|
|
|
|
|
|
config MATH_EMULATION
|
|
|
|
bool "Math emulation"
|
|
|
|
help
|
|
|
|
Can we use information of configuration file?
|
|
|
|
|
|
|
|
config HIGHMEM
|
|
|
|
bool "High memory support"
|
|
|
|
|
|
|
|
endmenu
|
|
|
|
|
|
|
|
menu "Platform options"
|
|
|
|
|
|
|
|
choice
|
|
|
|
prompt "Xtensa System Type"
|
|
|
|
default XTENSA_PLATFORM_ISS
|
|
|
|
|
|
|
|
config XTENSA_PLATFORM_ISS
|
|
|
|
bool "ISS"
|
|
|
|
help
|
|
|
|
ISS is an acronym for Tensilica's Instruction Set Simulator.
|
|
|
|
|
|
|
|
config XTENSA_PLATFORM_XT2000
|
|
|
|
bool "XT2000"
|
|
|
|
help
|
|
|
|
XT2000 is the name of Tensilica's feature-rich emulation platform.
|
|
|
|
This hardware is capable of running a full Linux distribution.
|
|
|
|
|
|
|
|
endchoice
|
|
|
|
|
|
|
|
|
|
|
|
config XTENSA_CALIBRATE_CCOUNT
|
|
|
|
bool "Auto calibration of the CPU clock rate"
|
|
|
|
---help---
|
|
|
|
On some platforms (XT2000, for example), the CPU clock rate can
|
|
|
|
vary. The frequency can be determined, however, by measuring
|
|
|
|
against a well known, fixed frequency, such as an UART oscillator.
|
|
|
|
|
|
|
|
config XTENSA_CPU_CLOCK
|
|
|
|
int "CPU clock rate [MHz]"
|
|
|
|
depends on !XTENSA_CALIBRATE_CCOUNT
|
|
|
|
default "16"
|
|
|
|
|
|
|
|
config GENERIC_CALIBRATE_DELAY
|
|
|
|
bool "Auto calibration of the BogoMIPS value"
|
|
|
|
---help---
|
2005-06-30 17:58:58 +08:00
|
|
|
The BogoMIPS value can easily be derived from the CPU frequency.
|
2005-06-24 13:01:10 +08:00
|
|
|
|
|
|
|
config CMDLINE_BOOL
|
|
|
|
bool "Default bootloader kernel arguments"
|
|
|
|
|
|
|
|
config CMDLINE
|
|
|
|
string "Initial kernel command string"
|
|
|
|
depends on CMDLINE_BOOL
|
|
|
|
default "console=ttyS0,38400 root=/dev/ram"
|
|
|
|
help
|
|
|
|
On some architectures (EBSA110 and CATS), there is currently no way
|
|
|
|
for the boot loader to pass arguments to the kernel. For these
|
|
|
|
architectures, you should supply some command-line options at build
|
|
|
|
time by entering them here. As a minimum, you should specify the
|
|
|
|
memory size and the root device (e.g., mem=64M root=/dev/nfs).
|
|
|
|
|
|
|
|
config SERIAL_CONSOLE
|
|
|
|
bool
|
|
|
|
depends on XTENSA_PLATFORM_ISS
|
|
|
|
default y
|
|
|
|
|
|
|
|
config XTENSA_ISS_NETWORK
|
|
|
|
bool
|
|
|
|
depends on XTENSA_PLATFORM_ISS
|
|
|
|
default y
|
|
|
|
|
2005-06-30 17:58:58 +08:00
|
|
|
source "mm/Kconfig"
|
|
|
|
|
2005-06-24 13:01:10 +08:00
|
|
|
endmenu
|
|
|
|
|
|
|
|
menu "Bus options"
|
|
|
|
|
|
|
|
config PCI
|
|
|
|
bool "PCI support" if !XTENSA_PLATFORM_ISS
|
|
|
|
depends on !XTENSA_PLATFORM_ISS
|
|
|
|
default y
|
|
|
|
help
|
|
|
|
Find out whether you have a PCI motherboard. PCI is the name of a
|
|
|
|
bus system, i.e. the way the CPU talks to the other stuff inside
|
|
|
|
your box. Other bus systems are ISA, EISA, MicroChannel (MCA) or
|
|
|
|
VESA. If you have PCI, say Y, otherwise N.
|
|
|
|
|
|
|
|
source "drivers/pci/Kconfig"
|
|
|
|
|
|
|
|
config HOTPLUG
|
|
|
|
|
|
|
|
bool "Support for hot-pluggable devices"
|
|
|
|
---help---
|
|
|
|
Say Y here if you want to plug devices into your computer while
|
|
|
|
the system is running, and be able to use them quickly. In many
|
|
|
|
cases, the devices can likewise be unplugged at any time too.
|
|
|
|
|
|
|
|
One well known example of this is PCMCIA- or PC-cards, credit-card
|
|
|
|
size devices such as network cards, modems or hard drives which are
|
|
|
|
plugged into slots found on all modern laptop computers. Another
|
|
|
|
example, used on modern desktops as well as laptops, is USB.
|
|
|
|
|
|
|
|
Enable HOTPLUG and KMOD, and build a modular kernel. Get agent
|
|
|
|
software (at <http://linux-hotplug.sourceforge.net/>) and install it.
|
|
|
|
Then your kernel will automatically call out to a user mode "policy
|
|
|
|
agent" (/sbin/hotplug) to load modules and set up software needed
|
|
|
|
to use devices as you hotplug them.
|
|
|
|
|
|
|
|
source "drivers/pcmcia/Kconfig"
|
|
|
|
|
|
|
|
source "drivers/pci/hotplug/Kconfig"
|
|
|
|
|
|
|
|
endmenu
|
|
|
|
|
2006-10-04 04:36:44 +08:00
|
|
|
menu "Executable file formats"
|
2005-06-24 13:01:10 +08:00
|
|
|
|
|
|
|
# only elf supported
|
|
|
|
config KCORE_ELF
|
|
|
|
bool
|
|
|
|
depends on PROC_FS
|
|
|
|
default y
|
|
|
|
help
|
|
|
|
If you enabled support for /proc file system then the file
|
|
|
|
/proc/kcore will contain the kernel core image in ELF format. This
|
|
|
|
can be used in gdb:
|
|
|
|
|
|
|
|
$ cd /usr/src/linux ; gdb vmlinux /proc/kcore
|
|
|
|
|
|
|
|
This is especially useful if you have compiled the kernel with the
|
|
|
|
"-g" option to preserve debugging information. It is mainly used
|
|
|
|
for examining kernel data structures on the live kernel.
|
|
|
|
|
|
|
|
source "fs/Kconfig.binfmt"
|
|
|
|
|
|
|
|
endmenu
|
|
|
|
|
2005-07-12 12:03:49 +08:00
|
|
|
source "net/Kconfig"
|
|
|
|
|
2005-06-24 13:01:10 +08:00
|
|
|
source "drivers/Kconfig"
|
|
|
|
|
|
|
|
source "fs/Kconfig"
|
|
|
|
|
|
|
|
menu "Xtensa initrd options"
|
|
|
|
depends on BLK_DEV_INITRD
|
|
|
|
|
|
|
|
config EMBEDDED_RAMDISK
|
|
|
|
bool "Embed root filesystem ramdisk into the kernel"
|
|
|
|
|
|
|
|
config EMBEDDED_RAMDISK_IMAGE
|
2006-10-04 04:36:44 +08:00
|
|
|
string "Filename of gzipped ramdisk image"
|
2005-06-24 13:01:10 +08:00
|
|
|
depends on EMBEDDED_RAMDISK
|
|
|
|
default "ramdisk.gz"
|
|
|
|
help
|
|
|
|
This is the filename of the ramdisk image to be built into the
|
|
|
|
kernel. Relative pathnames are relative to arch/xtensa/boot/ramdisk/.
|
|
|
|
The ramdisk image is not part of the kernel distribution; you must
|
|
|
|
provide one yourself.
|
|
|
|
endmenu
|
|
|
|
|
|
|
|
source "arch/xtensa/Kconfig.debug"
|
|
|
|
|
|
|
|
source "security/Kconfig"
|
|
|
|
|
|
|
|
source "crypto/Kconfig"
|
|
|
|
|
|
|
|
source "lib/Kconfig"
|
|
|
|
|
|
|
|
|