# 4K | 64K | !16K | !BigEndEL0 | !SNSMem | !BigEnd | 8b ASID | 40b PA
id_aa64mmfr0_el1 = Param.UInt64(0x0000000000f00002,
"AArch64 Memory Model Feature Register 0")
- # PAN | HPDS | VHE
- id_aa64mmfr1_el1 = Param.UInt64(0x0000000000101100,
+ # PAN | HPDS | !VHE
+ id_aa64mmfr1_el1 = Param.UInt64(0x0000000000101000,
"AArch64 Memory Model Feature Register 1")
- id_aa64mmfr2_el1 = Param.UInt64(0x0000000000000000,
+ # |VARANGE
+ id_aa64mmfr2_el1 = Param.UInt64(0x0000000000010000,
"AArch64 Memory Model Feature Register 2")
# Any access (read/write) to an unimplemented
_genericTimer(nullptr),
_gic(nullptr),
_pwrCtrl(nullptr),
- _highestELIs64(p->highest_el_is_64),
- _physAddrRange64(p->phys_addr_range_64),
- _haveLargeAsid64(p->have_large_asid_64),
- _haveTME(p->have_tme),
- _haveSVE(p->have_sve),
- _sveVL(p->sve_vl),
- _haveLSE(p->have_lse),
- _haveVHE(p->have_vhe),
- _havePAN(p->have_pan),
- _haveSecEL2(p->have_secel2),
- semihosting(p->semihosting),
- multiProc(p->multi_proc)
-{
- if (p->auto_reset_addr) {
+ _highestELIs64(p.highest_el_is_64),
+ _physAddrRange64(p.phys_addr_range_64),
+ _haveLargeAsid64(p.have_large_asid_64),
+ _haveTME(p.have_tme),
+ _haveSVE(p.have_sve),
+ _sveVL(p.sve_vl),
+ _haveLSE(p.have_lse),
++ _haveVHE(p.have_vhe),
+ _havePAN(p.have_pan),
+ _haveSecEL2(p.have_secel2),
+ semihosting(p.semihosting),
+ multiProc(p.multi_proc)
+{
+ if (p.auto_reset_addr) {
_resetAddr = workload->getEntry();
} else {
- _resetAddr = p->reset_addr;
+ _resetAddr = p.reset_addr;
warn_if(workload->getEntry() != _resetAddr,
"Workload entry point %#x and reset address %#x are different",
workload->getEntry(), _resetAddr);