Commit graph

99049 commits

Author SHA1 Message Date
Ravi kumar Veeramally
718dd56d38 net: samples: Fix packet socket sample iface index
Patch (3206568e43) changed network
interface numbering starts from 1. The index 0 is reserved.
So use api to get default interface index for packet socket sample.

Signed-off-by: Ravi kumar Veeramally <ravikumar.veeramally@linux.intel.com>
2019-03-11 20:56:11 -07:00
Torsten Rasmussen
d042d628b6 cmake: west: Allow mono-repo to build when west is installed
If one invokes cmake with west in the PATH but not inside a west
installation (i.e. in a monorepo setup), west will try to list the
zephyr modules issuing an error message.

Test if west list succeeds before using result for module testing.

Fixes #14177

Signed-off-by: Torsten Rasmussen <torsten.rasmussen@nordicsemi.no>
Signed-off-by: Carles Cufi <carles.cufi@nordicsemi.no>
2019-03-11 20:38:03 -07:00
Marti Bolivar
6929c374a4 cmake: add west version checking
Parse the west version output and make sure both bootstrapper and
installation wests are up to date. This will still work after the two
are combined into what gets installed via PyPI.

Fixes: #13209
Signed-off-by: Marti Bolivar <marti@foundries.io>
2019-03-11 20:37:27 -07:00
Andrew Boie
50d72ed9c9 x86: implement eager FP save/restore
Speculative execution side channel attacks can read the
entire FPU/SIMD register state on affected Intel Core
processors, see CVE-2018-3665.

We now have two options for managing floating point
context between threads on x86: CONFIG_EAGER_FP_SHARING
and CONFIG_LAZY_FP_SHARING.

The mitigation is to unconditionally save/restore these
registers on context switch, instead of the lazy sharing
algorithm used by CONFIG_LAZY_FP_SHARING.

Signed-off-by: Andrew Boie <andrew.p.boie@intel.com>
2019-03-11 20:36:55 -07:00
Tomasz Gorochowik
9115386e4d samples: net: mqtt: update readme with SOCKS5 info
This commits adds an overlay file with the SOCKS5 symbol that is needed
to run MQTT with a proxy, and extends README with instructions on how to
use it with the default and custom settings.

Signed-off-by: Tomasz Gorochowik <tgorochowik@antmicro.com>
2019-03-11 20:36:39 -07:00
Alexander Wachter
3aa8443ab4 tests: drivers: build_all: add CAN to the build tests
This commit adds CAN to the build_all tests.

Signed-off-by: Alexander Wachter <alexander.wachter@student.tugraz.at>
2019-03-11 16:54:42 -07:00
Daniel Leung
c3bbfeb7fb pci: properly scan all device resources
The change in commit e5349d74ab
results in only one resource being returned for a device with
pci_bus_scan(). The root cause for that issue was actually
because of wrapping around when scanning through BARs, where
BARs were scanned 0->1->2->..->6->0->1->.. in an endless loop
for a single bus:dev.function. So revert that commit and put
in a fix by moving on to the next function after going
through all the BARs.

Fixes #1550

Signed-off-by: Daniel Leung <daniel.leung@intel.com>
2019-03-11 16:40:39 -07:00
Ulf Magnusson
ddf9193934 doc: kconfig: Encourage using menuconfig as a sanity check
Some people never use the menuconfig, but it makes a good sanity check
when making Kconfig changes, so encourage it for that. Mention a few
things that can be checked in it.

Signed-off-by: Ulf Magnusson <Ulf.Magnusson@nordicsemi.no>
2019-03-11 16:36:20 -07:00
Ulf Magnusson
e6a2b157f3 doc: kconfig: Add section on (lack of) conditional includes
Add a section on how 'if' works to the 'Kconfig - Tips and Best
Practices' page, especially when combined with 'source'.

There seems to have been some confusion here that lead to a bunch of
duplicated dependencies. It's probably simpler than most people assume.

Signed-off-by: Ulf Magnusson <Ulf.Magnusson@nordicsemi.no>
2019-03-11 16:36:20 -07:00
Kumar Gala
72af04ba1a open-amp: Fix build issue with newlib
If we enable newlib we run into an issue with fcntl.h and the openamp
proxy support.  We don't utilize the proxy support so just disable it by
default.

Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
2019-03-11 14:37:57 -05:00
Kumar Gala
11cedc6c49 ext: libmetal: Update libmetal to snapshot for bug fixes
Pull in libmetal SHA 59a10acbb0bb684c1a75488f11878cb984170c81 to get
some build fixes related to newlib.

Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
2019-03-11 14:37:57 -05:00
Jacob Siverskog
342689057c include: uart: Fix function reference in docstrings
There is no such function uart_set_callback.

Signed-off-by: Jacob Siverskog <jacob@teenage.engineering>
2019-03-11 14:55:58 -04:00
Kumar Gala
af4eceaa17 boards: arm: Enable building with Zephyr toolchain
Now that we have SDK 0.10.0 we can enable building this board with the
Zephyr toolchain.  SDK 0.10.0 introduced support for the ARM v8m based
cores which these boards utilize.

Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
2019-03-11 13:31:43 -05:00
Patrik Flykt
4344e27c26 all: Update reserved function names
Update reserved function names starting with one underscore, replacing
them as follows:
   '_k_' with 'z_'
   '_K_' with 'Z_'
   '_handler_' with 'z_handl_'
   '_Cstart' with 'z_cstart'
   '_Swap' with 'z_swap'

This renaming is done on both global and those static function names
in kernel/include and include/. Other static function names in kernel/
are renamed by removing the leading underscore. Other function names
not starting with any prefix listed above are renamed starting with
a 'z_' or 'Z_' prefix.

Function names starting with two or three leading underscores are not
automatcally renamed since these names will collide with the variants
with two or three leading underscores.

Various generator scripts have also been updated as well as perf,
linker and usb files. These are
   drivers/serial/uart_handlers.c
   include/linker/kobject-text.ld
   kernel/include/syscall_handler.h
   scripts/gen_kobject_list.py
   scripts/gen_syscall_header.py

Signed-off-by: Patrik Flykt <patrik.flykt@intel.com>
2019-03-11 13:48:42 -04:00
Patrik Flykt
cf2d57952e kernel/sched: Rename scheduler spinlock
Rename scheduler spinlock sched_lock to sched_spinlock as it will
collide with the cleanup of the reserved function name _sched_lock(),
which will also be called sched_lock().

Signed-off-by: Patrik Flykt <patrik.flykt@intel.com>
2019-03-11 13:48:42 -04:00
Andrew Boie
15239a48c9 gpio_intel_apl: bounds sanitize pins
Avoid Spectre V1 exploits with insane pin values since
they are used to offset memory locations.

Signed-off-by: Andrew Boie <andrew.p.boie@intel.com>
2019-03-11 09:54:04 -07:00
Andrew Boie
7416457b87 lib: fdtable: safely bounds check file descriptors
Prevent speculative attacks with out-of-bounds fd
values.

Won't affect code generation for systems that don't
enable CONFIG_BOUNDS_CHECK_BYPASS_MITIGATION.

Signed-off-by: Andrew Boie <andrew.p.boie@intel.com>
2019-03-11 09:54:04 -07:00
Andrew Boie
82205e61e7 x86: fix Spectre V1 index checks
We add two points where we add lfences to disable
speculation:

* In the memory buffer validation code, which takes memory
  addresses and sizes from userspace and determins whether
  this memory is actually accessible.

* In the system call landing site, after the system call ID
  has been validated but before it is used.

Kconfigs have been added to enable these checks if the CPU
is not known to be immune on X86.

Signed-off-by: Andrew Boie <andrew.p.boie@intel.com>
2019-03-11 09:54:04 -07:00
Andrew Boie
00c2d5afb0 kernel: add k_array_index_sanitize()
Used to sanitize array indexes without using any branch
instructions. Should be portable to any architecture.

Signed-off-by: Andrew Boie <andrew.p.boie@intel.com>
2019-03-11 09:54:04 -07:00
Andrew Boie
576ebf4991 kernel: add config for Spectre V1 mitigation
This is off by default, but may be selected by the arch
configuration.

Signed-off-by: Andrew Boie <andrew.p.boie@intel.com>
2019-03-11 09:54:04 -07:00
Andrew Boie
a96631dce9 x86: organize vulnerability ontology
We introduce hidden Kconfigs for all speculative
side channel attacks that we plan to address in the
kernel and update the existing ones to indicate their
CVEs.

This list keeps growing, so introduce a new config
CONFIG_X86_NO_SPECULATIVE_VULNERABILITIES, for CPUs
which don't speculatively execute, or are otherwise
immune by design.

Signed-off-by: Andrew Boie <andrew.p.boie@intel.com>
2019-03-11 09:54:04 -07:00
Erwan Gouriou
7d168db9aa CODEOWNERS: Add codeowner to boards/shields
Following new shield introduction in #14057, it has been highlighted
there was no codeowner for boards/shields/.
Assign erwango as codeowner.

Signed-off-by: Erwan Gouriou <erwan.gouriou@linaro.org>
2019-03-11 12:07:01 -04:00
Dennis Wildmark
ce4b282717 lib: cmsis_rtos_v2: changed printformat that produced warnings
Changed the print format for unsigned 32-bit variables that produced
warnings when compiled with newlib instead of the standard C library.
Chose to replace %d with PRIu32 because the latter is more portable
and adapts to the types of the standard C libraries.
Tested with and without newlib, and with sanitycheck.

Signed-off-by: Dennis Wildmark <dennis.wildmark@assaabloy.com>
2019-03-11 11:02:20 -05:00
Dennis Wildmark
03dec5b814 logging: fix compiler warning when using -Wextra flag with gcc
Fixes the warning -Wunused-parameter that is added with -Wextra
in the GCC compiler.
Chose to void the unused parameter inside the function.
Testcompiled with -Wall -Wextra -Werror and builds cleanly.

Signed-off-by: Dennis Wildmark <dennis.wildmark@assaabloy.com>
2019-03-11 11:02:20 -05:00
Kumar Gala
07384cf9e9 docs: Updated Linux Getting started for SDK 0.10.0
Update instructions to point at SDK 0.10.0

Fixes #14258

Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
2019-03-11 11:01:08 -05:00
Kumar Gala
0def7cc9cc ci: Move to using SDK 0.10.0
Change over to ci image 0.6.3 to get released SDK 0.10.0

Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
2019-03-11 11:01:08 -05:00
Emanuele Di Santo
ac908b8fcf doc: boards: arm: nrf52840_pca10059: fix instructions for flashing
The instructions for flashing the board using nrfutil were incorrect.

Signed-off-by: Emanuele Di Santo <emdi@nordicsemi.no>
2019-03-11 14:51:42 +01:00
Maureen Helm
7967829a26 ext: mcux: Fix handling of rt1052 part numbers
We previously added a cmake hack to alias rt1052 A0 part numbers (A
suffix) to A1 part numbers (B suffix), but this hack did not work
correctly when a board uses A1 part numbers directly.

Signed-off-by: Maureen Helm <maureen.helm@nxp.com>
2019-03-10 10:51:43 -05:00
Maureen Helm
a259279bb2 soc: nxp_imx: Add rt1052 A1 silicon part numbers
Adds imx rt1052 A1 silicon part numbers. Previously we only had A0
silicon part numbers.

Signed-off-by: Maureen Helm <maureen.helm@nxp.com>
2019-03-10 10:51:43 -05:00
Maureen Helm
1c49129d0c soc: nxp_imx: Sort imx rt part numbers in alpha order
Sorts the imx rt part numbers so they are in alphabetical order.

Signed-off-by: Maureen Helm <maureen.helm@nxp.com>
2019-03-10 10:51:43 -05:00
Jukka Rissanen
5ac2461339 doc: net: Fix L2 documentation
Use proper link to Zephyr source files. Fix rendering of special
options like NET_OK, NET_DROP and NET_CONTINUE.
Add reference links to network technologies documents.

Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2019-03-09 17:01:26 -05:00
Alexander Wachter
1ed18b8988 drivers: hwinfo: change stm32 device id driver from HAL to LL
Use LL drivers instead of HAL driver because LL driver is available
for all soc while HAL driver is not.

Signed-off-by: Alexander Wachter <alexander.wachter@student.tugraz.at>
2019-03-09 16:05:20 -05:00
Andrei Emeltchenko
a9090c9538 net: lldp: Move optional End TLV to send function
In a case we have optional TLVs we need to send End TLV in the very
end.

Signed-off-by: Andrei Emeltchenko <andrei.emeltchenko@intel.com>
2019-03-09 16:02:11 -05:00
Andrei Emeltchenko
c2dbbf77c1 samples: net: lldp: Set optional TLV system_name
Add optional TLV to LLDP DU.

Signed-off-by: Andrei Emeltchenko <andrei.emeltchenko@intel.com>
2019-03-09 16:02:11 -05:00
Andrei Emeltchenko
480f93fbb5 net: lldp: Add optional TLV API
Add possibility to set optional TLVs to LLDP DU.

Signed-off-by: Andrei Emeltchenko <andrei.emeltchenko@intel.com>
2019-03-09 16:02:11 -05:00
Andrei Emeltchenko
fba09bffb2 net: lldp: Move LLDP structure definition to lldp
Move duplicated structure definitions to lldp subsystem from
drivers.

Signed-off-by: Andrei Emeltchenko <andrei.emeltchenko@intel.com>
2019-03-09 16:02:11 -05:00
Daniel Leung
57f5f80293 linker: no need to sort by name for kernel object
There is no need to sort the kernel objects by name in the linker
script. This is just a simple clean-up.

Signed-off-by: Daniel Leung <daniel.leung@intel.com>
2019-03-09 16:01:23 -05:00
Daniel Leung
c8066c55fc linker: remove references to _k_task_list/_k_event_list
Commit 45a7e5d076 removed scripts/sysgen
and _k_task_list/_k_event_list sections are no longer being used.
So remove them.

Signed-off-by: Daniel Leung <daniel.leung@intel.com>
2019-03-09 16:01:23 -05:00
Daniel Leung
bd40fc2c90 linker: remove references to no longer exist _k_memory_pool
Commit 73cb9586ce renamed linker
section from _k_memory_pool to _k_mem_pool, but the references
in linker scripts are still there. So remove them now.

Signed-off-by: Daniel Leung <daniel.leung@intel.com>
2019-03-09 16:01:23 -05:00
Ioannis Glaropoulos
d97df043b4 arch: arm: documentation fixes for _new_thread()
Documentation fixes in the function description.

Signed-off-by: Ioannis Glaropoulos <Ioannis.Glaropoulos@nordicsemi.no>
2019-03-09 11:57:24 -08:00
Ioannis Glaropoulos
d69c2f8129 kernel: documentatation for _setup_new_thread()
Add a note in the documentatation of _setup_new_thread()
function stating that the caller is responsible for
providing a size argument that corresponds to the availabe
thread stack area.

Signed-off-by: Ioannis Glaropoulos <Ioannis.Glaropoulos@nordicsemi.no>
2019-03-09 11:57:24 -08:00
Ioannis Glaropoulos
bfc47b6c2a arch: arm: add an ASSERT for thread stack pointer coherence
The commit adds an __ASSERT statement when configuring
the ARMv8-M build-in stack guard for supervisor thread
stack overflow protection, to catch the case when the
stack_info.start does not point to the beginning of the
thread stack allocated area, pointed by stack_obj.

Signed-off-by: Ioannis Glaropoulos <Ioannis.Glaropoulos@nordicsemi.no>
2019-03-09 11:57:24 -08:00
Ioannis Glaropoulos
ad9a35471a arch: arm: fix implementation of _new_thread()
This commit does the following:
- moves the reservation of the area for local thread data
  inside the arch-specific _new_thread() function,
- aligns the end of the thread's stack with the granularity
  of the MPU, already at thread's initialization, moving it
  out of userspace_enter() function. In this way, the local
  thread data are stored inside the thread stack area that
  is, later, assigned unprivileged RW permissions (if thread
  enters user mode).
- passes the right thread stack size information to function
  _new_thread_init(), which stores it into stack_info.start.

As a result, the whole usable User Thread stack area (i.e.
excluding a possible guard area) falls inside the region
programmed as unprivileged RW, during context-switch.

Signed-off-by: Ioannis Glaropoulos <Ioannis.Glaropoulos@nordicsemi.no>
2019-03-09 11:57:24 -08:00
Ioannis Glaropoulos
edc9e4d245 arch: arm: userspace: Force arch-specific user local data reservation
This commit forces architecture-specific implementation for
initializing the are for user mode local thread data. This
has been enforced already for ARC. We now do the same for ARM.

Signed-off-by: Ioannis Glaropoulos <Ioannis.Glaropoulos@nordicsemi.no>
2019-03-09 11:57:24 -08:00
Ioannis Glaropoulos
8cbba1e2ee arch: arm: documentation improvements for _ARCH_THREAD_STACK_SIZEOF()
This commit corrects and improves the documentation for the
convenience macro _ARCH_THREAD_STACK_SIZEOF(sym). It stresses
that the returned size is guaranteed to match the amount of
stack that is available for the thread, that is, excluding any
areas not directly usable, e.g. a Stack Guard.

Signed-off-by: Ioannis Glaropoulos <Ioannis.Glaropoulos@nordicsemi.no>
2019-03-09 11:57:24 -08:00
Andrzej Puzdrowski
4e4048fadf settings: enable logging
This patch introduce logging to settings.

Error in stored data record might occurred in runtime, so
better to switch assertion to error logging.

Signed-off-by: Andrzej Puzdrowski <andrzej.puzdrowski@nordicsemi.no>
2019-03-09 11:07:15 -05:00
Tedd Ho-Jeong An
922f53864f tests: net: mqtt: Fix the error handling aftre read
If the rc = -EAGAIN from mqtt_read_publich_payload(), it shouldn't be
used in memcpy() since it is a negative value, and instead, it should
try to read again.

Fix: #13825
Coverity-CID: 191002

Signed-off-by: Tedd Ho-Jeong An <tedd.an@intel.com>
2019-03-09 10:50:25 -05:00
Ulf Magnusson
b5582fa6c6 kconfig: silabs_exx32: Remove duplicated SOC_EFM32* dependencies
The Kconfig.defconfig.efr32* files added redundant dependencies on
SOC_EFM32* that are already added in the Kconfig.defconfig.series files
that source them.

Signed-off-by: Ulf Magnusson <Ulf.Magnusson@nordicsemi.no>
2019-03-09 10:49:00 -05:00
Jukka Rissanen
608647e92a can: Add the padding to can_frame as Linux expects that
The can_frame struct must be identical with Linux in order
to send data properly.

Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2019-03-09 10:39:08 -05:00
Andrzej Puzdrowski
7a00658b8e tests/subsys/fs/nffs_fs_api: build ram back-end only for qemu_x86
Ram back-end was unnecessary included in non qemu test which
increased RAM footprint much.

Patch includes ram backend into build only for qemu_x86 build.

Signed-off-by: Andrzej Puzdrowski <andrzej.puzdrowski@nordicsemi.no>
2019-03-09 10:34:17 -05:00