Skip to content

Conversation

ayla-nordicsemi
Copy link
Contributor

boards: Various adaptations needed for nrf92 IRONSide

ref: NRFX-7253

Signed-off-by: Aymen Laouini [email protected]

adamkondraciuk and others added 25 commits May 14, 2025 16:47
Add support for configuring pins of the nRF TDM peripheral.

Upstream PR #: 82144

Signed-off-by: Adam Kondraciuk <[email protected]>
(cherry picked from commit b21905b)
Add TDM support for nRF54H20 and nRF54L20

Upstream PR #: 82144

Signed-off-by: Adam Kondraciuk <[email protected]>
Support for list of images in build info was added with commit
4061311 and is used by sysbuild.

Zephyr itself also uses CMake's External Project feature when including
TF-M or TF-A in a Zephyr build.

Populate build info with TF-M / TF-A information when said image is
included in the build.

Upstream PR #: 86881

Signed-off-by: Torsten Rasmussen <[email protected]>
(cherry picked from commit 92dddd4)
…nfiguration

On nrf54h20 there are additional analog pins (AIN8+). When differential
mode is used they must not be mixed with AIN0-AIN7. Add build time
validation which detects if configuration is invalid.

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

Sample is reading vref-mv property to get reference voltage and then if
reference source is set to ADC_REF_INTERNAL this value is overwritten.
If vref-mv property is provided then it should not be overwritten.

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

AIN9 source needs special handling (all from AIN8-AIN14). Conversion
result needs to be scaled up by 3.6 additionally to gain and reference
voltage. In order to achieve correct value in the sample vref-mv is
used as reference voltage instead of predefined internal reference
source.

Signed-off-by: Krzysztof Chruściński <[email protected]>
(cherry picked from commit 7a16284)
Add number of channels implemented by the local DPPIC instances.

Upstream PR #: 85853

Signed-off-by: Adam Kondraciuk <[email protected]>
(cherry picked from commit b212602)
… for DPPIC

The `owned-channels` property specifies which channels are assigned to
a given target. Additionally, the `source-channels` or `sink-channels`
property defines channels that can be used to forward an event outside
the DPPI domain, otherwise they can only be used within it.

Upstream PR #: 85853

Signed-off-by: Adam Kondraciuk <[email protected]>
(cherry picked from commit 4b7ada0)
…ures"

The marking procedures can be reverted, since at this stage
it is already allowed to use the stack.
The MSP is temporairly set to interrupt stack in `reset.S` file before
calling s2ram procedures..

Upstream PR #: 87304

Signed-off-by: Adam Kondraciuk <[email protected]>

This reverts commit e68d110f7c175f2a9275659d023c9d37d1e4b4f1.

(cherry picked from commit 00f4271)
Optimize `pm_s2ram_mark_check_and_clear()` function.

Upstream PR #: 87304

Signed-off-by: Adam Kondraciuk <[email protected]>
(cherry picked from commit 7740ccf)
Added added node for audio clock on nRF54L20 with
fixed frequency of 24 MHz.

Signed-off-by: Michał Stasiak <[email protected]>
(cherry picked from commit 894cbed)
When deleting a settings entry the linked list is updated by removing
the deleted node. This operation is time consuming and add some delays.
For applications that use almost the same set of Setting entries, add an
option to make this operation faster at a cost of having some empty
nodes in the linked list.
These empty nodes can be used later when the deleted entry is written
again.
Each empty node occupies 16B of storage.

Upstream PR #: 87792

Signed-off-by: Riadh Ghaddab <[email protected]>
(cherry picked from commit 68f7cc5)
When the CONFIG_ZMS_NO_DOUBLE_WRITE is not enabled there is no need to
search in the cache for matching ID

Upstream PR #: 87792

Signed-off-by: Riadh Ghaddab <[email protected]>
(cherry picked from commit 4c93775)
Settings subsystem is storing the name ID and the linked list node ID
with only one bit difference at BIT(0).
Settings subsystem is also storing the name ID and the data ID in two
different ZMS entries at an exact offset of ZMS_DATA_ID_OFFSET.
Using the regular lookup function could result in many cache misses.

Therefore, to assure the least number of collisions in the lookup cache,
the BIT(0) of the hash indicates whether the given ZMS ID represents a
linked list entry or not, the BIT(1) indicates whether the ZMS ID is a
name or data and the remaining bits of the hash are set to a truncated
part of the original hash generated by Settings.

Upstream PR #: 87792

Signed-off-by: Riadh Ghaddab <[email protected]>
If the subtree argument is not NULL in the settings_load function, load
only the setting entry that corresponds to that subtree.
If the subtree argument is NULL or it is not found in the storage, load
all the existing entries in the storage.

Upstream PR #: 87792

Signed-off-by: Riadh Ghaddab <[email protected]>
(cherry picked from commit 676b3e5)
Increase the load performance by adding an optional cache for the linked
list hashes.
This is used only when the settings_load is called with NULL parameter
and we need to load all Settings that exist in the persistent storage.
Cache is enabled using SETTINGS_ZMS_LL_CACHE and the size of the cache
is set using SETTINGS_ZMS_LL_CACHE_SIZE.
Each cache entry will add 8 bytes of RAM usage.

Upstream PR #: 87792

Signed-off-by: Riadh Ghaddab <[email protected]>
(cherry picked from commit 959ce6a)
…s entry

Add a a function settings_load_one that allows to load only one settings
entry instead of a complete subtree.
Add as well its implementation for ZMS backend.
This will allow a faster return if the Settings entry doesn't exist in
the persistent storage.

Upstream PR #: 87792

Signed-off-by: Riadh Ghaddab <[email protected]>
…ad_one

Add a test for the new API settings_load_one that loads only one path
from the persistent storage.

Upstream PR #: 87792

Signed-off-by: Riadh Ghaddab <[email protected]>
(cherry picked from commit ec1032b)
Add the functional test for the new backend of ZMS

Upstream PR #: 87792

Signed-off-by: Riadh Ghaddab <[email protected]>
When a power off happens after writing the settings name and before
writing the linked list node we cannot write the settings name again in
the future.
Fix this by writing the linked list node before writing the name.
When loading all settings, we already delete linked list node that do
not have any name or value written.
Adds as well a recover path if a power down happens in the middle of
unlinking an LL node after a delete.

Upstream PR #: 87792

Signed-off-by: Riadh Ghaddab <[email protected]>
(cherry picked from commit 0e6b78e)
When the linked list is broken, recover it instead of reinitializing it.

Upstream PR #: 87792

Signed-off-by: Riadh Ghaddab <[email protected]>
(cherry picked from commit 8b446e2)
Add a function to get the value's length of a Key. If it doesn't exist
returns 0.
Add ZMS implementation for csi_get_val_len() and a default implementation
for the other storage systems.
Add some functional tests to verify it.

Upstream PR #: 87792

Signed-off-by: Riadh Ghaddab <[email protected]>
…f strlen

if the provided name in argument is not null this could lead to un
undefined behavior.
Use strnlen to make this safe

Upstream PR #: 87792

Signed-off-by: Riadh Ghaddab <[email protected]>
Add references to the new API functions that were added
"csi_load_one" and "csi_get_val_len"

Upstream PR #: 87792

Signed-off-by: Riadh Ghaddab <[email protected]>
Clean some parts of the code and refactor it to avoid multiple nested
conditions.

Upstream PR #: 87792

Signed-off-by: Riadh Ghaddab <[email protected]>
@ayla-nordicsemi ayla-nordicsemi force-pushed the NRFX-7253_ironside_nrf92 branch from e2a8e88 to 137d0b1 Compare May 28, 2025 14:52
rugeGerritsen and others added 23 commits May 28, 2025 17:12
This default matches the default before it got changed in
nrfconnect/sdk-nrf#22369. This ensures
that the current consumption when using Bluetooth remains unchanged.

The default of 854 is slightly smaller than what is recommended
by the documentation provided for MPSL_HFCLK_LATENCY.
It is still likely good enough for this board and its use cases.

This noup commit can be replaced once:
* HFXO startup latency is defined in device tree:
  zephyrproject-rtos/zephyr#90615
* The startup latency is configured per board and not per SoC.
  The startup latency is board specific as the HFXO is an SOC-external
  component.

Signed-off-by: Rubin Gerritsen <[email protected]>
Add request to enable/disable dPlus pullup.

Upstream PR #: 88429

Signed-off-by: Maciej Meijer <[email protected]>
…ady with timer on nRF54LM20A"

This reverts commit ce7b5e8.

Signed-off-by: Piotr Koziar <[email protected]>
Allow to add an image-specific DTS overlay, that is applied based on the
FILE_SUFFIX.
Up to this point, it was possible to specify such Kconfig files
(sysbuild/<image>_<file_suffix>.conf),
but it did not work with dts overlays
(sysbuild/<image>_<file_suffix>.overlay).
This commit aligns the logic of finding configuration files for both
scenarios mentioned above.

Ref: NCSDK-NONE

Upstream PR #: 90643

Signed-off-by: Tomasz Chyrowicz <[email protected]>
…te service"

This reverts commit e54729f.

Signed-off-by: Jonathan Nilsen <[email protected]>
…onside update service"

This reverts commit 796c0e1.

Signed-off-by: Jonathan Nilsen <[email protected]>
…nrf54h20/cpuapp/iron"

This reverts commit 6118016.

Signed-off-by: Jonathan Nilsen <[email protected]>
…c_late_init_hook"

This reverts commit cb7ed2d.

Signed-off-by: Jonathan Nilsen <[email protected]>
…CPUCONF service"

This reverts commit 3823cef.

Signed-off-by: Jonathan Nilsen <[email protected]>
…t_hook"

This reverts commit 5d33965.

Signed-off-by: Jonathan Nilsen <[email protected]>
…d variants"

This reverts commit e1c9150.

Signed-off-by: Jonathan Nilsen <[email protected]>
This reverts commit f32cef9.

Signed-off-by: Jonathan Nilsen <[email protected]>
…riants

Define `ipc_conf_iron.dtsi` and `memory_map_iron.dtsi`. In the future,
they will be merged with the base `ipc_conf.dtsi` and `memory_map.dtsi`
respectively. For now, they are used to replace a few devicetree nodes
when building for `nrf54h20dk/nrf54h20/*/iron` board targets.

Additional changes are included:

  * The IPC configuration includes new "nordic,ironside-call" nodes.
  * The memory map includes an updated RAM20 layout. Its subregions are
    placed under the `/reserved-memory` node like before.
  * The memory map also includes an updated MRAM layout. Partitions are
    now placed under a plain "fixed-partitions" node. MCUboot-specific
    node labels are applied in `cpuapp.dts`.

Signed-off-by: Grzegorz Swiderski <[email protected]>
(cherry picked from commit d370451)
This is needed for next generation Secure Domain firmware.

Signed-off-by: Sebastian Bøe <[email protected]>
Signed-off-by: Jonathan Nilsen <[email protected]>
(cherry picked from commit 2ba5d46)
Port SYS_INIT to use soc_early_init_hook as SYS_INITs are legacy.

Due to moving dmm_init() from PRE_KERNEL_1 SYS_INIT to
soc_early_init_hook(), the DMM test is also updated to ensure that
its setup function runs before dmm_init().

Signed-off-by: Sebastian Bøe <[email protected]>
Signed-off-by: Jonathan Nilsen <[email protected]>
(cherry picked from commit c0c4170)
…service

Add an IPC service API for booting local domain cores.

Signed-off-by: Sebastian Bøe <[email protected]>
Signed-off-by: Jonathan Nilsen <[email protected]>
(cherry picked from commit 14a47cb)
…nit_hook

Boot the radiocore from the app in soc_late_init_hook.

Signed-off-by: Sebastian Bøe <[email protected]>
(cherry picked from commit d949932)
…/cpuapp/iron

Add support for nrf54h20dk/nrf54h20/cpuapp/iron to the
samples/sysbuild/hello_world sample.

Signed-off-by: Sebastian Bøe <[email protected]>
(cherry picked from commit afc8389)
…ervice

Add an IPC service API for triggering updates of the Nordic IRONside SE
firmware using the IRONside call module.

Co-authored-by: Håkon Amundsen <[email protected]>
Signed-off-by: Jonathan Nilsen <[email protected]>
(cherry picked from commit 51609f0)
…pdate service

Add a sample demonstrating how to use the IRONside update service to
update the IRONside SE firmware on the nrf54h20dk/nrf54h20/cpuapp/iron
board.

Co-authored-by: Håkon Amundsen <[email protected]>
Signed-off-by: Jonathan Nilsen <[email protected]>
(cherry picked from commit eb7b978)
Upstream PR #: 90569

The boot report is used to pass information from IRONside to a CPU
being booted.

Integrate the boot report to the update service sample.

Signed-off-by: Håkon Amundsen <[email protected]>
…in dBm

The nrf-802154 component of hal_nordic is updated.
The CCA threshold configuration is now done in dBm units, instead of
hardware-dependent scale.
Fixed a bug, where the CONFIG_NRF_802154_CCA_ED_THRESHOLD units were
different from the NRF_802154_CCA_ED_THRESHOLD units. Now all
configuration is done in dBm.

Upstream PR #: 90795

Signed-off-by: Rafał Kuźnia <[email protected]>
@ayla-nordicsemi ayla-nordicsemi force-pushed the NRFX-7253_ironside_nrf92 branch 2 times, most recently from ff1ea74 to 6962d0a Compare May 30, 2025 12:40
@ayla-nordicsemi ayla-nordicsemi force-pushed the NRFX-7253_ironside_nrf92 branch from 6962d0a to 5217a78 Compare May 30, 2025 12:41
Copy link

Please retry analysis of this Pull-Request directly on SonarQube Cloud

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.