/* * Copyright (c) 2017 Linaro Limited. * * SPDX-License-Identifier: Apache-2.0 */ #include #include #include "arm_mpu_mem_cfg.h" /* SoC Private Peripheral Bus */ #define PPB_BASE 0xE0000000 static struct arm_mpu_region mpu_regions[] = { /* Region 0 */ MPU_REGION_ENTRY("FLASH_0", CONFIG_FLASH_BASE_ADDRESS, REGION_FLASH_ATTR(REGION_FLASH_SIZE)), /* Region 1 */ MPU_REGION_ENTRY("RAM_0", CONFIG_SRAM_BASE_ADDRESS, REGION_RAM_ATTR(REGION_SRAM_0_SIZE)), /* Region 2 */ MPU_REGION_ENTRY("RAM_1", (CONFIG_SRAM_BASE_ADDRESS + REGION_SRAM_1_START), REGION_RAM_ATTR(REGION_SRAM_1_SIZE)), /* Region 3 */ MPU_REGION_ENTRY("PERIPHERAL_0", APB1PERIPH_BASE, REGION_IO_ATTR(REGION_512M)), /* Region 4 */ MPU_REGION_ENTRY("PPB_0", PPB_BASE, REGION_PPB_ATTR(REGION_256M)), #if defined(CONFIG_BL_APPLICATION) /* Region 5 */ /* * The application booting from a bootloader has no access to the * bootloader region. This behavior can be changed at runtime by * the bootloader. */ MPU_REGION_ENTRY("BOOTLOADER_0", CONFIG_FLASH_BASE_ADDRESS, (NORMAL_OUTER_INNER_NON_CACHEABLE_NON_SHAREABLE | REGION_32K | P_NA_U_NA)), #endif }; struct arm_mpu_config mpu_config = { .num_regions = ARRAY_SIZE(mpu_regions), .mpu_regions = mpu_regions, };