Commit graph

105,063 commits

Author SHA1 Message Date
Martin Jäger
8bb9bb67db lorawan: add emulator for unit testing
The emulator can be used for unit testing of LoRaWAN services.

It provides interfaces to send arbitrary messages to the LoRaWAN
stack and receive the response through callbacks without using
actual LoRa hardware.

Signed-off-by: Martin Jäger <martin@libre.solar>
2024-03-01 17:35:04 +01:00
Emil Gydesen
248bee9b17 Bluetooth: BAP: Broadcast Source: Remove unused variable
Remove an unused variable in bt_bap_broadcast_source_reconfig
that causes compiler warnings.

Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
2024-03-01 16:04:19 +01:00
Emil Gydesen
a7fe853436 tests: bsim: Bluetooth: Add broadcast sink cfg data validation
Add additional validation of the config data in the broadcast
sink test, both ensuring that the BASE is properly parsed,
that the BASE contains mandatory information and that the
stream get the right values copied.

Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
2024-03-01 16:04:19 +01:00
Emil Gydesen
8a6c1d9bfa Bluetooth: BAP: Broadcast source: Add LTV validation for LC3 data
When using the LC3 codec, all codec configuration are LTV encoded.
The broadcast source did not properly validate this, and it also
uncovered a bug in the bsim test for broadcast sources.

Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
2024-03-01 16:04:19 +01:00
Emil Gydesen
e08301b3df Bluetooth: BAP: Fix missing cfg data in stream->codec_cfg for BIS
The codec configuration data from the BIS in the BASE was not
properly copied to the stream->codec_cfg, and thus it only
contained the subgroup codec configuration values.

This commit fixes that by first copying the subgroup codec
configuration to the stream, and then setting or overwriting
any fields (if they exist).

This requires that each stream have their own codec configuration
struct allocated, so this will slightly increase memory usage.

This also adds verification of the SDU size from the BIGInfo
in the ISO receive callback.

Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
2024-03-01 16:04:19 +01:00
Tomasz Bursztyka
a4af2ac8dc net/ip: Removing useless extra data capability in neighbors
This is not used by anyone, and is unlikely to be useful actually.
Helps to save 4 bytes for each instance of struct net_nbr also (removing
a 2 bytes attributes, which was anyway generating a 4bytes loss due to
structure misalignment).

Removing relevant useless functions related to it as well.

Signed-off-by: Tomasz Bursztyka <tomasz.bursztyka@linux.intel.com>
2024-03-01 15:33:53 +01:00
Tomasz Bursztyka
a3d7278588 net/ipv6: Enforce MLD to be selected if ND is enabled
As noted in net_if.c:net_if_ipv6_addr_add() IPv6 ND needs MLD.

It is not selected during test, as the combination of ND without DAD/MLD
breaks (something to study/fix further it seems).

Signed-off-by: Tomasz Bursztyka <tomasz.bursztyka@linux.intel.com>
2024-03-01 15:33:53 +01:00
Tomasz Bursztyka
20ccc30273 net/if: Trivial comment fix about all-nodes
s/net_ipv6_mcast_join/net_ipv6_mld_join

Signed-off-by: Tomasz Bursztyka <tomasz.bursztyka@linux.intel.com>
2024-03-01 15:33:53 +01:00
Tomasz Bursztyka
6d718ed480 net/mgmt: Trivial debug output fix about layer
Net MGMT uses layer identifiers that are meaningful only for itself, but
for users it requires a trivial operation to show the real layer value.

Signed-off-by: Tomasz Bursztyka <tomasz.bursztyka@linux.intel.com>
2024-03-01 15:33:53 +01:00
Tomasz Bursztyka
48216eff76 net/config: Initialize and add the net mgmt callback at the right time
Net MGMT mask should be fully configured first, prior to be used to
initialize and add the callback.

Signed-off-by: Tomasz Bursztyka <tomasz.bursztyka@linux.intel.com>
2024-03-01 15:33:53 +01:00
Tomasz Bursztyka
4d48f066a1 net/shell: Fixing a trivial error code
As for adding an ipv6 address, removing one should return the same error
code when the network interface is not found.

Signed-off-by: Tomasz Bursztyka <tomasz.bursztyka@linux.intel.com>
2024-03-01 15:33:53 +01:00
Tomasz Bursztyka
366402a0c7 net/shell: Net shell has no mandatory support for IPv6 MLD
It's an optional support, and it should not select it by default.
Improving information message in case such support is disabled.

Signed-off-by: Tomasz Bursztyka <tomasz.bursztyka@linux.intel.com>
2024-03-01 15:33:53 +01:00
Tomasz Bursztyka
af85c8a11d drivers/ieee802154: Use net_pkt API for reading data on upipe driver
Some legacy left overs.
Just simplifying how to read data into a net_pkt.

Signed-off-by: Tomasz Bursztyka <tomasz.bursztyka@linux.intel.com>
2024-03-01 15:33:53 +01:00
Tomasz Bursztyka
f2a1a519b4 net/trickle: Rearrange net_trickle structure for better alignement
Prior to this, 8 bytes were implicitely used for alignement. Which could
be fully avoided. Now no bytes are lost.

Signed-off-by: Tomasz Bursztyka <tomasz.bursztyka@linux.intel.com>
2024-03-01 15:33:53 +01:00
Mads Winther-Jensen
7310a42f92 Blutooth: controller: Implement ISO test mode for sync receiver
* Implement LL/IST/SNC/BV-01-C ISO Test Receive
* Refactor data structure for common code between CIS and BIS

Signed-off-by: Mads Winther-Jensen <mdwt@demant.com>
2024-03-01 15:29:36 +01:00
Emil Gydesen
0051731a41 samples: Bluetooth: Few fixups for USB data for broadcast audio sink
This commit does several but minor changes to the USB handling of
the broadcast audio sink, such as improving logging, removing a few
unncessary pieces of code and some minor performance improvements.

It removes some uses of the ring buffers, which effectively clears
up around 30KB of RAM, while also reducing how much memory is being
copied, improving performance.

Some of this removes the existing code for partial support for
stereo, but that code did not work in the first place. Proper stereo
support will be added in a later commit.

Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
2024-03-01 14:12:10 +01:00
Pieter De Gendt
d2aaa65c14 samples: ipc: openamp_rsc_table: Add shell backend
Add an ipc shell to the open-amp resource table sample.

Signed-off-by: Pieter De Gendt <pieter.degendt@basalte.be>
2024-03-01 14:10:24 +01:00
Pieter De Gendt
df7750f63a shell: backends: Add RPMsg shell backend
Introduce a backend for the Shell subsystem using a RPMsg endpoint.

This is useful for tooling & testing a remote processor from linux.

Signed-off-by: Pieter De Gendt <pieter.degendt@basalte.be>
2024-03-01 14:10:24 +01:00
Carlo Caione
afa65e4bbe tests: kernel/cache: Do not invd the whole cache
That is dangerous and a big no-no. Remove it.

Signed-off-by: Carlo Caione <ccaione@baylibre.com>
2024-03-01 14:08:34 +01:00
Pieter De Gendt
6c273f598f doc: services: serialization: Add Nanopb entry
Move part of the Nanopb sample documentation to a serialization entry
and add information on how to configure proto files.

Signed-off-by: Pieter De Gendt <pieter.degendt@basalte.be>
2024-03-01 10:21:34 +00:00
Pieter De Gendt
44e8123da3 samples: modules: nanopb: Demonstrate skipping fields with Kconfig
Extend the nanopb sample with a Kconfig option to optionally include
a field in a protobuf message.

Signed-off-by: Pieter De Gendt <pieter.degendt@basalte.be>
2024-03-01 10:21:34 +00:00
Pieter De Gendt
ad242b9db8 samples: modules: nanopb: Showcase configuring options
The latest version of nanopb allows for using kconfig symbols in files
with an "options.in" extension.

Signed-off-by: Pieter De Gendt <pieter.degendt@basalte.be>
2024-03-01 10:21:34 +00:00
Pieter De Gendt
a3c430a01d manifest: optional: Update nanopb
Upmerge to latest nanopb revision

Signed-off-by: Pieter De Gendt <pieter.degendt@basalte.be>
2024-03-01 10:21:34 +00:00
Krzysztof Chruściński
466084bd8c dts: bindings: spi: Add memory-region to nrf-spis
Add memory-region to nordic,nrf-spis binding. This commit aligns SPIS
shim to utilize memory-region property. This optional property enables
user to specify placement of dma buffers in memory region. It is done
by assigning to memory-region property, phandle to node with
zephyr,memory-region and mimo-sram compatible.

When memory-region property is not specified for given device, buffer
is placed in default RAM region with other data.

Signed-off-by: Krzysztof Chruściński <krzysztof.chruscinski@nordicsemi.no>
2024-03-01 09:04:03 +01:00
Greter Raffael
1109027c55 drivers: display: ssd1306: Cleanup
- Removed unused variables from the data struct
- Set all members of capability struct in `ssd1306_get_capabilities`
  instead of zeroing it. This has the same effect but saves some bytes.
- Removed empty log

Signed-off-by: Greter Raffael <rgreter@baumer.com>
2024-03-01 09:02:22 +01:00
Greter Raffael
cbec4753e1 drivers: display: ssd1306: Invert colors at runtime
This allows to invert the display at runtime using the function
`ssd1306_set_pixel_format`. The current format is stored in the data
struct.

Also adjusted `ssd1306_get_capabilities` to return both supported
formats and the current one.

From the ssd1306 doc: 'In normal display a RAM data of 1 indicates an
"ON" pixel while in inverse display a RAM data of 0 indicates an "ON"
pixel.' Thus `PIXEL_FORMAT_MONO01 == SSD1306_SET_NORMAL_DISPLAY`.

Signed-off-by: Greter Raffael <rgreter@baumer.com>
2024-03-01 09:02:22 +01:00
Agata Figiel
19610233e2 Bluetooth: Tester: Add TMAP tests support
Adding support for TMAP tests.

Signed-off-by: Agata Figiel <agata.figiel@codecoup.pl>
2024-03-01 09:01:37 +01:00
Henrik Brix Andersen
ff61a38436 doc: releases: migration guide: 3.7: removal of deprecated CAN DTS props
Mention removal of deprecated CAN controller devicetree properties.

Signed-off-by: Henrik Brix Andersen <hebad@vestas.com>
2024-03-01 09:00:49 +01:00
Henrik Brix Andersen
0c13f3888d dts: bindings: can: remove deprecated properties for initial timing
Remove the deprecated properties for setting the initial timing parameters
of a CAN controller.

Signed-off-by: Henrik Brix Andersen <hebad@vestas.com>
2024-03-01 09:00:49 +01:00
Volodymyr Shymanskyy
77fc3eaf06 drivers: ethernet: w5500: Add link status detection
Implemented link status detection using the W5500 built-in registers.
Added periodic link status polling, configurable via Kconfig.
Speeds up DHCPv4 from 9 seconds at best, to ~2 seconds after power-up.

Signed-off-by: Volodymyr Shymanskyy <vshymanskyi@gmail.com>
2024-03-01 08:59:31 +01:00
Maximilian Deubel
487a14c046 drivers: sensor: adxl367: fix trigger support
The adxl367_trigger.c file was missing a DT_COMPAT definition,
which resulted in the driver config structs being misaligned
between the driver source files. This is fixed here.

Signed-off-by: Maximilian Deubel <maximilian.deubel@nordicsemi.no>
2024-03-01 08:58:50 +01:00
Dawid Niedzwiecki
424dffaf3b ec_host_cmd: shi_ite: add missing include
Add a missing include with ITE registers definitions.

Signed-off-by: Dawid Niedzwiecki <dawidn@google.com>
2024-03-01 08:56:09 +01:00
Ioannis Karachalios
0abba58953 drivers: sensor: HS300x DF Command Update
By default, the sensor should be factory-programmed to operate
in Sleep Mode. A Measurement Request (MR) command is required
to exit the sensor from its sleep state. An MR command should
consist of the 7-bit address followed by an eighth bit set to
0 (write). However, many I2C controllers cannot generate merely
the address byte with no data. To overcome this limitation the
MR command should be followed by a dummy byte (zero value).

Signed-off-by: Ioannis Karachalios <ioannis.karachalios.px@renesas.com>
2024-02-29 11:54:21 +00:00
Maochen Wang
eda7dd1460 net: zperf: Fix wrong throughput in long-duration traffic test
The zperf received or sent bytes length and duration are in 32bits,
if running long-duration zperf test more than 20min, the value will
overflow, and the test result is wrong. Change it to 64bits can fix
this issue.

Signed-off-by: Maochen Wang <maochen.wang@nxp.com>
2024-02-29 11:54:07 +00:00
Maochen Wang
e7444dcf42 net: zperf: Fix TOS option not working in zperf
When the zperf command is called with '-S' option which means IP_TOS
for IPv4 and IPV6_TCLASS for IPv6, an error is printed and the
setting does not work. The socket option handling was changed by
commit 77e522a5a243('net: context: Refactor option setters'), but the
callers of option setters were not changed. This causes the IP_TOS
or IPV6_TCLASS option failed to set. The fix is to use uint8_t to
store the value of the -S option.

Signed-off-by: Maochen Wang <maochen.wang@nxp.com>
2024-02-29 11:53:57 +00:00
Ruibin Chang
19a23d5190 bbram: fix bbram dead code issue
Clear the whole 192 bytes of bbram, before writing the magic value to it.
test pass "west twister -cviG -T tests/drivers/bbram/".

Fixes #69119

Signed-off-by: Ruibin Chang <Ruibin.Chang@ite.com.tw>
2024-02-29 11:53:45 +00:00
Lyle Zhu
b7b5cf4053 Bluetooth: Host: SDP: Fix endianness issue of tid
The transfer byte order of SDP is big-endian.

The transaction ID(tid) should be big-endian before
sending.

And tid needs to be converted to CPU byte order
after receiving.

Signed-off-by: Lyle Zhu <lyle.zhu@nxp.com>
2024-02-29 11:53:35 +00:00
Fabio Baltieri
3538335f5a input: add a pat912x driver
Add an initial input driver for the PixArt PAT9125EL, just core
functionalities for now, will add more configuration properties at a
later stage.

Signed-off-by: Fabio Baltieri <fabiobaltieri@google.com>
2024-02-29 11:53:20 +00:00
Fabio Baltieri
38b63e9e77 dts: bindings: vendor-prefixes: add pixart prefix
Add pixart binding prefix.

Signed-off-by: Fabio Baltieri <fabiobaltieri@google.com>
2024-02-29 11:53:20 +00:00
Tom Burdick
01c5b8d6ac i2c: Last message in transfer implies STOP
The last message in an i2c_transfer msg array implies a STOP. This
documents the expected behavior of the i2c_transfer command a bit more
in that every i2c_transfer() call is expected to leave the bus in a
useful state for the next subsequent call to i2c_transfer().

Signed-off-by: Tom Burdick <thomas.burdick@intel.com>
2024-02-29 11:53:12 +00:00
Phi Bang Nguyen
8967236756 drivers: video: sw_generator: Fix stream_start return value
The stream_start() callback needs to return 0 for success. However, to
indicate work has been successfully scheduled, k_work_schedule() could
return either 0 (already scheduled) or 1 (newly scheduled).

Due to this issue, the sw_generator could not start streaming. Fix it.

Signed-off-by: Phi Bang Nguyen <phibang.nguyen@nxp.com>
2024-02-29 11:52:58 +00:00
Phi Bang Nguyen
e1ade02b2b drivers: video: sw_generator: Run clang-format
Run clang-format on the file to fix indentation before making any changes

Signed-off-by: Phi Bang Nguyen <phibang.nguyen@nxp.com>
2024-02-29 11:52:58 +00:00
Daniel DeGrasse
3d7b058358 include: mipi_dbi: fix initialization statement for SPI operation field
SPI configuration "operation" field is a bitmask of several
configuration settings for the SPI interface when using SPI controllers
with the MIPI DBI API. The initialization statement for this
configuration structure had a comma after the "duplex" property where a
binary or should be present. correct this issue

Signed-off-by: Daniel DeGrasse <daniel.degrasse@nxp.com>
2024-02-29 11:52:42 +00:00
Mike J. Chen
f55d281536 drivers: i3c: i3c_mcux: a number of improvements and bug fixes
The main improvement is that mcux_i3c_transfer() and
mcux_i3c_i2c_api_transfer() will try much harder to not return an error
that could be caused by the bus being busy. The bus could be busy because
of IBI handling, especially if there are multiple I3C devices all raising
IBI that need to be processed, which can involve a number of context
switches and delays and take considerable time such that an application
initiated I3C transfer request might have returned busy. Replaced the code
that polled for idle state with a timeout with an infinite loop on a
condvar. The condvar is broadcast to at the end of every stop, which should
be when the bus goes idle.

Details of other changes:

* Remove ibi_lock, which seemed not useful. Use the single lock (switched
  from semaphore to mutex so it can be released by condvar) for both IBI
  handling and application requests.

* Remove code that disables i3c controller interrupts during transfers.
  Since the only interrupt is SLVSTART, and that just posts a work, it
  didn't seem necessary to disable that interrupt.

* Don't clear SLVSTART interrupt in mcux_i3c_status_clear_all(), to prevent
  any application transfers from accidentally clearing the SLVSTART
  interrupt or the handling of one IBI clearing the START initiated by
  another I3C device immeidately as the other one finishes.
  The only clearing of SLVSTART is in the isr.

* Add back a wait in mcux_i3c_request_auto_ibi(), otherwise the ibitype
  could be 0 if the processor is faster than the auto ibi handling.
  An earlier change removed a wait for MCTRLDONE, which isn't
  always set when AUTO_IBI is requested, but that could mean we try to
  read the ibitype before it's ready. Waiting for IBIWON instead should be
  correct and better, since the AUTO_IBI should result in IBIWON status bit
  being set (and MCTRLDONE being set would not guarantee that IBIWON was
  set).

* Change mcux_i3c_request_emit_stop() to still wait for idle if requested,
  even if the STOP wasn't actually issued, and add the release of the new
  condvar

* Change mcux_i3c_do_one_xfer_read() to handle the IBI use case differently
  than the regular application requested transfer case. In the application
  requested transfer case, the rx_len is known and set in RDTERM, so we
  could check for the COMPLETE status bit, but for IBI transfers, we
  just do a read to the payload buffer without knowing how many bytes
  the target may send us so never get a COMPLETE. Rather than check for a
  COMPLETE bit that might never occur, just have both cases read until we
  either read all requested bytes or we get a timeout error. But for the
  timeout error, if it's IBI and non-zero bytes were received, return
  the bytes received instead of an error.

* Change mcux_i3c_do_one_xfer() to return the error returned by
  mcux_i3c_do_one_xfer_read/write().

* Remove spurious return -EIO from end of mcux_i3c_do_daa()

* Change mcux_i3c_ibi_enable() to restore SLVSTART on error, and
  add some LOG_ERR() messages for error cases. Also add check to
  make sure idx is valid since there is a limit to how many IBI
  this controller can support.

* Change mcux_i3c_ibi_disable() to always reenable SLVSTART interrupt,
  even if the CCC to tell the target to disable IBI events fails.

* Change mcux_i3c_isr() to reenable SLVSTART interrupt if the
  work_enqueue() fails.

Signed-off-by: Mike J. Chen <mjchen@google.com>
2024-02-29 11:52:34 +00:00
Christopher Friedt
d8072a9492 tests: posix: add a compile-and-run-only test for syslog
Ensure that we have code coverage for syslog and that it
can compiles and run with regular tests.

Signed-off-by: Christopher Friedt <cfriedt@meta.com>
2024-02-29 02:45:01 -05:00
Christopher Friedt
3593720080 posix: syslog: add support for syslog
This is just a simple wrapper around Zephyr's native log api.

Note: the standard LOG_ERR syslog priority does conflict with
Zephyr's LOG_ERR() macro. This will need to be worked-around on
a case-by-case basis.

Signed-off-by: Christopher Friedt <cfriedt@meta.com>
2024-02-29 02:45:01 -05:00
Yves Vandervennet
4f34a410fa scripts: ci: check_compliance: fix split on ":" for Windows
The method get_kconfig_dts() relies on str's split() to split
lines into fields separated by ':'. The second field is an
absolute path to a file.
On Windows, an absolute path includes a drive's letter followed
by ':' which breaks the current code.
On Linux, although rare, a file or directory name may also include
':', which would also break the code.

The fix is to constraint the number of splits to 1.
The code then becomes:

 _,b = line.split(":", 1)

Signed-off-by: Yves Vandervennet <yves.vandervennet@nxp.com>
2024-02-28 22:11:16 -05:00
Jordan Yates
bb27f0578b bluetooth: hci: spi: 0xFF is a valid payload length
A payload size of 0xFF is valid and should not be a reason to keep
looping for more headers. The complete reqiurement is now:
```
header_slave[STATUS_HEADER_READY] == READY_NOW &&
header_slave[STATUS_HEADER_TOREAD] > 0
```
This fixes events being dropped when the payload size is 255.

Signed-off-by: Jordan Yates <jordan.yates@data61.csiro.au>
2024-02-28 19:47:55 -06:00
Pieter De Gendt
408babb00f tests: net: iface: Test foreach multicast helper functions
Add test cases for IPv4/IPv6 foreach functions that iterate all
multicast addresses assigned to an interface.

Signed-off-by: Pieter De Gendt <pieter.degendt@basalte.be>
2024-02-28 13:18:06 -06:00
Pieter De Gendt
d9d710e6d3 net: ip: Add iface IPv4/IPv6 multicast foreach handlers
Add helper functions to iterate IPv4/IPv6 multicast addresses.

Signed-off-by: Pieter De Gendt <pieter.degendt@basalte.be>
2024-02-28 13:18:06 -06:00