Chaining more than 2 triggers

99 views
Skip to first unread message

Joe Rahmeh

unread,
Jul 3, 2018, 5:07:04 PM7/3/18
to RISC-V Debug Group
Is it possible to chain more than 2 triggers?  If it is not possible, then what should happen if the user attempts to set the chain bit of two or more consecutive triggers?

Tim Newsome

unread,
Jul 3, 2018, 5:23:44 PM7/3/18
to Joe Rahmeh, RISC-V Debug Group
An implementation may support chaining more than 2 triggers, but it doesn't have to. (This is true for almost any trigger feature.) It's expected that if the debugger writes a trigger that's not supported, it reads back something that is supported (WARL). I'll clarify that in the spec. A simple way to limit chain length is an implementation is wire the chain bit to 0 for every odd (or every 4th, etc) trigger to 0.

Tim

On Tue, Jul 3, 2018 at 2:07 PM, Joe Rahmeh <joe.r...@gmail.com> wrote:
Is it possible to chain more than 2 triggers?  If it is not possible, then what should happen if the user attempts to set the chain bit of two or more consecutive triggers?

--
You received this message because you are subscribed to the Google Groups "RISC-V Debug Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email to debug+unsubscribe@groups.riscv.org.
To post to this group, send email to de...@groups.riscv.org.
Visit this group at https://groups.google.com/a/groups.riscv.org/group/debug/.
To view this discussion on the web visit https://groups.google.com/a/groups.riscv.org/d/msgid/debug/54b172ef-2b6d-4956-a540-831f34f377ee%40groups.riscv.org.

bruce.ableidinger

unread,
Jul 3, 2018, 5:36:47 PM7/3/18
to Tim Newsome, RISC-V Debug Group, Joe Rahmeh

What defines chaining as ANDing (e.g. trigA & trigB such as data triggering) vs. sequential (e.g. trigA followed by trigB)?

 

--- Bruce

 

 

From: Tim Newsome <t...@sifive.com>
Sent: Tuesday, July 3, 2018 2:24 PM
To: Joe Rahmeh <joe.r...@gmail.com>
Cc: RISC-V Debug Group <de...@groups.riscv.org>
Subject: Re: [debug] Chaining more than 2 triggers

 

An implementation may support chaining more than 2 triggers, but it doesn't have to. (This is true for almost any trigger feature.) It's expected that if the debugger writes a trigger that's not supported, it reads back something that is supported (WARL). I'll clarify that in the spec. A simple way to limit chain length is an implementation is wire the chain bit to 0 for every odd (or every 4th, etc) trigger to 0.

 

Tim

On Tue, Jul 3, 2018 at 2:07 PM, Joe Rahmeh <joe.r...@gmail.com> wrote:

Is it possible to chain more than 2 triggers?  If it is not possible, then what should happen if the user attempts to set the chain bit of two or more consecutive triggers?

--

You received this message because you are subscribed to the Google Groups "RISC-V Debug Group" group.

To unsubscribe from this group and stop receiving emails from it, send an email to debug+un...@groups.riscv.org.

 

--

You received this message because you are subscribed to the Google Groups "RISC-V Debug Group" group.

To unsubscribe from this group and stop receiving emails from it, send an email to debug+un...@groups.riscv.org.


To post to this group, send email to de...@groups.riscv.org.
Visit this group at https://groups.google.com/a/groups.riscv.org/group/debug/.

Tim Newsome

unread,
Jul 3, 2018, 5:48:18 PM7/3/18
to bruce.ableidinger, RISC-V Debug Group, Joe Rahmeh

I think it’s the “while” in mcontrol.chain:

1: While this trigger does not match, it prevents
the trigger with the next index from matching.

If that’s not clear, I’m open to suggestions.

Tim


On Tue, Jul 3, 2018 at 2:36 PM, bruce.ableidinger <bruce.ab...@gmail.com> wrote:

What defines chaining as ANDing (e.g. trigA & trigB such as data triggering) vs. sequential (e.g. trigA followed by trigB)?

 

--- Bruce

 

 

From: Tim Newsome <t...@sifive.com>
Sent: Tuesday, July 3, 2018 2:24 PM
To: Joe Rahmeh <joe.r...@gmail.com>
Cc: RISC-V Debug Group <de...@groups.riscv.org>
Subject: Re: [debug] Chaining more than 2 triggers

 

An implementation may support chaining more than 2 triggers, but it doesn't have to. (This is true for almost any trigger feature.) It's expected that if the debugger writes a trigger that's not supported, it reads back something that is supported (WARL). I'll clarify that in the spec. A simple way to limit chain length is an implementation is wire the chain bit to 0 for every odd (or every 4th, etc) trigger to 0.

 

Tim

On Tue, Jul 3, 2018 at 2:07 PM, Joe Rahmeh <joe.r...@gmail.com> wrote:

Is it possible to chain more than 2 triggers?  If it is not possible, then what should happen if the user attempts to set the chain bit of two or more consecutive triggers?

--

You received this message because you are subscribed to the Google Groups "RISC-V Debug Group" group.

To unsubscribe from this group and stop receiving emails from it, send an email to debug+unsubscribe@groups.riscv.org.

--
You received this message because you are subscribed to the Google Groups "RISC-V Debug Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email to debug+unsubscribe@groups.riscv.org.

To post to this group, send email to de...@groups.riscv.org.
Visit this group at https://groups.google.com/a/groups.riscv.org/group/debug/.

Joe Rahmeh

unread,
Jul 3, 2018, 5:57:50 PM7/3/18
to RISC-V Debug Group, bruce.ab...@gmail.com, joe.r...@gmail.com
It would be clearer if it is explicitly stated that a chain will have an action if and only if all the triggers in the chain do match.


On Tuesday, July 3, 2018 at 4:48:18 PM UTC-5, Tim Newsome wrote:

I think it’s the “while” in mcontrol.chain:

1: While this trigger does not match, it prevents
the trigger with the next index from matching.

If that’s not clear, I’m open to suggestions.

Tim

On Tue, Jul 3, 2018 at 2:36 PM, bruce.ableidinger <bruce.ab...@gmail.com> wrote:

What defines chaining as ANDing (e.g. trigA & trigB such as data triggering) vs. sequential (e.g. trigA followed by trigB)?

 

--- Bruce

 

 

From: Tim Newsome <t...@sifive.com>
Sent: Tuesday, July 3, 2018 2:24 PM
To: Joe Rahmeh <joe.r...@gmail.com>
Cc: RISC-V Debug Group <de...@groups.riscv.org>
Subject: Re: [debug] Chaining more than 2 triggers

 

An implementation may support chaining more than 2 triggers, but it doesn't have to. (This is true for almost any trigger feature.) It's expected that if the debugger writes a trigger that's not supported, it reads back something that is supported (WARL). I'll clarify that in the spec. A simple way to limit chain length is an implementation is wire the chain bit to 0 for every odd (or every 4th, etc) trigger to 0.

 

Tim

On Tue, Jul 3, 2018 at 2:07 PM, Joe Rahmeh <joe.r...@gmail.com> wrote:

Is it possible to chain more than 2 triggers?  If it is not possible, then what should happen if the user attempts to set the chain bit of two or more consecutive triggers?

--

You received this message because you are subscribed to the Google Groups "RISC-V Debug Group" group.

To unsubscribe from this group and stop receiving emails from it, send an email to debug+un...@groups.riscv.org.

--
You received this message because you are subscribed to the Google Groups "RISC-V Debug Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email to debug+un...@groups.riscv.org.

To post to this group, send email to de...@groups.riscv.org.
Visit this group at https://groups.google.com/a/groups.riscv.org/group/debug/.

Tim Newsome

unread,
Jul 6, 2018, 2:31:34 PM7/6/18
to Joe Rahmeh, RISC-V Debug Group, Bruce Ableidinger
I've added that to PR https://github.com/riscv/riscv-debug-spec/pull/306.
It ended up more wordy than I'd like because I had to define what a trigger chain is.

Tim

To unsubscribe from this group and stop receiving emails from it, send an email to debug+unsubscribe@groups.riscv.org.

To post to this group, send email to de...@groups.riscv.org.
Visit this group at https://groups.google.com/a/groups.riscv.org/group/debug/.

apr...@gmail.com

unread,
Aug 23, 2018, 6:00:23 PM8/23/18
to RISC-V Debug Group, joe.r...@gmail.com, bruce.ab...@gmail.com
"The action on that final trigger will be taken if and only if all the triggers in the chain match at the same time. "

Tim, could you confirm/clarify that this actually means that the individual action of all the triggers in the chain are ignored unless all the triggers in the chain match simultaneously? A true AND function?

Or does it truly mean that the action of the final trigger is dependent on all the prior triggers, but the prior triggers may have independent action?

Tim Newsome

unread,
Aug 24, 2018, 6:28:18 PM8/24/18
to apr...@gmail.com, RISC-V Debug Group, Joe Rahmeh, Bruce Ableidinger
I always imagined that only the last action is taken. https://github.com/riscv/riscv-debug-spec/pull/341 clarifies that (unless people think it should work differently).

Tim

To unsubscribe from this group and stop receiving emails from it, send an email to debug+unsubscribe@groups.riscv.org.

To post to this group, send email to de...@groups.riscv.org.
Visit this group at https://groups.google.com/a/groups.riscv.org/group/debug/.

apr...@gmail.com

unread,
Aug 24, 2018, 9:20:23 PM8/24/18
to RISC-V Debug Group, apr...@gmail.com, joe.r...@gmail.com, bruce.ab...@gmail.com
Thank you.
This makes sense.
Reply all
Reply to author
Forward
0 new messages