mps2: put the .gnu.sgstubs section in a hard coded address #209
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.
Description
if the address of .gnu.sgtubs is not defined, it's not possible to provide correct SAU permission for non-secure callable code
I faced the problem that .gnu.sgtubs was placed at 0x00001XXXX addresses (probably the .text section is larger than 4kb), but the non-secure callable code permission was provided for 0x10000000 - 0x1000FFFF addresses, so I got a Hard Fault each time the non-secure world calls a secure function.
Also, I added the check for the size of .gnu.sgtubs section, It will notify a developer about a problem if the section is too big, because in this case it will not be covered by the SAU permission for non-secure callable code
Fixes # SAU non-secure callable permission does not cover .gnu.sgtubs section
Type of change
Please delete options that are not relevant.
How Has This Been Tested?
The non-secure world crashed(got Hard Fault) at the start before the fix, after the fix it's working.
Test Configuration:
Checklist: