From 8ad8e8a69130389225aa9e430621d8bd11dd594c Mon Sep 17 00:00:00 2001 From: Andrew Waterman Date: Wed, 30 Mar 2016 11:01:53 -0700 Subject: [PATCH] Add partial Sv48/Sv57 support Right now, we don't support Sv39 and Sv48 at the same time, which needs to change. --- rocket/src/main/scala/csr.scala | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/rocket/src/main/scala/csr.scala b/rocket/src/main/scala/csr.scala index d7e406ab..71c139de 100644 --- a/rocket/src/main/scala/csr.scala +++ b/rocket/src/main/scala/csr.scala @@ -440,7 +440,8 @@ class CSRFile(implicit p: Parameters) extends CoreModule()(p) } if (usingVM) { - val vm_on = if (xLen == 32) 8 else 9 + require(if (xLen == 32) pgLevels == 2 else pgLevels > 2 && pgLevels < 6) + val vm_on = 6 + pgLevels // TODO Sv48 support should imply Sv39 support when (new_mstatus.vm === 0) { reg_mstatus.vm := 0 } when (new_mstatus.vm === vm_on) { reg_mstatus.vm := vm_on } }