|  | config ZONE_DMA | 
|  | def_bool y | 
|  |  | 
|  | config XTENSA | 
|  | def_bool y | 
|  | select ARCH_WANT_FRAME_POINTERS | 
|  | select ARCH_WANT_IPC_PARSE_VERSION | 
|  | select ARCH_WANT_OPTIONAL_GPIOLIB | 
|  | select BUILDTIME_EXTABLE_SORT | 
|  | select CLONE_BACKWARDS | 
|  | select COMMON_CLK | 
|  | select GENERIC_ATOMIC64 | 
|  | select GENERIC_CLOCKEVENTS | 
|  | select GENERIC_IRQ_SHOW | 
|  | select GENERIC_PCI_IOMAP | 
|  | select GENERIC_SCHED_CLOCK | 
|  | select HAVE_FUNCTION_TRACER | 
|  | select HAVE_IRQ_TIME_ACCOUNTING | 
|  | select HAVE_OPROFILE | 
|  | select HAVE_PERF_EVENTS | 
|  | select IRQ_DOMAIN | 
|  | select MODULES_USE_ELF_RELA | 
|  | select VIRT_TO_BUS | 
|  | 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://www.linux-xtensa.org/>. | 
|  |  | 
|  | config RWSEM_XCHGADD_ALGORITHM | 
|  | def_bool y | 
|  |  | 
|  | config GENERIC_HWEIGHT | 
|  | def_bool y | 
|  |  | 
|  | config ARCH_HAS_ILOG2_U32 | 
|  | def_bool n | 
|  |  | 
|  | config ARCH_HAS_ILOG2_U64 | 
|  | def_bool n | 
|  |  | 
|  | config NO_IOPORT_MAP | 
|  | def_bool n | 
|  |  | 
|  | config HZ | 
|  | int | 
|  | default 100 | 
|  |  | 
|  | source "init/Kconfig" | 
|  | source "kernel/Kconfig.freezer" | 
|  |  | 
|  | config LOCKDEP_SUPPORT | 
|  | def_bool y | 
|  |  | 
|  | config STACKTRACE_SUPPORT | 
|  | def_bool y | 
|  |  | 
|  | config TRACE_IRQFLAGS_SUPPORT | 
|  | def_bool y | 
|  |  | 
|  | config MMU | 
|  | bool | 
|  | default n if !XTENSA_VARIANT_CUSTOM | 
|  | default XTENSA_VARIANT_MMU if XTENSA_VARIANT_CUSTOM | 
|  |  | 
|  | config VARIANT_IRQ_SWITCH | 
|  | def_bool n | 
|  |  | 
|  | config HAVE_XTENSA_GPIO32 | 
|  | def_bool n | 
|  |  | 
|  | config MAY_HAVE_SMP | 
|  | def_bool n | 
|  |  | 
|  | menu "Processor type and features" | 
|  |  | 
|  | choice | 
|  | prompt "Xtensa Processor Configuration" | 
|  | default XTENSA_VARIANT_FSF | 
|  |  | 
|  | config XTENSA_VARIANT_FSF | 
|  | bool "fsf - default (not generic) configuration" | 
|  | select MMU | 
|  |  | 
|  | config XTENSA_VARIANT_DC232B | 
|  | bool "dc232b - Diamond 232L Standard Core Rev.B (LE)" | 
|  | select MMU | 
|  | select HAVE_XTENSA_GPIO32 | 
|  | help | 
|  | This variant refers to Tensilica's Diamond 232L Standard core Rev.B (LE). | 
|  |  | 
|  | config XTENSA_VARIANT_DC233C | 
|  | bool "dc233c - Diamond 233L Standard Core Rev.C (LE)" | 
|  | select MMU | 
|  | select HAVE_XTENSA_GPIO32 | 
|  | help | 
|  | This variant refers to Tensilica's Diamond 233L Standard core Rev.C (LE). | 
|  |  | 
|  | config XTENSA_VARIANT_CUSTOM | 
|  | bool "Custom Xtensa processor configuration" | 
|  | select MAY_HAVE_SMP | 
|  | select HAVE_XTENSA_GPIO32 | 
|  | help | 
|  | Select this variant to use a custom Xtensa processor configuration. | 
|  | You will be prompted for a processor variant CORENAME. | 
|  | endchoice | 
|  |  | 
|  | config XTENSA_VARIANT_CUSTOM_NAME | 
|  | string "Xtensa Processor Custom Core Variant Name" | 
|  | depends on XTENSA_VARIANT_CUSTOM | 
|  | help | 
|  | Provide the name of a custom Xtensa processor variant. | 
|  | This CORENAME selects arch/xtensa/variant/CORENAME. | 
|  | Dont forget you have to select MMU if you have one. | 
|  |  | 
|  | config XTENSA_VARIANT_NAME | 
|  | string | 
|  | default "dc232b"			if XTENSA_VARIANT_DC232B | 
|  | default "dc233c"			if XTENSA_VARIANT_DC233C | 
|  | default "fsf"				if XTENSA_VARIANT_FSF | 
|  | default XTENSA_VARIANT_CUSTOM_NAME	if XTENSA_VARIANT_CUSTOM | 
|  |  | 
|  | config XTENSA_VARIANT_MMU | 
|  | bool "Core variant has a Full MMU (TLB, Pages, Protection, etc)" | 
|  | depends on XTENSA_VARIANT_CUSTOM | 
|  | default y | 
|  | help | 
|  | Build a Conventional Kernel with full MMU support, | 
|  | ie: it supports a TLB with auto-loading, page protection. | 
|  |  | 
|  | 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. | 
|  |  | 
|  | source "kernel/Kconfig.preempt" | 
|  |  | 
|  | config HAVE_SMP | 
|  | bool "System Supports SMP (MX)" | 
|  | depends on MAY_HAVE_SMP | 
|  | select XTENSA_MX | 
|  | help | 
|  | This option is use to indicate that the system-on-a-chip (SOC) | 
|  | supports Multiprocessing. Multiprocessor support implemented above | 
|  | the CPU core definition and currently needs to be selected manually. | 
|  |  | 
|  | Multiprocessor support in implemented with external cache and | 
|  | interrupt controlers. | 
|  |  | 
|  | The MX interrupt distributer adds Interprocessor Interrupts | 
|  | and causes the IRQ numbers to be increased by 4 for devices | 
|  | like the open cores ethernet driver and the serial interface. | 
|  |  | 
|  | You still have to select "Enable SMP" to enable SMP on this SOC. | 
|  |  | 
|  | config SMP | 
|  | bool "Enable Symmetric multi-processing support" | 
|  | depends on HAVE_SMP | 
|  | select GENERIC_SMP_IDLE_THREAD | 
|  | help | 
|  | Enabled SMP Software; allows more than one CPU/CORE | 
|  | to be activated during startup. | 
|  |  | 
|  | config NR_CPUS | 
|  | depends on SMP | 
|  | int "Maximum number of CPUs (2-32)" | 
|  | range 2 32 | 
|  | default "4" | 
|  |  | 
|  | config HOTPLUG_CPU | 
|  | bool "Enable CPU hotplug support" | 
|  | depends on SMP | 
|  | help | 
|  | Say Y here to allow turning CPUs off and on. CPUs can be | 
|  | controlled through /sys/devices/system/cpu. | 
|  |  | 
|  | Say N if you want to disable CPU hotplug. | 
|  |  | 
|  | config INITIALIZE_XTENSA_MMU_INSIDE_VMLINUX | 
|  | bool "Initialize Xtensa MMU inside the Linux kernel code" | 
|  | default y | 
|  | help | 
|  | Earlier version initialized the MMU in the exception vector | 
|  | before jumping to _startup in head.S and had an advantage that | 
|  | it was possible to place a software breakpoint at 'reset' and | 
|  | then enter your normal kernel breakpoints once the MMU was mapped | 
|  | to the kernel mappings (0XC0000000). | 
|  |  | 
|  | This unfortunately doesn't work for U-Boot and likley also wont | 
|  | work for using KEXEC to have a hot kernel ready for doing a | 
|  | KDUMP. | 
|  |  | 
|  | So now the MMU is initialized in head.S but it's necessary to | 
|  | use hardware breakpoints (gdb 'hbreak' cmd) to break at _startup. | 
|  | xt-gdb can't place a Software Breakpoint in the  0XD region prior | 
|  | to mapping the MMU and after mapping even if the area of low memory | 
|  | was mapped gdb wouldn't remove the breakpoint on hitting it as the | 
|  | PC wouldn't match. Since Hardware Breakpoints are recommended for | 
|  | Linux configurations it seems reasonable to just assume they exist | 
|  | and leave this older mechanism for unfortunate souls that choose | 
|  | not to follow Tensilica's recommendation. | 
|  |  | 
|  | Selecting this will cause U-Boot to set the KERNEL Load and Entry | 
|  | address at 0x00003000 instead of the mapped std of 0xD0003000. | 
|  |  | 
|  | If in doubt, say Y. | 
|  |  | 
|  | config HIGHMEM | 
|  | bool "High Memory Support" | 
|  | depends on MMU | 
|  | help | 
|  | Linux can use the full amount of RAM in the system by | 
|  | default. However, the default MMUv2 setup only maps the | 
|  | lowermost 128 MB of memory linearly to the areas starting | 
|  | at 0xd0000000 (cached) and 0xd8000000 (uncached). | 
|  | When there are more than 128 MB memory in the system not | 
|  | all of it can be "permanently mapped" by the kernel. | 
|  | The physical memory that's not permanently mapped is called | 
|  | "high memory". | 
|  |  | 
|  | If you are compiling a kernel which will never run on a | 
|  | machine with more than 128 MB total physical RAM, answer | 
|  | N here. | 
|  |  | 
|  | If unsure, say Y. | 
|  |  | 
|  | config FAST_SYSCALL_XTENSA | 
|  | bool "Enable fast atomic syscalls" | 
|  | default n | 
|  | help | 
|  | fast_syscall_xtensa is a syscall that can make atomic operations | 
|  | on UP kernel when processor has no s32c1i support. | 
|  |  | 
|  | This syscall is deprecated. It may have issues when called with | 
|  | invalid arguments. It is provided only for backwards compatibility. | 
|  | Only enable it if your userspace software requires it. | 
|  |  | 
|  | If unsure, say N. | 
|  |  | 
|  | config FAST_SYSCALL_SPILL_REGISTERS | 
|  | bool "Enable spill registers syscall" | 
|  | default n | 
|  | help | 
|  | fast_syscall_spill_registers is a syscall that spills all active | 
|  | register windows of a calling userspace task onto its stack. | 
|  |  | 
|  | This syscall is deprecated. It may have issues when called with | 
|  | invalid arguments. It is provided only for backwards compatibility. | 
|  | Only enable it if your userspace software requires it. | 
|  |  | 
|  | If unsure, say N. | 
|  |  | 
|  | 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 | 
|  |  | 
|  | 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" | 
|  |  | 
|  | endmenu | 
|  |  | 
|  | menu "Platform options" | 
|  |  | 
|  | choice | 
|  | prompt "Xtensa System Type" | 
|  | default XTENSA_PLATFORM_ISS | 
|  |  | 
|  | config XTENSA_PLATFORM_ISS | 
|  | bool "ISS" | 
|  | select XTENSA_CALIBRATE_CCOUNT | 
|  | select SERIAL_CONSOLE | 
|  | help | 
|  | ISS is an acronym for Tensilica's Instruction Set Simulator. | 
|  |  | 
|  | config XTENSA_PLATFORM_XT2000 | 
|  | bool "XT2000" | 
|  | select HAVE_IDE | 
|  | help | 
|  | XT2000 is the name of Tensilica's feature-rich emulation platform. | 
|  | This hardware is capable of running a full Linux distribution. | 
|  |  | 
|  | config XTENSA_PLATFORM_XTFPGA | 
|  | bool "XTFPGA" | 
|  | select ETHOC if ETHERNET | 
|  | select PLATFORM_WANT_DEFAULT_MEM | 
|  | select SERIAL_CONSOLE | 
|  | select XTENSA_CALIBRATE_CCOUNT | 
|  | help | 
|  | XTFPGA is the name of Tensilica board family (LX60, LX110, LX200, ML605). | 
|  | This hardware is capable of running a full Linux distribution. | 
|  |  | 
|  | endchoice | 
|  |  | 
|  |  | 
|  | 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 be 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 USE_OF | 
|  | bool "Flattened Device Tree support" | 
|  | select OF | 
|  | select OF_EARLY_FLATTREE | 
|  | help | 
|  | Include support for flattened device tree machine descriptions. | 
|  |  | 
|  | config BUILTIN_DTB | 
|  | string "DTB to build into the kernel image" | 
|  | depends on OF | 
|  |  | 
|  | config BLK_DEV_SIMDISK | 
|  | tristate "Host file-based simulated block device support" | 
|  | default n | 
|  | depends on XTENSA_PLATFORM_ISS && BLOCK | 
|  | help | 
|  | Create block devices that map to files in the host file system. | 
|  | Device binding to host file may be changed at runtime via proc | 
|  | interface provided the device is not in use. | 
|  |  | 
|  | config BLK_DEV_SIMDISK_COUNT | 
|  | int "Number of host file-based simulated block devices" | 
|  | range 1 10 | 
|  | depends on BLK_DEV_SIMDISK | 
|  | default 2 | 
|  | help | 
|  | This is the default minimal number of created block devices. | 
|  | Kernel/module parameter 'simdisk_count' may be used to change this | 
|  | value at runtime. More file names (but no more than 10) may be | 
|  | specified as parameters, simdisk_count grows accordingly. | 
|  |  | 
|  | config SIMDISK0_FILENAME | 
|  | string "Host filename for the first simulated device" | 
|  | depends on BLK_DEV_SIMDISK = y | 
|  | default "" | 
|  | help | 
|  | Attach a first simdisk to a host file. Conventionally, this file | 
|  | contains a root file system. | 
|  |  | 
|  | config SIMDISK1_FILENAME | 
|  | string "Host filename for the second simulated device" | 
|  | depends on BLK_DEV_SIMDISK = y && BLK_DEV_SIMDISK_COUNT != 1 | 
|  | default "" | 
|  | help | 
|  | Another simulated disk in a host file for a buildroot-independent | 
|  | storage. | 
|  |  | 
|  | source "mm/Kconfig" | 
|  |  | 
|  | source "drivers/pcmcia/Kconfig" | 
|  |  | 
|  | source "drivers/pci/hotplug/Kconfig" | 
|  |  | 
|  | config PLATFORM_WANT_DEFAULT_MEM | 
|  | def_bool n | 
|  |  | 
|  | config DEFAULT_MEM_START | 
|  | hex "Physical address of the default memory area start" | 
|  | depends on PLATFORM_WANT_DEFAULT_MEM | 
|  | default 0x00000000 if MMU | 
|  | default 0x40000000 if !MMU | 
|  | help | 
|  | This is a fallback start address of the default memory area, it is | 
|  | used when no physical memory size is passed through DTB or through | 
|  | boot parameter from bootloader. | 
|  |  | 
|  | In noMMU configuration the following parameters are derived from it: | 
|  | - kernel load address; | 
|  | - kernel entry point address; | 
|  | - relocatable vectors base address; | 
|  | - uBoot load address; | 
|  | - TASK_SIZE. | 
|  |  | 
|  | If unsure, leave the default value here. | 
|  |  | 
|  | config DEFAULT_MEM_SIZE | 
|  | hex "Maximal size of the default memory area" | 
|  | depends on PLATFORM_WANT_DEFAULT_MEM | 
|  | default 0x04000000 | 
|  | help | 
|  | This is a fallback size of the default memory area, it is used when | 
|  | no physical memory size is passed through DTB or through boot | 
|  | parameter from bootloader. | 
|  |  | 
|  | It's also used for TASK_SIZE calculation in noMMU configuration. | 
|  |  | 
|  | If unsure, leave the default value here. | 
|  |  | 
|  | config XTFPGA_LCD | 
|  | bool "Enable XTFPGA LCD driver" | 
|  | depends on XTENSA_PLATFORM_XTFPGA | 
|  | default n | 
|  | help | 
|  | There's a 2x16 LCD on most of XTFPGA boards, kernel may output | 
|  | progress messages there during bootup/shutdown. It may be useful | 
|  | during board bringup. | 
|  |  | 
|  | If unsure, say N. | 
|  |  | 
|  | config XTFPGA_LCD_BASE_ADDR | 
|  | hex "XTFPGA LCD base address" | 
|  | depends on XTFPGA_LCD | 
|  | default "0x0d0c0000" | 
|  | help | 
|  | Base address of the LCD controller inside KIO region. | 
|  | Different boards from XTFPGA family have LCD controller at different | 
|  | addresses. Please consult prototyping user guide for your board for | 
|  | the correct address. Wrong address here may lead to hardware lockup. | 
|  |  | 
|  | config XTFPGA_LCD_8BIT_ACCESS | 
|  | bool "Use 8-bit access to XTFPGA LCD" | 
|  | depends on XTFPGA_LCD | 
|  | default n | 
|  | help | 
|  | LCD may be connected with 4- or 8-bit interface, 8-bit access may | 
|  | only be used with 8-bit interface. Please consult prototyping user | 
|  | guide for your board for the correct interface width. | 
|  |  | 
|  | endmenu | 
|  |  | 
|  | menu "Executable file formats" | 
|  |  | 
|  | source "fs/Kconfig.binfmt" | 
|  |  | 
|  | endmenu | 
|  |  | 
|  | menu "Power management options" | 
|  |  | 
|  | source "kernel/power/Kconfig" | 
|  |  | 
|  | endmenu | 
|  |  | 
|  | source "net/Kconfig" | 
|  |  | 
|  | source "drivers/Kconfig" | 
|  |  | 
|  | source "fs/Kconfig" | 
|  |  | 
|  | source "arch/xtensa/Kconfig.debug" | 
|  |  | 
|  | source "security/Kconfig" | 
|  |  | 
|  | source "crypto/Kconfig" | 
|  |  | 
|  | source "lib/Kconfig" | 
|  |  | 
|  |  |