Skip to content

[ESI] System reset functionality#10592

Draft
teqdruid wants to merge 2 commits into
mainfrom
teqdruid/esi-reset
Draft

[ESI] System reset functionality#10592
teqdruid wants to merge 2 commits into
mainfrom
teqdruid/esi-reset

Conversation

@teqdruid
Copy link
Copy Markdown
Contributor

@teqdruid teqdruid commented Jun 4, 2026

Write to 0x00000E510000B007 to MMIO 0x38 to get the system to request that the BSP reset it.

Assisted-by: vscode:Claude Opus 4.8

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Adds an end-to-end “design reset request” path for the ESI cosim BSP and runtime, triggered by writing a reset magic value to the header MMIO slot at offset 0x38, and validates it via a new esitester reset subcommand + integration test.

Changes:

  • Introduce reset request detection in the PyCDE MMIO header and propagate a one-cycle reset_request pulse up to the cosim top, which asserts a delayed full-design reset.
  • Add C++ runtime/API support for requesting reset via MMIO (AcceleratorConnection::reset()), plus a new esitester reset test mode.
  • Add an integration test that runs the new esitester reset path against cosim.

Reviewed changes

Copilot reviewed 8 out of 8 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
lib/Dialect/ESI/runtime/tests/integration/test_esitester.py Adds a new integration test invoking esitester ... reset and checking expected output.
lib/Dialect/ESI/runtime/python/esiaccel/bsp/cosim.py Wires reset_request up from MMIO and combines a delayed design reset into the user-module reset.
lib/Dialect/ESI/runtime/python/esiaccel/bsp/common.py Defines reset constants, adds header MMIO reset-detect logic, and introduces DesignResetController.
lib/Dialect/ESI/runtime/cpp/tools/esitester.cpp Adds reset subcommand and an implementation that verifies telemetry clears after reset.
lib/Dialect/ESI/runtime/cpp/lib/Accelerator.cpp Implements AcceleratorConnection::reset() by writing the reset magic to the reset-request MMIO offset.
lib/Dialect/ESI/runtime/cpp/include/esi/backends/Xrt.h Marks XRT backend reset as unsupported (always returns false).
lib/Dialect/ESI/runtime/cpp/include/esi/backends/Trace.h Marks Trace backend reset as unsupported (always returns false).
lib/Dialect/ESI/runtime/cpp/include/esi/Accelerator.h Adds reset magic/offset constants and a new virtual reset() API to AcceleratorConnection.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread lib/Dialect/ESI/runtime/cpp/lib/Accelerator.cpp
Comment thread lib/Dialect/ESI/runtime/python/esiaccel/bsp/common.py
Comment thread lib/Dialect/ESI/runtime/cpp/include/esi/backends/Xrt.h Outdated
Comment thread lib/Dialect/ESI/runtime/cpp/include/esi/backends/Trace.h Outdated
Comment thread lib/Dialect/ESI/runtime/cpp/include/esi/Accelerator.h Outdated
@circt-bot
Copy link
Copy Markdown

circt-bot Bot commented Jun 4, 2026

Results of circt-tests run for 610fdb9 compared to results for b645b96: no change to test results.

Write to 0x00000E510000B007 to MMIO 0x38 to get the system to request
that the BSP reset it.

Assisted-by: vscode:Claude Opus 4.8
@teqdruid teqdruid force-pushed the teqdruid/esi-reset branch from 610fdb9 to e38f630 Compare June 5, 2026 20:13
@circt-bot
Copy link
Copy Markdown

circt-bot Bot commented Jun 5, 2026

Results of circt-tests run for e38f630 compared to results for b645b96: no change to test results.

@circt-bot
Copy link
Copy Markdown

circt-bot Bot commented Jun 5, 2026

Results of circt-tests run for b68154b compared to results for b645b96: no change to test results.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants