RZ/A Flexible Software Package Documentation
Release v3.3.0
|
|
Interface for Memory Managing Unit(MMU) functions.
The MMU interface provides functions for initializing and modifying virtual memory page tables.
Data Structures | |
struct | mmu_cfg_t |
struct | mmu_api_t |
struct | mmu_instance_t |
Typedefs | |
typedef void | mmu_ctrl_t |
struct mmu_cfg_t |
Page table configuration data for loading by R_MMU_Open()
Data Fields | ||
---|---|---|
const void * | p_extend | Pointer to hardware extend configuration. |
struct mmu_api_t |
MMU driver structure. MMU functions implemented at the HAL layer will follow this API.
Data Fields | |
fsp_err_t(* | open )(mmu_ctrl_t *const p_ctrl, const mmu_cfg_t *p_cfg) |
fsp_err_t(* | close )(mmu_ctrl_t *const p_ctrl) |
fsp_err_t(* | allocateTable )(mmu_ctrl_t *const p_ctrl, uint32_t table_level, uint64_t table_base_ptr) |
fsp_err_t(* | writeTableLink )(mmu_ctrl_t *const p_ctrl, mmu_table_info_t *p_table_info, uint64_t vaddress, uint64_t next_table_base_ptr) |
fsp_err_t(* | writeTable )(mmu_ctrl_t *const p_ctrl, mmu_table_info_t *p_table_info, mmu_section_info_t *p_section_info) |
fsp_err_t(* | writeTableFault )(mmu_ctrl_t *const p_ctrl, mmu_table_info_t *p_table_info, mmu_section_info_t *p_section_info) |
fsp_err_t(* mmu_api_t::open) (mmu_ctrl_t *const p_ctrl, const mmu_cfg_t *p_cfg) |
Initialize internal driver data. Called during startup. Do not call this API during runtime.
[in] | p_ctrl | Pointer to control structure. |
[in] | p_cfg | Pointer to page table configuration data. |
fsp_err_t(* mmu_api_t::close) (mmu_ctrl_t *const p_ctrl) |
Close the API.
[in] | p_ctrl | Pointer to control structure. |
fsp_err_t(* mmu_api_t::allocateTable) (mmu_ctrl_t *const p_ctrl, uint32_t table_level, uint64_t table_base_ptr) |
Initialize buffer for new page table region.
[in] | p_ctrl | Pointer to control structure. |
[in] | table_level | MMU page table level. |
[in] | table_base_ptr | buffer address. |
fsp_err_t(* mmu_api_t::writeTableLink) (mmu_ctrl_t *const p_ctrl, mmu_table_info_t *p_table_info, uint64_t vaddress, uint64_t next_table_base_ptr) |
Write page table entries as next page table link.
[in] | p_ctrl | Pointer to control structure. |
[in] | p_table_info | Page table information. |
[in] | vaddress | Base virtual address of page table. |
[in] | next_table_base_adder | Pointer to page table buffer. |
fsp_err_t(* mmu_api_t::writeTable) (mmu_ctrl_t *const p_ctrl, mmu_table_info_t *p_table_info, mmu_section_info_t *p_section_info) |
Fill page table entries with specified attribute.
[in] | p_ctrl | Pointer to control structure. |
[in] | p_table_info | Page table information. |
[in] | p_section_info | Section descripter information. |
fsp_err_t(* mmu_api_t::writeTableFault) (mmu_ctrl_t *const p_ctrl, mmu_table_info_t *p_table_info, mmu_section_info_t *p_section_info) |
Fill page table entries with acccess fault attribute.
[in] | p_ctrl | Pointer to control structure. |
[in] | p_table_info | Page table information. |
[in] | p_section_info | Section descripter information. |
struct mmu_instance_t |
This structure encompasses everything that is needed to use an instance of this interface.
Data Fields | ||
---|---|---|
mmu_ctrl_t * | p_ctrl | Pointer to the control structure for this instance. |
mmu_cfg_t const * | p_cfg | Pointer to the configuration structure for this instance. |
mmu_api_t const * | p_api | Pointer to the API structure for this instance. |
typedef void mmu_ctrl_t |
MMU control block. Allocate an instance specific control block to pass into the MMU API calls.