diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2012-06-15 13:44:08 +0200 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2012-06-15 15:59:36 +0200 |
commit | a94bcc5a3e0108b81c298c3ced91861f38bf9b39 (patch) | |
tree | b1592e3019ad8d4e26477cb94a9cebded686e30a /c/src/lib/libbsp/arm/lpc24xx/startup/start-config-mpu.c | |
parent | bsp/lpc24xx: Fix timing for M29W320E70 (diff) | |
download | rtems-a94bcc5a3e0108b81c298c3ced91861f38bf9b39.tar.bz2 |
bsp/lpc24xx: More flexible region configuration
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.c | 97 |
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 |