This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

AM6548: Usage of BCM(Broadcast Mode) in MSMC_COHCTRL.

Part Number: AM6548

Tool/software:

Hi, Support team.

We have not yet succeeded in maintaining cache coherence between clusters. We are looking into the Linux implementation, but due to its vast scope, we have not yet identified where this is handled.

Meanwhile, upon revisiting the MSMC chapter in the TRM, we considered whether the BCM in MSMC_COHCTRL might be related to this. So, I would like to ask: in order to maintain cache coherence between clusters, do we need to enable this BCM?

If yes, the TRM states that while it is possible to enable it at any time, once it is enabled with the cache in an active state, it cannot be reverted. Could you confirm if this is correct?

  • BCM is a mode where the snoop filter capability in MSMC is bypassed. So all traffic is always broadcast to both clusters. I would assume you are not worried about performance optimization if removing unnecessary snoops, so fine to set. See in the TRM:

    As a safeguard MSMC provides a "Broadcast Mode" configuration that forces MSMC to treat all snoop filter entries as BROADCAST_UNIQUE. This results in snoops generated to all applicable coherent masters for snoop filter hits. This mode is sticky and cannot be disabled once enabled because the snoop filter can no longer be considered strictly inclusive once enabled. MSMC requires a reset to disable the broadcast mode once it is triggered. To enable the broadcast mode feature the MSMC_COHCTRL[0] BCM bit should be set to 0x1.

    If the TRM says do not go back to zero after setting this, I'd say do not go back to zero.

      Pekka