198c71602SJiawei Lin/*************************************************************************************** 298c71602SJiawei Lin * Copyright (c) 2020-2021 Institute of Computing Technology, Chinese Academy of Sciences 398c71602SJiawei Lin * Copyright (c) 2020-2021 Peng Cheng Laboratory 498c71602SJiawei Lin * 598c71602SJiawei Lin * XiangShan is licensed under Mulan PSL v2. 698c71602SJiawei Lin * You can use this software according to the terms and conditions of the Mulan PSL v2. 798c71602SJiawei Lin * You may obtain a copy of Mulan PSL v2 at: 898c71602SJiawei Lin * http://license.coscl.org.cn/MulanPSL2 998c71602SJiawei Lin * 1098c71602SJiawei Lin * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, 1198c71602SJiawei Lin * EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, 1298c71602SJiawei Lin * MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE. 1398c71602SJiawei Lin * 1498c71602SJiawei Lin * See the Mulan PSL v2 for more details. 1598c71602SJiawei Lin ***************************************************************************************/ 1698c71602SJiawei Lin 1798c71602SJiawei Linpackage xiangshan 1898c71602SJiawei Lin 1998c71602SJiawei Linimport Chisel.log2Ceil 2098c71602SJiawei Linimport chipsalliance.rocketchip.config.{Field, Parameters} 2198c71602SJiawei Linimport freechips.rocketchip.tile.XLen 2298c71602SJiawei Linimport system.SoCParamsKey 2398c71602SJiawei Linimport xiangshan.backend.fu.{MMPMAConfig, MMPMAMethod} 2498c71602SJiawei Lin 2598c71602SJiawei Lincase object PMParameKey extends Field[PMParameters] 2698c71602SJiawei Lin 2798c71602SJiawei Lincase class PMParameters 2898c71602SJiawei Lin( 2998c71602SJiawei Lin NumPMP: Int = 16, 3098c71602SJiawei Lin NumPMA: Int = 16, 3198c71602SJiawei Lin 32*5b7ef044SLemover PlatformGrain: Int = log2Ceil(4*1024), // 4KB, a normal page 3398c71602SJiawei Lin mmpma: MMPMAConfig = MMPMAConfig( 3498c71602SJiawei Lin address = 0x38021000, 35*5b7ef044SLemover mask = 0xfff, 3698c71602SJiawei Lin lgMaxSize = 3, 3798c71602SJiawei Lin sameCycle = true, 3898c71602SJiawei Lin num = 2 3998c71602SJiawei Lin ) 4098c71602SJiawei Lin) 4198c71602SJiawei Lin//trait HasPMParameters extends PMParameters 4298c71602SJiawei Lintrait HasPMParameters { 4398c71602SJiawei Lin implicit val p: Parameters 4498c71602SJiawei Lin 4598c71602SJiawei Lin val PMPAddrBits = p(SoCParamsKey).PAddrBits 4698c71602SJiawei Lin val PMXLEN = p(XLen) 4798c71602SJiawei Lin val pmParams = p(PMParameKey) 4898c71602SJiawei Lin val NumPMP = pmParams.NumPMP 4998c71602SJiawei Lin val NumPMA = pmParams.NumPMA 5098c71602SJiawei Lin 5198c71602SJiawei Lin val PlatformGrain = pmParams.PlatformGrain 5298c71602SJiawei Lin val mmpma = pmParams.mmpma 5398c71602SJiawei Lin}