On 2/14/19 3:34 AM, Peter Maydell wrote: > The "background region" for a v8M MPU is a default which will be used > (if enabled, and if the access is privileged) if the access does > not match any specific MPU region. We were incorrectly using it > always (by putting the condition at the wrong nesting level). This > meant that we would always return the default background permissions > rather than the correct permissions for a specific region, and also > that we would not return the right information in response to a > TT instruction. > > Move the check for the background region to the same place in the > logic as the equivalent v8M MPUCheck() pseudocode puts it. > This in turn means we must adjust the condition we use to detect > matches in multiple regions to avoid false-positives. > > Signed-off-by: Peter Maydell <peter.mayd...@linaro.org> > --- > I found this because the incorrect TT response eventually resulted > in the Zephyr RTOS writing an invalid region number back to the > NVIC and tripping the guest_errors logging. > --- > target/arm/helper.c | 8 +++++--- > 1 file changed, 5 insertions(+), 3 deletions(-)
Reviewed-by: Richard Henderson <richard.hender...@linaro.org> r~