Commit graph

17,121 commits

Author SHA1 Message Date
Mathieu Choplain
f27323a45d arch: arm: cortex_m: pm_s2ram: add support for all architectures
Extend the ARM M-profile suspend-to-RAM implementation to be compatible
with all versions of the M-profile supported by Zephyr: ARMv6-M, ARMv7-M,
and ARMv8-M Baseline.

Signed-off-by: Mathieu Choplain <mathieu.choplain@st.com>
2024-11-16 14:00:44 -05:00
Mathieu Choplain
7dd7dffe33 arch: arm: cortex_m: pm_s2ram: ignore xPSR
Remove all xPSR-related registers from struct __cpu_context, and the
associated save/restore code in S2RAM code, as they are not needed:

* EPSR and IPSR are read-only - they cannot be "restored"
* Bits N, V, Z, C, V, Q, and GE (if DSP Extension is implemented) of APSR
  could be restored, but this is not needed as the AAPCS indicates these
  bits to be "undefined on entry to or return from a public interface"

Signed-off-by: Mathieu Choplain <mathieu.choplain@st.com>
2024-11-16 14:00:44 -05:00
Thomas Stranger
d0816a1a60 drivers: w1: updates to reflect analog maxim acquisition
Links and the manufacturer name are updated from maxim to analog
for the 1-wire subsystem and the related ds18b20 sensor.

After the acquisition of Maxim Integrated the documentation
of these devices has been moved to the analog.com website.
Redirects exist, so they are not broken yet,
but we should not rely on that.

Signed-off-by: Thomas Stranger <thomas.stranger@outlook.com>
2024-11-16 13:51:38 -05:00
Jukka Rissanen
6c95daf0ae net: dns: Bind DNS server to a network interface
Allow user to specify a network interface in the DNS server
list. User can append "%" and network interface name to the
DNS server to use this. If the network interface is mentioned
in the server list, then the DNS queries are sent via this network
interface.
For example setting the interfaces like this:
   192.0.2.2%eth1
   [2001:db8::2]:5353%ppp0

would cause the DNS queries to sent to 192.0.2.1 via eth1 in the first
example, and to 2001:db8::2 via ppp0 in the second example.

Signed-off-by: Jukka Rissanen <jukka.rissanen@nordicsemi.no>
2024-11-16 13:51:27 -05:00
Emil Gydesen
7e7e1aa719 Bluetooth: BAP: Fix CONFIG_BT_BAP_BASS_MAX_SUBGROUPS include issue
There were a few cases where CONFIG_BT_BAP_BASS_MAX_SUBGROUPS was
used in structs in the public header files. Unfortunately using
a Kconfig for an array size will cause include issues if the
file is included without the Kconfig being available.

For now add and use a new #define value that will be 0 if
CONFIG_BT_BAP_BASS_MAX_SUBGROUPS is not defined.

Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
2024-11-16 13:50:25 -05:00
Jukka Rissanen
8f49925a0f tests: posix: headers: net: Add various IPv6 address check macros
Add these Posix specified IPv6 address checking macros

IN6_IS_ADDR_UNSPECIFIED
IN6_IS_ADDR_LOOPBACK
IN6_IS_ADDR_MULTICAST
IN6_IS_ADDR_LINKLOCAL
IN6_IS_ADDR_SITELOCAL
IN6_IS_ADDR_V4MAPPED
IN6_IS_ADDR_MC_NODELOCAL
IN6_IS_ADDR_MC_LINKLOCAL
IN6_IS_ADDR_MC_SITELOCAL
IN6_IS_ADDR_MC_ORGLOCAL
IN6_IS_ADDR_MC_GLOBAL

and tests for them.

Signed-off-by: Jukka Rissanen <jukka.rissanen@nordicsemi.no>
2024-11-16 13:44:35 -05:00
Jukka Rissanen
606eeed8c9 tests: posix: headers: net: Add INADDR_BROADCAST definition
Add INADDR_BROADCAST definition and a test for it.

Signed-off-by: Jukka Rissanen <jukka.rissanen@nordicsemi.no>
2024-11-16 13:44:35 -05:00
Jukka Rissanen
96795f0b6c tests: posix: headers: net: Add IPv6 join/leave group
The IPV6_JOIN/LEAVE_GROUP corresponds to IPV6_ADD/DROP_MEMBERSHIP
definitions so define the former and add tests for them.

Signed-off-by: Jukka Rissanen <jukka.rissanen@nordicsemi.no>
2024-11-16 13:44:35 -05:00
James Roy
9e5d4084b1 style: Inconsistent macro name changed
Fix incorrect header file pre-macro name in
'include/zephyr/devicetree.h'.

Signed-off-by: James Roy <rruuaanng@outlook.com>
2024-11-16 13:44:12 -05:00
Fabio Baltieri
6342eff58b led: add a struct led_dt_spec and some _dt wrapper APIs
Add a struct led_dt_spec to hold an LED device and index pointer, some
initializer and wrapper APIs.

This allows simpler LED usage, such as:

static const struct led_dt_spec led = LED_DT_SPEC_GET(DT_NODELABEL(led0));
led_on_dt(&led);
led_off_dt(&led);

Signed-off-by: Fabio Baltieri <fabiobaltieri@google.com>
2024-11-16 13:36:27 -05:00
Martin Stumpf
2bdffc6818 display: add frame_incomplete to display_buffer_descriptor
Introduces support for double-buffered/latched displays.
Currently, every write has to be presented to the user immediately,
which negates the advantage of latched displays to prevent frame tearing.

Now, GUI managers can indicate whether the current `display_write` call
is the last call of the frame or not, allowing displays to group writes
to a single present.

Signed-off-by: Martin Stumpf <finomnis@gmail.com>
2024-11-16 13:35:17 -05:00
Seppo Takalo
b3f3bce23e net: lib: coap_client: Add API to cancel specific request
Add a new API to cancel just one, or mathing requests,
instead of cancelling all ongoing requests.

Signed-off-by: Seppo Takalo <seppo.takalo@nordicsemi.no>
2024-11-16 13:33:28 -05:00
Daniel DeGrasse
0be5dcd25d arch: arm: add MPU definitions for all flash and SRAM region sizes
Add definitions for all possible flash and SRAM region sizes for ARMv7
MPU. Also, correct some of the SRAM size checks to use <= instead of ==,
to be consistent with the remainder of the file

Signed-off-by: Daniel DeGrasse <daniel.degrasse@nxp.com>
2024-11-16 13:33:15 -05:00
TOKITA Hiroshi
9e51f1a754 drivers: sensor: mmc56x3: Fixed an error in include-guard
Fixed definitions duplicated with those in
`include/zephyr/drivers/sensor/tsl2591.h`.

Signed-off-by: TOKITA Hiroshi <tokita.hiroshi@gmail.com>
2024-11-13 19:11:25 -08:00
TOKITA Hiroshi
241c7b3fb7 arch: arc: Fixed an error in include-guard
Fixed definitions duplicated with those in
`include/zephyr/arch/xtensa/arch_inlines.h`.

Signed-off-by: TOKITA Hiroshi <tokita.hiroshi@gmail.com>
2024-11-13 19:11:25 -08:00
Yong Cong Sin
de3a845612 arch: riscv: add macro to access hardware registers
Add macros to read / write hardware registers.

Signed-off-by: Yong Cong Sin <ycsin@meta.com>
Signed-off-by: Yong Cong Sin <yongcong.sin@gmail.com>
2024-11-13 19:08:54 -08:00
Mahesh Mahadevan
7498329d59 random: remove deprecated rand32.h
Header file was kept for 2 releases, time to remove it.

Signed-off-by: Mahesh Mahadevan <mahesh.mahadevan@nxp.com>
2024-11-13 19:08:11 -08:00
Jamie McCrae
996b8a63e7 mgmt: mcumgr: Remove deprecated function smp_add_cmd_ret
Removes a function that was deprecated in Zephyr 3.4

Signed-off-by: Jamie McCrae <jamie.mccrae@nordicsemi.no>
2024-11-13 09:08:18 -06:00
Jordan Yates
35295f3663 zbus: observervation -> observation
Fix a typo in the doxygen and service documentation.

Signed-off-by: Jordan Yates <jordan@embeint.com>
2024-11-12 12:15:55 -06:00
Jukka Rissanen
04d8b7c595 net: sockets: Cleanup socket properly if POSIX API is enabled
The sock_obj_core_dealloc() was not called if close() is called
instead of zsock_close(). This happens if POSIX API is enabled.

Fix this by calling zvfs_close() from zsock_close() and then
pass the socket number to zsock_close_ctx() so that the cleanup
can be done properly.

Reported-by: Andreas Ålgård <aal@ixys.no>
Signed-off-by: Jukka Rissanen <jukka.rissanen@nordicsemi.no>
2024-11-08 15:56:39 -06:00
Franciszek Pindel
9c94ee5346 include/zephyr: Use ROMABLE_REGION for LMA in .last_ram_section
Currently RAMABLE_REGION is used for both virtual address (VMA)
and a load address (LMA). It results in wrong LMA for some platforms.
This commits adds using ROMABLE_REGION for LMA.

Signed-off-by: Franciszek Pindel <fpindel@antmicro.com>
2024-11-08 13:57:42 -06:00
Luca Burelli
50ab6953c2 linker: llext: avoid modifying current address in linker script snippet
The linker script snippet that places the llext_no_syscall_impl section
has the unfortunate side effect of overwriting the current linker
address. This can lead to unexpected behavior of the caller script.

Saving the current address before defining the section and restoring it
afterwards avoids this issue.

Fixes #81136.

Signed-off-by: Luca Burelli <l.burelli@arduino.cc>
2024-11-08 13:56:57 -06:00
Marcus Penate
72534b83e4 net: lib: sntp_simple: Handle responses from previous iterations
SNTP simple runs request iterations with exponential backoff.
If the net interface is a slower connection (ie. CAT M1 modems)
then the request will be sent but the response may take time to
be received, thus causing a timeout and another request to be sent.
Because of the nature of UDP and the fact that the same socket
(source IP/port combo) is being used for both requests, a delayed
response to the first request can be received as the response to the
second request, causing -EINVAL to be returned when the timestamps
mismatch (see subsys/net/lib/sntp/sntp.c). The solution provided
retries receiving the response when the timestamp is mismatched
(without sending an additional request).

Signed-off-by: Marcus Penate <marcus.penate@ellenbytech.com>
2024-11-08 11:37:02 -06:00
Daniel Leung
eb9fc642b9 xtensa: remove mem_domain excess padding
The ptables field in arch_mem_domain for Xtensa has excessive
padding as it is incorrectly marked with needing page size
alignment. This is simply a pointer and not the actual page
table so there is no need for that alignment. So remove it.

Fixes #71896

Signed-off-by: Daniel Leung <daniel.leung@intel.com>
2024-11-07 11:06:23 -08:00
Arif Balik
10fa1eab50 drivers: clock: fix STM32_PERIPH_BUS_MIN for STM32U0
`STM32_PERIPH_BUS_MIN` is not the minimum bus address in `stm32u0_clock.h`

Signed-off-by: Arif Balik <arifbalik@outlook.com>
2024-11-07 08:34:34 -06:00
Andries Kruithof
5a03d3f51c Bluetooth: Audio: Fix description for broadcast_code callback
Small mismatch between the actual procedure name and the name as
described in the doxygen documentation for the bap set broadcast
code procedure

Signed-off-by: Andries Kruithof <andries.kruithof@nordicsemi.no>
2024-11-07 08:32:04 -06:00
Johan Hedberg
b710167f1b Bluetooth: drivers: Rename IPM to IPC
This bus type was originally created for what's today the ipc.c HCI driver.
Since this type hasn't yet been synced with BlueZ, rename it for
consistency, however leave the old define to not break backwards
compatibility with existing DT bindings (there are several more that use
"ipm" than ipc.c).

Signed-off-by: Johan Hedberg <johan.hedberg@silabs.com>
2024-11-06 14:42:19 -06:00
Johan Hedberg
af3dac2131 Bluetooth: drivers: Sync bus types with BlueZ
The authoritative source of these values is BlueZ:

https://git.kernel.org/pub/scm/bluetooth/bluez.git/tree/lib/hci.h#n38

Update our values with the above. The IPM definiton doesn't exist in
BlueZ, but should be added there to make sure we don't get out of sync
again.

Signed-off-by: Johan Hedberg <johan.hedberg@silabs.com>
2024-11-06 14:42:19 -06:00
Daniel DeGrasse
6023d6a142 arch: common: fix copy for ramfunc region during XIP init
ramfunc region is copied into RAM from FLASH region during XIP init. We
copy from the loadaddr of the region, and were previously loading to the
symbol __ramfunc_start. This is incorrect when using an MPU with
alignment requirements, as the __ramfunc_start symbol may have padding
placed before it in the region. The __ramfunc_start symbol still needs
to be aligned in order to be used by the MPU though, so define a new
symbol __ramfunc_region_start, and use that symbol when copying the
__ramfunc region from FLASH to RAM.

Fixes #75296

Signed-off-by: Daniel DeGrasse <daniel.degrasse@nxp.com>
2024-11-06 10:19:08 -08:00
Ryan McClelland
952daca695 debug: symtab: fix ignored type qualifiers on func return type
const is ignored on the function return type. A warning is reported with
-Wignored-qualifers. Remove the ignored const.

Signed-off-by: Ryan McClelland <ryanmcclelland@meta.com>
2024-11-06 09:52:36 -08:00
Carles Cufi
94ad822a33 include: dt-bindings: regulator: nrf5x: Fix guards
Fix the include guard mismatch. Found building with clang.

Signed-off-by: Carles Cufi <carles.cufi@nordicsemi.no>
2024-11-05 13:45:46 -06:00
Duy Nguyen
0a68d492e2 dts: renesas: Separate pll p q r into child node
The new update of clock device tree make the pll p q r clock
source cannot be choose by other node
This fix add 1 new dts binding for pll out p q r out line

Signed-off-by: Duy Nguyen <duy.nguyen.xa@renesas.com>
2024-11-05 10:54:28 -06:00
Benjamin Cabé
5c9b0a5a33 drivers: comparator: fix wrong @since tag
The Comparator API was introduced in 4.0, not 3.7

Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
2024-11-04 13:43:40 -06:00
Gerard Marull-Paretas
9925ec99fd drivers: pinctrl: nrf: add flag to signal the FAST_ACTIVE1 peripherals
This patch introduces a new flag to indicate if a peripheral belongs
to FAST_ACTIVE1 domain. This way, pinctrl knows when to request the
SLOW_ACTIVE domain (where CTRLSEL multiplexer resides).

Signed-off-by: Gerard Marull-Paretas <gerard@teslabs.com>
2024-11-01 12:10:12 -05:00
Gerard Marull-Paretas
f3d29d6fd2 dts: bindings: power: add nordic,nrf-global-pd
Add binding for Global Power Domain found in nRF54Hx SoCs.

Signed-off-by: Gerard Marull-Paretas <gerard@teslabs.com>
2024-11-01 12:10:12 -05:00
Joel Hirsbrunner
8d07197d6d devicetree: Remove deprecated enum macro
Remove deprecated _ENUM_TOKEN and _ENUM_UPPER_TOKEN. These are
deprecated for over three years by now.

Signed-off-by: Joel Hirsbrunner <jhirsbrunner@baumer.com>
2024-11-01 09:55:11 -05:00
Mert Ekren
193eeaef0c drivers: pinctrl: max32: fix correct configuring drive strength
This commit fixes configuring pin drive strength in pinctrl driver.
Previously, there was a mismatch while filling pincfg and checking
pincfg drive strength field. This fix simplifies the operation and
avoids gpio driver header dependency.

Signed-off-by: Mert Ekren <mert.ekren@analog.com>
Co-Authored-By: Sadik Ozer <sadik.ozer@analog.com>
2024-10-31 14:18:38 -05:00
Seppo Takalo
e96e95b6f6 net: coap: Add API to send reset message
Add helper API to construct CoAP Reset message.

Signed-off-by: Seppo Takalo <seppo.takalo@nordicsemi.no>
2024-10-31 14:17:58 -05:00
Seppo Takalo
1890dbd637 net: lib: coap_client: Fix reset handling
Fix handling of received CoAP reset.


Signed-off-by: Seppo Takalo <seppo.takalo@nordicsemi.no>
2024-10-31 14:17:58 -05:00
Seppo Takalo
4c6dd4c7b7 net: lib: coap_client: check poll() condition before retrying CoAP msg
Refactor the CoAP retry handling into the handle_poll() function,
so that we only try to send retries if the socket reports POLLOUT.

Also move the receiving into same loop, so when poll() reports POLLIN
we recv() the message and handle it before proceeding to other sockets.

Also fix tests to handle POLLOUT flag and add support for testing
multiple clients.

Signed-off-by: Seppo Takalo <seppo.takalo@nordicsemi.no>
2024-10-31 14:17:58 -05:00
James Roy
050fa718c8 style: Inconsistent macro names changed
Fix incorrect header file pre-macro names in
'include/zephyr/shell' and 'include/zephyr/task_wdt'.

Signed-off-by: James Roy <rruuaanng@outlook.com>
2024-10-30 08:55:36 -05:00
James Roy
3c1fb41136 style: Inconsistent macro names changed
Fix incorrect header file pre-macro names in
'include/zephyr/app_memory', 'include/zephyr/display'
and 'include/zephyr/mgmt'.

Signed-off-by: James Roy <rruuaanng@outlook.com>
2024-10-30 08:55:36 -05:00
Sudan Landge
5030938b78 arm: linker: fix: incorrect __kernel_ram_start
What is changed?
arch32 related changes in linker script made in commit
ad71901490
are reverted.

Why do we need this change?
The main intention of the previous commit was to fix the
broken ci for aarch64.
There was no issue reported for aarch32 and changes were made for
consistency.
However, it looks like keeping the `__kernel_ram_start`
outside of the bss section works differently for different boards.
For fvp_baser_aemv8r arch32, _bss_start points to _rom_region_end and
__kernel_ram_start points to some region between _rom_region_start and
_rom_region_end which leads to test failure.
While for other board like v2m_musca_b1, _bss_start and
__kernel_ram_start are same.
The linker scripts might need a cleanup to avoid issues because of
these inconsistncies however, till we understand this better,
we need to revert this change.

Signed-off-by: Sudan Landge <sudan.landge@arm.com>
2024-10-29 07:08:21 -05:00
Riadh Ghaddab
46e1635773 fs: zms: multiple fixes from previous PR review
This resolves some addressed comments in this PR
https://github.com/zephyrproject-rtos/zephyr/pull/77930

It adds as well a section in the documentation about some
recommendations to increase ZMS performance.

Signed-off-by: Riadh Ghaddab <rghaddab@baylibre.com>
2024-10-29 07:07:13 -05:00
Johann Fischer
5cdabfa902 include: usb: add API version
Add API versions to all relevant USB headers.

Signed-off-by: Johann Fischer <johann.fischer@nordicsemi.no>
2024-10-28 12:17:32 -07:00
Gerard Marull-Paretas
b5a87c7aca bluetooth: audio: bap: fix Doxygen issue
Doxygen was getting confused when expanding @kconfig (verbatim block
within []).

Signed-off-by: Gerard Marull-Paretas <gerard@teslabs.com>
2024-10-28 12:16:16 -07:00
Gerard Marull-Paretas
a258ab32d1 doc: doxygen: remove rst utilities
We no longer render Doxygen content in Sphinx after the removal of
breathe, so let's remove rst related aliases from Doxyfile. Also adjust
some headers that contained rst content.

Signed-off-by: Gerard Marull-Paretas <gerard@teslabs.com>
2024-10-28 12:16:16 -07:00
Aleksander Wasaznik
5f89a6b8f1 Bluetooth: Host: Add BT_TESTING trace event for ACL pool destroy
This is needed for a test to catch a double-free.

Signed-off-by: Aleksander Wasaznik <aleksander.wasaznik@nordicsemi.no>
2024-10-26 17:13:45 +02:00
Aleksander Wasaznik
200de7c00a Bluetooth: Host: Fix bt_l2cap_chan_ops.recv -EINPROGRESS
Fix discrepancy in reference management between calls to
`bt_l2cap_chan_ops.recv` when the application returns `-EINPROGRESS`.

There are two call sites, `l2cap_chan_le_recv_sdu` and
`l2cap_chan_le_recv`, that were inconsistent.

`l2cap_chan_le_recv_sdu` moves the reference, and this patch updates
`l2cap_chan_le_recv` to do the same.

This behavior is also now documented.

This bug has existed since the introduction of this feature in
3151d26572.

Signed-off-by: Aleksander Wasaznik <aleksander.wasaznik@nordicsemi.no>
2024-10-26 17:13:45 +02:00
Ben Booher
4a8a035bd7 drivers: sensor: dacx3608: add broadcast register for synchronized output
The dacx3608 line supports a broadcast register so all configured channels
can output a singular value, simultaneously. This drastically reduces I2C
overhead when using multi-channel control. An API addition was necessary
to support a global broadcast channel number. The API addition does not
break the write_value() implementation for other DAC drivers in the repo.
This change is based on an out-of-tree driver developed internally to
handle this use case.

Alternative to the API change, could be a KConfig option or device tree
entry. Also, no support for the Broadcast channel was added to the
channel_setup() implementation - this may or may not be confusing. I
believe it makes sense to maintain explicit setup calls for each channel
intended to be configured.

Signed-off-by: Ben Booher <benbooher@pull-repo.com>
2024-10-26 03:59:35 +01:00