RZ Flexible Software Package Documentation  Release v4.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.

Classes

struct  st_mmu_cfg
 
struct  st_mmu_api
 
struct  st_mmu_instance
 

Typedefs

typedef struct st_mmu_table_info mmu_table_info_t
 
typedef struct st_mmu_section_info mmu_section_info_t
 
typedef struct st_mmu_cfg mmu_cfg_t
 
typedef void mmu_ctrl_t
 
typedef struct st_mmu_api mmu_api_t
 
typedef struct st_mmu_instance mmu_instance_t
 

Class Documentation

◆ RZA::st_mmu_cfg

struct RZA::st_mmu_cfg

Page table configuration data for loading by R_MMU_Open()

Class Members
const void * p_extend Pointer to hardware extend configuration.

◆ RZA::st_mmu_api

struct RZA::st_mmu_api

MMU driver structure. MMU functions implemented at the HAL layer will follow this API.

Public Attributes

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)
 

Member Data Documentation

◆ open

fsp_err_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(* close) (mmu_ctrl_t *const p_ctrl)

Close the API.

Parameters
[in]p_ctrlPointer to control structure.

◆ allocateTable

fsp_err_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(* 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(* 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(* 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.

◆ RZA::st_mmu_instance

struct RZA::st_mmu_instance

This structure encompasses everything that is needed to use an instance of this interface.

Class Members
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_table_info_t

typedef struct st_mmu_table_info mmu_table_info_t

Please refer to the struct st_mmu_table_info.

◆ mmu_section_info_t

typedef struct st_mmu_section_info mmu_section_info_t

Please refer to the struct st_mmu_section_info.

◆ mmu_cfg_t

typedef struct st_mmu_cfg mmu_cfg_t

Page table configuration data for loading by R_MMU_Open() Please refer to the struct st_mmu_cfg.

◆ mmu_ctrl_t

typedef void mmu_ctrl_t

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

◆ mmu_api_t

typedef struct st_mmu_api mmu_api_t

MMU driver structure. MMU functions implemented at the HAL layer will follow this API. Please refer to the struct st_mmu_api.

◆ mmu_instance_t

This structure encompasses everything that is needed to use an instance of this interface. Please refer to the struct st_mmu_instance.