| # Kconfig - kernel 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. |
| # |
| |
| choice |
| prompt "Kernel Type" |
| default MICROKERNEL |
| |
| config NANOKERNEL |
| bool "Nano Kernel" |
| |
| config MICROKERNEL |
| bool "Micro Kernel" |
| |
| endchoice |
| |
| menu "General Kernel Options" |
| |
| config SYS_CLOCK_TICKS_PER_SEC |
| int |
| prompt "System tick frequency (in ticks/second)" |
| default 100 |
| depends on !NO_ISRS |
| help |
| This option specifies the frequency of the system clock in Hz. |
| |
| config SYS_CLOCK_HW_CYCLES_PER_SEC |
| int "System clock's h/w timer frequency" |
| default 0 |
| help |
| This option specifies the frequency of the hardware timer used for the |
| system clock (in Hz). It is normally set by the platform's defconfig file |
| and the user should generally avoid modifying it via the menu configuration. |
| |
| config SYS_CLOCK_EXISTS |
| bool |
| # omit prompt to signify a "hidden" option |
| default n if (SYS_CLOCK_TICKS_PER_SEC = 0) |
| default y |
| help |
| This option specifies that the kernel lacks timer support. |
| |
| config INIT_STACKS |
| bool |
| prompt "Initialize stack areas" |
| default n |
| help |
| This option instructs the kernel to initialize stack areas with a |
| known value (0xaa) before they are first used, so that the high |
| water mark can be easily determined. This applies to the stack areas |
| for both tasks and fibers, as well as for the microkernel server's command |
| stack. |
| |
| config XIP |
| bool |
| prompt "Execute in place" |
| help |
| This option allows the kernel to operate with its text and read-only |
| sections residing in ROM (or similar read-only memory). Not all platforms |
| support this option so it must be used with care; you must also |
| supply a linker command file when building your image. Enabling this |
| option increases both the code and data footprint of the image. |
| |
| |
| config RING_BUFFER |
| bool |
| prompt "Enable ring buffers" |
| default n |
| help |
| Enable usage of ring buffers. Similar to nanokernel FIFOs but manage |
| their own buffer memory and can store arbitrary data. For optimal |
| performance, use buffer sizes that are a power of 2. |
| |
| config EVENT_LOGGER |
| bool |
| prompt "Enable event logger" |
| default n |
| select RING_BUFFER |
| help |
| Enable event logging feature. Allow the usage of a ring buffer to |
| transmit event messages with a single interface to collect them. |
| |
| config KERNEL_PROFILER |
| bool |
| prompt "Enable profiler features" |
| default n |
| select EVENT_LOGGER |
| help |
| This feature enables the usage of the profiling logger. Provides the |
| logging of sleep events (either entering or leaving low power conditions), |
| context switch events, interrupt events, boot events and a method to |
| collect these profile messages. |
| |
| config PROFILER_BUFFER_SIZE |
| int |
| prompt "Profiler buffer size" |
| default 128 |
| depends on KERNEL_PROFILER |
| help |
| Buffer size in 32-bit words. |
| |
| |
| menu "Profiler points" |
| depends on KERNEL_PROFILER |
| |
| config PROFILER_CONTEXT_SWITCH |
| bool |
| prompt "Context switch profiler point" |
| default n |
| depends on KERNEL_PROFILER |
| help |
| Enable the context switch event messages. |
| |
| config PROFILER_INTERRUPT |
| bool |
| prompt "Interrupt profiler point" |
| default n |
| depends on KERNEL_PROFILER |
| help |
| Enable interrupt event messages. These messages provide the following |
| information: The time when interrupts occur. |
| |
| config PROFILER_SLEEP |
| bool |
| prompt "Sleep profiler point" |
| default n |
| depends on KERNEL_PROFILER && ADVANCED_POWER_MANAGEMENT |
| help |
| Enable low power condition event messages. These messages provide the |
| following information: |
| - When the CPU went to sleep mode. |
| - When the CPU woke up. |
| - The ID of the interrupt that woke the CPU up. |
| endmenu |
| |
| menu "Security Options" |
| |
| config CUSTOM_SECURITY |
| bool |
| prompt "Customized security" |
| default n |
| help |
| This option allow users to disable enhanced security features they do |
| not wish to use or enable the use of features with security exposures. |
| |
| config STACK_CANARIES |
| bool |
| prompt "Compiler stack canaries" |
| default n |
| help |
| This option enables compiler stack canaries support kernel functions. |
| |
| If stack canaries are supported by the compiler, it will emit |
| extra code that inserts a canary value into the stack frame when |
| a function is entered and validates this value upon exit. |
| Stack corruption (such as that caused by buffer overflow) results |
| in a fatal error condition for the running entity. |
| Enabling this option can result in a significant increase |
| in footprint and an associated decrease in performance. |
| |
| If stack canaries are not supported by the compiler, enabling this |
| option has no effect. |
| endmenu |
| |
| endmenu |
| source "kernel/nanokernel/Kconfig" |
| |
| config TICKLESS_IDLE |
| bool |
| prompt "Tickless idle" |
| default y |
| depends on ADVANCED_POWER_MANAGEMENT |
| help |
| This option suppresses periodic system clock interrupts whenever the |
| kernel becomes idle. This permits the system to remain in a power |
| saving state for extended periods without having to wake up to |
| service each tick as it occurs. |
| |
| config TICKLESS_IDLE_THRESH |
| int |
| prompt "Tickless idle threshold" |
| default 3 |
| depends on TICKLESS_IDLE && MICROKERNEL |
| help |
| This option disables clock interrupt suppression when the kernel idles |
| for only a short period of time. It specifies the minimum number of |
| ticks that must occur before the next kernel timer expires in order |
| for suppression to happen. |
| |
| if MICROKERNEL |
| source "kernel/microkernel/Kconfig" |
| endif |