| # Kconfig - miscellany configuration options |
| |
| # |
| # Copyright (c) 2014-2015 Wind River Systems, Inc. |
| # |
| # Licensed under the Apache License, Version 2.0 (the "License"); |
| # you may not use this file except in compliance with the License. |
| # You may obtain a copy of the License at |
| # |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, software |
| # distributed under the License is distributed on an "AS IS" BASIS, |
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| # See the License for the specific language governing permissions and |
| # limitations under the License. |
| # |
| |
| |
| menu "Cryptography" |
| source "lib/crypto/tinycrypt/Kconfig" |
| endmenu |
| |
| menu "Compile and Link Features" |
| |
| config KERNEL_BIN_NAME |
| string "The kernel binary name" |
| default "zephyr" |
| help |
| This option sets the name of the generated kernel binary. |
| |
| config HAVE_CUSTOM_LINKER_SCRIPT |
| prompt "Custom linker scripts provided" |
| def_bool n |
| help |
| Set this option if you have a custom linker script which needed to |
| be define in CUSTOM_LINKER_SCRIPT. |
| |
| config CUSTOM_LINKER_SCRIPT |
| string "Path to custom linker script" |
| default "" |
| depends on HAVE_CUSTOM_LINKER_SCRIPT |
| help |
| Path to the linker script to be used instead of the one define by the |
| platform. |
| |
| The linker script must be based on a version provided by Zephyr since |
| the kernel can expect a certain layout/certain regions. |
| |
| This is useful when an application needs to add sections into the |
| linker script and avoid having to change the script provided by |
| Zephyr. |
| |
| 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. |
| |
| config GDB_INFO |
| bool |
| prompt "Task-aware debugging with GDB" |
| default n |
| help |
| This option enables the kernel to collect additional information |
| during interrupts, exceptions, and context switches. This information |
| is required for task-aware debugging with GDB. |
| |
| config LINK_WHOLE_ARCHIVE |
| bool "Allow linking with --whole-archive" |
| default n |
| help |
| This options allows linking external libraries with the |
| --whole-archive option to keep all symbols. |
| |
| 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). |
| 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. |
| |
| config TOOLCHAIN_VARIANT |
| string "Cross-compiler variant name" |
| help |
| For optimized compilers with reduced features, specify the name |
| of the variant. |
| |
| config CPLUSPLUS |
| bool "Enable C++ support for the application" |
| default n |
| help |
| This option enables the use of applications built with C++. |
| |
| choice |
| prompt "C Library" |
| default MINIMAL_LIBC |
| |
| config MINIMAL_LIBC |
| bool |
| prompt "Build minimal c library" |
| help |
| Build integrated minimal c library. This integrated library is available |
| to support kernel functionality and test cases. It is not designed to be |
| used with applications. For applications, please use an external C |
| library such as newlib. |
| |
| config NEWLIB_LIBC |
| bool |
| prompt "Build with newlib c library" |
| help |
| Build with newlib library. The newlib library is expected to be |
| part of the SDK in this case. |
| |
| endchoice |
| |
| |
| config MINIMAL_LIBC_EXTENDED |
| bool "Build additional libc functions [EXPERIMENTAL]" |
| default n |
| depends on MINIMAL_LIBC |
| help |
| This option enables building some optional libc functions that |
| are not used directly by the kernel but can be used in applications. |
| The option adds the following functions: strtoul, strtol, atoi, |
| strncasecmp. |
| Warning: Use the above functions only for testing, if you need to |
| use any of the functions in an application you probably should be |
| linking against a full lib c implementation instead. |
| |
| |
| endmenu |
| |
| menu "Debugging Options" |
| |
| config DEBUG |
| bool "Build kernel with debugging enabled" |
| default n |
| help |
| Build a kernel suitable for debugging. Right now, this option |
| only disables optimization, more debugging variants can be selected |
| from here to allow more debugging. |
| |
| config TASK_DEBUG |
| bool |
| prompt "Task debugging [EXPERIMENTAL]" |
| default n |
| help |
| This option allows execution of all tasks (with the exception of |
| essential system tasks) to be suspended so that debugging operations |
| can be performed. |
| |
| config STACK_USAGE |
| bool "Generate stack usage information" |
| default n |
| help |
| Generate an extra file that specifies the maximum amount of stack used, |
| on a per-function basis. |
| |
| config PRINTK |
| bool |
| prompt "Send printk() to console" |
| depends on CONSOLE_HAS_DRIVER |
| default y |
| help |
| This option directs printk() debugging output to the supported |
| console device, 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" |
| depends on CONSOLE_HAS_DRIVER |
| default n |
| help |
| This option directs standard output (e.g. printf) to the console |
| device, rather than suppressing it entirely. |
| |
| config EARLY_CONSOLE |
| bool |
| prompt "Send stdout at the earliest stage possible" |
| default n |
| help |
| This option will enable stdout as early as possible, for debugging |
| purpose. For instance, in case of STDOUT_CONSOLE being set it will |
| initialize its driver earlier than normal, in order to get the stdout |
| sent through the console at the earliest stage possible. |
| |
| 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 |
| |
| config DEBUG_TRACING_KERNEL_OBJECTS |
| bool |
| prompt "Debug tracing object" |
| default n |
| help |
| This option enable the feature for tracing kernel objects. This option |
| is for debug purposes and increase the memory footprint of the kernel. |
| |
| source "misc/debug/Kconfig" |
| |
| endmenu |
| |
| menu "System Monitoring Options" |
| |
| config PERFORMANCE_METRICS |
| bool |
| prompt "Enable performance metrics [EXPERIMENTAL]" |
| default n |
| help |
| Enable Performance Metrics. |
| |
| config BOOT_TIME_MEASUREMENT |
| bool |
| prompt "Boot time measurements [EXPERIMENTAL]" |
| default n |
| depends on 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 |
| |
| menu "Boot Options" |
| |
| config BOOTLOADER_KEXEC |
| bool |
| prompt "Boot using Linux kexec() system call" |
| depends on X86 |
| 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 |
| prompt "Generic boot loader support" |
| default n |
| depends on X86 |
| help |
| This option signifies that the target has a generic 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 platform may have to do extra work to ensure a proper startup. |
| |
| config REBOOT |
| bool "Reboot functionality" |
| default n |
| select SYSTEM_CLOCK_DISABLE |
| help |
| Enable the sys_reboot() API. Enabling this can drag in other subsystems |
| needed to perform a "safe" reboot (e.g. SYSTEM_CLOCK_DISABLE, to stop the |
| system clock before issuing a reset). |
| endmenu |