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. | |
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.
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.
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_t dif_rv_core_ibex_addr_translation_mapping::size |
Address region size.
Definition at line 70 of file dif_rv_core_ibex.h.