Commit Graph

52932 Commits

Author SHA1 Message Date
Maksim Masalski
e9600a75fc kernel: thread: add default case, remove unused break
According to the Zephyr Coding Guideline all switch statements
shall be well-formed. Add a default case with break and comment
to avoid static analysis tool to raise a violation that there is no
default case.
Also, I think, in all cases above no need to use "break",
because they already are using "return".

Found as a coding guideline violation (MISRA R16.1) by static
coding scanning tool.

Signed-off-by: Maksim Masalski <maksim.masalski@intel.com>
2021-06-04 16:21:01 -05:00
Maksim Masalski
3960d413db lib: os: add braces to 'if' statements
An 'if' (expression) construct shall be followed by a compound
statement.
Add braces to improve readability and maintainability.

Found as a coding guideline violation (MISRA R15.6) by static
coding scanning tool.

Signed-off-by: Maksim Masalski <maksim.masalski@intel.com>
2021-06-04 16:20:44 -05:00
Rafał Kuźnia
9f3d34169f samples: net: Increase stack sizes for echo client/server
The echo client/server samples may require more stack
capacity on some platforms.

Signed-off-by: Rafał Kuźnia <rafal.kuznia@nordicsemi.no>
2021-06-04 16:20:27 -05:00
Maksim Masalski
78ba2ec830 coding guidelines: add to function prototypes form named parameters
Function types shall be in prototype form with named parameters

Found as a coding guideline violation (MISRA R8.2) by static
coding scanning tool.

Signed-off-by: Maksim Masalski <maksim.masalski@intel.com>
2021-06-04 16:20:06 -05:00
Maksim Masalski
366de7a890 logging: z_vrfy_log_filter_set: remove extra check
Variable "level" in function z_vrfy_log_filter_set() has type unsigned.
But it is been checked if "level >=LOG_LEVEL_NONE" and
LOG_LEVEL_NONE is 0. It means check if unsigned is ">= 0" in Z_OOPS().
That is logically wrong, because unsigned is ">=0" by default.
Remove that check, to avoid static analysis tool raise
violation

Found as a coding guideline violation (MISRA R14.3) by static
coding scanning tool.

Signed-off-by: Maksim Masalski <maksim.masalski@intel.com>
2021-06-04 16:19:49 -05:00
Lukasz Maciejonczyk
8b12311bdf net: openthread: add option to configure software transmission security
If radio driver supports transmission security we need an option
to disable transmission security which by default is done by OT stack
for Thread v1.2

Signed-off-by: Lukasz Maciejonczyk <lukasz.maciejonczyk@nordicsemi.no>
2021-06-04 16:19:16 -05:00
Henrik Brix Andersen
2dc90a0825 drivers: adc: mcp320x: convert to new DT helper macros
Simplify the the MCP320x instance initialization macro a bit by
converting it to use the new DT helper macros for SPI.

Signed-off-by: Henrik Brix Andersen <hebad@vestas.com>
2021-06-04 16:19:01 -05:00
Henrik Brix Andersen
7c6c65e384 drivers: gpio: lmp90xxx: convert to new DT helper macros
Convert from using device_get_binding() to DEVICE_DT_GET().

Signed-off-by: Henrik Brix Andersen <hebad@vestas.com>
2021-06-04 16:18:51 -05:00
Henrik Brix Andersen
31fc67d9ae drivers: adc: lmp90xxx: convert to new DT helper macros
Simplify the LMP90xxx instance initialization macro a bit by converting
it to use the new DT helper macros for SPI and GPIO.

Signed-off-by: Henrik Brix Andersen <hebad@vestas.com>
2021-06-04 16:18:51 -05:00
Guillaume Lager
42835a780a drivers: sensor: tmp116: Check that a new value is available
Add a check to ensure that the conversion is complete before reading

Signed-off-by: Guillaume Lager <g.lager@innoseis.com>
2021-06-04 16:18:33 -05:00
Guillaume Lager
c40f0ec108 drivers: sensor: tmp116: Fix compilation error
commit d31ed3be04 enabled multiple
instances but when multiple instances are actually used the code does
not compile

Signed-off-by: Guillaume Lager <g.lager@innoseis.com>
2021-06-04 16:18:33 -05:00
Bradley Bolen
131af7648f arch: arm: cortex_r: Use assembler macros for exceptions
Most of the code for the three exception functions is identical so use
macros to make things easier to read.

Signed-off-by: Bradley Bolen <bbolen@lexmark.com>
2021-06-04 16:18:01 -05:00
Bradley Bolen
90e76bd891 arch: arm: cortex_r: Use macro for svc call
Use the context switch macro for z_arm_cortex_r_svc to be more clear
about the svc call being executed.

Signed-off-by: Bradley Bolen <bbolen@lexmark.com>
2021-06-04 16:18:01 -05:00
Alexandre Bourdiol
b317ef89b1 sample: drivers: led_ws2812: support nucleo_l476rg
Support nucleo_l476rg

Signed-off-by: Alexandre Bourdiol <alexandre.bourdiol@st.com>
2021-06-04 16:17:38 -05:00
Ruibin Chang
8482b9a1a8 ITE dts/riscv/it8xxx2.dtsi: add ecpm node for it8xxx2
Add EC clock and power management (ecpm) node for it8xxx2.

Signed-off-by: Ruibin Chang <ruibin.chang@ite.com.tw>
2021-06-04 16:16:57 -05:00
Devaraj Ranganna
7273603707 modules: tf-m: Add Crosstool-NG toolchain support
Zephyr SDK is not supported on OS X, however, Zephyr toolchain can be
built on OS X using Crosstool-NG.

Currently, trusted-firmware-m CMakeLists.txt only supports `zephyr` and
`gnuarmemb` toolchains which prohibits building TF-M on OS X using
Zephyr toolchain built with Crosstool-NG.

docs:
https://docs.zephyrproject.org/latest/getting_started/toolchain_3rd_party_x_compilers.html#crosstool-ng

Signed-off-by: Devaraj Ranganna <devaraj.ranganna@linaro.org>
2021-06-04 16:16:05 -05:00
Fabio Baltieri
ab46307552 boards: stm32f429i_disc1 remove usart2 node
On the STM32F429I-DISC1 PA2 is used for MEMS_INT2, which is driven low
by U3 by default. Connecting it to USART2 TX causes the MCU to try and
drive it high at the same time, causing excessive power consumption.

Dropping the usart2 node since the USART2 alternate pins are also used
for other things, and no other UARTs of the device has a pair of TX/RX
pins available on this reference board in its default configuration.

Signed-off-by: Fabio Baltieri <fabio.baltieri@gmail.com>
2021-06-04 16:15:12 -05:00
Mulin Chao
d8e5da00d0 dts: npcx: add device-tree files of npcx9 series.
Add device-tree files for npcx9 series such as npcx7m3f and npcx7m6f in
the following folder chart.

dts/arm/nuvoton
    |--npcx
    |    |--npcx7
    |    |    |--npcx7-miwus-wui-map.dtsi
    |    |    |--npcx7-alts-map.dtsi
    |    |    |--.....
    |    +--npcx9
    |    |    |--npcx9-miwus-wui-map.dtsi
    |    |    |--npcx9-alts-map.dtsi
    |    |    +--.....
    |    |--npcx-miwus-wui-map.dtsi
    |    |--npcx-alts-map.dtsi
    |    |--.....
    |
    |--npcx.dtsi
    |--npcx7.dtsi
    +--npcx9.dtsi

Signed-off-by: Jun Lin <CHLin56@nuvoton.com>
Signed-off-by: Mulin Chao <mlchao@nuvoton.com>
2021-06-04 16:14:48 -05:00
Mulin Chao
a9366c76e8 dts: npcx: arrange device-tree files of npcx7 series.
Arrange device-tree files of npcx7 series by following steps:

1. Move device-tree declarations of npcx family to npcx.dtsi.
2. Leave specific device declarations of npcx7 series to npcx7.dtsi.
3. Move chip series related mapping tables such as
   npcx7-miwus-wui-map.dtsi and so on to npcx/npcx7 folder.
4. Move common device-tree declarations used in each npcx series to
   npcx-miwus-wui-map.dtsi and so on to npcx folder.

Then, the npcx device-tree folders are arranged to:

dts/arm/nuvoton
    |--npcx
    |    |--npcx7
    |    |    |--npcx7-miwus-wui-map.dtsi
    |    |    |--npcx7-alts-map.dtsi
    |    |    |--.....
    |    |--npcx-miwus-wui-map.dtsi
    |    |--npcx-alts-map.dtsi
    |    |--.....
    |
    |--npcx.dtsi
    |--npcx7.dtsi

Signed-off-by: Jun Lin <CHLin56@nuvoton.com>
Signed-off-by: Mulin Chao <mlchao@nuvoton.com>
2021-06-04 16:14:48 -05:00
Mulin Chao
a8a217f22d dts: npcx: replace series-prefix 'npcx7-' with famliy-prefix 'npcx-'
This CL replaces series-prefix "npcx7-" with family-"npcx-" for npcx dts
nodes such as 'espi-vws-map' and 'miwus-int-map'. Since we plan to
introduce the npcx9 and later series, adding a new node such as
npcx9-espi-vws-map for each series is more complicated and not
necessary.

Signed-off-by: Mulin Chao <mlchao@nuvoton.com>
2021-06-04 16:14:48 -05:00
Tim Schumann
854bdf56b4 boards: frdm_k82f: Add arduino_i2c and arduino_spi support
* Tested with adafruit_2_8_tft_touch_v2 shield
* Shield uses GPIO Chip Select

Signed-off-by: Tim Schumann <TimSchumann@gmail.com>
2021-06-04 16:13:43 -05:00
Alexander Kozhinov
1de0b49212 dts: arm: st: f4: stm32f4: dtsi: add gpio ports f and g
add additional gpio ports according to RM0390 Rev 6 p.58

Co-authored-by: Erwan Gouriou <erwan.gouriou@linaro.org>

Signed-off-by: Alexander Kozhinov <AlexanderKozhinov@yandex.com>
2021-06-04 16:12:24 -05:00
Kumar Gala
9bbbc927d1 release: Update patch level to 99 after the 2.6.0 release
Sets the patch level to 99 for the 2.7 development cycle.

Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
2021-06-04 16:10:13 -05:00
Kumar Gala
79a6c07536 release: Updates for v2.6.0
VERSION and conf.py updates for v2.6.0 release

Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
2021-06-04 16:07:47 -05:00
Kumar Gala
93ccb58997 doc/releases: v2.6.0: Updates for release
* Fix header for release
* Update issues before release

Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
2021-06-04 16:07:47 -05:00
Kumar Gala
36a24329f8 doc/ref/api: Update API Version Modified
Update API Version Modified field for things that changed
for the 2.6.0 release.

Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
2021-06-04 15:04:53 -05:00
David Brown
f6b22ecc74 doc: security: Add CVE-2021-3581 to docs
Update release notes for 2.6, and the vulnerabilities page to mention
CVE-2021-3581.  This CVE is under embargo until Sept 4, 2021.

Signed-off-by: David Brown <david.brown@linaro.org>
2021-06-04 13:57:40 -05:00
Gerard Marull-Paretas
b1aefca2d3 doc: add example application to the release notes
Mention the example application as a major enhancement and provide a
link to its repository.

Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
2021-06-04 12:50:41 -05:00
Gerard Marull-Paretas
c1a97ac5c6 doc: application: add details on example-application
Mention example-application as a reference application.

Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
2021-06-04 12:50:41 -05:00
Torsten Rasmussen
e08a7f5845 doc: Zephyr build configuration CMake package freestanding
Update to the Zephyr build configuration CMake package documentation
with description on how a Zephyr build configuration CMake package can
be located outside a Zephyr workspace.

Signed-off-by: Torsten Rasmussen <Torsten.Rasmussen@nordicsemi.no>
2021-06-04 12:50:28 -05:00
Torsten Rasmussen
489a69c092 cmake: support ZephyrBuildConfiguration_ROOT for package location
Fixes: #35890

The current implementation of Zephyr build configuration CMake package
only allows the build configuration package to be placed inside a
Zephyr workspace.

This commit extends the usability by allowing users to locate the
Zephyr build configuration CMake package outside the Zephyr workspace
and then refer to the package using
`-DZephyrBuildConfiguration_ROOT=<path>`
`set(ZephyrBuildConfiguration_ROOT <path>)`

This allows users greater flexibility in their workspace layouts.

Signed-off-by: Torsten Rasmussen <Torsten.Rasmussen@nordicsemi.no>
2021-06-04 12:50:28 -05:00
Kumar Gala
fac1a5e09e doc/releases: v2.6.0: minor updates
* Added a bullet about new storage subsystem feature
* Moved disk subsystem changes into disk section

Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
2021-06-04 12:33:56 -05:00
Jakub Rzeszutko
4a85ecacda shell: fix tab for dynamic commands
The tabulator handler creates a single structure if it is handling
dynamic commands. If the currently processed dynamic command has a
dynamic subcommand they both share the same structure.
As a result tabulation operation may result in undefined behaviour.

As a solution, a new structure was introduced to keep subcommand
information.

Fixes #35926.

Signed-off-by: Jakub Rzeszutko <jakub.rzeszutko@nordicsemi.no>
2021-06-04 12:23:15 -05:00
Anas Nashif
24bd45b287 pm: do not use deprecate Kconfig
CONFIG_DEVICE_POWER_MANAGEMENT is deprecated, use CONFIG_PM_DEVICE
instead.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2021-06-04 12:19:38 -05:00
Vinayak Kariappa Chettimada
adae515d8d Bluetooth: controller: Fix conn setup regression
Fix incorrect and redundant use of ticker user id ULL_LOW
instead of ULL_HIGH when setting up a connection using a
mayfly to disable LLL context. Also, the LLL context pointer
is invalid, where node rx is passed instead of LLL context.

Use the ULL disabled callback when done event has not yet
been processed, or a direct connection setup in ULL_HIGH
context when ULL is already disabled (reference count is
zero) is sufficient.

Regression introduced in commit 30f260dfaa ("Bluetooth:
controller: Fix adv/scan context access post release").

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
2021-06-04 12:13:34 -05:00
Øyvind Rønningstad
c2efcc308c tfm: interface: Fix bug where FPU registers were not restored correctly
The caller saved registers were restored both as caller saved and
callee saved registers, i.e. register 0-15 were restored into
both register 0-15 and 15-31.

Signed-off-by: Øyvind Rønningstad <oyvind.ronningstad@nordicsemi.no>
2021-06-04 11:12:49 -05:00
Stancu Florin
8ebb641ef7 drivers: cc13xx_cc26xx: fix pm.h not included
Fixes #35916.

Signed-off-by: Stancu Florin <niflostancu@gmail.com>
2021-06-04 10:24:10 -05:00
Pieter De Gendt
ad1a5058bb manifest: segger: zephyr kconfig options
Update segger module version to revision that re-introduces zephyr
Kconfig options

Signed-off-by: Pieter De Gendt <pieter.degendt@basalte.be>
2021-06-04 09:35:57 -05:00
Krzysztof Chruscinski
f8e7ecfb56 shell: Add missing dependency to shell log backend
Shell log backend depends on logging being enabled. Lack of this
dependency leads to compilation failure when logging is disabled.

Signed-off-by: Krzysztof Chruscinski <krzysztof.chruscinski@nordicsemi.no>
2021-06-04 08:20:21 -05:00
Gerard Marull-Paretas
45a6de6804 drivers: fix pm callback signature
For some reason a few drivers were not converted to the new device PM
callback signature. The reason may be because the device PM part is
compiled only when CONFIG_PM_DEVICE=y, a condition not enabled in CI by
default.

Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
2021-06-04 08:16:49 -05:00
Christoph Steiger
6ce18c6e6a drivers: can: mcan: Fix DBTP sjw register writes
The data-sjw value was incorrectly written to the NBTP register when it
should be written to the DBTP register.

This fixes a regression introduced by
5e0ca9b41e.

Signed-off-by: Christoph Steiger <c.steiger@lemonage.de>
2021-06-04 08:12:12 -05:00
Joakim Andersson
95e359d658 Bluetooth: controller: Check length field of scan response data
Check the length field of the scan response data.

Signed-off-by: Joakim Andersson <joakim.andersson@nordicsemi.no>
2021-06-04 12:51:27 +02:00
Maureen Helm
e2068d10bc boards: arm: Clarify J-Link OpenSDA firmware usage for frdm_k64f
Updates the frdm_k64f board documentation to clarify that the J-Link
OpenSDA firmware version depends on the DAPLink bootloader version.

Signed-off-by: Derek Snell <derek.snell@nxp.com>
Signed-off-by: Maureen Helm <maureen.helm@nxp.com>
2021-06-04 11:30:35 +02:00
Anas Nashif
39354d92bb size_report: give root node a unique identifier
Call the root node 'root', otherwise we end up with two nodes with the
same identifier ':'.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2021-06-03 20:46:55 -05:00
Andy Ross
45bd3dee08 boards/x86/acrn: Use APIC_TSC_DEADLINE_TIMER
This board got forgotten when we migrated the older APIC_TIMER users.
Now the platform is SMP by default and the older driver refuses to
build.

Signed-off-by: Andy Ross <andrew.j.ross@intel.com>
2021-06-03 20:07:50 -05:00
Andy Ross
3da652f4cd boards/x86/acrn: Rework board documentation
ACRN build and configuration is non-trivially complicated, and so far
integration documentation has been mostly missing, and users have had
to get by via copying from existing integration efforts with minor
changes, leading to repeated mistakes and persistent confusion.  This
is an attempt to document the process from first principles, with an
eye toward informing integrators (not me!) who might come by later to
better automate things.  Some of the content is going to look remedial
to someone already familiar with e.g. ACRN configuration or EFI boot.

This simply replaces the pre-existing docs, which were for earlier
versions of ACRN where Zephyr was launched from the service OS instead
of the now-standard pre-launch VM mode.

Signed-off-by: Andy Ross <andrew.j.ross@intel.com>
2021-06-03 20:07:50 -05:00
Andy Ross
c6f3887e84 boards/x86/acrn_ehl_crb: Enable SMP by default
SMP is working now, make a 2-cpu configuration default for this
device.

Note that this requires changes to the default ACRN build
configuration!  In hybrid.xml, you need to specify multiple physical
CPUs for the VM to uses, e.g.:

    <vm id="0">
        ...
        <cpu_affinity>
            <pcpu_id>0</pcpu_id>
            <pcpu_id>1</pcpu_id>
        </cpu_affinity>
    </vm>

Failing to build with this change will result in the system hanging at
boot trying to start up a CPU that won't run.

Signed-off-by: Andy Ross <andrew.j.ross@intel.com>
2021-06-03 20:07:50 -05:00
Andy Ross
f479d5c7cc boards/x86/acrn: Add APIC IDs
The ACRN hypervisor uses 0, 2, 4, 6 as its local APIC IDs for
virtualized CPUs and not the 0, 1, 2, 3 defaults we have.

(I hate this feature, having to manually (!) probe and code these
things in C isn't scaling.  Zephyr needs to do the probing on its own
somehow, even if it's an offline tool in Linux or something.)

Signed-off-by: Andy Ross <andrew.j.ross@intel.com>
2021-06-03 20:07:50 -05:00
Andy Ross
9cb8dcbf84 arch/x86_64: Use modern CR0 assembly
The 16 bit bootstrap code for SMP CPUs was using the 286-era "lmsw"
instruction (load machine status word) to set the protected bit in CR0
(which is the modern evolution of the same register), presumably
because this is 16 bit code and we can't move a dword into CR0.

But that's wrong, because the full instruction set *is* available in
real mode on a 386, you just have to use a operand size prefix to get
to it, which the assembler emits for you automatically when you use
the .code16 directive.

Write this conventionally and use modern (e.g. 1986-era) instructions.
It also has the advantage of not confusing much more modern
hypervisors like ACRN by issuing instructions they (and I!) never knew
existed.

Fixes #35076

Signed-off-by: Andy Ross <andrew.j.ross@intel.com>
2021-06-03 20:07:50 -05:00
Andy Ross
5e9c583c24 arch/x86_64: Terrible, awful hackery to bootstrap entry
Because of a historical misunderstanding, by default the ACRN
hypervisor wants to load Zephyr at address 0x1000 and enter the binary
at that same address.  This entry point corresponds to the __start
symbol of the build they were given, which is a 1-cpu non-SMP
configuration.  Unfortunately, when we build with
CONFIG_MP_NUM_CPUS=1, the code in locore.S #if's out the 16 bit entry
point for the auxiliary CPUs at the start of the section.  So in the
build ACRN received, the start address happened to be 0x7000, the same
address we need to launch the AP processors from.

That's right: under ACRN, the SAME ADDRESS used to enter the OS in 32
bit mode needs to be used later to boot CPUs running in 16 bit real
mode!

The solution, such as it is, is to put a 32 bit jump at the entry
address which hops to the 32 bit OS entry code, and then scribble NOP
instructions over that jump once we get there so that the next time we
reach that address (in real mode) we fall through to the correct
entry.

This patch should be considered a temporary workaround.  While it
works on all x86 hardware, it's not really needed.  A much better
solution would be to eliminate the locore linker region entirely
(which causes other headaches) and enter the Zephyr binary in a 32 bit
address somewhere in the contiguous high memory area.  All that locore
is needed for is the 16 bit bootstrap code for SMP processors, which
is ~6 instructions and can be copied in from the kernel at runtime.

Signed-off-by: Andy Ross <andrew.j.ross@intel.com>
2021-06-03 20:07:50 -05:00