Commit graph

99,250 commits

Author SHA1 Message Date
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
Daniel Leung
7c80746bc6 tests: kernel: use TC_END_REPORT for faults
Use TC_END_REPORT() to report "PROJECT EXECUTION FAILED"
instead of a call to printk() for ZTEST enabled tests. as
this prints the failed message as well as the RunID (and
whatever will be added in future).

Signed-off-by: Daniel Leung <daniel.leung@intel.com>
2024-02-28 13:39:15 -05:00
Jukka Rissanen
4323bfe71c doc: net: Update NAT options for Internet connectivity
The host NAT options for QEMU/native_sim Internet connectivity
needs updating.

Signed-off-by: Jukka Rissanen <jukka.rissanen@nordicsemi.no>
2024-02-28 18:04:25 +00:00
Fin Maaß
bcf90edd1f net: config: use dhcpv4 option for sntp
Allow the use of the NTP server address, set by
dhcpv4 option, by the net_init_clock_via_sntp function.

Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
2024-02-28 18:03:53 +00:00
Fin Maaß
3be6557078 net: dhcpv4: set sntp ip via option
Adds the option to set the ntp address ip via
dhcpv4 option 42 (Network Time Protocol Servers).

Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
2024-02-28 18:03:53 +00:00
Fin Maaß
2140a4af6a net: lib: sntp_simple: add a function to use with ip address
This adds a function to use sntp_simple with a
ip address directly.

Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
2024-02-28 18:03:53 +00:00
Fin Maaß
78813fa3ad net: ip: add function to set default port
This adds a function, to set the default port
of a sockaddr, if the port had not been set.

Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
2024-02-28 18:03:53 +00:00
Robert Lubos
b920793e9b tests: net: sockets: tls: Add test verifying send() after close
Add test case verifying that send() returns an error when called after
TLS session has been closed.

Signed-off-by: Robert Lubos <robert.lubos@nordicsemi.no>
2024-02-28 18:03:40 +00:00
Robert Lubos
dc52b20705 net: sockets: tls: Return an error on send() after session is closed
It was an overlook to return 0 on TLS send() call, after detecting that
TLS session has been closed by peer, such a behavior is only valid for
recv(). Instead, an error should be returned.

Signed-off-by: Robert Lubos <robert.lubos@nordicsemi.no>
2024-02-28 18:03:40 +00:00
Marcin Niestroj
a6b06004c2 drivers: wifi: esp_at: handle commas in SSIDs during scan and status
SSIDs can contains commas (,) when receiving scan results (+CWLAP) or
status (+CWJAP) over AT command from ESP-AT chip. This is in conflict with
modem subsystem argument parsing, which separates arguments automatically
whenever comma is encountered.

Use a direct modem command parsing, so that commas within quoted strings
are taken into account to be part of that string, instead of being treated
as delimiter.

This solves `wifi scan` and `wifi status` Zephyr shell commands output, for
networks containing commas (like "My_2,4GHz_AP") as part of SSID.

Signed-off-by: Marcin Niestroj <m.niestroj@emb.dev>
2024-02-28 18:02:44 +00:00
Marcin Niestroj
de30757d21 drivers: wifi: esp_at: escape SSID and PSK
According to [1], SSID and PSK need to be escaped:

  Escape character syntax is needed if SSID or password contains any
  special characters, such as , or " or \

Implement character escaping to fix connection attempt to WiFi APs
containing special characters as part of SSID, like "My_2,4GHz_AP".
Increase "connect command" buffer length to handle worst-case scenario of
all the SSID and PSK characters being special characters.

[1] https://docs.espressif.com/projects/esp-at/en/release-v2.4.0.0/esp32/AT_Command_Set/Wi-Fi_AT_Commands.html#id6

Signed-off-by: Marcin Niestroj <m.niestroj@emb.dev>
2024-02-28 18:02:44 +00:00
Jukka Rissanen
28a46c0f60 net: http: client: Return error if waiting timeout
Return error to the caller if no data was received or there
was some other error. Earlier we did not check the error
condition properly.

Signed-off-by: Jukka Rissanen <jukka.rissanen@nordicsemi.no>
2024-02-28 18:02:34 +00:00
Emil Gydesen
9d90e65167 Bluetooth: BAP: Shell: Add bcode support for cmd_sync_broadcast
The cmd_sync_broadcast command now also takes an optional broadcast
code, to support syncing with encrypted broadcasts.

Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
2024-02-28 18:02:27 +00:00
Tomi Fontanilles
c7c4c80fff modem: pipe: add warning to synchronous pipe open/close functions
This might be useful to those not familiar with how they work.

Signed-off-by: Tomi Fontanilles <tomi.fontanilles@nordicsemi.no>
2024-02-28 18:02:17 +00:00