Skip to content

Commit feacfb5

Browse files
authored
fix(MMIOBridge): modify TIMERRange from fix value to soc parameter (OpenXiangShan#453)
* fix(MMIOBridge): modify TIMERRange from fix value to soc parameter * chore(L2Param): add comment * chore(MMIOBridge): optimize refer to pr comment * chore(L2Param): optimize refer to pr comment
1 parent 4e4a6aa commit feacfb5

File tree

3 files changed

+15
-15
lines changed

3 files changed

+15
-15
lines changed

src/main/scala/coupledL2/CoupledL2.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ trait HasCoupledL2Parameters {
4141
def enableCHI = p(EnableCHI)
4242
def enableClockGate = p(EnableL2ClockGate)
4343
def cacheParams = p(L2ParamKey)
44-
def EnablePrivateClint = cacheParams.EnablePrivateClint
44+
def PrivateClintRange = cacheParams.PrivateClintRange
4545

4646
def XLEN = 64
4747
def blocks = cacheParams.sets * cacheParams.ways

src/main/scala/coupledL2/L2Param.scala

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,13 @@ package coupledL2
1919

2020
import chisel3._
2121
import chisel3.util.log2Ceil
22-
import freechips.rocketchip.diplomacy.{BufferParams, AddressSet}
22+
import freechips.rocketchip.diplomacy.{AddressSet, BufferParams}
2323
import freechips.rocketchip.tilelink._
2424
import freechips.rocketchip.util._
2525
import org.chipsalliance.cde.config.Field
2626
import huancun.{AliasKey, CacheParameters, IsHitKey, PrefetchKey}
2727
import coupledL2.prefetch._
28-
import utility.{MemReqSource, ReqSourceKey, Code}
28+
import utility.{Code, MemReqSource, ReqSourceKey}
2929

3030
case object EnableCHI extends Field[Boolean](false)
3131
case object EnableL2ClockGate extends Field[Boolean](true)
@@ -132,8 +132,8 @@ case class L2Param(
132132
hasMbist: Boolean = false,
133133
hasSramCtl: Boolean = false,
134134

135-
// Enable new clint
136-
EnablePrivateClint: Boolean = false
135+
// both EnablePrivateClint and PrivateClintRange are from soc parameters.
136+
PrivateClintRange: Option[AddressSet] = None
137137
) {
138138
def toCacheParams: CacheParameters = CacheParameters(
139139
name = name,

src/main/scala/coupledL2/tl2chi/MMIOBridge.scala

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -38,16 +38,16 @@ class MMIOBridge()(implicit p: Parameters) extends LazyModule
3838
* MMIO node
3939
*/
4040
val beuRange = AddressSet(0x38010000, 4096 - 1)
41-
val clintRange = AddressSet(0x38000000L, 0xFFFF)
42-
val peripheralRange = if (!EnablePrivateClint) { // clint is interated with periph bus
43-
AddressSet(
44-
0x0, 0xffffffffffffL
45-
).subtract(beuRange)
46-
} else {
47-
AddressSet(
48-
0x0, 0xffffffffffffL
49-
).subtract(beuRange).flatMap(_.subtract(clintRange))
50-
}
41+
val clintRange = PrivateClintRange
42+
// clint is interated with periph bus
43+
val peripheralRange =
44+
AddressSet(0x0, 0xffffffffffffL).subtract(beuRange).flatMap {
45+
addrSet =>
46+
clintRange match {
47+
case Some(cRange) => addrSet.subtract(cRange)
48+
case None => Seq(addrSet)
49+
}
50+
}
5151

5252
val mmioNode = TLManagerNode(Seq(TLSlavePortParameters.v1(
5353
managers = Seq(TLSlaveParameters.v1(

0 commit comments

Comments
 (0)