Commit graph

42554 commits

Author SHA1 Message Date
Dan Kalowsky
88343e969c Renaming K_recvrpl to _k_mbox_receive_reply
Updating micro kernel functions to follow a consistent naming
convention.  Part of that process is the removal of camelCase
naming conventions for the preferred_underscore_method.

Change accomplished with the following script:

#!/bin/bash
echo "Searching for ${1} to replace with ${2}"
find . -type f \( -iname \*.c -o -iname \*.h -o -iname \*.s -o -iname \*.kconf \) \
       -not \( -path host/src/genIdt -prune \) \   \
       -not \( -path host/src/gen_tables -prune \) \
       -print | xargs sed -i "s/"${1}"/"${2}"/g"

Change-Id: If7f5e78d6dd5492dbbbcc080c2e822f33eb1c967
Signed-off-by: Dan Kalowsky <daniel.kalowsky@intel.com>
2016-02-05 20:13:46 -05:00
Dan Kalowsky
9ac922e096 Renaming K_recvack to _k_mbox_receive_ack
Updating micro kernel functions to follow a consistent naming
convention.  Part of that process is the removal of camelCase
naming conventions for the preferred_underscore_method.

Change accomplished with the following script:

#!/bin/bash
echo "Searching for ${1} to replace with ${2}"
find . -type f \( -iname \*.c -o -iname \*.h -o -iname \*.s -o -iname \*.kconf \) \
       -not \( -path host/src/genIdt -prune \) \   \
       -not \( -path host/src/gen_tables -prune \) \
       -print | xargs sed -i "s/"${1}"/"${2}"/g"

Change-Id: I3de0a16879f142ef20830dfc429c989f10c2cd92
Signed-off-by: Dan Kalowsky <daniel.kalowsky@intel.com>
2016-02-05 20:13:46 -05:00
Dan Kalowsky
5ea892cffc Renaming K_sendreq to _k_mbox_send_request
Updating micro kernel functions to follow a consistent naming
convention.  Part of that process is the removal of camelCase
naming conventions for the preferred_underscore_method.

Change accomplished with the following script:

#!/bin/bash
echo "Searching for ${1} to replace with ${2}"
find . -type f \( -iname \*.c -o -iname \*.h -o -iname \*.s -o -iname \*.kconf \) \
       -not \( -path host/src/genIdt -prune \) \   \
       -not \( -path host/src/gen_tables -prune \) \
       -print | xargs sed -i "s/"${1}"/"${2}"/g"

Change-Id: I628e057f54eb72901c3753b6b8b4849c4cd046c0
Signed-off-by: Dan Kalowsky <daniel.kalowsky@intel.com>
2016-02-05 20:13:46 -05:00
Dan Kalowsky
35d15ec09a Renaming K_sendrlp to _k_mbox_send_reply
Updating micro kernel functions to follow a consistent naming
convention.  Part of that process is the removal of camelCase
naming conventions for the preferred_underscore_method.

Change accomplished with the following script:

#!/bin/bash
echo "Searching for ${1} to replace with ${2}"
find . -type f \( -iname \*.c -o -iname \*.h -o -iname \*.s -o -iname \*.kconf \) \
       -not \( -path host/src/genIdt -prune \) \   \
       -not \( -path host/src/gen_tables -prune \) \
       -print | xargs sed -i "s/"${1}"/"${2}"/g"

Change-Id: I02122837d74c9d7c5c406e644feda6923b5161f2
Signed-off-by: Dan Kalowsky <daniel.kalowsky@intel.com>
2016-02-05 20:13:46 -05:00
Dan Kalowsky
217de05b4b Renaming K_sendack to _k_mbox_send_ack
Updating micro kernel functions to follow a consistent naming
convention.  Part of that process is the removal of camelCase
naming conventions for the preferred_underscore_method.

Change accomplished with the following script:

#!/bin/bash
echo "Searching for ${1} to replace with ${2}"

echo "Checking C, CPP, H, HPP, and s files..."
find . -type f \( -iname \*.[ch] -o -iname \*.[ch]pp -o -iname \*.s \) \
       -not \( -path host/src/genIdt -prune \) \
       -not \( -path host/src/gen_tables -prune \) \
       -print | xargs sed -i "s/"${1}"/"${2}"/g"

echo "Checking KCONF, LST, and PY files..."
find . -type f \( -iname \*.lst -o -iname \*.kconf -o -iname \*.py \) \
       -not \( -path host/src/genIdt -prune \) \
       -not \( -path host/src/gen_tables -prune \) \
       -print | xargs sed -i "s/"${1}"/"${2}"/g"

Change-Id: Iccdd40f652f71273830155349a957839be970bd9
Signed-off-by: Dan Kalowsky <daniel.kalowsky@intel.com>
2016-02-05 20:13:46 -05:00
Dan Kalowsky
842d2c28e2 Renaming copypacket to copy_packet
Updating micro kernel functions to follow a consistent naming
convention.  Part of that process is the removal of camelCase
naming conventions for the preferred_underscore_method.

Change accomplished with the following script:

#!/bin/bash
echo "Searching for ${1} to replace with ${2}"

echo "Checking C, CPP, H, HPP, and s files..."
find . -type f \( -iname \*.[ch] -o -iname \*.[ch]pp -o -iname \*.s \) \
       -not \( -path host/src/genIdt -prune \) \
       -not \( -path host/src/gen_tables -prune \) \
       -print | xargs sed -i "s/"${1}"/"${2}"/g"

echo "Checking KCONF, LST, and PY files..."
find . -type f \( -iname \*.lst -o -iname \*.kconf -o -iname \*.py \) \
       -not \( -path host/src/genIdt -prune \) \
       -not \( -path host/src/gen_tables -prune \) \
       -print | xargs sed -i "s/"${1}"/"${2}"/g"

Change-Id: Ie6a828039b10107c24965c4e8a3c7e71c7c10389
Signed-off-by: Dan Kalowsky <daniel.kalowsky@intel.com>
2016-02-05 20:13:46 -05:00
Dan Kalowsky
c6f22be75f Renaming K_taskirqalloc to _k_task_irq_alloc
Updating micro kernel functions to follow a consistent naming
convention.  Part of that process is the removal of camelCase
naming conventions for the preferred_underscore_method.

Change accomplished with the following script:

#!/bin/bash
echo "Searching for ${1} to replace with ${2}"

echo "Checking C, CPP, H, HPP, and s files..."
find . -type f \( -iname \*.[ch] -o -iname \*.[ch]pp -o -iname \*.s \) \
       -not \( -path host/src/genIdt -prune \) \
       -not \( -path host/src/gen_tables -prune \) \
       -print | xargs sed -i "s/"${1}"/"${2}"/g"

echo "Checking KCONF, LST, and PY files..."
find . -type f \( -iname \*.lst -o -iname \*.kconf -o -iname \*.py \) \
       -not \( -path host/src/genIdt -prune \) \
       -not \( -path host/src/gen_tables -prune \) \
       -print | xargs sed -i "s/"${1}"/"${2}"/g"

Change-Id: I098a03afcef8319c8ce8410a67de250143713498
Signed-off-by: Dan Kalowsky <daniel.kalowsky@intel.com>
2016-02-05 20:13:46 -05:00
Dan Kalowsky
e91808154e Renaming K_eventtesttmo to _k_event_test_timeout
Updating micro kernel functions to follow a consistent naming
convention.  Part of that process is the removal of camelCase
naming conventions for the preferred_underscore_method.

Change accomplished with the following script:

#!/bin/bash
echo "Searching for ${1} to replace with ${2}"

echo "Checking C, CPP, H, HPP, and s files..."
find . -type f \( -iname \*.[ch] -o -iname \*.[ch]pp -o -iname \*.s \) \
       -not \( -path host/src/genIdt -prune \) \
       -not \( -path host/src/gen_tables -prune \) \
       -print | xargs sed -i "s/"${1}"/"${2}"/g"

echo "Checking KCONF, LST, and PY files..."
find . -type f \( -iname \*.lst -o -iname \*.kconf -o -iname \*.py \) \
       -not \( -path host/src/genIdt -prune \) \
       -not \( -path host/src/gen_tables -prune \) \
       -print | xargs sed -i "s/"${1}"/"${2}"/g"

Change-Id: I3919b2dda4a37c2c81e070179eae251131b14be4
Signed-off-by: Dan Kalowsky <daniel.kalowsky@intel.com>
2016-02-05 20:13:45 -05:00
Dan Kalowsky
58d8a4020c Renaming _PowerSave to _power_save
Updating micro kernel functions to follow a consistent naming
convention.  Part of that process is the removal of camelCase
naming conventions for the preferred_underscore_method.

Change accomplished with the following script:

#!/bin/bash
echo "Searching for ${1} to replace with ${2}"

echo "Checking C, CPP, H, HPP, and s files..."
find . -type f \( -iname \*.[ch] -o -iname \*.[ch]pp -o -iname \*.s \) \
       -not \( -path host/src/genIdt -prune \) \
       -not \( -path host/src/gen_tables -prune \) \
       -print | xargs sed -i "s/"${1}"/"${2}"/g"

echo "Checking KCONF, LST, and PY files..."
find . -type f \( -iname \*.lst -o -iname \*.kconf -o -iname \*.py \) \
       -not \( -path host/src/genIdt -prune \) \
       -not \( -path host/src/gen_tables -prune \) \
       -print | xargs sed -i "s/"${1}"/"${2}"/g"

Change-Id: I71b09ddc214c360c61b4736cef72597334bc47f3
Signed-off-by: Dan Kalowsky <daniel.kalowsky@intel.com>
2016-02-05 20:13:45 -05:00
Dan Kalowsky
1e511b2066 Renaming _GetNextTimerExpiry to _get_next_timer_expiry
Updating micro kernel functions to follow a consistent naming
convention.  Part of that process is the removal of camelCase
naming conventions for the preferred_underscore_method.

Change accomplished with the following script:

#!/bin/bash
echo "Searching for ${1} to replace with ${2}"

echo "Checking C, CPP, H, HPP, and s files..."
find . -type f \( -iname \*.[ch] -o -iname \*.[ch]pp -o -iname \*.s \) \
       -not \( -path host/src/genIdt -prune \) \
       -not \( -path host/src/gen_tables -prune \) \
       -print | xargs sed -i "s/"${1}"/"${2}"/g"

echo "Checking KCONF, LST, and PY files..."
find . -type f \( -iname \*.lst -o -iname \*.kconf -o -iname \*.py \) \
       -not \( -path host/src/genIdt -prune \) \
       -not \( -path host/src/gen_tables -prune \) \
       -print | xargs sed -i "s/"${1}"/"${2}"/g"

Change-Id: Id84ccdabfbbe12d3c13d09ad68d97b0a2fcf72e1
Signed-off-by: Dan Kalowsky <daniel.kalowsky@intel.com>
2016-02-05 20:13:45 -05:00
Dan Kalowsky
43779366ad Rename wlMonitorCalibrate to workload_monitor_calibrate
Updating micro kernel functions to follow a consistent naming
convention.  Part of that process is the removal of camelCase
naming conventions for the preferred_underscore_method.

Change accomplished with the following script:

echo "Searching for ${1} to replace with ${2}"

echo "Checking C, CPP, H, HPP, and s files..."
find . -type f \( -iname \*.[ch] -o -iname \*.[ch]pp -o -iname \*.s \) \
       -not \( -path host/src/genIdt -prune \) \
       -not \( -path host/src/gen_tables -prune \) \
       -print | xargs sed -i "s/"${1}"/"${2}"/g"

echo "Checking KCONF, LST, and PY files..."
find . -type f \( -iname \*.lst -o -iname \*.kconf -o -iname \*.py \) \
       -not \( -path host/src/genIdt -prune \) \
       -not \( -path host/src/gen_tables -prune \) \
       -print | xargs sed -i "s/"${1}"/"${2}"/g"

Change-Id: Ifca97426eeb9347374af392508f3a5526c3410b5
Signed-off-by: Dan Kalowsky <daniel.kalowsky@intel.com>
2016-02-05 20:13:45 -05:00
Dan Kalowsky
490c702343 Renaming _WlLoop to _workload_loop
Updating micro kernel functions to follow a consistent naming
convention.  Part of that process is the removal of camelCase
naming conventions for the preferred_underscore_method.

Change accomplished with the following script:

echo "Searching for ${1} to replace with ${2}"

echo "Checking C, CPP, H, HPP, and s files..."
find . -type f \( -iname \*.[ch] -o -iname \*.[ch]pp -o -iname \*.s \) \
       -not \( -path host/src/genIdt -prune \) \
       -not \( -path host/src/gen_tables -prune \) \
       -print | xargs sed -i "s/"${1}"/"${2}"/g"

echo "Checking KCONF, LST, and PY files..."
find . -type f \( -iname \*.lst -o -iname \*.kconf -o -iname \*.py \) \
       -not \( -path host/src/genIdt -prune \) \
       -not \( -path host/src/gen_tables -prune \) \
       -print | xargs sed -i "s/"${1}"/"${2}"/g"

Change-Id: I26965c7640b6caeb73ac11b4f6d5fa793a0be65b
Signed-off-by: Dan Kalowsky <daniel.kalowsky@intel.com>
2016-02-05 20:13:45 -05:00
David Norris
8a0db0aa11 Convert nano/test TC_END to TC_END_RESULT
All uses of TC_END are functionaly equivalent to each other
and to the TC_END_RESULT macro.  Change TC_END to TC_END_RESULT
so that they are consistent.  In the future when TC_END_RESULT
is extended/expanded, it only has to be done in one place.

Change-Id: I61bad52098187f6115896688e0a545d202b6fd05
Signed-off-by: David Norris <david.norris@intel.com>
2016-02-05 20:13:45 -05:00
David Norris
df8f130910 add calls to TC_END_RESULT to be consistent
most places call TC_END_RESULT before calling TC_END_REPORT.
These new calls to TC_END_RESULT are added so it is used
consistently in the microkernel tests.

Change-Id: I1125662c47a487b1bf4054d63ee2b9dc314a253e
Signed-off-by: David Norris <david.norris@intel.com>
2016-02-05 20:13:45 -05:00
David Norris
9a87dfd4aa Add more host utils to .gitignore
these added files should also be ignored by git.

Change-Id: I979fe981fe5073c6783c312fefb3a0569df721c5
Signed-off-by: David Norris <david.norris@intel.com>
2016-02-05 20:13:45 -05:00
Peter Mitsis
7637d818fc Fix null byte padding in strncpy()
When the source string is shorter than the maximum number of bytes to copy
to the destination string, strncpy() must fill the remaining bytes in the
destination string with null bytes.

Change-Id: I419d11efd1dd33b1437d1891f1bf2ec7647826ee
Signed-off-by: Peter Mitsis <peter.mitsis@windriver.com>
2016-02-05 20:13:45 -05:00
Benjamin Walsh
531f1c3695 samples: remove explicit enabling of SW_ISR_TABLE/DYNAMIC
These options are now enabled by default.

Change-Id: Ie7f2abb7b7c89f1a5a02ddc831367710a3d72c1f
Signed-off-by: Benjamin Walsh <benjamin.walsh@windriver.com>
2016-02-05 20:13:45 -05:00
Benjamin Walsh
e1308ebd37 arm: enable SW_ISR_TABLE/DYNAMIC by default
Enable by default the easy usage of connecting interrupts. If someone
wants to connect interrupts by hardcoding the ISR in the vector table,
they now have to disable these two options.

Change-Id: I5fd14784596e7c52d3c43fddc4fcb51bc8850db3
Signed-off-by: Benjamin Walsh <benjamin.walsh@windriver.com>
2016-02-05 20:13:45 -05:00
Allan Stephens
3f6c0e51dd Remove unnecessary sample project use of GDB_INFO
Revises ARM M3/4 ISR installation project, which doesn't actually
require the GDB_INFO capability.

Change-Id: I9eefba5678e2c4a0fa7a8e57df603d25af144eb1
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
2016-02-05 20:13:45 -05:00
Allan Stephens
069ff41d01 Cleanup of GDB_INFO configuration option
1) Relocates the GDB_INFO configuration option so that it appears
in the same menu as other debugging options.

2) Revises the prompt and help text to better describe the option's
purpose and impacts.

3) Corrects an inverted depency relationship; selecting this option
now automatically enables CONTEXT_MONITOR, rather than being dependent
upon it.

Change-Id: Ib5e7e3a594e7190972fa22fd0287694ae5acd917
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
2016-02-05 20:13:45 -05:00
Andrei Emeltchenko
fbb1526d1a Rename _IsrWrapper camelCase to _isr_wrapper
Change-Id: I217eced3965fbf313a7e0fbef38db9dd876fcf80
Signed-off-by: Andrei Emeltchenko <andrei.emeltchenko@intel.com>
2016-02-05 20:13:45 -05:00
Andrei Emeltchenko
2e0f3845f7 Rename _SpuriousIRQ to _irq_spurious
Renaming camelCase _SpuriousIRQ makes code more readable and
consistent.

Change-Id: I2bda4d107091384811d9f9187f3529960842631e
Signed-off-by: Andrei Emeltchenko <andrei.emeltchenko@intel.com>
2016-02-05 20:13:45 -05:00
Andrei Emeltchenko
c6a72c2f81 serial_console: Use static wrappers with right _IntExit()
Instead of calling directly isr call static wrapper with right
_IntExit() at the end.

Change-Id: Ic5ca74200be6477837bf6a25803540990e9e8889
Signed-off-by: Andrei Emeltchenko <andrei.emeltchenko@intel.com>
2016-02-05 20:13:45 -05:00
Andrei Emeltchenko
c121074115 ti_lm3s6965: Reformat comment block making it readable
Change-Id: Id88b6201aaf7d8565f627cb2c6f1c5523167351f
Signed-off-by: Andrei Emeltchenko <andrei.emeltchenko@intel.com>
2016-02-05 20:13:45 -05:00
Andrei Emeltchenko
4be01c91cf fsl_frdm_k64f: Support SW_ISR_TABLE for serial console
Add support for fsl_frdm_k64f configuration with
CONFIG_SW_ISR_TABLE_DYNAMIC and CONFIG_SW_ISR_TABLE. Entry for serial
irq is removed from vector table to be handled is ISR SW table.

Change-Id: I03b2a6f71aab09660587a290a0e69bdac67ef66c
Signed-off-by: Andrei Emeltchenko <andrei.emeltchenko@intel.com>
2016-02-05 20:13:45 -05:00
Andrei Emeltchenko
20ce390664 ti_lm3s6965: Support SW_ISR_TABLE for serial console
Add support for ti_lm3s6965 configuration with
CONFIG_SW_ISR_TABLE_DYNAMIC and CONFIG_SW_ISR_TABLE. Entry for serial
irq is removed from vector table to be handled is ISR SW table.

Change-Id: I6bda7a541aad979e4a50beb9154bbeb3758b48ee
Signed-off-by: Andrei Emeltchenko <andrei.emeltchenko@intel.com>
2016-02-05 20:13:45 -05:00
Andrei Emeltchenko
f1e1897ade console: Replace uartConsoleInit with uart_console_init
Rename camelCase uartConsoleInit function for consistency with the
rest of the code in serial console.

Change-Id: I519737070538e9c0f52a8d110a3eff68e0185ce2
Signed-off-by: Andrei Emeltchenko <andrei.emeltchenko@intel.com>
2016-02-05 20:13:45 -05:00
Andrei Emeltchenko
dfa5f2371b serial_console: Rename console_uart_isr to uart_console_isr
Following comments received during review rename console_uart_isr to
uart_console_isr for consistency reason.

Change-Id: Ibee1dec40ee19a9095f78969a07ffb73518fffbb
Signed-off-by: Andrei Emeltchenko <andrei.emeltchenko@intel.com>
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:13:45 -05:00
Peter Mitsis
425437037d Remove references to K_DataFree
K_DataFree is only relevant to multi-node systems.

Change-Id: I1892ae94df6d964aca66ba9b06655f7b3e47c812
Signed-off-by: Peter Mitsis <peter.mitsis@windriver.com>
2016-02-05 20:13:45 -05:00
Peter Mitsis
a7407cbeb6 Remove references to LinkIn and LinkOut
The LinkIn[] and LinkOut[] arrays are not used.

Change-Id: I8c2909a587160f0715aa3a82a41d78b86d4ea56c
Signed-off-by: Peter Mitsis <peter.mitsis@windriver.com>
2016-02-05 20:13:45 -05:00
Peter Mitsis
0e0ca54364 Remove unused file mallocInit.h
Not only is the file mallocInit.h not used, that file is the wrong place to
declare the prototypes for malloc() and free() (which do not even currently
have definitions).

Change-Id: I4733085602eb106f629ba6b98cecec04d117728e
Signed-off-by: Peter Mitsis <peter.mitsis@windriver.com>
2016-02-05 20:13:45 -05:00
Allan Stephens
e4b70a95fb Eliminate GEN_OFFSET_SYM_HOST() macro
Gets rid of code that creates absolute symbols for data structures
that are no longer referenced by external tools, as well as the
macro that was used to generate them.

The code that creates absolute symbols for context monitoring-related
symbols is retained, but is now directly tied to the CONTEXT_MONITORING
configuration option upon which those symbols depend.

Change-Id: I6b2ce46d9ab9592a478f591cb074c4c163e9ba0f
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
2016-02-05 20:13:45 -05:00
Allan Stephens
b32f81dbe4 Rename "activeLink" field of CCS to "next_context"
Modifies the name of this field to make its purpose clearer,
and to align with coding conventions.

Change-Id: I8de78df1a0459122067d650130e01078afb5af8a
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
2016-02-05 20:13:45 -05:00
Allan Stephens
9d0c28b892 Remove unnecessary sample project use of CONTEXT_MONITOR
Revises boot time benchmarking project so it doesn't utilize the
CONTEXT_MONITOR capabililty, which is still [EXPERIMENTAL] and thus
could result in potentially misleading results.

Revises ARM M3/4 ISR installation project, which doesn't actual
require the CONTEXT_MONITOR capability.

Change-Id: I45d2abe85a0049b0c745652d2e78210c9696016d
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
2016-02-05 20:13:45 -05:00
Allan Stephens
ab03ec2a62 Adapt tools support code to reflect its context monitoring nature
Revises code that was previously conditional on HOST_TOOLS_SUPPORT
but is now conditional on CONTEXT_MONITOR.

Change-Id: I78a9126c5a66128f5aafe6b4220b3c7c68e01335
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
2016-02-05 20:13:45 -05:00
Allan Stephens
c7661eb981 Transform HOST_TOOLS_SUPPORT config option to CONTEXT_MONITOR
Revises this option to make its purpose clearer, and to align it
with other experimantal monitoring-type configuration options.

Change-Id: I593bb7560b5a0544eb05affaa07b59dd78ea907e
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
2016-02-05 20:13:45 -05:00
Allan Stephens
26a2e74897 Add missing guard to handle multiple inclusion of k_mem.h
Change-Id: I788c465e167702e32ab0b0200683b4ad0f02c737
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
2016-02-05 20:13:45 -05:00
Allan Stephens
54e746c2c0 Eliminate use of VXMICRO_HOST_TOOLS
Gets rid of code that depends on VXMICRO_HOST_TOOLS, which is
never defined by the build system.

Change-Id: I51fefaa6d17899454211781ae4b925560fbc9383
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
2016-02-05 20:13:45 -05:00
Allan Stephens
5765af636f Remove unnecessary conditional comments
Eliminates conditional comments that don't really serve a useful
purpose.

Change-Id: I4f26cae67971d1d80bd06075da89e5573b0780d4
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
2016-02-05 20:13:45 -05:00
Johan Hedberg
7b6d006255 Bluetooth: Add Bluetooth init sample
This patch adds a very simple application for demonstrating the use of
the bt_init() API. Right now this is just tested to work with qemu and
the HCI UART driver with the help of the btproxy tool on the host OS
side. More information is available in the samples/bluetooth/README
file.

Change-Id: I03f92d158e9e5d57275241502bb8fa94350fc335
Co-authored-by: Andrei Emeltchenko <andrei.emeltchenko@intel.com>
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
2016-02-05 20:13:45 -05:00
Johan Hedberg
2581ad9313 Bluetooth: Add HCI UART (H4) driver
This patch adds a simple HCI UART (H4) driver that currently maps to
the second UART in the system. The main intention is to use this
together with qemu for accessing the Bluetooth controller available on
the host OS side.

The H4 HCI transport protocol is perhaps the simplest of the standard
HCI transports. It consists of a single byte in the beginning of each
packet which indicates the type of the packet: HCI event, HCI command,
ACL data, or SCO data (which we don't use at the moment).

Change-Id: I225a2a2361fbd7cd4ba82ea1f81ddc1271e9e7c2
Co-authored-by: Andrei Emeltchenko <andrei.emeltchenko@intel.com>
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
2016-02-05 20:13:44 -05:00
Johan Hedberg
d210d306d7 Bluetooth: Add full HCI initialization routine
This patch adds a full HCI initialization routine to retrieve all
relevant information from the controller.

We also need to introduce a new blocking bt_hci_cmd_send_sync() API
since some commands are conditional to the results of others. The API
is implemented with the help of a semaphore that's part of the
command's bt_buf struct. We wait on the semaphore and get it back once
the command has completed (with the help of the hci_cmd_done
function).

The patch also adds variables for storing various controller specific
parameters which will be needed later during the operation of the
stack. These variables are part of 'struct bt_dev' and get updated
through the respective command complete handlers.

A new bt_hci_reset() API is added which allows an application to reset
the controller state at any time by re-running the HCI init procedure.

Change-Id: I5b1a38e910d79ad5fe806467bc51388eedc9c8f9
Co-authored-by: Andrei Emeltchenko <andrei.emeltchenko@intel.com>
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
2016-02-05 20:13:44 -05:00
Johan Hedberg
45554f5b72 Bluetooth: Add basic HCI command processing
This patch adds basic HCI command processing into the HCI core. The
commands are passed to the registered HCI driver with the help of a
FIFO and an associated fiber which wakes up whenever there's data in
the FIFO and the controller is ready to accept new commands.

The controller readiness (i.e. the num_cmds value returned in
cmd_status & cmd_complete events) is tracked with the help of a
semaphore. We only track whether the value is > 0 or not and never
send more than one command at a time. The reason for this is to keep
the tracking of pending command parameters simple in the form of a
single variable (dev.sent_cmd) rather than a list of pending buffers.

This patch also adds a very basic HCI initialization routine which
right now only consists of a single HCI_Reset command.

Change-Id: Ic68b298e4ea41334e49c3fe6bd4012a069ef6fdc
Co-authored-by: Andrei Emeltchenko <andrei.emeltchenko@intel.com>
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
2016-02-05 20:13:44 -05:00
Johan Hedberg
23a0df8b9b Bluetooth: Add HCI driver API
This patch adds a basic HCI driver registration API along with a fiber
to process data from the driver. A FIFO is used for receiving data
from the driver and waking up the respective fiber. To open and set up
the HCI transport for operation there's an open() callback passed to
the HCI core. This function will be called as soon as an application
initializes Bluetooth functionality through bt_init().

Change-Id: I780cca517a0dfc714f1ca35527e1c61e307345a0
Co-authored-by: Andrei Emeltchenko <andrei.emeltchenko@intel.com>
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
2016-02-05 20:13:44 -05:00
Johan Hedberg
64b117a9b1 Bluetooth: Add support for HCI data buffers
In order to manage incoming and outgoing HCI data (events, commands &
ACL data packets) we need to have some way of storing this into
buffers. This patch implements a 'pool' of buffers with the help of
the nano_fifo API. The pool is initially populated with all available
buffers. After this code can on demand request buffers from the pool
with the help of bt_buf_get() and return buffers back into the pool
with bt_buf_put().

Since we don't always know the execution context from where the API is
operated on, this patch also adds convenience fifo_get/fifo_put
wrappers that look up the exact context before calling the correct
nano_fifo API.

Change-Id: Ie7f6d450de865273171e21a000d5a14274d27d32
Co-authored-by: Andrei Emeltchenko <andrei.emeltchenko@intel.com>
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
2016-02-05 20:13:44 -05:00
Johan Hedberg
63e9480399 Bluetooth: Add basic HCI definitions
For performing a basic HCI initialization procedure we need
definitions for the related HCI commands and events. This patch adds
these into separate hci.h header file. More content will be added to
this file as corresponding functionality gets added to other areas of
the stack.

Change-Id: Ida7555cb0a3d30b8a44324cb14699eba8a1bcdee
Co-authored-by: Andrei Emeltchenko <andrei.emeltchenko@intel.com>
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
2016-02-05 20:13:44 -05:00
Johan Hedberg
ac63429177 Bluetooth: Add skeleton for HCI core
To introduce the Bluetooth stack to the tree we need some additions to
the configuration options, as well as the very basic header files. The
patch also adds a skeleton for a bt_init() function that applications
will need to call to initialize Bluetooth functionality.

Change-Id: Ideb24dfea584b71f514e05eb47654b659776133e
Co-authored-by: Andrei Emeltchenko <andrei.emeltchenko@intel.com>
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
2016-02-05 20:13:44 -05:00
Yonattan Louise
8489e2410d Rename K_DebugLowTime to _k_debug_sys_clock_tick_count
Updating global variable's name to follow a consistent naming convention.

Change accomplished with the following script:

   #!/bin/bash
   echo "Searching for ${1} to replace with ${2}"
   find ./ \( -name "*.[chs]" -o -name "sysgen.py" -o -name "*.kconf" \) \
            ! -path "./host/src/genIdt/*" \
            ! -path "*/outdir/*" | xargs sed -i 's/\b'${1}'\b/'${2}'/g';

Change-Id: Id55e2394076ed44694e3f761f8a0e6e7bf0b59f9
Signed-off-by: Yonattan Louise <yonattan.a.louise.mendoza@intel.com>
2016-02-05 20:13:44 -05:00
Yonattan Louise
a43d34d618 Rename K_wl_scale to _k_workload_scale
Updating global variable's name to follow a consistent naming convention.

Change accomplished with the following script:

   #!/bin/bash
   echo "Searching for ${1} to replace with ${2}"
   find ./ \( -name "*.[chs]" -o -name "sysgen.py" -o -name "*.kconf" \) \
            ! -path "./host/src/genIdt/*" \
            ! -path "*/outdir/*" | xargs sed -i 's/\b'${1}'\b/'${2}'/g';

Change-Id: Ia4fdc22a19ae6d338b78055c20b6581971a715d0
Signed-off-by: Yonattan Louise <yonattan.a.louise.mendoza@intel.com>
2016-02-05 20:13:44 -05:00
Yonattan Louise
79dd1b48bd Rename TaskSwitchCallBack to _k_task_switch_callback
Updating global variable's name to follow a consistent naming convention.

Change accomplished with the following script:

   #!/bin/bash
   echo "Searching for ${1} to replace with ${2}"
   find ./ \( -name "*.[chs]" -o -name "sysgen.py" -o -name "*.kconf" \) \
            ! -path "./host/src/genIdt/*" \
            ! -path "*/outdir/*" | xargs sed -i 's/\b'${1}'\b/'${2}'/g';

Change-Id: I18b2fb3250db6a7a6717b8329702e2b76a7492f9
Signed-off-by: Yonattan Louise <yonattan.a.louise.mendoza@intel.com>
2016-02-05 20:13:44 -05:00