Commit graph

85,247 commits

Author SHA1 Message Date
Daniel Leung
cf5a6e816d samples: syst: exclude XCC from C++ tests
The logging subsys has evolved to a point where XCC/GCC cannot
compile anymore as it only supports C++98. So exclude C++
samples from build. And just use XCC/Clang instead for C++.

Signed-off-by: Daniel Leung <daniel.leung@intel.com>
2022-06-09 11:34:41 +02:00
Jaska Uimonen
44ef4c4737 dma/cavs_hda: write aligned size to DGMBS register
Write aligned size also to DGMBS register. At least SOF with linux
host and cavs25 seems to need this for the dma to trigger.

Signed-off-by: Jaska Uimonen <jaska.uimonen@linux.intel.com>
2022-06-09 11:34:32 +02:00
Andrei Emeltchenko
770f57e163 toolchain: Add __maybe_unused attribute
Add attribute __maybe_unused similar to Linux kernel.

Signed-off-by: Andrei Emeltchenko <andrei.emeltchenko@intel.com>
2022-06-09 11:34:25 +02:00
Marcin Niestroj
d87277d879 boards: arm: seeeduino_xiao: fix vendor prefix
Use "seeed" instead of "seeedstudio", as the former is registered in
`dts/bindings/vendor-prefixes.txt`.

Signed-off-by: Marcin Niestroj <m.niestroj@emb.dev>
2022-06-09 11:33:48 +02:00
David Palchak
b4a7f0f2ca linker: ensure global constructors only run once
Rename the symbols used to denote the locations of the global
constructor lists and modify the Zephyr start-up code accordingly.
On POSIX systems this ensures that the native libc init code won't
find any constructors to run before Zephyr loads.

Fixes #39347, #36858

Signed-off-by: David Palchak <palchak@google.com>
2022-06-09 11:33:36 +02:00
Keith Packard
be606f0932 samples/net/virtual: Increase sprintk buffers to hold parameter types
This sample app uses a stack buffer to hold the interface name which is
generated at runtime using sprintk. The buffer is only sized for the
expected range of values, not the full possible range of the datatype
(int).

To mitigate this, increase the size of the buffer to hold the full range of
an int value.

Signed-off-by: Keith Packard <keithp@keithp.com>
2022-06-09 11:33:09 +02:00
Keith Packard
9b2aed731a drivers/wifi/esp_at: Increase sprintk buffers to hold parameter types
This driver uses stack buffers to hold AT command strings which are
generated at runtime using sprintk. The buffers are only sized for the
expected range of values, not the full possible range given the datatypes
involved. Values outside this expected range could cause a buffer overflow.

To mitigate this, increase the size of each buffer to hold the full range
of each parameter type.

Signed-off-by: Keith Packard <keithp@keithp.com>
2022-06-09 11:33:09 +02:00
Keith Packard
87367afa80 drivers/modem: Increase sprintk buffers to hold parameter types
These drivers use stack buffers to hold AT command strings which are
generated at runtime using sprintk. The buffers are only sized for the
expected range of values, not the full possible range given the datatypes
involved. Values outside this expected range could cause a buffer overflow.

To mitigate this, increase the size of each buffef to hold the full range
of each parameter type.

Signed-off-by: Keith Packard <keithp@keithp.com>
2022-06-09 11:33:09 +02:00
Keith Packard
11267a30a1 lib/os/cbprintf: Use signed char for %hhd format
The cast to narrow for %hhd support must be 'signed char' instead of 'char'
to support targets where 'char' is unsigned, as on riscv.

Signed-off-by: Keith Packard <keithp@keithp.com>
2022-06-09 11:32:58 +02:00
Sjors Hettinga
e097d95c66 net: tcp: Implement Nagle's algorithm
To improve the performance with small chunks send, implement Nagle's
algorithm. Provide the option TCP_NODELAY to disable the algorithm.

Signed-off-by: Sjors Hettinga <s.a.hettinga@gmail.com>
2022-06-09 11:32:50 +02:00
Mariusz Skamra
c44ef044b8 Bluetooth: monitor: Avoid sending corrupted packets over RTT
This fixes sending corrupted (incomplete) packets over RTT. Additional
helper buffer has been added to ensure the complete packet before it
can be sent over RTT. Once the complete packet is collected it is sent
to the RTT control block in non-blocking manner. From now there will
be no situation that only part of the packet (e.g. header) is sent
which lead btmon to fail to parse the corrupted data.

Signed-off-by: Mariusz Skamra <mariusz.skamra@codecoup.pl>
2022-06-09 11:32:39 +02:00
Mariusz Skamra
e7b66d1b73 Bluetooth: monitor: Fix sending logs over RTT
This fixes Bluetooth logs that were not sent over RTT.
Minor cleanup has been made to limit the number of ifdefs.

> ACL Data RX: Handle 0 flags 0x02 dlen 11      #1049 83.117000
      ATT: Handle Value Indication (0x1d) len 6
        Handle: 0x0003
          Data: 0100ffff
= bt: bt_att: Unhandled ATT code 0x1d                 83.117100
> HCI Event: Disconnect Complete (0x05) plen 4  #1050 84.247700
        Status: Success (0x00)
        Handle: 0
        Reason: Remote User Terminated Connection (0x13)

Signed-off-by: Mariusz Skamra <mariusz.skamra@codecoup.pl>
2022-06-09 11:32:39 +02:00
Vinayak Kariappa Chettimada
1a56f766bc Bluetooth: Controller: Config ticker with slot window to yield
Add Kconfig option to conditionally enable tickers with slot
window to yield to normal tickers and be placed at the end
of their slot window if possible.

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
2022-06-09 11:32:33 +02:00
Markus Rekdal
3d8f938929 net: lwm2m: Fix range of integers in SenML CBOR
This fixes a minor bug that caused an error if one attempted to encode
or decode INT64_MIN in SenML CBOR

Signed-off-by: Markus Rekdal <markus.rekdal@nordicsemi.no>
2022-06-09 11:32:01 +02:00
Markus Rekdal
0006f2c93e net: lwm2m: Fix decoding of objlnk in SenML CBOR
This fixes a bug in the decoding of objlinks. Without this the object
instance id is not retrieved correctly as it tries to read the second id
starting from the colon.

Signed-off-by: Markus Rekdal <markus.rekdal@nordicsemi.no>
2022-06-09 11:32:01 +02:00
Markus Rekdal
071a017b18 net: lwm2m: Add SenML CBOR content writer tests
This will add unit tests for the SenML CBOR content encoder/decoder

Signed-off-by: Markus Rekdal <markus.rekdal@nordicsemi.no>
2022-06-09 11:32:01 +02:00
Chay Guo
191f93c325 boards: Add analog comparator support on MIMXRT1170 EVK
Updated mcux_acmp sample to support discrete mode config.
Add ACMP support on MIMXRT1170 EVK.

Signed-off-by: Chay Guo <changyi.guo@nxp.com>
2022-06-09 11:30:49 +02:00
Chay Guo
08641f0616 driver: sensor: mcux_acmp: add discrete mode
The ACMP on i.MXRT11xx support discrete mode,
updated the driver to support discrete mode configuration.

Signed-off-by: Chay Guo <changyi.guo@nxp.com>
2022-06-09 11:30:49 +02:00
Seppo Takalo
e0296ca0b9 net: lwm2m: Allow initializing opaque and string data to zero length
By default, any string or opaque data that LwM2M engine initializes
sets data lenght to same value as given buffer length for that
resource.

However, on run time, engine keeps track how much data is written
to each resource, so when reading from any resource, should only
return data that has been written there. But uninitialized resources
return the content of the whole buffer.

Fixed the problem by introducing macros INIT_OBJ_RES_LEN(),
INIT_OBJ_RES_MULTI_DATA_LEN() and INIT_OBJ_RES_DATA_LEN() that
allows you to give the amount of data existing in buffer when
the resource is initialized. This sets the data_len and max_data_len
variables correctly.

Also introduced new functions lwm2m_engine_get_res_buf() and
lwm2m_engine_set_res_buf() that distinct between data size and
buffer size. Deprecated the previous functions
lwm2m_engine_get_res_data() and lwm2m_engine_set_res_data()

Signed-off-by: Seppo Takalo <seppo.takalo@nordicsemi.no>
2022-06-09 11:30:37 +02:00
Krzysztof Chruscinski
23c3449780 tests: logging: Add test for log backend prolong init
Add test for handling of autostarting backends which have
prolonged initialization and implements function for polling
for readiness.

Signed-off-by: Krzysztof Chruscinski <krzysztof.chruscinski@nordicsemi.no>
2022-06-09 09:40:01 +02:00
Krzysztof Chruscinski
d660492914 logging: Add option for prolonged backend initialization
Extended logging backend API with log_backend_is_ready call which
returns 0 is backend is ready. Logging core will make sure that
all autostarted backends are ready before they are enabled.

This option allows to handle backends which are not yet ready
after init function is called (e.g. usb backend that is not plugged
in). If this is the only backend in the system, logging processing
will not start util first backend is ready.

Function for checking readiness is optional and when backend has
no such function it is assumed that backend is ready after
initialization function returns which makes this feature backward
compatible.

Signed-off-by: Krzysztof Chruscinski <krzysztof.chruscinski@nordicsemi.no>
2022-06-09 09:40:01 +02:00
Connor Graydon
d84989a718 doc: release: Fix a couple more typos in release doc
Fixing a couple more typos in release-notes-3.1.rst

Signed-off-by: Connor Graydon <connor.graydon@intel.com>
2022-06-08 18:48:38 -04:00
Moritz Fischer
8f16b05999 drivers: watchdog: cmsdk_apb: Drop dependency
The Kconfig encodes a dependency on SOC_FAMILY_ARM
even though there is no actual dependency.

This is generic ARM IP and can be used in any SoC.

Signed-off-by: Moritz Fischer <moritzf@google.com>
2022-06-08 15:57:01 -05:00
Kumar Gala
23bcc0d107 drivers: watchdog: remove unused HAS_DTS_WDT Kconfig symbol
All the watchdog drivers are based on devicetree and we dont utilize
HAS_DTS_WDT anywhere so we can remove it.

Signed-off-by: Kumar Gala <galak@kernel.org>
2022-06-08 16:44:01 -04:00
Stephanos Ioannidis
5dd359cc51 ci: Remove pull request labeler workflow
This commit removes the "Pull Request Labeler" workflow because the
newly added "Pull Request Assigner" workflow takes care of assigning
the pull request labels.

Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
2022-06-08 11:56:31 -04:00
Stephanos Ioannidis
37f109a056 ci: Add pull request assigner workflow
This commit adds the "Pull Request Assigner" workflow that
automatically assigns the reviewers, assignee and labels for a pull
request.

Note that this workflow runs on the `pull_request_target` event in the
context of the base branch using the `MAINTAINERS.yml` from the base
branch.

Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
2022-06-08 11:56:31 -04:00
Anas Nashif
20483161b2 scripts: introduce script to set labels, assignees and reviewers
Use MAINTAINERS.yml file to set lables, assignees and reviewers for
specific PRs or all unassigned PRs since a given date.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
2022-06-08 22:49:13 +09:00
Daniel Leung
fbf0fddbe2 samples: logging/syst: exclude XCC from logging v2 tests
XCC does not support _Generic as it is being used by the runtime
tagged argument feature. So exclude them.

Signed-off-by: Daniel Leung <daniel.leung@intel.com>
2022-06-08 09:31:42 -04:00
Daniel Leung
68684f7310 tests: log_api: exclude XCC from runtime tagged argument tests
XCC does not support _Generic so it can't build the runtime tagged
argument tests. So exclude them.

Signed-off-by: Daniel Leung <daniel.leung@intel.com>
2022-06-08 09:31:42 -04:00
Mariusz Skamra
868b180d64 Bluetooth: Make use of BT_CODEC_LC3_CHAN_COUNT_SUPPORT macro
Use the BT_CODEC_LC3_CHAN_COUNT_SUPPORT macro to define the supported
channel counts.

Signed-off-by: Mariusz Skamra <mariusz.skamra@codecoup.pl>
2022-06-08 12:45:34 +02:00
Mariusz Skamra
031717a916 Bluetooth: lc3: Improve BT_CODEC_LC3_CHAN_COUNT_SUPPORT macro
This improves the macro so that it can take variable number of
arguments, e.g. BT_CODEC_LC3_CHAN_COUNT_SUPPORT(1, 2, 8).

Signed-off-by: Mariusz Skamra <mariusz.skamra@codecoup.pl>
2022-06-08 12:45:34 +02:00
Mariusz Skamra
132ad4ac89 csis: Remove check causing assertion
This removes the check that was causing missalignment in
csis->srv.conn_cnt conunting. The csis->srv.conn_cnt was increased for
each connected device while decreased for bonded only. This caused
assertion in csis_connected when reconnected.

Signed-off-by: Mariusz Skamra <mariusz.skamra@codecoup.pl>
2022-06-08 12:45:07 +02:00
Mariusz Skamra
2dff20fe4b csis: Simplify the current connections counting
This makes the code cleaner.

Signed-off-by: Mariusz Skamra <mariusz.skamra@codecoup.pl>
2022-06-08 12:45:07 +02:00
Dino Li
86c45b7e12 soc: it8xxx2: The "M" extension is disabled by default
There is a mul instruction bug.
The bug may cause instructions of writing back CPU GPR (e.g mv a0,s2)
which following the mul instruction to fail.
This patch disables the 'M' extension and overwrite integer
multiplication and division arithmetic library routines with using
hardware multiplication and division and nop instructions.
This will ensure that there is no write back GPR instruction to follow
mul instruction to avoid the bug.

Signed-off-by: Dino Li <Dino.Li@ite.com.tw>
2022-06-08 12:43:51 +02:00
Fu Haolei
bf21e849cd doc: it8xxx2: Documentation improvements
Better documentation describing the flashing and booting process.

Signed-off-by: Fu Haolei <haolei.fu@intel.com>
2022-06-08 12:43:23 +02:00
Yannis Damigos
7721432486 boards/odroid_go: Add bluetooth support
Add bluetooth support

Signed-off-by: Yannis Damigos <giannis.damigos@gmail.com>
2022-06-08 12:43:10 +02:00
Jordan Yates
8eff15bab2 tests: pm: device: test pm_device_is_powered
Add tests for the function that checks whether a device is currently
powered.

Signed-off-by: Jordan Yates <jordan.yates@data61.csiro.au>
2022-06-08 12:43:00 +02:00
Jordan Yates
319ffaed0a pm: device: helper to query power state
Adds a helper function to query whether a device is currently powered.
This can be used to determine if the chip can be initialised now, or if
it needs to be deferred.

Signed-off-by: Jordan Yates <jordan.yates@data61.csiro.au>
2022-06-08 12:43:00 +02:00
Nicholas Lowell
3da90ad21f cmake: use all compile options arguments for uniqueness
zephyr_library_compile_options() was attempting to create
unique hashes for compile options in order to prevent creating
them multiple times.  However, it was only using the first
argument to create the hash, so if multiple libraries had
different compile options but the first line was the same,
the second set would be mistaken for the first set and would
actually be passed the first set during compilation instead
of its own set.

The fix should be to use the entire compile options argument
list to create the hash so they should only match if the entire
options list is exactly the same.

This is a continued fix for #43835

Signed-off-by: Nicholas Lowell <nlowell@lexmark.com>
2022-06-08 12:42:28 +02:00
Carlo Caione
0c053190b7 riscv: Introduce qemu_riscv32e board.
To support and test RV32E.

Signed-off-by: Carlo Caione <ccaione@baylibre.com>
2022-06-08 18:50:22 +09:00
Carlo Caione
673f41e708 riscv: Introduce support for RV32E
Introduce support for RV32E.

Signed-off-by: Carlo Caione <ccaione@baylibre.com>
2022-06-08 18:50:22 +09:00
Carlo Caione
737dccec1a riscv: Move syscall parameter from a7 to t0
To prepare for RV32E support.

Signed-off-by: Carlo Caione <ccaione@baylibre.com>
2022-06-08 18:50:22 +09:00
Huifeng Zhang
e05a1e392f MAINTAINERS: Add new ARM64 collaborator
Add Huifeng Zhang as new ARM64 collaborator.

Signed-off-by: Huifeng Zhang <Huifeng.Zhang@arm.com>
2022-06-08 15:34:32 +09:00
Carles Cufi
0a758c36c8 doc: gsg: Include instructions to set SDK env vars
The basic environment variables need to be set to be able to build
blinky (at least ZEPHYR_TOOLCHAIN_VARIANT) but were not inlcuded in the
GSG.

Signed-off-by: Carles Cufi <carles.cufi@nordicsemi.no>
Co-authored-by: Marti Bolivar <marti.bolivar@nordicsemi.no>
2022-06-07 10:45:31 -07:00
Tomasz Gorochowik
7cef5d7231 docs: fix QuickFeather board name in the docs
This change is required to generate proper build command in the docs.

Signed-off-by: Tomasz Gorochowik <tgorochowik@antmicro.com>
2022-06-07 10:08:29 -07:00
Marek Metelski
d046ea281c drivers: gsm_ppp: Fix null pointer dereference in log message
Log message references gsm->context.data_rssi which is NULL
when CONFIG_MODEM_SHELL=n. Use gsm->minfo.mdm_rssi which is
internally used when accessing RSSI value.

Signed-off-by: Marek Metelski <marek@metelski.dev>
2022-06-07 19:04:48 +02:00
Andy Ross
12eda76939 arch/xtensa: Add CCOUNT-based timing API
Expose the Xtenesa CCOUNT timing register (the lowest level CPU cycle
counter) using the arch_timing_*() API.

This is the simplest possible way to get this working.  Future work
might focus on moving the rate configuration into devicetree in a
standard way, integrating with the platform clock driver on intel_adsp
such that the reported cycle rate tracks runtime changes (though IIRC
this is not a SOF requirement), and adding better test coverage to the
timing layer, which right now isn't exercised anywhere but in
benchmarks.

Signed-off-by: Andy Ross <andrew.j.ross@intel.com>
2022-06-07 19:04:42 +02:00
Andy Ross
8246d88bd3 include/arch_interface.h: Clarify platform-dependencies
Clarify a few restrictions that seem obvious but weren't specified:

+ On MP systems, counters are often asynchronous between cores, so you
  need to make sure all the values read are on the same CPU.

+ Many platforms have a 32 bit (or smaller, c.f. Cortex M SysTick)
  internal counter, but are being forced to return a 64 bit quantity
  that will behave badly on rollover (you can't just subtract two
  times anymore!).  Demand that the existing arch_timing_cycles_get()
  API (which didn't seem to have useful much to do) implement rollover
  correction on the subtraction.

This allows an Xtensa implementation based on direct CCOUNT reads on
intel_adsp to be correct per the API docs.

Signed-off-by: Andy Ross <andrew.j.ross@intel.com>
2022-06-07 19:04:42 +02:00
Krzysztof Chruscinski
cbc85071ee tests: lib: spsc_pbuf: Exclude ast1030_evb from test
This board has external cache enabled but fails to link when cache
API is used. Temporary disabling.

Signed-off-by: Krzysztof Chruscinski <krzysztof.chruscinski@nordicsemi.no>
2022-06-07 19:04:35 +02:00
Krzysztof Chruscinski
0829610bbc lib: os: spsc_pbuf: Add option to use cache
Add flags option to init call and a flag to use cache.
Add Kconfig choice to pick how to approach cache. Cache can be
enforced in all spsc_pbuf instances, disable in all, or runtime selected
based on configuration flag. Option is added to allow memory footprint
savings.

Signed-off-by: Krzysztof Chruscinski <krzysztof.chruscinski@nordicsemi.no>
2022-06-07 19:04:35 +02:00