Skip to content

Conversation

@paliimat
Copy link

Add Power Management support for nrf92 series products.
Contents is based on nrf54h20 files and modified for nr92 where needed.

Upstream PR#: 99961

nordic-krch and others added 30 commits October 7, 2025 07:51
Add support for getting usage statistics for DMM.

Signed-off-by: Krzysztof Chruściński <[email protected]>
(cherry picked from commit d10ee98)
Extended test to check usage stats and longer buffer alloc.

Signed-off-by: Krzysztof Chruściński <[email protected]>
(cherry picked from commit 3d31042)
Add stress test which validates that allocator is thread safe
and has no memory leaks.

Signed-off-by: Krzysztof Chruściński <[email protected]>
(cherry picked from commit c02f904)
…mory region

Skip stress test if null memory region. That's the case if DMM is
disabled.

Upstream PR #: 96831

Signed-off-by: Krzysztof Chruściński <[email protected]>
There were some corner cases and stress test could fail. Reworking
tail bits handling to make the stress test pass.

Upstream PR #: 96831

Signed-off-by: Krzysztof Chruściński <[email protected]>
…state

The s2ram power state is a "suspend-to-ram" state which is not
supported by the radio core, so delete it from the overlay.

Signed-off-by: Bjarki Arge Andreasen <[email protected]>
Signed-off-by: Adam Kondraciuk <[email protected]>
(cherry picked from commit 91c8c07)
nrf_squash! [nrf noup] soc/nordic/nf54h/pm_s2ram: S2RAM resume hardening

Extended mcuboot_resume_s suture by slot_info field intended to
be used by MCUboot for recognize proper boot slot in direct-xp
mode.

Signed-off-by: Andrzej Puzdrowski <[email protected]>
…sh config

This adds a Kconfig dependency on FLASH_PAGE_LAYOUT when using flash
with explicit erase, removing all code dependencies on flash
configuration from the erasure logic. This module already requires
FLASH_PAGE_LAYOUT to be set when using it with flash with explicit
erase, as a silent requirement. The current code does not work without
this option enabled except for the case where a BLOB has a size which is
a multiple of the page size (since, without it, trying to erase flash
space for the final block, which is of variable size, will fail). Also
cleans up the code a bit.

Signed-off-by: Ludvig Jordet <[email protected]>
(cherry picked from commit 294a2cd)
…ocks

Only erase a page when starting the first block on that page.
This fixes a bug where, if the block size is smaller than the page size,
the entire page would be erased upon start of each block when writing,
meaning only the final block on each page would be retained. This works
because blocks are always received in order.

Signed-off-by: Ludvig Jordet <[email protected]>
(cherry picked from commit 99190cb)
…flash

This fully decouples blob_io_flash from specific flash device details,
by not reading the write block size from a hard-coded device tree node,
instead pulling this from the actual flash device used.

The block write routine has been updated to be more generic and fix a
few bugs:

  * The write buffer is now sized based on a KConfig option instead of
    basing it off the device tree - this makes the module usable with
    any flash device, not just the internal memory. The configured value
    is checked during initialization, to ensure that the configured size
    will fit the write block size required by the device passed to the
    init function.
  * The erase value used to fill the buffer when using a device with
    explicit erase is now pulled from the flash parameters instead of
    being hard-coded to `0xff`.
  * An additional write block sized piece of buffer is allocated - the
    previous buffer sizing with rounding up only worked if
    `BLOB_RX_CHUNK_SIZE % WRITE_BLOCK_SIZE` was 0 or 1 (which
    coincidentally worked in all testing because the chunk size defaults
    to 161, and for internal flash w/write block size of 4,
    `161 % 4 == 1`).
  * The choice of whether to just write the chunk as-is or to
    write-block align it is now based on the erase cap pulled from the
    flash parameters, instead of checking the type of memory in the SOC.
    This means the module dos _not_ currently support the case where
    memory has to be written write-block aligned, but the memory does
    _not_ use explicit erase. It uses a trick of filling the write
    buffer with the erase value to avoid overwriting existing chunks,
    which will not work in this case. This trick is required to support
    random ordered chunks while still writing write-block aligned.
  * The code has been cleaned up a bit in general.

Signed-off-by: Ludvig Jordet <[email protected]>
(cherry picked from commit db207b0)
…ions

The only reason to keep these would be to enable conditional compilation
of some parts of the code. However, we can't see enough benefit in doing
this, particularly since the flash driver itself will conditionally
handle certain paths depending on erase caps, so the options are
deprecated to reduce complexity.

Signed-off-by: Ludvig Jordet <[email protected]>
(cherry picked from commit 8720ab7)
…platforms

The swapped_app image, added via ExternalZephyrProject_Add,
wasn't receiving the swap method configuration from sysbuild.
If trying to build the test with a different configuration that
SWAP_USING_OFFSET (for example SWAP_USING_MOVE)
this resulted in a boot loop due to configuration mismatch
between swapped_image and mcuboot.

This fix ensures proper configuration propagation and prevents
similar mismatches in future scenarios.

Signed-off-by: Artur Hadasz <[email protected]>
(cherry picked from commit 7c1721d)
…d state

Add new idle state with cache retention enabled.

Signed-off-by: Adam Kondraciuk <[email protected]>
(cherry picked from commit 6f7a183)
Add the definition of pm_s2ram_stack memory region for nRF54H20.

Upstream PR #: 95914

Signed-off-by: Tomasz Chyrowicz <[email protected]>
(cherry picked from commit c274834)
Added support for hardening decision on resume from
S2RAM by MCUboot bootloader.
Application sets additional variable to MCUBOOT_S2RAM_RESUME_MAGIC
which allows the bootloader to doublecheck.

Signed-off-by: Andrzej Puzdrowski <[email protected]>
(cherry picked from commit d4bb1c6)
nrf_squash! [nrf noup] soc/nordic/nf54h/pm_s2ram: S2RAM resume hardening

Extended mcuboot_resume_s suture by slot_info field intended to
be used by MCUboot for recognize proper boot slot in direct-xp
mode.

Signed-off-by: Andrzej Puzdrowski <[email protected]>
MCUBOOT requires LTO to be enabled, while using code relocation
forces switching it off. When `__ramfunc` is used, LTO can also
be used. Then the `cache_retain_and_sleep` function will work
correctly, but slightly slower.

Upstream PR #: 97094

Signed-off-by: Adam Kondraciuk <[email protected]>
…rf54h20 PPR XIP

Add overlay and config file required to run the uart_async_api
test on nrf54h20dk/nrf54h20/cpuppr/xip platform.

Signed-off-by: Sebastian Głąb <[email protected]>
(cherry picked from commit e0a9a16)
Extend test coverage with new test.

Upstream PR #: 94110

Signed-off-by: Karol Lasończyk <[email protected]>
…p_send_pdu"

This reverts commit 510e36c.

Signed-off-by: Marek Pieta <[email protected]>
… TX is done"

This reverts commit d1d9b2d.

Signed-off-by: Marek Pieta <[email protected]>
By default, the BLE stack calls sent callback for ATT data when the data
is passed to BLE controller for transmission. Enabling this Kconfig
option delays calling the sent callback until data transmission is
finished by BLE controller (the callback is delayed until receiving the
Number of Completed Packets HCI Event).

If the ATT sent callback is delayed until data transmission is done by
BLE controller, the transmitted buffer may have an additional reference.
The reference is used to extend lifetime of the net buffer until the
data transmission is confirmed by ACK of the remote.

Jira: NCSDK-27422
Jira: NCSDK-28624
Jira: NCSDK-35650

Signed-off-by: Marek Pieta <[email protected]>
…eleted

When bt_l2cap_send_pdu() succeeds, it transfers buffer ownership to the
stack, which must eventually invoke the provided callback. This contract
is honored in all paths where transmission becomes impossible:

- Normal transmission: callback invoked with err=0 after HCI Number of
  Completed Packets event (tx_notify_process)
- Send errors (after tx allocated): callback invoked with err=-ESHUTDOWN
  via conn_tx_destroy
- Send errors (before tx allocated): callback invoked with the specific
  error code in send_buf error_return path
- Connection disconnect: callbacks invoked with err=-ESHUTDOWN via
  process_unack_tx -> conn_tx_destroy for all PDUs in tx_pending

However, when a channel is deleted (l2cap_chan_del), PDUs remaining in
the tx_queue are dropped without invoking their callbacks, violating the
ownership contract.

Fix this by extracting and invoking any non-NULL callbacks from the
closure stored in buf->user_data before releasing the buffers. The
callback is invoked with err=-ESHUTDOWN, making this path analogous to
process_unack_tx: both drain queues of unsent PDUs when transmission
becomes impossible due to external events (channel deletion vs connection
disconnect). The only difference is the buffer lifecycle stage - in
l2cap_chan_del, PDUs are still in tx_queue (closure in buf->user_data),
while in process_unack_tx, they've progressed to tx_pending (callback in
bt_conn_tx struct).

Note: conn_tx_destroy() cannot be used here because no bt_conn_tx struct
has been allocated yet - the closure is still in buf->user_data.

Upstream PR #: 97056

Signed-off-by: Aleksander Wasaznik <[email protected]>
Enable twister tests execution on nrf54h20dk/nrf54h20/cpuppr target.

Upstream PR #: 97165

Signed-off-by: Bartlomiej Buczek <[email protected]>
Fill in necessary config files with test data.

Upstream PR #: 97109

Signed-off-by: Bartlomiej Buczek <[email protected]>
…nd i2s

Add missing SoC header include required by memory region assertion
to adc_nrfx_saadc and i2s_nrf_tdm shims.

Upstream PR #: 97104

Signed-off-by: Michał Bainczyk <[email protected]>
SeppoTakalo and others added 20 commits November 4, 2025 09:04
…ffer

Ringbuffer is not safe in ISR but k_pipe without waiting is.
So use pipe for events, so that possible GPIO callbacks from
ISR content can post events.

Upstream PR #: 97362

Signed-off-by: Seppo Takalo <[email protected]>
Use ring indicator to wake up the CMUX device
from sleep.
Only used for runtime power management, but same event
could be used for initiating idle -> connected as well.

Upstream PR #: 97362

Signed-off-by: Seppo Takalo <[email protected]>
When working on CMUX power saving, it is typical
that we end up closing the pipe before the last
RX_READY event is handled from workqueue, so we end up
receiving -EPERM which is not really a fatal error.

Pipes recover when they are re-opened. So drop this error
and return zero instead, like modem_pipe_open() and close() does.

Upstream PR #: 97362

Signed-off-by: Seppo Takalo <[email protected]>
Instead of copying all fields from cmux_config into run-time
struct cmux, just have the configuration structure as a member.

Upstream PR #: 97362

Signed-off-by: Seppo Takalo <[email protected]>
…requencies

These represent the outputted frequencies of the AUXPLL of
different settings set in the device tree set using dt-bindings
in nrf-auxpll.h. This is added to remove the need for 'magic numbers'
in drivers and tests.

Signed-off-by: David Jewsbury <[email protected]>
(cherry picked from commit 0770210)
…frequency macros

Frequencies being for AUXPLL were register assignments and
not actual frequencies.

Signed-off-by: David Jewsbury <[email protected]>
(cherry picked from commit eb60562)
…cros

Eliminate the need for magic numbers when
setting AUXPLL_FREQ_OUT

Signed-off-by: David Jewsbury <[email protected]>
(cherry picked from commit 9a3a954)
Add support for audio_auxpll clock source as an alternative to audiopll
in the i2s_nrf_tdm driver. This enables TDM functionality on platforms
that use the auxiliary PLL for audio clocking.

- Add audio_auxpll node detection and configuration
- Update clock management to support both audiopll and audio_auxpll
- Add build assertions for supported frequency configurations

Signed-off-by: Erdem Simsek <[email protected]>
(cherry picked from commit 8338097)
Add I2S_TRIGGER_DROP call in the error test to ensure proper cleanup
after stopping the I2S device. This validates that the drop trigger
is properly handled in error conditions and resources are released.

Signed-off-by: Erdem Simsek <[email protected]>
(cherry picked from commit aec9da0)
Update commit id for hal_renesas

Signed-off-by: Phuc Pham <[email protected]>
Signed-off-by: Tien Nguyen <[email protected]>
(cherry picked from commit 62116a7)
Update revision of hal_renesas to get the FSP 6.1.0 migration

Signed-off-by: Khoa Tran <[email protected]>
(cherry picked from commit 6207380)
Update revision of hal_renesas to get RA8T2 support

Signed-off-by: Khoa Tran <[email protected]>
(cherry picked from commit ac941a3)
…stats blob"

This reverts commit 9fde3d0.

Signed-off-by: Robert Robinson <[email protected]>
…guards

Update the few modules to pick up some redefinition fixes.

Signed-off-by: Fabio Baltieri <[email protected]>
(cherry picked from commit 056f3b0)
…k 8.72.4 release

Update hal_nordic to pull file missing change from mdk 8.72.4 release

Signed-off-by: Robert Robinson <[email protected]>
(cherry picked from commit 84dfded)
A helper script is added to the nrf_wifi repo for parsing and dumping
nRF70 FW stats blob.

Note: "noup" to avoid churn by pulling min/max PR.

Signed-off-by: Chaitanya Tata <[email protected]>
(cherry picked from commit b71d290)
(cherry picked from commit 9fde3d0)
Pull nRF71 OSAL support, full support is till TBD.

Signed-off-by: Chaitanya Tata <[email protected]>
(cherry picked from commit 9f8bb3c)
(cherry picked from commit cdfeb62)
Add BT_HCI_VS_FATAL_ERROR_SUPPORT Kconfig to allow
out-of-tree Controllers to control Zephyr HCI Vendor-
Specific Fatal Error event support.

Upstream PR #: 98840

Signed-off-by: Vinayak Kariappa Chettimada <[email protected]>
Add PM support for nrf92 series products

Signed-off-by: Pasi Liimatainen <[email protected]>
NordicBuilder added a commit to NordicBuilder/sdk-nrf that referenced this pull request Nov 25, 2025
Automatically created by action-manifest-pr GH action from PR:
nrfconnect/sdk-zephyr#3538

Signed-off-by: Nordic Builder <[email protected]>
@github-actions
Copy link

The following west manifest projects have changed revision in this Pull Request:

Name Old Revision New Revision Diff
hal_nordic zephyrproject-rtos/hal_nordic@54f33f1 zephyrproject-rtos/hal_nordic@7858281 (master) zephyrproject-rtos/[email protected]
hal_renesas zephyrproject-rtos/hal_renesas@74c9186 zephyrproject-rtos/hal_renesas@740a944 zephyrproject-rtos/[email protected]
nrf_wifi zephyrproject-rtos/nrf_wifi@5fffeab zephyrproject-rtos/nrf_wifi@e269670 zephyrproject-rtos/[email protected]
tf-m-tests zephyrproject-rtos/tf-m-tests@a286347 zephyrproject-rtos/tf-m-tests@a90702b (main) zephyrproject-rtos/[email protected]

All manifest checks OK

Note: This message is automatically posted and updated by the Manifest GitHub Action.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.