[PATCH] xtensa: Architecture support for Tensilica Xtensa Part 1
authorChris Zankel <czankel@tensilica.com>
Fri, 24 Jun 2005 05:01:10 +0000 (22:01 -0700)
committerLinus Torvalds <torvalds@ppc970.osdl.org>
Fri, 24 Jun 2005 07:05:21 +0000 (00:05 -0700)
The attached patches provides part 1 of an architecture implementation for the
Tensilica Xtensa CPU series.

Signed-off-by: Chris Zankel <chris@zankel.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
arch/xtensa/Kconfig [new file with mode: 0644]
arch/xtensa/Kconfig.debug [new file with mode: 0644]
arch/xtensa/Makefile [new file with mode: 0644]
arch/xtensa/configs/common_defconfig [new file with mode: 0644]

diff --git a/arch/xtensa/Kconfig b/arch/xtensa/Kconfig
new file mode 100644 (file)
index 0000000..3e89767
--- /dev/null
@@ -0,0 +1,258 @@
+# For a description of the syntax of this configuration file,
+# see Documentation/kbuild/config-language.txt.
+
+mainmenu "Linux/Xtensa Kernel Configuration"
+
+config FRAME_POINTER
+       bool
+       default n
+
+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 UID16
+       bool
+       default n
+
+config RWSEM_XCHGADD_ALGORITHM
+       bool
+       default y
+
+config HAVE_DEC_LOCK
+       bool
+       default y
+
+config GENERIC_HARDIRQS
+       bool
+       default y
+
+source "init/Kconfig"
+
+menu "Processor type and features"
+
+choice
+       prompt "Xtensa Processor Configuration"
+       default XTENSA_CPU_LINUX_BE
+
+config XTENSA_CPU_LINUX_BE
+       bool "linux_be"
+       ---help---
+         The linux_be processor configuration is the baseline Xtensa
+         configurations included in this kernel and also used by
+         binutils, gcc, and gdb. It contains no TIE, no coprocessors,
+         and the following configuration options:
+
+         Code Density Option                2 Misc Special Registers
+         NSA/NSAU Instructions              128-bit Data Bus Width
+         Processor ID                       8K, 2-way I and D Caches
+         Zero-Overhead Loops                2 Inst Address Break Registers
+         Big Endian                         2 Data Address Break Registers
+         64 General-Purpose Registers       JTAG Interface and Trace Port
+         17 Interrupts                      MMU w/ TLBs and Autorefill
+         3 Interrupt Levels                 8 Autorefill Ways (I/D TLBs)
+         3 Timers                           Unaligned Exceptions
+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---
+         The BogoMIPS value can easily derived from the CPU frequency.
+
+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
+
+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.
+
+         The PCI-HOWTO, available from
+         <http://www.linuxdoc.org/docs.html#howto>, contains valuable
+         information about which PCI hardware does work under Linux and which
+         doesn't
+
+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
+
+menu "Exectuable file formats"
+
+# 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
+
+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
+       string "Filename of gziped ramdisk image"
+       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"
+
+
diff --git a/arch/xtensa/Kconfig.debug b/arch/xtensa/Kconfig.debug
new file mode 100644 (file)
index 0000000..11c5852
--- /dev/null
@@ -0,0 +1,7 @@
+menu "Kernel hacking"
+
+source "lib/Kconfig.debug"
+
+endmenu
+
+
Simple merge
Simple merge