RZA Flexible Software Package Documentation  Release v1.1.0

 
Memory Managing Unit Interface

Detailed Description

Interface for accessing MMI/O ports and configuring I/O functionality.

Summary

The IOPort shared interface provides the ability to access the IOPorts of a device at both bit and port level. Port and pin direction can be changed.

MMU Interface description: Memory Managing Unit (r_mmu)

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_Init()

◆ 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_api_ctrl, uint32_t table_level, uint64_t table_base_ptr)
 
fsp_err_t(* writeTableLink )(mmu_ctrl_t *const p_api_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_api_ctrl, mmu_table_info_t *p_table_info, mmu_section_info_t *p_section_info)
 
fsp_err_t(* writeTableFault )(mmu_ctrl_t *const p_api_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.

Implemented as
Parameters
[in]p_cfgPointer to pin configuration data array.

◆ close

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

Close the API.

Implemented as
Parameters
[in]p_ctrlPointer to control structure.

◆ allocateTable

fsp_err_t(* mmu_api_t::allocateTable) (mmu_ctrl_t *const p_api_ctrl, uint32_t table_level, uint64_t table_base_ptr)

Initialize buffer for new page table region.

Implemented as
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_api_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.

Implemented as
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_api_ctrl, mmu_table_info_t *p_table_info, mmu_section_info_t *p_section_info)

Fill page table entries with specified attribute.

Implemented as
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_api_ctrl, mmu_table_info_t *p_table_info, mmu_section_info_t *p_section_info)

Fill page table entries with acccess fault attribute.

Implemented as
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.

Implemented as
  • mmu_instance_ctrl_t