Commit Graph

100255 Commits

Author SHA1 Message Date
Andrei Emeltchenko 0f86fd19f2 uart: Rename INTERRUPT_DRIVEN configuration option
Rename UART_HOSTDRV_INTERRUPT_DRIVEN option to
UART_INTERRUPT_DRIVEN removing old definition.

Change-Id: Id48288db42e97a1ecbd809e259f33359d5a7c9d7
Signed-off-by: Andrei Emeltchenko <andrei.emeltchenko@intel.com>
2016-02-05 20:13:41 -05:00
Andrei Emeltchenko 139c856403 Add serial console input handler
Serial console handler when registered allows to interact with serial
line. It can either execute callback from ISR or defer execution to
fiber or task. This will be used in Bluetooth development for tests and
simple interaction with Bluetooth stack.

Change-Id: Ia960b456a75062d614baea324608058d979aa11b
Signed-off-by: Andrei Emeltchenko <andrei.emeltchenko@intel.com>
2016-02-05 20:13:41 -05:00
Andrei Emeltchenko cb764c5bc1 Add UART_HOSTDRV_INTERRUPT_DRIVEN configure option
Configure option UART_HOSTDRV_INTERRUPT_DRIVEN enables ISR support
making it possible to use interrupt driven input for UARTs. The option
would be selected by serial console and Bluetooth UART drivers.

Change-Id: Ie249275bb4bb2138f9d6b17e938bb1bbfe566f0c
Signed-off-by: Andrei Emeltchenko <andrei.emeltchenko@intel.com>
2016-02-05 20:13:41 -05:00
Peter Mitsis 033957c038 Remove reference to CodeSourcery
The CodeSourcery GCC toolchain is not supported.

Change-Id: If601398205f9effa2b90212225b207693ef59e58
Signed-off-by: Peter Mitsis <peter.mitsis@windriver.com>
2016-02-05 20:13:41 -05:00
Peter Mitsis 44c5409140 Remove references to VisualDSP.
VisualDSP is not supported.  Furthermore, with the removal of the VisualDSP
comment, there is no longer any justification for the custom BENCH_MIN() macro.
Thus, it is simply replaced with min()--defined in "util.h".

Change-Id: I3c08add1fc9fcd98c388b843c5849fc71fa84fd3
Signed-off-by: Peter Mitsis <peter.mitsis@windriver.com>
2016-02-05 20:13:41 -05:00
Peter Mitsis eeeb3215f0 Remove 'DataNode' from k_chproc structure
The 'DataNode' field in the k_chproc structure is not used.

Signed-off-by: Peter Mitsis <peter.mitsis@windriver.com>
Change-Id: If87a667953811772c918c12e1c03f8a5c6f7fafd
2016-02-05 20:13:41 -05:00
Peter Mitsis 0d376ab2c8 Remove 'srcnode' from moved_req structure
The 'srcnode' field in the moved_req structure is only relevant to multi-node
systems.  Furthermore, with the absence of the 'srcnode' field, the routine
setup_movedata() requires one less parameter.

Signed-off-by: Peter Mitsis <peter.mitsis@windriver.com>
Change-Id: I00bbee2d78ef345a00399708215bd9e1ef5298d2
2016-02-05 20:13:41 -05:00
Peter Mitsis 101d486834 Rename k_args 'Srce' field to 'alloc'
Since multi-node systems are not supported, the 'Srce' field now only serves
one purpose--to indicate whether the packet was allocated from the command
packet pool.  As such, a better name (and type) for it is 'alloc' (of type
'bool') since 'Srce' (of type 'knode_t') suggest multi-node support.

Signed-off-by: Peter Mitsis <peter.mitsis@windriver.com>
Change-Id: I47a935af13fd55dbca23c879841d68caf895eae4
2016-02-05 20:13:41 -05:00
Peter Mitsis 265448a23d Remove 'destnode' from moved_req structure
The 'destnode' field in the moved_req structure is only relevant to multi-
node systems.  Furthermore, with the absence of the 'destnode' field,
the routine setup_movedata() requires one less parameter.

Signed-off-by: Peter Mitsis <peter.mitsis@windriver.com>
Change-Id: Ib5deb1369730ccd42ba25d8352d2365d404f9ed3
2016-02-05 20:13:41 -05:00
Peter Mitsis cfa7411121 Cosmetic: remove cruft from mycopypacket()
Signed-off-by: Peter Mitsis <peter.mitsis@windriver.com>
Change-Id: Ia95366325668476a222c85748f3141d09767c72a
2016-02-05 20:13:41 -05:00
Peter Mitsis d1179f2c54 Remove Dest field from k_args
The 'Dest' field in the 'k_args' structure is only relevant to
a multi-node system.

Signed-off-by: Peter Mitsis <peter.mitsis@windriver.com>
Change-Id: I6942f503af6ebadd62a2bf10b2a3bd0c81850bb8
2016-02-05 20:13:41 -05:00
Peter Mitsis bd4b6797e1 CMD_PKT_SIZE_IN_WORDS uses sizeof()
Changes the definition of CMD_PKT_SIZE_IN_WORDS from a hard-coded value to
one that uses sizeof().  This makes the system less brittle should the size
of k_args change.

Change-Id: If9ccb7f2a2a6d13bcf62eea3b0cf52942db0071c
Signed-off-by: Peter Mitsis <peter.mitsis@windriver.com>
2016-02-05 20:13:41 -05:00
Peter Mitsis de00c105b9 Remove references to local objects in mailbox code
Concepts such as local objects suggest the existence of remote objects,
which implies a multi-node system.  Multi-node systems are not supported.

Signed-off-by: Peter Mitsis <peter.mitsis@windriver.com>
Change-Id: I0e6b1c34c35a0f68ad1ccfbf7d9c677ef8b8ae64
2016-02-05 20:13:41 -05:00
Peter Mitsis fe4c22852a Formatting: adjust indentation in copypacket()
Fixes the level of indentation in the routine copypacket().

Signed-off-by: Peter Mitsis <peter.mitsis@windriver.com>
Change-Id: Id788a3a8ef211c9b75c67bd511fad4e624f58e5a
2016-02-05 20:13:41 -05:00
Peter Mitsis 7e0ee5ab3e Reorder routines in movedata.c
Reorders routines in movedata.c to eliminate the forward declarations.

Signed-off-by: Peter Mitsis <peter.mitsis@windriver.com>
Change-Id: I74bff9025f221d94688b51cef4cb7499ce61dd39
2016-02-05 20:13:41 -05:00
Peter Mitsis 3b70db2da3 Remove references to multi-node systems in movedata.c
Multi-node systems are not supported.

Signed-off-by: Peter Mitsis <peter.mitsis@windriver.com>
Change-Id: If16ffde2bf18d8729bc7d16e558db146b042bb36
2016-02-05 20:13:41 -05:00
Peter Mitsis 6f39a8d627 Remove references to local and remote pools
The concept of 'local' and 'remote' pools only applies to multi-node systems.

Signed-off-by: Peter Mitsis <peter.mitsis@windriver.com>
Change-Id: I747d28c845174ca36c9788b7412f6fe5cc71f3f7
2016-02-05 20:13:41 -05:00
Peter Mitsis 4d8c717c69 Remove _task_mem_pool_move()
The routine _task_mem_pool_move() is only relevant to a multi-node system.

Signed-off-by: Peter Mitsis <peter.mitsis@windriver.com>
Change-Id: I191e43f24aa56159a4c4669ff135beceade56284
2016-02-05 20:13:41 -05:00
Peter Mitsis 7f5780a46c Remove task_mem_pool_moveXXX() routines from test_pool project
The task_mem_pool_moveXXX() routines are only relevant to multi-node systems.

Signed-off-by: Peter Mitsis <peter.mitsis@windriver.com>
Change-Id: I575c32a74b158c8b9b6ac6e1baef7b0e4f988270
2016-02-05 20:13:41 -05:00
Peter Mitsis 6a238004c0 Remove _task_mem_pool_move reference from footprint project
The routine _task_mem_pool_move() is only relevant to a multi-node system.

Signed-off-by: Peter Mitsis <peter.mitsis@windriver.com>
Change-Id: I1a97e2b87d29df7a1a63bcd6d8eea290382f3a7e
2016-02-05 20:13:41 -05:00
Peter Mitsis d1c4f08765 Update irq locking/unlocking comments
Removes references to 'local' CPU from IRQ locking/unlocking comments.  On
a single node system, the CPU must by definition be local.

Signed-off-by: Peter Mitsis <peter.mitsis@windriver.com>
Change-Id: I56297f01db82a2ed798a7d6b5cabf4c04950d15e
2016-02-05 20:13:41 -05:00
Peter Mitsis 4b19f3c661 Remove references to SyncLocal
The SyncLocal symbol is not used.

Signed-off-by: Peter Mitsis <peter.mitsis@windriver.com>
Change-Id: I87c55b8869bbe447436f6e2ccf3d3652b50532ce
2016-02-05 20:13:40 -05:00
Dmitriy Korovkin dd084a21a4 Fix benchmark projects makefiles to use proper configuration for i8253
Fix benchmark projects makefiles to use i8253 specific configuration
for only two variants of generic_pc BSP - pentium4 and minuteia, but
not for the whole BSP.

Change-Id: Iac89e29d2e26ee411d9c2d2fbcd3335c0e71fb06
Signed-off-by: Dmitriy Korovkin <dmitriy.korovkin@windriver.com>
2016-02-05 20:13:40 -05:00
Dmitriy Korovkin 869582eb92 Remove PowerPC artefacts from test_fp_sharing test
PowerPC is not supported platform. It's components are to be removed.

Signed-off-by: Dmitriy Korovkin <dmitriy.korovkin@windriver.com>
2016-02-05 20:13:40 -05:00
Dmitriy Korovkin 7a3ee5e95e Rename driver header files according to naming standard
Change-Id: Ib384fd93c3d35abab1754b37d6464ff7dfe4a893
Signed-off-by: Dmitriy Korovkin <dmitriy.korovkin@windriver.com>
2016-02-05 20:13:40 -05:00
Dmitriy Korovkin f51049b81c Reorganization of time calculating macros
Move time calculation macros from application directory to kernel
directory, since it is used by a kernel component.
In order to follow namespace and naming conventions, convert
macros to SYS_CLOCK_HW_CYCLES_TO_NS* form.

Change-Id: I96e9149c399adc363aed5095ae82a1abc78d2977
Signed-off-by: Dmitriy Korovkin <dmitriy.korovkin@windriver.com>
2016-02-05 20:13:40 -05:00
Johan Hedberg a789d4e97b nanokernel: Add scheduling context-independent API for starting fibers
When the exact scheduling context is not known it's convenient not to
have to spell out the context in the name of the *_fiber_start()
function. All of the fiber starting APIs map to the same _FiberStart()
implementation, so all we have to do is to declare another alias for
it.

Change-Id: Ic6862383422f89ad7dc4f401e76d610826163bb9
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
2016-02-05 20:13:40 -05:00
Johan Hedberg 9599f21dfb nanokernel: Add scheduling context-independent API for semaphores
When the exact scheduling context is not known it's convenient to have
a wrapper API that uses context_type_get() to call the right function
at runtime.

Change-Id: I02b2ac9039519468f5501571243426a6a57ffc4d
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
2016-02-05 20:13:40 -05:00
Johan Hedberg 68224c1c69 nanokernel: Add scheduling context-independent APIs for nano_fifo
When the exact scheduling context is not known it's convenient to have
a wrapper API that uses context_type_get() to call the right function
at runtime.

Change-Id: Ie72a4b78d53f664575c1d9dfeace52b53d018850
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
2016-02-05 20:13:40 -05:00
Allan Stephens 4baf0f0e15 sysgen: Detect invalid number of arguments for keywords
Now terminates process with an error message if there is a mismatch
between a keyword and the expected number of arguments that follow it.

Change-Id: Ib1902161937cae482e52be449c89789f8ff816a5
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
2016-02-05 20:13:40 -05:00
Allan Stephens d00b802a6d sysgen: Terminate build when error detected
System generator now terminates with a non-zero exit code when
it detects an error, allowing the build system to detect the failure
and terminate the build.

Note: Sysgen only detects invalid keywords at this time. It would be
nice if it also detected other syntax and semantic errors.

Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
2016-02-05 20:13:40 -05:00
Allan Stephens 5b76cee54e sysgen: Improve readability of kernel_main.c
Adds blank lines to kernel_main.c output file in places where
unrelated variables were juxtaposed. Also suppresses an unwanted
blank line that occurred when no project-specific events were
defined.

Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
2016-02-05 20:13:40 -05:00
Allan Stephens 4cb503d165 sysgen: Standardize output file header creation routine naming
Makes the generation of kernel_main.c more consistent with the
generation of the other two output files.

Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
2016-02-05 20:13:40 -05:00
Allan Stephens 3cddec6551 sysgen: Standardize newline creation in output files
The routine that appends data to kernel_main.c no longer adds
a newline character, similar to what is done during the generation
of microkernel_objs.h and vxmicro.h.

Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
2016-02-05 20:13:40 -05:00
Allan Stephens 04012be07c sysgen: Relocate code for processing output directory name
Reworks output directory name processing so that it is invoked
at the bottom of the file, just like the rest of the program's
mainline. (It's previous location wasn't incorrect, but it could
be easily overlooked.)

Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
2016-02-05 20:13:40 -05:00
Allan Stephens 779932139c sysgen: Improve location of functions and global variables
Relocates a handful of functions and global variables that were
located in places that were logically inconsistent with most other
functions and variables.

Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
2016-02-05 20:13:40 -05:00
Allan Stephens ed9499e83f sysgen: Enhancements to comments
Adds, removes, and revises various comments to make it easier
to figure out what is going on.

Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
2016-02-05 20:13:40 -05:00
Allan Stephens fc86999380 sysgen: Cosmetic changes to achieve PEP 8 conformance
Makes cosmetic changes to address all issues reported by
the pep8 Python programming style tool.

Note: All future changes to sysgen should be run against pep8
to ensure no new issues are introduced.

Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
2016-02-05 20:13:40 -05:00
Allan Stephens 2801be129a Eliminate _nano_start()
The helper function _nano_start() is no longer required (due to the
recent relocation of boot banner and kernel build timestamp code),
so the kernel's initialization code calls _nano_fiber_swap() directly.

Change-Id: I06b9f473715afbfbdd4105b0def3445f1b2e3583
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
2016-02-05 20:13:40 -05:00
Allan Stephens 5555bcff31 Relocate boot banner and kernel build timestamp handling
Moves boot banner and kernel build timestamp code to the kernel's
main initialization routine, since it doesn't really belong in a
generic fiber-processing file.

Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
2016-02-05 20:13:40 -05:00
Peter Mitsis 68637b0fdc Remove K_memcpyrpl()
The K_memcpyrpl() routine is not applicable to a single node system.

Signed-off-by: Peter Mitsis <peter.mitsis@windriver.com>
Change-Id: Ia778a6fc43e390a6c0478d641c206d2423a93c27
2016-02-05 20:13:40 -05:00
Peter Mitsis 4a413fc424 Remove K_memcpyreq()
The K_memcpyreq() routine is not applicable to a single node system.

Signed-off-by: Peter Mitsis <peter.mitsis@windriver.com>
Change-Id: I6cdc056f4575099a8838f0bcf32e87479295452d
2016-02-05 20:13:40 -05:00
Peter Mitsis 26d6f89d3b Remove K_remreply()
The K_remreply() routine is not applicable to a single node system.

Signed-off-by: Peter Mitsis <peter.mitsis@windriver.com>
Change-Id: I0e99a9db077d5625c981ed219461efa7c955072e
2016-02-05 20:13:40 -05:00
Peter Mitsis 6c4c59c75c Remove references to boot ports
Boot ports are not applicable to single node systems.

Signed-off-by: Peter Mitsis <peter.mitsis@windriver.com>
Change-Id: I3512a5a0e2a2ba35d4e73a00d8329d301f2bd637
2016-02-05 20:13:40 -05:00
Peter Mitsis b52882f540 Minimize k_boot.h's header file inclusion
The header file k_boot.h does not need everything that "k_types.h" drags in.
It only needs "stdint.h" for the uint32_t type.  This has an immediate impact
on "flashboot.c" as it was improperly relying upon the extra items that
"k_boot.h" dragged in.

Signed-off-by: Peter Mitsis <peter.mitsis@windriver.com>
Change-Id: Ib8bfbec52a1198846295d549091dc30bf041d97a
2016-02-05 20:13:40 -05:00
Peter Mitsis ae0639c73d Remove multi-node related symbols from k_boot.h
Multi-node systems are not supported.

Signed-off-by: Peter Mitsis <peter.mitsis@windriver.com>
Change-Id: Ic08f2e2cd69fb9db346d2282ddefa206f662fcad
2016-02-05 20:13:40 -05:00
Peter Mitsis dac410fea5 Remove file netload.c
The file netload.c is for multi-node systems only.

Signed-off-by: Peter Mitsis <peter.mitsis@windriver.com>
Change-Id: I612ccb5552d7781f9a06e1b4db3dce97cf99f91a
2016-02-05 20:13:40 -05:00
Peter Mitsis ee8213a6e0 Remove references to NODEx.c
"NODEx.c" is no longer used.  The correct file is "kernel_main.c".

Signed-off-by: Peter Mitsis <peter.mitsis@windriver.com>
Change-Id: I62523b9181a446097ef3bd278553e097183ed307
2016-02-05 20:13:40 -05:00
Sarah Sharp 030d59ce4b Clarify set_state_bit: rename variables, add comments.
Rename local variables to provide more clarity and improve readability:
 - X -> task_ptr
 - f_old -> old_state_bits
 - f_new -> new_state_bits
 - H -> task_queue
 - Y -> cur_task

Add comments to clarify what this function actually does without needing
to open two additional files (include/microkernel/k_struct.h and
kernel/microkernel/core/global.c).

This function is called when a task needs to be marked as not runnable.
A task can be not runnable for a variety of reasons, which are tracked
in a bitmask defined in kernel/microkernel/include/minik.h.

Tasks that are runnable are stored in a global array, K_PrioList, that
contains a list for each task priority level.  Tasks that have
transitioned to not being runnable will be removed from their priority
list by this function.

Change-Id: I07a1180e75e30cdef472c5f77638fc5971ddbaeb
Signed-off-by: Sarah Sharp <sarah.a.sharp@intel.com>
2016-02-05 20:13:40 -05:00
Peter Mitsis 4c37b6b726 Remove comment referencing NODEx.c
The file NODEx.c is obsolete; it has been replaced with kernel_main.c.
Even if it the comment contents were fixed, it would offer no value.

Signed-off-by: Peter Mitsis <peter.mitsis@windriver.com>
2016-02-05 20:13:40 -05:00