Skip to content

Iron replace update #3102

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,173 commits into
base: main
Choose a base branch
from
Draft

Conversation

nordic-babu
Copy link
Contributor

No description provided.

nordic-krch and others added 30 commits July 21, 2025 07:22
…duce register access"

This reverts commit 6346fbb.

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

Speed up execution of the interrupt handler and sys_clock_set_timeout().
Sys_clock_set_timeout() can be called in two scenarios: from previous
timeout expiration handler or freely. If the former case fast path
can be used since CC value in the GRTC register just expired and it
can be used as a reference for CCADD setting. This is only a single
register write so it's much faster. In the latter a longer procedure
is applied which also happens in two variants. If value which is
set in CC is further in the future (e.g. K_FOREVER was set before) then
CC can be safely overwritten with a new value without a risk of
triggering unexpected COMPARE event. If value in CC is earlier than
the new CC value (if earlier timeout was aborted) then there is a
risk of COMPARE event happening while it is being overwritten.
That case requires long and safer procedure of setting CC.

Update hal_nordic with changes in the nrfx_grtc driver which are
needed for nrf_grtc_timer changes.

Upstream PR #: 87944

Signed-off-by: Krzysztof Chruściński <[email protected]>
With NRF security, higher heap requirement is seen for operating
with RSA-3072 based certificates. Add a NRF SoC specific conf in
snippets to handle this.

Upstream PR #: 93096

Signed-off-by: Ravi Dondaputi <[email protected]>
Add AES-only cipher certificates. Useful for systems which
have only AES support and DES is not enabled.

Upstream PR #: 93096

Signed-off-by: Ravi Dondaputi <[email protected]>
…cted storage

Add config options required for storing certificates in protected
storage, and to free up space of ROM to accommodate the additional
features that are enabled for TFM.

Upstream PR #: 93096

Signed-off-by: Ravi Dondaputi <[email protected]>
…nitor mode"

This reverts commit 807abfe.

Signed-off-by: Chaitanya Tata <[email protected]>
Add const qualifiers to the driver ops to save on RAM usage.

Signed-off-by: Benjamin Cabé <[email protected]>
(cherry picked from commit 8d6316c)
Swap the order, IOVDD should be powered first and then BUCKEN.

Signed-off-by: Chaitanya Tata <[email protected]>
(cherry picked from commit 9cd933e)
Before powering off remove co-ex GPIOs.

Signed-off-by: Chaitanya Tata <[email protected]>
(cherry picked from commit 2b0876c)
By default QSPI is uninitialized after every transaction, so, deinit is
a no-op, but if QSPI_LOW_POWER is disabled, then we need to uninitialize
the QSPI in the deinit.

Signed-off-by: Chaitanya Tata <[email protected]>
(cherry picked from commit 4eb7b9f)
Release the SPI during the deinit to put respective GPIOs in low-power
state or disconnected.

Signed-off-by: Chaitanya Tata <[email protected]>
(cherry picked from commit 945ddf0)
Provide option to revert to K_HEAP instead of using
dedicated heaps in Wi-Fi driver.

Signed-off-by: Ravi Dondaputi <[email protected]>
(cherry picked from commit 11a3969)
When QSPI LPM is enabled, QSPI will already be uninitialized, and during
deinit if uninitialized is being called again then it leads to a hang as
it waits for mem busy check to pass which it won't.

Fix by checking if the device is initialized before calling
uninitialize.

Signed-off-by: Chaitanya Tata <[email protected]>
(cherry picked from commit 1fb2c56e86f2518b67ed56bae1736396afd791c6)
Using ms and converting to us is a bad idea as we still get ms
granualrity in us units. Use the proper API to get us granularity.

Signed-off-by: Chaitanya Tata <[email protected]>
(cherry picked from commit 54573e2)
Defaults cannot be overidden (even with configdefault extension), they
only work if the original symbol is defined after the override e.g.,
"drivers and then subsys/net" but for kernel symbols,the default value
overrides don't work due "kernel and drivers" order, the kernel defines
the original symbol with the default and then it cannot be overridden.

Move the kernel symbol override to the original definition to make it
affect. Else any sample that uses nRF70 but doesn't enable WPA
supplicant ends up with 1024 and crashes.

Signed-off-by: Chaitanya Tata <[email protected]>
(cherry picked from commit 4bd1d39)
In case FMAC API fails, increment the TX drop counter, helpful in
debug.

Signed-off-by: Chaitanya Tata <[email protected]>
(cherry picked from commit e728f80)
…ull check

Deleted a redundant check for 'rpu_ctx_zep' pointer after it was already
dereferenced.

Clarifies code logic in nrf_wifi_get_power_save_config function.

Signed-off-by: Gaetan Perrot <[email protected]>
(cherry picked from commit bac20e4)
Return proper error codes for xmit instead of generic -1.

Signed-off-by: Chaitanya Tata <[email protected]>
(cherry picked from commit 001f34d)
Rpu recovey debug stats are stored in hal_dev_ctx which is not
persistent in case of interface is brought down/up. Need to add
in nrf_wifi_ctx_zep and update before interface goes down.

Signed-off-by: Kapil Bhatt <[email protected]>
(cherry picked from commit dd7413d)
Automatically hide the nRF7x interface from the connection manager if
the TX path is disabled (scan only mode). This prevents function calls
like `conn_mgr_all_if_up(true)` from bringing up the interface which
can never result in a connection.

Signed-off-by: Jordan Yates <[email protected]>
(cherry picked from commit 79edfc012803572b1c75a4667f03bfbb4fa9b6b0)
Monitor mode doesn't require station mode. Disabling station mode
require necessary changes to work monitor mode.

Upstream PR #: 92226

Signed-off-by: Kapil Bhatt <[email protected]>
…de from monitor"

This reverts commit 926fafb.

Signed-off-by: Chaitanya Tata <[email protected]>
Fixes memory leak seen during continuous raw TX transmission.

Signed-off-by: Chaitanya Tata <[email protected]>
(cherry picked from commit d5c7cb1)
Add a snippet for Wi-Fi credentials support. Update the heap sizes as
required for enterprise mode.

Signed-off-by: Ravi Dondaputi <[email protected]>
(cherry picked from commit 4c14c618f69e8ae0d5ee95a6abbc8a1d5f89afac)
…lity issue.

1. When external station connects to soft ap, zephyr
   hostap will fill sta_info before sending mgmt event
   to l2 wifi layer.
   sta_info.twt_capable should be filled with external
   station capability rather than soft ap self.
2. Rename hapd_is_twt_capable to
   hapd_get_sta_he_twt_capable.
   Try to get twt_capa form capability of external station
   rather than soft ap.

Signed-off-by: Qiankun Li <[email protected]>
(cherry picked from commit 7ffc538d135379ff673d5b5ae80fa790f5f67051)
Earlier we had socketpair to pass wifi event information from
wpa_supplicant side to zephyr adaption layer. This is now replaced
by k_fifo to save some RAM.

Signed-off-by: Jukka Rissanen <[email protected]>
(cherry picked from commit 96818f4)
In case anyone enabled EAP_*_ALL explicitly without enabling the
Enterprise then it leads to a build error.

Fix by adding the dependency.

Signed-off-by: Chaitanya Tata <[email protected]>
(cherry picked from commit 014dee7)
If the disconnect event is raised before the network has been connected,
report the connection result as `WIFI_STATUS_CONN_FAIL`, instead of as
`WIFI_REASON_DISCONN_SUCCESS`, which is interpretted as
`WIFI_STATUS_CONN_SUCCESS`.

Signed-off-by: Jordan Yates <[email protected]>
(cherry picked from commit 9245f58)
Kronosblaster and others added 28 commits July 29, 2025 11:32
Added TISCI driver for supported devices using the binding ti,k2g-sci.
This is used to communicate via the secury proxy channel for clock,
resource and power domain management.
Refer: https://software-dl.ti.com/tisci/esd/latest/2_tisci_msgs/general/TISCI_header.html

Signed-off-by: Dave Joseph <[email protected]>
(cherry picked from commit 95c20c3)
Until register ABB->STATUSANA is visible it must be checked using
defined offset to base ABB register.

Signed-off-by: Łukasz Stępnicki <[email protected]>
(cherry picked from commit 24322c6)
s/IRONside/IronSide/g

Signed-off-by: Grzegorz Swiderski <[email protected]>
(cherry picked from commit 75dd614)
…o soc/nordic

Move the IronSide APIs to soc/nordic from drivers/firmware since
these are vendor specific APIs. The header files are now included
from <nrf_ironside/*.h>. Adjust code that uses these APIs accordingly.

Also move the DT binding for "nordic,ironside-call" from
bindings/firmware to bindings/misc.

Signed-off-by: Jonathan Nilsen <[email protected]>
(cherry picked from commit b18c326)
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 38e60025b0c2ed137109ec5dd8ecae1d09435ac6)
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 b43ae17fdd460a5963b985fed1ff11ea83e82bb7)
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]>
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.