Commit 35f9cd08 authored by Johannes Weiner's avatar Johannes Weiner Committed by Chris Zankel

xtensa: beat Kconfig into shape

Instead of making support code depend on variants or platforms, the
latter should select what they need explicitely.

Otherwise this starts looking weird when support code depends on
!XTENSA_PLATFORM_FOO && !XTENSA_PLATFORM_BAR etc.

This also includes some minor fixlets like converting bool and default
to def_bool and fixing indentation and whitespace errors.
Signed-off-by: default avatarJohannes Weiner <jw@emlix.com>
Signed-off-by: default avatarChris Zankel <chris@zankel.net>
parent 4f682fbb
...@@ -4,16 +4,13 @@ ...@@ -4,16 +4,13 @@
mainmenu "Linux/Xtensa Kernel Configuration" mainmenu "Linux/Xtensa Kernel Configuration"
config FRAME_POINTER config FRAME_POINTER
bool def_bool n
default n
config ZONE_DMA config ZONE_DMA
bool def_bool y
default y
config XTENSA config XTENSA
bool def_bool y
default y
select HAVE_IDE select HAVE_IDE
help help
Xtensa processors are 32-bit RISC machines designed by Tensilica Xtensa processors are 32-bit RISC machines designed by Tensilica
...@@ -24,28 +21,22 @@ config XTENSA ...@@ -24,28 +21,22 @@ config XTENSA
a home page at <http://xtensa.sourceforge.net/>. a home page at <http://xtensa.sourceforge.net/>.
config RWSEM_XCHGADD_ALGORITHM config RWSEM_XCHGADD_ALGORITHM
bool def_bool y
default y
config GENERIC_FIND_NEXT_BIT config GENERIC_FIND_NEXT_BIT
bool def_bool y
default y
config GENERIC_HWEIGHT config GENERIC_HWEIGHT
bool def_bool y
default y
config GENERIC_HARDIRQS config GENERIC_HARDIRQS
bool def_bool y
default y
config ARCH_HAS_ILOG2_U32 config ARCH_HAS_ILOG2_U32
bool def_bool n
default n
config ARCH_HAS_ILOG2_U64 config ARCH_HAS_ILOG2_U64
bool def_bool n
default n
config NO_IOPORT config NO_IOPORT
def_bool y def_bool y
...@@ -57,6 +48,9 @@ config HZ ...@@ -57,6 +48,9 @@ config HZ
source "init/Kconfig" source "init/Kconfig"
source "kernel/Kconfig.freezer" source "kernel/Kconfig.freezer"
config MMU
def_bool n
menu "Processor type and features" menu "Processor type and features"
choice choice
...@@ -65,38 +59,36 @@ choice ...@@ -65,38 +59,36 @@ choice
config XTENSA_VARIANT_FSF config XTENSA_VARIANT_FSF
bool "fsf - default (not generic) configuration" bool "fsf - default (not generic) configuration"
select MMU
config XTENSA_VARIANT_DC232B config XTENSA_VARIANT_DC232B
bool "dc232b - Diamond 232L Standard Core Rev.B (LE)" bool "dc232b - Diamond 232L Standard Core Rev.B (LE)"
select MMU
help help
This variant refers to Tensilica's Diamond 232L Standard core Rev.B (LE). This variant refers to Tensilica's Diamond 232L Standard core Rev.B (LE).
endchoice endchoice
config MMU
bool
default y
config XTENSA_UNALIGNED_USER config XTENSA_UNALIGNED_USER
bool "Unaligned memory access in use space" bool "Unaligned memory access in use space"
---help--- help
The Xtensa architecture currently does not handle unaligned The Xtensa architecture currently does not handle unaligned
memory accesses in hardware but through an exception handler. memory accesses in hardware but through an exception handler.
Per default, unaligned memory accesses are disabled in user space. Per default, unaligned memory accesses are disabled in user space.
Say Y here to enable unaligned memory access in user space. Say Y here to enable unaligned memory access in user space.
config PREEMPT config PREEMPT
bool "Preemptible Kernel" bool "Preemptible Kernel"
---help--- help
This option reduces the latency of the kernel when reacting to This option reduces the latency of the kernel when reacting to
real-time or interactive events by allowing a low priority process 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. be preempted even if it is in kernel mode executing a system call.
Unfortunately the kernel code has some race conditions if both Unfortunately the kernel code has some race conditions if both
CONFIG_SMP and CONFIG_PREEMPT are enabled, so this option is CONFIG_SMP and CONFIG_PREEMPT are enabled, so this option is
currently disabled if you are building an SMP kernel. currently disabled if you are building an SMP kernel.
Say Y here if you are building a kernel for a desktop, embedded Say Y here if you are building a kernel for a desktop, embedded
or real-time system. Say N if you are unsure. or real-time system. Say N if you are unsure.
config MATH_EMULATION config MATH_EMULATION
bool "Math emulation" bool "Math emulation"
...@@ -105,6 +97,32 @@ config MATH_EMULATION ...@@ -105,6 +97,32 @@ config MATH_EMULATION
endmenu endmenu
config XTENSA_CALIBRATE_CCOUNT
def_bool n
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 SERIAL_CONSOLE
def_bool n
config XTENSA_ISS_NETWORK
def_bool n
menu "Bus options"
config PCI
bool "PCI support"
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"
menu "Platform options" menu "Platform options"
choice choice
...@@ -113,11 +131,16 @@ choice ...@@ -113,11 +131,16 @@ choice
config XTENSA_PLATFORM_ISS config XTENSA_PLATFORM_ISS
bool "ISS" bool "ISS"
select XTENSA_CALIBRATE_CCOUNT
select SERIAL_CONSOLE
select XTENSA_ISS_NETWORK
help help
ISS is an acronym for Tensilica's Instruction Set Simulator. ISS is an acronym for Tensilica's Instruction Set Simulator.
config XTENSA_PLATFORM_XT2000 config XTENSA_PLATFORM_XT2000
bool "XT2000" bool "XT2000"
select XTENSA_CALIBRATE_CCOUNT
select PCI
help help
XT2000 is the name of Tensilica's feature-rich emulation platform. XT2000 is the name of Tensilica's feature-rich emulation platform.
This hardware is capable of running a full Linux distribution. This hardware is capable of running a full Linux distribution.
...@@ -125,21 +148,14 @@ config XTENSA_PLATFORM_XT2000 ...@@ -125,21 +148,14 @@ config XTENSA_PLATFORM_XT2000
endchoice 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 config XTENSA_CPU_CLOCK
int "CPU clock rate [MHz]" int "CPU clock rate [MHz]"
depends on !XTENSA_CALIBRATE_CCOUNT depends on !XTENSA_CALIBRATE_CCOUNT
default "16" default 16
config GENERIC_CALIBRATE_DELAY config GENERIC_CALIBRATE_DELAY
bool "Auto calibration of the BogoMIPS value" bool "Auto calibration of the BogoMIPS value"
---help--- help
The BogoMIPS value can easily be derived from the CPU frequency. The BogoMIPS value can easily be derived from the CPU frequency.
config CMDLINE_BOOL config CMDLINE_BOOL
...@@ -156,52 +172,27 @@ config CMDLINE ...@@ -156,52 +172,27 @@ config CMDLINE
time by entering them here. As a minimum, you should specify the 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). 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
source "mm/Kconfig" source "mm/Kconfig"
endmenu endmenu
menu "Bus options" config HOTPLUG
bool "Support for hot-pluggable devices"
config PCI
bool "PCI support" if !XTENSA_PLATFORM_ISS
depends on !XTENSA_PLATFORM_ISS
default y
help help
Find out whether you have a PCI motherboard. PCI is the name of a Say Y here if you want to plug devices into your computer while
bus system, i.e. the way the CPU talks to the other stuff inside the system is running, and be able to use them quickly. In many
your box. Other bus systems are ISA, EISA, MicroChannel (MCA) or cases, the devices can likewise be unplugged at any time too.
VESA. If you have PCI, say Y, otherwise N.
source "drivers/pci/Kconfig"
config HOTPLUG 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.
bool "Support for hot-pluggable devices" Enable HOTPLUG and build a modular kernel. Get agent software
---help--- (from <http://linux-hotplug.sourceforge.net/>) and install it.
Say Y here if you want to plug devices into your computer while Then your kernel will automatically call out to a user mode "policy
the system is running, and be able to use them quickly. In many agent" (/sbin/hotplug) to load modules and set up software needed
cases, the devices can likewise be unplugged at any time too. to use devices as you hotplug them.
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 build a modular kernel. Get agent software
(from <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/pcmcia/Kconfig"
...@@ -213,9 +204,8 @@ menu "Executable file formats" ...@@ -213,9 +204,8 @@ menu "Executable file formats"
# only elf supported # only elf supported
config KCORE_ELF config KCORE_ELF
bool def_bool y
depends on PROC_FS depends on PROC_FS
default y
help help
If you enabled support for /proc file system then the file If you enabled support for /proc file system then the file
/proc/kcore will contain the kernel core image in ELF format. This /proc/kcore will contain the kernel core image in ELF format. This
...@@ -240,7 +230,7 @@ source "fs/Kconfig" ...@@ -240,7 +230,7 @@ source "fs/Kconfig"
menu "Xtensa initrd options" menu "Xtensa initrd options"
depends on BLK_DEV_INITRD depends on BLK_DEV_INITRD
config EMBEDDED_RAMDISK config EMBEDDED_RAMDISK
bool "Embed root filesystem ramdisk into the kernel" bool "Embed root filesystem ramdisk into the kernel"
config EMBEDDED_RAMDISK_IMAGE config EMBEDDED_RAMDISK_IMAGE
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment