diff options
author | Ric Claus <claus@slac.stanford.edu> | 2013-07-17 08:42:35 +0200 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2013-07-17 10:13:34 +0200 |
commit | 3923472555cba5ae5a045aa58c8552c7372698a9 (patch) | |
tree | d8a1d1cdf58a8e51e855a8042bdb96e3d6a95c1d /c/src/lib/libbsp/arm/shared/include/arm-cp15-start.h | |
parent | bsp/xilinx-zynq: Provide BSP variants (diff) | |
download | rtems-3923472555cba5ae5a045aa58c8552c7372698a9.tar.bz2 |
bsps/arm: Fix for top of the address space
Diffstat (limited to 'c/src/lib/libbsp/arm/shared/include/arm-cp15-start.h')
-rw-r--r-- | c/src/lib/libbsp/arm/shared/include/arm-cp15-start.h | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/c/src/lib/libbsp/arm/shared/include/arm-cp15-start.h b/c/src/lib/libbsp/arm/shared/include/arm-cp15-start.h index 8b38bf8401..01f3104ade 100644 --- a/c/src/lib/libbsp/arm/shared/include/arm-cp15-start.h +++ b/c/src/lib/libbsp/arm/shared/include/arm-cp15-start.h @@ -62,11 +62,12 @@ arm_cp15_start_set_translation_table_entries( uint32_t i = ARM_MMU_SECT_GET_INDEX(config->begin); uint32_t iend = ARM_MMU_SECT_GET_INDEX(ARM_MMU_SECT_MVA_ALIGN_UP(config->end)); + uint32_t index_mask = (1U << (32 - ARM_MMU_SECT_BASE_SHIFT)) - 1U; if (config->begin != config->end) { - while (i < iend) { + while (i != iend) { ttb [i] = (i << ARM_MMU_SECT_BASE_SHIFT) | config->flags; - ++i; + i = (i + 1U) & index_mask; } } } |