Commit graph

44556 commits

Author SHA1 Message Date
Xavier Chapron
824f423e54 misc: Replace assert include and calls by sys/__assert.h equivalent
Replace all calls to the assert macro that comes from libc by calls to
__ASSERT_NO_MSG(). This is usefull as the former might be different
depending on the libc used and the later can be customized to reduce
flash footprint.

Signed-off-by: Xavier Chapron <xavier.chapron@stimio.fr>
2020-10-02 11:42:40 +02:00
Alexandre Bourdiol
25e19f89f1 test: drivers: watchdog: 64bits variables for STM32H7 and STM32F7
STM32H7 and STM32F7 guarantee last write RAM retention over reset,
only for 64bits.
See details in Application Note AN5342

Signed-off-by: Alexandre Bourdiol <alexandre.bourdiol@st.com>
2020-10-02 11:39:14 +02:00
Enjia Mai
9ec3983c3e tests: device: update test case
Update pm test case to fix some error last time submission. Add test
case that simply check device_pm_enable and device_pm_disable interface.

Signed-off-by: Enjia Mai <enjiax.mai@intel.com>
2020-10-02 11:38:30 +02:00
Pawel Czarnecki
8f9c4e2a1b drivers: gpio: litex_vexriscv: adapt to changes in CSR accessors
This adapts the driver to changes in the LiteX CSR accessors API
introduced in the previous commit.

Signed-off-by: Pawel Czarnecki <pczarnecki@internships.antmicro.com>
Signed-off-by: Mateusz Holenko <mholenko@antmicro.com>
2020-10-02 11:36:16 +02:00
Pawel Czarnecki
82acea40b3 soc: riscv: litex-vexriscv: change CSR accessors
Do not assume `reg_size` to be a multiple of 4 and
divide it on each call, expect the caller to provide
an already divided value instead.

This change require the LiteX GPIO driver to be modified,
which will come in the following commit.

Signed-off-by: Pawel Czarnecki <pczarnecki@internships.antmicro.com>
Signed-off-by: Mateusz Holenko <mholenko@antmicro.com>
2020-10-02 11:36:16 +02:00
Tobias Svehagen
0d50372ce9 drivers: modem: Add debug log for matching direct cmds
Add a log message for when a direct cmd is matched to ease debugging.

Signed-off-by: Tobias Svehagen <tobias.svehagen@gmail.com>
2020-10-02 11:35:47 +02:00
Maksim Masalski
9eddc69029 tests: added new tests for memory partitions
Add new tests to improve of the Zephyr QA testing of the memory
protection for memory domains and partitions.
I created new tests for memory protection->memory partitions for
the requirements which I think necessary to be tested.
I added Doxygen tag for each test to make it clear to understand
what each test is doing and how.

New tests for memory domains and partitions:

-test_mem_domain_api_kernel_thread_only()
By creating that test I wanted to prove that access to memory
domain APIs must be restricted only to supervisor threads.
At the same time I wanted to prove that system can support the
definition of memory domains.

-test_mem_part_auto_determ_size()
By creating that test I want to prove that system can automatically
determine application memory partition base addresses and sizes
at build time, determined by its contents. Also system can support
definition of memory partitions. At the same time test proves that OS
supports adding and removing a thread from its memory domain
assignment.

-test_mem_part_auto_determ_size_per_mmu()
That test is very important and it proves that memory partitions are
automatically sized and aligned per the constraints of the platform's
memory management hardware.

-test_mem_part_inheirt_by_child_thr()
Prove that child thread inherits memory domain assignment of its
parent.

-test_macros_obtain_names_data_bss()
Test system provides tools to obtain the names of the data and BSS
sections related to a particular application memory partition at
build time.

-test_mem_part_assign_bss_vars_zero()
Test that global data and BSS values can be assigned to application
memory partitions using macros at build time. Test that BSS values
will be zeroed at the build time.

1. According to the reviews made changes.
2. Switched test_mem_part_assert_add_overmax
and test_create_new_invalid_prio_thread_from_user
That way I exposed problem (bug) with assertion
in L171 kernel/mem_protect.c

Signed-off-by: Maksim Masalski <maksim.masalski@intel.com>
2020-10-02 11:35:28 +02:00
Parthiban Nallathambi
c2ee9f5c3e drivers: eth: add driver for w5500 Ethernet Controller
Add driver for w5500 Ethernet Controller

Signed-off-by: Parthiban Nallathambi <parthiban@linumiz.com>
2020-10-02 11:34:57 +02:00
Rafał Kuźnia
5ead7e7b3b lib: posix: eventfd: general eventfd improvements
The eventfd implementation suffers from various shortcomings
and it is not thread safe.

This commit addresses the following aspects of eventfd:
* make read() and write() atomic in respect to each other
* POLLIN after creating eventfd with initval != 0 shall be set
* blocking and nonblocking modes shall have the same effect on poll()
* add support for POLLOUT

Signed-off-by: Rafał Kuźnia <rafal.kuznia@nordicsemi.no>
2020-10-02 11:34:19 +02:00
Rafał Kuźnia
d897bd1e74 tests: posix: eventfd: increase test coverage with polling
This commit adds the following tests:
* check eventfd with initval != 0
* check write counter overflow
* check if eventfd is blocked after read
* check if writing zero does not unblock
* check if nonblocking eventfd poll() behaviour is identical to blocking

Signed-off-by: Rafał Kuźnia <rafal.kuznia@nordicsemi.no>
2020-10-02 11:34:19 +02:00
Marco Peter
03f256505c drivers: ssd1306: Add SPI support
This change allows to use SSD1306 based displays to be used on the
SPI bus as well.
Adding SPI shield.
Tested on SSD1306 and SSD1309 based displays using I2C.
Tested on SSD1309 based display using SPI.

Signed-off-by: Marco Peter <marco@peter-net.ch>
2020-10-02 11:33:26 +02:00
Marco Peter
fd2087e080 drivers: ssd1306: Optimize display commands
This change removes the interleaving control
frames.
Additionally all I2C accesses are centralized in
one single function.

Signed-off-by: Marco Peter <marco@peter-net.ch>
2020-10-02 11:33:26 +02:00
Mulin Chao
99c208f36a soc: npcx7: add comments for macro funcs used for device tree files.
This CL adds more comments for each macro functions used for device tree
file for better explanations. It also changes all hex values in soc.c to
lower case.

Signed-off-by: Mulin Chao <MLChao@nuvoton.com>
2020-10-02 11:33:15 +02:00
Mulin Chao
e42a3a5a96 drivers: espi: add host sub-modules support for NPCX7 series.
This CL contains the drivers of NPCX Host Sub-Modules that serve as an
interface between the Host and Core domains. For most of them, the Host
can configure these modules via eSPI(Peripheral Channel)/LPC by
accessing 'Configuration and Control register Set' which IO base address
is 0x4E as default. And the interrupts in core domain help handling any
events from host side.

In this commit, we introduced six host sub-modules. It includes:
 1. Keyboard and Mouse Controller (KBC) interface.
 2. Power Management (PM) channels.
 3. Shared Memory mechanism (SHM).
 4. Core Access to Host Modules (C2H).
 5. Mobile System Wake-Up functions (MSWC).
 6. Serial Port (Legacy UART)

The tasks in application layer such as 8042, ACPI and host command can
cooperation with this driver by connecting api or callback functions.

Signed-off-by: Mulin Chao <MLChao@nuvoton.com>
2020-10-02 11:33:15 +02:00
Mulin Chao
be217e4a3a drivers: eSPI: add eSPI driver support for NPCX7 series.
In npcx7 series, all of them support the Intel Enhanced Serial
Peripheral Interface (eSPI) Revision 1.0. This specification provides a
path for migrating host sub-devices via LPC to a lower pin count, higher
bandwidth bus. In addition to Host communication via the peripheral
channel, it provides virtual wires support, out-of-band communication,
and device mastering option over the Chipset SPI flash.

Becisdes introducing eSPI device in npcx7, this CL also includes:

1. Add eSPI device tree declarations.
2. Add npcx7-espi-vws-map.dtsi to present the relationship between eSPI
   Virtual-Wire signals, eSPI registers, and wake-up input sources.
3. Zephyr eSPI api implementation.
4, Add OOB (Out of Band tunneled SMBus) support.
5. Add configuration files for eSPI test suites.

Signed-off-by: Mulin Chao <MLChao@nuvoton.com>
2020-10-02 11:33:15 +02:00
Mulin Chao
e12d1ae851 drivers: eSPI: fixed build error in eSPI socketpair test suite.
Fixed build error in in eSPI socketpair test suite since wrong function
name for eSPI flash channel api.

This CL also fixed [-Werror=unused-function] warning by adding inline
attribute in case someone includes "espi_utils.h" and doesn't call
espi_manage_callback() function.

Signed-off-by: Mulin Chao <MLChao@nuvoton.com>
2020-10-02 11:33:15 +02:00
Emil Hammarstrom
7743b1e553 drivers: sensor: lis2mdl: Add device power management
The power draw of this magnetometer is significant,
device power management is needed for our use-cases.

Signed-off-by: Emil Hammarstrom <emil.hammarstrom@assaabloy.com>
Change-Id: I71158e629e93b491c6d673aa81001b7a7099f654
2020-10-02 11:32:59 +02:00
Eugeniy Paltsev
9b0ef4f19a ARC: MWDT: drop redundant stack checking
MWDT toolchain has Stackcheck_alloca option enabled by default.
So it adds stack checking in addition to Zephyr's stack checking.

As it is completely redundant let's drop it.

Signed-off-by: Eugeniy Paltsev <Eugeniy.Paltsev@synopsys.com>
2020-10-02 11:32:12 +02:00
Christopher Friedt
75b9292a30 tests: posix: nanosleep: round up to the nearest microsecond
Here, we include some addtional tests for durations that have
sub-microsecond components.

1ns => k_busy_wait(0). Round to 1us.
1us + 1ns => k_busy_wait(1us). Round to 2us.
1s + 1ns => k_busy_wait(1000000us). Round to 1000001us.
1s + 1us + 1ns => k_busy_wait(1000001us). Round to 1000002us.

Fixes #28483

Signed-off-by: Christopher Friedt <chrisfriedt@gmail.com>
2020-10-02 11:31:43 +02:00
Christopher Friedt
3cdf718d5b lib: posix: nanosleep: round up to the nearest microsecond
We must round up to the nearest microsecond in order to fulfill the
nanosleep(2) API requirement of sleeping for *at least* that many
nanoseconds.

The only platform with an upper-bound check right now is Nordic.

Fixes #28483

Signed-off-by: Christopher Friedt <chrisfriedt@gmail.com>
2020-10-02 11:31:43 +02:00
Yuguo Zou
d04ff1af7c arch: arc: Restore MPU registers to its initial states between tests
EMSK boards can't be reset between tests due to hardware configures.
MPU v3 configs in previous test could cause exceptions in the following
tests. This commit fixes this issue by restoring MPU registers initial
states at early init stage.

Signed-off-by: Yuguo Zou <yuguo.zou@synopsys.com>
2020-10-02 11:31:34 +02:00
Yuguo Zou
df4b7803a1 arch: arc: unify different versions of MPU registers
Previously MPU registers macros are only defined within its own header
files and could not be used by other part of program. This commit unify
them together.

Signed-off-by: Yuguo Zou <yuguo.zou@synopsys.com>
2020-10-02 11:31:34 +02:00
YanBiao Hao
dc89bfcc7f Bluetooth: Mesh: Config Client network transmit set/get API
Get/Set network transmit parameter of a node.

Signed-off-by: YanBiao Hao <haoyanbiao@xiaomi.com>
2020-10-02 11:30:12 +02:00
Flavio Ceolin
b8b42c6d18 random: Warning when using test config
Generates a warning message when building with
CONFIG_TEST_RANDOM_GENERATOR. The purpose is inform that this is not
secure and should not used in production.

Signed-off-by: Flavio Ceolin <flavio.ceolin@intel.com>
2020-10-02 11:30:03 +02:00
Peter A. Bigot
82a98d75ef kernel: timer: clarification on k_timer_stop_t requirements
The documentation of the callback implies it is invoked from a thread,
but the documentation of the stop function states it can be called
from interrupt context.

Signed-off-by: Peter A. Bigot <pab@pabigot.com>
2020-10-02 11:29:14 +02:00
Peter A. Bigot
f1b86caff3 kernel: timer: update k_timer API for const correctness
API that takes k_timer structures but doesn't change data in them is
updated to const-qualify the underlying object, allowing information
to be retrieved from contexts where the containing object is
immutable.

Signed-off-by: Peter A. Bigot <pab@pabigot.com>
2020-10-02 11:29:14 +02:00
Peter A. Bigot
16a4081520 kernel: timer: update _timeout API for const correctness
API that takes _timeout structures but doesn't change data in them is
updated to const-qualify the underlying object, allowing information
to be retrieved from contexts where the containing object is
immutable.

Signed-off-by: Peter A. Bigot <pab@pabigot.com>
2020-10-02 11:29:14 +02:00
Gerard Marull-Paretas
e390105b0f boards: arm: adafruit_feather_nrf52840: use dual mode for QSPI NOR
Right before #28631 was merged the writeoc/readoc settings were ignored,
so the flash was actually working in single line mode. In turns out that
quad mode can't be used with this flash without setting the QE bit in
the status register, so until this is supported fall back to dual mode.

Signed-off-by: Gerard Marull-Paretas <gerard@teslabs.com>
2020-10-02 11:28:17 +02:00
Kiril Petrov
8100a4a7c8 lwm2m_client: update README.rst to include OpenThread info
Update README.rts to include OpenThread info.

Signed-off-by: Kiril Petrov <retfie@gmail.com>
2020-10-02 09:22:29 +03:00
Kiril Petrov
39231ef490 lwm2m_client: add working config for OpenThread
It's copy of openthread conf from samples/net/sockets/echo_client,
but requires increasing of main stack size to avoid crash.
Also fixes building if CONFIG_LWM2M_DTLS_SUPPORT is enabled #28787.

Signed-off-by: Kiril Petrov <retfie@gmail.com>
2020-10-02 09:22:29 +03:00
Torsten Rasmussen
d1268206cf llvm: use bintools/gnu/target_bintools.cmake
Fixes llvm inclusion of gnu/target_bintools.cmake.

Signed-off-by: Torsten Rasmussen <Torsten.Rasmussen@nordicsemi.no>
2020-10-01 22:35:39 -04:00
Aastha Grover
83b9f69755 code-guideline: Fixing code violation 10.4 Rule
Both operands of an operator in the arithmetic conversions
performed shall have the same essential type category.

Changes are related to converting the integer constants to the
unsigned integer constants

Signed-off-by: Aastha Grover <aastha.grover@intel.com>
2020-10-01 17:13:29 -04:00
Marcin Niestroj
fc67409291 sanitycheck: ignore coverage directories by matching any in path hierarchy
So far 'tests' and 'samples' directories were matched only when they
were first directories in path hierarchy. This doesn't work when running
sanitycheck from directory other than Zephyr source code root.

Match any directory in path hierarchy, similar how file is matched
currently. That way sanitycheck can be executed from outside of Zephyr
source code directory.

Signed-off-by: Marcin Niestroj <m.niestroj@grinn-global.com>
2020-10-01 17:11:34 -04:00
Marcin Niestroj
b536fc416a sanitycheck: add optional --coverage-basedir argument
Add '--coverage-basedir BASEDIR' argument, which can be used to specify
source code base directory other than default Zephyr root directory.

This is mainly useful for projects built on top of Zephyr, where
sanitycheck is used for unit testing application code.

Signed-off-by: Marcin Niestroj <m.niestroj@grinn-global.com>
2020-10-01 17:11:34 -04:00
Martí Bolívar
49fdfd4f39 doc: west: changes for v0.8
Track changes in the APIs and CLIs for this release.

Signed-off-by: Martí Bolívar <marti.bolivar@nordicsemi.no>
2020-10-01 20:47:53 +02:00
Martí Bolívar
b593087734 doc: west: API doc cleanups
Use italics more consistently when referring to parameters by name.
Make the ImportFlag members appear.

Signed-off-by: Martí Bolívar <marti.bolivar@nordicsemi.no>
2020-10-01 20:47:53 +02:00
Martí Bolívar
f6e90fce87 doc: west: add missing 0.7.x docs
I neglected to update the release notes when cutting these. Whoops.

Signed-off-by: Martí Bolívar <marti.bolivar@nordicsemi.no>
2020-10-01 20:47:53 +02:00
Tomasz Bursztyka
2b6c574499 arch/x86: If ACPI is enabled, get the CPU APIC ID from it
The hardcoded APIC ID will be kept as default if the CPU is not found in
ACPI MADT.

Note that ACPI may expose more "CPUs" than there actually are
physically. Thus, make the logic aware of this possibility by checking
the enabled flas. (Non-enabled CPU are ignored).

This fixes up_squared board made of Celeron CPU.

Signed-off-by: Tomasz Bursztyka <tomasz.bursztyka@linux.intel.com>
2020-10-01 11:16:40 -07:00
Tomasz Bursztyka
d98f7b1895 arch/x86: Optimize ACPI RSDP lookup
As well as normalizing its signature declaration through header.

Signed-off-by: Tomasz Bursztyka <tomasz.bursztyka@linux.intel.com>
2020-10-01 11:16:40 -07:00
Tomasz Bursztyka
4ff1885f69 arch/x86: Move ACPI structures to header file
Let's have all specified ACPI structures in the central header.

Signed-off-by: Tomasz Bursztyka <tomasz.bursztyka@linux.intel.com>
2020-10-01 11:16:40 -07:00
Tomasz Bursztyka
9ce08544c5 arch/x86: Fix style issue and code logic in ACPI
Trivial changes.

Signed-off-by: Tomasz Bursztyka <tomasz.bursztyka@linux.intel.com>
2020-10-01 11:16:40 -07:00
Tomasz Bursztyka
c7787c623e arch/x86: Cleanup ACPI structure attributes names
No need to mix super short version of names with other structures
having full name. Let's follow a more relevant naming where each and
every attribute name is self-documenting then. (such as s/id/apic_id
etc...)

Also make CONFIG_ACPI usable through IS_ENABLED by enclosing exposed
functions with ifdef CONFIG_ACPI.

Signed-off-by: Tomasz Bursztyka <tomasz.bursztyka@linux.intel.com>
2020-10-01 11:16:40 -07:00
Emil Gydesen
0be8a91a73 Bluetooth: host: Add NULL checks for scan callbacks
The scan callbacks may be NULL, which would cause an error if
e.g. the timeout callback wasn't set and the scan terminates after
a timeout.

Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
2020-10-01 13:57:53 -04:00
NavinSankar Velliangiri
c98d9a678c board: arm: disco_l475_iot1: Add four more adc pins
Add four more adc pins

Signed-off-by: NavinSankar Velliangiri <navin@linumiz.com>
2020-10-01 13:56:10 -04:00
Peter Bigot
88e756e05e kernel: document interrupt behavior of k_cpu_atomic_idle
The generic kernel API did not specify the effect of the call on the
interrupt lockout state.  The implementation forwards to
arch_cpu_atomic_idle() which does document that the state is restored
to the state specified in the passed key, which makes it have the
effect of invoking irq_unlock(key).

Signed-off-by: Peter Bigot <peter.bigot@nordicsemi.no>
2020-10-01 18:45:08 +02:00
Erwan Gouriou
e4e60a4a0f boards: nucleo_f103rb: Configure serial console pins using dt
usart2 pin configuration is now done through device tree.

Signed-off-by: Erwan Gouriou <erwan.gouriou@linaro.org>
2020-10-01 11:08:42 -05:00
Erwan Gouriou
346d2ab92f drivers/uart: stm32f1: Add remap support for dt configured pinctrl
On stm32f1 series, device pinctrl configuration could be modified
thanks to remapping capability.
Remapping allows to provide alternate pinctrl configuration to a
peripheral device and applies to all impacted pins.

So, specifically for stm32f1 series, apply remapping when required
before proceeding with pin configuration.
Additionally, because remapping is defined individually for each pin,
apply a function on pinctrl configuration to check remapping setting
coherency accorss pins.

Signed-off-by: Erwan Gouriou <erwan.gouriou@linaro.org>
2020-10-01 11:08:42 -05:00
Erwan Gouriou
f100e2c09e drivers/pinmux: stm32f1: Update dt to gpio encoding function
Based on pinmux data encoded in dt bindings some stm32f1 post
processing is required to eventually fit into data structures
expected in gpio_stm32_configure function.

Signed-off-by: Erwan Gouriou <erwan.gouriou@linaro.org>
2020-10-01 11:08:42 -05:00
Erwan Gouriou
0f95e31e7e soc: stm32f1: Update DT macros for dt pinctrl support
ST_STM32_PINCFG requires slight modification to support
encoding pincfg structure from pinctrl dt bindings.

Signed-off-by: Erwan Gouriou <erwan.gouriou@linaro.org>
2020-10-01 11:08:42 -05:00
Erwan Gouriou
1ef4c1ba7a dts: stm32f1: Use series specific compat for pinctrl
stm32f1 series pin controller IP is not compatible with other stm32
series.
Set the dedicated st,stm32f1-pinctrl compatible for pinctrl node.

Signed-off-by: Erwan Gouriou <erwan.gouriou@linaro.org>
2020-10-01 11:08:42 -05:00