aboutsummaryrefslogtreecommitdiff
path: root/collateral/example_collateral.xml
blob: 0992bbb3232f84806a87ee39c164b26420f6ff76 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
<?xml version="1.0" encoding="utf-8"?>
<syst:Collateral xmlns:syst="http://www.mipi.org/1.0/sys-t"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.mipi.org/1.0/sys-t
                        https://www.mipi.org/schema/sys-t/sys-t_1-0.xsd">

  <!--
  A SyS-T collateral file starts with one syst:Collateral element
  and contains at least one syst:Client child node.
 -->
  <syst:Client Name="example">

    <!--
    List of message GUIDs for this client:
    A GUID is a 128bit numeric UUID following RFC 4122.
    Clients that are identified by transport layer properties
    can use pseudo GUID values to identify their messages. A
    pseudo GUID is defined as a GUID with bit 71 set to zero.
    The following encoding might be used for clients identified
    by MIPI System Trace Protocol (STP) master/channel pairs:

     {00000000-<MasterID>-<ChannelID>-<Origin>00-000000000000}

    A Mask attribute can be added to define which bits of the GUID are
    used for comparison. Without a mask, all bits need to match.
    The example below makes the catalog valid for all channels from the
    STP master value 0x644, or messages with the "494E..." GUID in their
    payload.
    -->
    <syst:Guids>
      <syst:Guid ID=  "{00000000-0644-0000-0000-000000000000}"
                 Mask="{00000000-FFFF-0000-8000-000000000000}"><![CDATA[kernel]]></syst:Guid>
      <syst:Guid ID="{494E5443-6F64-43D1-93F0-F3D49D92670C}"><![CDATA[user]]></syst:Guid>
    </syst:Guids>

    <!--
    Define for which client build versions this collateral is valid.
    Builds are expressed as values up to 64 bits in size, and can include a
    mask that defines which bits need to match with a client build version
    message.
    -->
    <syst:Builds>
      <syst:Build ID="0x00010000" Mask="0xFFFF0000" ><![CDATA[SW Build 1.x]]></syst:Build>
      <syst:Build ID="0x00020000" Mask="0xFFFF0000" ><![CDATA[SW Build 2.x]]></syst:Build>
    </syst:Builds>

     <!--
     Settings to guide decoding tools what to do in cases
     where several options are possible. The example below tells
     a decoder to interprete SyS-T message timstamps only as an
     informal field, but not the message creation time.
     -->
    <syst:Options>
      <syst:Option Name="syst:timestamp">displayAsField</syst:Option>
    </syst:Options>

    <!--
    Provide ID to name mapping for Origin header field values.
    -->
    <syst:Modules>
      <syst:Module ID="0x1"><![CDATA[kernel]]></syst:Module>
      <syst:Module ID="0x2"><![CDATA[user]]></syst:Module>
  </syst:Modules>

    <!--
    Define the mapping of the numeric File-ID to source files.
    This table is optional and only needed if source references are used
    by the Catalog32 or Catalog64 elements.
    -->
    <syst:SourceFiles>
      <syst:File ID="0x00000001"><![CDATA[example/src/main.c]]></syst:File>
      <syst:File ID="0x00000002"><![CDATA[example/h/example.h]]></syst:File>
    </syst:SourceFiles>

    <!--
    Define the mapping of catalog message ID to human-readable strings.
    This table is optional and only needed if catalog messages are used.
    A message can have optional "File" and "Line" attributes to specify the
    source position of the instrumentation call. A decoder uses the
    information from these attributes if the message payload doesn't provide
    explicit location information.
    -->
    <syst:Catalog32>
      <syst:Format ID="0x00000001" File="0x00000001" Line="23"><![CDATA[This is example %d.%d]]></syst:Format>
      <syst:Format ID="0x00000002" File="0x00000002" Line="72"><![CDATA[task switch %x->%x]]></syst:Format>
    </syst:Catalog32>

    <syst:Catalog64>
      <syst:Format ID="0x0000000000000001"><![CDATA[error %d]]></syst:Format>
    </syst:Catalog64>

    <!--
    Define short message mapping from 28-Bit ID to user visible string.
    -->
    <syst:Short32>
      <syst:Format ID="0x0000000" Mask="0xFFFFFF0"><![CDATA[Fatal Error code]]></syst:Format>
      <syst:Format ID="0x0000013"><![CDATA[state ready]]></syst:Format>
      <syst:Format ID="0x000001A"><![CDATA[state halt]]></syst:Format>
    </syst:Short32>

    <!--
    Define short message mapping from 60-Bit ID to user visible string.
    -->
    <syst:Short64>
      <syst:Format ID="0x123456700000000" Mask="0xFFFFFFF00000000"><![CDATA[warning state]]></syst:Format>

    </syst:Short64>

    <!--
    Specify raw message protocol id assignment
    -->
    <syst:Write>
      <syst:Protocol ID="0x01"><![CDATA[console]]></syst:Protocol>
      <syst:Protocol ID="0x02"><![CDATA[console]]></syst:Protocol>
      <syst:Protocol ID="0x03"><![CDATA[ftrace]]></syst:Protocol>
      <syst:Protocol ID="0x20" Mask="0x30"><![CDATA[reserved]]></syst:Protocol>
    </syst:Write>

</syst:Client>

</syst:Collateral>