summaryrefslogtreecommitdiffstats
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
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
-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;
}