Commit Graph

606 Commits

Author SHA1 Message Date
Mariusz Skamra 7dc3d35da6 Bluetooth: gatt: Unsubscribe notification from callback directly
With this patch application can unsubscribe notifications
from Subscribe value callback directly, if BT_GATT_ITER_STOP
is returned.

Change-Id: I7873594f5dbe6e8c5bef11bf397a74cdc870a464
Signed-off-by: Mariusz Skamra <mariusz.skamra@tieto.com>
2016-02-05 20:24:47 -05:00
Mariusz Skamra d42a70288b Bluetooth: gatt: Refactor read of attributes as a gatt client
This patch refactor reading of attribute values as a client.
Current MTU size is taken into account to determine if read
procedure has been completed or not.
For now, read procedure will be continued until whole is read,
or stopped by client.
Core Specification says that "The Read Blob Request is repeated
until the Read Blob Response’s Part Attribute Value parameter is
shorter than (ATT_MTU – 1)." (Vol 3, Part G 4.8.3)
Because application didn't know the current MTU value,
there was no way to determine if data received is complete.

Change-Id: I9d0e3f8638b58c3a4e39060333aedc133b775e3d
Signed-off-by: Mariusz Skamra <mariusz.skamra@tieto.com>
2016-02-05 20:24:46 -05:00
Jukka Rissanen 809f8ca16e net: apps: Fix compile error of coap-observe-client
Include path was missing.

Change-Id: I29c1b31143fe4d03cde5bd0cd63319960b817322
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:24:46 -05:00
Luiz Augusto von Dentz 8061ed1277 Bluetooth: Add l2cap-disconnect command to btshell
l2cap-disconnect can be used to disconnect or cancel a connection to
a server:

btshell> l2cap-disconnect
bt: bt_l2cap_chan_disconnect (0x0011260c): chan 0x0011065c scid 0x0040 dcid 0x0040
btshell> bt: bt_l2cap_recv (0x00114e00): Packet for CID 5 len 8
bt: l2cap_chan_recv (0x00114e00): chan 0x00111534 len 8
bt: l2cap_recv (0x00114e00): LE signaling code 0x07 ident 2 len 4
bt: le_disconn_rsp (0x00114e00): dcid 0x0040 scid 0x0040
bt: l2cap_chan_del (0x00114e00): conn 0x001111c0 chan 0x0011065c cid 0x0040
Channel 0011065c disconnected

Change-Id: If249748f98f9b006e4eb2f8722a6f698b372d959
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
2016-02-05 20:24:46 -05:00
Luiz Augusto von Dentz 2902d5c3c3 Bluetooth: Add l2cap-connect command to btshell
l2cap-connect can be used to connect to a server:

btshell> l2cap-connect 0080
bt: bt_l2cap_chan_connect (0x0011260c): conn 0x001111c0 chan 0x0011065c psm 0x0080
bt: l2cap_le_connect (0x0011260c): conn 0x001111c0 chan 0x0011065c psm 0x0080
bt: l2cap_chan_add (0x0011260c): conn 0x001111c0 chan 0x0011065c cid 0x0040
btshell> bt: bt_l2cap_recv (0x00114e00): Packet for CID 5 len 14
bt: l2cap_chan_recv (0x00114e00): chan 0x00111534 len 14
bt: l2cap_recv (0x00114e00): LE signaling code 0x15 ident 1 len 10
bt: le_conn_rsp (0x00114e00): dcid 0x0040 mtu 672 mps 230 credits 10 result 0x0000
Channel 0011065c connected

Change-Id: I8440615225e74d603c0f6bc3db4cf4bd46831841
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
2016-02-05 20:24:46 -05:00
Jukka Rissanen 0179583391 net: Fix the include paths in Contiki sources
Fix the include paths in Contiki sources so that we do not
have to create links to include directories during compilation.

Change-Id: I9316f1e90474e0ee563557deadd0bdc321cbb0fa
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:24:46 -05:00
Jukka Rissanen 2272312b8d net: Refactor code to use new generic net_buf API
Change-Id: Id008bbf43062ca0641a76edaabef47c650287444
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:24:46 -05:00
Mariusz Skamra 5fc0533414 Bluetooth: tester: Handle add descriptor command
This command will be used to add a descriptor to attributes database.

 >> send 2 4 0 02000302cccc
Received: hdr:  header(svc_id='\x02', op='\x04', ctrl_index='\x00',
							data_len=2)
Received data (hex): 04 00
Received data (ascii): ('\x04\x00',)

> ACL Data RX: Handle 64 flags 0x02 dlen 9
      ATT: Find Information Request (0x04) len 4
        Handle range: 0x0004-0x0004
< ACL Data TX: Handle 64 flags 0x00 dlen 10
      ATT: Find Information Response (0x05) len 5
        Format: UUID-16 (0x01)
        Handle: 0x0004
        UUID: Unknown (0xcccc)

Change-Id: I64b77ce735e2dff10ae15290fb174b7f99876014
Signed-off-by: Mariusz Skamra <mariusz.skamra@tieto.com>
2016-02-05 20:24:46 -05:00
Mariusz Skamra f83809991c Bluetooth: tester: Handle add included service command
This command is used by the tester to include service.
Service that is going to be included has to be already present
in the gatt database.

> ACL Data RX: Handle 64 flags 0x02 dlen 11
      ATT: Read By Type Request (0x08) len 6
        Handle range: 0x0001-0xffff
        Attribute type: Include (0x2802)
< ACL Data TX: Handle 64 flags 0x00 dlen 14
      ATT: Read By Type Response (0x09) len 9
        Attribute data length: 8
        Attribute data list: 1 entry
        Handle: 0x0007
        Value: 01000500aaaa

Change-Id: I12e1790be946c3cf10105c66a852da1cb23cf4bd
Signed-off-by: Mariusz Skamra <mariusz.skamra@tieto.com>
2016-02-05 20:24:46 -05:00
Mariusz Skamra 6f047a7040 Bluetooth: Refactor adding attributes to the gatt database
This patch changes the way the attributes are added to the database.
From now, attributes will be registered one by one in gatt_db_add function.
This change is needed, because the handle of the attribute is assigned
in bt_gatt_register, and the tester application has to respond to the
command with valid attribute handles.
Moreover, Set Value command rely on the attribute handle, based on which
it looks for an attribute with handle spacified by tester to set it's
value.

Change-Id: I1f251f9bd5579bde2a52ebe3f1997da49c1b1721
Signed-off-by: Mariusz Skamra <mariusz.skamra@tieto.com>
2016-02-05 20:24:46 -05:00
Mariusz Skamra 723405d685 Bluetooth: Add command to set the required Encryption Key Size
This will be needed to pass tests that require Insufficient Encryption
Key Size error response.

Change-Id: Ie358686d3a9843527e0c3dbd3918daed4e4d2f4c
Signed-off-by: Mariusz Skamra <mariusz.skamra@tieto.com>
2016-02-05 20:24:46 -05:00
Grzegorz Kolodziejczyk 2e77f815f0 Bluetooth: Correct Device Disconnect Event opcode
The same opcode was used to Device Connected event.

Change-Id: I51640ed81822311817e82e43998c476795a28d49
Signed-off-by: Grzegorz Kolodziejczyk <grzegorz.kolodziejczyk@tieto.com>
2016-02-05 20:24:46 -05:00
Grzegorz Kolodziejczyk 7c49f209b1 Bluetooth: Add possible values of addr type for GAP conn/disconn
This patch adds valid address types parameter for connect, disconnect
commands.

Change-Id: Ia54d503795c1ff04549f9813e197a1de923ef0bb
Signed-off-by: Grzegorz Kolodziejczyk <grzegorz.kolodziejczyk@tieto.com>
2016-02-05 20:24:46 -05:00
Johan Hedberg 1f6841c9c1 Bluetooth: Convert driver header info to hidden Kconfig options
We know the needed values at build-time, so there's no point in having
a runtime mechanism of accessing them in the code. Having the values
as defines makes it e.g. possible to use them as input for defining
the size of buffer pools.

Change-Id: Ib7556644719bfb631e638fa5bf29f3d1747a5072
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
2016-02-05 20:24:45 -05:00
Szymon Janc 542bb9cc34 Bluetooth: Fix disconnect command in shell application
Disconnect command is special since it is also used for cancelling
outgoing connection. Due to this is might be called with default_conn
set to NULL. To avoid conditional unref always pick extra reference
from default_conn for local use.

Change-Id: I59ad583becbf39a71366069d0307aa44f2c64174
Signed-off-by: Szymon Janc <ext.szymon.janc@tieto.com>
2016-02-05 20:24:44 -05:00
Dmitriy Korovkin f1420515a7 irq: Add flags to IRQ_CONNECT_STATIC() macro and irq_connect() function
Flags allow passing IRQ triggering option for x86 architecture.
Each platform defines flags for a particular device and then
device driver uses them when registers the interrupt handler.

The change in API means that device drivers and sample
applications need to use the new API.

IRQ triggering configuration is now handled by device drivers
by using flags passed to interrupt registering API:
IRQ_CONNECT_STATIC() or irq_connect()

Change-Id: Ibc4312ea2b4032a2efc5b913c6389f780a2a11d1
Signed-off-by: Dmitriy Korovkin <dmitriy.korovkin@windriver.com>
2016-02-05 20:24:44 -05:00
Yonattan Louise 16ddcfa43d Fix kernel event logger sample for nanokernel-only systems.
This commit fixes the nanokernel sample of the kernel event logger
that shows the event messages for context switch and interrupt events.

Change-Id: I4e972adb06b81f2f548bbabe8cd6577af633001c
Signed-off-by: Yonattan Louise <yonattan.a.louise.mendoza@intel.com>
2016-02-05 20:24:43 -05:00
Anas Nashif f75a8157e3 sanity: exclude Minute IA platforms from float tests
exclude Minute-IA platforms from tests that enable CONFIG_FLOAT.

Change-Id: Id186857403cb73d009b6e9e126c4e240f95dbf1a
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:24:43 -05:00
Benjamin Walsh c433fc7f8a test: add nanokernel mem_safe test
This test can only be executed on x86.

Change-Id: I4fe60dbee9dcb11f983855b507f53c2b9fbb54d0
Signed-off-by: Benjamin Walsh <benjamin.walsh@windriver.com>
2016-02-05 20:24:42 -05:00
Allan Stephens 7c4b9ce1f7 kernel: Eliminate the need for command packet sets
Revises microkernel semaphore sub-system to allow ISRs and fibers
to give a semaphore without having to define a command packet set.
The microkernel server now supports a 3rd command type on its
command stack, allowing a semaphore to be given in a similar manner
to the one used for the existing "give event" command type.

Change-Id: Ibd7fb1a77949792f72acd20a9ee304d6eabd62f7
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
2016-02-05 20:24:42 -05:00
Andrew Boie b43758d22a x86: remove dynamically generated IRQ and exception code
We are interested in supporting some XIP x86 platforms which are
unable to fetch CPU instructions from system RAM. This requires
refactoring our dynamic IRQ/exc code which currently synthesizes
assembly language instructions to create IRQ stubs on-the-fly.

Instead, a new approach is taken. Given that the configuration at
build time specifies the number of required stubs, use this
to generate a build time a set of tiny stub functions which simply
push a 'stub id' and then call common dynamic interrupt code.
The handler function and handler argument is saved in a table keyed by
this stub id.

CONFIG_EOI_HANDLER_SUPPORTED removed, the code hasn't been conditionally
compiled for some time and in all cases we call _loapic_eoi() when
finished with an interrupt.

Some other out-of-date verbiage in comments related to supporting
non-APIC removed.

Previously, when dynamic exceptions were created a pointer would
be passed in by the caller reserving ram for the stub code. Since
this is no longer feasible, two new Kconfig options have been added.
CONFIG_NUM_DYNAMIC_EXC_STUBS and CONFIG_NUM_DYNAMIC_EXC_NO_ERR_STUBS
control how many stubs are created for exceptions that push
an error code, and no error code, respectively.

SW Interrupts are no longer triggered by "int <vector>" hard-coded
assembly instructions. Instead this is done by sending a self-directed
inter-processor interrupt from the LOAPIC, using a new API
loapic_int_vect_trigger(). In this way we get rid of dynamically
generated code in irq_test_common.h.

All interrupts call _loapic_eoi() when finished, since this is now
the right thing to do for all IRQs, including SW interrupts.

_irq_handler_set() for x86 no longer requires the old function pointer
to be supplied.

Change-Id: I78993d3d00dd153c9051c518b417cce8d3acee9e
Signed-off-by: Andrew Boie <andrew.p.boie@intel.com>
2016-02-05 20:24:41 -05:00
Yonattan Louise e378747706 Rename Profiler to Event Logger.
In order to have a name according to the functionality of the feature.
This commit rename any text, function and variable related with the
Profiler name to Event logger.

Change-Id: I4f612cbc7c37965c35a64f06cc3ce5e3249d90e5
Signed-off-by: Yonattan Louise <yonattan.a.louise.mendoza@intel.com>
2016-02-05 20:24:41 -05:00
Andrew Boie 8c4f2321e3 test_atomic: test case to verify atomic.h
These tests ensure the functions manipulate data as expected.
They do not currently test atomicity.

Change-Id: I3646b3a55ffb895c56dbb0d0bc39da5e1138e7a5
Signed-off-by: Andrew Boie <andrew.p.boie@intel.com>
2016-02-05 20:24:41 -05:00
Luiz Augusto von Dentz 5bd4324ae2 Bluetooth: L2CAP: Unref buffer after calling recv callback
This simplify the handling quite a bit while the application can still
prevent the buffer to be freed by referencing it if necessary.

Change-Id: I5ed0e96e8d9e349b79ba31ba9568af61181e1065
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
2016-02-05 20:24:41 -05:00
Jukka Rissanen 736e8b1bf9 net: test: Remove the test_15_4 testcase temporarily
The test causes random failure so remove it temporarily.

Change-Id: I0b74877ad27d673099d0eecb191b6978bf9b40ee
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:24:40 -05:00
Johan Hedberg b620f6a5ae net: samples/buf: Fix Kconfig option name
Change-Id: Ib120b2a746aa319b7c0ea943e23a83b45aefaf31
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
2016-02-05 20:24:40 -05:00
Luiz Augusto von Dentz b861797736 Bluetooth: Fix not unreferencing buffer
Buffer received over L2CAP dynamic channels needs to be unref by the
application once they are done with it.

Change-Id: If210be1c538cf0b550dd03094d007b6851cdfbf4
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
2016-02-05 20:24:40 -05:00
Jukka Rissanen 6b17c489d4 net: Rename samples/microkernel/apps/network
Networking code is in net directory in other parts of the
code base so rename network -> net in samples/microkernel/apps
directory.

Change-Id: Ic89d4616a28b4079f90351938f9798c7bf61ce05
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:24:40 -05:00
Jukka Rissanen b14e623918 net: Rename samples/nanokernel/apps/network
Networking code is in net directory in other parts of the
code base so rename network -> net in samples/nanokernel/apps
directory.

Change-Id: I5684f569f75aa0a9d66128cf786e60ced79fbaf0
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:24:40 -05:00
Jukka Rissanen bd5d503fc6 net: Rename samples/network to samples/net
Networking code is in net directory in other parts of the
code base so rename network -> net in samples directory.

Change-Id: I0ca0188c6844b0957270398d08b85a3153819e97
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:24:39 -05:00
Johan Hedberg 4b433d4fa6 Bluetooth: Differentiate send/recv of needed driver headroom
The space that the HCI driver needs to reserve for its own use is not
necessarily symmetrical. E.g. even with the current H4 driver we only
need to reserve space for sending data but not for receiving it.
Keeping track of these values independently enables more efficient use
of the buffers.

Change-Id: I64917b545c5cd77356ed038d09afe76422334661
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
2016-02-05 20:24:39 -05:00
Ravi kumar Veeramally 1c0c1e4a00 net: apps: Add sanity test changes to test_15_4
Add sanity test related changes to test_15_4 application in both
micro and nano kernel. config_whitelist in testcase.ini is not
accepting other than PLATFORM configs. So creating test folder
for sanity tests. src directory is still common for all.

Change-Id: Iffa4c588500367fa475aef8e0772f1c08946c5a4
Signed-off-by: Ravi kumar Veeramally <ravikumar.veeramally@linux.intel.com>
2016-02-05 20:24:39 -05:00
Ravi kumar Veeramally 694d972595 net: apps: Add support for CONFIG_NET_15_4_LOOPBACK_NUM
Add support for CONFIG_NET_15_4_LOOPBACK_NUM in test_15_4 application.

Change-Id: I57246f9db587f492cddc0d0be607b1ae4a78fbf7
Signed-off-by: Ravi kumar Veeramally <ravikumar.veeramally@linux.intel.com>
2016-02-05 20:24:39 -05:00
Johan Hedberg 5f4daa1551 Bluetooth: Merge send_acl/cmd back to a single callback
Now that we have the buffer type enum as part of the HCI driver API we
can take advantage of it to pass the buffer type information and not
have to have two separate callbacks.

Change-Id: Ib2ee5b1540e532c9b27903e97660a276c1293fbc
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
2016-02-05 20:24:39 -05:00
Johan Hedberg 7ff1cbd976 Bluetooth: Split HCI driver ACL/CMD send callback
This is a necessary step in preparation for removing the buffer type
information from the buffers.

Change-Id: I29d8fae32aa660416a1c12e87840499c711e659f
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
2016-02-05 20:24:39 -05:00
Johan Hedberg 70f80ad968 Bluetooth: samples/peripheral: Remove dependency on internal define
Change-Id: I514d9beb69c27e563d7daeaa880ba55b49a6f159
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
2016-02-05 20:24:39 -05:00
Szymon Janc 51af39ff16 Bluetooth: Allow sanity to build tester on x86
This allows to build sanity for both ARM and x86 archs.
Only supported platforms are enabled.

Change-Id: I499dbdee7b9df265affb2bba98b5bb100339fe18
Signed-off-by: Szymon Janc <ext.szymon.janc@tieto.com>
2016-02-05 20:24:39 -05:00
Ravi kumar Veeramally 5e965ca8ca net: apps: Remove unused nanosems
Change-Id: I0c62ad9919d5915438a85adc4a2afcca8e23950a
Signed-off-by: Ravi kumar Veeramally <ravikumar.veeramally@linux.intel.com>
2016-02-05 20:24:39 -05:00
Szymon Janc 162b5e8091 Bluetooth: Default to ARM build for tester application
Tester application requires 3 UARTs and currently no x86 based
platform supports it. For convenience default to arch that allows
to run, not only build tester.

Change-Id: I086e72a580f56d94181a6d6eada7693ddd24dec1
Signed-off-by: Szymon Janc <ext.szymon.janc@tieto.com>
2016-02-05 20:24:39 -05:00
Johan Hedberg 48fde83fe5 Bluetooth: samples/test_bluetooth: Convert to net_buf API
Convert the code to use the net_buf API instead of the soon to be
removed bt_buf API.

Change-Id: I98a0720483d3f364b77fe6dc030c9169aa4ade67
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
2016-02-05 20:24:39 -05:00
Johan Hedberg e41285999c Bluetooth: samples/shell: Convert to net_buf API
Convert the code to use the net_buf API instead of the soon to be
removed bt_buf API.

Change-Id: I4eb6cea592cce99dcc9e4c1b1219ebbf89eddd04
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
2016-02-05 20:24:39 -05:00
Johan Hedberg c1f007687f net: Add initial generic buffer implementation
We need to have a generic buffer API in order to efficiently transfer
data between different subsystems. The first such case will be the
Networking and Bluetooth subsystems where 6LoWPAN data will be passed
back and forth.

The needed API needs to provide enough flexibility for different
buffer sizes as well as custom protocol-specific context data.

The implementation offered in this patch follows the general design of
the existing Networking and Bluetooth buffer implementations by using
a backing array of buffer which is fed into a "free buffers" FIFO for
management. The main difference is that the API allows specifying
variable sized buffers for each created pool, as well as a minimum
amount of "user data" that's allocated as part of each buffer.

There's also an optional destroy callback that's e.g. useful for HCI
flow control in Bluetooth (for notifying the controller of available
buffers).

Change-Id: I00b7007135a0ff35219f38f48658f31728fbb7ca
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
2016-02-05 20:24:38 -05:00
Luiz Augusto von Dentz d57e54fddc Bluetooth: Make it possible to build tester for x86
Currently it is only possible to build the tester for arm.

Change-Id: I7fd530ca09bfa41072420da774fba3b48a5d5a90
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
2016-02-05 20:24:38 -05:00
Luiz Augusto von Dentz 929d4f4c86 Bluetooth: GATT: Make BT_GATT_CHARACTERISTIC declare its value
This makes BT_GATT_CHARACTERISTIC declare a local bt_gatt_chrc so the
applications don't need to declare themselves.

Change-Id: Icf3fad7dffea5667c6f13aa022a5722900da51e8
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
2016-02-05 20:24:38 -05:00
Luiz Augusto von Dentz 1617f5580b Bluetooth: GATT: Remove value_handle from bt_gatt_chrc
The spec says it should always be the very first descriptor after the
characteristic:

  "BLUETOOTH SPECIFICATION Version 4.2 [Vol 3, Part G] page 534:
   3.3.2 Characteristic Value Declaration
   The Characteristic Value declaration contains the value of the
   characteristic. It is the first Attribute after the characteristic
   declaration. All characteristic definitions shall have a
   Characteristic Value declaration."

Change-Id: I6c38dea9cc4c1a05997edbd348e2759680472725
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
2016-02-05 20:24:38 -05:00
Luiz Augusto von Dentz 148ce3013c Bluetooth: GATT: Remove unused field of _bt_gatt_ccc
value_handle is not used for anything.

Change-Id: I3885d221b162eb3bd44956af64280baf61dc001b
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
2016-02-05 20:24:38 -05:00
Luiz Augusto von Dentz 1284e608ac Bluetooth: GATT: Remove handles from macros
bt_gatt_register will assign a handle if not initialized and removing
the handle makes it simpler to change the attributes since it is no
longer possible to have conflicting handles.

Change-Id: I787f7325cc990c360056b1aefd07bb7d7876b445
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
2016-02-05 20:24:38 -05:00
Luiz Augusto von Dentz 1c8ab98114 Bluetooth: GATT: Make attribute database into a list
This allow calling bt_gatt_register multiple times so different tasks
can add their own services separately.

Change-Id: I8143ddedfa1079087d608013d1a97b552a3007dc
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
2016-02-05 20:24:38 -05:00
Michael LeMay 2a11205499 net: apps: echo_server: Add Ethernet support
This patch adds a NET_INTF makefile configuration option to the
echo_server sample application to allow Ethernet support to be enabled
by specifying NET_INTF=ethernet.  It currently includes specific
support for the Ethernet device in the Intel Galileo.

Change-Id: I6b605db32d2d8a4259fc003724b2daa11c9a26d9
Signed-off-by: Michael LeMay <michael.lemay@intel.com>
2016-02-05 20:24:38 -05:00
Johan Hedberg 49885879f2 Bluetooth: Rename bt_conn_get/put to bt_conn_ref/unref
We want to make the naming convention ref/unref rather than get/put.
So far the only reference counted objects are the buffers and the
connections. For the buffers the new generic buffer API will also use
ref/unref.

Change-Id: I9fe8b8a6a50a8baf06ba231e8f6717a5a47dd292
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
2016-02-05 20:24:38 -05:00
Mariusz Skamra 13e0178c55 Bluetooth: Add support for writting characterisitc value
This adds write and flush attribute callbacks to be used for writting
attribute values.
With this patch lower tester can test if IUT can properly handle
write request to the characteristic values.

> ACL Data RX: Handle 64 flags 0x02 dlen 7  [hci0] 1151923.440823
      ATT: Read Request (0x0a) len 2
        Handle: 0x0003
< ACL Data TX: Handle 64 flags 0x00 dlen 7  [hci0] 1151923.456050
      ATT: Read Response (0x0b) len 2
        Value: bbbb
> ACL Data RX: Handle 64 flags 0x02 dlen 9  [hci0] 1151928.435525
      ATT: Write Request (0x12) len 4
        Handle: 0x0003
          Data: ffff
< ACL Data TX: Handle 64 flags 0x00 dlen 5  [hci0] 1151928.456865
      ATT: Write Response (0x13) len 0
> ACL Data RX: Handle 64 flags 0x02 dlen 7  [hci0] 1151929.380796
      ATT: Read Request (0x0a) len 2
        Handle: 0x0003
< ACL Data TX: Handle 64 flags 0x00 dlen 7  [hci0] 1151929.394636
      ATT: Read Response (0x0b) len 2
        Value: ffff

Change-Id: Iea1d39e1a52496692141411251fd4ac2f9ae0b97
Signed-off-by: Mariusz Skamra <mariusz.skamra@tieto.com>
2016-02-05 20:24:38 -05:00
Mariusz Skamra 1fa60d7a5e Bluetooth: Fix set value command handler
If the attribute value is going to be changed by the upper tester,
(eg. to issue notification) for simplicity it can be stored in the
place of old one.

Change-Id: I03a6ebbda5d75e6ffa9c2fd6b3c0eab495623a11
Signed-off-by: Mariusz Skamra <mariusz.skamra@tieto.com>
2016-02-05 20:24:38 -05:00
Luiz Augusto von Dentz 118dc75cea Bluetooth: GATT: Add connection to bt_gatt_notify
This allow sending direct notification to a specific peer without
using CCC which is allowed by the spec:

  BLUETOOTH SPECIFICATION Version 4.2 [Vol 3, Part F page 507
  3.4.7.1 Handle Value Notification

  A server can send a notification of an attribute’s value at any time.

Change-Id: Ieff29216cb9ba197c0da92d7b22b26e63101cfa8
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
2016-02-05 20:24:37 -05:00
Mariusz Skamra d523f0bd66 Bluetooth: tester: Handle set discoverable command
Set discoverable command is used to set the discoverable flags
in advertisement data.

Change-Id: If46a5e05379c5f589afb1658a7b275a82c52e4e1
Signed-off-by: Mariusz Skamra <mariusz.skamra@tieto.com>
2016-02-05 20:24:37 -05:00
Luiz Augusto von Dentz d55e4ca91c Bluetooth: Add CONFIG_BLUETOOTH_L2CAP_DYNAMIC_CHANNEL
This adds an option to enable L2CAP dynamic channel support, fixed
channels are not affected by it.

Change-Id: If36bece46b7b94142ea1ac976b878d1b5ae6a578
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
2016-02-05 20:24:37 -05:00
Luiz Augusto von Dentz 4a41da9b38 Bluetooth: Add l2cap-register command to btshell
l2cap-register can be used to register a server:

btshell> l2cap-register 0x0080
bt: bt_l2cap_server_register (0x0011110c): PSM 0x0080

Change-Id: I2c2d9a4cba70b0cddaf352830659d206b609ee63
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
2016-02-05 20:24:37 -05:00
Ravi kumar Veeramally fb5581fa62 net: apps: Add testcase.ini script for all network samples
Change-Id: Ifb0f8a0b7c91b01b899b4625f489bece5644d652
Signed-off-by: Ravi kumar Veeramally <ravikumar.veeramally@linux.intel.com>
2016-02-05 20:24:37 -05:00
Ravi kumar Veeramally 8099e8a9c5 net: apps: Add testcase.ini script for sanitychecks
Change-Id: I68270ba870df322b38268092a35e671e9a6a0e19
Signed-off-by: Ravi kumar Veeramally <ravikumar.veeramally@linux.intel.com>
2016-02-05 20:24:37 -05:00
Ravi kumar Veeramally c6a5eb7e5e net: apps: Change EXTRA_CFLAGS to ccflags-y
Sanitycheck script unable to find EXTRA_CFLAGS label.

Change-Id: I803af86686bb1b5a84b181cf4c016a3b53269e3c
Signed-off-by: Ravi kumar Veeramally <ravikumar.veeramally@linux.intel.com>
2016-02-05 20:24:37 -05:00
Dan Kalowsky 2a63743192 cleanup: removing NOMANUAL
The \NOMANUAL tag is a remnant from days of yore and is no longer
needed or useful.  Cleaning up the code references to this.

Change-Id: I1b8cc9c9560d1dbb711f05fa63fd23386789875c
Signed-off-by: Dan Kalowsky <daniel.kalowsky@intel.com>
2016-02-05 20:24:35 -05:00
Tomasz Bursztyka a6896a5491 sample: adc: No need of useless CONFIG option
Removing useles CONFIG_PCI_DEBUG

Change-Id: I2f07939c801a74e2c90b196932d8ba6fb6358b94
Signed-off-by: Tomasz Bursztyka <tomasz.bursztyka@linux.intel.com>
2016-02-05 20:24:35 -05:00
Anas Nashif 4d0c0afd25 coap-server: fixed broken ifdef statement
an ifdef was removed leaving the endif in place, this restores
the origin ifdef.

Change-Id: Ibc4863e3d09c1c09525276ca8ae4aa9e52fbd568
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:24:35 -05:00
Daniel Leung 851c6f8f60 microkernel: introduce private event objects
This patch enables defining microkernel events within source code.
This is similar to other private kernel object patches.

The test has been modified a little bit due to the fact that
the event ID is now a memory address, instead of numeric ID.

Change-Id: Ie3c8d4f4e459d9c631e50bb242cf7a05ca8ea82c
Signed-off-by: Daniel Leung <daniel.leung@intel.com>
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:24:35 -05:00
Anas Nashif 36579879c2 use zephyr.h instead of microkernel/nanokernel.h
Cleanup header inclusion and only include zephyr.h in samples
and applications.

Change-Id: If7460f4c6305a1c1cfcfdcf6a9bb7423f410c5c6
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:24:35 -05:00
Peter Mitsis 47888a31db Update static IDT generation to use IRQ priority
Updates the 'gen_idt' tool to generate a mapping of IRQ numbers to
interrupt vector IDs, thereby allowing the IRQ priority to be utilized
when statically connecting an interrupt.

Change-Id: I2e54ceb65145682820dfbd8ca1ee6ec68d71ce1a
Signed-off-by: Peter Mitsis <peter.mitsis@windriver.com>
2016-02-05 20:24:34 -05:00
Dan Kalowsky d8a30896f4 checkpatch: converting from __FUNCTION__ to __func__
Change-Id: I2f28a4dd2b1b372905638cbccdf987396999d7ec
Signed-off-by: Dan Kalowsky <daniel.kalowsky@intel.com>
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:24:33 -05:00
Tomasz Bursztyka 17e06fb457 uart: Move generic API to root directory of include
Only driver specific public headers should be found in include/drivers.
All generic API are found in include/ directory.

Change-Id: Ic50931987bb9460fd4a3843abc6f5de107faf045
Signed-off-by: Tomasz Bursztyka <tomasz.bursztyka@linux.intel.com>
2016-02-05 20:24:32 -05:00
Mariusz Skamra ceef6099dd Bluetooth: shell: Improve device found event callback
With this patch device name obtained from advertising packets
will be printed out.

[DEVICE]: D0:03:4B:DA:10:46 (public), AD evt type 0,
			RSSI -83 AppleLETester
[DEVICE]: D0:03:4B:DA:10:46 (public), AD evt type 4,
			RSSI -82
[DEVICE]: 00:A0:50:00:00:08 (public), AD evt type 0,
			RSSI -80 BLE Keyboard

Change-Id: Ic5116bce958d5b4479d481c40b2658ab56ecb819
Signed-off-by: Mariusz Skamra <mariusz.skamra@tieto.com>
2016-02-05 20:24:30 -05:00
Mariusz Skamra df7f3a193f Bluetooth: shell: Improve attribute discovery callback
This patch makes attributes discovery more easier from the point
of shell application user.
UUIDs of discovered attribute declarations are now printed.
For services handle range is shown.

btshell> gatt-discover-primary 1800
btshell> Service 1800 found: start handle 00000001, end_handle 0000000b

Characteristic properties are parsed to string and printed
with characteristic value handle.

Characteristic f000ffc1-0451-4000-b000-000000000000 found: handle 0000006a,
				value_handle 0000006b
Properties: [write][write w/w rsp][notify]

Change-Id: I6823fa562206ccf336dc301ee71bc4a02cecc14f
Signed-off-by: Mariusz Skamra <mariusz.skamra@tieto.com>
2016-02-05 20:24:30 -05:00
Szymon Janc f795f37426 Bluetooth: Remove outdated comment from tester
Advertising type is already configured based on current settings.

Change-Id: I4b47237c9ea7c48eab05786f01b38ebe3250141a
Signed-off-by: Szymon Janc <ext.szymon.janc@tieto.com>
2016-02-05 20:24:30 -05:00
Mariusz Skamra 15612e6bf9 Bluetooth: Add authentication callbacks to the peripheral app
To allow the remote central to pair and encrypt the link.
IO capabilities are set to DisplayOnly.

Change-Id: I46459539f1b882952d29ee5eb8d17766715de4b8
Signed-off-by: Mariusz Skamra <mariusz.skamra@tieto.com>
2016-02-05 20:24:30 -05:00
Mariusz Skamra 9a794915b7 Bluetooth: Fix invalid characteristic handle in peripheral app db
We had two attributes stored with the same handle.

Change-Id: Ib24912578b958d428d6b3da3c2f73994691622bb
Signed-off-by: Mariusz Skamra <mariusz.skamra@tieto.com>
2016-02-05 20:24:30 -05:00
Mariusz Skamra cc1208fb5f Bluetooth: Fix invalid value length type
BTP protocol specifies value length to be 2 octets value,
so uint16_t has to be used to store this length.

Change-Id: I2a911910475db305a0ff1f9ab70866d24aa47158
Signed-off-by: Mariusz Skamra <mariusz.skamra@tieto.com>
2016-02-05 20:24:30 -05:00
Allan Stephens f330d5adfe microkernel: Don't initialize packets in a command packet set
Reworks the internal design of a command packet set so that
the command packet array is split out into a separate variable
lying in uninitialized memory. This shrinks the command packet's
data section footprint to almost nothing.

Note: A side effect of this change is that it is no longer possible
to define a command packet set as a "static" variable since the
CMD_PKT_SET_INSTANCE() macro now generates two variables.

Change-Id: I9c7ebe637edf879758589ff4a26ace1303790bf7
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
2016-02-05 20:24:29 -05:00
Anas Nashif ecf3951990 samples: disable exception debug for test_static_idt
This test fails with exception debug enabled.  Make sanity pass again
while we debug this issue.

Change-Id: I0df279d2ec2f8fb29c30d25ec0d05da18e929964
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:24:29 -05:00
Javier B Perez Hernandez f7fffae8aa Change BSD-3 licenses to Apache 2
Change all the Intel and Wind River code license from BSD-3 to Apache 2.

Change-Id: Id8be2c1c161a06ea8a0b9f38e17660e11dbb384b
Signed-off-by: Javier B Perez Hernandez <javier.b.perez.hernandez@linux.intel.com>
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
Signed-off-by: Benjamin Walsh <benjamin.walsh@windriver.com>
2016-02-05 20:24:29 -05:00
Peter Mitsis 56fa1a98d0 x86: Update generation of static IDT
Adds two new fields to the ISR_LIST structure (irq and priority) to allow
the decoupling of the vector ID and priority from the IRQ number at some
future time.

As a result of the addition of these two new fields, the gen_idt tool is
modified to both process these new fields as well as validate them.

Change-Id: I343dac68d99c78168a25b19784140f85d5db7578
Signed-off-by: Peter Mitsis <peter.mitsis@windriver.com>
2016-02-05 20:24:28 -05:00
Peter Mitsis ae448ff6ca Update galileo minimal footprint configuration
The galileo minimal footprint project requires at least 53 IDT entries
to accommodate the HPET.  This is due to the current algorithm used to
map an IRQ number to an interrupt vector.
            Interrupt vector = IRQ number + 0x20

Change-Id: I6de2cd72da631af04237615082823e7de65d8b22
Signed-off-by: Peter Mitsis <peter.mitsis@windriver.com>
2016-02-05 20:24:28 -05:00
Allan Stephens dcb31f140d samples: Add test code for sys_thread_busy_wait() API
Enhances the existing nanokernel context test application to
validate busy waiting.

Change-Id: I08cd74f74ed596f0baa30d879e1d98000b1d4c85
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:24:28 -05:00
Anas Nashif 07e195a273 samples: use arch_whitelist instead of config_whitelest
Change-Id: I1ef4a2e653ebaa1bf0e62bbc07b29f311c209092
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:24:28 -05:00
Anas Nashif 267db291e6 sanity: run sha256 on select platforms only
This test takes too long to run, do not run it on multiple
platforms of the same architecture.

Change-Id: I3f121cfd22b99f3910fcbb9ef45a53b0abf79360
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:24:28 -05:00
Tomasz Bursztyka 27e8c5beb2 samples: Add a tiny test application for ADC API
Currently useful only for Galileo.

Change-Id: I8d4fafd530e11a50f91cedd0de1691393f270b9c
Signed-off-by: Tomasz Bursztyka <tomasz.bursztyka@linux.intel.com>
2016-02-05 20:24:28 -05:00
Dan Kalowsky 31ff5ad01f tinycrypt: moving includes
Moving the includes to include/tinycrypt. This will help make it
clear when looking at source files where each header originated from.

Change-Id: Ic79978da286f9c288868074a69262d89488925b8
Signed-off-by: Dan Kalowsky <daniel.kalowsky@intel.com>
2016-02-05 20:24:27 -05:00
Andrew Boie c2a9a37e1c test_task: fix startup race
Bad things happen if an SW IRQ is asserted before it is initialized.

Change-Id: I4ad48480c4d7bb5fc14d778d2566d73086300fa1
Signed-off-by: Andrew Boie <andrew.p.boie@intel.com>
2016-02-05 20:24:27 -05:00
Anas Nashif 93f06fad7d Revert "tinycrypt: moving includes"
This commit breaks the sanitychecks

This reverts commit 93fa1053b21efe3d030ea060a31b80d6008d5bfd.

Change-Id: Ia52092e845c33234817a1cb27cd1f17064c65e7e

Signed-off-by: Anas Nashif <nashif@linux.intel.com>
2016-02-05 20:24:27 -05:00
Dan Kalowsky 9d506d0a26 tinycrypt: moving includes
Moving the includes to include/tinycrypt. This will help make it
clear when looking at source files where each header originated from.

Change-Id: I062cb3c6ecc5bc2ed2d28228d5926646b6b5f912
Signed-off-by: Dan Kalowsky <daniel.kalowsky@intel.com>
2016-02-05 20:24:27 -05:00
Dan Kalowsky 53dbe1f1ec crypto: comply with checkpatch file length
Fixes the tinycrypt library to use Zephyr checkpath acceptable line
lengths.

Change-Id: Ia7bef46a39fa029cda826ec5b2d7d42036d9bdfe
Signed-off-by: Dan Kalowsky <daniel.kalowsky@intel.com>
2016-02-05 20:24:26 -05:00
Andrew Boie 579a490ea3 test_sema: fix initialization race
If the other tasks try to trigger a SW IRQ before MONITORTASK
has initilized it, the CPU generates an exception.

Change-Id: Id2745d728a7cf15132096585c073f85f8306cb38
Signed-off-by: Andrew Boie <andrew.p.boie@intel.com>
2016-02-05 20:24:26 -05:00
Jukka Rissanen 05d8a096e1 net: apps: test_15_4 fixes when running in one qemu
Made the test_15_4 application to run much faster when it is
running inside qemu (started with make qemu0).

Change-Id: I4455eca4f0426e8acc8b87d93eb80f4d179a1b48
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:24:25 -05:00
Jukka Rissanen 83dd828d58 net: apps: Add readme file describing various IP stack examples
Change-Id: I22cd281ae3157f0638c773e2c251289b51da78a9
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:24:25 -05:00
Jukka Rissanen 9368afd336 net: apps: Connect echo-server and echo-client tests together
It is now possible to loop echo-server and echo-client test
applications together when they are running in qemu.

Start echo-server with "make server" and echo-client using
"make client" in the corresponding samples directory.

Change-Id: Ic852735f7bebc93e42873e98427e282902b3ca03
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:24:25 -05:00
Szymon Janc ca9d755073 Bluetooth: Enable stack analysis in tester application
This allows for compile test if analysis code builds.

Change-Id: I500d727a06ef065fc65465140062ec47d31e79fa
Signed-off-by: Szymon Janc <ext.szymon.janc@tieto.com>
2016-02-05 20:24:25 -05:00
Mariusz Skamra 01bec178dc Bluetooth: Handle read supported gatt server commands
This will be used to poll Zephyr to send it's supported commmands.

Change-Id: I12cb93a238cd14589123d88e9d9ba4d580dd6d71
Signed-off-by: Mariusz Skamra <mariusz.skamra@tieto.com>
2016-02-05 20:24:25 -05:00
Mariusz Skamra b75915e366 Bluetooth: Add read characteristic value callback
This is used to respond to the read request of characteristic
value.

Change-Id: Ia0518fae0d70e712621578a7938009345dbfaab4
Signed-off-by: Mariusz Skamra <mariusz.skamra@tieto.com>
2016-02-05 20:24:25 -05:00
Mariusz Skamra 865a087e76 Bluetooth: Handle Set Characteristic/descriptor value
This adds support to handle set attribute value.

Change-Id: I2631cc8744210cfd76add1be3d30e5a0f54b3a7e
Signed-off-by: Mariusz Skamra <mariusz.skamra@tieto.com>
2016-02-05 20:24:25 -05:00
Mariusz Skamra cc3949fec4 Bluetooth: Handle Add Characteristic command
This adds support for adding characteristic declaration and characteristic
value to the tester defined database of GATT attributes.

Change-Id: I108fc5a9bc5c7491fc354c71457d452baaedd868
Signed-off-by: Mariusz Skamra <mariusz.skamra@tieto.com>
2016-02-05 20:24:25 -05:00
Mariusz Skamra 9624fe8732 Bluetooth: Add support for GATT Server to tester application
This adds support for tester application to cover GATT Server
automated tests. BTP ptotocol commands are used do drive stack to
build attributes database specified by the external tester.

Two commands: to add a service and to start the GATT server are
implemented.

Change-Id: I236c3e4d8636e97926514b2099779cb4334e95cd
Signed-off-by: Mariusz Skamra <mariusz.skamra@tieto.com>
2016-02-05 20:24:25 -05:00
Mariusz Skamra 7bb885198d Bluetooth: Extend BTP Specification to cover GATT Server
This adds protocol specification for GATT Server.

Change-Id: I2f6083b15c483fb1348f6c108fd54f890d45b83d
Signed-off-by: Mariusz Skamra <mariusz.skamra@tieto.com>
2016-02-05 20:24:25 -05:00
Mariusz Skamra 5438f7b96b Bluetooth: tester: Handle Set Connectable command
This patch is needed to be able to test zephyr against tests
which require Zephyr to be non-connectable.

This adds handler for the opcode 0x06 - Set Connectable command.
Based on connectable flag in current settings, the corresponding
advertising type is set after issuing Start Advertising command.
If connectable, Connectable undirected advertising type is set,
if non-connectable Non connectable undirected advertising type
is set.

Change-Id: I77865b67c4b717548095ac5e398a873d1b739d6a
Signed-off-by: Mariusz Skamra <mariusz.skamra@tieto.com>
2016-02-05 20:24:24 -05:00
Mariusz Skamra 926e65fe3b Bluetooth: tester: Handle disconnect command
This feature is needed to pass some tests which require termination
of ACL link.

Change-Id: Idab03c569172ea6deb3bc5cf6744e5e73bd5de3e
Signed-off-by: Mariusz Skamra <mariusz.skamra@tieto.com>
2016-02-05 20:24:24 -05:00