| # 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 "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 TEXT_SECTION_OFFSET |
| hex "TEXT section offset" |
| default 0 |
| help |
| This sets and offset before the text section and allows booting images |
| with custom headers that are inserted at the beginning of the image. |
| |
| 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 |
| board. |
| |
| 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 2 |
| range 0 2 |
| 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. |
| |
| config OMIT_FRAME_POINTER |
| bool |
| prompt "Omit frame pointer" |
| default n |
| help |
| Prevent the compiler from putting the stack frame pointer into a |
| register. Saves a few instructions in function prologues/epilogues and |
| frees up a register for general-purpose use, which can provide good |
| performance improvements on register-constrained architectures like |
| x86. Omitting frame pointers impedes debugging as local variables are |
| harder to locate and it is much more difficult to produce a stack |
| trace. Recommended only for production builds which do not need to be |
| debugged. |
| |
| source "misc/debug/Kconfig" |
| |
| endmenu |
| |
| menu "Logging Options" |
| |
| config SYS_LOG |
| bool |
| prompt "Enable Logging" |
| depends on PRINTK || STDOUT_CONSOLE |
| default n |
| help |
| Global switch for logging, when turned off log calls will not be |
| executed. |
| |
| config SYS_LOG_SHOW_TAGS |
| bool |
| prompt "Prepend level tags to logs" |
| depends on SYS_LOG |
| default y |
| help |
| Prefixes all log lines with an identifier to the log level submitted in |
| the C code. |
| |
| config SYS_LOG_SHOW_COLOR |
| bool |
| prompt "Use colored logs" |
| depends on SYS_LOG |
| default n |
| help |
| Use color in the logs. This requires an ANSI capable terminal. |
| |
| config SYS_LOG_DEFAULT_LEVEL |
| int |
| prompt "Default log level" |
| depends on SYS_LOG |
| default 0 |
| range 0 4 |
| help |
| Sets log level for modules which don't specify it explicitly. When |
| set to 0 it means log wont be activated for those modules. |
| Levels are: |
| 0 OFF, do not write by default |
| 1 ERROR, default to only write SYS_LOG_ERR |
| 2 WARNING, default to write SYS_LOG_WRN in adition to previous level |
| 3 INFO, default to write SYS_LOG_INF in adition to previous levels |
| 4 DEBUG, default to write SYS_LOG_DBG in adition to previous levels |
| |
| config SYS_LOG_OVERRIDE_LEVEL |
| int |
| prompt "Override lowest log level" |
| depends on SYS_LOG |
| default 0 |
| range 0 4 |
| help |
| Forces a minimum log level for all modules. Modules use their |
| specified level if it is greater than this option, otherwise they use |
| the level specified by this option instead of their default or |
| whatever was manually set. |
| Levels are: |
| 0 OFF, do not override |
| 1 ERROR, override to write SYS_LOG_ERR |
| 2 WARNING, override to write SYS_LOG_WRN in adition to previous level |
| 3 INFO, override to write SYS_LOG_INF in adition to previous levels |
| 4 DEBUG, override to write SYS_LOG_DBG in adition to previous levels |
| |
| 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 IS_BOOTLOADER |
| bool "Act as a bootloader" |
| default n |
| depends on XIP |
| depends on ARM |
| help |
| This option indicates that Zephyr will act as a bootloader to execute |
| a separate Zephyr image payload. |
| |
| config BOOTLOADER_SRAM_SIZE |
| int "SRAM reserved for when Zephyr acts as a bootloader" |
| default 16 |
| depends on !XIP || IS_BOOTLOADER |
| depends on ARM |
| help |
| This option specifies the amount of SRAM (measure in kB) reserved for |
| when Zephyr is to act as a bootloader. |
| |
| 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 board 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 |