# Kconfig - miscellany configuration options # # Copyright (c) 2014-2015 Wind River Systems, Inc. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions are met: # # 1) Redistributions of source code must retain the above copyright notice, # this list of conditions and the following disclaimer. # # 2) Redistributions in binary form must reproduce the above copyright notice, # this list of conditions and the following disclaimer in the documentation # and/or other materials provided with the distribution. # # 3) Neither the name of Wind River Systems nor the names of its contributors # may be used to endorse or promote products derived from this software without # specific prior written permission. # # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE # ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE # LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR # CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF # SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN # CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE # POSSIBILITY OF SUCH DAMAGE. # menu "General Setup" config EXPERIMENTAL bool prompt "Experimental Options" default n help This option enables all experimental options in the project. If it is disabled, all options marked as EXPERIMENTAL will be disabled. If it is enabled, all options marked as EXPERIMENTAL will be available for selection. config CROSS_COMPILE string "Cross-compiler tool prefix" help Same as running 'make CROSS_COMPILE=prefix-' but stored for default make runs in this kernel build directory. You don't need to set this unless you want the configured kernel build directory to select the cross-compiler automatically. menu "Compile and Link Features" config KERNEL_BIN_NAME string "The kernel binary name" default "microkernel" if MICROKERNEL default "nanokernel" if NANOKERNEL config COMPILER_OPT string prompt "Custom compiler options" default "" help This option is a free-form string that is passed to the compiler when building all parts of a project (i.e. kernel, LKMs, and USAPs). The compiler options specified by this string supplement the pre-defined set of compiler supplied by the build system, and can be used to change compiler optimization, warning and error messages, and so on. A given LKM or USAP can override this setting by means of the OVERRIDE_COMPILER_OPT make variable in its Makefile. config MINIMAL_LIBC bool prompt "Build minimal c library" default y depends on !NEWLIB help Build integrated minimal c library. config TOOLCHAIN_NEWLIB bool prompt "Build with newlib c library" depends on !MINIMAL_LIBC default n help Build with newlib library. The newlib library is expected to be part of the SDK in this case. endmenu endmenu menu "Debugging Options" config PRINTK bool prompt "Send printk() to console" default y help This option directs printk() debugging output to the supported console device (UART), rather than suppressing the generation of printk() output entirely. Output is sent immediately, without any mutual exclusion or buffering. config STDOUT_CONSOLE bool prompt "Send stdout to console" default n help This option directs standard output (e.g. printf) to the console device, rather than suppressing in entirely. config ASSERT bool prompt "Enable __ASSERT() macro" default n help This enables the __ASSERT() macro in the kernel code. If an assertion fails, the calling thread is put on an infinite tight loop. Since enabling this adds a significant footprint, it should only be enabled in a non-production system. config ASSERT_LEVEL int prompt "__ASSERT() level" default 1 depends on ASSERT help This option specifies the assertion level used by the __ASSERT() macro. It can be set to one of three possible values: Level 0: off Level 1: on + warning in every file that includes __assert.h Level 2: on + no warning endmenu menu "Bootloader Options" config BOOTLOADER_KEXEC bool prompt "Boot using Linux kexec() system call" depends on X86_32 default n help This option signifies that Linux boots the kernel using kexec system call and utility. This method is used to boot the kernel over the network. config BOOTLOADER_UNKNOWN bool default n help This option signifies that the target has an unknown bootloader or that it supports multiple ways of booting and it isn't clear at build time which method is to be used. When this option is enabled the BSP may have to do extra work to ensure a proper startup. menu "Boot Sequence Options" depends on PROT_MODE_SWITCH_PROMPT config PROT_MODE_SWITCH bool prompt "Switch to 32-bit protected mode when booting" default n depends on PROT_MODE_SWITCH_PROMPT && X86_32 help This option causes the kernel to transition from real mode (16-bit) to protected mode (32-bit) during its initial booting sequence. config BOOT_A20_ENABLE bool "Boot A20 enable" depends on PROT_MODE_SWITCH && X86_32 default n help This option causes the A20 line to be enabled during the transition from real mode (16-bit) to protected mode (32-bit) during its initial booting sequence. endmenu endmenu menu "System Monitoring Options" depends on EXPERIMENTAL config PERFORMANCE_METRICS bool prompt "Enable performance metrics" default n depends on EXPERIMENTAL help Enable Performance Metrics. config BOOT_TIME_MEASUREMENT bool prompt "Boot time measurements [EXPERIMENTAL]" default n depends on EXPERIMENTAL && PERFORMANCE_METRICS help This option enables the recording of timestamps during system start up. The global variable __start_tsc records the time kernel begins executing, while __main_tsc records when main() begins executing, and __idle_tsc records when the CPU becomes idle. All values are recorded in terms of CPU clock cycles since system reset. config CPU_CLOCK_FREQ_MHZ int prompt "CPU CLock Frequency in MHz" default 20 depends on BOOT_TIME_MEASUREMENT help This option specifies the CPU Clock Frequency in MHz in order to convert Intel RDTSC timestamp to microseconds. endmenu