Skip to content

fix: prevent AMO hangs on non-DRAM regions - #3615

Open
Chandana5599 wants to merge 1 commit into
openhwfoundation:masterfrom
Chandana5599:fix-amo-non-dram-hang
Open

Chandana5599 wants to merge 1 commit into
openhwfoundation:masterfrom
Chandana5599:fix-amo-non-dram-hang

Conversation

@Chandana5599

@Chandana5599 Chandana5599 commented Oct 8, 2026 •

Copy link
Copy Markdown

Description

AMO operations to non-DRAM regions such as Debug, ROM, and CLINT can hang indefinitely because these AXI slaves do not support atomic operations.

This change adds axi_atop_filter_intf between the AXI crossbar and these non-DRAM slaves. Unsupported atomic transactions are therefore filtered and completed with an AXI SLVERR instead of reaching peripherals that do not support ATOPs.

Changes

  • Added an AXI ATOP filter for the Debug Module.
  • Added an AXI ATOP filter for ROM.
  • Added an AXI ATOP filter for CLINT.
  • Kept the existing DRAM atomic-operation path unchanged.

Testing

  • git diff --check passes.
  • Verilator simulation could not be run locally because Verilator/WSL is unavailable in the current Windows environment.

Fixes #3608

This branch has not been deployed

No deployments
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.

[BUG] An AMO to the boot ROM, the CLINT or the Debug Module never completes: the hart hangs instead of raising a store/AMO access fault

1 participant