Kinetis K8x MPU regions overlaping rules

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Kinetis K8x MPU regions overlaping rules

Jump to solution
411 Views
EugeneHiihtaja
Senior Contributor I

Hello !

K82 MPU have 12 regions and  while definitions it can be overlaping when the same address space fragments have different access right for User and Supervisor modes.

 During each access MPU state machine scan all valid regions what is enabled.

I undestand ,  each region can be enabled/disabled individually and enable/disabled regions can be allocated in any order and all valid entries is taken to calculation for one access right rule for user and one access rule right for supervisor modes.

Is this so ? Or some other priorities/rules exists ?

Do I undestang right and lesser rule are taken in use ?

*! @brief SYSMPU access rights in supervisor mode for bus master 0 ~ 3. */
typedef enum _sysmpu_supervisor_access_rights
{
kSYSMPU_SupervisorReadWriteExecute = 0U, /*!< Read write and execute operations are allowed in supervisor mode. */
kSYSMPU_SupervisorReadExecute =        1U, /*!< Read and execute operations are allowed in supervisor mode. */
kSYSMPU_SupervisorReadWrite =             2U, /*!< Read write operations are allowed in supervisor mode. */
kSYSMPU_SupervisorEqualToUsermode = 3U /*!< Access permission equal to user mode. */
} sysmpu_supervisor_access_rights_t;

/*! @brief SYSMPU access rights in user mode for bus master 0 ~ 3. */
typedef enum _sysmpu_user_access_rights
{
kSYSMPU_UserNoAccessRights = 0U, /*!< No access allowed in user mode. */
kSYSMPU_UserExecute =              1U, /*!< Execute operation is allowed in user mode. */
kSYSMPU_UserWrite =                   2U, /*!< Write operation is allowed in user mode. */
kSYSMPU_UserWriteExecute =     3U, /*!< Write and execute operations are allowed in user mode. */
kSYSMPU_UserRead =                 4U, /*!< Read is allowed in user mode. */
kSYSMPU_UserReadExecute =    5U, /*!< Read and execute operations are allowed in user mode. */
kSYSMPU_UserReadWrite =         6U, /*!< Read and write operations are allowed in user mode. */
kSYSMPU_UserReadWriteExecute = 7U /*!< Read write and execute operations are allowed in user mode. */
} sysmpu_user_access_rights_t;

Or address regions shouln't be overlaped and defined sequentially ?

What kind of  MPU protection  is defined for address space what is not covered by MPU descriptors ?

Can supervisor/user have any type of access what is not covered by any descriptor ?

Or it cause BusFault ?

Please clarify a bit. How-to calculate overlapping rules and what access right has regions what is not covered by any MPU descriptors . e.g some peripherals spaces for example ?

Regards,

Eugene

0 Kudos
1 Solution
354 Views
jingpan
NXP TechSupport
NXP TechSupport

Hi,

All the rules are listed in 23.5.1. There is no other rule else. The address which is not covered by any region is opened to all master, read, write, execute.

Regards,

Jing

View solution in original post

0 Kudos
1 Reply
355 Views
jingpan
NXP TechSupport
NXP TechSupport

Hi,

All the rules are listed in 23.5.1. There is no other rule else. The address which is not covered by any region is opened to all master, read, write, execute.

Regards,

Jing

0 Kudos