Commit Graph

21961 Commits

Author SHA1 Message Date
Ulf Magnusson 53f4189075 scripts: kconfig: Do not print warnings for choice overriding
Andy Ross wanted to override a choice selection from a board defconfig
file in a prj.conf, but this could trigger the
assigned-value-didn't-take warning, because the choice symbol set to y
in the board defconfig file ends up as n after another choice symbol is
selected.

(Note: Setting any choice symbol to y is enough to make it the choice
(user) selection. There's no need to set the other symbols to n.)

Fix the warning by checking choices at the choice level rather than at
the level of individual choice symbols. This also makes the warning a
bit more informative in general for choice symbols.

Signed-off-by: Ulf Magnusson <Ulf.Magnusson@nordicsemi.no>
2018-07-03 17:09:47 -04:00
Andy Ross dd33b37eff tests/sched/scheduler_api: samples/philosophers: Use SCHED_SCALABLE
These two tests ask for lots of priority levels, more than the 32
maximum allowed by SCHED_MULTIQ (which is by design: if you have
requirements like that DUMB or SCALABLE are better choices due to the
RAM overhead of MULTIQ), so the build will fail on boards that defined
MULTIQ as default.

Don't let the platform choose the scheduler backend, ask for SCALABLE
explicitly.

Signed-off-by: Andy Ross <andrew.j.ross@intel.com>
2018-07-03 17:09:15 -04:00
Andy Ross 57dcb53a94 boards/qemu_cortex_m3: Use SCHED_MULTIQ by default
Have qemu_cortex_m3 use the traditional multiqueue scheduler by
default, to be sure it gets test coverage.

Signed-off-by: Andy Ross <andrew.j.ross@intel.com>
2018-07-03 17:09:15 -04:00
Andy Ross 9f06a35450 kernel: Add the old "multi queue" scheduler algorithm as an option
Zephyr 1.12 removed the old scheduler and replaced it with the choice
of a "dumb" list or a balanced tree.  But the old multi-queue
algorithm is still useful in the space between these two (applications
with large-ish numbers of runnable threads, but that don't need fancy
features like EDF or SMP affinity).  So add it as a
CONFIG_SCHED_MULTIQ option.

Signed-off-by: Andy Ross <andrew.j.ross@intel.com>
2018-07-03 17:09:15 -04:00
Andy Ross 225c74bbdf kernel/Kconfig: Reorgnize wait_q and sched algorithm choices
Make these "choice" items instead of a single boolean that implies the
element unset.

Also renames WAITQ_FAST to WAITQ_SCALABLE, as the rbtree is really
only "fast" for large queue sizes (it's constant factor overhead is
bigger than a list's!)

Signed-off-by: Andy Ross <andrew.j.ross@intel.com>
2018-07-03 17:09:15 -04:00
Paul Sokolovsky ec6b6c9f0c eth: mcux: Add an option for randomized, but stable MAC address
The previous default, CONFIG_ETH_MCUX_0_RANDOM_MAC, result in a random
MAC address changed each reboot. As reboots happen quite often during
development, while Ethernet peers usually cache existing MAC addresses
in ARP cache, this led to situation when a board after reboot didn't
respond to pings or any other connection attempts for random amount of
time (upo to 10-20s). This was quite confusing and looked like some
problem in driver/hardware/connection/whatever.

Instead, introduce new option, CONFIG_ETH_MCUX_0_UNIQUE_MAC, to make
MAC address from MCU unique identification register. This results in
randomized/unique MAC address which is also stable over reboots and
avoids the situation described above.

Fixes: #3187

Signed-off-by: Paul Sokolovsky <paul.sokolovsky@linaro.org>
2018-07-03 17:07:33 -04:00
Leandro Pereira 91220ba640 boards: native_posix: Add option to build with Address Sanitizer
Address Sanitizer helps finding issues related to memory: buffer
overflows, usage of uninitialized memory, etc.  This is available in
both Clang and GCC for a while, and, since the POSIX port is only
meant for testing, this will help find issues.

Signed-off-by: Leandro Pereira <leandro.pereira@intel.com>
Signed-off-by: Alberto Escolar Piedras <alpi@oticon.com>
2018-07-03 17:06:25 -04:00
Aurelien Jarno e07a1ad254 boards: arm: stm32: basic support for STM32F723E-DISCO board
This patch adds basic support and documentation for the STM32F723E-DISCO
board, with GPIO, USART, I2C and USB support. Two USARTs are enabled,
the VCP one for the console and the Arduino one. The GPIOs are
configured for the 3 LEDs and the button available on the board.

Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
2018-07-03 13:53:36 -05:00
Aurelien Jarno 6ee562b754 arch: arm: stm32: add basic support for STM32F723 SoC
The STM32F723 has more interrupts than the STM32F746 due to the
additional SDMMC controller. Besides that the changes are very
similar to the ones of the STM32F746.

Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
2018-07-03 13:53:36 -05:00
Johann Fischer 06ac62ed32 usb: usb_descriptor: fix null pointer dereference
Fix possible null pointer dereference if the device
descriptor is not complete.

Fixes: #8700
Coverity-ID: 186841

Signed-off-by: Johann Fischer <j.fischer@phytec.de>
2018-07-03 14:28:46 -04:00
Subramanian Meenakshi Sundaram 5193b5576f lib: posix: Fix Out-of-bound write to char array
memcpy copies upto (rc-1)th index but the write of NULL character
to the string is at (rc+1)th index skipping (rc)th index.
The fix addresses this as well.

CID: 186491

Fixes Issue #8280

Signed-off-by: Subramanian Meenakshi Sundaram <subbu147@gmail.com>
2018-07-03 13:01:58 -05:00
Henrik Brix Andersen ff6dbc599c build: fix git describe call on older Git versions
Older Git versions still do not support the -C argument for specifying
the working directory. Switch to using cmake WORKING_DIRECTORY instead.

This fixes #7287 again after commit 5e7e1cb.

Signed-off-by: Henrik Brix Andersen <henrik@brixandersen.dk>
2018-07-03 12:49:45 -05:00
Armando Visconti 5fa89ae164 drivers: pinmux: stm32f4: Added pinmux macros for I2S master
Define the pinmuxing for I2Sx_CK, I2Sx_SD and I2Sx_WS wires (with
'x' in the range 1 to 5). The multiplexing has been selected in
accordance to the ArgonKey board requirements.

Signed-off-by: Armando Visconti <armando.visconti@st.com>
2018-07-03 12:49:03 -05:00
Bobby Noelte 08216f5ef4 scripts: extract_dts_includes.py: refactor for better maintenance
Refactor for better maintenance and to ease future enhancements.

Signed-off-by: Bobby Noelte <b0661n0e17e@gmail.com>
2018-07-03 12:48:19 -05:00
Jukka Rissanen ad150569b6 samples: net: gptp: Allow running gPTP over VLAN
By default gPTP is not run over VLAN but if needed that can be
done by setting CONFIG_NET_GPTP_VLAN and CONFIG_NET_GPTP_VLAN_TAG
options.

Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2018-07-03 20:26:31 +03:00
Jukka Rissanen e9228a3964 net: gptp: Allow gPTP to run over VLAN
Allow this setup as Linux supports this too.

Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2018-07-03 20:26:31 +03:00
Jukka Rissanen 65b15c3226 net: eth: Add helper to return VLAN info for an interface
A small helper function will return information whether
a given network interface has VLAN enabled or not.

Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2018-07-03 20:26:31 +03:00
Jukka Rissanen 3fd2d53e56 net: mgmt: Add VLAN enabled / disabled event support
Send network management event if VLAN tag is enabled or disabled.

Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2018-07-03 20:26:31 +03:00
Erwan Gouriou 3ed763aabe boards: disco_l475_iot1: Move BT_SPI_BLUENRG selection to avoid warning
Unconditional CONFIG_BT_SPI_BLUENRG flag activation was generating
a systematic warning.
Move it in Kconfig.defconfig file to avoid the warning

Signed-off-by: Erwan Gouriou <erwan.gouriou@linaro.org>
2018-07-03 12:24:16 -05:00
Armando Visconti 2ad2d07ce8 samples: board: 96b_argonkey: Add testing of 12 on-board leds
Enable the TI LP3943 led controller and test the 12 on-board leds.

Signed-off-by: Armando Visconti <armando.visconti@st.com>
2018-07-03 12:20:51 -05:00
Armando Visconti ef33b79d58 boards: stm32: argonkey: Add support to led controller
The ArgonKey board has 12 leds controlled by TI LP3943 led
controller. Add the support in the BSP.

Signed-off-by: Armando Visconti <armando.visconti@st.com>
2018-07-03 12:20:51 -05:00
Ioannis Glaropoulos 059952c8e1 arch: arm: update compile options for DSP
This commit updates the compile options in cmake to distinguish
between ARMv8-M Mainline MCUs with or withouth the optional DSP
extension. A new Kconfig option: ARMV8_M_DSP, is introduced, to
signify the use of an ARMv8-M MCU with DSP support.

Signed-off-by: Ioannis Glaropoulos <Ioannis.Glaropoulos@nordicsemi.no>
2018-07-03 12:17:13 -05:00
Piotr Zięcik a7e2c58af5 samples: sysview: Update memory requirements
When we enabled SEGGER support on the nRF51 series SoCs, this sample
started to fail due to small amount of memory avaiable on some nRF51
SoCs. This commit updates the min_ram property in order to exclude
failing boards from the build.

Signed-off-by: Piotr Zięcik <piotr.ziecik@nordicsemi.no>
2018-07-03 17:51:50 +02:00
Piotr Zięcik 97adff57f1 arch: arm: nrf: Enable SEGGER RTT on all Nordic SoCs
All chips from nRF51 and nRF52 series support Segger RTT,
so we can enable it if given series is used.

Signed-off-by: Piotr Zięcik <piotr.ziecik@nordicsemi.no>
2018-07-03 17:51:50 +02:00
Rajavardhan Gundi d4dd928eaa kernel/stack: Introduce K_THREAD_STACK_LEN macro
This is a public macro which calculates the size to be allocated for
stacks inside a stack array. This is necessitated because of some
internal padding (e.g. for MPU scenarios). This is particularly
useful when a reference to K_THREAD_STACK_ARRAY_DEFINE needs to be
made from within a struct.

Signed-off-by: Rajavardhan Gundi <rajavardhan.gundi@intel.com>
2018-07-03 08:44:09 -07:00
Johann Fischer 9e97e5b5fd include: i2c: replace num_bytes type u8_t with u32_t
Type of num_bytes unnecessarily limits number of possible
bytes in the burst transmissions. Replace num_bytes type
u8_t with u32_t.

Signed-off-by: Johann Fischer <j.fischer@phytec.de>
2018-07-03 10:06:24 -05:00
Daniel Egger 536d77ab51 drivers: eth: stm32: Added missing ethernet_init() call
Fixes #8668

Signed-off-by: Daniel Egger <daniel@eggers-club.de>
2018-07-03 15:43:06 +03:00
Oleg Zhurakivskyy dadc5293aa net: icmpv4: Simplify the flow at net_icmpv4_get_hdr()
Using net_frag_linearize() should be optimal for fast and slow paths.

Signed-off-by: Oleg Zhurakivskyy <oleg.zhurakivskyy@intel.com>
2018-07-03 15:38:43 +03:00
Alberto Escolar Piedras bdab07a2fd native_posix: Do not select COVERAGE by default
Now that it is possible to easily add Kconfig options from command
line, we do not need to always compile native_posix with coverage.
This was done only to have it set easily for sanity_check.

So do not select it anymore, and let users choose if they
want coverage dumps or not.

Signed-off-by: Alberto Escolar Piedras <alpi@oticon.com>
2018-07-03 08:36:06 -04:00
Alberto Escolar Piedras 1545b378c8 CI: explicitly enable compiling w coverage in sanitycheck
Now that the native_posix board is not built by default
with coverage, and that sanitycheck has an option to set it to,
let's explicitly tell sanitycheck to build unit tests and
for the native_board with coverage enabled.

Signed-off-by: Alberto Escolar Piedras <alpi@oticon.com>
2018-07-03 08:36:06 -04:00
Alberto Escolar Piedras c026c2ed82 sanitycheck: control coverage from command line
Added a new command line options to sanitycheck:
--enable-coverage which will compile for native_posix
with CONFIG_COVERAGE set, and unit tests accordingly.
+
Now -C --coverage implies also --enable-coverage.

Background:
After 608778a4de
it is possible to add Kconfig options from command
line during the cmake invocation.
So we can use it to set CONFIG_COVERAGE for the native_posix
target when we need to instead of relaying on it always
being compiled with coverage enabled.

Signed-off-by: Alberto Escolar Piedras <alpi@oticon.com>
2018-07-03 08:36:06 -04:00
Alberto Escolar Piedras 567be49aa9 CODEOWNERS: fix due to username change
The user name aescolar-ot was changed to aescolar so this
file needs to be updated accordingly

Signed-off-by: Alberto Escolar Piedras <alpi@oticon.com>
2018-07-03 08:25:18 -04:00
Carles Cufi 8d2df57797 boards: arm: nrf52840_pca10056: Align DC/DC option
Align the name and description of the DC/DC option with the other 2
boards that use it.

Signed-off-by: Carles Cufi <carles.cufi@nordicsemi.no>
2018-07-03 11:36:26 +02:00
Carles Cufi d499629344 boards: arm: nrf52810_pca10040: Enable DC/DC by default
Since the PCA10040 contains the required DC/DC circuitry, enable it by
default while keeping it configurable. This reduces power consumption
during radio activity.

Signed-off-by: Carles Cufi <carles.cufi@nordicsemi.no>
2018-07-03 11:36:26 +02:00
Carles Cufi 093b7e9cf1 boards: arm: nrf52_pca10040: Enable DC/DC by default
Since the PCA10040 contains the required DC/DC circuitry, enable it by
default while keeping it configurable. This reduces power consumption
during radio activity.

Signed-off-by: Carles Cufi <carles.cufi@nordicsemi.no>
2018-07-03 11:36:26 +02:00
Anas Nashif 7e69e9a441 ci: remove tests and samples from coverage reports
Tests and samples are not part of the Zephyr code and should not
contribute to the final coverage reports. This will allow us to get
exact numbers about what is being covered or not in CI without the need
to go and look into files individually.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2018-07-02 12:42:08 -04:00
Sebastien Bourdelin 2ef1e72607 samples: drivers: Add sample application for PCA9633
Add sample application for NXP PCA9633 LED driver. This application
test the 4 LEDs by doing the following:
 - turn on LEDs
 - turn off LEDs
 - set the brightness to 50%
 - turn off LEDs
 - blink the LEDs
 - turn off LEDs

The application is based on the stm32373_eval board and expects to have
a PCA9633 LED driver on the bus I2C-1 at the address 0x62.

Signed-off-by: Sebastien Bourdelin <sebastien.bourdelin@savoirfairelinux.com>
2018-07-02 10:25:47 -05:00
Sebastien Bourdelin ac1a9c4ef2 drivers: led: Add LED driver support for NXP PCA9633
Add support for NXP PCA9633 an I2C 4-bit LED driver.
Supported blinkink period: 41ms to 10667ms
Supported brightness value: 0 to 100%

This driver supports the following APIs:

1. led_blink
2. led_set_brightness
3. led_on
4. led_off

Signed-off-by: Sebastien Bourdelin <sebastien.bourdelin@savoirfairelinux.com>
2018-07-02 10:25:47 -05:00
Ioannis Glaropoulos e325510d59 arch: arm: nrf: minor header files' clean up in soc/nrfx
This commit cleans up source files in soc/nrf51 soc/nrf52
folders by removing unnecessary header inclusions.

Signed-off-by: Ioannis Glaropoulos <Ioannis.Glaropoulos@nordicsemi.no>
2018-07-02 16:50:10 +02:00
Ioannis Glaropoulos 0677812910 arch: arm: nrf: remove kernel_includes.h from nRF5x soc.h inclusions
This commit removes the inclusion of kernel_includes.h from
the nRF51 and nRF52 soc.h headers. This prevents from an
inclusion cycle formation on soc.h. In the wake of
kernel_includes.h removal, necessary header files have been
added in several source files to be able to compile Zephyr for
nRF5x SOCs.

Signed-off-by: Ioannis Glaropoulos <Ioannis.Glaropoulos@nordicsemi.no>
2018-07-02 16:50:10 +02:00
Daniel Egger c32681f78d dts: arm: st: Correct pin assignment of node usart6@0
USART6 is ALT8, not ALT7

Signed-off-by: Daniel Egger <daniel@eggers-club.de>
2018-07-02 09:48:20 -05:00
Kumar Gala 1ce259d149 drivers: i2c: nrfx: Move device tree selection to driver Kconfig
Move HAS_DTS_I2C from board to the driver Kconfig.

Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
2018-07-02 09:46:22 -05:00
Oleg Zhurakivskyy 2b6e70d10d net: icmpv4: Merge process_icmpv4_pkt() into net_icmpv4_input()
Both are small, merging makes the flow clearer.

Signed-off-by: Oleg Zhurakivskyy <oleg.zhurakivskyy@intel.com>
2018-07-02 17:33:44 +03:00
Jukka Rissanen 58e40cb029 net: gptp: Fix shell statistics output
Some printout fixes are needed for "net gptp 1" command.

Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2018-07-02 17:01:00 +03:00
Jukka Rissanen f3146c09ab net: gptp: Fix buf leak in PDELAY_REQ send
Do not clear pending PDELAY_REQ pointer when sending a new one.
Unref the state->tx_pdelay_req_ptr first and only then set the
new pointer value. This will prevent buffer leak if we miss the
response from the peer.

Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2018-07-02 16:52:49 +03:00
Tomasz Gorochowik 5e3ea84e64 net: gptp: Use calculated neighbor ratios only once
Make sure that the calculated ratio values are used just once.
Without this, if the ratio is even insignificantly larger than 1, the
actual clock quickly drifts to really large numbers. This causes the
sync procedure to restart too often.

Signed-off-by: Tomasz Gorochowik <tgorochowik@antmicro.com>
2018-07-02 16:52:49 +03:00
Tomasz Gorochowik 93fe54d148 net: gptp: Fix sync timestamp callback registration
The logic was inverted which prevented the callback from ever being
registered.

Signed-off-by: Tomasz Gorochowik <tgorochowik@antmicro.com>
2018-07-02 16:52:49 +03:00
Tomasz Gorochowik 7e545c998c net: gptp: Do not handle multiple pdelay requests at once
The problem with the previous approach was that the response timestamp
callback which calls net_pkt_unref could be skipped if the callback was
already registered for another packet. The net_pkt_ref function was
always called which led to memory leaks.

This commit simply disallows handling multiple pdelay requests at once.
If the timestamp callback is already registered, the received request
will not be handled.

Signed-off-by: Tomasz Gorochowik <tgorochowik@antmicro.com>
2018-07-02 16:52:49 +03:00
Tomasz Gorochowik b422d38650 net: gptp: Fix sync follow up packets content
The issue was that the length field of the tlv extension in the sync
follow up packets was wrong. It is supposed to skip the length of the
header of that extension. The easiest fix was separating the header and
the actual contents into separate structs and that's what this commit
does.

Signed-off-by: Tomasz Gorochowik <tgorochowik@antmicro.com>
2018-07-02 16:52:49 +03:00
Jukka Rissanen cf272e6667 net: gptp: Use the ptp clock instead of zephyr uptime
As the PTP clock should return the correct time, use that
instead of zephyr uptime for time as that has only ms accuracy.

Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2018-07-02 16:52:49 +03:00