diff options
Diffstat (limited to 'core/cortex-m/mpu.c')
-rw-r--r-- | core/cortex-m/mpu.c | 18 |
1 files changed, 3 insertions, 15 deletions
diff --git a/core/cortex-m/mpu.c b/core/cortex-m/mpu.c index 953cbb7393..c0793180dc 100644 --- a/core/cortex-m/mpu.c +++ b/core/cortex-m/mpu.c @@ -6,9 +6,9 @@ /* MPU module for Chrome EC */ #include "builtin/assert.h" +#include "mpu.h" #include "console.h" #include "cpu.h" -#include "mpu.h" #include "registers.h" #include "task.h" #include "util.h" @@ -95,17 +95,6 @@ int mpu_update_region(uint8_t region, uint32_t addr, uint8_t size_bit, } /* - * Align address to a maximum of 31 bits - */ -uint32_t align_down_to_bits(uint32_t addr, uint8_t addr_bits) -{ - if (addr_bits < 32) - return addr & ~((1u << addr_bits) - 1); - else - return addr; -} - -/* * Greedily configure the largest possible part of the given region from the * base address. * @@ -151,7 +140,7 @@ static int mpu_config_region_greedy(uint8_t region, uint32_t addr, * disabling if it is not completely contained in the requested * range. */ - subregion_base = align_down_to_bits(addr, natural_alignment); + subregion_base = addr & ~((1 << natural_alignment) - 1); subregion_size = 1 << (natural_alignment - 3); *consumed = 0; for (sr_idx = 0; sr_idx < 8; sr_idx++) { @@ -170,8 +159,7 @@ static int mpu_config_region_greedy(uint8_t region, uint32_t addr, *consumed = 1 << natural_alignment; } - return mpu_update_region(region, - align_down_to_bits(addr, natural_alignment), + return mpu_update_region(region, addr & ~((1 << natural_alignment) - 1), natural_alignment, attr, enable, subregion_disable); } |