summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/arm/lpc24xx/startup/start-config-mpu.c
diff options
context:
space:
mode:
Diffstat (limited to 'c/src/lib/libbsp/arm/lpc24xx/startup/start-config-mpu.c')
-rw-r--r--c/src/lib/libbsp/arm/lpc24xx/startup/start-config-mpu.c97
1 files changed, 58 insertions, 39 deletions
diff --git a/c/src/lib/libbsp/arm/lpc24xx/startup/start-config-mpu.c b/c/src/lib/libbsp/arm/lpc24xx/startup/start-config-mpu.c
index b428de655d..b2cffbd2fc 100644
--- a/c/src/lib/libbsp/arm/lpc24xx/startup/start-config-mpu.c
+++ b/c/src/lib/libbsp/arm/lpc24xx/startup/start-config-mpu.c
@@ -24,44 +24,63 @@
#ifdef ARM_MULTILIB_ARCH_V7M
BSP_START_DATA_SECTION const ARMV7M_MPU_Region
- lpc24xx_start_config_mpu_regions [LPC24XX_MPU_REGION_COUNT] = {
- ARMV7M_MPU_REGION_INITIALIZER(
- 0,
- 0x00000000,
- ARMV7M_MPU_SIZE_512_KB,
- ARMV7M_MPU_ATTR_RX
- ),
- ARMV7M_MPU_REGION_INITIALIZER(
- 1,
- 0x10000000,
- ARMV7M_MPU_SIZE_64_KB,
- ARMV7M_MPU_ATTR_RWX
- ),
- ARMV7M_MPU_REGION_INITIALIZER(
- 2,
- 0x20000000,
- ARMV7M_MPU_SIZE_32_KB,
- ARMV7M_MPU_ATTR_RWX
- ),
- ARMV7M_MPU_REGION_INITIALIZER(
- 3,
- 0xa0000000,
- ARMV7M_MPU_SIZE_32_MB,
- ARMV7M_MPU_ATTR_RWX
- ),
- ARMV7M_MPU_REGION_INITIALIZER(
- 4,
- 0x20080000,
- ARMV7M_MPU_SIZE_128_KB,
- ARMV7M_MPU_ATTR_IO
- ),
- ARMV7M_MPU_REGION_INITIALIZER(
- 5,
- 0x40000000,
- ARMV7M_MPU_SIZE_1_MB,
- ARMV7M_MPU_ATTR_IO
- ),
- ARMV7M_MPU_REGION_DISABLED_INITIALIZER(6),
- ARMV7M_MPU_REGION_DISABLED_INITIALIZER(7)
+ lpc24xx_start_config_mpu_region [] = {
+ #if defined(LPC24XX_EMC_IS42S32800D7) \
+ || defined(LPC24XX_EMC_W9825G2JB75I) \
+ || defined(LPC24XX_EMC_IS42S32800B)
+ ARMV7M_MPU_REGION_INITIALIZER(
+ 0,
+ 0x00000000,
+ ARMV7M_MPU_SIZE_512_KB,
+ ARMV7M_MPU_ATTR_RX
+ ),
+ ARMV7M_MPU_REGION_INITIALIZER(
+ 1,
+ 0x10000000,
+ ARMV7M_MPU_SIZE_64_KB,
+ ARMV7M_MPU_ATTR_RWX
+ ),
+ ARMV7M_MPU_REGION_INITIALIZER(
+ 2,
+ 0x20000000,
+ ARMV7M_MPU_SIZE_32_KB,
+ ARMV7M_MPU_ATTR_RWX
+ ),
+ ARMV7M_MPU_REGION_INITIALIZER(
+ 3,
+ 0xa0000000,
+ ARMV7M_MPU_SIZE_32_MB,
+ ARMV7M_MPU_ATTR_RWX
+ ),
+ ARMV7M_MPU_REGION_INITIALIZER(
+ 4,
+ 0x20080000,
+ ARMV7M_MPU_SIZE_128_KB,
+ ARMV7M_MPU_ATTR_IO
+ ),
+ ARMV7M_MPU_REGION_INITIALIZER(
+ 5,
+ 0x40000000,
+ ARMV7M_MPU_SIZE_1_MB,
+ ARMV7M_MPU_ATTR_IO
+ ),
+ #if defined(LPC24XX_EMC_M29W320E70) \
+ || defined(LPC24XX_EMC_SST39VF3201)
+ ARMV7M_MPU_REGION_INITIALIZER(
+ 6,
+ 0x80000000,
+ ARMV7M_MPU_SIZE_4_MB,
+ ARMV7M_MPU_ATTR_RWX
+ ),
+ #else
+ ARMV7M_MPU_REGION_DISABLED_INITIALIZER(6),
+ #endif
+ ARMV7M_MPU_REGION_DISABLED_INITIALIZER(7)
+ #endif
};
+
+ BSP_START_DATA_SECTION const size_t
+ lpc24xx_start_config_mpu_region_count =
+ sizeof(lpc24xx_start_config_mpu_region)
+ / sizeof(lpc24xx_start_config_mpu_region [0]);
#endif