# # For a description of the syntax of this configuration file, # see Documentation/kbuild/kconfig-language.txt. # config E2K bool default y select ARCH_HAVE_NMI_SAFE_CMPXCHG select ARCH_MIGHT_HAVE_PC_SERIO select ARCH_SUPPORTS_ATOMIC_RMW select ARCH_USE_BUILTIN_BSWAP select ARCH_USE_CMPXCHG_LOCKREF select ARCH_WANT_COMPAT_IPC_PARSE_VERSION select ARCH_WANT_FRAME_POINTERS select ARCH_WANT_IPC_PARSE_VERSION select ARCH_WANT_OPTIONAL_GPIOLIB select ARCH_THREAD_INFO_ALLOCATOR select ARCH_TASK_STRUCT_ALLOCATOR select ARCH_SUPPORTS_MSI select HAVE_CONTEXT_TRACKING select HAVE_DEBUG_BUGVERBOSE select HAVE_DEBUG_KMEMLEAK select HAVE_DYNAMIC_FTRACE select HAVE_EFFICIENT_UNALIGNED_ACCESS select HAVE_EL_POSIX_SYSCALL select HAVE_FUNCTION_TRACER select HAVE_IDE select HAVE_PERF_EVENTS select HAVE_TRACE_CLOCK select HAVE_SYSCALL_TRACEPOINTS select HAVE_KPROBES select GENERIC_IRQ_PROBE select GENERIC_IRQ_SHOW select IRQ_FORCED_THREADING select MODULES_USE_ELF_RELA select RTC_CLASS select SPARSE_IRQ select USER_STACKTRACE_SUPPORT help This is a port of Linux on Elbrus microprocessor architecture. It runs on E2K_0.5.3 machine simulator. It will also run on upcoming Elbrus 3M supercomputing system. config 64BIT def_bool y config MMU bool default y config NEED_DMA_MAP_STATE def_bool y config ZONE_DMA def_bool y config SBUS bool config UID16 bool default y config GENEREIC_FIND_FIRST_BIT def_bool y config GENERIC_FIND_NEXT_BIT def_bool y config GENERIC_CALIBRATE_DELAY bool default y config GENERIC_ISA_DMA bool default y config GENERIC_HWEIGHT def_bool y if !E2K_HAS_OPT_BITOPS config EARLY_PRINTK bool default y config ARCH_MAY_HAVE_PC_FDC bool default y config GENERIC_IOMAP bool default y config HAVE_SETUP_PER_CPU_AREA def_bool y config NEED_PER_CPU_EMBED_FIRST_CHUNK def_bool y config NEED_PER_CPU_PAGE_FIRST_CHUNK def_bool y config NEED_SG_DMA_LENGTH def_bool y config SYS_SUPPORTS_HUGETLBFS def_bool y config ARCH_SUSPEND_POSSIBLE def_bool y config ARCH_BOOT_TRACE_POSSIBLE def_bool y config HOTPLUG_CPU def_bool n depends on SMP ---help--- Say Y here to allow turning CPUs off and on. CPUs can be controlled through /sys/devices/system/cpu. ( Note: power management support will enable this option automatically on SMP systems. ) Say N if you want to disable CPU hotplug. config GENERIC_GPIO def_bool y config ARCH_HAS_DEFAULT_IDLE def_bool y config ARCH_DMA_ADDR_T_64BIT def_bool y source "init/Kconfig" menu "Processor type and features" config E2K_MACHINE_SIC bool default n config E2K_MACHINE_IOHUB bool default n config E2K_HAS_OPT_BITOPS bool default y if E2K_MACHINE && !(E2K_E3M_SIM || E2K_E3M || \ E2K_E3M_IOHUB_SIM || E2K_E3M_IOHUB) help Set this if the platform has optimized bit operations. config E2K_MACHINE bool "E2K machines support" default n help Support only specified E2K machine type If you say Y only one specified machine type will be supported by this kernel. The better way here say N to support all range of machines # Support some tracing features config E2K_ARCH def_bool y select HAVE_FTRACE_MCOUNT_RECORD select HAVE_DYNAMIC_FTRACE select HAVE_FUNCTION_TRACER select HAVE_FUNCTION_GRAPH_TRACER select HAVE_FUNCTION_TRACE_MCOUNT_TEST select TRACING_SUPPORT config LOCKDEP_SUPPORT def_bool y config STACKTRACE_SUPPORT def_bool y config HAVE_LATENCYTOP_SUPPORT def_bool y config CPU_E3M def_bool !E2K_MACHINE config CPU_E3S def_bool !E2K_MACHINE config CPU_ES2 def_bool !E2K_MACHINE config CPU_E2S def_bool !E2K_MACHINE config CPU_E8C def_bool !E2K_MACHINE config CPU_E1CP def_bool !E2K_MACHINE config CPU_E8C2 def_bool !E2K_MACHINE choice prompt "Subarchitecture Type" depends on E2K_MACHINE default E2K_E3M config E2K_E3M_SIM bool "Simulator of Elbrus 3M" select CPU_E3M help Support for Elbrus 3M systems. Say 'Y' here if this kernel is supposed to run on an Elbrus 3M system. Choose this option if you working on machine simulator ('lms'). config E2K_E3M bool "Elbrus 3M" select CPU_E3M help Support for Elbrus 3M systems. Say 'Y' here if this kernel is supposed to run on an Elbrus 3M system. Only choose this option if you have such a system, otherwise you should say N here. config E3M_FPGA_MODEL bool "E3M FPGA model" depends on E2K_E3M default n help "Frankenstein" on ALTERA FPGA chips. config E2K_E3M_IOHUB_SIM bool "Simulator of Elbrus 3M + IOHUB" select E2K_MACHINE_IOHUB # should be set always for e3m+iohub # select CPU_E3M help Support for Elbrus 3M + IOHUB (Hybrid) systems. Say 'Y' here if this kernel is supposed to run on an Elbrus 3M + IOHUB (Hybrid) system. Choose this option if you working on machine simulator ('lms'). config E2K_E3M_IOHUB bool "Elbrus 3M + IOHUB" select E2K_MACHINE_IOHUB # should be set always for e3m+iohub # select CPU_E3M help Support for Elbrus 3M + IOHUB (Hybrid) systems. Say 'Y' here if this kernel is supposed to run on an Elbrus 3M + IOHUB (Hybrid) system. Only choose this option if you have such a system, otherwise you should say N here. config E2K_E3S_SIM bool "Simulator of Elbrus 3S (NUMA, IOHUB, SIC)" select E2K_MACHINE_SIC # should be set allways for e3s # select E2K_MACHINE_IOHUB # should be set always for e3s # select CPU_E3S help Support for Elbrus 3S systems. Say 'Y' here if this kernel is supposed to run on an Elbrus 3S system. Choose this option if you working on machine simulator ('e3s_lms'). config E2K_E3S bool "Elbrus 3S (NUMA, IOHUB, SIC)" select E2K_MACHINE_SIC # should be set allways for e3s # select E2K_MACHINE_IOHUB # should be set always for e3s # select CPU_E3S help Support for Elbrus 3S systems. Say 'Y' here if this kernel is supposed to run on an Elbrus 3S system. Only choose this option if you have such a system and cannot run the kernel on other machines types, otherwise you should say N here. config E2K_ES2_DSP_SIM bool "Simulator of Elbrus e2c+ (Cubic, NUMA, 2 core, DSP, IOHUB, SIC)" select E2K_MACHINE_SIC # should be set allways for e4c+/e4c # select E2K_MACHINE_IOHUB # should be set always for e4c+/e4c # select CPU_ES2 help Support for Elbrus e2c+ (Cubic) systems. Say 'Y' here if this kernel is supposed to run on an Elbrus S2 (Cubic) system. Choose this option if you working on machine simulator ('es2_lms'). config E2K_ES2_DSP bool "Elbrus e2c+ (Cubic, NUMA, 2 core, DSP, IOHUB, SIC)" select E2K_MACHINE_SIC # should be set allways for e4c+/e4c # select E2K_MACHINE_IOHUB # should be set always for e4c+/e4c # select CPU_ES2 help Support for Elbrus e2c+ (Cubic) systems. Say 'Y' here if this kernel is supposed to run on an Elbrus S2 (Cubic) system. Only choose this option if you have such a system and cannot run the kernel on other machines types, otherwise you should say N here. config E2K_ES2_RU_SIM bool "Simulator of Elbrus e2c (Micron, NUMA, 2 core, IOHUB, SIC)" select E2K_MACHINE_SIC # should be set allways for e4c+/e4c # select E2K_MACHINE_IOHUB # should be set always for e4c/e4c+ # select CPU_ES2 help Support for Elbrus e2c (Micron) systems. Say 'Y' here if this kernel is supposed to run on an Elbrus e2c (Micron) system. Choose this option if you working on machine simulator ('es2_lms'). config E2K_ES2_RU bool "Elbrus e2c (Micron, NUMA, 2 core, IOHUB, SIC)" select E2K_MACHINE_SIC # should be set allways for e4c/e4c+ # select E2K_MACHINE_IOHUB # should be set always for e4c/e4c+ # select CPU_ES2 help Support for Elbrus e2c (Micron) systems. Say 'Y' here if this kernel is supposed to run on an Elbrus e2c (Micron) system. Only choose this option if you have such a system and cannot run the kernel on other machines types, otherwise you should say N here. config E2K_E2S_SIM bool "Simulator of Elbrus 2S (NUMA, 4 core, IOHUB, SIC)" select E2K_MACHINE_SIC # should be set allways for e2s # select E2K_MACHINE_IOHUB # should be set always for e2s # select CPU_E2S help Support for Elbrus 2S systems. Say 'Y' here if this kernel is supposed to run on an Elbrus 2S system. Choose this option if you working on machine simulator ('e2s_lms'). config E2K_E2S bool "Elbrus 2S (NUMA, 4 core, IOHUB, SIC)" select E2K_MACHINE_SIC # should be set allways for e2s # select E2K_MACHINE_IOHUB # should be set always for e2s # select CPU_E2S help Support for Elbrus 2S systems. Say 'Y' here if this kernel is supposed to run on an Elbrus 2S system. Only choose this option if you have such a system and cannot run the kernel on other machines types, otherwise you should say N here. config E2K_E8C_SIM bool "Simulator of Elbrus 8C (NUMA, 8 core, IOHUB-2, SIC)" select E2K_MACHINE_SIC # should be set allways for e8c # select E2K_MACHINE_IOHUB # should be set always for e8c # select CPU_E8C help Support for Elbrus 8C systems. Say 'Y' here if this kernel is supposed to run on an Elbrus 8C system. Choose this option if you working on machine simulator ('ep1_ms'). config E2K_E8C bool "Elbrus 8C (NUMA, 8 core, IOHUB-2, SIC)" select E2K_MACHINE_SIC # should be set allways for e8c # select E2K_MACHINE_IOHUB # should be set always for e8c # select CPU_E8C help Support for Elbrus 8C systems. Say 'Y' here if this kernel is supposed to run on an Elbrus 8C system. Only choose this option if you have such a system and cannot run the kernel on other machines types, otherwise you should say N here. config E2K_E1CP_SIM bool "Simulator of Elbrus 1C+ (1 core + GC, IOHUB-2, Legacy SIC)" select E2K_MACHINE_SIC # should be set allways for e1c+ # select E2K_MACHINE_IOHUB # should be set always for e1c+ # select CPU_E1CP help Support for Elbrus 1C+ systems. Say 'Y' here if this kernel is supposed to run on an Elbrus 1C+ system. Choose this option if you working on machine simulator ('ep2_ms'). config E2K_E1CP bool "Elbrus 1C+ (1 core + GC, IOHUB-2, Legscy SIC)" select E2K_MACHINE_SIC # should be set allways for e1c+ # select E2K_MACHINE_IOHUB # should be set always for e1c+ # select CPU_E1CP help Support for Elbrus 1C+ systems. Say 'Y' here if this kernel is supposed to run on an Elbrus 1C+ system. Only choose this option if you have such a system and cannot run the kernel on other machines types, otherwise you should say N here. config E2K_E8C2_SIM bool "Simulator of Elbrus 8C2 (NUMA, 8 core, IOHUB-2, SIC)" select E2K_MACHINE_SIC # should be set allways for e8c2 # select E2K_MACHINE_IOHUB # should be set always for e8c2 # select CPU_E8C2 help Support for Elbrus 8C2 systems. Say 'Y' here if this kernel is supposed to run on an Elbrus 8C2 system. Choose this option if you working on machine simulator ('ep9_ms'). config E2K_E8C2 bool "Elbrus 8C2 (NUMA, 8 core, IOHUB-2, SIC)" select E2K_MACHINE_SIC # should be set allways for e8c2 # select E2K_MACHINE_IOHUB # should be set always for e8c2 # select CPU_E8C2 help Support for Elbrus 8C systems. Say 'Y' here if this kernel is supposed to run on an Elbrus 8C2 system. Only choose this option if you have such a system and cannot run the kernel on other machines types, otherwise you should say N here. endchoice choice prompt "E3M processor revision" depends on !E2K_MACHINE || CPU_E3M default E3M_CPU_VERSION_3 config E3M_CPU_VERSION_2 bool "CPU version #2" help Choose this option if you working on CPU implementation version #2 config E3M_CPU_VERSION_3 bool "CPU version #3" help Choose this option if you working on CPU implementation version #3 config E3M_CPU_VERSION_4 bool "CPU version #4" help Choose this option if you working on CPU implementation version #3 endchoice # e2s CPU hardware bug: RF should be empty before 'setwd' op config E2S_CPU_RF_BUG bool "Workaround e2s RF bug" depends on !E2K_MACHINE || E2K_E2S default E2K_MACHINE && E2K_E2S # Unknown bug of hardware or software while compiler lift up some operations # of load of data before call of spinlock function when data can be acceessed # only after call completion. In this case compiler use DAM to detect that data # were updated while spinlock completion and reload them if updated. # Turn off compiler optimization while bug is not detected and fixed. config SMP_DAM_BUG bool default SMP && (!E2K_MACHINE || (!E2K_E2S && !E2K_E8C && !E2K_E1CP && \ !E2K_E8C2)) config HZ int "Timer frequency" range 4 1000 default 100 help Allows the configuration of the timer frequency. It is customary to have the timer interrupt run at range 4-1000 HZ but 100 HZ is more beneficial config KERNEL_CODE_CONTEXT bool "Enable kernel codes context (kernel CUT and non-zero CUIR)" default y help Choose this option to enable compilation unit table for kernel codes. In this case all kernel code units will have non-zero compilation unit index (CUIR). Say Y for E3M architecture because of hardware bug in SRU does not allow to return from user signal handler to kernel code without context (CUIR = 0) config GLOBAL_CONTEXT bool "Map kernel virtual space to global context" default y help Choose this option to map virtual space of kernel to global context, so all kernel virtual pages and page tables will be global for all processes. It should reduce TLB and caches missing config SECONDARY_SPACE_SUPPORT bool "Support Secondary Space feature in OS" depends on MIGRATION # For E3M to move pages to the lower 4 Gbytes select MLT_STORAGE default y help Type 'y' if you are going to run native Linux-i386 code under this OS. config UPT_SUPPORT bool "Support for United Page Tables in OS" depends on SECONDARY_SPACE_SUPPORT default n help Type 'y' if you are going to run native Linux-i386 code on E3S under this OS. config ENABLE_EXTMEM bool "Extended Memory Support" default y ---help--- E2K can use up to 64 Gigabytes of physical memory. However, the address space of e2k processors has two regions this hole between them: main region from 0 up to 2 Gigabytes 0 - 8000 0000 extended region from 4 Gb up to 64 Gb 1 0000 0000 - 10 0000 0000 If you are compiling a kernel which will never run on a machine with more than 2 Gigabyte total physical RAM, answer N here If the machine has more than 2 Gigabytes physical RAM or it use extended region of RAM, then answer Y here. config ONLY_BSP_MEMORY bool "Only specified nodes memory can be used by other CPUs" default n ---help--- E3S CPUs can have own memory and access to memory of other CPUs. If you see Y then all CPUs can use only memory of nodes from following config parametr and ignore own config MEMORY_PRES_MAP int "Specify mask of nodes with memory" default 1 depends on ONLY_BSP_MEMORY range 1 65536 config FORCE_MAX_ZONEORDER int "Maximum zone order" range 11 64 default "14" help The kernel memory allocator divides physically contiguous memory blocks into "zones", where each zone is a power of two number of pages. This option selects the largest power of two that the kernel keeps in the memory allocator. If you need to allocate very large blocks of physically contiguous memory, then you may need to increase this value. This config option is actually maximum order plus one. For example, a value of 11 means that the largest free memory block is 2^10 pages. The page size is not necessarily 4KB. Keep this in mind when choosing a value for this option. config ARCH_DISCONTIGMEM_ENABLE bool "Discontiguous Memory Support" default y help Say Y to support efficient handling of discontiguous physical memory, for systems which have huge holes in the physical address space or use extended physical memory region from 4Gb up to 64Gb. # Max 8 Nodes now limited by BOOT_MAX_MEM_NUMNODES to confirm # to boot_info structure size config NODES_SHIFT int "Maximum memory (NUMA) Nodes (as a power of 2)" range 0 3 default "3" if SMP && DISCONTIGMEM default "0" depends on NEED_MULTIPLE_NODES ---help--- Specify the maximum number of memory (NUMA) Nodes available on the target system. Increases memory reserved to accommodate various tables. config ARCH_DISCONTIG_NODE_MEM_MAP bool "Discontiguous Memory Map on node Support" default y depends on ARCH_DISCONTIGMEM_ENABLE help Say Y to minimize memory map tables for systems which have huge holes in the physical address space on a node (for example huge hole between low and high memory regions) In this case each zone (low and high) will have own memory map table, excluding maximally holes between zones. This mode can reduce performance of page seaching and conversion physical page number to/from page structure. config HAVE_ARCH_EARLY_PFN_TO_NID def_bool y depends on ARCH_DISCONTIGMEM_ENABLE # Some NUMA nodes (e3s) can have memory ranges that span # other nodes. Even though a pfn is valid and # between a node's start and end pfns, it may not # reside on that node. # For example while a few nodes have memory in low and high range config NODES_SPAN_OTHER_NODES def_bool y depends on ARCH_DISCONTIGMEM_ENABLE config NUMA bool "NUMA support" default y if DISCONTIGMEM || SPARSEMEM depends on !(E2K_E3M_SIM || E2K_E3M) && SMP config COPY_USER_PGD_TO_KERNEL_ROOT_PT bool "Copy user process PGD entries to kernel root page table" default y depends on NUMA help If say Y then each CPU has own kernel PGD copy User process PGD entries are copied to this kernel PGD table while the process is activated on this CPU config KTHREAD_ON_CPU bool "Create kernel threads on specified CPU" default y depends on NUMA help Support creation of kernel threads on cpecified CPU to allocate memory resources on the node of this CPU config BOUNCE_BUFFERS_ON_CPU bool "Get bounce buffer on specified node" default y depends on NUMA help Create DMA bounce buffers on each node to enable allocation on specified node config SERIAL_BOOT_PRINTK bool "boot_printk() support" default y help boot_printk() outputs directly to serial port bypassing all buffers and locks and can work both before and after the switch to virtual memory addressing. It is useful for hardware debugging. Only two devices are supported currently: ns16550 (== 8550) and l_zilog (== am85c30). On simulator boot_printk() also outputs to LMS console. config SERIAL_NS16550_BOOT_CONSOLE bool "Boot-time serial console on 8250/16550 and compatible serial port" depends on SERIAL_BOOT_PRINTK default y help Sey Y to support boot-time console based on 8250/16550 serial port. config SERIAL_AM85C30_BOOT_CONSOLE bool "Boot-time serial console on Am85c30 zilog and compatible devices" depends on SERIAL_BOOT_PRINTK default y help Sey Y to support boot-time console based on Am85c30 serial PCI device. config BOOT_SERIAL_BAUD int "Boot printk serial rate (4800-115200)" range 4800 115200 depends on SERIAL_BOOT_PRINTK || SERIAL_PRINTK default "115200" help Speed rate for boot printk console source "mm/Kconfig" config MEMLIMIT int "Physical memory probing range (main region of RAM)" range 0 2048 default 64 config EXT_MEMLIMIT int "Extended physical memory probing range (Megabytes)" depends on ENABLE_EXTMEM range 0 61440 default 64 choice prompt "Embeded Video RAM size" default VRAM_SIZE_128 help Embeded graphical controller video ram size Option is usfull only for e2k internal boot loader on simulator config VRAM_SIZE_128 bool "128 Mb" help Embeded graphical controller video ram size is 128 Mb Option is usfull only for e2k internal boot loader on simulator config VRAM_SIZE_256 bool "256 Mb" help Embeded graphical controller video ram size is 256 Mb Option is usfull only for e2k internal boot loader on simulator config VRAM_SIZE_512 bool "512 Mb" help Embeded graphical controller video ram size is 512 Mb Option is usfull only for e2k internal boot loader on simulator config VRAM_SIZE_1024 bool "1 Gb" help Embeded graphical controller video ram size is 1 Gb Option is usfull only for e2k internal boot loader on simulator config VRAM_DISABLE bool "Disable embeded graphic support" help Embeded graphical controller video ram can be disabled Option is usfull only for e2k internal boot loader on simulator endchoice config ACCESS_CONTROL bool default N config USR_CONTROL_INTERRUPTS bool "USER can control interrupts" default N help USER can use UPSR register to control interrupts (only for hardware debugging) To control interrupts in user mode it needs to call: e2k_syswork(USER_CONTROL_INTERRUPT, 1, 0); // start e2k_syswork(USER_CONTROL_INTERRUPT, 0, 0); // stop config KERNEL_TIMES_ACCOUNT bool "Collect kernel traps and system calls clock time info" default N config MAX_KERNEL_TIMES_NUM depends on KERNEL_TIMES_ACCOUNT int "Max Number of last events to collect (1-1024)" range 1 1024 default 20 config CLI_CHECK_TIME bool "CLI check time" choice depends on SWAP prompt "Software swap tags" default SOFTWARE_SWAP_TAGS_V2 config SOFTWARE_SWAP_NONE bool "Off" config SOFTWARE_SWAP_TAGS bool "version 1" config SOFTWARE_SWAP_TAGS_V2 bool "version 2" endchoice config ARCH_CACHES bool # Now it is enabled permanently default y # bool 'Symmetric multi-processing support' CONFIG_SMP config CMDLINE_PROMPT bool "Enable prompt for kernel command string" default n config MAKE_ALL_PAGES_VALID bool "Make all virtual pages valid" default y config FAST_ADDRESS_PROBE depends on MAKE_ALL_PAGES_VALID bool "Fast probe of validity of virtual addresses" default y config SET_STACKS_SIZE bool "Define max hardware and user data stacks size" default n config PSP_STACK_SIZE int "Size of (MBytes) hardware procedure stack (PSP) (PCSP size will be PSP size / 16)" depends on SET_STACKS_SIZE range 1 2048 default 1 config PSP_WIN_SIZE int "Size of (pages number) active window of hardware procedure stack (PSP) (PCSP size will be PSP size / 16)" depends on SET_STACKS_SIZE range 1 512 default 8 config USER_STACK_SIZE int "Size of (MBytes) user data stack (C stack)" depends on SET_STACKS_SIZE range 1 4096 default 2 config UPS_AREA_SIZE int "Number of pages in user p stack area" depends on SET_STACKS_SIZE default 42 config UPCS_AREA_SIZE int "Number of pages in user pc stack area" depends on SET_STACKS_SIZE default 4 config ALLOC_MAX_STACK bool "Allocate just max defined above user data stacks size" default n help Say Y to allocate user data stack of max defined size. If say N then user data stack will be allocated of minimal needed size and will be expanded as required in the running of the process config USER_STACK_INCR int "User local data stack (USD) increment value (number of 4K pages)" depends on ALLOC_MAX_STACK = n range 1 4096 default 4 help You can here define number of pages to increment user local data stack size when stack overflow occures. config USE_AAU bool # Now it is enabled permanently default y config STACK_REG_WINDOW bool "Enable local registers window show while fancy stack listing" default y help Say Y here to enable printing of local registers while stack's printing. Do "echo 1 > /proc/sys/debug/userstack" to show user's registers. config DATA_STACK_WINDOW bool "Enable kernel data stack show while fancy stack listing" default y help Say Y here to enable printing of data stack while stack's printing. Do "echo 1 > /proc/sys/debug/datastack" to show the stack. config DUMP_ON_OTHER_CPUS bool "Enable stack dump of tasks running on other CPUs" default n help dump of running task on other CPU use smp call, so this mode can hang up the system in the case of emergency dump config BINFMT_ELF32 tristate "Kernel support for 32-bit ELF binaries" select COMPAT_BINFMT_ELF config COMPAT def_bool y depends on BINFMT_ELF32 select ARCH_WANT_OLD_COMPAT_IPC config PROTECTED_MODE tristate "Security mode" config DBG_RTL_TRACE bool "Enable printing rtl messages in security mode" depends on PROTECTED_MODE default N config CLW_ENABLE bool "Enable clean of user stack window" depends on PROTECTED_MODE default y config IPD_DISABLE bool "Disable Instruction Cache prefetch for kernel" help If you say 'Y' then Instruction Cache prefetch will be disable for kernel threads Otherwise two line of ICACHE prefetch will be set default N config GREGS_CONTEXT bool # Now it is enabled permanently default y config MLT_STORAGE bool "Store MLT registers" help Store when task switch default N config TC_STORAGE bool "Store Table Cache default line" help Flushing Table Cashe and storing default string of TC when tasks switch default N config IGNORE_MEM_LOCK_AS bool "Ignore exc_mem_lock_as" help Ignore mem_lock_as exception in binary compiler task default N config EMERGENCY_DUMP bool "Prepare system to dump all memory on emergency events" select RECOVERY help Kernel prepare system to can do core dump of all memory If some emergency event will occure and system restart then boot do core dump default N config DUMP_DEV string "Core dump device or special file path" depends on EMERGENCY_DUMP help You can specify path to block device or regular file as for swap files. You can redefine the file in the command line string typing dumpdev=/dev/xxxx This device or file will be used to dump and to save/restore control points default "" config CORE_AREA_MAX_SIZE int "Max size (Mgb) of core dump area in the special file" depends on EMERGENCY_DUMP help You should specify max size in Mgb on the disk of area to do core dump of all memory. You can redefine the size in the command line string typing dumpmax=NNN Size of disk area should be greater as all memory size default 16384 config RECOVERY bool "Enable system recovery" select PM help Enable mode to support control points and dump analyzing mode default y config TIME_TO_RESTART int "Time period (secs) to restart system (RECOVERY debugging)" range 0 255 depends on RECOVERY default "0" config CNT_POINTS_RECREATE bool "Recreate control points each time period to restart" depends on RECOVERY && TIME_TO_RESTART != 0 help Control points will be recreated after each time period, else points created only one time before first restart default n config CNT_POINTS_NUM int "Number of control points in the memory" range 0 8 depends on RECOVERY help All physical memory will be devided to specified number of control points. Each control point can use only own part of the memory. If number is 0 then no any control points. If number is 1 then control point only on a disk. default "0" config CNT_POINTS_DEV string "Control points special file path" depends on RECOVERY && CNT_POINTS_NUM != 0 && !DUMP_DEV help You can specify path to block device or regular file as for swap files. You can redefine the file in the command line string typing cntpdev=/dev/xxxx This device or file will be used to save and restore control points. default "" config CNTP_AREA_MAX_SIZE int "Max size (Mgb) of one control point area in the special file" depends on RECOVERY && CNT_POINTS_NUM != 0 help You should specify max size in Mgb on the disk of one control point. You can redefine the size in the command line string typing cntpmax=NNN Size of the saved control point should be smaller specified size in Mgb. default 1024 config SMALL_KERN_MEM_DIV int "The part of full physical memory to load 'small' kernel" depends on RECOVERY && !(CNT_POINTS_NUM != 0 && CNT_POINTS_NUM != 1) help The part of full physical memory of size (full physical memory) \ SMALL_KERN_MEM_DIV will be used to load 'small' kernel at the end of the physical memory for creating control point for quick restart or for starting dump analyzing mode. default "3" config MONITORS bool "Hardware monitor counters support" depends on PROC_FS help Say Y here to enable the monitors supporting mechanism used for counting of variuos hardware events config STATE_SAVE bool # Now it is not supported depends on RECOVERY help This mode now does not support default N config DUMP_ALL_STACKS bool "Enable dump of all stacks" default Y config PRINT_KERNEL_THREADS bool "Dump all kernel threads" help If you say 'Y' then stacks of all processes including all kernel threads will be dumped, otherwise only user tasks stacks will be dumped depends on DUMP_ALL_STACKS default N config CMDLINE string "Initial kernel command string" default "root=/dev/hda3 console=ttyLMS " # # Define implied options from the CPU selection here # config SMP bool "Symmetric multi-processing support" default y ---help--- This enables support for systems with more than one CPU. If you have a system with only one CPU, like most personal computers, say N. If you have a system with more than one CPU, say Y. If you say N here, the kernel will run on single and multiprocessor machines, but will use only one CPU of a multiprocessor machine. If you say Y here, the kernel will run on many, but not all, singleprocessor machines. On a singleprocessor machine, the kernel will run faster if you say N here. Note that if you say Y here and choose architecture "586" or "Pentium" under "Processor family", the kernel will not work on 486 architectures. Similarly, multiprocessor kernels for the "PPro" architecture may not work on all Pentium based boards. People using multiprocessor machines who say Y here should also say Y to "Enhanced Real Time Clock Support", below. The "Advanced Power Management" code will be disabled if you say Y here. See also the , , and the SMP-HOWTO available at . If you don't know what to do here, say N. config NR_CPUS int "Maximum number of CPUs (2-255)" range 2 255 depends on SMP default "2" help This allows you to specify the maximum number of CPUs which this kernel will support. The maximum supported value is 255 and the minimum value which makes sense is 2. This is purely to save memory - each supported CPU adds approximately eight kilobytes to the kernel image. config MCST bool "MCST additions" default y source "kernel/Kconfig.preempt" config RWSEM_GENERIC_SPINLOCK def_bool PREEMPT_RT_FULL config RWSEM_XCHGADD_ALGORITHM def_bool !RWSEM_GENERIC_SPINLOCK && !PREEMPT_RT_FULL config GENERIC_TIME def_bool y config GENERIC_TIME_VSYSCALL def_bool y config GENERIC_CMOS_UPDATE def_bool y config GENERIC_CLOCKEVENTS def_bool y source "kernel/time/Kconfig" config BIOS bool "Enable bios chipset settings" default y help Enable bios chipset settings such as io apic serial ports keyboard, mouse etc. config ENABLE_BIOS_MPTABLE bool "Set mptable" depends on BIOS && L_IO_APIC default y help Constructing bios MP configuration table. config ENABLE_ELBRUS_PCIBIOS bool "Enable pcibios" depends on BIOS default y help Enable pci initialization in bios. config ENABLE_IDE bool "Enable hard drive" depends on BIOS default y help Enable ide in southbridge chip. config ENABLE_KEYBOARD bool "Enable keyboard" depends on BIOS default y help Enable keyboard in superio chip. config ENABLE_MOUSE bool "Enable mouse" depends on BIOS default y help Enable mouse in superio chip. config ENABLE_FLOPPY bool "Enable floppy" depends on BIOS default y help Enable fdc in superio chip. config ENABLE_MGA bool "Enable MGA" depends on BIOS default y config ENABLE_RTC bool "Enable rtc" depends on BIOS default y help Enable rtc in southbridge chip. config ENABLE_SERIAL bool "Enable serial ports" depends on BIOS default y help Enable com1 com2 in superio chip. config ENABLE_PARALLEL_PORT bool "Enable parallel port" depends on BIOS default y help Enable lpt in superio chip. config ENABLE_IOAPIC bool "Enable IO APIC" depends on BIOS default y help Set southbridge XBCS register io apic enable. config ADC_DISABLE bool "Disable second IO-link on e2c+ connected to ADC" depends on BIOS default n help In some case second link is not connected to anywhere or not work properly config OPTIMIZE_REGISTERS_ACCESS bool "Optimize registers access" default y help Disabling this option will prohibit lcc from optimizing registers access instructions (rr/rw). config E2K_STACKS_TRACER bool "Trace kernel stacks usage" default n depends on !STACK_TRACER select FUNCTION_TRACER select STACKTRACE select KALLSYMS help This special tracer records the maximum stack footprint of the kernel and displays it in /sys/kernel/debug/tracing/stack_trace. You can use 'stack_trace_filter' file to select which functions to check the stacks on. This tracer works by hooking into every function call that the kernel executes, and keeping a maximum stack depth value and stack-trace saved. If this is configured with DYNAMIC_FTRACE then it will not have any overhead while the stack tracer is disabled. To enable the stack tracer on bootup, pass in 'stacktrace' on the kernel command line. You can pass 'stacktrace=kernel' to trace only kernel part of hardware stacks. The stack tracer can also be enabled or disabled via the sysctl kernel.stack_tracer_enabled There is also sysctl kernel.stack_tracer_kernel_only knob for controlling which threads to trace. Pass stacktrace_filter= to the kernel command line to set specific functions to check the stacks on. Say N if unsure. config FTRACE_E2K_PARAMETERS bool "e2k specific ftrace parameters" depends on FUNCTION_TRACER default FUNCTION_TRACER config FTRACE_DISABLE_ON_HIGH_LOAD bool "Disable ftrace on high load" depends on FTRACE_E2K_PARAMETERS && !DYNAMIC_FTRACE && FUNCTION_TRACER default !DYNAMIC_FTRACE help Disable ftrace when number of nested interrupts exceeds MAX_HW_INTR / 2 config HAVE_FUNCTION_GRAPH_FP_TEST bool "Ftrace: check frame pointer" depends on FUNCTION_GRAPH_TRACER_CR_MAGIC && FTRACE_E2K_PARAMETERS default n help If set ftrace will remember frame pointer on entry to the function being traced and compare it with the frame pointer on return. This option has little overhead. config HW_BUG_IO_READ bool "HW bug: insert WAIT_LD barrier after every IO read operation" default n help e2c+ bug workaround. Bug appears at iohub2 razbrakovschik. endmenu source "arch/l/Kconfig" menu "Power management options (ACPI, APM)" source kernel/power/Kconfig source "drivers/acpi/Kconfig" config ARCH_HAS_CPU_IDLE_WAIT def_bool y config E2S_CLK_GATE bool "E2S, E8C and E8C2 clock gating" default y help If you say yes here you get support for e2s, e8c and e8c2 clock gating. source "drivers/cpufreq/Kconfig" menu "APM (Advanced Power Management) BIOS Support" depends on PM config APM tristate "APM (Advanced Power Management) BIOS support" depends on PM ---help--- APM is a BIOS specification for saving power using several different techniques. This is mostly useful for battery powered laptops with APM compliant BIOSes. If you say Y here, the system time will be reset after a RESUME operation, the /proc/apm device will provide battery status information, and user-space programs will receive notification of APM "events" (e.g. battery status change). If you select "Y" here, you can disable actual use of the APM BIOS by passing the "apm=off" option to the kernel at boot time. Note that the APM support is almost completely disabled for machines with more than one CPU. In order to use APM, you will need supporting software. For location and more information, read and the Battery Powered Linux mini-HOWTO, available from . This driver does not spin down disk drives (see the hdparm(8) manpage ("man 8 hdparm") for that), and it doesn't turn off VESA-compliant "green" monitors. This driver does not support the TI 4000M TravelMate and the ACER 486/DX4/75 because they don't have compliant BIOSes. Many "green" desktop machines also don't have compliant BIOSes, and this driver may cause those machines to panic during the boot phase. Generally, if you don't have a battery in your machine, there isn't much point in using this driver and you should say N. If you get random kernel OOPSes or reboots that don't seem to be related to anything, try disabling/enabling this option (or disabling/enabling APM in your BIOS). Some other things you should try when experiencing seemingly random, "weird" problems: 1) make sure that you have enough swap space and that it is enabled. 2) pass the "no-hlt" option to the kernel 3) switch on floating point emulation in the kernel and pass the "no387" option to the kernel 4) pass the "floppy=nodma" option to the kernel 5) pass the "mem=4M" option to the kernel (thereby disabling all but the first 4 MB of RAM) 6) make sure that the CPU is not over clocked. 7) read the sig11 FAQ at 8) disable the cache from your BIOS settings 9) install a fan for the video card or exchange video RAM 10) install a better fan for the CPU 11) exchange RAM chips 12) exchange the motherboard. To compile this driver as a module, choose M here: the module will be called apm. config APM_IGNORE_USER_SUSPEND bool "Ignore USER SUSPEND" depends on APM help This option will ignore USER SUSPEND requests. On machines with a compliant APM BIOS, you want to say N. However, on the NEC Versa M series notebooks, it is necessary to say Y because of a BIOS bug. config APM_DO_ENABLE bool "Enable PM at boot time" depends on APM ---help--- Enable APM features at boot time. From page 36 of the APM BIOS specification: "When disabled, the APM BIOS does not automatically power manage devices, enter the Standby State, enter the Suspend State, or take power saving steps in response to CPU Idle calls." This driver will make CPU Idle calls when Linux is idle (unless this feature is turned off -- see "Do CPU IDLE calls", below). This should always save battery power, but more complicated APM features will be dependent on your BIOS implementation. You may need to turn this option off if your computer hangs at boot time when using APM support, or if it beeps continuously instead of suspending. Turn this off if you have a NEC UltraLite Versa 33/C or a Toshiba T400CDT. This is off by default since most machines do fine without this feature. config APM_CPU_IDLE bool "Make CPU Idle calls when idle" depends on APM help Enable calls to APM CPU Idle/CPU Busy inside the kernel's idle loop. On some machines, this can activate improved power savings, such as a slowed CPU clock rate, when the machine is idle. These idle calls are made after the idle loop has run for some length of time (e.g., 333 mS). On some machines, this will cause a hang at boot time or whenever the CPU becomes idle. (On machines with more than one CPU, this option does nothing.) config APM_DISPLAY_BLANK bool "Enable console blanking using APM" depends on APM help Enable console blanking using the APM. Some laptops can use this to turn off the LCD backlight when the screen blanker of the Linux virtual console blanks the screen. Note that this is only used by the virtual console screen blanker, and won't turn off the backlight when using the X Window system. This also doesn't have anything to do with your VESA-compliant power-saving monitor. Further, this option doesn't work for all laptops -- it might not turn off your backlight at all, or it might print a lot of errors to the console, especially if you are using gpm. config APM_RTC_IS_GMT bool "RTC stores time in GMT" depends on APM help Say Y here if your RTC (Real Time Clock a.k.a. hardware clock) stores the time in GMT (Greenwich Mean Time). Say N if your RTC stores localtime. It is in fact recommended to store GMT in your RTC, because then you don't have to worry about daylight savings time changes. The only reason not to use GMT in your RTC is if you also run a broken OS that doesn't understand GMT. config APM_ALLOW_INTS bool "Allow interrupts during APM BIOS calls" depends on APM help Normally we disable external interrupts while we are making calls to the APM BIOS as a measure to lessen the effects of a badly behaving BIOS implementation. The BIOS should reenable interrupts if it needs to. Unfortunately, some BIOSes do not -- especially those in many of the newer IBM Thinkpads. If you experience hangs when you suspend, try setting this to Y. Otherwise, say N. config APM_REAL_MODE_POWER_OFF bool "Use real mode APM BIOS call to power off" depends on APM help Use real mode APM BIOS calls to switch off the computer. This is a work-around for a number of buggy BIOSes. Switch this option on if your computer crashes instead of powering off properly. endmenu source "drivers/cpuidle/Kconfig" endmenu menu "Bus options (PCI, PCMCIA, EISA, MCA, ISA)" source "arch/l/pci/Kconfig" # should be set allways for e2k # config PCI bool "PCI support" default y select PCI_ELBRUS # should be set allways for e2k # 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 , contains valuable information about which PCI hardware does work under Linux and which doesn't. config PCI_USE_VECTOR bool "Vector-based interrupt indexing (MSI)" depends on L_LOCAL_APIC && L_IO_APIC default n help This replaces the current existing IRQ-based index interrupt scheme with the vector-base index scheme. The advantages of vector base over IRQ base are listed below: 1) Support MSI implementation. 2) Support future IOxAPIC hotplug Note that this allows the device drivers to enable MSI, Message Signaled Interrupt, on all MSI capable device functions detected. Message Signal Interrupt enables an MSI-capable hardware device to send an inbound Memory Write on its PCI bus instead of asserting IRQ signal on device IRQ pin. If you don't know what to do here, say N. source "drivers/pci/pcie/Kconfig" source "drivers/pci/Kconfig" config ISA bool "ISA support" help Find out whether you have ISA slots on your motherboard. ISA 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 PCI, EISA, MicroChannel (MCA) or VESA. ISA is an older system, now being displaced by PCI; newer boards don't support it. If you have ISA, say Y, otherwise N. source "drivers/pcmcia/Kconfig" source "drivers/pci/hotplug/Kconfig" endmenu menu "Executable file formats" source "fs/Kconfig.binfmt" endmenu source "net/Kconfig" source "drivers/Kconfig" source "fs/Kconfig" source "arch/e2k/Kconfig.debug" source "security/Kconfig" config KEYS_COMPAT bool depends on COMPAT && KEYS default y source "crypto/Kconfig" source "lib/Kconfig"