diff --git a/src/main/scala/xiangshan/backend/fu/PMA.scala b/src/main/scala/xiangshan/backend/fu/PMA.scala index 29d03a0e0387d14669b4056077984a1713b95c4e..26bf430ef71a2dba1e7ff9e676c6a6a616fea6f3 100644 --- a/src/main/scala/xiangshan/backend/fu/PMA.scala +++ b/src/main/scala/xiangshan/backend/fu/PMA.scala @@ -108,8 +108,8 @@ trait PMAMethod extends PMAConst { MemMap("h00_3801_0000", "h00_3801_FFFF", "h0", "BEU", "RW"), MemMap("h00_3802_0000", "h00_3802_0FFF", "h0", "DebugModule", "RWX"), MemMap("h00_3802_1000", "h00_3802_1FFF", "h0", "MMPMA", "RW"), - MemMap("h00_3802_2000", "h00_3900_0FFF", "h0", "Reserved", ""), - MemMap("h00_3900_1000", "h00_3900_1FFF", "h0", "Core_reset", "RW"), + MemMap("h00_3802_2000", "h00_3900_0000", "h0", "Reserved", ""), + MemMap("h00_3900_0000", "h00_3900_1FFF", "h0", "L3CacheCtrl", "RW"), MemMap("h00_3900_2000", "h00_39FF_FFFF", "h0", "Reserved", ""), MemMap("h00_3A00_0000", "h00_3A00_0FFF", "h0", "PLL0", "RW), MemMap('h00_3A00_1000", "h00_3BFF_FFFF", "h0", "Reserved", ""), @@ -166,7 +166,7 @@ trait PMAMethod extends PMAConst { cfg(idx).a := 1.U; cfg(idx).r := true.B; cfg(idx).w := true.B idx = idx - 1 - addr(idx) := shift_addr(0x39001000) + addr(idx) := shift_addr(0x39000000) cfg(idx).a := 1.U idx = idx - 1 @@ -197,10 +197,9 @@ trait PMAMethod extends PMAConst { addr(idx) := shift_addr( 0x10000000) cfg(idx).a := 1.U; cfg(idx).r := true.B; cfg(idx).w := true.B idx = idx - 1 - - addr(idx) := shift_addr(0) - + require(idx >= 0) + addr(idx) := shift_addr(0) val cfgInitMerge = cfg.asTypeOf(Vec(num/8, UInt(PMXLEN.W))) (cfgInitMerge, addr, mask)