RTEMS 6.1-rc5
|
AArch64 MMU configuration. More...
#include <bsp/aarch64-mmu.h>
#include <bsp/fatal.h>
#include <bsp/linker-symbols.h>
#include <bsp/start.h>
#include <rtems/score/aarch64-system-registers.h>
#include <rtems/score/assert.h>
Macros | |
#define | MMU_MAX_SUBTABLE_PAGE_BITS ( 3 * MMU_BITS_PER_LEVEL + MMU_PAGE_BITS ) |
Functions | |
BSP_START_TEXT_SECTION 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. | |
BSP_START_TEXT_SECTION 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 | |
aarch64_mmu_control | aarch64_mmu_instance |
This object is used to maintain the MMU translation tables. | |
AArch64 MMU configuration.
BSP_START_TEXT_SECTION 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.
[in,out] | control | is a reference to the MMU control state. |
[in] | config | is the configuration entry with the memory region and region attributes. |
RTEMS_SUCCESSFUL | The requested operation was successful. |
RTEMS_INVALID_ADDRESS | The begin address of the memory region cannot be mapped by the MMU. |
RTEMS_INVALID_SIZE | The end address of the memory region cannot be mapped by the MMU. |
RTEMS_TOO_MANY | There was no page table entry available to perform the mapping. |
BSP_START_TEXT_SECTION 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.
[in,out] | control | is a reference to the MMU control state. |
[in] | config_table | is the configuration table with memory regions and region attributes. |
config_count | is the count of configuration table entries. |
aarch64_mmu_control aarch64_mmu_instance |
This object is used to maintain the MMU translation tables.