Coder Social home page Coder Social logo

Comments (3)

pdonahue-ventana avatar pdonahue-ventana commented on August 12, 2024

Since RV doesn't define the cross trigger, can we just consider the external trigger as cross trigger?

This is all implementation-specific but here's the idea:

  • If you have multiple harts connected to a single DM then halt groups and resume groups are the way to cross trigger. If one hart halts then it tells the DM (so that the DM can update things like anyhalted/allhalted). Assuming that you've programmed your halt groups properly, the DM then tells the other harts in that halt group to halt. And similar on resume.
  • If you have multiple harts with one hart per DM then dmeexttrigger is the way to cross trigger. When one hart halts, it tells its DM as usual. That DM should be programmed to fire the output dmexttrigger. That output should be connected to the other dmexttrigger input on the other DM(s). The other DM(s) should be programmed to cause the hart to halt when the dmexttrigger input fires.
  • If you have multiple DMs and each has multiple harts then you combine the two approaches. The harts that are connected to the same DM as the halting hart will use halt groups to be cross triggered and the harts that are connected to other DMs will use dmexttrigger to be cross triggered.

You could also use tmexttrigger in certain cases like maybe if you have a SMT core, but in most other cases this would involve routing more wires around than the above scheme.

from riscv-debug-spec.

zhangdujiao avatar zhangdujiao commented on August 12, 2024

Thank you very much for your patience in answering my questions. I have a better understanding of the role of dmexttrigger in halt and resume groups, but I still have a few questions.
We want to figure out the types of cross triggers required for an RV core. Referring to the ARM implementation, I know that it generally includes debug/halt request, resume request, trigger from/to interrupt controller, trigger from/to ETM (encoder), etc., a total of 10 cross triggers.
As you mentioned, debug/halt request and resume request can be used as cross triggers for halting and resuming groups in a RV hart. Besides, are there other types of triggers that need to be implemented in a RV hart? For example, trace on, trace off, trace notify, etc., which are introduced in the trace specification.

from riscv-debug-spec.

pdonahue-ventana avatar pdonahue-ventana commented on August 12, 2024

We want to figure out the types of cross triggers required for an RV core.

There are no requirements in RISC-V to implement cross triggering at all. It is entirely implementation defined.

from riscv-debug-spec.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.