128e02921a9cc83fc6a42bde9c9113b5989a6f3d
[freedom-sifive.git] / src / main / scala / everywhere / e300artydevkit / Configs.scala
1 // See LICENSE for license details.
2 package sifive.freedom.everywhere.e300artydevkit
3
4 import config._
5 import coreplex._
6 import rocketchip._
7
8
9 class DefaultFreedomEConfig extends Config(
10 new WithStatelessBridge ++
11 new WithNBreakpoints(2) ++
12 new WithRV32 ++
13 new DefaultSmallConfig
14 )
15
16 class WithBootROMFile(bootROMFile: String) extends Config(
17 (pname, site, here) => pname match {
18 case BootROMFile => bootROMFile
19 case _ => throw new CDEMatchError
20 }
21 )
22
23 class E300ArtyDevKitConfig extends Config(
24 new WithBootROMFile("./bootrom/e300artydevkit.img") ++
25 new WithNExtTopInterrupts(0) ++
26 new WithJtagDTM ++
27 new WithL1ICacheSets(8192/32) ++ // 8 KiB **per set**
28 new WithCacheBlockBytes(32) ++
29 new WithL1ICacheWays(2) ++
30 new WithDefaultBtb ++
31 new WithFastMulDiv ++
32 new WithDataScratchpad(16384) ++
33 new WithNMemoryChannels(0) ++
34 new WithoutFPU ++
35 new WithTLMonitors ++
36 new DefaultFreedomEConfig
37 )