-
Notifications
You must be signed in to change notification settings - Fork 1.4k
applications: nrf_desktop: nrf54h20: migrate to ironside se #24494
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
applications: nrf_desktop: nrf54h20: migrate to ironside se #24494
Conversation
CI InformationTo view the history of this post, clich the 'edited' button above Inputs:Sources:sdk-nrf: PR head: bf2b39c4827386fa9ebeb70a45dd21bafcfc18dc more detailssdk-nrf:
Github labels
List of changed files detected by CI (20)
Outputs:ToolchainVersion: 2b2cd9579a Test Spec & Results: ✅ Success; ❌ Failure; 🟠 Queued; 🟡 Progress; ◻️ Skipped;
|
0718a14
to
ccf03bf
Compare
Since quarantine was modified, please make sure you are following the process described in Quarantine Process. |
You can find the documentation preview for this PR here. |
applications/nrf_desktop/configuration/nrf54h20dk_nrf54h20_cpuapp/memory_map.dtsi
Outdated
Show resolved
Hide resolved
applications/nrf_desktop/configuration/nrf54h20dk_nrf54h20_cpuapp/images/mcuboot/prj.conf
Show resolved
Hide resolved
applications/nrf_desktop/configuration/nrf54h20dk_nrf54h20_cpuapp/images/mcuboot/prj.conf
Show resolved
Hide resolved
applications/nrf_desktop/configuration/nrf54h20dk_nrf54h20_cpuapp/app_common.dtsi
Show resolved
Hide resolved
applications/nrf_desktop/configuration/nrf54h20dk_nrf54h20_cpuapp/prj.conf
Show resolved
Hide resolved
applications/nrf_desktop/configuration/nrf54h20dk_nrf54h20_cpuapp/images/mcuboot/prj.conf
Show resolved
Hide resolved
applications/nrf_desktop/configuration/nrf54h20dk_nrf54h20_cpuapp/images/mcuboot/app.overlay
Show resolved
Hide resolved
applications/nrf_desktop/configuration/nrf54h20dk_nrf54h20_cpuapp/images/mcuboot/app.overlay
Outdated
Show resolved
Hide resolved
applications/nrf_desktop/configuration/nrf54h20dk_nrf54h20_cpuapp/memory_map.dtsi
Show resolved
Hide resolved
applications/nrf_desktop/configuration/nrf54h20dk_nrf54h20_cpuapp/memory_map.dtsi
Outdated
Show resolved
Hide resolved
ccf03bf
to
9cbb0df
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Switch to HW crypto by enabling the nRF Security module with the next PR update operation.
(Currently, the CONFIG_BOOT_USE_TINYCRYPT
is enabled).
Apply to other MCUboot configurations.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
addressed
The S2RAM issues for the dongle configuration should be resolved once the following PR set is merged: |
reg = <0x1d2000 DT_SIZE_K(8)>; | ||
}; | ||
|
||
/* The end of the MRAM_11 memory is left unallocated. */ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Note that in some future - there might be an allocation here for the SDFW recovery logic.
The draft default values are:
0x1b0000 - 0x1c0000
: thesecondary_partition
for the code0x1c0000 - 0x1c2000
: thesecondary_periphconf_partition
for the alternative periphconf
|
||
&cpusec_cpuapp_ipc { | ||
status = "okay"; | ||
/* Define the necessary aliases for the application image partitions. */ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is incorrect; the DFU transport logic (MCUmgr) must have the same view of the slot layout as the MCUboot.
/* Define the necessary aliases for the MCUboot slots that will be used by the DFU transports. */
slot0_partition: &cpux_slot0_partition {
label = "image-0";
};
slot1_partition: &cpux_slot1_partition {
label = "image-1";
};
However, the code partition still needs to point to cpuapp_slot0_partition
to display the correct memory footprint of the application. This is easy to do for the default image:
/ {
chosen {
zephyr,code-partition = &cpuapp_slot0_partition;
};
};
but it is harder to do for the secondary variant of the default image (direct-xip) as it requires override of the nrf/subsys/mcuboot/mcuboot_secondary_app.overlay
file with the following logic:
/ {
chosen {
zephyr,code-partition = &cpuapp_slot1_partition;
};
};
Of course, to cover also the IPC radio image pair, we should abstract the alias and call it, for example, slot0_image_subpartition
/ slot1_image_subpartition
.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Unlocking the possibility to fix this issue once the following sysbuild extension is available in the main branch:
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Due to significant issues in applying this improvement, I decided to define a partition similarly to how it is done in the Zephyr SMP Server sample (to be more precise, it is a copy of the original sample that we use in sdk-nrf).
I added an additional comment to indicate the consequences of this approach.
9cbb0df
to
8539eb3
Compare
Pure rebase, the file diff remains the same |
8539eb3
to
2e214bf
Compare
applications/nrf_desktop/configuration/nrf54h20dk_nrf54h20_cpuapp/memory_map.dtsi
Show resolved
Hide resolved
|
||
# Enable HW cryptography in the MCUboot bootloader and its dependencies | ||
# The PSA operations are handled by the SDFW Service Framework (SDFW) | ||
# that is enabled with the CONFIG_PSA_SSF_CRYPTO_CLIENT Kconfig option. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I would consider explicitly enabling the CONFIG_PSA_SSF_CRYPTO_CLIENT
instead of commenting on that (to ensure it's actually set here). I also wonder if we actually need keep the CONFIG_PSA_CRYPTO_DRIVER_OBERON
enabled. Do we actually use the driver?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No, we don't need it. However, disabling this Kconfig option doesn't change the memory footprint of the mcuboot image, so I think this Kconfig option is not even used for the nRF54H20 platform.
I would leave the default configuration and let the bootloader team optimize the Kconfig set and get rid of unnecessary Kconfigs.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Contacting bootloader team regarding this might be a good idea. It would be great if the configuration could be improved here.
2e214bf
to
e1083b6
Compare
Updated the nrf54h20dk/nrf54h20/cpuapp and nrf54h20dk/nrf54h20/cpurad board target configurations in the nRF Desktop application to align them with the new nRF54H20 SW architecture that is based on the IronSide SE. Added the MCUboot bootloader configuration and replaced the default nRF54H20 partition map with the custom application-optimized memory map. The updated configuration is the first step towards the complete feature migration. The following features are disabled and not yet supported: - MCUmgr DFU with the Bluetooth transport - Config Channel DFU with both the USB and Bluetooth transports - DVFS Ref: NCSDK-34151 Signed-off-by: Kamil Piszczek <[email protected]>
e1083b6
to
bf2b39c
Compare
small fix to address compliance |
Updated the nrf54h20dk/nrf54h20/cpuapp and nrf54h20dk/nrf54h20/cpurad board target configurations in the nRF Desktop application to align them with the new nRF54H20 SW architecture that is based on the IronSide SE.
Added the MCUboot bootloader configuration and replaced the default nRF54H20 partition map with the custom application-optimized memory map.
The updated configuration is the first step towards the complete feature migration. The following features are disabled and not yet supported:
Ref: NCSDK-34151