Commit graph

99553 commits

Author SHA1 Message Date
Michael Scott
f038d35a98 net: lwm2m: remove unused LWM2M_PEER_PORT define
Code references CONFIG_LWM2M_PEER_PORT directly.

Signed-off-by: Michael Scott <michael@opensourcefoundries.com>
2018-05-04 09:45:35 +03:00
Michael Scott
b6ca731bdc net: lwm2m: remove unused CONFIG_LWM2M_BOOTSTRAP_PORT config
In the future, when bootstrap support is added, this config won't
be used.  Let's remove it.

Signed-off-by: Michael Scott <michael@opensourcefoundries.com>
2018-05-04 09:45:35 +03:00
Michael Scott
42717a97f7 net: lwm2m: use BIT macro instead of LWM2M_OP_BIT
Now that the LWM2M_OP_* bits have been renumbered, we no longer need
a custom BIT() macro for the LwM2M code.  Let's remove it and use
BIT() instead.

Signed-off-by: Michael Scott <michael@opensourcefoundries.com>
2018-05-04 09:45:35 +03:00
Michael Scott
aa9a24aa25 net: lwm2m: remove LWM2M_OP_NONE flag and renumber the rest
Remove unused OP flag LWM2M_OP_NONE and renumber the existing flags
so that the operations used in object permissions land in the lowest
bits, and extended operations come later.

We may eventually add more permission / data flags, so let's try and
keep them inside a 1 byte boundary (flags with bits 0 to 7).

NOTE: LWM2M_OP_DELETE is currently not checked as a permission but
it may be in the future so it is in the lower bits.

Signed-off-by: Michael Scott <michael@opensourcefoundries.com>
2018-05-04 09:45:35 +03:00
Michael Scott
f80c52d668 net: lwm2m: introduce LWM2M_HAS_PERM macro
Standardize permission checks via the LWM2M_HAS_PERM macro.

Signed-off-by: Michael Scott <michael@opensourcefoundries.com>
2018-05-04 09:45:35 +03:00
Michael Scott
cf55b70b4c net: lwm2m: fix error code in read and write handlers
When a data pointer or data length is not set, the read and write
handlers should return ENOENT to generate the correct LwM2M error
code (COAP_RESPONSE_CODE_NOT_FOUND).

Signed-off-by: Michael Scott <michael@opensourcefoundries.com>
2018-05-04 09:45:35 +03:00
Michael Scott
44c9b79a49 net: lwm2m: clear lwm2m_obj_path obj in string_to_path
Before ever call of string_to_path(), the lwm2m_obj_path object
was being cleared via memset.  Let's move the memset into
string_to_path() to remove the duplicate code.

Signed-off-by: Michael Scott <michael@opensourcefoundries.com>
2018-05-04 09:45:35 +03:00
Michael Scott
3e16be3c3c net: lwm2m: refactor engine_get_obj to be more useful
Eliminate several similar code-blocks by replacing
engine_get_resource() with a more useful function called:
path_to_objs()

By supplying an lwm2m_obj_path object, it will find and set
the related values for:
struct lwm2m_engine_obj_inst
struct lwm2m_engine_obj_field
struct lwm2m_engine_res_inst

NOTE: NULLs can be supplied where the returned value is not
important.

Signed-off-by: Michael Scott <michael@opensourcefoundries.com>
2018-05-04 09:45:35 +03:00
Maureen Helm
cc6f8b524c tests: fp_sharing: Fix definition of PI_NUM_ITERATIONS
The fp_sharing test has an option to control the number of iterations in
the pi calculation, which is used to adjust the duration of the test on
different platforms that may have significantly different execution
frequencies (e.g., qemu_x86 vs. frdm_k64f). The conversion to CMake did
not handle this option correctly and forced the same value for all
platforms.

The test now completes in about 5 minutes on frdm_k64f.

Signed-off-by: Maureen Helm <maureen.helm@nxp.com>
2018-05-03 23:24:57 -04:00
Anas Nashif
7a587eea8f tests: document skipping tests and listing them
Add documentation about skipping tests and listing sub testcases (cases
within test projects).

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2018-05-03 17:23:37 -04:00
David B. Kinder
2c8a3835d9 doc: DRAFT start for 1.12 release notes
Get the 1.12 release notes started with material derived from the 1.12
roadmap (closed issues) and headings from the 1.11 release notes.

Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
2018-05-03 11:03:20 -05:00
Ramakrishna Pallala
ee1e9886a9 tests: boards: altera_max10: Add test for Nios-II MSGDMA soft IP
Add test for Altera Nios-II MSGDMA soft IP core. This IP on
Altera MAX10 support Memory to Memory DMA transfers.

Signed-off-by: Ramakrishna Pallala <ramakrishna.pallala@intel.com>
2018-05-03 10:38:09 -04:00
Ramakrishna Pallala
15447fa1d8 drivers: dma: Add dma driver for Nios-II MSGDMA core
Add dma driver for Nios-II Modular Scatter-Gather DMA soft IP.

This driver relies upon the Altera HAL msgdma driver for all
the dma core register programming and interrupt handling.

Signed-off-by: Ramakrishna Pallala <ramakrishna.pallala@intel.com>
2018-05-03 10:38:09 -04:00
Ramakrishna Pallala
4073db79d7 arch: nios2: Add _nios2_dcache_flush_no_writeback() routine
Add _nios2_dcache_flush_no_writeback() routine to invalidate
cache contents of address provided.

This routine is ported from Altera Nios-II SDK v17.

Signed-off-by: Ramakrishna Pallala <ramakrishna.pallala@intel.com>
2018-05-03 10:38:09 -04:00
Ramakrishna Pallala
9b5fa89547 ext: hal: altera: Add wrapper function for Altera HAL runtime API
Add wrapper function for alt_printf() Altera HAL runtime API
to enable Altera HAL drivers on Zephyr.

Signed-off-by: Ramakrishna Pallala <ramakrishna.pallala@intel.com>
2018-05-03 10:38:09 -04:00
Ramakrishna Pallala
4f68b4dc75 ext: hal: altera: Add modular Scatter-Gather DMA HAL driver
Add Altera Nios-II modular Scatter-Gather DMA (mSGDMA) HAL
driver to Zephyr.

The sources are taken from the Altera SDK v17.

Signed-off-by: Ramakrishna Pallala <ramakrishna.pallala@intel.com>
2018-05-03 10:38:09 -04:00
Sathish Kuttan
cdd108f66c boards: intel_s1000_crb: Assign Intel VID and PID for S1000 CRB
Added following configs
+ CONFIG_USB_DEVICE_VID
+ CONFIG_USB_DEVICE_PID
+ CONFIG_USB_DEVICE_MANUFACTURER
+ CONFIG_USB_DEVICE_PRODUCT
to boards/xtensa/intel_s1000_crb/intel_s1000_crb_defconfig

Signed-off-by: Sathish Kuttan <sathish.k.kuttan@intel.com>
2018-05-03 10:04:41 -04:00
Anas Nashif
11120bf1c7 tests: remove comma from whitelist
items in platform_whitelist are not comma separated.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2018-05-03 09:28:36 -04:00
Jukka Rissanen
542f10de78 tests: net: ip: Refactor and add IPv4 tests
Add new test for testing IPv4 source address selection functions.
Refactor the tests:
- split tests to smaller pieces
- use proper zassert() statements
- print debugging information only when needed

Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2018-05-03 12:47:52 +03:00
Jukka Rissanen
128557896c net: if: Add functions to get correct IPv4 address
Add functions that will return correct source IPv4 address
according to given destination address. This is done similar
way as for IPv6.

Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2018-05-03 12:47:52 +03:00
Johan Hedberg
8dd37fa79a Bluetooth: Mesh: Fix sequence number in Friend queue
The code was updating net_rx->seq to make sure sdu_recv() gets the
right sequence number (seq_auth for segmented messages), however later
net_rx->seq was also used for enqueuing to the Friend Queue, causing
the queued messages to have the wrong value.

To fix this, don't update net_rx->seq, rather pass an explicit
sequence number value to sdu_recv(), which is just net_rx->seq for
unsegmented messages, and seq_auth for segmented messages.

Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
2018-05-03 10:01:00 +01:00
Johan Hedberg
6a71a69f8d Bluetooth: GATT: Fix CCC handling
The 'valid' member of struct bt_gatt_ccc_cfg was redundant, since
setting 'peer' to BT_ADDR_LE_ANY does the same job. What's worse, the
handling of 'valid' was also buggy in that some places looking for
valid CCC structs only matched the address, meaning it might yield a
positive match for invalid entries.

Fix these issues by removing the 'valid' struct member, and solely
using the 'peer' member to identify valid entries. Also simplify the
code by acknowledging that no CCC entry is essentially the same as the
value '0' written to CCC.

Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
2018-05-03 09:53:16 +01:00
Jukka Rissanen
33eb03a8d9 samples: net: https-client: Increasing main stack size
The main stack size was too small for this sample application
when TLS was enabled. Increasing it to 1504 bytes.

Fixes #7269

Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2018-05-03 08:55:58 +03:00
David B. Kinder
c5615aada4 doc: change https://zephyrproject.org/doc refs
Remove extra indirection to documentation (and required
server link redirection) from https://zephyrproject.org/doc/...
to http://docs.zephyrproject.org/...

Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
2018-05-02 18:32:44 -04:00
Ulf Magnusson
dc97fc2a60 kconfiglib: Update to default to UTF-8 for Python 3
Update Kconfiglib to upstream revision da40c014398f3 (+ local Zephyr
modifications) to get commit da40c014398f3 ("Force encoding to UTF-8 by
default on Python 3") in. It sets a (configurable) UTF-8 default for
Python 3, overriding the encoding specified in the current locale.

I've decided that this is a good idea after some problem reports
unrelated to Zephyr. Running with the C locale breaks things horribly
otherwise, and the fix isn't obvious.

Plain strings aren't decoded on Python 2, so no changes are needed
there.

Related PEP: https://www.python.org/dev/peps/pep-0538/

Signed-off-by: Ulf Magnusson <ulfalizer@gmail.com>
2018-05-02 15:44:45 -04:00
Stanislav Poboril
67ba7d8a36 gpio: Add imx gpio driver shim
Adds a shim layer around the imx gpio driver to adapt it to the Zephyr
gpio interface.

For now only the port 4 was tested.

Signed-off-by: Stanislav Poboril <stanislav.poboril@nxp.com>
2018-05-02 12:48:14 -05:00
Andy Ross
15c400774e kernel: Rework SMP irq_lock() compatibility layer
This was wrong in two ways, one subtle and one awful.

The subtle problem was that the IRQ lock isn't actually globally
recursive, it gets reset when you context switch (i.e. a _Swap()
implicitly releases and reacquires it).  So the recursive count I was
keeping needs to be per-thread or else we risk deadlock any time we
swap away from a thread holding the lock.

And because part of my brain apparently knew this, there was an
"optimization" in the code that tested the current count vs. zero
outside the lock, on the argument that if it was non-zero we must
already hold the lock.  Which would be true of a per-thread counter,
but NOT a global one: the other CPU may be holding that lock, and this
test will tell you *you* do.  The upshot is that a recursive
irq_lock() would almost always SUCCEED INCORRECTLY when there was lock
contention.  That this didn't break more things is amazing to me.

The rework is actually simpler than the original, thankfully.  Though
there are some further subtleties:

* The lock state implied by irq_lock() allows the lock to be
  implicitly released on context switch (i.e. you can _Swap() with the
  lock held at a recursion level higher than 1, which needs to allow
  other processes to run).  So return paths into threads from _Swap()
  and interrupt/exception exit need to check and restore the global
  lock state, spinning as needed.

* The idle loop design specifies a k_cpu_idle() function that is on
  common architectures expected to enable interrupts (for obvious
  reasons), but there is no place to put non-arch code to wire it into
  the global lock accounting.  So on SMP, even CPU0 needs to use the
  "dumb" spinning idle loop.

Finally this patch contains a simple bugfix too, found by inspection:
the interrupt return code used when CONFIG_SWITCH is enabled wasn't
correctly setting the active flag on the threads, opening up the
potential for a race that might result in a thread being scheduled on
two CPUs simultaneously.

Signed-off-by: Andy Ross <andrew.j.ross@intel.com>
2018-05-02 10:00:17 -07:00
Andy Ross
eb258706e0 kernel: Move SMP initialization to start of main thread
The smp_init() call was too early.  Device and subsystem
initialization doesn't happen until after the main thread starts
running.  Starting extra CPUs and allowing them to schedule threads
before their drivers are alive is a bad idea, even if it works in a
unit test.

Signed-off-by: Andy Ross <andrew.j.ross@intel.com>
2018-05-02 10:00:17 -07:00
Ruslan Mstoi
d171568582 net: icmpv6: Fix payload length and checksum
With fragmentation disabled echo server responds to packet fragment with
ICMPv6 message Type: "Parameter Problem (4)", Code: "unrecognized Next
Header type encountered (1)". If a fragment with payload length 15 is
received in response sent by echo server IPv6 payload length and ICMPv6
checksum are wrong. This patch solves the issue by correcting payload
length.

Signed-off-by: Ruslan Mstoi <ruslan.mstoi@intel.com>
2018-05-02 18:12:58 +03:00
Andy Gross
878f39c18e makefile: Fix dependencies for privileged stacks
This patch fixes the dependency chain for priviliged stack
generation.  This fixes a problem when compiling after making
significant changes that would shift the privileged stack area.

Signed-off-by: Andy Gross <andy.gross@linaro.org>
2018-05-02 10:59:40 -04:00
Maureen Helm
c6f2b4ccb8 spi: Fix mcux dspi driver to parse lsb transfer mode correctly
The mcux dspi driver was incorrectly using the macro SPI_MODE_GET() to
parse the operation for SPI_TRANSFER_LSB. The effect of this bug was
that the driver would quietly always operate in SPI_TRANSFER_MSB mode.

Coverity-CID: 185401

Signed-off-by: Maureen Helm <maureen.helm@nxp.com>
2018-05-02 10:59:11 -04:00
Johan Hedberg
6b11106440 Bluetooth: Mesh: Fix enabling Node Identity advertising
The bt_mesh_provision() call results in the provisioning link state
being cleared, so link.conn will become NULL. Add code to store the
information of whether PB-GATT was used and use this information after
the call instead of relying on link.conn anymore at this point.

Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
2018-05-02 15:45:16 +01:00
Johan Hedberg
92749e7a92 Bluetooth: Mesh: Remove unnecessary #ifdefs from header file
The #ifdef protections are not needed, and in fact prevent helpers
such as IS_ENABLED() from being used when calling APIs which are
optional.

Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
2018-05-02 15:45:16 +01:00
Alberto Escolar Piedras
770178b76e sanitycheck: Stop on linker warnings also in native_posix
After removing the -T linker warning for the POSIX arch
we can, and should, also treat its linker warnings as errors

Signed-off-by: Alberto Escolar Piedras <alpi@oticon.com>
2018-05-02 10:19:09 -04:00
Alberto Escolar Piedras
e3efbd54c6 POSIX arch: Fix linker -T warning
Modify the linker script with the command INSERT.
It instructs the linker to augment the default linker script
SECTIONS with the ones provided with the one provided in
this script.
It also modified the meaning of the -T switch, so it no longer
replaces the default linker script

Signed-off-by: Alberto Escolar Piedras <alpi@oticon.com>
2018-05-02 10:19:09 -04:00
Sebastian Bøe
aa90d72116 cmake: Introduce a key version to invalidate corrupted caches
When a bug in the caching mechanism is detected the cache format must
be bumped to ensure that we no longer get a cache hit on old corrupted
keys.

This fixes #7246 when the cache is corrupted.

Signed-off-by: Sebastian Bøe <sebastian.boe@nordicsemi.no>
2018-05-02 10:16:24 -04:00
Sebastian Bøe
5f08b106a8 cmake: Suppress messages about compiler checks
Messages about compiler checks are very verbose so we disable them by
default. They have always been undesirably verbose, but introducing
CMAKE_REQUIRED_FLAGS into the 'check' string made them unacceptably
so.

Signed-off-by: Sebastian Bøe <sebastian.boe@nordicsemi.no>
2018-05-02 10:16:24 -04:00
Sebastian Bøe
632fe1d411 cmake: check_compiler_flag: Fix bug where checks were aliased
Fix a bug where different compiler checks were aliased and therefore
the test results were incorrectly re-used.

The 'check' string is used by CMake internally to cache test results,
but when testing linker flags the check string has been aliased
between the different linker checks. To fix the aliasing issue we add
the CMAKE_REQUIRED_FLAGS variable to the 'check' string. The aliasing
issue disappears because the linker flag-under-test is in
'CMAKE_REQUIRED_FLAGS'.

Signed-off-by: Sebastian Bøe <sebastian.boe@nordicsemi.no>
2018-05-02 10:16:24 -04:00
Wayne Ren
6c65ac2bb4 arch: arc: fix the typo of label which caused issue #7249
* fix the issue #7249 which is caused by a typo of label

Signed-off-by: Wayne Ren <wei.ren@synopsys.com>
2018-05-02 09:31:00 -04:00
Andrei Emeltchenko
943ca29d4b usb: dw: Fix Coverity issue with get_mps()
Fix issue with Coverity using if / else instead of switch, though it
does not affect code.

Fixes: #7257
CID: 185399

Signed-off-by: Andrei Emeltchenko <andrei.emeltchenko@intel.com>
2018-05-02 09:26:44 -04:00
Matthias Boesl
f618af75a8 driver: ieee802154: cc1200: fix context handling
context was missed during refactoring

Signed-off-by: Matthias Boesl <matthias.boesl@gmail.com>
2018-05-02 14:30:34 +03:00
Tomasz Gorochowik
3da4d37003 net: Implement VLAN priority to packet priority conversion
According to IEEE 802.1Q the VLAN priority (PCP) is not directly mapped
to the network packet priority. The Best Effort priority has a PCP value
of 0. The lowest priority (Background) has a PCP value of 1.

All the values are mapped according to the following table:

  +-----+-----+---------+
  | PCP | PRI | Acronym |
  +-----+-----+---------+
  |  1  |  0  |    BK   |
  |  0  |  1  |    BE   |
  |  2  |  2  |    EE   |
  |  3  |  3  |    CA   |
  |  4  |  4  |    VI   |
  |  5  |  5  |    VO   |
  |  6  |  6  |    IC   |
  |  7  |  7  |    NC   |
  +-----+-----+---------+

Signed-off-by: Tomasz Gorochowik <tgorochowik@antmicro.com>
2018-05-02 13:40:32 +03:00
Yannis Damigos
2fd277fccf arch/arm/soc/st_stm32/stm32f1: Add I2C1 to dts.fixup
This patch adds the missing defines for I2C1.

Fixes #7248.

Signed-off-by: Yannis Damigos <giannis.damigos@gmail.com>
2018-05-02 01:11:36 -04:00
Anas Nashif
00c26d24b2 samples: remove stray config
CONFIG_BUILD_OUTPUT_STRIPPED was added by mistake into this sample.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2018-05-02 00:23:31 -04:00
Anas Nashif
b3275d651c tests/samples: add hw dependencies
Add hardware dependencies and filters to make sure we do not explode if
for example we try to build a sample/test using rtc when the platform
does not support that.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2018-05-01 19:10:27 -04:00
Savinay Dharmappa
7be3236ca4 dts: interrupt_controller: Add dts support for DesignWare controller
Add dts support for multilevel DW interrupt controller

Change-Id: Ia16d6870bd3a46fca933c906aedc6ba78ed5131a
Signed-off-by: Savinay Dharmappa <savinay.dharmappa@intel.com>
2018-05-01 16:46:41 -04:00
Savinay Dharmappa
9ee4929d56 dts: i2c: Add dts support for i2c
Change-Id: I9104f5230a4efbf1b6979e146e7ea73a76891947
Signed-off-by: Savinay Dharmappa <savinay.dharmappa@intel.com>
2018-05-01 16:46:41 -04:00
Savinay Dharmappa
97f721d928 dts: xtensa: Add device tree support for xtensa
Change-Id: I309bc50c6b575caa84fbc7ab98cc9890771b4274
Signed-off-by: Savinay Dharmappa <savinay.dharmappa@intel.com>
2018-05-01 16:46:41 -04:00
Savinay Dharmappa
e57df9a3ed tests: boards: intel_s1000_crb: select application based on config
Add support to enable test application selectively based
on defconfig

Change-Id: I8111750ff099edd95ffa22c6e312999c801678ea
Signed-off-by: Savinay Dharmappa <savinay.dharmappa@intel.com>
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2018-05-01 16:46:41 -04:00
Rajavardhan Gundi
699759a0d6 doc: brief description on intel_s1000 usage
A brief description about intel_s1000 and ways to connect,
flash, debug etc.

Change-Id: I459c64d8d9574bc3511da7f983d68e044cacc1d0
Signed-off-by: Rajavardhan Gundi <rajavardhan.gundi@intel.com>
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2018-05-01 16:46:41 -04:00