RTEMS 6.1-rc6
Loading...
Searching...
No Matches
Data Structures | Macros | Functions | Variables
aarch64-mmu.h File Reference

AArch64 MMU configuration. More...

#include <bsp/fatal.h>
#include <bsp/linker-symbols.h>
#include <bsp/start.h>
#include <bsp/utility.h>
#include <bspopts.h>
#include <libcpu/mmu-vmsav8-64.h>
#include <rtems/score/aarch64-system-registers.h>

Go to the source code of this file.

Data Structures

struct  aarch64_mmu_config_entry
 
struct  aarch64_mmu_control
 This structure represents the state to maintain the MMU translation tables. More...
 

Macros

#define AARCH64_MMU_DEFAULT_SECTIONS
 

Functions

rtems_status_code aarch64_mmu_set_translation_table_entries (aarch64_mmu_control *control, const aarch64_mmu_config_entry *config)
 Sets the MMU translation table entries associated with the memory region.
 
void aarch64_mmu_setup_translation_table (aarch64_mmu_control *control, const aarch64_mmu_config_entry *config_table, size_t config_count)
 Sets up the MMU translation table.
 

Variables

const aarch64_mmu_config_entry aarch64_mmu_config_table []
 This is the AArch64 MMU configuration table.
 
const size_t aarch64_mmu_config_table_size
 This is the count of entries in the AArch64 MMU configuration table.
 
aarch64_mmu_control aarch64_mmu_instance
 This object is used to maintain the MMU translation tables.
 

Detailed Description

AArch64 MMU configuration.

Function Documentation

◆ aarch64_mmu_set_translation_table_entries()

rtems_status_code aarch64_mmu_set_translation_table_entries ( aarch64_mmu_control control,
const aarch64_mmu_config_entry config 
)

Sets the MMU translation table entries associated with the memory region.

Parameters
[in,out]controlis a reference to the MMU control state.
[in]configis the configuration entry with the memory region and region attributes.
Return values
RTEMS_SUCCESSFULThe requested operation was successful.
RTEMS_INVALID_ADDRESSThe begin address of the memory region cannot be mapped by the MMU.
RTEMS_INVALID_SIZEThe end address of the memory region cannot be mapped by the MMU.
RTEMS_TOO_MANYThere was no page table entry available to perform the mapping.

◆ aarch64_mmu_setup_translation_table()

void aarch64_mmu_setup_translation_table ( aarch64_mmu_control control,
const aarch64_mmu_config_entry config_table,
size_t  config_count 
)

Sets up the MMU translation table.

The memory regions of the configuration table are mapped by the MMU. If a mapping is infeasible, then the BSP fatal error AARCH64_FATAL_MMU_CANNOT_MAP_BLOCK will be issued.

Parameters
[in,out]controlis a reference to the MMU control state.
[in]config_tableis the configuration table with memory regions and region attributes.
config_countis the count of configuration table entries.

Variable Documentation

◆ aarch64_mmu_config_table

const aarch64_mmu_config_entry aarch64_mmu_config_table[]
extern

This is the AArch64 MMU configuration table.

The default table is provided by the BSP. Applications may provide their own.

◆ aarch64_mmu_config_table_size

const size_t aarch64_mmu_config_table_size
extern

This is the count of entries in the AArch64 MMU configuration table.

The default table is provided by the BSP. Applications may provide their own.