Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature: RISC-V System Bus support #1683

Merged
merged 17 commits into from
Nov 14, 2023
Merged

Feature: RISC-V System Bus support #1683

merged 17 commits into from
Nov 14, 2023

Conversation

dragonmux
Copy link
Member

Detailed description

In this PR we implement support for the RISC-V debug 'System Bus' (sysbus) component, as not all targets have to nor do implement the memory I/O abstract command. This complicates things but is required to support, eg, the ESP32-C3.

To accomplish this, we have to deal with sysbus having made all I/O widths optional to support while also needing to be able to do any arbitrarily sized and aligned read/write. The one benefit is that, depending on implementation, sysbus may be used without halting the Hart, unlike the abstract command interface which requires it halted (read: due to it injecting an instruction stream into the core to run the read/write, though this is strictly an implementation detail).

Unfortunately, this puts the burden of performing the I/O correctly on us, but we've attempted to minimise the logic and complications caused by this and document everything thoroughly. This logic has been tested on an ESP32-C3 and works.

Your checklist for this pull request

  • I've read the Code of Conduct
  • I've read the guidelines for contributing to this repository
  • It builds for hardware native (make PROBE_HOST=native)
  • It builds as BMDA (make PROBE_HOST=hosted)
  • I've tested it to the best of my ability
  • My commit messages provide a useful short description of what the commits do

Closing issues

…pecify use of system bus instead of abstract command for memory access
@dragonmux dragonmux added Enhancement General project improvement HwIssue Mitigation Solving or mitigating a Hardware issue in Software labels Nov 14, 2023
@dragonmux dragonmux added this to the v2.0 release milestone Nov 14, 2023
@esden esden self-requested a review November 14, 2023 22:56
Copy link
Member

@esden esden left a comment

Choose a reason for hiding this comment

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

LGTM

@esden esden merged commit 882af6b into main Nov 14, 2023
6 checks passed
@dragonmux dragonmux deleted the feature/riscv-sysbus-support branch November 14, 2023 23:16
@dragonmux dragonmux mentioned this pull request Nov 15, 2023
6 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Enhancement General project improvement HwIssue Mitigation Solving or mitigating a Hardware issue in Software
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants