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.
On gcc versions after 11.2.0, when using -O2 the compiler inlines pm8xxx_reg_write()
function into the others that use it. However, when it does so, on the
assembly
cmd
ends up unaligned. This is fine if MMU is enabled, butwhen executing pmic_reset_configure(), inside scm_elexec_call(), MMU is
disabled. This causes a data abort, which causes lk to try and reboot
into DLOAD mode, only to hit the exact same bug on
pm8x41_clear_pmic_watchdog().
Fix this by keeping MMU enabled until almost just before kernel is about
to boot. This way we also avoid potentially hitting the same bug on
another function in the future.