-
Notifications
You must be signed in to change notification settings - Fork 716
Replace SDFW with IronSide SE #2896
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
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This was referenced May 21, 2025
a2e5dab
to
1b9abdc
Compare
507e1a6
to
95d8954
Compare
f8cf77f
to
61619bc
Compare
f342a8e
to
6a6b311
Compare
110c667
to
022b565
Compare
This reverts commit 3608e26. It needs more work. Signed-off-by: Grzegorz Swiderski <[email protected]>
This reverts commit 360c80c. Signed-off-by: Jonathan Nilsen <[email protected]>
…ions Functions like `add` and `sub` can only return base 10 integers, which means they can't really be used to define Kconfig symbols of type `hex`. For the same reason, there already exist pairs of devicetree functions named e.g., `dt_node_reg_addr_(int|hex)` after different return types. Introduce `add_hex`, `sub_hex`, and friends. To avoid confusion, it should be possible for those new functions to accept arguments in base 16 as well. It's actually easier to let all arithmetic functions take their inputs in "any" base, by leveraging Python's built-in: `int(..., base=0)`. Signed-off-by: Grzegorz Swiderski <[email protected]> (cherry picked from commit 64bb8b6)
Upstream PR #: 91826 s/IRONside/IronSide/g Signed-off-by: Grzegorz Swiderski <[email protected]> (cherry picked from commit b629b60fe1329bf3d4e2070da05615599587f032)
…rad remotes Upstream PR #: 91826 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 ac944ac742117669a1904bde345a4bacd4a1d5fc)
…e only Upstream PR #: 91826 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 921733127636ea9cdb34cc1d74b557bc45029dbb)
…variants Upstream PR #: 91826 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 ffa2e92ac089a9fc8545281ab51dd9b64f34c35c)
Upstream PR #: 91826 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 6edd8d9b9db94630e642a586b2d572e0715ede95)
…F54H Upstream PR #: 91826 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 925897a8858437286072eee904c5f8ce44b165b8)
Upstream PR #: 91826 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 ce6c9859ebec2b844c7ba4c3aca4f3591d47bf42)
Upstream PR #: 91826 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 e6f25af3528d0186c06fb5802fcbf70e5ad6e097)
Upstream PR #: 91826 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 7173111bd1d331783d4baae868919ed1c968b051)
Upstream PR #: 91826 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 04b901e469731891553e20a0fe56a490c75fb8b1)
…if present Upstream PR #: 91826 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 9efd957fc462ece94b7ee2cc01a29a37fd90e184)
Upstream PR #: 91826 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 81aab562d563e36d9a5c5215bfe20411fcb5f8ab)
Upstream PR #: 91826 Use designated IRQ numbers, instead of generic defaults. Signed-off-by: Grzegorz Swiderski <[email protected]> (cherry picked from commit cbe6fc1aed11387d54ceeca07107d0f06c42608c)
…rammed Upstream PR #: 91826 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 7ceb179961d11518bd083958ca524aab2ff01669)
Upstream PR #: 92033 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 1f56dd0ebdd9d1e763cbf539edd29e24b0a74c58)
Enable the `empty_app_core` image when building for `cpurad`. Signed-off-by: Grzegorz Swiderski <[email protected]>
SebastianBoe
approved these changes
Jul 1, 2025
karstenkoenig
approved these changes
Jul 1, 2025
|
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
manifest-pr-skip
Ref: NCSDK-32229