I am looking for a method to configure BOOM so that it looks for the Bootrom at address
I have already tried many different configurations, including the one below, but BOOM still seems to start at address 0x10000.
The context is: I am isolating the tile, connecting it to some custom TileLink implementation for some simulation testing. So it does not matter to me that in the full SoC there will actually be a Bootrom, since I will be isolating the tile anyway.
class WithExtMemBase(base: BigInt) extends Config((site, here, up) => {
case freechips.rocketchip.subsystem.ExtMem => up(freechips.rocketchip.subsystem.ExtMem, site).map(x => x.copy(master = x.master.copy(base = base)))
})
class WithBootROMOverride(address: BigInt, size: Int, hang: BigInt) extends Config((site, here, up) => {
case freechips.rocketchip.devices.tilelink.BootROMLocated(x) => Seq(freechips.rocketchip.devices.tilelink.BootROMParams(
address = address,
size = size,
hang = hang,
driveResetVector = true,
contentFileName = freechips.rocketchip.util.ResourceFileName(s"/testchipip/bootrom/bootrom.rv${site(freechips.rocketchip.subsystem.MaxXLen)}.img")
))
})
class SmallBoomV3CascadeConfig extends Config(
new WithExtMemBase(0x81000000L) ++ // Move DRAM to 0x81000000 (after user's bootrom at 0x80000000)
new testchipip.boot.WithBootAddrReg(testchipip.boot.BootAddrRegParams(defaultBootAddress = 0x81000000L)) ++ // Boot code in DRAM
new boom.v3.common.WithNSmallBooms(1) ++
new WithBootROMOverride(address=0x80000000L,size=( 64 * 1024), hang = 0x80000000L) ++ // small boom config
//new testchipip.soc.WithMbusScratchpad(base = 0x02100000, size = 64 * 1024) ++
new chipyard.config.AbstractConfig)