There are two major issues with the kconfig: () Some of the config options have incorrect dependencies inside help under menuconfig. For example, CONFIG_GPIO depends on BOARD_GALILEO. () Since the SoC and board specific kconfig files are parsed first, the help screen would say, for example, CONFIG_SPI is defined at arch/arm/soc/fsl_frdm_k64f/Kconfig. This is incorrect because the actual config is defined in drivers/spi/Kconfig. These cause great confusion to users of menuconfig/xconfig. To fix these, the SoC and board defaults are now to be parsed last. Note that the position swapping of defaults in this patch is due to the fact the the default parsed last will be used. And, spi_test is broken due to the fact that it requires CONFIG_SPI_INTEL_PORT_1, but never enables it anywhere. This is bypassed for now. Origin: refactored and edited from existing files Change-Id: I2a4b1ae5be4d27e68c960aa47d91ef350f2d500f Signed-off-by: Daniel Leung <daniel.leung@intel.com>
182 lines
5.2 KiB
Plaintext
182 lines
5.2 KiB
Plaintext
# Kconfig - microkernel 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 "Microkernel Options"
|
|
|
|
config MICROKERNEL_SERVER_STACK_SIZE
|
|
int
|
|
prompt "Microkernel server fiber (_k_server) stack size"
|
|
default 1024
|
|
depends on MICROKERNEL
|
|
help
|
|
This option specifies the size of the stack used by the microkernel
|
|
server fiber, whose entry point is _k_server(). This must be able
|
|
to handle the deepest call stack for internal handling of microkernel
|
|
|
|
config MICROKERNEL_SERVER_PRIORITY
|
|
int
|
|
prompt "Priority of the kernel service fiber"
|
|
default 0
|
|
depends on MICROKERNEL
|
|
help
|
|
Priority of the microkernel server fiber that performs
|
|
kernel requests and task scheduling assignments.
|
|
|
|
config PRIORITY_CEILING
|
|
int
|
|
prompt "Maximum priority for priority inheritance algorithm"
|
|
default 0
|
|
depends on MICROKERNEL
|
|
help
|
|
The highest task priority for the mutex priority inheritance
|
|
algorithm.
|
|
A task of low priority holding a mutex will see its priority
|
|
bumped to the priority of a task trying to acquire the mutex.
|
|
This option puts an upper boundary to the priority a task may
|
|
get bumped to.
|
|
|
|
config COMMAND_STACK_SIZE
|
|
int
|
|
prompt "Microkernel server command stack size (in packets)"
|
|
default 64
|
|
depends on MICROKERNEL
|
|
help
|
|
This option specifies the maximum number of command packets that
|
|
can be queued up for processing by the kernel's _k_server fiber.
|
|
|
|
config NUM_COMMAND_PACKETS
|
|
int
|
|
prompt "Number of command packets"
|
|
default 16
|
|
depends on MICROKERNEL
|
|
help
|
|
This option specifies the number of packets in the command packet pool.
|
|
This pool needs to be large enough to accommodate all in-flight
|
|
asynchronous command requests as well as those internally issued by
|
|
the microkernel server fiber (_k_server).
|
|
|
|
config NUM_TIMER_PACKETS
|
|
int
|
|
prompt "Number of timer packets" if SYS_CLOCK_EXISTS
|
|
default 0 if !SYS_CLOCK_EXISTS
|
|
default 10 if SYS_CLOCK_EXISTS
|
|
depends on MICROKERNEL
|
|
help
|
|
This option specifies the number of timer packets to create. Each
|
|
explicit and implicit timer usage consumes one timer packet.
|
|
|
|
config NUM_TASK_PRIORITIES
|
|
int
|
|
prompt "Number of task priorities"
|
|
default 16
|
|
range 1 256
|
|
depends on MICROKERNEL
|
|
help
|
|
This option specifies the number of task priorities supported by the
|
|
task scheduler. Specifying "N" provides support for task priorities
|
|
ranging from 0 (highest) through N-2; task priority N-1 (lowest) is
|
|
reserved for the kernel's idle task.
|
|
|
|
config WORKLOAD_MONITOR
|
|
bool
|
|
prompt "Workload monitoring [EXPERIMENTAL]"
|
|
default n
|
|
depends on MICROKERNEL
|
|
help
|
|
This option instructs the kernel to record the percentage of time
|
|
the system is doing useful work (i.e. is not idle).
|
|
|
|
config MAX_NUM_TASK_IRQS
|
|
int
|
|
prompt "Number of task IRQ objects"
|
|
default 0
|
|
depends on MICROKERNEL
|
|
help
|
|
This option specifies the maximum number of IRQs that may be
|
|
utilized by task level device drivers. A value of zero disables
|
|
this feature.
|
|
|
|
menu "Timer API Options"
|
|
|
|
config TIMESLICING
|
|
bool
|
|
prompt "Task time slicing"
|
|
default y
|
|
depends on MICROKERNEL && SYS_CLOCK_EXISTS
|
|
help
|
|
This option enables time slicing between tasks of equal priority.
|
|
|
|
config TIMESLICE_SIZE
|
|
int
|
|
prompt "Time slice size (in ticks)"
|
|
default 0
|
|
depends on TIMESLICING
|
|
help
|
|
This option specifies the maximum amount of time a task can execute
|
|
before other tasks of equal priority are given an opportunity to run.
|
|
A time slice size of zero means "no limit" (i.e. an infinitely large
|
|
time slice).
|
|
|
|
config TIMESLICE_PRIORITY
|
|
int
|
|
prompt "Time slicing task priority threshold"
|
|
default 0
|
|
depends on TIMESLICING
|
|
help
|
|
This option specifies the task priority level at which time slicing
|
|
takes effect; tasks having a higher priority than this threshold
|
|
are not subject to time slicing. A threshold level of zero means
|
|
that all tasks are potentially subject to time slicing.
|
|
endmenu
|
|
|
|
config TASK_MONITOR
|
|
bool
|
|
prompt "Task monitoring [EXPERIMENTAL]"
|
|
default n
|
|
depends on MICROKERNEL && KERNEL_EVENT_LOGGER
|
|
help
|
|
This option instructs the kernel to record significant task
|
|
activities. These can include: task switches, task state changes,
|
|
kernel service requests, and the signalling of events.
|
|
|
|
config TASK_MONITOR_MASK
|
|
int
|
|
prompt "Trace buffer mask"
|
|
default 15
|
|
depends on TASK_MONITOR
|
|
help
|
|
This option specifies which task execution activities are captured
|
|
in the task monitor's trace buffer. The following values can be
|
|
OR-ed together to form the mask:
|
|
|
|
1 (MON_TSWAP): task switch
|
|
2 (MON_STATE): task state change
|
|
4 (MON_KSERV): task execution of kernel APIs
|
|
8 (MON_EVENT): task event signalled
|
|
|
|
config OBJECT_MONITOR
|
|
bool
|
|
prompt "Kernel object monitoring [EXPERIMENTAL]"
|
|
default n
|
|
depends on MICROKERNEL
|
|
help
|
|
This option instructs the kernel to record statistics about
|
|
microkernel object usage.
|
|
|
|
endmenu
|