summaryrefslogtreecommitdiffstats
path: root/cpukit/score/cpu/arm/include/rtems/score/armv7m.h
diff options
context:
space:
mode:
authorChristian Mauderer <christian.mauderer@embedded-brains.de>2021-06-01 11:25:24 +0200
committerChristian Mauderer <christian.mauderer@embedded-brains.de>2021-06-21 16:11:36 +0200
commit8476715a49073c913d44dadb9f57712e461450ee (patch)
tree0076ccfee945956ba987b23a53029409249305c0 /cpukit/score/cpu/arm/include/rtems/score/armv7m.h
parentcpu/armv7m: Avoid regions with negative size (diff)
downloadrtems-8476715a49073c913d44dadb9f57712e461450ee.tar.bz2
cpu/armv7m: Fix initialization of MPU regions
The write to RBAR didn't have the valid flag set. Therefore the write to RASR had an influence on the previously set region. That means for example that if Region 0 had been enabled but 1 should be disabled due to a size of 0, the previous code would have disabled region 0 instead. This patch fixes that behaviour. Close #4450
Diffstat (limited to '')
-rw-r--r--cpukit/score/cpu/arm/include/rtems/score/armv7m.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/cpukit/score/cpu/arm/include/rtems/score/armv7m.h b/cpukit/score/cpu/arm/include/rtems/score/armv7m.h
index a5eaaef418..1803c8d8ca 100644
--- a/cpukit/score/cpu/arm/include/rtems/score/armv7m.h
+++ b/cpukit/score/cpu/arm/include/rtems/score/armv7m.h
@@ -660,7 +660,7 @@ static inline void _ARMV7M_MPU_Set_region(
rbar = (uintptr_t) begin | region | ARMV7M_MPU_RBAR_VALID;
rasr |= _ARMV7M_MPU_Get_region_size(size);
} else {
- rbar = region;
+ rbar = ARMV7M_MPU_RBAR_VALID | region;
rasr = 0;
}