66 lines
1.3 KiB
C
66 lines
1.3 KiB
C
/* SPDX-License-Identifier: Apache-2.0
|
|
*
|
|
* Copyright (c) 2021 Lexmark International, Inc.
|
|
*/
|
|
|
|
#include <zephyr/kernel.h>
|
|
#include <zephyr/arch/arm/mpu/arm_mpu.h>
|
|
|
|
#define MPUTYPE_READ_ONLY \
|
|
{ \
|
|
.rasr = (P_RO_U_RO_Msk \
|
|
| (7 << MPU_RASR_TEX_Pos) \
|
|
| MPU_RASR_C_Msk \
|
|
| MPU_RASR_B_Msk \
|
|
| MPU_RASR_XN_Msk) \
|
|
}
|
|
|
|
#define MPUTYPE_READ_ONLY_PRIV \
|
|
{ \
|
|
.rasr = (P_RO_U_RO_Msk \
|
|
| (5 << MPU_RASR_TEX_Pos) \
|
|
| MPU_RASR_B_Msk) \
|
|
}
|
|
|
|
#define MPUTYPE_PRIV_WBWACACHE_XN \
|
|
{ \
|
|
.rasr = (P_RW_U_NA_Msk \
|
|
| (5 << MPU_RASR_TEX_Pos) \
|
|
| MPU_RASR_B_Msk \
|
|
| MPU_RASR_XN_Msk) \
|
|
}
|
|
|
|
#define MPUTYPE_PRIV_DEVICE \
|
|
{ \
|
|
.rasr = (P_RW_U_NA_Msk \
|
|
| (2 << MPU_RASR_TEX_Pos)) \
|
|
}
|
|
|
|
extern uint32_t _image_rom_end_order;
|
|
static const struct arm_mpu_region mpu_regions[] = {
|
|
MPU_REGION_ENTRY("FLASH0",
|
|
0xc0000000,
|
|
REGION_32M,
|
|
MPUTYPE_READ_ONLY),
|
|
|
|
MPU_REGION_ENTRY("SRAM_PRIV",
|
|
0x00000000,
|
|
REGION_2G,
|
|
MPUTYPE_PRIV_WBWACACHE_XN),
|
|
|
|
MPU_REGION_ENTRY("SRAM",
|
|
0x00000000,
|
|
((uint32_t)&_image_rom_end_order),
|
|
MPUTYPE_READ_ONLY_PRIV),
|
|
|
|
MPU_REGION_ENTRY("REGISTERS",
|
|
0xf8000000,
|
|
REGION_128M,
|
|
MPUTYPE_PRIV_DEVICE),
|
|
};
|
|
|
|
const struct arm_mpu_config mpu_config = {
|
|
.num_regions = ARRAY_SIZE(mpu_regions),
|
|
.mpu_regions = mpu_regions,
|
|
};
|