Skip to content

soc: ironside: Add UUID info to boot report #3119

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 1,214 commits into
base: main
Choose a base branch
from

Conversation

ayla-nordicsemi
Copy link
Contributor

  • UUID is added to the boot report to make it available to application core.

krish2718 and others added 30 commits July 21, 2025 12:20
…covery

When running Zperf traffic + scan in the background eventual we hit a
deadlock:

 * sysworkq: recovery->stop_zep->vif_lock->hal_disable->wait lock_rx
 * nrf70_bh_wq: event_tasklet->lock_rx->disp_scan_done->
             disp_scan_res_get_zep-> waiting on vif_lock

The traffic triggers recovery (another bug) and conflicts with display
scan.

Fix by moving scan results processing to system workqueue instead of
doing it in the FMAC event callback context, this is how supplicant scan
also works.

Upstream PR #: 93377

Signed-off-by: Chaitanya Tata <[email protected]>
hostap needs more eventfd to function so set a proper default value.

Signed-off-by: Jukka Rissanen <[email protected]>
(cherry picked from commit 410afba)
There was an observed situation where the assert checking frame length
is below 128 bytes was hit. While the nrf-802154 checks that the frame
does not exceed that size, there might exists code paths that allow such
packets to pass through.

The change removes the assert and drops the packet instead.
An error is also printed to allow for further debugging.

Signed-off-by: Rafał Kuźnia <[email protected]>
(cherry picked from commit 5925d71)
The nrf-802154 driver may be unable to acquire a valid timestamp under
rare conditions. In such case, the nrf_802154_received_timestamp_raw
reports time=NRF_802154_NO_TIMESTAMP.
The shim implementation must not calculate the PHR timestamp when
receiving this value, because doing so results in an assert in
ptp_packet.h due to a negative time value.
When the driver is unable to capture the timestamp, the packet is
assigned zero as its timestamp.

Signed-off-by: Rafał Kuźnia <[email protected]>
(cherry picked from commit 3cccfa5)
…54LM20 rename

Remove duplicated test configuration after
nrf54l20pdk/nrf54l20/cpuxxx was renamed to
nrf54lm20dk/nrf54lm20a/cpuxxx.

Signed-off-by: Sebastian Głąb <[email protected]>
(cherry picked from commit 1c221bc)
…m20dk

Add overlay required to run the sample on
nrf54lm20dk/nrf54lm20a/cpuapp.

Signed-off-by: Sebastian Głąb <[email protected]>
(cherry picked from commit 8892550)
…s of nRF overlays

Remove parts of overlays for nRF targets that were just copied from
the adc_dt sample but are not used by the adc_sequence sample and only
generate confusion here.

Signed-off-by: Andrzej Głąbek <[email protected]>
(cherry picked from commit dea8a3e)
…n on nRF54x

Add sample variant to run code in 8-bit resolution on nRF54x series.

Signed-off-by: Jakub Zymelka <[email protected]>
(cherry picked from commit 7c14d7e)
…nrf54lm20dk

Add overlay required to run the sample on
nrf54lm20dk/nrf54lm20a/cpuapp.

Signed-off-by: Sebastian Głąb <[email protected]>
(cherry picked from commit 3c9368b)
… rename

Remove duplicated test configuration after
nrf54l20pdk/nrf54l20/cpuxxx was renamed to
nrf54lm20dk/nrf54lm20a/cpuxxx.

Signed-off-by: Sebastian Głąb <[email protected]>
(cherry picked from commit 94d35ec)
…ow for nrf54*

Remove duplicated test configuration after
nrf54l20pdk/nrf54l20/cpuxxx was renamed to
nrf54lm20dk/nrf54lm20a/cpuxxx.

Extend platform_allow with other nrf54* targets (overlays for these
targets already exist in the boards directory).

Signed-off-by: Sebastian Głąb <[email protected]>
(cherry picked from commit 589c85d)
…e/nucleo_h503rb

Add nucleo_f401re and nucleo_h503rb boards to rtio_loopback tests
on the I2C driver.

Signed-off-by: Etienne Carriere <[email protected]>
(cherry picked from commit f32cd93)
… nrf54lm20dk

Add overlay required to run the sample on
nrf54lm20dk/nrf54lm20a/cpuapp.

Signed-off-by: Sebastian Głąb <[email protected]>
(cherry picked from commit fc164f4)
Add overlay required to run the sample on
nrf54lm20dk/nrf54lm20a/cpuapp.

Signed-off-by: Sebastian Głąb <[email protected]>
(cherry picked from commit c25e030)
Remove duplicated test configuration after
nrf54l20pdk/nrf54l20/cpuxxx was renamed to
nrf54lm20dk/nrf54lm20a/cpuxxx.

Signed-off-by: Sebastian Głąb <[email protected]>
(cherry picked from commit 537b1ef)
… targets

Add overlays required to run the sample on
- nrf54h20dk/nrf54h20/cpuapp,
- nrf54l15dk/nrf54l15/cpuapp,
- nrf54lm20dk/nrf54lm20a/cpuapp.

Signed-off-by: Sebastian Głąb <[email protected]>
(cherry picked from commit e314eb6)
Add overlay required to run the sample on
nrf54lm20dk/nrf54lm20a/cpuapp.

Signed-off-by: Sebastian Głąb <[email protected]>
(cherry picked from commit 231b663)
…name

Remove duplicated test configuration after
nrf54l20pdk/nrf54l20/cpuxxx was renamed to
nrf54lm20dk/nrf54lm20a/cpuxxx.

Signed-off-by: Sebastian Głąb <[email protected]>
(cherry picked from commit 3cf784c)
Add overlay required to run the sample on
nrf54lm20dk/nrf54lm20a/cpuapp.

Signed-off-by: Sebastian Głąb <[email protected]>
(cherry picked from commit 9f0dc12)
Add overlay required to run the test on
nrf54lm20dk/nrf54lm20a/cpuapp.

Signed-off-by: Sebastian Głąb <[email protected]>
(cherry picked from commit cd26bd7)
…name

Remove duplicated test configuration after
nrf54l20pdk/nrf54l20/cpuxxx was renamed to
nrf54lm20dk/nrf54lm20a/cpuxxx.

Signed-off-by: Sebastian Głąb <[email protected]>
(cherry picked from commit 591ff81)
…4LM20 rename

Remove duplicated test configuration after
nrf54l20pdk/nrf54l20/cpuxxx was renamed to
nrf54lm20dk/nrf54lm20a/cpuxxx.

Signed-off-by: Sebastian Głąb <[email protected]>
(cherry picked from commit 0272230)
Remove duplicated test configuration after
nrf54l20pdk/nrf54l20/cpuxxx was renamed to
nrf54lm20dk/nrf54lm20a/cpuxxx.

Signed-off-by: Sebastian Głąb <[email protected]>
(cherry picked from commit dcd1a14)
… nrf54lm20dk

Add overlay required to run the test on
nrf54lm20dk/nrf54lm20a/cpuapp.

Signed-off-by: Sebastian Głąb <[email protected]>
(cherry picked from commit cc3b92e)
…rename

Remove duplicated test configuration after
nrf54l20pdk/nrf54l20/cpuxxx was renamed to
nrf54lm20dk/nrf54lm20a/cpuxxx.

Signed-off-by: Sebastian Głąb <[email protected]>
(cherry picked from commit d096e83)
…F54LM20 rename

Remove duplicated test configuration after
nrf54l20pdk/nrf54l20/cpuxxx was renamed to
nrf54lm20dk/nrf54lm20a/cpuxxx.

Signed-off-by: Sebastian Głąb <[email protected]>
(cherry picked from commit 85f4925)
…20 rename

Remove duplicated test configuration after
nrf54l20pdk/nrf54l20/cpuxxx was renamed to
nrf54lm20dk/nrf54lm20a/cpuxxx.

Signed-off-by: Sebastian Głąb <[email protected]>
(cherry picked from commit 6b70d35)
… driver

Add analog comparator driver for ITE it51xxx chip.

Signed-off-by: Yunshao Chiang <[email protected]>
(cherry picked from commit 5a2765d)
…for ek_ra8p1

Add support test app `gpio_loopback` for Renesas ek_ra8p1 board

Signed-off-by: Khoa Nguyen <[email protected]>
(cherry picked from commit 3367bd4)
… on nrf54lm20dk

Add overlay required to run the test on
nrf54lm20dk/nrf54lm20a/cpuapp.

Signed-off-by: Sebastian Głąb <[email protected]>
(cherry picked from commit e8a5802)
jonathannilsen and others added 24 commits July 31, 2025 13:53
This reverts commit 8955e01.

Signed-off-by: Jonathan Nilsen <[email protected]>
Replaces using an odd mix of Kconfig dts for partition offsets with
just use dts for non-secure board targets

Signed-off-by: Jamie McCrae <[email protected]>
(cherry picked from commit e68f8e3)
…itionally

All Nordic boards were enabling CONFIG_HW_STACK_PROTECTION
unconditionally, which is usually not a problem except if the particular
application happens to want to disable the MPU (or equivalent hardware
for RISC-V). In that case, the following warning is shown:

warning: HW_STACK_PROTECTION (defined at arch/Kconfig) was assigned the
value 'y' but got the value 'n'.
Check these unsatisfied dependencies: ARCH_HAS_STACK_PROTECTION (=n).

In order to avoid this warning, conditionally enable the hardware stack
protection only when the architecture supports it.

Signed-off-by: Carles Cufi <[email protected]>
(cherry picked from commit 9a9ae6f)
Non-secure variants for nRF7002 DK were removed from upstream
in commit 10d4973. Revert these
changes downstream, so that the NS variants are still available.

Signed-off-by: Andrzej Głąbek <[email protected]>
Signed-off-by: Johann Fischer <[email protected]>
(cherry picked from commit 06171de)
This patch backports the nrf9131ek to a time before tfm was refactored.

To be reverted when TF-M is updated.

Signed-off-by: Maximilian Deubel <[email protected]>
(cherry picked from commit 410528f)
If the application uses slot 1 (i.e. in Direct XIP mode),
boot radio slot 1 instead of slot 0.

Signed-off-by: Tomasz Chyrowicz <[email protected]>
(cherry picked from commit 9dd514c)
…rad remotes

Switch which board is the remote in the test case for
mbox communication between nrf54h20dk/nrf54h20/cpuapp and
nrf54h20dk/nrf54h20/cpurad, making cpurad the remote instead.
This is done to prepare the sample for executing with IronSide SE,
where using cpurad as the main board doesn't make as much sense,
since cpuapp has to start cpurad.

Signed-off-by: Jonathan Nilsen <[email protected]>
(cherry picked from commit d6673e1)
…e only

Update this multi-core test to always run the `main` and `remote` images
on cpuapp and cpurad respectively.

This is to prepare the test for running with IronSide SE, in which case
keeping cpurad as the main board target wouldn't make as much sense,
because cpurad would have to be started by cpuapp.

Signed-off-by: Grzegorz Swiderski <[email protected]>
(cherry picked from commit 559ace1)
…variants

This replaces the legacy SDFW compatible board configuration with the
IronSide SE compatible one, thus removing support for running samples
and tests on nRF54H20 devices with the old firmware.

All applications are expected to work on `nrf54h20dk/nrf54h20/cpuapp`
out of the box. For other board targets, all applications are expected
to boot, but may require additional peripheral configuration in UICR.
Build system support for the new UICR format is to be added separately.

Co-authored-by: Jonathan Nilsen <[email protected]>
Signed-off-by: Jonathan Nilsen <[email protected]>
Signed-off-by: Grzegorz Swiderski <[email protected]>
(cherry picked from commit b4c18e8)
CONFIG_USE_DT_CODE_PARTITION had to be disabled to add MCUboot support.
As a result, CONFIG_FLASH_LOAD_SIZE was left at zero, which means that
the linker would claim all available MRAM for the app core.

For now, we can't allow that, because the default nRF54H20 DK memory map
divides MRAM between multiple cores in order to support various samples.

Signed-off-by: Grzegorz Swiderski <[email protected]>
(cherry picked from commit b7b8b27)
…F54H

nrf-regtool will not be used as part of IronSide SE compatible builds.
It will remain in use for the nRF92 series, until that too undergoes a
switch from SDFW to IronSide SE.

Signed-off-by: Grzegorz Swiderski <[email protected]>
(cherry picked from commit 835649a)
Update memory map to be compatible with latest IronSide.

180kB MRAM is reserved.

Co-authored-by: Håkon Amundsen <[email protected]>
Signed-off-by: Håkon Amundsen <[email protected]>
Signed-off-by: Jonathan Nilsen <[email protected]>
(cherry picked from commit 7324eea)
Refactor the default RAM memory map on nrf54h20dk:

Removes use of "nordic,owned-memory" which is no longer needed on
nrf54h20. Reserved memory nodes that were under "nordic,owned-memory"
have been moved directly under reserved-memory.

The memory shared between cpuapp-cpusec and cpurad-cpusec in RAM0x
is no longer used with IronSide, since IPC buffers toward the secure
domain are at new fixed locations. The cpuapp_data region
has been expanded to fill the available space in RAM0x when removing
these shared memory regions.

Signed-off-by: Jonathan Nilsen <[email protected]>
(cherry picked from commit 38e6002)
With IronSide SE there is only one defined UICR which is at
the location of the APPLICATION UICR. Update the devicetree
definition accordingly, and use the "nordic,nrf-uicr" compatible
on the node since the domain distinction added by the v2 compatible
is no longer relevant.

Signed-off-by: Jonathan Nilsen <[email protected]>
(cherry picked from commit b43ae17)
Add support for generating UICR and associated artifacts in a
format compatible with IronSide SE, to be used for Nordic SoCs
in the Haltium family.

The main feature added with this is the ability to configure certain
global domain peripherals that are managed by the secure domain
through setting UICR.PERIPHCONF. This register points at a blob of
(register address, register value) pairs which are loaded
into the peripherals by IronSide SE ahead of the application boot.

The added helper macros in uicr.h can be used to add register
configurations to the PERIPHCONF. Entries added through these macros
are then extracted by a script, post-processed and placed in a blob
located at specific part of MRAM.

A default PERIPHCONF configuration has been added for the nrf54h20
soc to support the standard BLE use case (matching the configuration
in the soc devicetree).

Signed-off-by: Jonathan Nilsen <[email protected]>
(cherry picked from commit 56b6e57)
…if present

Program the new UICR and PERIPHCONF artifacts if they are generated.
These are required for the application to operate properly if they
are in use.

Signed-off-by: Jonathan Nilsen <[email protected]>
(cherry picked from commit eb7239c)
Update the recover mechanism for nrf54h to only call recover
once. Using nrfutil device recover with both --core Network and
--core Application is redundant with IronSide SE as both of these
map to the same operation which does a full erase of the device MRAM.

Additionally, recovering twice in a row specifically in a nrfutil
batch file (which is used by this runner implementation) triggers some
odd behavior with the current latest version of
nrfutil device + IronSide SE, which can cause the device to enter a
reset loop and appear unresponsive and preventing 'west flash --recover'
from working properly.

Signed-off-by: Jonathan Nilsen <[email protected]>
(cherry picked from commit 78a6157)
…rammed

Booting the radio core when it is not programmed will typically
cause a reset loop. This can happen when programming multiple
images to a device, and the app core image is programmed before
the radio core.

With this change we avoid the reset loop in that case.

Signed-off-by: Håkon Amundsen <[email protected]>
(cherry picked from commit 7697eff)
Fixes generating a library for devices that do not need it which
gives a cmake warning

Signed-off-by: Jamie McCrae <[email protected]>
(cherry picked from commit 85d4ebc)
Upstream PR #: 92340

Added support for the IronSide TDD service which allows configuring and
powering the trace and debug domain of the nrf54h20.
Also provide option to start the trace and debug domain in the soc start
sequence.

Signed-off-by: Karsten Koenig <[email protected]>
Upstream PR #: 92340

Configure the CTRLSEL value and the clock pin so that the TRACE pins
work when the TDD gets used.

Signed-off-by: Karsten Koenig <[email protected]>
Upstream PR #: 92340

Added support for ETM tracing via TPIU to the JLinkScript.

Signed-off-by: Karsten Koenig <[email protected]>
Upstream PR #: 93768

Format a few files with clang-format.

Signed-off-by: Jonathan Nilsen <[email protected]>
- UUID is added to the boot report to make
it available to application core.

Signed-off-by: Aymen Laouini <[email protected]>
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.