Skip to content

Commit

Permalink
Fix #101
Browse files Browse the repository at this point in the history
  • Loading branch information
Dolu1990 committed May 31, 2024
1 parent c5e4d74 commit 3008ac6
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 0 deletions.
5 changes: 5 additions & 0 deletions src/main/scala/naxriscv/interfaces/Service.scala
Original file line number Diff line number Diff line change
Expand Up @@ -488,6 +488,11 @@ trait CsrService extends Service with LockedImpl{
}
}

def writeOverride[T <: Data](value: T, csrFilter: Any, bitOffset: Int = 0): Unit = {
onWrite(csrFilter, false) {
onWriteBits(bitOffset, widthOf(value) bits) := value.asBits
}
}
def readWrite(csrAddress : Int, thats : (Int, Data)*) : Unit = for(that <- thats) readWrite(that._2, csrAddress, that._1)
def write(csrAddress : Int, thats : (Int, Data)*) : Unit = for(that <- thats) write(that._2, csrAddress, that._1)
def read(csrAddress : Int, thats : (Int, Data)*) : Unit = for(that <- thats) read(that._2, csrAddress, that._1)
Expand Down
3 changes: 3 additions & 0 deletions src/main/scala/naxriscv/misc/PrivilegedPlugin.scala
Original file line number Diff line number Diff line change
Expand Up @@ -416,6 +416,7 @@ class PrivilegedPlugin(var p : PrivilegedConfig) extends Plugin with PrivilegedS
val tval = csr.readWriteRam(CSR.MTVAL)
val epc = csr.readWriteRam(CSR.MEPC)
val scratch = csr.readWriteRam(CSR.MSCRATCH)
csr.writeOverride(U(0, RVC.get.mux(1, 2) bits), CSR.MEPC, 0)

csr.read(U(p.vendorId),CSR.MVENDORID) // MRO Vendor ID.
csr.read(U(p.archId), CSR.MARCHID) // MRO Architecture ID.
Expand Down Expand Up @@ -504,6 +505,7 @@ class PrivilegedPlugin(var p : PrivilegedConfig) extends Plugin with PrivilegedS
val tval = csr.readWriteRam(CSR.STVAL)
val epc = csr.readWriteRam(CSR.SEPC)
val scratch = csr.readWriteRam(CSR.SSCRATCH)
csr.writeOverride(U(0, RVC.get.mux(1, 2) bits), CSR.SEPC, 0)

csr.readWrite(CSR.SCAUSE, XLEN-1 -> cause.interrupt, 0 -> cause.code)

Expand Down Expand Up @@ -546,6 +548,7 @@ class PrivilegedPlugin(var p : PrivilegedConfig) extends Plugin with PrivilegedS
val tval = csr.readWriteRam(CSR.UTVAL)
val epc = csr.readWriteRam(CSR.UEPC)
val scratch = csr.readWriteRam(CSR.USCRATCH)
csr.writeOverride(U(0, RVC.get.mux(1, 2) bits), CSR.UEPC, 0)
}

if(p.withRdTime) {
Expand Down

0 comments on commit 3008ac6

Please sign in to comment.