RZ/A Flexible Software Package Documentation  Release v3.0.0

 
Memory Managing Unit Interface

Detailed Description

Interface for Memory Managing Unit(MMU) functions.

Summary

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
 

Data Structure Documentation

◆ mmu_cfg_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.

◆ mmu_api_t

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)
 

Field Documentation

◆ open

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.

Parameters
[in]p_ctrlPointer to control structure.
[in]p_cfgPointer to page table configuration data.

◆ close

fsp_err_t(* mmu_api_t::close) (mmu_ctrl_t *const p_ctrl)

Close the API.

Parameters
[in]p_ctrlPointer to control structure.

◆ allocateTable

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.

Parameters
[in]p_ctrlPointer to control structure.
[in]table_levelMMU page table level.
[in]table_base_ptrbuffer address.

◆ writeTableLink

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.

Parameters
[in]p_ctrlPointer to control structure.
[in]p_table_infoPage table information.
[in]vaddressBase virtual address of page table.
[in]next_table_base_adderPointer to page table buffer.

◆ writeTable

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.

Parameters
[in]p_ctrlPointer to control structure.
[in]p_table_infoPage table information.
[in]p_section_infoSection descripter information.

◆ writeTableFault

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.

Parameters
[in]p_ctrlPointer to control structure.
[in]p_table_infoPage table information.
[in]p_section_infoSection descripter information.

◆ mmu_instance_t

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 Documentation

◆ mmu_ctrl_t

typedef void mmu_ctrl_t

MMU control block. Allocate an instance specific control block to pass into the MMU API calls.