Skip to content

Commit 02f2dab

Browse files
committed
1.0.0_rc38 - Small clarifications (from emails)
1 parent 2485388 commit 02f2dab

File tree

1 file changed

+9
-5
lines changed

1 file changed

+9
-5
lines changed

docs/RISC-V-Trace-Control-Interface.adoc

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
[[header]]
22
:description: RISC-V Trace Control Interface
33
:company: RISC-V.org
4-
:revdate: June 06, 2024
5-
:revnumber: 1.0.0_rc37
4+
:revdate: June 20, 2024
5+
:revnumber: 1.0.0_rc38
66
:revremark: Stable state (waiting for Freeze)
77
:url-riscv: http://riscv.org
88
:doctype: book
@@ -52,8 +52,9 @@ Change is extremely unlikely.
5252

5353
PDF generated on: {localdatetime}
5454

55-
=== Version 1.0.0_rc37
56-
* 2024-06-05
55+
=== Version 1.0.0_rc38
56+
* 2024-06-20
57+
** Small clarifications (as discussed by email).
5758
** Waiting for official Freeze
5859

5960
[Preface]
@@ -842,6 +843,7 @@ All registers with offsets 0x400 .. 0x7FC are designated for additional trace en
842843
Trace encoder filters are an optional feature that can be used to control the generated trace in various ways.
843844

844845
The registers below divide the filter logic into filters and comparators to provide maximum flexibility at low cost. The number of filters and comparators depends on the system. Each filter unit can specify filtering against instruction and optionally against data trace inputs from the hart. When filter __i__ is implemented, the registers `trTeFilter__i__Control` and `trTeInstFilters` must be implemented to enable it. And to apply filter __i__ to the data trace, the `trTeDataFilters` register must also be present. And if a match bit in the `trTeFilter__i__Control` register can be set to 1 (= enabling a filter option), the corresponding register from the bit's description must have a correct value already set as otherwise the trigger may fire unintentionally. Each of the mentioned comparator units is actually a pair of comparators (primary and secondary, or P and S), so a limited range can be matched with a single comparator unit if needed.
846+
Each enabled filter define independent condition where trace is enabled - if several filters are enabled they act as `logical OR`. Several conditions for single filter act as `logical AND`.
845847

846848
NOTE: Filter and comparator registers refer to values of some signals (as *priv*, *itype*, *ecause*, *dtype*, *dsize*, ...) available on Trace Ingress Port. See E-Trace specification for details of encoding of these values.
847849

@@ -922,13 +924,15 @@ When set, match *dsize* values as specified by `trTeFilterMatchChoiceDsize` fiel
922924
|31:26 |--|Reserved|--|0
923925
|===
924926

927+
NOTE: Handling of `trTeFilterMatchEcause` and `trTeFilterMatchInterrupt` should include a count of nested traps. The size of the counter is implementation dependent. If the number of nested traps exceeds the number that can be counted, the counter will saturate, meaning that the filtering will turn off prematurely.
928+
925929
.*Register: trTeFilter__i__MatchInst : Filter _i_ Instruction Match Control Register (trBaseEncoder+0x404 + 0x20__i__)*
926930
[cols="6%,30%,~,7%,7%",options="header"]
927931
|===
928932
|*Bit* |*Field* |*Description* |*RW* |*Reset*
929933
|7:0 |trTeFilterMatchChoicePrivilege |
930934
When `trTeFilterMatchPrivilege` field for filter #__i__ is set, match all privilege
931-
levels for which the corresponding bit is set. For example, if bit N is 1, then match if the *priv* value is N
935+
levels for which the corresponding bit is set. For example, if bit N is 1, then match if the *priv* value at ingress port is N. Setting several bits allow matching several provileges.
932936
|WARL|<<Undef,Undef>>
933937
|8 |trTeFilterMatchValueInterrupt |
934938
When `trTeFilterMatchInterrupt` field for filter #__i__ is set, match *itype* of 2 or 1 depending on whether this bit is 1 or 0

0 commit comments

Comments
 (0)