-
Notifications
You must be signed in to change notification settings - Fork 6.8k
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
Question: Cortex-M7 revision r0p1 errata #23930
Comments
cc @ioannisg |
Thanks for posting this, @pftbest . As far as I can see from this errata:
So, it seems to me that even though we do not directly account for this errata in the code, MSR to BASEPRI is followed by an ISB instruction; (this was done for extra protection so even fetching instructions or reading registers / ALU operations are not done before MSR BASEPRI is completed) the latter takes care of this errata as well. @stephanosio ^^ |
It seems we do indeed have zephyr/include/arch/arm/aarch32/asm_inline_gcc.h Lines 59 to 60 in 33928f1
|
@ioannisg What is rather curious is that FreeRTOS Cortex-M7 r0p1 port (the one with errata workaround) implements the |
Might just be done for extra protection. Hard to assess with un-commented code. |
@pftbest I guess you can close this question if you feel the response was adequate |
Ok, thank you. |
Some Cortex-M7 chips has errata 837070 "Increasing priority using a write to BASEPRI does not take effect immediately".
Is there any mitigation for this in zephyr kernel? I can see a lot of writes to BASEPRI in the source code but it's not clear to me if they are affected or not.
Other projects implement a workaround for this, for example FreeRTOS has a separate port for r0p1.
The text was updated successfully, but these errors were encountered: