AM263x MCU+ SDK  08.02.00
MPU FIREWALL

MPU FIREWALL driver provides API to configure different regions in all supported firewalls.

Features Supported

  • APIs to setup MPU Firewall regions, including region start address, size, attributes like access permissions and AID configurations

SysConfig Features

Note
It is strongly recommend to use SysConfig where it is available instead of using direct SW API calls. This will help simplify the SW application and also catch common mistakes early in the development cycle.
  • MPU Firewall selection
  • Region configuration for each firewall
  • Start address and Size configuration
  • Privilege ID and access permission configuration

Features NOT Supported

  • None

Important Usage Guidelines

  • None

Example Usage

Include the below file to access the APIs

Example to setup MPU Firewall regions is shown below,

/* Initialize the MPU Param structure */
/* Set the region parameters */
mpuParams.id = 4;
mpuParams.regionNumber = 0;
mpuParams.startAddress = 0x70000000;
mpuParams.endAddress = 0x70000100;
mpuParams.aidConfig = (0x1<<PRIV_ID_R5FSS0_0) | (0x1<<PRIV_ID_R5FSS0_1);
mpuParams.aidxConfig = 0;
mpuParams.supervisorReadConfig = 1;
mpuParams.supervisorWriteConfig = 1;
mpuParams.supervisorExecConfig = 1;
mpuParams.userReadConfig = 1;
mpuParams.userWriteConfig = 1;
mpuParams.userExecConfig = 1;
mpuParams.nonSecureConfig = 1;
mpuParams.debugConfig = 1;
/* Program the parameters for the region */

API

APIs for MPU Firewall

MPU_FIREWALL_RegionParams::userReadConfig
uint8_t userReadConfig
Definition: mpu_firewall/v0/mpu_firewall.h:94
MPU_FIREWALL_setRegion
int32_t MPU_FIREWALL_setRegion(MPU_FIREWALL_RegionParams *mpuParams)
Function to configure a Firewall region.
MPU_FIREWALL_RegionParams::supervisorReadConfig
uint8_t supervisorReadConfig
Definition: mpu_firewall/v0/mpu_firewall.h:88
MPU_FIREWALL_RegionParams::endAddress
uint32_t endAddress
Definition: mpu_firewall/v0/mpu_firewall.h:81
MPU_FIREWALL_RegionParams::startAddress
uint32_t startAddress
Definition: mpu_firewall/v0/mpu_firewall.h:79
MPU_FIREWALL_RegionParams::userExecConfig
uint8_t userExecConfig
Definition: mpu_firewall/v0/mpu_firewall.h:98
PRIV_ID_R5FSS0_1
#define PRIV_ID_R5FSS0_1
Definition: cslr_soc_defines.h:125
MPU_FIREWALL_RegionParams::aidConfig
uint32_t aidConfig
Definition: mpu_firewall/v0/mpu_firewall.h:84
MPU_FIREWALL_RegionParams_init
void MPU_FIREWALL_RegionParams_init(MPU_FIREWALL_RegionParams *mpuParams)
Function to initialize the parameters of a region.
MPU_FIREWALL_RegionParams::userWriteConfig
uint8_t userWriteConfig
Definition: mpu_firewall/v0/mpu_firewall.h:96
MPU_FIREWALL_RegionParams::id
uint32_t id
Definition: mpu_firewall/v0/mpu_firewall.h:75
MPU_FIREWALL_RegionParams::supervisorExecConfig
uint8_t supervisorExecConfig
Definition: mpu_firewall/v0/mpu_firewall.h:92
MPU_FIREWALL_RegionParams::debugConfig
uint8_t debugConfig
Definition: mpu_firewall/v0/mpu_firewall.h:102
MPU_FIREWALL_RegionParams::aidxConfig
uint8_t aidxConfig
Definition: mpu_firewall/v0/mpu_firewall.h:86
MPU_FIREWALL_RegionParams::supervisorWriteConfig
uint8_t supervisorWriteConfig
Definition: mpu_firewall/v0/mpu_firewall.h:90
MPU_FIREWALL_RegionParams
MPU Region Parameters.
Definition: mpu_firewall/v0/mpu_firewall.h:73
PRIV_ID_R5FSS0_0
#define PRIV_ID_R5FSS0_0
Definition: cslr_soc_defines.h:124
mpu_firewall.h
MPU_FIREWALL_RegionParams::regionNumber
uint32_t regionNumber
Definition: mpu_firewall/v0/mpu_firewall.h:77
MPU_FIREWALL_RegionParams::nonSecureConfig
uint8_t nonSecureConfig
Definition: mpu_firewall/v0/mpu_firewall.h:100