Skip to content

Conversation

@mkapala-nordic
Copy link
Contributor

@mkapala-nordic mkapala-nordic commented Nov 28, 2025

Fixes cmake script used for signing direct-xip images (wrong slot size).
Replaces the custom DTS partition used for relocation with usage of CONFIG_XIP=n which simplifies the implementation.
Integrates direct-xip split slot mode support to the sample as a separate configuration.

Depends on: #25737
Replaces: #25826

Jira: NCSDK-36461

zycz and others added 10 commits November 25, 2025 17:18
Add radio_loader sample for nRF54H20 that implements
a two-stage boot process for the radio core. The loader
copies firmware from MRAM to TCM (Tightly Coupled Memory)
at boot time and jumps to the loaded firmware.

The loader uses devicetree chosen nodes to specify source
and destination memory regions:
- zephyr,loaded-fw-src: Source partition in MRAM
- zephyr,loaded-fw-dst: Destination region in TCM

JIRA: NCSDK-36461

Signed-off-by: Jan Zyczkowski <jan.zyczkowski@nordicsemi.no>
Update sdk-zephyr revision and enhance Kconfig handling.
If the 'fw-to-relocate' chosen node exists, the firmware will:
-  automatically calculate the Load Memory Address (LMA)
adjustment for firmware relocation.
- Modified Kconfig handling in cmake modules to accommodate
  a new property "fw-to-relocate".
- Ensured backward compatibility by
  falling back to "zephyr,code-partition"
if ther is not property "fw-to-relocate".

JIRA: NCSDK-36461

Signed-off-by: Jan Zyczkowski <jan.zyczkowski@nordicsemi.no>
Introduce a new sample demonstrating a multicore idle test
with firmware relocated to the radio core's TCM.
The test showcases the radio loader pattern, where firmware
is loaded from MRAM to TCM at runtime, ensuring efficient execution.

JIRA: NCSDK-36461

Signed-off-by: Jan Zyczkowski <jan.zyczkowski@nordicsemi.no>
Changes the *.overlay suffix to *.dtsi as it is included in other
files.

Jira: NCSDK-36461

Signed-off-by: Mateusz Kapala <mateusz.kapala@nordicsemi.no>
Fixed slot size used for signing the images when the MCUboot works
in the direct-xip mode.
Previously slot size was always taken from the slot0 partition instead
of the zephyr,code-partition.

Jira: NCSDK-36461

Signed-off-by: Mateusz Kapala <mateusz.kapala@nordicsemi.no>
It is possible for Zephyr to relocate code from NVM to RAM without
using custom fw-to-relocate DTS node.
The CONFIG_XIP=n needs to be used instead.
This change aligns it at the build system level.

Jira: NCSDK-36461

Signed-off-by: Mateusz Kapala <mateusz.kapala@nordicsemi.no>
Instead of fw-to-relocate DTS note use the CONFIG_XIP=n.
Align memory map to use whole TCM.

Jira: NCSDK-36461

Signed-off-by: Mateusz Kapala <mateusz.kapala@nordicsemi.no>
Adapted the sysbuild configuration so the Radio Loader could support
the MCUboot in the direct-xip in split slot mode.
Adapted also the radio_loader sample to properly select the
vector table pointer as in split mode each image has a MCUboot header
which needs to be skipped.

Jira: NCSDK-36461

Co-authored-by: Jan Zyczkowski <jan.zyczkowski@nordicsemi.no>
Signed-off-by: Mateusz Kapala <mateusz.kapala@nordicsemi.no>
Added configurations for the application with MCUboot in the direct-xip
mode with split slots (each image has their slots independent from other
images).

Jira: NCSDK-36461

Co-authored-by: Jan Zyczkowski <jan.zyczkowski@nordicsemi.no>
Signed-off-by: Mateusz Kapala <mateusz.kapala@nordicsemi.no>
Added log with zephyr,code-partition DTS node address to determine from
which slot the image has been loaded.

Jira: NCSDK-36461

Signed-off-by: Mateusz Kapala <mateusz.kapala@nordicsemi.no>
@mkapala-nordic mkapala-nordic requested a review from a team November 28, 2025 15:11
@NordicBuilder NordicBuilder added the doc-required PR must not be merged without tech writer approval. label Nov 28, 2025
@NordicBuilder
Copy link
Contributor

CI Information

To view the history of this post, click the 'edited' button above
Build number: 1

Inputs:

Sources:

more details

Github labels

Enabled Name Description
ci-disabled Disable the ci execution
ci-all-test Run all of ci, no test spec filtering will be done
ci-force-downstream Force execution of downstream even if twister fails
ci-run-twister Force run twister
ci-run-zephyr-twister Force run zephyr twister
List of changed files detected by CI (0)

Outputs:

Toolchain

Version:
Build docker image:

Test Spec & Results: ✅ Success; ❌ Failure; 🟠 Queued; 🟡 Progress; ◻️ Skipped; ⚠️ Quarantine

  • ❌ Toolchain
  • ❌ Build twister
  • ❌ Integration tests

Note: This message is automatically posted and updated by the CI

@github-actions
Copy link

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

Labels

doc-required PR must not be merged without tech writer approval.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants