Skip to content

Conversation

@LucaRufer
Copy link

@LucaRufer LucaRufer commented Dec 4, 2024

For a Project we are working on, we need a lightweight module that can be used to connect a OBI Bus with atomics support to an OBI bus without atomics support (A memory region without the atomics property). Using an atomics resolver is not feasible for this memory region, as it has too much overhead.

This pull request proposes a new module that can be used to block atomics requests on the master interface and respond with an error, similar to the Error Subordinate module. Non-atomics requests are fed through normally to the subordinate port. The module contains an outstanding responses counter to ensure the In-order property of OBI. The response corresponding to a blocked request will contain the ID of the blocked request.

Comments on this proposal are very welcome!

@micprog
Copy link
Member

micprog commented Apr 29, 2025

Thank you for your PR! I like adding a module that supports this. One slight adjustment: I think it would make sense to add a module similar to the way the PULP AXI repo is structured, so I would create an obi_atop_filter that responds to atops with an error, and have this wrapper you propose instantiate either of the two atop modules instead of having the "blocking" code in this module. Let me know if this makes sense.

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