Commit graph

41120 commits

Author SHA1 Message Date
Johan Hedberg
b9588d8eb6 Bluetooth: Mesh: Switch to using Linux Foundation Company ID
The Linux Foundation now has an assigned Company Identifier, so switch
to using that.

Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
2018-03-05 19:54:21 -05:00
Johan Hedberg
67b321eec9 samples: bluetooth: mesh: Add basic documentation
Add documentation for the mesh and mesh_demo sample applications.

Fixes #6279

Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
2018-03-05 19:53:48 -05:00
Leandro Pereira
02bc5fa8e0 soc: esp32: Enable building with newer ESP-IDF
ESP-IDF commit cb31222e added the dependency on a file named
"sdkconfig.h", which is equivalent to "autoconf.h" generated by kbuild
used in Zephyr.  It does not depend on anything from that file, though,
so just provide an empty file to keep the compiler from complaining.

Signed-off-by: Leandro Pereira <leandro.pereira@intel.com>
2018-03-05 19:49:06 -05:00
Youvedeep Singh
cd3ef98ee1 tests: kernel: posix: pthread_rwlock: POSIX rw lock test.
Added test for POSIX read-write lock APIs.

Signed-off-by: Youvedeep Singh <youvedeep.singh@intel.com>
2018-03-05 19:27:37 -05:00
Youvedeep Singh
216883ca82 kernel: POSIX: Compatibility layer for POSIX read-write lock APIs.
This patch provides POSIX read-write lock APIs for POSIX 1003.1
PSE52 standard.

Signed-off-by: Youvedeep Singh <youvedeep.singh@intel.com>
2018-03-05 19:27:37 -05:00
Andy Ross
bdac8d070f xtensa/asm2: Fix stack pointer during preemption spills
When returning into a different thread than we interrupted, we
obviously need to spill all the existing register windows to make sure
all their values are in the old thread's stack.  But the code to do
this forgot to reset the current stack pointer to the value it had at
interrupt time (it was still pointing to the saved context below
that), so the caller of the interrupted function was spilling to the
wrong spot.

This wouldn't show up as an instant failure, it would only happen when
switching BACK to the improperly-spilled thread.  And even then it
would be a noop if the original interrupt handler was deep enough to
have spilled that function naturally.

In practice, this happened only in some instances on ESP-32 (which has
more windowed registers than qemu) when interrupting the idle thread
(which is very shallow) with a (very simple) timer interrupt.  Trivial
to see, hard to find.

See https://github.com/zephyrproject-rtos/zephyr/issues/6346 for more
detail.

Signed-off-by: Andy Ross <andrew.j.ross@intel.com>
2018-03-05 19:06:07 -05:00
Punit Vara
6ce863763d kernel: Remove unnecessary old code
_sem_give_non_preemptible is non preemptible and no need to move thread
to ready queue for any real use case. Remove old code. This is also
not public API

Signed-off-by: Punit Vara <punit.vara@intel.com>
2018-03-05 14:10:50 -08:00
Kumar Gala
2f4e987945 samples: sensor: ccs811: Add dummy dts.fixup so we can always build
Not all boards are going to have the ccs811 on them, and thus not in the
device tree.  We need a dts.fixup stub to dummy out the CONFIG_CCS811_*
defines that the driver expects.

Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
2018-03-05 14:16:46 -06:00
Aapo Vienamo
0a6f8c1aa2 drivers: sensor: ccs811: Fix value conversion
The arithmetic performed on the CO2 and VOC measurements is pointless as
the units of the sensor already match those of the API, furthermore the
multiplication will overflow the u32_t with CO2 or VOC readings greater
than 4294 ppm or ppb. This CO2 concentration is achievable by breathing
at the sensor.

Signed-off-by: Aapo Vienamo <aapo.vienamo@iki.fi>
2018-03-05 13:23:38 -06:00
Kumar Gala
5ac590a316 arch: arm: Add one hardware platform to default testing
The arm qemu platform has limitiations as we get into more complicated
features like userspace support.  Add one hardware platform to catch
issues in sanitycheck for development of such features.

Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
2018-03-05 12:35:27 -05:00
Aapo Vienamo
3318f21196 sensors: css811: Use HAS_DTS_I2C_DEVICE in Kconfig
A condition is added to the Kconfig file to disable config options which
will be supplied from the dts.

Signed-off-by: Aapo Vienamo <aapo.vienamo@iki.fi>
2018-03-05 11:22:47 -06:00
Kumar Gala
8c9fe0d796 kernel: mem_domain: Fix compile issues
Commit 08de658eb ("kernel: mem_domain: Check for overlapping regions
when considering W^X") introduced some compile issues on various
platforms.

The k_mem_partition_attr_t member is attr not attrs.  Also, fix an issue
where sane_partition_domain neesd a pointer to a parition.

Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
2018-03-05 10:47:00 -06:00
Paul Sokolovsky
5925112ee6 net: sockets: Preserve user_data for any net_context send() or recv()
We use ctx->user_data to hold socket flags. As each call to
net_context_recv() and net_context_send() overwrites its previous
value, we explicitly must pass the current ctx value there.

Without this, non-blocking socket was turned into blocking after
e.g. switching from receiving to sending.

Fixes: #6309

Signed-off-by: Paul Sokolovsky <paul.sokolovsky@linaro.org>
2018-03-05 12:54:42 +01:00
Paul Sokolovsky
934195cc43 net: sockets: zsock_accepted_cb: Init child socket on success only
If accept callback is called with error, don't treat the context
passed to the callback as a new accepted context.

Signed-off-by: Paul Sokolovsky <paul.sokolovsky@linaro.org>
2018-03-05 12:54:42 +01:00
Paul Sokolovsky
9e02f7b644 net: sockets: Fix mask application in sock_set_flag()
We pass normal 1-based mask, and mask invert it before logically
AND'ing with the value. This apparently a mix-up between how the
mask was intended to be passed initially and how it was in the end.
This issue actually didn't have an effect, because currently defined
flags have mutually exclusive lifetime (when "eof" flag is set,
"non-blocking" flag value is no longer import). Anyway, that's a
bug and needs fixing.

Signed-off-by: Paul Sokolovsky <paul.sokolovsky@linaro.org>
2018-03-05 12:54:42 +01:00
Carles Cufi
04a0a2619c doc: release notes: Add major 1.11 features
Include and describe all the highlights in the 1.11 release, listed in
the major features initial section and described in the different
subsections in more detail.

Signed-off-by: Carles Cufi <carles.cufi@nordicsemi.no>
2018-03-05 05:43:27 -05:00
Anas Nashif
281b94e79e codeowners: add additional owners for riscv32
Add new owners for the RISCV32 architecture and all associated drivers
and boards.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2018-03-05 05:42:41 -05:00
Niranjhana N
e44affceae tests: kernel: posix: stop relying on path for naming
Use proper test names instead of relying on path name where the
    test is located.

Signed-off-by: Niranjhana N <niranjhana.n@intel.com>
2018-03-05 05:23:56 -05:00
Ravi kumar Veeramally
ebc81bdf8d net: http: Provide destination address in http replies
net_app_ctx maintains multiple net contexts(net_ctx). But when http
api's wants to reply or send some data, its always choose the first
net_context in the array, which is not correct always.

net_app_get_net_pkt_with_dst() api will select proper context
based on destination address. So with the help of new api in
net_app, http can select proper context and send packets. To
achieve this, desination address is provided in http_recv_cb_t
and http_connect_cb_t callbacks. Also chaged relevant API's to
provide destination address in http message preparation methods.

Signed-off-by: Ravi kumar Veeramally <ravikumar.veeramally@linux.intel.com>
2018-03-05 10:23:17 +01:00
David B. Kinder
d0ba9d9493 doc: add 1.11 links for docs and release notes
Update the home page to add a choice for the 1.11 docs and update the
release notes page to add the 1.11 release notes link.

Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
2018-03-04 21:16:10 +01:00
Anas Nashif
d397109e9d tests: slab: fix dead code
Increase number of blocks to make this code count.

Fixes coverity issue: CID: 174928
Fixes #4010

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2018-03-03 15:06:21 -05:00
Johan Hedberg
dd9f5e2a1d samples: led_strip: Extend ws2812 sample with ws2812b_sw support
Add support for building the WS2812 LED strip driver sample against
the new ws2812b_sw driver. Currently a configuration is only provided
for the BBC micro:bit board.

Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
2018-03-03 20:46:53 +01:00
Johan Hedberg
9639c00fbb drivers: led_strip: Add driver for software-based WS2812B operation
This driver uses a bit-banging based technique of generating a signal
for the WS2812B LED strip. Since bit-banging is very timing sensitive,
where each CPU cycle counts, the driver uses inline assembly to
perform the most critical operataions. This initial version of the
driver only supports a Cortex-M0 implementation, and can e.g. be used
with the ZIP Halo LED strip for the BBC microbit:

https://www.kitronik.co.uk/5625-zip-halo-for-the-bbc-microbit.html

Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
2018-03-03 20:46:53 +01:00
Aapo Vienamo
1cf09e86ed drivers: i2c: nrf5: Make the driver thread-safe
Locking is added to externally callable API functions.

Signed-off-by: Aapo Vienamo <aapo.vienamo@iki.fi>
2018-03-03 20:41:37 +01:00
Michael Scott
ddbcef4623 net: context: fix semaphore for offload in in net_context_put()
We're missing a k_sem_give for contexts_lock in the
CONFIG_NET_OFFLOAD path of net_context_put().

This fixes a network hang which occurs after any http_close()
call when CONFIG_NET_OFFLOAD is enabled.

Signed-off-by: Michael Scott <michael@opensourcefoundries.com>
2018-03-03 20:40:25 +01:00
Niranjhana N
423c8df8f7 tests: kernel: posix: add pthread tests
This test verifies pthread_equal returns the
expected values.

Signed-off-by: Niranjhana N <niranjhana.n@intel.com>
2018-03-03 18:39:28 +01:00
Niranjhana N
b56aeecc72 tests: kernel: posix: add ztest to timer
Added ztest to timer.

Signed-off-by: Niranjhana N <niranjhana.n@intel.com>
2018-03-03 18:35:28 +01:00
Niranjhana N
92e87e5923 tests: kernel: posix: add ztest to pthread_join
Added ztest to pthread_join.

Signed-off-by: Niranjhana N <niranjhana.n@intel.com>
2018-03-03 18:35:28 +01:00
Niranjhana N
a8d3286a31 tests: kernel: posix: add ztest to pthread_cancel
Added ztest to pthread_cancel.

Signed-off-by: Niranjhana N <niranjhana.n@intel.com>
2018-03-03 18:35:28 +01:00
Niranjhana N
1083629b6b tests: kernel: posix: add ztest to pthread
Added ztest to pthread test.

Signed-off-by: Niranjhana N <niranjhana.n@intel.com>
2018-03-03 18:35:28 +01:00
Niranjhana N
86f90c1d87 tests: kernel: posix: add ztest to POSIX clock
Added ztest to POSIX clock APIs test.

Signed-off-by: Niranjhana N <niranjhana.n@intel.com>
2018-03-03 18:35:28 +01:00
Andrei Emeltchenko
42e94c73c7 usb: msc: Cleanup USB write
This makes code more readable.

Signed-off-by: Andrei Emeltchenko <andrei.emeltchenko@intel.com>
2018-03-03 10:27:21 +01:00
Andrei Emeltchenko
c857c20f88 usb: msc: Fix USB write check
Fix checking error code when write to USB endpoint.

Signed-off-by: Andrei Emeltchenko <andrei.emeltchenko@intel.com>
2018-03-03 10:27:21 +01:00
Sebastian Bøe
7d5755865c stm32cube: cmake: Pure refactoring of build script
Reduce the code duplication in ext/hal/st/stm32cube/CMakeLists.txt by
using a foreach loop instead of copy-paste for each SoC.

Signed-off-by: Sebastian Bøe <sebastian.boe@nordicsemi.no>
2018-03-03 09:01:10 +01:00
David B. Kinder
cfc5941dba doc: release notes: documentation
Add documentation updates for 1.11 (and fix a formatting problem while I
was in there)

Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
2018-03-03 08:57:07 +01:00
Mariusz Skamra
777f9c8cd0 Bluetooth: Workaround privacy feature issue
This fixes intercompatibility issues with controllers supporting
privacy feature.
Core Spec requires to use network privacy mode as a default when
peer device provides its IRK during bonding when LL Privacy is used,
which is the case for Zephyr. We've seen devices including PTS
which exchanges it's IRK but is not aware about network privacy
mode. This results in Zephyr not able do be reconnect to such bonded
devices.
This workaround sets device privacy mode to be able to reconnect
to such devices.

Fixes #4989
Fixes #5486

Signed-off-by: Mariusz Skamra <mariusz.skamra@codecoup.pl>
2018-03-02 17:56:37 +01:00
Carles Cufi
d4d2581b76 Bluetooth: controller: Default to the LF Company ID
The Linux Foundation has been assigned a Company Identifier, and with it
a means of identifying Zephyr over the air. Default to the LF Company
Identifier, which can be overridden by silicon vendors.

Signed-off-by: Carles Cufi <carles.cufi@nordicsemi.no>
2018-03-02 17:27:35 +01:00
Philémon Jaermann
82b7433144 drivers: sensors: Enable LSM6DS0 GYRO sampling rate
Use correct sensor dependence in Kconfig
to enable GYRO sampling rate configuration.

Signed-off-by: Philémon Jaermann <p.jaermann@gmail.com>
2018-03-02 10:14:03 -06:00
Michael Scott
e9c0d001fa net: http: client: remove payload send_chunk logic
Logic for sending chunks of data is incompatible with adding
Content-Length: header.

Per https://tools.ietf.org/html/rfc7230#section-3.3.1:
"A sender MUST NOT send a Content-Length header field in any
message that contains a Transfer-Encoding header field."

Going a bit further in my mind: also don't send Transfer-Encoded
chunked data either when the Content-Length header is present.

In general, there will be problems if the http client library
makes payload changes without the user code knowing about it.

This patch removes the use of http_send_chunk() from the new
HTTP client code and instead sends the payload directly to
http_prepare_and_send()

This fixes an issue where every available buffer would be allocated
with repeating payload data because the for loop in http_request()
wasn't ending until we ran out of memory.

NOTE: This patch was previously applied but was lost when
commit d1675bf3e6 ("net: http: Remove the old legacy API")
moved code around.

Signed-off-by: Michael Scott <michael@opensourcefoundries.com>
2018-03-02 16:51:22 +01:00
Michael Scott
311d0ac66c net: http: dont add CRLF to protocol in http_client_send_get_req()
It's added in subsys/net/lib/http/http_client.c:http_request():95
after adding the protocol header.  If we add 2 CRLF it ends the
header block and causes an HTTP error.

Signed-off-by: Michael Scott <michael@opensourcefoundries.com>
2018-03-02 16:51:22 +01:00
Michael Scott
4fe2bcf13f net: http: fix flush in http_prepare_and_send()
In commit 9489fa54cc ("net: http: Fix http_prepare_and_send"),
the logic for when to call http_send_flush() was incorrect.  This
is causing a call to http_send_flush() every time
http_prepare_and_send() is called.

Signed-off-by: Michael Scott <michael@opensourcefoundries.com>
2018-03-02 16:51:22 +01:00
Michael Scott
fcb5e2b1ee net: http: honor CONFIG_HTTP_CLIENT_NETWORK_TIMEOUT setting
We should not use the user suppied timeout setting in
http_client_send_req() for the connection timeout.  In the
previous API the call to tcp_connect() used
CONFIG_HTTP_CLIENT_NETWORK_TIMEOUT as the timeout setting.

Let's do that here too.

This fixes -ETIMEDOUT error generation when using K_NO_WAIT
for http_client_send_req().

NOTE: This patch was previously applied but was lost when
commit d1675bf3e6 ("net: http: Remove the old legacy API")
moved code around.

Signed-off-by: Michael Scott <michael@opensourcefoundries.com>
2018-03-02 16:51:22 +01:00
Michael Scott
a2dfaebafc net: http: client: handle empty body for PUT/POST request response
In previous version of the HTTP API, commit 8ebaf29927 ("net: http:
dont timeout on HTTP requests w/o body") fixed handling of HTTP
responses without body content.

For the new API, let's add a specific fix for when PUT/POST requests
are responded to with just the status code.

Signed-off-by: Michael Scott <michael@opensourcefoundries.com>
2018-03-02 16:51:22 +01:00
Paul Sokolovsky
a3a5c48d93 samples: net: echo_async: Better error and write handling
Initially this sample was intended to be very simple and schematic,
but as this sample going to become a base for stream API conversion,
time to handle all the edge conditions.

Signed-off-by: Paul Sokolovsky <paul.sokolovsky@linaro.org>
2018-03-02 16:50:41 +01:00
Tomasz Bursztyka
f835f7f6a0 net/mgmt: Protect the event_callback list when manipulating it.
Adding a lock where relevant.

Fixes #6413

Signed-off-by: Tomasz Bursztyka <tomasz.bursztyka@linux.intel.com>
2018-03-02 16:50:21 +01:00
Tomasz Bursztyka
7255d7bbfb net/mgmt: Fix how event_mask is handled on layer and layer code part
Exact match is the rule here.

Fixes #6413

Signed-off-by: Tomasz Bursztyka <tomasz.bursztyka@linux.intel.com>
2018-03-02 16:50:21 +01:00
Vinayak Kariappa Chettimada
ac34131f42 Bluetooth: controller: Fix missing advDelay in Low Duty Cycle Directed
Fixed the controller implementation for the missing advDelay
for connectable directed advertising events used in a low
duty cycle mode.

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
2018-03-02 16:34:39 +01:00
Alberto Escolar Piedras
4484e9efbd bluetooth: controller: nrf5: fix to IC-specific reset function
Fix of 80210198ad so it does
not cause a segfault in simulated boards

Signed-off-by: Alberto Escolar Piedras <alpi@oticon.com>
2018-03-02 16:33:52 +01:00
Johannes Hutter
2c76978ee4 Bluetooth: Add HCI error code definitions
Add HCI error code definitions based on the Bluetooth 5.0 specification.
That allows for example that disconnection reasons can be checked
against the constants.

Signed-off-by: Johannes Hutter <johannes.5494@gmail.com>
2018-03-02 12:27:05 +01:00
2262ed7b18 netusb: drop the extra byte added for multiple-of-64-byte packets.
This fixes a bug in the cdc_ecm Ethernet over USB driver.  The ECM
spec (section 3.3.1) says that the end of an Ethernet frame is marked
using the USB short packet mechanisim, where the last packet is less
than the maximum packet size.  If the Ethernet frame is a multiple of
the USB maximum packet size then a final zero length packet must be
sent.

Linux however sends a one byte packet (usbnet.c:1393) to work
around hardware issues with zero length packets.

The current Zephyr driver works most of the time except when you send
an Ethernet frame of the right length where the last byte is zero,
such as:

$ ping 192.0.2.1 -s 23 -p 0

Zephyr then drops the last byte, creating a short frame which gets
dropped higher up in the stack.

Signed-off-by: Michael Hope <mlhx@google.com>
2018-03-02 07:34:53 +01:00