arch-riscv: fatal_if the process run without SU modes

Change-Id: Ifce7eec6cea10881964c29d206a92f3d10271de6
This commit is contained in:
Roger Chang
2023-10-31 14:34:28 +08:00
parent 9e738a65ea
commit 6fd4feb797

View File

@@ -106,6 +106,10 @@ RiscvProcess64::initState()
tc->setMiscRegNoEffect(MISCREG_PRV, PRV_U);
auto *isa = dynamic_cast<ISA*>(tc->getIsaPtr());
fatal_if(isa->rvType() != RV64, "RISC V CPU should run in 64 bits mode");
MISA misa = tc->readMiscRegNoEffect(MISCREG_ISA);
fatal_if(!(misa.rvu && misa.rvs),
"RISC V SE mode can't run without supervisor and user "
"privilege modes.");
}
}
@@ -120,6 +124,10 @@ RiscvProcess32::initState()
tc->setMiscRegNoEffect(MISCREG_PRV, PRV_U);
auto *isa = dynamic_cast<ISA*>(tc->getIsaPtr());
fatal_if(isa->rvType() != RV32, "RISC V CPU should run in 32 bits mode");
MISA misa = tc->readMiscRegNoEffect(MISCREG_ISA);
fatal_if(!(misa.rvu && misa.rvs),
"RISC V SE mode can't run without supervisor and user "
"privilege modes.");
}
}