41typedef enum : uint8_t {
53typedef enum : uint8_t {
65typedef enum : uint8_t {
82typedef enum : uint32_t {
95typedef enum : uint8_t {
113typedef enum : uint32_t {
Error Code Definitions for ra8-firmware.
ra8_err_codes_t ra8_err_t
Canonical error-return type used by every ra8-firmware API.
const ra8_mpu_region_t * ra8_mpu_boot_map(uint8_t *out_count)
Return the canonical boot memory-attribute map region table.
ra8_mpu_perm_t
Per-world (priv / unpriv) access permission for an MPU region.
@ k_ra8_mpu_perm_none
No access at this privilege level.
@ k_ra8_mpu_perm_rw
Read-write at this privilege level.
@ k_ra8_mpu_perm_ro
Read-only at this privilege level.
ra8_mpu_boot_layout_t
Fixed geometry of the canonical boot memory-attribute map.
@ k_ra8_mpu_boot_region_count
Regions in the canonical boot map.
ra8_err_t ra8_mpu_apply_boot_map(void)
Install the canonical 5-region boot memory-attribute map and enable the MPU.
ra8_err_t ra8_mpu_configure(const ra8_mpu_cfg_t *cfg)
Program every MPU region from a static configuration.
ra8_mpu_size_limits_t
Architectural size limits for an MPU region.
@ k_ra8_mpu_min_region_size
Minimum power-of-two size in bytes.
ra8_mpu_attr_idx_t
Index into MAIR0/MAIR1 for the region's memory-attribute set.
@ k_ra8_mpu_attr_idx_5
MAIR1 byte 1.
@ k_ra8_mpu_attr_idx_6
MAIR1 byte 2.
@ k_ra8_mpu_attr_idx_1
MAIR0 byte 1.
@ k_ra8_mpu_attr_idx_3
MAIR0 byte 3.
@ k_ra8_mpu_attr_idx_0
MAIR0 byte 0.
@ k_ra8_mpu_attr_idx_2
MAIR0 byte 2.
@ k_ra8_mpu_attr_idx_4
MAIR1 byte 0.
@ k_ra8_mpu_attr_idx_7
MAIR1 byte 3.
ra8_err_t ra8_mpu_enable(void)
Set MPU_CTRL.ENABLE.
ra8_err_t ra8_mpu_disable(void)
Clear MPU_CTRL.ENABLE.
ra8_err_t ra8_mpu_set_region(uint8_t region, const ra8_mpu_region_t *region_cfg)
Program a single region without disabling the MPU.
ra8_mpu_boot_mair_t
MAIR0/MAIR1 attribute-indirection words for the canonical boot map.
@ k_ra8_mpu_boot_mair0
Boot MAIR0: WB/WA, non-cacheable, Device.
@ k_ra8_mpu_boot_mair1
Boot MAIR1: unused (no AttrIdx >= 4).
bool ra8_mpu_is_enabled(void)
Report whether the core MPU is currently enabled.
ra8_mpu_share_t
Shareability domain for an MPU region (Armv8-M SH[1:0]).
@ k_ra8_mpu_share_non
Non-shareable.
@ k_ra8_mpu_share_inner
Inner shareable.
@ k_ra8_mpu_share_outer
Outer shareable.
Whole-MPU static configuration block.
uint8_t region_count
Entries in regions.
bool privdefena
MPU_CTRL.PRIVDEFENA = 1.
uint32_t mair1
Verbatim MPU_MAIR1 value.
bool hfnmiena
MPU_CTRL.HFNMIENA = 1.
uint32_t mair0
Verbatim MPU_MAIR0 value.
const ra8_mpu_region_t * regions
Region descriptor array.
Static descriptor for one Armv8-M MPU region.
ra8_mpu_perm_t priv
Privileged-mode permission.
bool executable
If true, instruction fetch allowed.
uintptr_t base
Region base address.
uint32_t size
Region size in bytes (power of two).
ra8_mpu_attr_idx_t attr_idx
MAIR slot index.
ra8_mpu_perm_t unpriv
Unprivileged-mode permission.
ra8_mpu_share_t shareable
SH[1:0] field.