Skip to content

Conversation

@nvlsianpu
Copy link
Contributor

@nvlsianpu nvlsianpu commented Oct 30, 2025

Added optional inst_role field to MCUmgr Parameters response. Field is intended to express MCUmgr instance role of the device. Interpretation of the value is Application specific.

ref.: NCSDK-35378

Purpose this additional field might be to express application specific: capabilities, requirements and cooperation schemes.
For instance I'm going to use this for distinguish MCUmgr instance in the application A from another MCumgr instance in the application B and also from MCumgr instance in the loader (ref.: SB_CONFIG_MCUBOOT_MODE_FIRMWARE_UPDATER=y).

Vge0rge and others added 30 commits October 21, 2025 15:22
Exclude the application and radio core targets for nRF54H20 since
they use Ironside as their PSA storage provider.

Upstream PR #: 96915

Signed-off-by: Georgios Vasilakis <[email protected]>
…PTO_PSA

The dependency should be PSA_CRYPTO_CLIENT and not
MBEDTLS_PSA_CRYPTO_CLIENT because the former is more generic. TF-M can
indeed provide PSA Crypto API, not only Mbed TLS.

Signed-off-by: Valerio Setti <[email protected]>
(cherry picked from commit 46614de)
…_PSA_CRYPTO_C

The driver code only relies on legacy Mbed TLS crypto, not on PSA API, so
enabling MBEDTLS_PSA_CRYPTO_C is not needed here.

Signed-off-by: Valerio Setti <[email protected]>
(cherry picked from commit 76037ce)
…_C in BT_SILABS_EFR32

The driver only uses psa_generate_random() so ENTROPY_C is not required.

Signed-off-by: Valerio Setti <[email protected]>
(cherry picked from commit 7b7b4fc)
…YPTO

The goal of new Kconfig PSA_CRYPTO_PROVIDER is to automatically enable
any of the PSA Crypto API provider available for the platform without
having the user to manually pick the proper one. This provider can be
either TF-M, if that's enabled in the build, or Mbed TLS otherwise.

PSA_CRYPTO_PROVIDER simplifies also modules/subsystem Kconfigs removing
blocks as:
	select MBEDTLS if !BUILD_WITH_TFM
	select MBEDTLS_PSA_CRYPTO_C if !BUILD_WITH_TFM

Kconfig PSA_CRYPTO_PROVIDER_CUSTOM is also added to allow the end user
to add a custom implementation of PSA Crypto API instead of TF-M or
Mbed TLS ones.

Signed-off-by: Valerio Setti <[email protected]>
(cherry picked from commit 1bc2db5)
Allows checking sdk-nrf for Kconfig prompts that start with
"Enable" as these should not be allowed

Signed-off-by: Jamie McCrae <[email protected]>
nrf-squash! [nrf noup] scripts: ci: check_compliance: Exclude some docs

Excludes bare metal release docs from the invalid Kconfig check as
these will have old Kconfigs that have been removed

Signed-off-by: Jamie McCrae <[email protected]>
…f CONFIG_PM=y

The default log process thread stack size needs to be increased to
account for the recursion into resuming power domains, which
may happen within char_out for some backends like uart.

Signed-off-by: Bjarki Arge Andreasen <[email protected]>
(cherry picked from commit 804134f)
The NRFX SAADC device driver needs to implement PM DEVICE for it
to work with power domains, which is required for some SoCs. Inline
PM device runtime "self get/put" pm has been implemented for the
normal sync read API.

Signed-off-by: Bjarki Arge Andreasen <[email protected]>
(cherry picked from commit 5fd26a6)
…r_slow_main

The ADC and COMP on the nrf54h20 both have all of their analog
inputs routed to pads in different power domains than themselves,
this means the device drivers for both of them need to request the
pads to be resumed when active to allow any reading of the pads.

To keep the drivers simple, we can rely on HW to keep the power
domain the COMP and ADC are in powered, which happens automatically
when the ADC or COMP is ENABLED. We can then place them on the
power domain of their pads in the devicetree. This ensures the pads
are powered and not retained while the devices are RESUMED.

Signed-off-by: Bjarki Arge Andreasen <[email protected]>
(cherry picked from commit d6e940e)
Many SoCs which use PM_DEVICE_RUNTIME need every device in the system
to have PM_DEVICE_RUNTIME enabled to function. Currently, this is only
possible by adding zephyr,pm-device-runtime-auto; to every node in
every devicetree which could potentially implement device power
management. This is very error prone since its easy to miss a node,
especially if users apply overlays, where users need to know and
remember to apply or reapply this property.

This commit adds a Kconfig, disabled by default, which automatically
treats every device as if it had the zephyr,pm-device-runtime-auto
property added to every node.

Signed-off-by: Bjarki Arge Andreasen <[email protected]>
(cherry picked from commit 34c51c5)
…NABLE for all

Enable CONFIG_PM_DEVICE_RUNTIME_DEFAULT_ENABLE by default for all
nordic SoCs if CONFIG_PM_DEVICE_RUNTIME is used. This will ensure
consistent behavior across all nordic SoCs and remove the need
for pasting the devicetree propert zephyr,pm-device-runtime-auto
everywhere.

Signed-off-by: Bjarki Arge Andreasen <[email protected]>
(cherry picked from commit 61a9d6a)
… devices

All devices used in their "normal"/intended configuration do not
require management of the power domains, as the hardware itself will
request them automatically. Thus by default, don't specify the
power domains to avoid redundant resume/suspend cycles, which are
slow and require threading (IPC) making devices not isr ok.

Upstream PR #: 97452

Signed-off-by: Bjarki Arge Andreasen <[email protected]>
This reverts commit 6c0719c.

Signed-off-by: Bjarki Arge Andreasen <[email protected]>
This reverts commit a2b6884.

Signed-off-by: Bjarki Arge Andreasen <[email protected]>
…efault"

This reverts commit e9c0ac1.

Signed-off-by: Bjarki Arge Andreasen <[email protected]>
This reverts commit 275f20e.

Signed-off-by: Bjarki Arge Andreasen <[email protected]>
Applying dts-linter results for files in

dts/arm/nordic

Signed-off-by: Kyle Micallef Bonnici <[email protected]>
(cherry picked from commit 51d5135)
…r for siwx91x SoC

1. Added siwx91x power domain node in siwg917.dtsi
2. Updated UART device nodes to reference the newly added power domain.
3. Implemented power domain driver to manage power domain transitions
   for the SoC.

Signed-off-by: Sai Santhosh Malae <[email protected]>
(cherry picked from commit 295431d)
Introduce nrfx_swext device driver for NRFS SWEXT power domain
device.

Signed-off-by: Bjarki Arge Andreasen <[email protected]>
(cherry picked from commit 5db84c7)
DT_PROP_OR instead of DT_INST_PROP_OR was used and property from
device tree was never used.

Signed-off-by: Krzysztof Chruściński <[email protected]>
(cherry picked from commit 767c21a)
The gpio pad groups are redundant if pin retention is handled per
pin, and the quirky cross domain feature is managed by the
application. Remove it entirely.

Upstream PR #: 97452

Signed-off-by: Bjarki Arge Andreasen <[email protected]>
GPIO pad power domain management is not neccesary if the quirky
cross domain feature is handled at the application level. Replace it
with directly setting/clearing pin retention, as hardware will force
power domains on automatically.

Upstream PR #: 97452

Signed-off-by: Bjarki Arge Andreasen <[email protected]>
Replace the pad group integration with directly setting/clearing
pin retention for output pins if required, since the pad group
integration is redundant if the quirky cross domain feature is
managed by the application.

Upstream PR #: 97452

Signed-off-by: Bjarki Arge Andreasen <[email protected]>
…nalog input types

External analog input types changed from `string` to `int`.

Signed-off-by: Jakub Zymelka <[email protected]>
(cherry picked from commit e5ecbd2)
Devices which use AIN (COMP, LPCOMP, SAADC) don't use pinctrl to
configure their pins, thus pinctrl can't manage pin retention like
is done for other devices. Thus for now, add manually disabling
pin retention to the drivers.

In the future, we should probably use pinctrl for these inputs
as well, at which point this commit can be reverted.

Upstream PR #: 97452

Signed-off-by: Bjarki Arge Andreasen <[email protected]>
… drivers

Clocks are requested automatically by hardware on the nRF54H.

Remove additional handling from device drivers, and disable
the now unmanaged clocks in the devicetree.

Updates:
  - can_nrf
  - counter_nrfx_timer
  - uart_nrfx_uarte
  - spi_nrfx_spim
  - spi_nrfx_spis

Upstream PR #: 97452

Signed-off-by: Bjarki Arge Andreasen <[email protected]>
The nRF54H20 supports a Bluetooth controller.
The HCI driver interface has changed upstream in
zephyrproject-rtos/zephyr#72323
so now we need to add it to device tree.

Signed-off-by: Rubin Gerritsen <[email protected]>
(cherry picked from commit e9a13c3)
(cherry picked from commit 6f17dc3)
The SoftDevice Controller is a different controller than
the open source link layer with a different set of quirks.
It should therefore have its own device tree binding.

This commit converts the SoftDevice Controller driver
to use this new DTS binding instead of reusing the existing one.

This commit updates or adds additional overlays for
existing samples, applications and tests that were using the
open source link layer.

Signed-off-by: Rubin Gerritsen <[email protected]>
Signed-off-by: Kristoffer Rist Skøien <[email protected]>
Signed-off-by: Rafał Kuźnia <[email protected]>
(cherry picked from commit 946fcec)
(cherry picked from commit 6d216e1)
The SDC HCI controller is defined as a device tree node.
A node representing the SDC controller is added and selected as the
default over the open source link layer. This is consistent with other
SoCs.

Signed-off-by: Rafał Kuźnia <[email protected]>
(cherry picked from commit da86248)
(cherry picked from commit e40f531)
dottspina and others added 24 commits November 18, 2025 09:54
…_le_adv_resume()

Automatic advertiser resumption is publicly deprecated since
Zephyr 4.0 [1].

Options and parameters for this behavior have been removed,
as well as all calls to bt_le_adv_resume().

Also remove adv_get_options() whose bt_le_adv_resume()
is the only caller.

[1] Bluetooth: Deprecate adv auto-resume #73395

Signed-off-by: Christophe Dufaza <[email protected]>
(cherry picked from commit a1dd571)
Signed-off-by: Pavel Vasilyev <[email protected]>
…ERSIST

Automatic advertiser resumption is publicly deprecated since
Zephyr 4.0 [1].

Options and parameters for this behavior have been removed,
and the internal bit flag BT_ADV_PERSIST is now always false.

The behavior it used to configure (to keep advertising after a
connection has been established as long as there are connections
available) has also been removed.

[1] Bluetooth: Deprecate adv auto-resume #73395

Signed-off-by: Christophe Dufaza <[email protected]>
(cherry picked from commit 60c3de2)
Signed-off-by: Pavel Vasilyev <[email protected]>
Move the call to bt_iso_reset to before bt_conn_cleanup_all.
The reason for this is that bt_conn_cleanup_all will disconnect
all the ACL connections, which will put the CIS in a disconnecting
state, without finalizing them.
This means that if we get a num_completed_packet event between
the call to bt_conn_cleanup_all and before the BT_HCI_OP_RESET
request has been completed, we will trigger an assert in the
hci_num_completed_packets function as the CIS still exists,
but where we would already have cleaned up the pending TX
without telling the controller.

Moving the call to bt_iso_reset means that the CIS will have
been fully terminated at this point, which will prevent
the assert from happening. Since CIS depends on ACLs, this
is also the logical order for resetting them.

Signed-off-by: Emil Gydesen <[email protected]>
(cherry picked from commit 0ebe84c)
Signed-off-by: Pavel Vasilyev <[email protected]>
According to MshPrt 5.4.4, The Provisioner, upon receiving the
Provisioning Failed PDU, shall assume that the provisioning failed and
immediately disconnect the provisioning bearer.

Signed-off-by: Ludvig Jordet <[email protected]>
(cherry picked from commit 1c6f98a)
Signed-off-by: Pavel Vasilyev <[email protected]>
…uccess

Changes the link close upon success to use the `prov_link_close` helper
function instead of doing it manually, as minor cleanup.

Signed-off-by: Ludvig Jordet <[email protected]>
(cherry picked from commit f998357)
Signed-off-by: Pavel Vasilyev <[email protected]>
When Mesh is built without CONFIG_BT_SETTINGS and with CONFIG_ASAN
(and CONFIG_NO_OPTIMIZATION), the call to bt_mesh_settings_set is not
optimized out. Since settings.c isn’t compiled when CONFIG_BT_SETTINGS
is disabled, the linker reports an undefined reference.

Guard the call with !IS_ENABLED(CONFIG_BT_SETTINGS) so the call and the
subsequent code is compiled out when settings are disabled.

Signed-off-by: Pavel Vasilyev <[email protected]>
(cherry picked from commit a360ff7)
Signed-off-by: Pavel Vasilyev <[email protected]>
This commit adds functionality to filter out duplicate entries in the
Bridged Subnets List message.

This is done by iterating through the part of the table we have already
processed, to check if this is the first time we see a given key pair or
not.

Signed-off-by: Ludvig Jordet <[email protected]>
(cherry picked from commit cc8ac6b)
Signed-off-by: Pavel Vasilyev <[email protected]>
There's a bunch of convenience macros in sys/util.h that are intended to
help out with translating array indices and determining if an element is
part of an array or not. Use those instead of custom code.

Signed-off-by: Johan Hedberg <[email protected]>
(cherry picked from commit 0fd8af9)
Signed-off-by: Pavel Vasilyev <[email protected]>
The `bt_le_ext_adv_update_param` will set new random address when option
not select `BT_LE_ADV_OPT_USE_IDENTITY`, But `bt_le_ext_adv_start` will
also set random address again.

This will be affect bluetooth mesh, after this change, will ensure address
only change once for every advertising.

Signed-off-by: Lingao Meng <[email protected]>
(cherry picked from commit f902f2a)
Signed-off-by: Pavel Vasilyev <[email protected]>
…ss update

update random address when periodic adv enabled.

Signed-off-by: Lingao Meng <[email protected]>
(cherry picked from commit d59cd2e)
Signed-off-by: Pavel Vasilyev <[email protected]>
move extending advertising start after periodic adv.

Signed-off-by: Lingao Meng <[email protected]>
(cherry picked from commit bed07a5)
Signed-off-by: Pavel Vasilyev <[email protected]>
… relay adv sets

When multiple relay adv sets are used, the bt_mesh_adv_send function
calls bt_mesh_adv_relay_ready which should distribute relayed
advertisements across all relay adv sets.

Until the submitted relay adv set work is started, the ADV_FLAG_ACTIVE
is not set. Therefore, next call to bt_mesh_adv_send will try to
re-submit the same relay adv set work, instead of picking up another
relay set which is actually free and ready to send an advertisement.

This commit adds a check that checks if the adv set work is already
pending to be executed. And if so, schedule_send returns false to make
bt_mesh_adv_relay_ready pick next relay adv set.

This shouldn't brake advertising because once adv set is done
transmitting advertisment, it will pick up a next one.

The ADV_FLAG_PROXY check is added to do re-submit for adv set which was
used for proxy advertisement since we need to prioritize mesh messages
over proxy advertisements when those are running on the same adv set.

Signed-off-by: Pavel Vasilyev <[email protected]>
(cherry picked from commit 1a4f113)
Signed-off-by: Pavel Vasilyev <[email protected]>
…r size

When alloc the evt buffer,such as the adv report, only compare the
remaining data len, should aslo consider the hdr_len, because the
hdr also copy to alloced buffer.if not consider the hdr, then
hdr + remaining data may larger than alloced buffer, because the
alloced buffer is not enough,then will assert when receive the
remaining data.

Signed-off-by: Guotao Zhang <[email protected]>
(cherry picked from commit ec970a6)
Signed-off-by: Pavel Vasilyev <[email protected]>
…d advertising

When limited advertising is enabled there is pending deleyable work
for timing it out. If in such case struct bt_le_ext_adv is cleared by
memset system will crash on next tick.

Fix this by ensuring work is cancelled before clearing struct
bt_le_ext_adv. Using bt_le_ext_adv_foreach() ensures that this will
be correctly handled with and without extended advertising enabled.

Signed-off-by: Szymon Janc <[email protected]>
(cherry picked from commit 973934c)
Signed-off-by: Pavel Vasilyev <[email protected]>
…erver

There is no guarantess enum will be packed so passing uint8_t as
node_id to bt_mesh_subnet_priv_node_id_get() could (and likely will)
result in writing past stack variable.

Signed-off-by: Szymon Janc <[email protected]>
(cherry picked from commit 4571485)
Signed-off-by: Pavel Vasilyev <[email protected]>
…ning for connection

In some cases, the host starts scanning internally for establishing
connections (BT_LE_SCAN_USER_CONN), such as host-based resolving or
auto-connection. In this situation, even if the application does not
start explicit scan, the host still needs to handle the advertising
reports to continue the connection process.

Previously, both bt_hci_le_adv_report() and bt_hci_le_adv_ext_report()
will break or discard all reports when explicit scan is not active.
This causes the connection to stay in SCAN_BEFORE_INITIATING and never
move forward.

This patch adds checking of BT_LE_SCAN_USER_CONN to allow advertising
reports to be processed during connection-purpose scanning. When the
scan is started explicitly by application, the behavior remains the
same, only small comments are updated to describe this behavior and keep
the original code style unchanged.

Signed-off-by: Zhijie Zhong <[email protected]>
(cherry picked from commit 87e351f)
Signed-off-by: Pavel Vasilyev <[email protected]>
…nfig

When building an observer-only build the check_pending_conn label would
result in CI warnings/errors due to this only being a C23 feature:

scan.c:692:1: error: label at end of compound statement is a C23 extension

Turns out the #ifdefs are completely unnecessary, and the code can simply
take advantage of IS_ENABLED(), which should get rid of the warning.

Signed-off-by: Johan Hedberg <[email protected]>
(cherry picked from commit 73b6f8b)
Signed-off-by: Pavel Vasilyev <[email protected]>
Bluetooth 6.2 has version number 0x10 and was released in November 2025.
This commit ensures this version number is properly decoded.

Signed-off-by: Aleksandar Stanoev <[email protected]>
(cherry picked from commit 9d06fca)
Signed-off-by: Pavel Vasilyev <[email protected]>
Increase BT RX Thread Stack Size which is needed for successfull
provisioning over PB-GATT.

Output from `kernel thread stacks` shell command:
```
BT RX WQ (real size 4096): unused 1408 usage 2688 / 4096 (65 %)
```

Fixes #98521

Signed-off-by: Pavel Vasilyev <[email protected]>
(cherry picked from commit bb006dc)
Signed-off-by: Pavel Vasilyev <[email protected]>
Improve the network message cache to be aware of network keys to
prevent false duplicate detection across different subnets. This
ensures that messages with the same source address and sequence
number but from different network keys are not incorrectly
identified as duplicates, as it can happen in certain cases.
See ES-26350.

Signed-off-by: Omkar Kulkarni <[email protected]>
(cherry picked from commit 22e3798)
Signed-off-by: Pavel Vasilyev <[email protected]>
… Zephyr tree

I initially added the GEN_UICR options to the gen_uicr image's Kconfig
tree only to not pollute the main tree.

But there is a lot of useful help text in the GEN_UICR option's
Kconfig file that I would like users to be able to read/reference from
the docs.

To not increase the complexity of the Kconfig doc generator, we add
the GEN_UICR options to the main tree and have them all be disabled
for builds other than the gen_uicr image.

Being in the main tree has the added benefit of being recognzied by
the compliance checker.

Signed-off-by: Sebastian Bøe <[email protected]>
(cherry picked from commit 70f6cf7)
Disable the KMU by default for all the NRF54L and NRF71 devices for this
test. With the current configuration this test is incompatible
with the KMU because it changes the placement of the RAM in the
linker files and this collides with the KMU logic. But it also
does not need the KMU so there is no need to be there.

This is a noup because the configuration (and KMU support) is
only placed in ncs.

Reverted and reapplied noup to maintain all changes in a single commit.

The KMU dependency to reserve the top RAM address is planned
to be done in dts (NCSDK-31980). Hopefully when this is done
this noup can be removed.

Signed-off-by: Georgios Vasilakis <[email protected]>
Signed-off-by: Robert Robinson <[email protected]>
Only include a flash MPU region if CONFIG_XIP is set, similar to
arm/core/mpu/arm_mpu_regions.c.

Signed-off-by: Josh DeWitt <[email protected]>
(cherry picked from commit 0dc2e0c)
…response

Added optional `inst_role` field to MCUmgr Parameters response.
Field is intended to express MCUmgr instance role on the device.
Interpretation of the value is Application specific.

Upstream PR #: 99592

Signed-off-by: Andrzej Puzdrowski <[email protected]>
@nvlsianpu nvlsianpu marked this pull request as ready for review November 18, 2025 15:17
@nvlsianpu nvlsianpu closed this Jan 8, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.