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)
◆ mmu_cfg_t
Page table configuration data for loading by R_MMU_Init()
◆ 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) |
|
◆ open
Initialize internal driver data. Called during startup. Do not call this API during runtime.
- Implemented as
-
- Parameters
-
[in] | p_cfg | Pointer to pin configuration data array. |
◆ close
Close the API.
- Implemented as
-
- Parameters
-
[in] | p_ctrl | Pointer 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_ctrl | Pointer to control structure. |
[in] | table_level | MMU page table level. |
[in] | table_base_ptr | buffer 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_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. |
◆ 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_ctrl | Pointer to control structure. |
[in] | p_table_info | Page table information. |
[in] | p_section_info | Section 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_ctrl | Pointer to control structure. |
[in] | p_table_info | Page table information. |
[in] | p_section_info | Section descripter information. |
◆ 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. |
◆ mmu_ctrl_t
MMU control block. Allocate an instance specific control block to pass into the MMU API calls.
- Implemented as
-