Skip to content
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

suit: nRF9280 SUIT support #18496

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open

Conversation

mparpala
Copy link

@mparpala mparpala commented Nov 4, 2024

Add SUIT support for nRF9280 EngB product.

@mparpala mparpala added the DNM label Nov 4, 2024
@mparpala mparpala requested review from a team as code owners November 4, 2024 10:30
@CLAassistant
Copy link

CLAassistant commented Nov 4, 2024

CLA assistant check
All committers have signed the CLA.

@github-actions github-actions bot added the changelog-entry-required Update changelog before merge. Remove label if entry is not needed or already added. label Nov 4, 2024
@NordicBuilder
Copy link
Contributor

NordicBuilder commented Nov 4, 2024

CI Information

To view the history of this post, clich the 'edited' button above
Build number: 45

Inputs:

Sources:

sdk-nrf: PR head: 0d323164a2bd9d0c579bfb9bcf524c249c1fdc60

more details

sdk-nrf:

PR head: 0d323164a2bd9d0c579bfb9bcf524c249c1fdc60
merge base: 8f6412f03f66ab97bda89ecb185b51393206fdf0
target head (main): 8f6412f03f66ab97bda89ecb185b51393206fdf0
Diff

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 (27)
cmake
│  ├── sysbuild
│  │  ├── suit.cmake
│  │  ├── suit_provisioning.cmake
│  │  │ suit_provisioning_nrf9280.cmake
config
│  ├── suit
│  │  ├── templates
│  │  │  ├── nrf9280
│  │  │  │  ├── default
│  │  │  │  │  ├── v1
│  │  │  │  │  │  ├── app_envelope.yaml.jinja2
│  │  │  │  │  │  ├── app_recovery_envelope_app_local.yaml.jinja2
│  │  │  │  │  │  ├── app_recovery_envelope_direct.yaml.jinja2
│  │  │  │  │  │  ├── app_recovery_local_envelope.yaml.jinja2
│  │  │  │  │  │  ├── rad_envelope.yaml.jinja2
│  │  │  │  │  │  ├── rad_recovery_envelope.yaml.jinja2
│  │  │  │  │  │  │ root_with_binary_nordic_top.yaml.jinja2
subsys
│  ├── nrf_security
│  │  ├── Kconfig
│  │  ├── src
│  │  │  ├── drivers
│  │  │  │  ├── cracen
│  │  │  │  │  ├── Kconfig
│  │  │  │  │  │ psa_driver.Kconfig
│  ├── suit
│  │  ├── mci
│  │  │  ├── Kconfig
│  │  │  ├── src
│  │  │  │  │ suit_mci_nrf9280.c
│  │  ├── memory_layout
│  │  │  │ Kconfig
│  │  ├── metadata
│  │  │  ├── include
│  │  │  │  │ suit_metadata.h
│  │  ├── platform
│  │  │  ├── Kconfig
│  │  │  ├── sdfw
│  │  │  │  ├── src
│  │  │  │  │  │ suit_plat_check_image_match_sdfw_specific.c
│  │  ├── storage
│  │  │  ├── Kconfig
│  │  │  ├── src
│  │  │  │  │ suit_storage_nrf9280.c
│  │  ├── stream
│  │  │  │ Kconfig
│  │  ├── validator
│  │  │  ├── Kconfig
│  │  │  ├── src
│  │  │  │  │ suit_validator_nrf9280.c
sysbuild
│  ├── Kconfig.suit_provisioning
│  ├── suit_provisioning
│  │  ├── Kconfig.nrf9280
│  │  │ nrf9280.cmake

Outputs:

Toolchain

Version: 342151af73
Build docker image: docker-dtr.nordicsemi.no/sw-production/ncs-build:342151af73_912848a074

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

  • ◻️ Toolchain - Skipped: existing toolchain is used
  • ✅ Build twister
  • ❌ Integration tests
    • ✅ test-sdk-audio
    • ✅ desktop52_verification
    • ✅ test-fw-nrfconnect-boot
    • ✅ test-fw-nrfconnect-apps
    • ✅ test_ble_nrf_config
    • ✅ test-fw-nrfconnect-ble_mesh
    • ✅ test-fw-nrfconnect-ble_samples
    • ✅ test-fw-nrfconnect-chip
    • ✅ test-fw-nrfconnect-nfc
    • ✅ test-fw-nrfconnect-nrf-iot_serial_lte_modem
    • ❌ test-fw-nrfconnect-nrf-iot_zephyr_lwm2m
    • ✅ test-fw-nrfconnect-nrf-iot_samples
    • ✅ test-fw-nrfconnect-nrf-iot_lwm2m
    • ✅ doc-internal
    • ✅ test-fw-nrfconnect-nrf-iot_thingy91
    • ✅ test-fw-nrfconnect-nrf_crypto
    • ✅ test-fw-nrfconnect-rpc
    • ✅ test-fw-nrfconnect-rs
    • ✅ test-fw-nrfconnect-fem
    • ✅ test-fw-nrfconnect-tfm
    • ✅ test-fw-nrfconnect-thread
    • ✅ test-fw-nrfconnect-zigbee
    • ✅ test-sdk-find-my
    • ✅ test-fw-nrfconnect-nrf-iot_mosh
    • ✅ test-fw-nrfconnect-nrf-iot_positioning
    • ✅ test-sdk-sidewalk
    • ✅ test-sdk-wifi
    • ✅ test-low-level
    • ✅ test-sdk-pmic-samples
    • ✅ test-sdk-mcuboot
    • ✅ test-sdk-dfu
    • ✅ test-fw-nrfconnect-ps
    • ✅ test-secdom-samples-public
    • ⚠️ test-fw-nrfconnect-nrf-iot_cloud
    • ⚠️ test-sdk-dfu

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

Copy link
Contributor

@nordicjm nordicjm left a comment

Choose a reason for hiding this comment

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

2 comments are optional, rest are required

subsys/suit/mci/Kconfig Outdated Show resolved Hide resolved
subsys/suit/memory_layout/Kconfig Outdated Show resolved Hide resolved
subsys/suit/provisioning/CMakeLists.txt Outdated Show resolved Hide resolved
subsys/suit/provisioning/CMakeLists.txt Outdated Show resolved Hide resolved
subsys/suit/provisioning/CMakeLists.txt Outdated Show resolved Hide resolved
subsys/suit/provisioning/CMakeLists.txt Outdated Show resolved Hide resolved
subsys/suit/provisioning/Kconfig Outdated Show resolved Hide resolved
subsys/suit/provisioning/soc/Kconfig.nrf9280 Outdated Show resolved Hide resolved
subsys/suit/provisioning/soc/Kconfig.nrf9280 Outdated Show resolved Hide resolved
@NordicBuilder
Copy link
Contributor

You can find the documentation preview for this PR at this link. It will be updated about 10 minutes after the documentation build succeeds.

Note: This comment is automatically posted by the Documentation Publishing GitHub Action.

@NordicBuilder
Copy link
Contributor

NordicBuilder commented Nov 4, 2024

The following west manifest projects have changed revision in this Pull Request:

Name Old Revision New Revision Diff

All manifest checks OK

Note: This message is automatically posted and updated by the Manifest GitHub Action.

subsys/suit/provisioning/soc/Kconfig.nrf9280 Outdated Show resolved Hide resolved
subsys/suit/provisioning/soc/Kconfig.nrf9280 Outdated Show resolved Hide resolved
subsys/suit/stream/Kconfig Outdated Show resolved Hide resolved
subsys/suit/stream/Kconfig Outdated Show resolved Hide resolved
subsys/suit/mci/src/suit_mci_nrf9280.c Show resolved Hide resolved
@anttik-nordic anttik-nordic requested a review from a team as a code owner November 18, 2024 14:12
@parttimaa parttimaa force-pushed the nrf9280_suit branch 2 times, most recently from ce5733a to 5625d67 Compare November 27, 2024 11:05
@NordicBuilder
Copy link
Contributor

You can find the documentation preview for this PR at this link. It will be updated about 10 minutes after the documentation build succeeds.

Note: This comment is automatically posted by the Documentation Publish GitHub Action.

@NordicBuilder
Copy link
Contributor

NordicBuilder commented Dec 10, 2024

Memory footprint analysis revealed the following potential issues

sample.matter.template.debug[nrf7002dk/nrf5340/cpuapp]: High ROM usage: 912198[B] - link (cc: @kkasperczyk-no @ArekBalysNordic @markaj-nordic)
sample.matter.template.release[nrf7002dk/nrf5340/cpuapp]: High ROM usage: 821138[B] - link (cc: @kkasperczyk-no @ArekBalysNordic @markaj-nordic)

Note: This message is automatically posted and updated by the CI (latest/sdk-nrf/PR-18496/45)

@parttimaa parttimaa force-pushed the nrf9280_suit branch 3 times, most recently from 57e182a to 13bb933 Compare December 16, 2024 12:58
@NordicBuilder NordicBuilder removed the DNM label Dec 20, 2024
ahasztag

This comment was marked as resolved.

west.yml Outdated Show resolved Hide resolved
subsys/suit/mci/Kconfig Outdated Show resolved Hide resolved
default SUIT_STORAGE_LAYOUT_TEST if !SOC_SERIES_NRF54HX

config SUIT_STORAGE_LAYOUT_NRF54H20
bool "nRF54H20"
select PSA_WANT_ALG_SHA_256 if SUIT_CRYPTO

config SUIT_STORAGE_LAYOUT_NRF9280
Copy link
Contributor

Choose a reason for hiding this comment

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

same thing here as the other PR @tomchy

Choose a reason for hiding this comment

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

Tried to fix this like @tomchy had done with MCI.

Copy link
Contributor

Choose a reason for hiding this comment

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

FYI: #20064

Choose a reason for hiding this comment

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

Rebased this PR on top @nordicjm changes as #20064 was already merged to main.

Copy link
Contributor

Choose a reason for hiding this comment

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

so this symbol now needs to vanish as the CMake code will handle this when SUIT_STORAGE_LAYOUT_SOC is selected

@@ -18,6 +18,11 @@ config SUIT_VALIDATOR_IMPL_NRF54H20_SDFW
depends on SOC_SERIES_NRF54HX
depends on SUIT_PLATFORM_VARIANT_SDFW

config SUIT_VALIDATOR_IMPL_NRF9280_SDFW
bool "nRF9280: Secure domain"
depends on SOC_SERIES_NRF92X
Copy link
Contributor

Choose a reason for hiding this comment

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

and here

Choose a reason for hiding this comment

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

Tried to fix this like @tomchy had done with MCI.

Choose a reason for hiding this comment

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

Rebased this PR on top @nordicjm changes as #20064 was already merged to main.

Copy link
Contributor

@ahasztag ahasztag left a comment

Choose a reason for hiding this comment

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

I do not see any blockers to merge this

return false;
}

mci_err_t suit_mci_signing_key_id_validate(const suit_manifest_class_id_t *class_id,
Copy link
Contributor

Choose a reason for hiding this comment

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

There is an upcoming change to this function (it will be renamed + little change in functionality in here): https://github.com/nrfconnect/sdk-nrf/pull/20050/files#diff-5f831b3a82f1e14d189946f985f443439e1f68e17d67551dc146b0f47735fe18R161 - depending on which PR will come first we will have to align this in one PR or the other

Add SUIT support for nRF9280 EngB product.

Signed-off-by: Tuomas Parttimaa <[email protected]>
Comment on lines +61 to 63
default y if SOC_SERIES_NRF92X && (SOC_NRF9280_CPUSEC || SOC_NRF9230_ENGB_CPUSEC) && SUIT
default y if SOC_SERIES_NRF54LX && PSA_CRYPTO_DRIVER_CRACEN
default y if SOC_SERIES_NRF54HX && SOC_NRF54H20_CPUSEC
Copy link
Contributor

Choose a reason for hiding this comment

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

this really shouldn't be here, this should move to the out of tree soc in the Kconfig.defconfig file as something like:

config MBEDTLS_PSA_CRYPTO_BUILTIN_KEYS
	default y if NRF_SECURITY && SOC_NRF9280_CPUSEC

Comment on lines +262 to +267
# This is for internal use only.
config SOC_NRF9280_CPUSEC
bool

config SOC_NRF9230_ENGB_CPUSEC
bool
Copy link
Contributor

Choose a reason for hiding this comment

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

then these symbols that wrongly duplicate existing symbols and hide bugs can vanish

Comment on lines +19 to +20
depends on (SOC_SERIES_NRF54LX && !SOC_NRF54L20) || SOC_SERIES_NRF54HX || \
(SOC_SERIES_NRF92X && (SOC_NRF9280_CPUSEC || SOC_NRF9230_ENGB_CPUSEC))
Copy link
Contributor

@nordicjm nordicjm Jan 29, 2025

Choose a reason for hiding this comment

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

this should also be reworked to have a new symbol:

config SUPPORTS_CRACEN
	bool
	default y if (SOC_SERIES_NRF54LX && !SOC_NRF54L20) || SOC_SERIES_NRF54HX

this would be the whole definition here, this symbol would then become:

config CRACEN_LOAD_MICROCODE
	bool "Load CRACEN microcode"
	depends on SUPPORTS_CRACEN
	default y

then in your out of tree soc for cpusec inside the Kconfig.defconfig file:

config SUPPORTS_CRACEN
	default y if (SOC_SERIES_NRF92X && (SOC_NRF9280_CPUSEC || SOC_NRF9230_ENGB_CPUSEC))

then you have everything properly isolated with no dummy symbols here, and no leakage of information

default SUIT_STORAGE_LAYOUT_TEST if !SOC_SERIES_NRF54HX

config SUIT_STORAGE_LAYOUT_NRF54H20
bool "nRF54H20"
select PSA_WANT_ALG_SHA_256 if SUIT_CRYPTO

config SUIT_STORAGE_LAYOUT_NRF9280
Copy link
Contributor

Choose a reason for hiding this comment

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

so this symbol now needs to vanish as the CMake code will handle this when SUIT_STORAGE_LAYOUT_SOC is selected

Comment on lines +16 to +20
config SUIT_MPI_SOC_NRF9280
bool
default y if SOC_SERIES_NRF92X

if SUIT_MPI_SOC_NRF9280
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
config SUIT_MPI_SOC_NRF9280
bool
default y if SOC_SERIES_NRF92X
if SUIT_MPI_SOC_NRF9280
if SOC_SERIES_NRF92X

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
changelog-entry-required Update changelog before merge. Remove label if entry is not needed or already added.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

8 participants