How can I change BOOM's reset vector to at address 0x80000000?

16 views
Skip to first unread message

Vincent Ulitzsch

unread,
Jan 14, 2026, 5:57:54 AM (yesterday) Jan 14
to Chipyard
I am looking for a method to configure BOOM so that it looks for the Bootrom at address 
0x80000000L instead of address 0x10000.

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.

Which configuration should I choose to change BOOM's reset vector?

Thanks!

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)

Junaid amjad

unread,
Jan 14, 2026, 1:03:04 PM (24 hours ago) Jan 14
to chip...@googlegroups.com
The final address for bootrom is decided by class WithBootROM (generators/chipyard/src/main/scala/fragments/PeripheralFragments.scala), so you need to update address in this class, or you can have a new class for your custom address and then append that class to AbstractConfig rather than this class! Let me know how it goes, thanks!

Regards,
Junaid


--
You received this message because you are subscribed to the Google Groups "Chipyard" group.
To unsubscribe from this group and stop receiving emails from it, send an email to chipyard+u...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/chipyard/de1d2331-9c6a-4c92-aaf2-62dca3364bd4n%40googlegroups.com.
Reply all
Reply to author
Forward
0 new messages