Commit graph

99553 commits

Author SHA1 Message Date
Anas Nashif
8cf49371af ci: use latest docker image v0.4-rc7
This one comes with gcc-arm-none-eabi-7-2018-q2-update

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2018-07-05 10:39:50 -04:00
Johann Fischer
fe018a8716 boards: curie_ble: add board.cmake
Add board.cmake for curie_ble board and allow to flash
image using dfu-util.

Signed-off-by: Johann Fischer <j.fischer@phytec.de>
2018-07-05 10:35:08 -04:00
Anas Nashif
fdecc2b2a7 mailmap: add entry for ruuddw
Somehow CI did not catch this, so add an entry to get consistent logs.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2018-07-05 09:57:23 -04:00
Andrei Emeltchenko
7cb8689397 usb: netusb: Add ethernet_init()
After PR #8608 every driver should call ethernet_init(), fixes missing
chunks of that PR.

Fixes: #8752

Signed-off-by: Andrei Emeltchenko <andrei.emeltchenko@intel.com>
2018-07-05 09:56:53 -04:00
Yasushi SHOJI
e09af5f008 doc: enhance cross compile section in getting started
"Getting Started" does not clearly state how to use a custom cross
compiler.  This patch adds a new section "Using Custom Cross
Compilers" to it.

To support users without SDK, we have the section "Building without
the Zephyr SDK".  But the section is all about prebuilt tools in the
SDK but not build process.  This patch adds two pointers "Using 3rd
Party Cross Compilers" and "Using Custom Cross Compilers" pointing to
the actual building process, and let those section describe
ZEPHYR_TOOLCHAIN_VARIANT, which is cross compilers dependent variable.

The patch also clarify what a 3rd party cross compiler is and what a
custom compiler is.

Signed-off-by: Yasushi SHOJI <y-shoji@ispace-inc.com>
2018-07-05 09:04:09 -04:00
Jukka Rissanen
48802024f2 net: icmpv4: Set the ICMPv4 header correctly
The code did not check if the icmpv4 header struct is already
pointing to net_buf or not. This meant that the code did not
set the ICMPv4 options and types correctly.

Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2018-07-05 15:44:49 +03:00
Xuan Ze
8c94b5353a doc: device: dts: Fix the error in the doc.
Fix punctuation error.

Signed-off-by: Xuan Ze <119524428@qq.com>
2018-07-05 07:51:51 -04:00
Walter Xie
354c50e8ed net: add bound checking in net_addr_pton()
The net_addr_pton() did not check the number of ":" characters properly.
For example with following net-shell input
net ping fe80::210:2030:9b:d48efe80::210:2030:9b:d48e
the kernel panics.

Signed-off-by: Walter Xie <41377148@qq.com>
2018-07-05 14:17:23 +03:00
Jukka Rissanen
37125781aa net: gptp: Fix debug prints and use correct modifier
Use %zd instead of %lu when printing size_t variables.

Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2018-07-05 13:08:04 +03:00
Andrzej Głąbek
f0abb24a51 ext: nordic: Fix PWM related nrfx_config entries for nRF52840
Change #ifndef to #ifdef in the entries that enable the PWM driver
and particular hardware instances so that the enabling is done
properly.

Signed-off-by: Andrzej Głąbek <andrzej.glabek@nordicsemi.no>
2018-07-05 11:58:51 +02:00
Andrzej Głąbek
28bf281231 drivers: pwm: nrf: Add nrfx_pwm.c to the build when PWM_NRFX is enabled
When the PWM_NRFX Kconfig option is enabled, add the nrfx driver
to the build automatically by selecting the NRFX_PWM option (it is
a hidden one, so the user cannot do it manually via menuconfig).

Signed-off-by: Andrzej Głąbek <andrzej.glabek@nordicsemi.no>
2018-07-05 11:58:51 +02:00
Jukka Rissanen
16f31f1d3c drivers: eth: native_posix: Enable gPTP support
Allow gPTP code to be run as a linux process and communicate
with gPTP daemon running in linux host.

Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2018-07-05 12:53:37 +03:00
Adithya Baglody
2f5fea0eec benchmarks: app_kernel: Fixed coverity issue.
The return value from the k_mem_slab_alloc was not read. Hence
adding code to make use of this return value.

Fixes: GH-6681

Signed-off-by: Adithya Baglody <adithya.nagaraj.baglody@intel.com>
2018-07-04 22:00:22 -04:00
Findlay Feng
a36bd915af arch: ARM: Change the march used by cortex-m0 and cortex-m0plus
Use -march=armv6s-m to ensure the svc directive exists

Signed-off-by: Findlay Feng <i@fengch.me>
2018-07-04 16:46:40 -04:00
Tomasz Gorochowik
01c11c172a tests: net: Add 802.1Qav test
For now just assume that the fake driver has just one priority/Qav
capable queue.

Signed-off-by: Tomasz Gorochowik <tgorochowik@antmicro.com>
2018-07-04 16:27:34 -04:00
Tomasz Gorochowik
226fa97304 net: ethernet: Add 802.1Qav settings to eth mgmt api
This commit adds a possibility to use Qav (credit-based shaping) in the
ethernet drivers.

There are two parameters exposed through the mgmt api: deltaBandwidth
and idleSlope.

Signed-off-by: Tomasz Gorochowik <tgorochowik@antmicro.com>
2018-07-04 16:27:34 -04:00
Tomasz Gorochowik
22ba08faa3 net: gptp: Send Announce messages with correct GM info
There is no point in sending Announces with GM chosen in BMCA if it is
expired and InfoIS is changed to MINE.

Check where does the GM info come from and fill the Announce packet
accordingly.

Signed-off-by: Tomasz Gorochowik <tgorochowik@antmicro.com>
2018-07-04 16:26:35 -04:00
Tomasz Gorochowik
1a0968bd74 net: gptp: Normalize seconds and nanoseconds differences
Do not allow seconds and nanoseconds drifts to have the opposite signs.

Signed-off-by: Tomasz Gorochowik <tgorochowik@antmicro.com>
2018-07-04 16:26:35 -04:00
Tomasz Gorochowik
fd62617ce2 net: gptp: Fix memcpy calls on arrays
Copy array content, not pointers.

Signed-off-by: Tomasz Gorochowik <tgorochowik@antmicro.com>
2018-07-04 16:26:35 -04:00
Tomasz Gorochowik
2ca3b1e3c4 net: if: Fix TX timestamp callbacks invocation
The problem is that net_if_call_timestamp_cb only checked if the
callback was registered for the PORT which invoked the whole action.

There is a possibility, that the callback will be registered, and packet
A will be passed to eth driver. Before the driver is finished with
packet A, network layer will start handling another packet (B) - so it
will unregister the callback for packet A and register it for B. After
that the network driver will finish processing packet A and invoke the
timestamp callback. The mechanism would then only check if a callback is
registered for the port of the driver and invoke the callback for the
packet that was registered earlier (so A instead of B).

This commit fixes that by storing info not only about the port but about
the packet too.

Signed-off-by: Tomasz Gorochowik <tgorochowik@antmicro.com>
2018-07-04 16:26:35 -04:00
Jukka Rissanen
65e9177a27 net: gptp: Print port state change information
If debugging is enabled, then print port state change information.

Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2018-07-04 16:26:35 -04:00
Tomasz Gorochowik
fb6223b893 net: gptp: Drop the older pdelay req after receiving a new one
Previously the newer one got dropped.

The older ones will be dropped in a way that the follow up messages for
them will not be sent.

Signed-off-by: Tomasz Gorochowik <tgorochowik@antmicro.com>
2018-07-04 16:26:35 -04:00
Tomasz Gorochowik
214aebc6e1 net: gptp: Fix gptp port number validation
The gptp port number starts from 1, so the check was incorrect.
Use the proper define values before printing stats.

Signed-off-by: Tomasz Gorochowik <tgorochowik@antmicro.com>
2018-07-04 16:26:35 -04:00
Tomasz Gorochowik
b51f1ccce8 net: gptp: Fix validation of non-numeric inputs from net shell
The shell did not check if the gptp port (command argument) is numeric.
Add that check before executing the port info functions.

Signed-off-by: Tomasz Gorochowik <tgorochowik@antmicro.com>
2018-07-04 16:26:35 -04:00
Alberto Escolar Piedras
e1af33b428 doc: native_posix: Add paragraph about ASan
Added one paragraph about having the option to use
Address Sanitizer and how to use it.

Signed-off-by: Alberto Escolar Piedras <alpi@oticon.com>
2018-07-04 15:11:20 -04:00
Andrei Emeltchenko
6e15dc789a usb: tests: Fix BOS test related to linker order
The current test expects particular order of cap_webusb and cap_msosv2
structures, create alternative structure for comparison.

Fixes: #8732

Signed-off-by: Andrei Emeltchenko <andrei.emeltchenko@intel.com>
2018-07-04 15:10:31 -04:00
Jukka Rissanen
5356ee5d20 net: gptp: Init only the ports we have configured
The MI state machine was init with too many ports, even if
we only had one of them.

Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2018-07-04 11:22:23 -04:00
Vikrant More
c789662f77 samples: mesh/onoff_level_lighting_vnd_app: improved state binding
Removed redundancy from state binding & make it simplified.
Avoid partial state binding in case of state_binding() function
get called with invalid or IGNORE arguments.

Signed-off-by: Vikrant More <vikrant8051@gmail.com>
2018-07-04 17:57:19 +03:00
Vikrant More
31cf5672dc samples: mesh/onoff_level_lighting_vnd_app: corrected printk message
Corrected printk messgae for GET handler for Generic Power OnOff
server.

Signed-off-by: Vikrant More <vikrant8051@gmail.com>
2018-07-04 17:57:19 +03:00
Vikrant More
182be3b49a samples: mesh/onoff_level_lighting_vnd_app: fix buffers length
Changes buffer length for all GET handlers as per patter of
 < 2 + parameters length (in bytes) + 4 >

Signed-off-by: Vikrant More <vikrant8051@gmail.com>
2018-07-04 17:57:19 +03:00
Vikrant More
0febf03dc8 samples: mesh/onoff_level_lighting_vnd_app: Vendor Model upgrade
This patched improved architecture of already implemented Vendor
Model. Now there are 4 separate opcodes for Vendor viz;
get, set, set_unack & status. This helps to setup
<command + response> mechanism.

Signed-off-by: Vikrant More <vikrant8051@gmail.com>
2018-07-04 17:57:19 +03:00
Jukka Rissanen
b4dae00741 tests: net: tx_timestamp: Check max number of interfaces
Add checks so that we do not overflow the network interface
array.

Fixes #8715

Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2018-07-04 16:00:22 +03:00
Morten Priess
8a74e7056d tests: ztest: ztest_mock to support multiple calls to same mock
Updated ztest_mock.c to support multiple calls to same mock function
within a single function under test. This allows sequencing mock
return values for improved decision coverage in a test, or simply
when a given function under test calls the same function more than
once with different parameters, or different return values.

Signed-off-by: Morten Priess <mtpr@oticon.com>
2018-07-04 08:57:09 -04:00
Jukka Rissanen
482865c4c4 tests: net: ptp: Make sure we check clock increment properly
If the sys_rand32_get() returns large value, then we might
decrement the clock which is not intended in this test.

Fixes #8657

Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2018-07-04 08:29:50 -04:00
Bobby Noelte
ca7fc2adbc scripts: extract_dts_includes.py: fix false info message
Do not provide info message if node type, title, version,
node description is overwritten.
This is the expected behaviour.

Fixes #8360

Signed-off-by: Bobby Noelte <b0661n0e17e@gmail.com>
2018-07-04 08:28:45 -04:00
Ioannis Glaropoulos
df41ed885a arch: arm: mpu: replace literals with CMSIS bitsets
This commit refactors internal functions in arm_mpu.c to use
bitsets and functions taken directly from ARM CMSIS instead of
hardcoded arithmetic literals. In several internal functions
some part of the implementation is abstracted further in inline
functions or convenience macros, to facilitate extending the
arm_mpu.c for ARMv8-M. In addition, the commit adds minor
improvements in internal function documentation.

Signed-off-by: Ioannis Glaropoulos <Ioannis.Glaropoulos@nordicsemi.no>
2018-07-04 08:25:02 -04:00
Ioannis Glaropoulos
d1944109a9 arch: arm: abstract MPU attribute generation in inline function
This commit abstracts the attribution generation for an MPU
region, determined based on a supplied configuration and the
given size, from the actual implementation, which is placed
in a separate inline function. This allows to have multiple
implementations of attribution generation for different ARM
MPU drivers.

Signed-off-by: Ioannis Glaropoulos <Ioannis.Glaropoulos@nordicsemi.no>
2018-07-04 08:25:02 -04:00
Ioannis Glaropoulos
2b79fceb84 arch: arm: refactor _region_init(..) function
This commit refactors the _region_init(..) internal MPU driver
function so it gets the region index and a struct arm_mpu_region
as aruments. The latter holds the MPU region configuration that
is to be applied to the region determined by the index argument.

Signed-off-by: Ioannis Glaropoulos <Ioannis.Glaropoulos@nordicsemi.no>
2018-07-04 08:25:02 -04:00
Ioannis Glaropoulos
e202e04499 arch: arm: nrf: conditionally compile mpu_regions.c
This commit enforces conditional compilation of mpu_regions.c
in nrf52/CMakeLists.txt depending on whether ARM_MPU_NRF52X
K-option is defined.

Signed-off-by: Ioannis Glaropoulos <Ioannis.Glaropoulos@nordicsemi.no>
2018-07-04 08:21:58 -04:00
Johannes Hutter
414291cc12 ext: lib: mgmt: mcumgr: update to latest master
This update to the latest master of mcumgr fixes a memory corruption in
the image management and updates the readme.

Fixes #7924

Origin: mcumgr
License: Apache 2.0
URL: https://github.com/apache/mynewt-mcumgr
commit: a837a731b94927c6198e39744cd6d979be23942a
Purpose: Fix memory corruption
Maintained-by: External

Signed-off-by: Johannes Hutter <johannes@proglove.de>
2018-07-04 11:59:12 +02:00
Daniel Wagenknecht
c7875b75aa i2c: stm32_v2: implement slave support
This patch adds I2C Slave support conforming to the syscalls and funcs,
only for the STM32 V2 I2C Driver for the moment.

It is capable of handling multi-master bus setups.

Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
Signed-off-by: Daniel Wagenknecht <wagenknecht@clage.de>
2018-07-04 11:57:33 +02:00
Neil Armstrong
94d3156540 test: i2c: Add i2c_slave_api test
Add a new test to make I2C transfers between an I2C controller and
an I2C slave driver, either by:
- Using a virtual I2C driver
- Using a physical link and 2 physical controllers

The Physical test uses :
- Two EEPROM Slave drivers each connected to one I2C controller
- Both I2C controllers also act as master and take turns writing
to the opposite EEPROM Slave.
All of this connected physically on the board.

Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
Signed-off-by: Daniel Wagenknecht <wagenknecht@clage.de>
2018-07-04 11:57:33 +02:00
Neil Armstrong
9a73cdfe9e i2c: slave: Add EEPROM I2C Slave driver
Add a new EEPROM simulated driver with all it's build infrastructure.

The EEPROM can be loaded/poked from applications by getting its funcs.

It is multi-instance capable, right now 2 instances are supported by
enabling them in KConfig.

Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
Signed-off-by: Daniel Wagenknecht <wagenknecht@clage.de>
2018-07-04 11:57:33 +02:00
Neil Armstrong
d55a6aa32d i2c: Add new I2C Slave syscalls
This patchs adds new I2C Syscalls for :
- I2C controllers slave support
- I2C Slave drivers support

I2C Controllers slave support adds 2 new ops to :
- register new slave driver
- unregister slave driver

Slave funcs consists on all the I2C phases :
- read or write request once address matches
- read or write done once the byte has been received/sent
- stop when the trasmit stops

I2C Slave drivers syscall are also added to make new
"I2C Slave" drivers to :
- register them to their I2C controller
- unregister them to their I2C controller

Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
2018-07-04 11:57:33 +02:00
Daniel Wagenknecht
81cfdec3a9 i2c: stm32_v2: restructure interrupt handling
This patch restructures stm32_i2c_v2 drivers Interrupts:
- NACK failures trigger an I2C event interrupt, so move
handling of NACK failure from error isr to event isr.
- Extract logic of interrupt handling to static functions. Use
isr functions (event & error OR combined) to call these. This
reduces duplication between error isr and combined isr.
- Restructure the error interrupt handling, so that it has no effect
when no errors occured and thus can be called by combined isr.
- Change interrupt logic from if/else to pure ifs for each flag.
This reduces code paths and leads to one call of the isr handling
multiple interrupt conditions, if there's more than one I2C
interrupt flags set.
This is the way it's done e.g. in linux kernels (since 4.14)
drivers/i2c/busses/i2c-stm32f7.c

Signed-off-by: Daniel Wagenknecht <wagenknecht@clage.de>
2018-07-04 11:57:33 +02:00
Daniel Wagenknecht
cc4191666b i2c: stm32: check messages before starting transmission
In preparation to implementing slave and multi-master
capabilities for STM32 I2C V2 driver move the checks,
whether all messages of a transfer are valid, before
starting the transaction.

This prevents having to abort a transmission, that is
already partly transmitted.

Signed-off-by: Daniel Wagenknecht <wagenknecht@clage.de>
2018-07-04 11:57:33 +02:00
Aurelien Jarno
5aa09c6baa drivers: entropy: stm32: add support for STM32F7
All the STM32F7 SoCs have a TRNG. Adding support for it is just a matter
of tweaking the #ifdef and including the right file from HAL.

Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
2018-07-03 22:48:08 -04:00
Joakim Andersson
dbc00ba374 Bluetooth: controller: Fix empty_pkt_us_get for 2M phy.
An empty packet on 2M phy is one more byte compared to 1M phy because
of the preamble.
The empty packet is then 11 bytes, which takes 44 us to transmit.

Signed-off-by: Joakim Andersson <joakim.andersson@nordicsemi.no>
2018-07-03 22:47:45 -04:00
Piotr Zięcik
77f42f8312 kernel: Move _ms_to_ticks() and __ticks_to_ms() close to each other.
This commit moves the _ms_to_ticks() and __ticks_to_ms() functions
close to each other in order to improve code readability.

Signed-off-by: Piotr Zięcik <piotr.ziecik@nordicsemi.no>
2018-07-03 22:46:39 -04:00
Piotr Zięcik
91fe22ec7d kernel: Improve tick <-> ms conversion.
The kernel incorrectly assumed, that system timer frequency is always
divisible without remainder by couple "natural" tick rates (like 100).
As result on some SoCs, time calculations was not correct, producing
strange effects (invalid sleep times, incorrect k_uptime_get() etc.).

This commit enables accurate, but costly (using 64-bit math) tick <-> ms
conversion if the selected tick interval is not exact due to hardware
limitations.

Also, this commit fixes tests in which removed _ms_per_tick were used.

Signed-off-by: Piotr Zięcik <piotr.ziecik@nordicsemi.no>
2018-07-03 22:46:39 -04:00