VIRTUTECH CONFIDENTIAL Previous - Up - Next
mmu
- Implemented By
-
cheetah-mmu, cheetah-plus-mmu, jaguar-mmu, jalapeno-mmu, niagara-strand-mmu, panther-mmu, spitfire-mmu
- Description
-
logical_to_physical() should fill in the
physical_address field (and other address fields when
appropriate) in the memory transaction if the transaction is
valid. Side effects such as modifying dirty or access bits should
only take place if the inquiry bit in the transaction is clear.
The set_error function can return a new exception to override the
one set by the Simics core. The overriding exception is only used
for memory accesses.
typedef struct {
exception_type_t (*logical_to_physical)(conf_object_t *mmu_obj,
v9_memory_transaction_t *);
int (*get_current_context)(conf_object_t *mmu_obj,
conf_object_t *cpu);
void (*cpu_reset)(conf_object_t *mmu_obj,
conf_object_t *cpu_obj,
exception_type_t exc_no);
exception_type_t (*undefined_asi)(conf_object_t *mmu_obj,
v9_memory_transaction_t *mem_op);
exception_type_t (*set_error)(conf_object_t *mmu_obj,
conf_object_t *cpu_obj,
exception_type_t ex,
uint64 addr,
int ft,
int address_space,
read_or_write_t r_or_w,
data_or_instr_t d_or_i,
int atomic,
int tl,
int priv);
void (*set_error_info)(mmu_error_info_t *ei);
exception_type_t (*asi_0x40_callback)(conf_object_t *cpu,
uint64 addr, uint64 value, int size, int fp);
} mmu_interface_t;
VIRTUTECH CONFIDENTIAL Previous - Up - Next