embeddedsw/lib/bsp/xilkernel/data/xilkernel.mld

172 lines
12 KiB
Text
Raw Permalink Normal View History

###############################################################################
#
# Copyright (C) 2005 - 2014 Xilinx, Inc. All rights reserved.
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# Use of the Software is limited solely to applications:
# (a) running on a Xilinx device, or
# (b) that interact with a Xilinx device through a bus or interconnect.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
# XILINX BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
# OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
# SOFTWARE.
#
# Except as contained in this notice, the name of the Xilinx shall not be used
# in advertising or otherwise to promote the sale, use or other dealings in
# this Software without prior written authorization from Xilinx.
#
###############################################################################
#
# $Id: xilkernel_v2_1_0.mld,v 1.1.2.2 2011/12/08 08:17:56 anirudh Exp $
###############################################################################
OPTION psf_version = 2.1.0 ;
BEGIN OS xilkernel
OPTION DRC = kernel_drc ;
OPTION SUPPORTED_PERIPHERALS = (microblaze);
OPTION COPYFILES = all;
OPTION DEPENDS = (standalone);
OPTION APP_COMPILER_FLAGS = "-D __XMK__";
OPTION APP_LINKER_FLAGS = "-lxilkernel";
OPTION OS_STATE = ACTIVE;
OPTION NAME = xilkernel;
OPTION DESC = "Xilkernel is a simple and lightweight kernel that provides POSIX style services such as scheduling, threads, synchronization, message passing and timers. The kernel requires a programmable timer that is either built-in or attached to the processor as a peripheral.";
# STDIN/STDOUT
PARAM name = stdin, type = peripheral_instance, requires_interface = stdin, default=none, desc = "Specify the instance name of the standard input peripheral";
PARAM name = stdout, type = peripheral_instance, requires_interface = stdout, default=none, desc = "Specify the instance name of the standard output peripheral";
# System timer specification
BEGIN CATEGORY systmr_spec
PARAM name = systmr_spec, type = bool, default = true, desc = "Configure kernel timer parameters", permit = none;
PARAM name = systmr_dev, type = peripheral_instance, default = none, range = (opb_timer, fit_timer, xps_timer, axi_timer), desc = "Specify the instance name of the kernel timer device (Microblaze only): ";
PARAM name = systmr_freq, type = int, default = 100000000, desc = "Specify the clock frequency of the timer (Hz). For PPC it is the PPC405's frequency. For MB systems with an opb_timer, it is the frequency of the clock that drives the timer (OPB bus frequency). With a fit_timer it is the frequency of the fit timer's clock."
PARAM name = systmr_interval, type = int, default = 10, desc = "Specify the time interval for each kernel tick (in milliseconds). This controls the CPU budget for each process. If the timer is fit_timer, then this parameter is automatically determined";
END CATEGORY
# System interrupt controller specification
PARAM name = sysintc_spec, type = peripheral_instance, range = (opb_intc, xps_intc, dcr_intc, axi_intc), default = none, desc = "Specify the instance name of the interrupt controller device driving system interrupts";
# pthread feature
BEGIN CATEGORY config_pthread_support
PARAM name = config_pthread_support, type = bool, default = true, permit = user, desc = "Configure pthread support in the kernel";
PARAM name = max_pthreads, type = int, default = 10, desc = "Maximum number of simultaneous threads that can be handled by the kernel";
PARAM name = pthread_stack_size, type = int, default = 1000, desc = "Size of the stack to be allocated for each thread";
BEGIN ARRAY static_pthread_table
PROPERTY desc = "Static specification of pthreads. These threads will be created at Xilkernel startup";
PARAM name = pthread_start_func, type = string, desc = "Specify the function name at which this pthread will start";
PARAM name = pthread_prio, type = int, desc = "Specify the priority of the pthread";
END ARRAY
# pthread_mutex feature
PARAM name = config_pthread_mutex, type = bool, default = false, permit = user, desc = "Configure pthread mutex lock support in the kernel";
PARAM name = max_pthread_mutex, type = int, default = 10, desc = "Maximum number of mutex locks allocated and supported by the kernel at any point in time";
PARAM name = max_pthread_mutex_waitq, type = int, default = 10, type = int, desc = "Length of each mutex lock's wait queue. Controls the maximum the number of processes that can be blocked on this resource";
END CATEGORY
# scheduling features
BEGIN CATEGORY config_sched
PARAM name = config_sched, desc = "Configure the scheduling scheme used by the kernel", type = bool, default = true, permit = user ;
PARAM name = sched_type, type = enum, values = ("Round-Robin" = SCHED_RR, "Priority" = SCHED_PRIO), default = SCHED_RR, desc = "Choose the global kernel scheduling policy";
PARAM name = n_prio, type = int, default = 32, dep = (sched_type = SCHED_PRIO), desc = "The number of priority levels if scheduling is priority based";
PARAM name = max_readyq, type = int, default = 10, desc = "Length of each ReadyQ. This is the maximum number of processes that can be active at any time";
END CATEGORY
# time features
BEGIN CATEGORY config_time
PARAM name = config_time, type = bool, default = false, permit = user, desc = "Configure time/timer related feature support in the kernel";
PARAM name = max_tmrs, type = int, default = 10, permit = user, desc = "Maximum number of soft timers that will be supported by the kernel at any point in time";
END CATEGORY
# semaphore feature
BEGIN CATEGORY config_sema
PARAM name = config_sema, type = bool,default = false, permit = user, desc = "Configure semaphore support in the kernel";
PARAM name = max_sem, type = int, default = 10, desc = "Maximum number of semaphores allocated and supported by the kernel at any point in time";
PARAM name = max_sem_waitq, type = int, default = 10, desc = "Length of each semaphore's wait queue. Controls the maximum the number of processes that can be blocked on this resource";
PARAM name = config_named_sema, type = bool, default = false, permit = user, desc = "Configure named semaphore support in the kernel. This is an enhanced semaphore interface defined in POSIX.";
END CATEGORY
# message queue feature - Requires the semaphore feature to be selected
BEGIN CATEGORY config_msgq
PARAM name = config_msgq, type = bool, default = false, dep = (config_sema = true), permit = user, desc = "Configure message queue support in the kernel";
PARAM name = num_msgqs, type = int, default = 10, desc = "Maximum number of message queues allocated and supported by the kernel at any point in time";
PARAM name = msgq_capacity, type = int, default = 10, desc = "Message queue capacity - The maximum number of messages that can be stored in the message queue at any point in time";
PARAM name = use_malloc, type = bool, default = false, desc = "Use malloc() and free () to allocate space for messages in all queues. If false, Xilkernel's bufmalloc and buffree APIs will be used internally (requires corresponding mem_table parameter to setup block memory allocation for all possible message sizes). Using this will cause message queues to be more powerful (do not require block memory configuration), but slower and bigger at the samef time.";
END CATEGORY
# shared memory feature
BEGIN CATEGORY config_shm
PARAM name = config_shm, type = bool, default = false, permit = user, desc = "Configure shared memory support in the kernel";
BEGIN ARRAY shm_table
PROPERTY desc = "Shared Memory Table. List the different shared memory segments. The kernel pre-allocates and supports only these segments";
PROPERTY size = n_shm;
PARAM name = shm_size, type = int, desc = "Size of shared memory segment";
END ARRAY
END CATEGORY
# Buffer malloc feature
BEGIN CATEGORY config_bufmalloc
PARAM name = config_bufmalloc, type = bool, default = false, permit = user, desc = "Configure buffer memory pool allocation support in the kernel";
PARAM name = max_bufs, type = int, default = 10, permit = user, desc = "Maxmimum number of memory pools that can be supported by the kernel at any point in time";
BEGIN ARRAY mem_table
PROPERTY desc = "Block Memory Table - List statically created memory pool configurations";
PROPERTY size = n_malloc_blocks;
PARAM name = mem_bsize, type = int, desc = "Memory block size";
PARAM name = mem_nblks, type = int, desc = "Maximum number of memory blocks of this size that can be allocated by the kernel";
END ARRAY
END CATEGORY
# process management feature
BEGIN CATEGORY config_elf_process
PARAM name = config_elf_process, type = bool, default = false, permit = user, desc = "Configure ELF process management support in the kernel. This feature is not required to be used, unless you have special requirements to launch processes from separate ELF files. See xilkernel documentation for more info.", state = deprecated;
PARAM name = max_procs, type = int, default = 10, desc = "Maximum number of simulataneous ELF processes to be handled by the kernel";
# Statically created ELF process parameters.
BEGIN ARRAY static_elf_process_table
PROPERTY desc = "Static specification of processes that are separate executables. These processes will be created at Xilkernel startup.";
PARAM name = process_start_addr, type = int, desc = "Start address of the process";
PARAM name = process_prio, type = int, desc = "Priority of the process";
END ARRAY
END CATEGORY
# copyout options
BEGIN CATEGORY copyoutfiles
PARAM name = copyoutfiles, type = bool, default = false, permit = user, desc = "Copy OS files to user specified directory";
PARAM name = copytodir, type = string, default = "../copyoflib", desc = "Destination directory for copy";
END CATEGORY
#PARAMETER name = config_stats, type = bool, default = false, permit = user, desc = "Configure support for retrieving kernel statistics";
BEGIN CATEGORY config_debug_support
PARAM name = config_debug_support, type = bool, default = false, desc = "Control various debugging features of the kernel";
# Disable/Enable debug messages
PARAM name = verbose, type = bool, default = false, desc = "Enable debug/diagnostic messages from the kernel on standard output";
# Disable/Enable debug monitor routines
PARAM name = debug_mon, type = bool, default = false, desc = "Enable debug monitor routines in the kernel image";
END CATEGORY
BEGIN CATEGORY enhanced_features
PARAM name = enhanced_features, type = bool, default = false, permit = user, desc = "Configure enhanced features of the kernel";
PARAM name = config_kill, type = bool, default = false, desc = "Include the kill() function. Enables killing processes dynamically";
PARAM name = config_yield, type = bool, default = false, desc = "Include the yield() function. Makes the current process yield to the next process in the queue";
END CATEGORY
END OS