Skip to content

[nrf fromlist] soc: add ironside boot report #2752

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 1 commit into from
Apr 25, 2025

Conversation

hakonfam
Copy link
Contributor

@hakonfam hakonfam commented Apr 11, 2025

non-empty PR description


cpuflpr_code_partition: partition@f4000 {
reg = <0xf4000 DT_SIZE_K(48)>;
};
Copy link
Contributor

Choose a reason for hiding this comment

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

FYI, I intend to introduce a "memory map" DTS file that both APP and RAD use soon.

This is so that the app can send the correct vector table address to IRONside SE.

We need to make sure we don't conflict with each other more than necessary somehow.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I suggest your change goes in first, then I adapt to that. I need this for the random numbers anyway.

@hakonfam hakonfam force-pushed the boot-report-ds branch 2 times, most recently from 233d4c6 to ba5eedb Compare April 16, 2025 09:59
@hakonfam hakonfam force-pushed the boot-report-ds branch 2 times, most recently from 8c81397 to 5cf2744 Compare April 18, 2025 06:54
/** See @ref ironside_se_boot_report_uicr_error */
struct ironside_se_boot_report_uicr_error uicr_error_description;
/** Data passed from booting local domain to local domain being booted */
uint8_t local_domain_context[IRONSIDE_SE_BOOT_REPORT_LOCAL_DOMAIN_CONTEXT_SIZE];
Copy link
Contributor

Choose a reason for hiding this comment

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

I see that it's optional for this to be populated.

So I assume we need a local_domain_context_len to communicate how many bytes were written?

(0 when cpusec boots cpuapp for instance)

Copy link
Contributor

Choose a reason for hiding this comment

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

Alternatively we could make this mandatory.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

IMO there is a contract between the image being booted and the image that boots in this situation. For instance, for sec -> app we know that there is no local domain context.

For app -> rad there would be a struct that would communicate within in whether or not there is data of interest within the local domain context.

config SOC_NRF54H20_IRONSIDE_SE_BOOT_REPORT
bool "Nordic IRONside SE boot report"
default y if SOC_NRF54H20_CPUAPP
depends on SOC_NRF54H20_IRON
Copy link
Contributor

Choose a reason for hiding this comment

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

Right now we depend on building for cpuapp as well - I guess there is no other core that sets the IRON config until cpurad gets added, but should we add a depends on regardless for correctness? Better to see it fail at build time than run time if/when cpurad gets added

Copy link
Contributor Author

Choose a reason for hiding this comment

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

We use this for CPSEC, I will see if there is some other way to get around that.

Copy link
Contributor

Choose a reason for hiding this comment

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

did we decide on ironside_se vs. ironside/se for the directory layout?

Copy link
Contributor

Choose a reason for hiding this comment

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

Should be ironside/se IIRC

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I see the point for consistency. But we are under a 'nrf54h' folder here, which dictates the "ironside" variant being used. I will update it anyway

@hakonfam hakonfam force-pushed the boot-report-ds branch 4 times, most recently from 91ce46f to c83c88c Compare April 23, 2025 04:38
@hakonfam hakonfam marked this pull request as ready for review April 25, 2025 03:48
@hakonfam hakonfam changed the title [nrf toup] soc: add ironside boot report [nrf fromlist] soc: add ironside boot report Apr 25, 2025
Also update memory map to leverage unused MRAM and
move sysctrl IPC to RAM20 to free global RAM.

Upstream PR #: 88932

Signed-off-by: Håkon Amundsen <[email protected]>
@hakonfam hakonfam requested a review from jonathannilsen April 25, 2025 10:29
@rlubos rlubos merged commit 246cb42 into nrfconnect:main Apr 25, 2025
19 checks passed
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.

4 participants