Adds support for this new binding with new macros, also introduces
a new PARTITION_* macro scheme which allows for using either
storage method without needing to pick one or the other, and
deprecates the previous FIXED_PARTITION_* macros
Signed-off-by: Jamie McCrae <jamie.mccrae@nordicsemi.no>
The net logging helper macros are now in a separate header.
Let's have all net users to include this new header.
Signed-off-by: Alberto Escolar Piedras <alberto.escolar.piedras@nordicsemi.no>
These macros are private to the net subsystem, let's not use them in
other subsystems.
Signed-off-by: Alberto Escolar Piedras <alberto.escolar.piedras@nordicsemi.no>
as there is now a 1:1 relationship beween
struct ethernet_context and struct net_if
we can simplify the logic here,.
Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
use `NET_IF_OPER_UP` to check if the iface is
already up, this is also the state that corespondes with
NET_EVENT_IF_UP.
Also move `net_if_foreach(iface_cb, NULL);`
after `net_mgmt_add_event_callback()`, so we won't
miss any up event.
Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
Fix error-checking bug in Zephyr `coredump_shell.c` for
`coredump_cmd(COREDUMP_CMD_COPY_STORED_DUMP, ...)`. The function
returns the number of bytes copied (≥ 0) on success and a negative
errno on failure, but the existing checks used `ret != 0` which
incorrectly treated a successful non-zero byte count as an error.
This bug prevented the coredump printing shell commands from working.
signed-off-by: Glenn Andrews <andrewsglenn@meta.com>
Combine toolchains provided by the host into one variant. This includes
both gcc and llvm installation typically coming from the distribution
(on Linux).
Both gcc and llvm are now part of the 'host' variant, the default is the
gnu compiler, so setting
ZEPHYR_TOOLCHAIN_VARIANT=host
Will select the gnu compiler. To select llvm or any other compuler
provided in this variant, use the follwoing format:
ZEPHYR_TOOLCHAIN_VARIANT=<variant>/<compiler>
The following will select llvm:
ZEPHYR_TOOLCHAIN_VARIANT=host/llvm
Although gnu is the default, it can also be selected using the above
syntax:
ZEPHYR_TOOLCHAIN_VARIANT=host/gnu
This commit removes the llvm variant for now, it should be deperecated
in another commit to follow.
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
Fix `error: label followed by a declaration is a C23 extension`
warning.
Issue introduced 0d3883516f
Signed-off-by: Alberto Escolar Piedras <alberto.escolar.piedras@nordicsemi.no>
The attach and detach flow was previously scattered across bus event
handlers and class code, causing duplicated enumeration and class
probe/remove logic. Root-device state was also manipulated directly in
the host context, which made lifecycle handling implicit and limited
the ability to support devices behind a hub.
This update introduces common helpers for device attach and detach and
replaces direct root access with simple accessor functions. By unifying
enumeration and teardown into a single path, the control flow becomes
clearer and more consistent, and the host stack is no longer tied to a
single-root assumption. These changes form the basis for supporting
multiple devices attached through a hub in future updates.
Signed-off-by: Aiden Hu <weiwei.hu@nxp.com>
The random_linkaddr() function may generate MAC addresses with the
multicast bit set. Source MAC addresses must not be multicast, and
randomly generated virtual interface addresses should have the
locally administered (LAA) bit set.
Force the LAA bit and clear the multicast bit after generating the
random address.
Signed-off-by: Tharaka Jayasena <9dmpires2k17.tuj@gmail.com>
Remove double buffering that was using a separate work_buffer.
Receive and parse frames directly into receive_buffer instead.
This saves MODEM_CMUX_WORK_BUFFER_SIZE of RAM and avoids
one copy from work_buffer to receive_buffer.
Driver already asserts if the receive buffer does not fit
maximum frame, so it should be properly sized.
Signed-off-by: Seppo Takalo <seppo.takalo@nordicsemi.no>
Use resource table when CONFIG_OPENAMP_RSC_TABLE is enabled.
Tested with PocketBeagle 2 (M4 core running Zephyr)
Signed-off-by: Ayush Singh <ayush@beagleboard.org>
Remove the Kconfig option BT_TBS_SUPPORTED_FEATURES as it was
not used by the subsystem, but only by applications.
Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
Modify bt_ccp_call_control_server_get_bearer_uci to
store the bearer UCI in an output buffer, instead of just
providing the pointer.
The reason for this is to make the result thread safe, and
avoid the user/application having a direct pointer to
internal storage.
Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
Set state before bound callback. The callback may trigger
icmsg_send which requires CONNECTED state.
Signed-off-by: Erdem Simsek <erdem.simsek@nordicsemi.no>
The functions bt_cap_commander_cancel and
bt_cap_initiator_unicast_audio_cancel were not thread safe,
and calling these while handling e.g. a notifications
or a write response could cause fatal errors.
This commit modifies active_proc so that all access to it
is guarded by a mutex.
Some functions were modified to take the active_proc as an
argument, instead of calling bt_cap_common_get_active_proc
for performance reasons.
This also means that all the atomic fields can now be
treated like regular fields. This has not been done in this
commit to keep the changes minimal.
The design is that only the function that calls
bt_cap_common_get_active_proc should unlock it again.
If a function gets the actice_proc as an argument, it should
not unlock or complete it.
Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
Move the call to bt_bap_setup_iso_data_path to the state_changed
clause in unicast_client_ep_streaming_state.
bt_bap_setup_iso_data_path should only be called once, as calling it
again would be rejected by the controller.
Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
A recent change in the host made it so that CIS always
disconnect before the ACL. This means that we do not need
to handle the case when the ACL disconnects before the CIS,
and the ACL and CIS disconnect handlers can thus be
simplified.
Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
Move BT_CTLR_ADV_AUX_SET, BT_CTLR_ADV_SYNC_SET and
BT_CTLR_ADV_DATA_BUF_MAX out from the menu "Advanced features"
as they are not really advances, and users should be able to
adjust these values without enabling BT_CTLR_ADVANCED_FEATURES.
Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
After power on the slot memory used for mtrace has not been initialized
and it's content is filled with 0xff.
The first log out will try to use 0xffffffff as host and dsp pointer, which
is not something which should be done.
Set both pointers to 0 as after DSP reset this is the expected value on
host side and also on firmware side.
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
The call to psa_hash_compute may silently fail if Zephyr is not compiled
with support for the SHA1 algorithm enabled. This leads to an invalid
Sec-WebSocket-Accept response header.
Signed-off-by: Arthur Gay <arthur.gay@marshmallow.kids>
Change the arguments of `cfb_invert_area`, `cfb_print`, and
`cfb_draw_(point|line|rect|circle)`, which used unsigned integers to
specify coordinates to signed integers.
This is because coordinate are usually specify with real numbers,
so it is difficult to use unless negative numbers are accepted.
We clip drawings outside the drawable area on the implementation side.
Accordingly, we will update the API version to 0.10.0.
Signed-off-by: TOKITA Hiroshi <tokita.hiroshi@gmail.com>
Improve AVRCP shell commands by adding success messages after
operations complete, including passthrough (PRESSED/RELEASED)
and get_caps command.
Signed-off-by: Make Shi <make.shi@nxp.com>
Add support for the IPT in the CS reflector subfeature
in the Bluetooth host stack.
Signed-off-by: Aleksandr Mirlenko <aleksandr.mirlenko@nordicsemi.no>
Introduce enum pm_device_deps_region to replace the magic number
used when iterating through device dependency array regions in
power_domain_add_or_remove().
Signed-off-by: Yongxu Wang <yongxu.wang@nxp.com>
Expand the allowed range for NET_SOCKETS_CONNECT_TIMEOUT and
NET_SOCKETS_TLS_CONNECT_TIMEOUT from 60s to 300s. Satellite and
NTN links can experience very high RTT, making the previous
60s maximum too small for reliable connect() and TLS handshake
operations.
Increasing the upper bound allows applications and overlays to
set longer, realistic timeout values when operating over high
latency networks such as NTN.
Signed-off-by: Zafer SEN <zafersn93@gmail.com>
The L2 PPP driver was not working for any other
Async-Control-Character-Map values than 0xffffffff.
This was caused by two issues:
* modem_ppp.c was expecting CONTROL field to be always escaped.
* lcp.c was decoding async_map values wrongly. Either as 16bit,
or raw 32bit, instead of big-endian 32 bit.
Now it should be safe to default my_options.async_map to a zero.
Signed-off-by: Seppo Takalo <seppo.takalo@nordicsemi.no>
When peer sends the Async-Control-Character-Map option on LCP
phase, Zephyr correctly responsed with Configure-Ack.
But the LCP negotiation phase have not been finnished yet,
so the remote end may not expect us to immediately
update the value.
This is seen when trying to use Zephyr's PPP stack against
PPPD from Linux, where default asyncmap option is zero.
However, if we delay the update of the asyncmap to the network phase,
it works just fine.
Fixes#105291
Signed-off-by: Seppo Takalo <seppo.takalo@nordicsemi.no>
Add error logging in pm_resume_devices() to report when a device
fails to resume. This improves debuggability by making resume
failures visible in the system log.
Signed-off-by: Yongxu Wang <yongxu.wang@nxp.com>
Only define variable for enabled CPU Core to fix the following building
warning in case of any CPU Core is not enabled but with "cpu-power-states"
dts node property:
zephyr/subsys/pm/state.c:15:43: warning: 'pmstates_DT_N_S_cpus_S_cpu_0'
defined but not used [-Wunused-const-variable=]
Signed-off-by: Jiafei Pan <Jiafei.Pan@nxp.com>
If CONFIG_HTTP_SERVER_MAX_HEADER_LEN is increased from the default of
32, a compiler warning pops in the HTTP websocket code:
zephyr/subsys/net/lib/http/http_server_http1.c:
In function 'on_header_value':
zephyr/subsys/net/lib/http/http_server_http1.c:898:33:
warning: 'strncpy' output may be truncated copying between 0 and 32
bytes from a string of length 47 [-Wstringop-truncation]
898 | strncpy(ctx->ws_sec_key, ctx->header_buffer,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
899 | MIN(sizeof(ctx->ws_sec_key), offset));
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
This comes from:
if (ctx->websocket_sec_key_next) {
#if defined(CONFIG_WEBSOCKET)
strncpy(ctx->ws_sec_key, ctx->header_buffer,
MIN(sizeof(ctx->ws_sec_key), offset));
#endif
If eg. header_buffer is 48 bytes and holds a string >= 32 bytes then
ws_sec_key can end up non-nul terminated. That can then lead to buffer
overflow in handle_http1_to_websocket_upgrade().
Add a check to make sure the header value fits in ws_sec_key, if not
reject the request with a HTTP 500. The websocket key is not expected to
be > 31 bytes.
Once the check is in place, it's safe to use memcpy() for the copy, and
then add the terminating nul manually.
Signed-off-by: Michael Ellerman <mpe@oss.tenstorrent.com>
`THREAD_RUNTIME_STATS` is not a requirement for the thread analyzer to
operate, merely useful. Switch the control to `configdefault` to leave
it enabled by default, while allowing both applications to disable the
option with `CONFIG_THREAD_RUNTIME_STATS=n` and for alternate defaults
to be specified elsewhere.
Signed-off-by: Jordan Yates <jordan@embeint.com>
When we start uAP by specifying the network interface "-i" like this:
wifi ap enable … -i 1
(here: 1 is STA iface, 2 is uAP iface)
Currently, get_iface() uses interface index to choose the network
interface, but we do not check if the selected interface is correct
type.
So if the user specified interface is valid interface, we then verify
that it matches the given type. If there is no match, we return an
error and do not select a default type interface.
Signed-off-by: Li Long <li.long@nxp.com>
Refactor the Retransmission Disable (R) bit handling in L2CAP BR/EDR
to reuse the existing L2CAP_FLAG_REMOTE_BUSY flag instead of
maintaining separate R-bit tracking flags.
The previous implementation used dedicated flags (
`L2CAP_FLAG_RECV_FRAME_R` and `L2CAP_FLAG_RECV_FRAME_R_CHANGED`) to
track the R-bit state, which duplicated the functionality of
L2CAP_FLAG_REMOTE_BUSY and added unnecessary complexity.
Key changes:
- Remove `L2CAP_FLAG_RECV_FRAME_R` and
`L2CAP_FLAG_RECV_FRAME_R_CHANGED` flags
- Update `bt_l2cap_br_update_r()` to directly use
`L2CAP_FLAG_REMOTE_BUSY` for tracking remote busy state
- Trigger I-frame retransmission when R-bit transitions from 1 to 0
- Update I-frame and S-frame header packing to set R-bit based on
local busy state in retransmission mode
- Simplify I-frame sending logic by consolidating remote busy checks
- Remove redundant R-bit checks in data pull path
- Add RET mode specific handling in S-frame reception for RR and REJ
frames
- Enhance `bt_l2cap_br_chan_recv_complete()` to support both RET and
ERET modes with proper local busy state management
- Set S-frame type to REJ when local busy and in RET mode
These changes eliminate code duplication and make the remote busy
state management more consistent across the L2CAP implementation.
Signed-off-by: Lyle Zhu <lyle.zhu@nxp.com>