Skip to content

Commit 9ec7553

Browse files
committed
AIA: instantiate S/VS IMSIC indirect CSRs
1 parent 59eefbd commit 9ec7553

File tree

1 file changed

+19
-0
lines changed

1 file changed

+19
-0
lines changed

riscv/csr_init.cc

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -511,6 +511,25 @@ void state_t::csr_init(processor_t* const proc, reg_t max_isa)
511511
}
512512
}
513513
}
514+
if (proc->extension_enabled_const(EXT_SSAIA)) {
515+
auto aia_vsireg = std::make_shared<aia_ireg_proxy_csr_t>(proc, CSR_VSIREG, vsiselect);
516+
// csrmaps of vs files are the same as vgein = 1
517+
for (auto &csr : *aia_vsireg->get_csrmap(1))
518+
vsireg->add_ireg_proxy(csr.first, aia_vsireg);
519+
// reserved range RAZ/WI
520+
vsireg->add_ireg_proxy(0x71, aia_vsireg);
521+
for (int i = 0x73; i <= 0x7f; i++)
522+
vsireg->add_ireg_proxy(i, aia_vsireg);
523+
524+
auto aia_sireg = std::make_shared<aia_ireg_proxy_csr_t>(proc, CSR_SIREG, siselect);
525+
for (auto &csr : *aia_sireg->get_csrmap())
526+
sireg->add_ireg_proxy(csr.first, aia_sireg);
527+
// reserved range RAZ/WI
528+
sireg->add_ireg_proxy(0x71, aia_sireg);
529+
for (int i = 0x73; i <= 0x7f; i++)
530+
sireg->add_ireg_proxy(i, aia_sireg);
531+
}
532+
514533
}
515534

516535
if (proc->extension_enabled_const(EXT_SMCNTRPMF)) {

0 commit comments

Comments
 (0)