Skip to content

Platform nrf7120e sdk nrf - #267

Closed
rob-robinson-14 wants to merge 80 commits into
nrfconnect:mainfrom
rob-robinson-14:platform-nrf7120-sdk-nrf
Closed

rob-robinson-14 wants to merge 80 commits into
nrfconnect:mainfrom
rob-robinson-14:platform-nrf7120-sdk-nrf

Conversation

@rob-robinson-14

Copy link
Copy Markdown
Contributor

Add nRF7120e soc support in tf-m

Required a rebase against PR263 to resolve conflicts.

manifest-pr-skip

valeriosetti and others added 30 commits May 26, 2026 13:06
…_platform_init

"result" is used only when CRYPTO_HW_ACCELERATOR is defined. Move its
definition under that guard.

Change-Id: I468a2d1ae148911a7b36a8133603fb81e077e1cc
Signed-off-by: Valerio Setti <vsetti@baylibre.com>
(cherry picked from commit 4551aa3)
…rypto 1.x.x

Fix stm32l562e_dk platform build support that was corrupted since
STM crypto acceleration drivers (Mbed TLS ALT based) where removed
to comply with TF-PS-_Crypto v1.x.x library.

The platform now fully relies on software crypto implementation
but the SoC hardware RNG that is still used for entropy and random
source.

Change-Id: I1329e201b059ae8913e37c6c21e82b739c99234b
Signed-off-by: Etienne Carriere <etienne.carriere@st.com>
(cherry picked from commit 27b364c)
…line description

Correct the BL2/MCUboot size described in stm32l562e_dk flayh_layout.h
inline comment that is 56kByte, not 72kByte.

Change-Id: I35235b0378b3cadbee85a2506ee23bf3505d7d95
Signed-off-by: Etienne Carriere <etienne.carriere@st.com>
(cherry picked from commit 6a4bac8)
…-Crypto 1.x.x

Fix nucleo_l552ze_q platform build support that was corrupted since
STM crypto acceleration drivers (Mbed TLS ALT based) where removed
to comply with TF-PS-_Crypto v1.x.x library.

The platform now fully relies on software crypto implementation
but the SoC hardware RNG that is still used for entropy and random
source.

Change-Id: I4e7f2e489888b84686b45d6f74970a8d5c9aadf7
Signed-off-by: Etienne Carriere <etienne.carriere@st.com>
(cherry picked from commit f07ba26)
…inline description

Correct the BL2/MCUboot size described in nucleo_l552ze_q flayh_layout.h
inline comment that is 56kByte, not 38kByte.

Change-Id: I0f497422bfd9e2d108fa6ff08c582543fd8dc16b
Signed-off-by: Etienne Carriere <etienne.carriere@st.com>
(cherry picked from commit 821e40f)
…a() for L5xx

Fix CMSIS Flash_ProgramData() function for STM32L5xx targets for which
this HAL function expects the 64bit data to be programmed as last
arguments whereas other STM32 SoCs currently supported in TF-M
expect a data address argument.

Change-Id: I85ca8b3eb565f6eda9db34fe01b345a286d22fa9
Fixes: 630d633 ("STM32U5: update for TF-PSA-Crypto 1.0.0")
Signed-off-by: Etienne Carriere <etienne.carriere@st.com>
(cherry picked from commit fc8bcd7)
…a() coding style

Fix minor coding style issues in ST Flash_ProgramData() CMSIS function
implementation to make it more consistent easier to read and maintain.

No functional changes.

Change-Id: Ie9197ca5be73690889af6500f5d45d7d7df19665
Signed-off-by: Etienne Carriere <etienne.carriere@st.com>
(cherry picked from commit 32a64d1)
…2 is enabled

MCUBOOT_IMAGE_NUMBER makes sense only when BL2 is enabled and it might
not be defined when BL2=OFF. So check if MCUBOOT_IMAGE_NUMBER is defined
only when BL2=ON.

Change-Id: I923380070a2724c453fcdbe25ad1aa05549a472d
Signed-off-by: Valerio Setti <vsetti@baylibre.com>
(cherry picked from commit 12f35ed)
…re used

When EC-P384 signatures are used, the BL2 build fails because the function
"mbedtls_ecc_group_from_psa" does not exist. Adding "psa_util_internal.c"
to the list of source files resolves the problem.

Change-Id: I57348f29d3fe67fc7917f1216669fbb64889d9af
Signed-off-by: Valerio Setti <vsetti@baylibre.com>
(cherry picked from commit 8e3ee79)
…ents

This is required in order to have __STDC_WANT_LIB_EXT1__ defined when
standard C libraries are parsed.

Change-Id: Id5c20861cc4d1b8decddadb8c8c8fae59421c139
Signed-off-by: Valerio Setti <vsetti@baylibre.com>
(cherry picked from commit ddc2535)
Using 'config.py' would require the framework submodule to be available
in tf-psa-crypto, which might not always be the case (ex: Zephyr). This
commit replaces that script with a regex check to verify if the P256-M
driver is enabled or not in the BL2's configuration file.

Change-Id: Idcbb66086b891cb22c53bf4ebcdba10331bf7ebf
Signed-off-by: Valerio Setti <vsetti@baylibre.com>
(cherry picked from commit 062835c)
Compiling with the options:
- MCUBOOT_SIGNATURE_TYPE=EC-P256
- MCUBOOT_BUILTIN_KEY=OFF
- MCUBOOT_HW_KEY=OFF

causes the following linker errors:

/opt/zephyr-sdk-1.0.1/gnu/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/14.3.0/../../../../arm-zephyr-eabi/bin/ld: bl2/ext/mcuboot/bootutil/libbootutil.a(image_validate.o): in function `bootutil_img_validate':
/home/user/west_workspace/bootloader/mcuboot/boot/bootutil/src/image_validate.c:601:(.text.bootutil_img_validate+0x1e8): undefined reference to `bootutil_key_cnt'
/opt/zephyr-sdk-1.0.1/gnu/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/14.3.0/../../../../arm-zephyr-eabi/bin/ld: bl2/ext/mcuboot/bootutil/libbootutil.a(bootutil_find_key.o): in function `bootutil_find_key':
/home/user/west_workspace/bootloader/mcuboot/boot/bootutil/src/bootutil_find_key.c:69:(.text.bootutil_find_key+0x7c): undefined reference to `bootutil_key_cnt'

Fix this by defining bootutil_key_cnt in keys.c for ECDSA keys.

Change-Id: Icea5b17986fa86e262c8c14e3786524c125c70c3
Signed-off-by: Tim Pambor <tim.pambor@codewrights.de>
This commit updates used nrfx version to 4.2.1 release
and fixes build failures for nRF54LM20A and nRF54LV10A.

Change-Id: I51ad5d9897a0f06a0fe4abe2d811c04d51153092
Signed-off-by: Anton Zyma <anton.zyma@nordicsemi.no>
(cherry picked from commit 6c64d24)
Restore use of find_program() to ease support of alternate build
environments as Windows, which needs .exe in the filename, as initially
added by commit 2f090f9 ("Build: Find GNUARM compiler via
find_program()").

Change-Id: Ie16c76e0c42a927bfc48d17bccf8ac076d8d918e
Fixes: b4f04b206aa0 ("Build: Simplify GNUARM toolchain")
Signed-off-by: Etienne Carriere <etienne.carriere@st.com>
(cherry picked from commit e7151a3c0a0f57726c901edb556aa7c99618d079)
In Zephyr TF-PSA-Crypto header files are already exposed by the mbedTLS
CMake library so duplicating them is not necessary.

Change-Id: Ib29387f9dd3636267f9cd531bbab7d0baa42cbec
Signed-off-by: Valerio Setti <vsetti@baylibre.com>
Add zephyr module file to to include CMakeLists.txt and Kconfig located
in the zephyr repository.
Originally included in: 69dc29a
but this will change the root folder of the module.

Signed-off-by: Joakim Andersson <joakim.andersson@nordicsemi.no>
Add CPE and PURL references for use by Zephyr's SPDX generation tool.

Signed-off-by: Matt Rodgers <mrodgers@witekio.com>
Signed-off-by: Tomi Fontanilles <tomi.fontanilles@nordicsemi.no>
Point to our own guidelines.

Signed-off-by: Tomi Fontanilles <tomi.fontanilles@nordicsemi.no>
This forces DWARF version 4 output so that zephyr debugging and usage
still works with the pyelftools library which does not currently
support v5.

see zephyrproject-rtos/zephyr#50373

Signed-off-by: Jamie McCrae <jamie.mccrae@nordicsemi.no>
Avoids including `t_cose` and `qcbor` in the build unless the initial
attestation secure partition is enabled via the
`TFM_PARTITION_INITIAL_ATTESTATION` flag.

This is required to avoid automatically downloading QCBOR at build
time -- pulled in as a dependency of t_cose -- unless required.

This commit should be reverted once an acceptable upstream solution has
been found for this situation, and merged there.

Signed-off-by: Kevin Townsend <kevin.townsend@linaro.org>
When processing the .ER_CODE_SRAM section, the location counter is set
to the VMA of that section, so after processing the next section will
use that VMA instead of the next available address in the FLASH
region.

Reset the location counter to the next available FLASH address after
processing this section will ensure that any subsequent FLASH data
is placed in the correct location.

This test fails without this patch:

$ west build -p -b lpcxpresso55s69/lpc55s69/cpu0/ns \
  samples/synchronization -T sample.kernel.synchronization

.../ld: address 0x14003e84 of bin/tfm_s.axf section `.ER_TFM_CODE'
    is not within region `FLASH'
.../ld: address 0x14005c20 of bin/tfm_s.axf section `.TFM_UNPRIV_CODE'
    is not within region `FLASH'
.../ld: bin/tfm_s.axf section `.TFM_PSA_ROT_LINKER_DATA'
    will not fit in region `FLASH'
.../ld: address 0x14003e84 of bin/tfm_s.axf section `.ER_TFM_CODE'
    is not within region `FLASH'
.../ld: address 0x14005c20 of bin/tfm_s.axf section `.TFM_UNPRIV_CODE'
    is not within region `FLASH'
.../ld: ERROR: CMSE stub (.gnu.sgstubs section) too far (0x10008540)
    from destination (0x14003ee4)

Note that the linker is generating addresses within the CODE_RAM
memory region rather than the FLASH region.

Signed-off-by: Keith Packard <keithp@keithp.com>
…mplates

While the copy table included the default data segment for these
templates, the zero table didn't include the default bss segment.

Make sure that area gets initialized to zero using the table-based
mechanism instead of relying on the startup code to initialize it
explicitly.

Signed-off-by: Keith Packard <keithp@keithp.com>
…ipts

Picolibc uses different names for the list of constructors and heap
limits. Add values for __bothinit_array_start, __bothinit_array_end,
__heap_start and __heap_end to every linker script. If not using
picolibc, these will not have any effect.

Signed-off-by: Keith Packard <keithp@keithp.com>
Adjust compile and link flags to allow building with picolibc instead
when CONFIG_TFM_INCLUDE_STDLIBC is not set. This is the default
configuration in TF-M.

Signed-off-by: Valerio Setti <vsetti@baylibre.com>
This seems not to be required in Zephyr and keeping that would cause the
repo to be downloaded at build time, which is not allowed in Zephyr.

Signed-off-by: Valerio Setti <vsetti@baylibre.com>
…n packages

- bl2/ext/mcuboot/CMakeLists.txt

Extend the build system to generate layout files to be used for signing
TF-M and NS images without having TF-M to sign anything. TF-M signing
requires Python packages that are not required anywhere else in Zephyr
and, moreover, Zephyr already signs images in its own so this step would
be useless.

- bl2/ext/mcuboot/scripts/wrapper.py

Import local module instead of the TF-M's renamed one. The latter is
available only if installing "pyproject.toml".

Signed-off-by: Valerio Setti <vsetti@baylibre.com>
This causes "potential null point dereference" on Nordic's HAL (there might
be other HALs as well, but this is the one found by the CI).
The problem looks simple: usually there is a function that is used to
return a pointer to a set of registers and then the pointer is immediately
dereferenced without verifying it's not NULL. As the set of registers
is a static feature for a given MCU I assume this is safe, but since
the compiler doesn't know this it complains.

Signed-off-by: Valerio Setti <vsetti@baylibre.com>
Adding:
__data_start
__data_source
__data_size
__bss_start
__bss_end
__bss_size
__tls_base
__arm32_tls_tcb_offset

These are copied from "platform/ext/common/atfe" corresponding linker
files.

Signed-off-by: Valerio Setti <vsetti@baylibre.com>
Do not add 'ifx_device_db' subdirectory in CMake when
IFX_GENERATE_BSP_SOURCES is not set.

If the fix is confirmed from Infineon there will likely be an upstream
PR in the future that can be used.

Signed-off-by: Valerio Setti <vsetti@baylibre.com>
Signed-off-by: Laura Carlesso <laura.carlesso@infineon.com>
nrf7120 zephyr mramc driver needs to access some configuration
registers in mramc which is secure only, nrf_mramc service is
created to access MRAMC initialise and change write config of
mramc. MRAMC service functions is added under iotcl service type.

Change-Id: I93e411a0a51c8d96f1c5239efa006afab304c72e
Signed-off-by: Travis Lam <travis.lam@nordicsemi.no>
(cherry picked from commit 66503e7)
sigvartmh and others added 7 commits July 15, 2026 10:25
Adds the nrf54lc10a board secure and non-secure to TF-M, it's a clone
of the nrf54lv10a boards with a rename.

Change-Id: I2c769095651b242ea87bcaec26064701605c243d
Signed-off-by: Sigvart Hovland <sigvart.m@gmail.com>
(cherry picked from commit 8ed9035)
Updates the nrfx version to 4.4.0, the current
cmake code in TF-M uses the updated paths which comes
from this version.

Signed-off-by: Georgios Vasilakis <georgios.vasilakis@nordicsemi.no>
Change-Id: I57adac6e55b307a34835d441e548c20a94f6f0f1
(cherry picked from commit 45885915606e614499351d68f5dc322e58b0d00a)
MDK 9.0.2 included in nrfx 4.5.0 release relocates system file
for nRF71 device. Align paths.

Change-Id: I9fdb5e5b6c6b22195ba927c2c42ab276995834f0
Signed-off-by: Nikodem Kastelik <nikodem.kastelik@nordicsemi.no>
(cherry picked from commit 58165c4832a8daf342ee7f43171204008438b1f9)
…ort"

This reverts commit e28c364.

Signed-off-by: Nikodem Kastelik <nikodem.kastelik@nordicsemi.no>
Optimise full use of flash layout. Enable secondary slot and ns storage
mpc configuration for sdk-nrf. Remove NRF_NS_SECONDARY force OFF
flag since NRF_NS_SECONDARY is enabled when slot1 is added, MPC configure non-secure for secondary slot and NS storage area.

Change-Id: Ieac2ccec516df5e51d5d01a3651b1742a0d2ac34
Signed-off-by: Travis Lam <travis.lam@nordicsemi.no>
(cherry picked from commit 2b58b378f61329026999c86be5a52e297372358f)
…ead from WICR

nrfx 4.5.0 restructured NRF_WICR_Type. The Wi-Fi core boot address
previously sat inside an anonymous reserved block, so wifi_setup()
read it as NRF_WICR->RESERVED[0], which resolved to WICR + 0x000.

The new layout names that region as the FIRMWARE group:

  __IOM NRF_WICR_FIRMWARE_Type  FIRMWARE;    /* 0x000 */
  __IM  uint32_t                RESERVED[28];
  __IOM NRF_WICR_IPCCONFIG_Type IPCCONFIG;   /* 0x080 */

FIRMWARE occupies 0x000..0x00F, so RESERVED[0] silently moved from
0x000 to 0x010. The code still compiles, but now reads an
unprogrammed word instead of the LMAC boot address. The LMAC VPR is
started at a bogus PC, so the Wi-Fi core never boots and the IPC
endpoint never binds, leaving the non-secure Wi-Fi driver to time out
during device init.

Read the named FIRMWARE.LMACINITPC field instead, so the boot address
is picked up from the same offset it is programmed at.

Change-Id: Idb24e926d8396a62c823fff16dfc562a5247a243
Signed-off-by: Chaitanya Tata <Chaitanya.Tata@nordicsemi.no>
(cherry picked from commit cea188b34874d1ddec7cf203ff0b1adf573e2138)
Adds the nrf54lc10a board secure and non-secure to TF-M, it's a clone
of the nrf54lv10a boards with a rename.

Change-Id: I2c769095651b242ea87bcaec26064701605c243d
Signed-off-by: Sigvart Hovland <sigvart.m@gmail.com>
(cherry picked from commit 8ed9035)
@rob-robinson-14
rob-robinson-14 force-pushed the platform-nrf7120-sdk-nrf branch from 03b4010 to c236570 Compare August 7, 2026 13:27
@rob-robinson-14 rob-robinson-14 changed the title Platform nrf7120 sdk nrf Platform nrf7120e sdk nrf Aug 7, 2026
adrianiainlam and others added 3 commits August 11, 2026 11:34
… for Wi-Fi KMU library.

Allows ns firmware to write Wi-Fi keys.

Change-Id: I5b2bdb9eb9a78acb88ba64a3c983757070e915bd
Signed-off-by: Adrian Lam <adrian.lam@nordicsemi.no>
(cherry picked from commit 182e9dae760762372c8092a03a0c40f8bbd493f5)
…hs to Split MDK

Split MDK introduces individual per-device directories.
Align paths to new structure.

Change-Id: I399d37174d67ec20a24a545c08a818225e36e057
Signed-off-by: Nikodem Kastelik <nikodem.kastelik@nordicsemi.no>
(cherry picked from commit e75cf4b)
…g.h files

The Apache-2.0 notice in these files is missing the punctuation of the
standard boilerplate, so license scanners cannot match it by full text,
and there is no SPDX tag to fall back on. Tools consequently report the
files as carrying no license at all.

Add an SPDX-License-Identifier tag stating the license each notice
already grants. This follows nrf9161dk_nrf9161, previously the only
Nordic board whose device_cfg.h carried a tag. The notice text itself
is left untouched.

All ten remaining Nordic device_cfg.h files share the same ARM header
and are covered here, so a newly added board no longer reintroduces the
problem.

Change-Id: Ifc30600d7e9a8a9801190a63c2266e4a9d37e970
Signed-off-by: Sigvart Hovland <sigvart.m@gmail.com>
(cherry picked from commit 717da8af8f955b6aa745b95e363c815f8b83a43c)
@rob-robinson-14
rob-robinson-14 marked this pull request as ready for review August 14, 2026 10:00

@tomi-font tomi-font left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[nrf fromtree] platform: nordic_nrf: align RAM control Kconfig guard is botched (points to a non-existent commit)

erdemsimsek and others added 4 commits August 14, 2026 11:30
…ctly

Disable RAM retention during secure startup so applications explicitly.
Select the sections needed across System OFF.

Change-Id: I1a0196268f990c2f5aa4f1c4b0fc1a63e3bff490
Signed-off-by: Erdem Simsek <erdem.simsek@nordicsemi.no>
(cherry picked from commit 4af10f7c46dd24a0eb7131e633a960fc03c36538)
Rename the Zephyr-facing RAM control service guard to follow the SoC-series Kconfig naming convention.

Change-Id: I477106a42883b54e1a128a99daaa2cbd1acdaa03
Signed-off-by: Erdem Simsek <erdem.simsek@nordicsemi.no>
(cherry picked from commit cd3ebc8f5a8f072af40369880111be97add0d6e4)
…a common directory

Given the overlap of the nrf7120 and nrf7120e SoCs, move the common
files to a common directory to prevent duplication.

Change-Id: I06c0b40e445971887691107b75bd1a4b92ab3456
Signed-off-by: Robert Robinson <robert.robinson@nordicsemi.no>
Assisted-by: Cursor:Auto
(cherry picked from commit 9db30a34d670172a6590ad2cc26ae9154c735679)
Add support for nrf7120e SoC. The variant shares startup code and
peripheral configuration with nRF7120.

Change-Id: Ib81da99b1f5f76145ef97945494f3d40c18a30f2
Signed-off-by: Robert Robinson <robert.robinson@nordicsemi.no>
Assisted-by: Cursor:Auto
(cherry picked from commit 885ecd136ddad15709103d4d4e0a03b34488bd92)
@rob-robinson-14
rob-robinson-14 force-pushed the platform-nrf7120-sdk-nrf branch from c236570 to 5eec566 Compare August 14, 2026 10:32

# This file is used by the upstream TF-M, the file in the common folder is used when
# TF-M is build with upstream Zephyr.
include(${PLATFORM_PATH}/common/nrf7120e/config.cmake) No newline at end of file

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

New line here missing btw

@rob-robinson-14

Copy link
Copy Markdown
Contributor Author

Changes already merged - closing

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.