Skip to content

[cheriot,rtl] Add TRVK filter to Ibex sources - #2455

Open
thommythomaso wants to merge 2 commits into
lowRISC:masterfrom
thommythomaso:tbenz/cheriot-ibex
Open

[cheriot,rtl] Add TRVK filter to Ibex sources#2455
thommythomaso wants to merge 2 commits into
lowRISC:masterfrom
thommythomaso:tbenz/cheriot-ibex

Conversation

@thommythomaso

@thommythomaso thommythomaso commented Jun 30, 2026

Copy link
Copy Markdown
Contributor

This PR introduces the temporal revocation (TRVK) filter to the Ibex sources without integrating it yet. The integration of the TRVK into Ibex is done in #2456.

The TRVK filter is constructed and integrated into Ibex according to the OpenTitan CHERIoT MEmory Subsystem RFC.

Ibex's documentation has yet to be updated by a follow-up PR. An issue #2464 regarding this has been opened.

The verification of TRVK will be done together with the CHERIoT-capable Ibex core. We keep track of this in issue #2466.

@thommythomaso thommythomaso self-assigned this Jun 30, 2026
thommythomaso added a commit to thommythomaso/opentitan-tbenz-pub that referenced this pull request Jun 30, 2026
This commit updates the vendored ibex to `thommythomaso/ibex-tbenz-pub`.
This has to be updated to point to `lowrisc/ibex` as soon as lowRISC/ibex#2455
and lowRISC/ibex#2456 are merged.

Signed-off-by: Thomas Benz <tbenz@lowrisc.org>
thommythomaso added a commit to thommythomaso/opentitan-tbenz-pub that referenced this pull request Jun 30, 2026
This commit updates the vendored ibex to `thommythomaso/ibex-tbenz-pub`.
This has to be updated to point to `lowrisc/ibex` as soon as lowRISC/ibex#2455
and lowRISC/ibex#2456 are merged.

Signed-off-by: Thomas Benz <tbenz@lowrisc.org>
Comment thread ibex_top.core
@thommythomaso
thommythomaso marked this pull request as ready for review July 27, 2026 09:23
@github-actions

github-actions Bot commented Jul 29, 2026

Copy link
Copy Markdown

All contributors have signed the CLA ✍️ ✅
Posted by the CLA Assistant Lite bot.

@thommythomaso

Copy link
Copy Markdown
Contributor Author

I have read the CLA Document. By submitting this pull request comment, I am hereby confirming my acceptance of the terms of the CLA Document and my agreement to be legally bound by its terms.

@marnovandermaas marnovandermaas left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've left a few comments on this, mainly to make the code more clear. Do we have any tests for this load filter? We should include at least a smoke test before merging this.

Comment thread rtl/ibex_cheriot_pkg.sv Outdated
Comment thread rtl/ibex_cheriot_pkg.sv
Comment thread rtl/ibex_cheriot_pkg.sv
Comment thread rtl/ibex_trvk.sv Outdated
Comment thread rtl/ibex_trvk.sv Outdated
Comment thread rtl/ibex_trvk.sv Outdated
Comment thread rtl/ibex_trvk.sv
Comment thread rtl/ibex_trvk.sv Outdated
Comment thread rtl/ibex_trvk.sv
Comment thread rtl/ibex_trvk.sv Outdated
@thommythomaso

Copy link
Copy Markdown
Contributor Author

I've left a few comments on this, mainly to make the code more clear. Do we have any tests for this load filter? We should include at least a smoke test before merging this.

I have a smoke test in OpenTitan of the entire CHERIoT subsystem. I would suggest to not add a dedicated test for just the filter here, especially as we are planning to merge the core soon which then will use and verify the filter.

@SamuelRiedel SamuelRiedel left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for this Thomas! Just a few very minor nits.

Comment thread rtl/ibex_trvk.sv Outdated
Comment thread rtl/ibex_trvk.sv Outdated
Comment thread rtl/ibex_cheriot_pkg.sv

@andreaskurth andreaskurth left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @thommythomaso, nice to see the TRVK land!I checked the CHERIoT-specific parts against the v1.0 spec and the Sail model and they match.

My remaining comments are almost entirely around integration, verification and documentation rather than the logic itself. At the current stage, many items can be deferred for follow-up in tracking issues, but those issues need to be created now and referenced here.

Three items that don't attach to a line:

Verification. Nothing in CI currently compiles this module: it isn't instantiated anywhere, so Verilator only parses it and never elaborates it, and there is no testbench. I understand the smoke test lives in OpenTitan and that the core PR will exercise the filter, but the memory subsystem RFC commits to a block-level test for the TRVK specifically. Please create a tracking issue and reference it here.

Documentation. There is nothing under doc/03_reference/. It would help integrators to have the port protocol (OBI plus the tag sideband), the revocation bitmap addressing convention, the placement requirements (lockstep domain, arbitration on the bitmap port, heap_base_addr_i being static and 8-byte aligned), and the expected handling of revbm_data_intg_error_o / revbm_device_error_o written down somewhere. Please create a tracking issue and reference it here.

PR description. Could you please add one? Both commit bodies are empty as well. A pointer to the RFCs and a note that the module is deliberately not instantiated yet would make this much easier to understand later.

Comment thread ibex_top.core
Comment thread rtl/ibex_trvk.sv Outdated
Comment thread rtl/ibex_trvk.sv
Comment thread rtl/ibex_trvk.sv Outdated
Comment thread rtl/ibex_trvk.sv Outdated
Comment thread rtl/ibex_trvk.sv
Comment thread rtl/ibex_trvk.sv Outdated
Comment thread rtl/ibex_trvk.sv
Comment thread rtl/ibex_cheriot_pkg.sv
Comment thread vendor/pulp_common_cells.vendor.hjson Outdated
The `stream_fork` and `stream_join` modules are used in some CHERIoT memory IPs.

Signed-off-by: Thomas Benz <tbenz@lowrisc.org>
@thommythomaso
thommythomaso force-pushed the tbenz/cheriot-ibex branch 2 times, most recently from a819b93 to 1640ed8 Compare August 5, 2026 15:21
Signed-off-by: Thomas Benz <tbenz@lowrisc.org>
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.

4 participants