Skip to content

ControlBus diplomacy breaks when CBus atomics is disabled#3762

Merged
jerryz123 merged 1 commit intochipsalliance:masterfrom
richardyrh:master
Feb 25, 2026
Merged

ControlBus diplomacy breaks when CBus atomics is disabled#3762
jerryz123 merged 1 commit intochipsalliance:masterfrom
richardyrh:master

Conversation

@richardyrh
Copy link
Copy Markdown
Contributor

Related issue:

Type of change: bug report

Impact: API modification

Development Phase: implementation

Release Notes

To reproduce:

class WithNoAtomicsCBus extends Config ((site, here, up) => {
  case ControlBusKey => up(ControlBusKey).copy(
    atomics = None,
  )
})

class RocketWithNoAtomicsCBusConfig extends Config(
  new WithNoAtomicsCBus ++
  new RocketConfig)

This will cause this:

Caused by: java.lang.IllegalArgumentException: requirement failed: Diplomacy has detected a problem with your graph:
The following node appears left of a :*= 2 times and right of a :=* 0 times, at most once is allowed.
adapter cbus_fixer.$anon node:
parents: cbus_fixer/cbus/system/chiptop0
locator:  (generators/rocket-chip/src/main/scala/subsystem/PeripheryBus.scala:54:33)

2 inward nodes bound: [flex-buffer.node,flex-coupler_from_port_named_custom_boot_pin.tl]
1 outward nodes bound: [query-xbar.$anon]


        at scala.Predef$.require(Predef.scala:337)
        at org.chipsalliance.diplomacy.nodes.MixedAdapterNode.resolveStar(AdapterNode.scala:37)
        at org.chipsalliance.diplomacy.nodes.MixedNode.liftedTree1$1(MixedNode.scala:381)
        at org.chipsalliance.diplomacy.nodes.MixedNode.x$19$lzycompute(MixedNode.scala:342)
        at org.chipsalliance.diplomacy.nodes.MixedNode.x$19(MixedNode.scala:336)
        at org.chipsalliance.diplomacy.nodes.MixedNode.iStar$lzycompute(MixedNode.scala:340)
        at org.chipsalliance.diplomacy.nodes.MixedNode.iStar(MixedNode.scala:340)
        at org.chipsalliance.diplomacy.nodes.MixedNode.$anonfun$x$19$5(MixedNode.scala:363)
        at org.chipsalliance.diplomacy.nodes.MixedNode.edgeAritySelect(MixedNode.scala:319)
        at org.chipsalliance.diplomacy.nodes.MixedNode.$anonfun$x$19$3(MixedNode.scala:363)
        at org.chipsalliance.diplomacy.nodes.MixedNode.$anonfun$x$19$3$adapted(MixedNode.scala:360)
        at scala.collection.immutable.List.map(List.scala:247)
        at scala.collection.immutable.List.map(List.scala:79)
        at org.chipsalliance.diplomacy.nodes.MixedNode.liftedTree1$1(MixedNode.scala:360)
(and so on)

Fix is the commit

@jerryz123 jerryz123 merged commit 885dd59 into chipsalliance:master Feb 25, 2026
28 checks passed
savnastou pushed a commit to savnastou/rocket-chip that referenced this pull request Mar 20, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants