Software APIs
Data Fields
dif_rv_core_ibex_addr_translation_mapping Struct Reference

Address translation matching region. More...

#include <sw/device/lib/dif/dif_rv_core_ibex.h>

Data Fields

uintptr_t matching_addr
 Matching address (Virtual address). More...
 
uintptr_t remap_addr
 Remap address (Physical address). More...
 
size_t size
 Address region size.
 

Detailed Description

Address translation matching region.

The value programmed is done at power-of-2 alignment. For example, if the intended matching region is 0x8000_0000 to 0x8000_FFFF, the value programmed is 0x8000_7FFF.

The value programmed can be determined from the translation granule. Assume the user wishes to translate a specific 64KB block to a different address: 64KB has a hex value of 0x10000. Subtract 1 from this value and then right shift by one to obtain 0x7FFF. This value is then logically OR'd with the upper address bits that would select which 64KB to translate.

Definition at line 51 of file dif_rv_core_ibex.h.

Field Documentation

◆ matching_addr

uintptr_t dif_rv_core_ibex_addr_translation_mapping::matching_addr

Matching address (Virtual address).

When an incoming transaction matches the matching region, it is redirected to the new address. If a transaction does not match, then it is directly passed through.

Definition at line 58 of file dif_rv_core_ibex.h.

◆ remap_addr

uintptr_t dif_rv_core_ibex_addr_translation_mapping::remap_addr

Remap address (Physical address).

The region where the matched transtaction will be redirected to.

Definition at line 65 of file dif_rv_core_ibex.h.

◆ size

size_t dif_rv_core_ibex_addr_translation_mapping::size

Address region size.

Definition at line 70 of file dif_rv_core_ibex.h.