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 19935edac4STang Haojinimport chisel3.util.log2Ceil 208891a219SYinan Xuimport org.chipsalliance.cde.config.{Field, Parameters} 2198c71602SJiawei Linimport freechips.rocketchip.tile.XLen 2298c71602SJiawei Linimport system.SoCParamsKey 23*8882eb68SXin Tianimport system.CVMParamskey 2498c71602SJiawei Linimport xiangshan.backend.fu.{MMPMAConfig, MMPMAMethod} 2598c71602SJiawei Lin 2698c71602SJiawei Lincase object PMParameKey extends Field[PMParameters] 2798c71602SJiawei Lin 2898c71602SJiawei Lincase class PMParameters 2998c71602SJiawei Lin( 3098c71602SJiawei Lin NumPMP: Int = 16, 3198c71602SJiawei Lin NumPMA: Int = 16, 3298c71602SJiawei Lin 335b7ef044SLemover PlatformGrain: Int = log2Ceil(4*1024), // 4KB, a normal page 3498c71602SJiawei Lin mmpma: MMPMAConfig = MMPMAConfig( 3598c71602SJiawei Lin address = 0x38021000, 365b7ef044SLemover mask = 0xfff, 3798c71602SJiawei Lin lgMaxSize = 3, 3898c71602SJiawei Lin sameCycle = true, 3998c71602SJiawei Lin num = 2 4098c71602SJiawei Lin ) 4198c71602SJiawei Lin) 4298c71602SJiawei Lin//trait HasPMParameters extends PMParameters 4398c71602SJiawei Lintrait HasPMParameters { 4498c71602SJiawei Lin implicit val p: Parameters 4598c71602SJiawei Lin 4645def856STang Haojin def PMPAddrBits = p(SoCParamsKey).PAddrBits 4745def856STang Haojin def PMPPmemRanges = p(SoCParamsKey).PmemRanges 485bd65c56STang Haojin def PMAConfigs = p(SoCParamsKey).PMAConfigs 49*8882eb68SXin Tian val PMPKeyIDBits = p(CVMParamskey).KeyIDBits 5045def856STang Haojin def PMXLEN = p(XLen) 5145def856STang Haojin def pmParams = p(PMParameKey) 5245def856STang Haojin def NumPMP = pmParams.NumPMP 5345def856STang Haojin def NumPMA = pmParams.NumPMA 5498c71602SJiawei Lin 5545def856STang Haojin def PlatformGrain = pmParams.PlatformGrain 5645def856STang Haojin def mmpma = pmParams.mmpma 5798c71602SJiawei Lin} 58