Skip to content

[ncs-v3.2-branch] manifest: update hal_nordic revision and IronSide SE support code#3823

Open
57300 wants to merge 8 commits intonrfconnect:ncs-v3.2-branchfrom
57300:ironside-update-ncs-v3.2
Open

[ncs-v3.2-branch] manifest: update hal_nordic revision and IronSide SE support code#3823
57300 wants to merge 8 commits intonrfconnect:ncs-v3.2-branchfrom
57300:ironside-update-ncs-v3.2

Conversation

@57300
Copy link
Contributor

@57300 57300 commented Mar 2, 2026

Upstream PR #: 104759

manifest-pr-skip

57300 and others added 8 commits March 3, 2026 10:20
Applied as noup because of conflicts.

The data is updated by both local domains (cpuapp/cpuapp) and
IronSide SE (cpusec), so disable caching to avoid coherency issues.

Signed-off-by: Håkon Amundsen <haakon.amundsen@nordicsemi.no>
(cherry picked from commit 84120f9)
…839c6a3

Originally from hal_nordic - see commit message in

6fe35f8

(aka 1d6bf5f)

for details on how this was ported.

---

Update the IronSide SE support package.
Changes from the previous version:

* Added APIs for global domain MPC configuration (MPCCONF).
  They are used to adjust access permissions for global domain memory.
  Static configuration can be provided through UICR, which IronSide SE
  will apply before starting the user application. Furthermore, runtime
  reconfiguration is supported through an IPC service.
  Requires IronSide SE v23.4.0+27 or higher.

* Added a minimal IronSide call driver, as an alternative to the one
  provided in Zephyr, intended for more constrained applications.
  This driver does not support multithreading or interrupts, rather it
  busy waits for responses from IronSide SE. It also excludes data cache
  management and assumes that the IPC buffer area is not cached.

* Added a new peripheral defaults JSON file for IronSide SE v23.4.0+27.
  This reflects added support for configuring MRAMC110.CONFIGNVR.PAGE[1]
  through PERIPHCONF interfaces.

* Updated gen_uicr.py with support for UICR format version 2.2.
  The new version adds UICR.MPCCONF fields, as well as a policy field
  for configuring the behavior of the MPC configuration service.
  Version 2.2 requires IronSide SE v23.4.0+27 or higher.

Signed-off-by: Grzegorz Swiderski <grzegorz.swiderski@nordicsemi.no>
Upstream PR #: 104759

Add `mpcconf_partition` and `secondary_mpcconf_partition` to the board's
default memory map. They are defined as `zephyr,memory-region` to allow
generating linker sections from them, which is how we will support
populating these partitions initially.

Signed-off-by: Grzegorz Swiderski <grzegorz.swiderski@nordicsemi.no>
(cherry picked from commit 7af440a1f3b1fec1670b79ac887c4e09851ec785)
…ort package

Upstream PR #: 104759

Applied as noup to remove the west.yml update.

Update hal_nordic revision to pull in updated IronSide SE supporting
code. Certain options in the UICR generator script were refactored,
therefore the UICR generator image is adapted accordingly.

Signed-off-by: Grzegorz Swiderski <grzegorz.swiderski@nordicsemi.no>
(cherry picked from commit e026472eaf2471388e3538e082137e0c6106db94)
…STAGE

Upstream PR #: 104759

Add support to the UICR generator image for setting the
POLICY_MPCCONFSTAGE field via Kconfig. Setting this to INIT is
required to make use of the new ironside_se_mpcconf_write() API
added with IronSide SE v23.4.0+27, which is used to configure
global domain MPCs.

Signed-off-by: Jonathan Nilsen <jonathan.nilsen@nordicsemi.no>
(cherry picked from commit 2711009823568c1760872013587013d33e7d0a45)
…ide call driver

Upstream PR #: 104759

Integrate support for a minimal driver for IronSide SE IPC which is
thread-unsafe, uses busy waiting, and assumes that the IPC region
is uncached. The driver is included in the IronSide interface code
itself, and is enabled by defining IRONSIDE_SE_CALL_MINIMAL.
This is primarily intended to be used by MCUboot but can be used by
e.g. resource constrained single-threaded firmware.

Signed-off-by: Jonathan Nilsen <jonathan.nilsen@nordicsemi.no>
(cherry picked from commit 058b081152aa9fc512ff9b3c2d544390fa366204)
Upstream PR #: 104759

Add an option for calling the MPCCONF service from RAM, by plugging in
the `__ramfunc` attribute via IronSide SE support package's glue layer.

Signed-off-by: Grzegorz Swiderski <grzegorz.swiderski@nordicsemi.no>
(cherry picked from commit 61ece1acb3d506ab17cfb8854d9625d6a5e1b6b2)
Because 'ranges' has not yet been added for 'mram1x', the memory
region created by adding zephyr,memory-region to 'mpcconf_partition'
gets the wrong address, relative to MRAM1x, instead of getting an
absolute address. To work around this, add a different
'reserved-memory' node with an absolute address to be used instead.

Signed-off-by: Jonathan Nilsen <jonathan.nilsen@nordicsemi.no>
@57300 57300 force-pushed the ironside-update-ncs-v3.2 branch from 23f4395 to 158dffc Compare March 3, 2026 09:21
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.

2 participants