Skip to content

ncsdk-33093 - Accessing bootloader information in application #2838

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

Conversation

adsz-nordic
Copy link

WIP

ryanjh and others added 30 commits April 3, 2025 09:40
…plete events

If the HCI status of a complete event is not BT_HCI_ERR_SUCCESS,
the remaining parameters could be invalid.

In this case, the params is passed as NULL pointer to the callbacks.
- LE CS Read Remote Supported Capabilities Complete event
- LE CS Read Remote FAE Table Complete event
- LE CS Config Complete event
- LE CS Security Enable Complete event
- LE CS Procedure Enable Complete event

This change avoids forwarding the invalid fileds to the applications.

Signed-off-by: Ryan Chu <[email protected]>
(cherry picked from commit c9240cc)
… events

The CS complete callbacks provide both status and params.
In the case of errors, NULL pointer is passed to the params of callbacks.

Signed-off-by: Ryan Chu <[email protected]>
(cherry picked from commit 9ba60d3)
Both EXMIF and SPIS peripherals are claiming GPIO port 6 pin 0, but
with different CTRLSEL values. This will trigger a build error with
nrf-regtool 9.0.0 as it is not possible to apply this configuration
to hardware.

Fix the issue by disabling the EXMIF node that is enabled by default.

Upstream PR #: 88017

Signed-off-by: Håkon Amundsen <[email protected]>
Pull in support for building OSAL code as a standalone library.

Signed-off-by: Chaitanya Tata <[email protected]>
(cherry picked from commit d1ebd66)
Move the cmake file of OSAL to it's own repo and build as a standalone
library, this is porting friendly.

Signed-off-by: Chaitanya Tata <[email protected]>
(cherry picked from commit f74ff15)
These are duplicates of nRF7o bus library.

Signed-off-by: Chaitanya Tata <[email protected]>
(cherry picked from commit f8b3320)
Add appropriate tags for these to be run in CI.

Signed-off-by: Chaitanya Tata <[email protected]>
(cherry picked from commit 1d5447d)
Update the `nrf_wifi` repository so that git ignores binary blobs
fetched by `west blobs fetch nrf_wifi`.

Signed-off-by: Jordan Yates <[email protected]>
(cherry picked from commit 1b0fe8f)
Pull fix to add NULL checks to avoid crashes.

Signed-off-by: Chaitanya Tata <[email protected]>
(cherry picked from commit 8444e26)
Update the driver to use the updated mode specific
data structure names.

Signed-off-by: Sachin D Kulkarni <[email protected]>
(cherry picked from commit 922d207)
`NRF70_SYSTEM_WITH_RAW_MODES` is more accurately described as an
additional option on top of `NRF70_SYSTEM_MODE`, not as a unique
choice of `NRF70_OPER_MODES`.

This allows the elimination of multiple `NRF70_SYSTEM_MODE ||
NRF70_SYSTEM_WITH_RAW_MODES` dependencies.

Signed-off-by: Jordan Yates <[email protected]>
(cherry picked from commit d95de82)
This symbol now has the same meaning as `NRF70_SYSTEM_MODE`.

Signed-off-by: Jordan Yates <[email protected]>
(cherry picked from commit 2e711aa)
Update the nrf70 Wi-Fi driver to use the mode specific
APIs (as a precursor to enable combining modes as required).

Signed-off-by: Sachin D Kulkarni <[email protected]>
(cherry picked from commit a6dfdb9)
Add test cases for SoftAP and P2P modes.

Signed-off-by: Sachin D Kulkarni <[email protected]>
(cherry picked from commit 522387e)
…ode.

Fix compilation issues for SoftAP mode which were missed in the mode
specific code changes.

Signed-off-by: Sachin D Kulkarni <[email protected]>
(cherry picked from commit 5f69ab7)
Pull in the latest fixes for the SAP and P2P mode builds.

Signed-off-by: Sachin D Kulkarni <[email protected]>
(cherry picked from commit d2e0bb2)
Add wifi_spi label to nRF54h and nRF54l dts files to help
in shield overlay files

Signed-off-by: Bansidhar P.M <[email protected]>
(cherry picked from commit eb93df2)
Create dedicated memory pools for Wi-Fi management and
data operations (defaults: 20KB for management and 130KB for data).
Setting Data pool to 110KB for non-Nordic SOCs to resolve
RAM overflows seen in twister runs.

Remove the `HEAP_MEM_POOL_ADD_SIZE_NRF70` hint since we are
creating separate heaps for driver and not allocating from
system heap.

Signed-off-by: Ravi Dondaputi <[email protected]>
(cherry picked from commit aa0cb68)
…ry pools

Pull changes for creating separate memory pools for control traffic
and data traffic.

Signed-off-by: Ravi Dondaputi <[email protected]>
(cherry picked from commit 7f775c3)
With introduction of OSAL wrapper for memory allocation, usage of
zephyr's native malloc calls need to be removed. When NRF70 driver
is not enabled, OSAL needs to be built explicitly.

Signed-off-by: Ravi Dondaputi <[email protected]>
(cherry picked from commit 208e686)
Some file names are changed, fix file names in
doxygen comments.

Signed-off-by: Kapil Bhatt <[email protected]>
(cherry picked from commit 46829bb)
With recent code restructuring file name and path
has been changed in nrf_wifi lib.

Signed-off-by: Kapil Bhatt <[email protected]>
(cherry picked from commit 9285344)
… info

Pull in change to include reg chan info along with reg domain in the
GET_REG_DOMAIN event for the radio test and offloaded raw TX modes.

Signed-off-by: Sachin D Kulkarni <[email protected]>
(cherry picked from commit a34198b)
Pull in fix for CI failure in Offloaded raw TX mode caused
due to commit 0cd3bb2291a7dd22f4cdb1a4cd935a213c2bbfab in nrf_wifi

Signed-off-by: Sachin D Kulkarni <[email protected]>
(cherry picked from commit 69ce6af)
Add prompt to Kconfig NRF70_SYSTEM_WITH_RAW_MODES.
It is assigned in a configuration file, but is not directly
user-configurable (has no prompt). It gets its value
indirectly from other symbols.

Signed-off-by: Kapil Bhatt <[email protected]>
(cherry picked from commit 3ef187d)
…ents

Fix doxygen comments of arguments.

Signed-off-by: Kapil Bhatt <[email protected]>
(cherry picked from commit 5f3bd5d)
nRF70 driver now uses a separate heap, so, no need to explicitly
configure the kernel heap.

Signed-off-by: Chaitanya Tata <[email protected]>
(cherry picked from commit 0b8601c)
nRF70 now by default uses variale buffers.

Signed-off-by: Chaitanya Tata <[email protected]>
(cherry picked from commit 8fe1df6)
Fine-tune the heap to get peak UDP (TX and RX) results but with minimal
heap consumption.

Signed-off-by: Chaitanya Tata <[email protected]>
(cherry picked from commit be4c79b)
This uses the network packet as is without the need for a copy all the
way till the packet is handed over to RPU.

Signed-off-by: Chaitanya Tata <[email protected]>
(cherry picked from commit 5119f9c)
57300 and others added 25 commits April 30, 2025 10:26
IRONside calls are remote procedure calls which comprise the runtime
interface of Nordic IRONside SE. They are realized using a simple IPC
mechanism.

A local domain (client) issues requests to the server by exchanging data
in shared memory, which is divided into evenly sized buffers. The client
selects a buffer, writes a request into it, and sends it to the server.
The server processes that request and writes a response into the same
buffer before returning it to the client.

This patch adds the initial client-side implementation on top of MBOX.
It features cache management and a blocking alloc/dispatch/release API
for synchronous, zero-copy transfers.

A new devicetree binding is added to support this implementation. It is
patterned after the `zephyr,ipc-*` bindings, where each node associates
a pair of mailboxes and a shared memory region.

Signed-off-by: Grzegorz Swiderski <[email protected]>
(cherry picked from commit 47df9ec)
Applied as noup because of conflicts with:
246cb42 [nrf fromlist] soc: add ironside boot report

Upstream PR #: 88937

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]>
…on for nrf_clock.h

This reverts commit ee05087.
Since all devices now support nrf_clock HAL as of nrfx 3.10

Signed-off-by: Robert Robinson <[email protected]>
(cherry picked from commit 9c672fb)
Add module which can measure CPU idle time. Idle time is measured in
the pre/post CPU idle hooks but they are not provided by this module.

Signed-off-by: Krzysztof Chruściński <[email protected]>
(cherry picked from commit c7d7aac)
Add new tracing API which is called when core is exiting from idle.
Current implementation is using it to track CPU load. Implementation
in tracing_none is now weak so it can be used if given backend does
not support new API call.

When CONFIG_CPU_LOAD is enabled then sys_trace_idle also calls a
hook which stores the timing information when CPU entered idle.

Signed-off-by: Krzysztof Chruściński <[email protected]>
(cherry picked from commit 4cbafc6)
Add calls to sys_trace_idle_exit when leaving idle state. It is
used to track CPU load.

Signed-off-by: Krzysztof Chruściński <[email protected]>
(cherry picked from commit 0ec2ad5)
 Add test for CPU load.

Signed-off-by: Krzysztof Chruściński <[email protected]>
(cherry picked from commit 688b561)
Add documentation for CPU load module.

Signed-off-by: Krzysztof Chruściński <[email protected]>
(cherry picked from commit f68a086)
Add sys_trace_idle_exit to RISCV cpu_idle functions and allow
enabling CPU_LOAD module for RISCV and disable it for SMP.

Signed-off-by: Krzysztof Chruściński <[email protected]>
(cherry picked from commit 4026daa)
Allow test execution for riscv since it now supports cpu_load module.

Signed-off-by: Krzysztof Chruściński <[email protected]>
(cherry picked from commit 29bc28a)
Add calls to sys_trace_idle and sys_trace_idle_exit in nrf54h specific
idle states to allow measuring CPU load on nrf54h20 when power
management is enabled.

Signed-off-by: Krzysztof Chruściński <[email protected]>
(cherry picked from commit 37fe750)
…rd variant

The required jlink script was not added due to missing entry in the
board check. Also change the check for app vs rad to be on SOC level.

Signed-off-by: Håkon Amundsen <[email protected]>
(cherry picked from commit 4edc003)
This is needed for next generation Secure Domain firmware.

Upstream PR #: 88908

Signed-off-by: Sebastian Bøe <[email protected]>
Protection circuit must be disabled to use NFCT antenna pins
as GPIOs. It can be done by adding nfct-pins-as-gpios to nfct
node in the devicetree in cpuapp. Node must be disabled as
NFCT is not used. In legacy platforms same property was added
to uicr node because that information was stored in UICR. In
nrf54h20 it is not part of UICR so property is part of nfct
node.

Signed-off-by: Krzysztof Chruściński <[email protected]>
(cherry picked from commit 7249fac)
Port SYS_INIT to use soc_early_init_hook as SYS_INITs are legacy.

Upstream PR #: 88908

Signed-off-by: Sebastian Bøe <[email protected]>
…service

Add an IPC service API for booting local domain cores.

Upstream PR #: 88908

Signed-off-by: Sebastian Bøe <[email protected]>
…nit_hook

Boot the radiocore from the app in soc_late_init_hook.

Upstream PR #: 88908

Signed-off-by: Sebastian Bøe <[email protected]>
…/cpuapp/iron

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

Upstream PR #: 88908

Signed-off-by: Sebastian Bøe <[email protected]>
… test

nrf54h should be capable of operating
the CAN interface when GPD is enabled.

Signed-off-by: Bartosz Miller <[email protected]>
(cherry picked from commit a1a8d28)
…RF_IRONSIDE

Add a promptless symbol that can be selected by different drivers. It is
there to ensure that the corresponding library is not added to the build
unless it contains at least one source file.

Signed-off-by: Grzegorz Swiderski <[email protected]>
(cherry picked from commit 3353bbc0661e66ff78479c04c99420bff12eede6)
Events used in `call.c` should've been defined as static.

Signed-off-by: Grzegorz Swiderski <[email protected]>
(cherry picked from commit 52f834068a076f6b3d675fe1dbf11401f03cf081)
Applied as noup because of conflicts.

Upstream PR #: 89333

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]>
Upstream PR #: 89333

Enable the cpusec_bellboard by default for the cpuapp iron board variant
so that IPC toward the secure domain is available by default. Because
IPC is needed to boot the radio core, this fits the standard use case.

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

Upstream PR #: 89333

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]>
…o 26

The tx-en-settle-time-us is set to 26 to take into account
the time needed for the RF output power rise time of the nRF5 SoC.

Upstream PR #: 89465

Signed-off-by: Andrzej Kuros <[email protected]>
…4h20

Example usage of bootloader info for reporting mcuboot version from
application.

Signed-off-by: Adam Szczygieł <[email protected]>
Copy link

sonarqubecloud bot commented May 7, 2025

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.