xref: /aosp_15_r20/external/OpenCSD/README.md (revision 02ca8ccacfba7e0df68f3332a95f3180334d6649)
1*02ca8ccaSAndroid Build Coastguard WorkerOpenCSD - An open source CoreSight(tm) Trace Decode library        {#mainpage}
2*02ca8ccaSAndroid Build Coastguard Worker===========================================================
3*02ca8ccaSAndroid Build Coastguard Worker
4*02ca8ccaSAndroid Build Coastguard WorkerThis library provides an API suitable for the decode of ARM(r) CoreSight(tm) trace streams.
5*02ca8ccaSAndroid Build Coastguard Worker
6*02ca8ccaSAndroid Build Coastguard WorkerThe library will decode formatted trace in three stages:
7*02ca8ccaSAndroid Build Coastguard Worker
8*02ca8ccaSAndroid Build Coastguard Worker1. *Frame Deformatting* : Removal CoreSight frame formatting from individual trace streams.
9*02ca8ccaSAndroid Build Coastguard Worker2. *Packet Processing*  : Separate individual trace streams into discrete packets.
10*02ca8ccaSAndroid Build Coastguard Worker3. *Packet Decode*      : Convert the packets into fully decoded trace describing the program flow on a core.
11*02ca8ccaSAndroid Build Coastguard Worker
12*02ca8ccaSAndroid Build Coastguard WorkerThe library is implemented in C++ with an optional "C" API.
13*02ca8ccaSAndroid Build Coastguard Worker
14*02ca8ccaSAndroid Build Coastguard WorkerLibrary Versioning
15*02ca8ccaSAndroid Build Coastguard Worker------------------
16*02ca8ccaSAndroid Build Coastguard Worker
17*02ca8ccaSAndroid Build Coastguard WorkerFrom version 0.4, library versioning will use a semantic versioning format
18*02ca8ccaSAndroid Build Coastguard Worker(per http://semver.org) of the form _Major.minor.patch_ (M.m.p).
19*02ca8ccaSAndroid Build Coastguard Worker
20*02ca8ccaSAndroid Build Coastguard WorkerInternal library version calls, documentation and git repository will use this format moving forwards.
21*02ca8ccaSAndroid Build Coastguard WorkerWhere a patch version is not quoted, or quoted as .x then comments will apply to the entire release.
22*02ca8ccaSAndroid Build Coastguard Worker
23*02ca8ccaSAndroid Build Coastguard WorkerReleases will be at M.m.0, with patch version incremented for bugfixes or documentation updates.
24*02ca8ccaSAndroid Build Coastguard Worker
25*02ca8ccaSAndroid Build Coastguard WorkerReleases will appear on the master branch in the git repository with an appropriate version tag.
26*02ca8ccaSAndroid Build Coastguard Worker
27*02ca8ccaSAndroid Build Coastguard WorkerCoreSight Trace Component Support.
28*02ca8ccaSAndroid Build Coastguard Worker----------------------------------
29*02ca8ccaSAndroid Build Coastguard Worker
30*02ca8ccaSAndroid Build Coastguard Worker_Current Version 1.5.4_
31*02ca8ccaSAndroid Build Coastguard Worker
32*02ca8ccaSAndroid Build Coastguard Worker### Current support:
33*02ca8ccaSAndroid Build Coastguard Worker
34*02ca8ccaSAndroid Build Coastguard Worker- ETE   (v1.3) instruction trace - packet processing and packet decode.
35*02ca8ccaSAndroid Build Coastguard Worker- ETMv4 (v4.6 [A/R profile] v4.4 [M profile]) instruction trace - packet processing and packet decode.
36*02ca8ccaSAndroid Build Coastguard Worker- PTM   (v1.1) instruction trace - packet processing and packet decode.
37*02ca8ccaSAndroid Build Coastguard Worker- ETMv3 (v3.5) instruction trace - packet processing and packet decode.
38*02ca8ccaSAndroid Build Coastguard Worker- ETMv3 (v3.5) data trace - packet processing.
39*02ca8ccaSAndroid Build Coastguard Worker- STM   (v1.1) software trace - packet processing and packet decode.
40*02ca8ccaSAndroid Build Coastguard Worker
41*02ca8ccaSAndroid Build Coastguard Worker- External Decoders - support for addition of external / custom decoders into the library.
42*02ca8ccaSAndroid Build Coastguard Worker
43*02ca8ccaSAndroid Build Coastguard Worker### Support to be added:
44*02ca8ccaSAndroid Build Coastguard Worker
45*02ca8ccaSAndroid Build Coastguard Worker- ITM software trace - packet processing and decode.
46*02ca8ccaSAndroid Build Coastguard Worker- ETMv3 data trace - packet decode.
47*02ca8ccaSAndroid Build Coastguard Worker- ETMv4 data trace - packet processing and decode.
48*02ca8ccaSAndroid Build Coastguard Worker
49*02ca8ccaSAndroid Build Coastguard WorkerNote: for ITM and STM, packet decode is combining Master+Channel+Marker+Payload packets into a single generic
50*02ca8ccaSAndroid Build Coastguard Workeroutput packet.
51*02ca8ccaSAndroid Build Coastguard Worker
52*02ca8ccaSAndroid Build Coastguard Worker
53*02ca8ccaSAndroid Build Coastguard WorkerNote on the Git Repository.
54*02ca8ccaSAndroid Build Coastguard Worker---------------------------
55*02ca8ccaSAndroid Build Coastguard Worker
56*02ca8ccaSAndroid Build Coastguard WorkerThis git repository for OpenCSD contains only source for the OpenCSD decoder library.
57*02ca8ccaSAndroid Build Coastguard WorkerFrom version 0.4, releases appear as versioned tags on the master branch.
58*02ca8ccaSAndroid Build Coastguard Worker
59*02ca8ccaSAndroid Build Coastguard WorkerCoreSight kernel drivers and perf suport for CoreSight trace is maintained in the latest
60*02ca8ccaSAndroid Build Coastguard Workerupstream kernel versions.
61*02ca8ccaSAndroid Build Coastguard Worker
62*02ca8ccaSAndroid Build Coastguard WorkerOne exception is a minor patch required for autoFDO support.
63*02ca8ccaSAndroid Build Coastguard WorkerSee [autofdo.md](@ref AutoFDO).
64*02ca8ccaSAndroid Build Coastguard Worker
65*02ca8ccaSAndroid Build Coastguard WorkerDocumentation
66*02ca8ccaSAndroid Build Coastguard Worker-------------
67*02ca8ccaSAndroid Build Coastguard Worker
68*02ca8ccaSAndroid Build Coastguard WorkerAPI Documentation is provided inline in the source header files, which use the __doxygen__ standard mark-up.
69*02ca8ccaSAndroid Build Coastguard WorkerRun `doxygen` on the `./doxygen_config.dox` file located in the `./docs` directory..
70*02ca8ccaSAndroid Build Coastguard Worker
71*02ca8ccaSAndroid Build Coastguard Worker    doxygen ./doxygen_config.dox
72*02ca8ccaSAndroid Build Coastguard Worker
73*02ca8ccaSAndroid Build Coastguard WorkerThis will produce the documentation in the `./docs/html` directory. The doxygen configuration also includes
74*02ca8ccaSAndroid Build Coastguard Workerthe `*.md` files as part of the documentation.
75*02ca8ccaSAndroid Build Coastguard Worker
76*02ca8ccaSAndroid Build Coastguard WorkerApplication Programming using the Library
77*02ca8ccaSAndroid Build Coastguard Worker-----------------------------------------
78*02ca8ccaSAndroid Build Coastguard Worker
79*02ca8ccaSAndroid Build Coastguard WorkerSee the [programmers guide](@ref prog_guide) for details on usage of the library in custom applications.
80*02ca8ccaSAndroid Build Coastguard Worker(`./docs/prog_guide/prog_guide_main.md`).
81*02ca8ccaSAndroid Build Coastguard Worker
82*02ca8ccaSAndroid Build Coastguard Worker
83*02ca8ccaSAndroid Build Coastguard WorkerBuilding and Installing the Library
84*02ca8ccaSAndroid Build Coastguard Worker-----------------------------------
85*02ca8ccaSAndroid Build Coastguard Worker
86*02ca8ccaSAndroid Build Coastguard WorkerSee [build_libs.md](@ref build_lib) in the `./docs` directory for build details.
87*02ca8ccaSAndroid Build Coastguard Worker
88*02ca8ccaSAndroid Build Coastguard WorkerThe linux build makefile now contains options to install the library for a linux environment.
89*02ca8ccaSAndroid Build Coastguard Worker
90*02ca8ccaSAndroid Build Coastguard Worker
91*02ca8ccaSAndroid Build Coastguard WorkerHow the Library is used in Linux `perf`
92*02ca8ccaSAndroid Build Coastguard Worker---------------------------------------
93*02ca8ccaSAndroid Build Coastguard WorkerThe library and additional infrastructure for programming CoreSight components has been integrated
94*02ca8ccaSAndroid Build Coastguard Workerwith the standard linux perfomance analysis tool `perf`.
95*02ca8ccaSAndroid Build Coastguard Worker
96*02ca8ccaSAndroid Build Coastguard Worker
97*02ca8ccaSAndroid Build Coastguard WorkerSee [HOWTO.md](@ref howto_perf) for details.
98*02ca8ccaSAndroid Build Coastguard Worker
99*02ca8ccaSAndroid Build Coastguard WorkerHow to use the Library, perf and Trace for AutoFDO
100*02ca8ccaSAndroid Build Coastguard Worker--------------------------------------------------
101*02ca8ccaSAndroid Build Coastguard WorkerCapturing trace using perf and decoding using the library can
102*02ca8ccaSAndroid Build Coastguard Workergenerate profiles for AutoFDO.
103*02ca8ccaSAndroid Build Coastguard Worker
104*02ca8ccaSAndroid Build Coastguard WorkerSee [autofdo.md](@ref AutoFDO) for details and scripts.
105*02ca8ccaSAndroid Build Coastguard Worker
106*02ca8ccaSAndroid Build Coastguard Worker(`./tests/auto-fdo/autofdo.md`).
107*02ca8ccaSAndroid Build Coastguard Worker
108*02ca8ccaSAndroid Build Coastguard Worker
109*02ca8ccaSAndroid Build Coastguard WorkerVersion and Modification Information
110*02ca8ccaSAndroid Build Coastguard Worker====================================
111*02ca8ccaSAndroid Build Coastguard Worker
112*02ca8ccaSAndroid Build Coastguard Worker- _Version 0.001_:  Library development - tested with `perf` tools integration - BKK16, 8th March 2016
113*02ca8ccaSAndroid Build Coastguard Worker- _Version 0.002_:  Library development - added in PTM decoder support. Restructure header dir, replaced ARM rctdl prefix with opencsd/ocsd.
114*02ca8ccaSAndroid Build Coastguard Worker- _Version 0.003_:  Library development - added in ETMv3 instruction decoder support.
115*02ca8ccaSAndroid Build Coastguard Worker- _Version 0.4_  :  Library development - updated decode tree and C-API for generic decoder handling. Switch to semantic versioning.
116*02ca8ccaSAndroid Build Coastguard Worker- _Version 0.4.1_:  Minor Update & Bugfixes - fix to PTM decoder, ID checking on test program, adds NULL_TS support in STM packet processor.
117*02ca8ccaSAndroid Build Coastguard Worker- _Version 0.4.2_:  Minor Update - Update to documentation for perf usage in 4.8 kernel branch.
118*02ca8ccaSAndroid Build Coastguard Worker- _Version 0.5.0_:  Library Development - external decoder support. STM full decode.
119*02ca8ccaSAndroid Build Coastguard Worker- _Version 0.5.1_:  Minor Update & Bugfixes - Update HOWTO for kernel 4.9. Build fixes for parallel builds
120*02ca8ccaSAndroid Build Coastguard Worker- _Version 0.5.2_:  Minor Update & Bugfixes - Update trace info packet string o/p + Cycle count packet bugfixes.
121*02ca8ccaSAndroid Build Coastguard Worker- _Version 0.5.3_:  Doc update for using AutoFDO with ETM and additional timestamp and cycle count options.
122*02ca8ccaSAndroid Build Coastguard Worker- _Version 0.5.4_:  Updates: X-compile for arm/arm64.  Remove deprecated VS2010 builds. Bugfix: GCC inline semantics in debug build.
123*02ca8ccaSAndroid Build Coastguard Worker- _Version 0.6.0_:  Packet printers moved from tests into the main library. C++ and C APIs updated to allow clients to use them.
124*02ca8ccaSAndroid Build Coastguard Worker                    Update to allow perf to insert barrier packets (4xFSYNC) which the decoder can be made to use to reset the decode state.
125*02ca8ccaSAndroid Build Coastguard Worker- _Version 0.6.1_:  Bugfix: instruction follower bug on A32 branch to T32.
126*02ca8ccaSAndroid Build Coastguard Worker- _Version 0.7.0_:  Add handling for trace return stack feature to ETMv4 and PTM trace.
127*02ca8ccaSAndroid Build Coastguard Worker- _Version 0.7.1_:  Bugfix: ETMv3 packet processor.
128*02ca8ccaSAndroid Build Coastguard Worker- _Version 0.7.2_:  Bugfix: ETMv4 decoder - fix exact match packet address follower.
129*02ca8ccaSAndroid Build Coastguard Worker- _Version 0.7.3_:  Bugfix: PTM decoder - issues with initialisation and ASYNC detection.
130*02ca8ccaSAndroid Build Coastguard Worker- _Version 0.7.4_:  Notification of change of repository for perf extensions. gcc 6.x build fixes.
131*02ca8ccaSAndroid Build Coastguard Worker- _Version 0.7.5_:  Bugfix: ETMv4 decoder memory leak. Linux build update - header dependencies force rebuild.
132*02ca8ccaSAndroid Build Coastguard Worker- _Version 0.8.0_:  Header restructure and build update to enable linux version to install library and C-API headers in standard locations.
133*02ca8ccaSAndroid Build Coastguard Worker                    Library output naming changed from 'cstraced' to 'opencsd'.
134*02ca8ccaSAndroid Build Coastguard Worker- _Version 0.8.1_:  Minor updates: Use install tool to copy headers. Changes to HOWTO for perf usage.
135*02ca8ccaSAndroid Build Coastguard Worker- _Version 0.8.2_:  Bugfix: C++ init errors fixed for CLANG build process.
136*02ca8ccaSAndroid Build Coastguard Worker- _Version 0.8.3_:  Bugfix: ETMv4 decoder issues fixed.
137*02ca8ccaSAndroid Build Coastguard Worker- _Version 0.8.4_:  build: makefile updates and improvements to get build process compatible with Debian packaging.
138*02ca8ccaSAndroid Build Coastguard Worker- _Version 0.9.0_:  Performance improvements for perf: Additional info in instruction range output packet. Caching memory accesses.
139*02ca8ccaSAndroid Build Coastguard Worker				    Added Programmers guide to documentation.
140*02ca8ccaSAndroid Build Coastguard Worker- _Version 0.9.1_:  Bugfix: Crash during decode when first memory access is to address where no image provided.
141*02ca8ccaSAndroid Build Coastguard Worker- _Version 0.9.2_:  Bugfix: ETMv4: Incorrect Exception number output for Genric exception packets.
142*02ca8ccaSAndroid Build Coastguard Worker                    AutoFDO: update documentation for AutoFDO usage and add in "record.sh" script
143*02ca8ccaSAndroid Build Coastguard Worker- _Version 0.9.3_:  Bugfix: Test snapshot library not handling 'offset' parameters in dump file sections.
144*02ca8ccaSAndroid Build Coastguard Worker                    Install: ocsd_if_version.h moved to opencsd/include to allow installation on OS & use in compiling client apps.
145*02ca8ccaSAndroid Build Coastguard Worker- _Version 0.10.0_:
146*02ca8ccaSAndroid Build Coastguard Worker    - __Updates__: Add additional information about the last instruction to the generic output packet.
147*02ca8ccaSAndroid Build Coastguard Worker    - __Docs__: update docs for updated output packet.
148*02ca8ccaSAndroid Build Coastguard Worker    - __Bugfix__: typecast removed from OCSD_VER_NUM in ocsd_if_version.h to allow use in C pre-processor.
149*02ca8ccaSAndroid Build Coastguard Worker    - __Bugfix__: ETMV4: Interworking ISA change between A32-T32 occasionally missed during instruction decode.
150*02ca8ccaSAndroid Build Coastguard Worker
151*02ca8ccaSAndroid Build Coastguard Worker- _Version 0.10.1_:
152*02ca8ccaSAndroid Build Coastguard Worker    - __Updates__: Build update - allow multi-thread make (make -j<N>).
153*02ca8ccaSAndroid Build Coastguard Worker    - __Docs__: Minor update to AutoFDO documentation.
154*02ca8ccaSAndroid Build Coastguard Worker
155*02ca8ccaSAndroid Build Coastguard Worker- _Version 0.11.0_:
156*02ca8ccaSAndroid Build Coastguard Worker    - __Update__: ETM v4 decoder updated to support ETM version up to v4.4
157*02ca8ccaSAndroid Build Coastguard Worker    - __Update__: Memory access callback function - added new callback signature to provide TraceID to client when requesting memory.
158*02ca8ccaSAndroid Build Coastguard Worker    - __Update__: Created new example program to demonstrate using memory buffer in APIs.
159*02ca8ccaSAndroid Build Coastguard Worker    - __Bugfix__: Typos in docs and source.
160*02ca8ccaSAndroid Build Coastguard Worker    - __Bugfix__: Memory accessor - validate callback return values.
161*02ca8ccaSAndroid Build Coastguard Worker
162*02ca8ccaSAndroid Build Coastguard Worker- _Version 0.11.1_:
163*02ca8ccaSAndroid Build Coastguard Worker    - __Update__: build:- change -fpic to -fPIC to allow Debian build on sparc.
164*02ca8ccaSAndroid Build Coastguard Worker    - __Bugfix__: build:- remove unused variable
165*02ca8ccaSAndroid Build Coastguard Worker
166*02ca8ccaSAndroid Build Coastguard Worker- _Version 0.11.2_:
167*02ca8ccaSAndroid Build Coastguard Worker    - __Update__: docs:- HOWTO.md update to match new perf build requirements.
168*02ca8ccaSAndroid Build Coastguard Worker    - __Bugfix__: Minor spelling typos fixed.
169*02ca8ccaSAndroid Build Coastguard Worker
170*02ca8ccaSAndroid Build Coastguard Worker- _Version 0.12.0_:
171*02ca8ccaSAndroid Build Coastguard Worker    - __Update__: Frame deformatter - TPIU FSYNC and HSYNC support added.
172*02ca8ccaSAndroid Build Coastguard Worker    - __Update__: ETM v4: Bugfix & clarification on Exception trace handling. Where exception occurs at a branch target before any instructions
173*02ca8ccaSAndroid Build Coastguard Worker                  have been executed, the preferred return address is also the target address of the branch instruction. This case now includes as specific flag in
174*02ca8ccaSAndroid Build Coastguard Worker                  the packet. Additionally any context change associated with this target address was being applied incorrectly.
175*02ca8ccaSAndroid Build Coastguard Worker    - _Update__: Core / Architecture mapping to core names as used by test programs / snapshots updated to include additional recent ARM cores.
176*02ca8ccaSAndroid Build Coastguard Worker    - __Update__: Docs: Update to reflect new exception flag. Update test program example to reflect latest output.
177*02ca8ccaSAndroid Build Coastguard Worker    - __Bugfix__: ETM v4: Valid trace info packet was not handled correctly (0x01, 0x00).
178*02ca8ccaSAndroid Build Coastguard Worker    - __Bugfix__: ETM v4: Error messaging on commit stack overflow.
179*02ca8ccaSAndroid Build Coastguard Worker
180*02ca8ccaSAndroid Build Coastguard Worker- _Version 0.12.1_:
181*02ca8ccaSAndroid Build Coastguard Worker    - __Update__: build: remove -g option from release build.
182*02ca8ccaSAndroid Build Coastguard Worker    - __Update__: tests: Snapshots can now use generic arch+profile names rather than core names, e.g. ARMv8-A
183*02ca8ccaSAndroid Build Coastguard Worker    - __Bugfix__: Instruction decode - v8.3 B[L]A{A|B}[Z] instructions mis-identified.
184*02ca8ccaSAndroid Build Coastguard Worker     -__Bugfix__: Transition from A64 to A32 can be mis-decoded if the trace implementation represents the transition
185*02ca8ccaSAndroid Build Coastguard Worker                  as an individual address packet followed by a context packet.
186*02ca8ccaSAndroid Build Coastguard Worker
187*02ca8ccaSAndroid Build Coastguard Worker- _Version 0.12.2_:
188*02ca8ccaSAndroid Build Coastguard Worker    - __Bugfix__: Clean up memory leaks.
189*02ca8ccaSAndroid Build Coastguard Worker    - __Bugfix__: ETMv4: Ensure addressing history zeroed after TINFO.
190*02ca8ccaSAndroid Build Coastguard Worker    - __Update__: Allow GCC version to be included in build output path.
191*02ca8ccaSAndroid Build Coastguard Worker    - __Bugfix__: Packet printing update when WFI/WFE is P0 element.
192*02ca8ccaSAndroid Build Coastguard Worker
193*02ca8ccaSAndroid Build Coastguard Worker- _Version 0.13.x_ : Intermediate development version.
194*02ca8ccaSAndroid Build Coastguard Worker
195*02ca8ccaSAndroid Build Coastguard Worker- _Version 0.14.0_:
196*02ca8ccaSAndroid Build Coastguard Worker    - __Update__: ETMv4 - decoder update & simplification to handle advanced trace features.
197*02ca8ccaSAndroid Build Coastguard Worker    - __Update__: ETMv4 - decoder support for speculative trace.
198*02ca8ccaSAndroid Build Coastguard Worker    - __Update__: Generic Elements: Additional information in EOT, UNSYNC, ON packets to give reason.
199*02ca8ccaSAndroid Build Coastguard Worker    - __Update__: Memaccess: Add EL2 secure memory space flag.
200*02ca8ccaSAndroid Build Coastguard Worker    - __Update__: Documentation: Updated for release changes and to reflect latest kernel version support for CoreSight.
201*02ca8ccaSAndroid Build Coastguard Worker    - __Update__: Perf helper scripts updated to reflect latest build flow.
202*02ca8ccaSAndroid Build Coastguard Worker    - __Bugfix__: Fix for component operational flag inputs.
203*02ca8ccaSAndroid Build Coastguard Worker
204*02ca8ccaSAndroid Build Coastguard Worker- _Version 0.14.1_:
205*02ca8ccaSAndroid Build Coastguard Worker    - __Update__: ETMv4 - Add support for Q elements.
206*02ca8ccaSAndroid Build Coastguard Worker    - __Bugfix__: build: fix logic issue for && operator. (github issue #23, sumitted by yabinc)
207*02ca8ccaSAndroid Build Coastguard Worker
208*02ca8ccaSAndroid Build Coastguard Worker- _Version 0.14.2_:
209*02ca8ccaSAndroid Build Coastguard Worker    - __Update__: Architecture versioning. Set enum tag values to make conversion to numeric version easier.
210*02ca8ccaSAndroid Build Coastguard Worker    - __Update__: I-decode: remove global temporary decode state data and replace with local instance data
211*02ca8ccaSAndroid Build Coastguard Worker                  to make library more easily usable in multi-threaded programs.
212*02ca8ccaSAndroid Build Coastguard Worker    - __Bugfix__: I-decode: Some Thumb instructions not correctly reported as implied returns.
213*02ca8ccaSAndroid Build Coastguard Worker                  (github issue #24, submitted by kongy).
214*02ca8ccaSAndroid Build Coastguard Worker
215*02ca8ccaSAndroid Build Coastguard Worker- _Version 0.14.3_:
216*02ca8ccaSAndroid Build Coastguard Worker    - __Update__: Fix makefile to be compliant with RPM base distros. (github issue #26, submitted by jlinton)
217*02ca8ccaSAndroid Build Coastguard Worker    - __Update__: Add section to autofdo document.
218*02ca8ccaSAndroid Build Coastguard Worker    - __Bugfix__: STM: fix bug that was missing ASYNC packets. (github issue #27, reported by subhasish Karmakar)
219*02ca8ccaSAndroid Build Coastguard Worker
220*02ca8ccaSAndroid Build Coastguard Worker- _Version 0.14.4_:
221*02ca8ccaSAndroid Build Coastguard Worker    - __Update__: makefile: Add DESTDIR to install targets. (github issue #30)
222*02ca8ccaSAndroid Build Coastguard Worker    - __Update__: tests: add script to run single test only.
223*02ca8ccaSAndroid Build Coastguard Worker    - __Update__: docs: update to location of ARM coresight driver backports directory.
224*02ca8ccaSAndroid Build Coastguard Worker    - __Bugfix__: ETMv3: Fix missing comma in string list. (github issue #31)
225*02ca8ccaSAndroid Build Coastguard Worker    - __Bugfix__: makefile: tests: Fix build race problem (github issue #32)
226*02ca8ccaSAndroid Build Coastguard Worker    - __Bugfix__: tests: fix ignore tpiu command line options (github issue #28)
227*02ca8ccaSAndroid Build Coastguard Worker
228*02ca8ccaSAndroid Build Coastguard Worker- _Version 1.0.0_:
229*02ca8ccaSAndroid Build Coastguard Worker    - __New Decode Protocol__: Support added for the ETE protocol, used by ARM PEs that implement the FEAT_ETE
230*02ca8ccaSAndroid Build Coastguard Worker                               feature. Supports new architectural features in this trace, including FEAT_TME.
231*02ca8ccaSAndroid Build Coastguard Worker    - __Update__: Output Elememts: New protocol defines two new output elements.
232*02ca8ccaSAndroid Build Coastguard Worker    - __Update__: Add support for WFIT / WFET instructions traced as P0 elements.
233*02ca8ccaSAndroid Build Coastguard Worker    - __Update__: Architecture versioning. Arch v8 + PEs may add features in a flexible manner, and ARM also
234*02ca8ccaSAndroid Build Coastguard Worker                  declares future features ahead of architecture versions to allow support to be added.
235*02ca8ccaSAndroid Build Coastguard Worker                  APIs requiring an architecture version can now use ARCH_AA64 to declare a version of v8.3 +
236*02ca8ccaSAndroid Build Coastguard Worker                  additional features. This relaxes the strict versionnig rules that the decoder uses when
237*02ca8ccaSAndroid Build Coastguard Worker                  looking for Opcodes as trace waypoints.
238*02ca8ccaSAndroid Build Coastguard Worker    - __Update__: docs: Add linux 'man' file and installation.
239*02ca8ccaSAndroid Build Coastguard Worker    - __Bugfix__: build: Fix clean install, and remove static lib build test from main makefile to
240*02ca8ccaSAndroid Build Coastguard Worker                  dev makefile only. (github issue #33)
241*02ca8ccaSAndroid Build Coastguard Worker
242*02ca8ccaSAndroid Build Coastguard Worker- _Version 1.1.0_:
243*02ca8ccaSAndroid Build Coastguard Worker    - __Update__: ETM v4.6 support.
244*02ca8ccaSAndroid Build Coastguard Worker    - __Update__: C-API - add API functions to get last error and convert error code to string.
245*02ca8ccaSAndroid Build Coastguard Worker    - __Bugfix__: ETMv4/ETE - fix loop problem in commit elements.
246*02ca8ccaSAndroid Build Coastguard Worker    - __Bugfix__: ETMv4/ETE - make error handling consistent.
247*02ca8ccaSAndroid Build Coastguard Worker    - __Bugfix__: Add Pull request #36 from github (Ross Burton)
248*02ca8ccaSAndroid Build Coastguard Worker    - __Bugfix__: Add Pull request #37 from github (Ian Rogers)
249*02ca8ccaSAndroid Build Coastguard Worker
250*02ca8ccaSAndroid Build Coastguard Worker- _Version 1.1.1_:
251*02ca8ccaSAndroid Build Coastguard Worker    - __Bugfix__: Fix include and install for ETE decoder headers.
252*02ca8ccaSAndroid Build Coastguard Worker
253*02ca8ccaSAndroid Build Coastguard Worker- _Version 1.2.0_:
254*02ca8ccaSAndroid Build Coastguard Worker    - __Update__: Add API for counting packet decode statistics, and Frame debmux statistics.
255*02ca8ccaSAndroid Build Coastguard Worker    - __Update__: Update test scripts to allow additional command line options to be passed.
256*02ca8ccaSAndroid Build Coastguard Worker    - __Bugfix__: Fix various build warnings.
257*02ca8ccaSAndroid Build Coastguard Worker    - __Bugfix__: Remove unused variable (github issue #38 from Yi Kong)
258*02ca8ccaSAndroid Build Coastguard Worker    - __Bugfix__: Remove noisy printf (James Clark)
259*02ca8ccaSAndroid Build Coastguard Worker    - __Bugfix__: Fix documentation issues (github issues #39 & #40 from rbresalier)
260*02ca8ccaSAndroid Build Coastguard Worker
261*02ca8ccaSAndroid Build Coastguard Worker- _Version 1.2.1_:
262*02ca8ccaSAndroid Build Coastguard Worker   - __Bugfix__: ETM4x / ETE - output of context elements to client can in some circumstances
263*02ca8ccaSAndroid Build Coastguard Worker                 be delayed until after subsequent atoms have been processed leading to incorrect
264*02ca8ccaSAndroid Build Coastguard Worker                 memory decode access via the client callbacks.
265*02ca8ccaSAndroid Build Coastguard Worker                 Fixed to flush context elements immediately they are committed.
266*02ca8ccaSAndroid Build Coastguard Worker
267*02ca8ccaSAndroid Build Coastguard Worker- _Version 1.3.0_:
268*02ca8ccaSAndroid Build Coastguard Worker    - __Admin__: Dev versions now have patch versions at least +100 from root public version
269*02ca8ccaSAndroid Build Coastguard Worker    - __Update__: Add support for conditional branch (BC.cond) introduced for v8.8 / v9.3 architecture.
270*02ca8ccaSAndroid Build Coastguard Worker    - __Update__: ETE: Add support for NSE bit - security state bit defining Root / Realm states in FEAT_RME.
271*02ca8ccaSAndroid Build Coastguard Worker
272*02ca8ccaSAndroid Build Coastguard Worker- _Version 1.3.1_:
273*02ca8ccaSAndroid Build Coastguard Worker    - __Bugfix__: Add header file in snapshot parser - fix build for certain libc++ libs (github issue #43 from manojgupta)
274*02ca8ccaSAndroid Build Coastguard Worker    - __Bugfix__: Fix typo in comment (github issue #42 from nothatDinger)
275*02ca8ccaSAndroid Build Coastguard Worker
276*02ca8ccaSAndroid Build Coastguard Worker- _Version 1.3.2_:
277*02ca8ccaSAndroid Build Coastguard Worker    - __Bugfix__: ETM4x / ETE - 64 bit timestamp value - MS bit incorrectly masked to 1b0 during extraction from packet.
278*02ca8ccaSAndroid Build Coastguard Worker
279*02ca8ccaSAndroid Build Coastguard Worker- _Version 1.3.3_:
280*02ca8ccaSAndroid Build Coastguard Worker    - __Update__: Add build directory for VS2022 build.
281*02ca8ccaSAndroid Build Coastguard Worker    - __Update__: Add test program for Coresight Frame Demux code
282*02ca8ccaSAndroid Build Coastguard Worker    - __Bugfix__: PTM: Fix incorrect extraction of Waypoint Address packet (github issue #48)
283*02ca8ccaSAndroid Build Coastguard Worker    - __Bugfix__: Frame Demux: Fix HSYNC, FSYNC and 4xFSYNC handling that was causing out-of-bounds reads
284*02ca8ccaSAndroid Build Coastguard Worker                  on invalid data input. (issues #49, #50 and #51). Fixed error handling for incorrect
285*02ca8ccaSAndroid Build Coastguard Worker                  number of FSYNC packets in 4xFSYNC frame reset code that was not triggering an error
286*02ca8ccaSAndroid Build Coastguard Worker                  and allowing fun with mis-aligned input data.
287*02ca8ccaSAndroid Build Coastguard Worker    - __Bugfix__: Fix silent failure if incorrect config flags set when setting up frame demux modes.
288*02ca8ccaSAndroid Build Coastguard Worker
289*02ca8ccaSAndroid Build Coastguard Worker- _Version 1.4.0_:
290*02ca8ccaSAndroid Build Coastguard Worker    - __Update__: ETE: Add support for Arch v9.4 FEAT_ITE. ETE v1p3, sw trace instrumentation.
291*02ca8ccaSAndroid Build Coastguard Worker                  Adds in new generic output packet type: OCSD_GEN_TRC_ELEM_INSTRUMENTATION.
292*02ca8ccaSAndroid Build Coastguard Worker    - __Bugfix__: Fix memory leak in mispredict handling (github issue #52 from yabinc)
293*02ca8ccaSAndroid Build Coastguard Worker
294*02ca8ccaSAndroid Build Coastguard Worker- _Version 1.4.1_:
295*02ca8ccaSAndroid Build Coastguard Worker    - __Update__: Test: Update test program trc_pkt_lister with option to have no logging output - final stats only.
296*02ca8ccaSAndroid Build Coastguard Worker    - __Bugfix__: ETM4x: ETE: Fix memory leak / use after free (github issues #53, #58 from yabinc)
297*02ca8ccaSAndroid Build Coastguard Worker    - __Bugfix__: C-API: Fix memory leak with output sink object. (github issue #55)
298*02ca8ccaSAndroid Build Coastguard Worker
299*02ca8ccaSAndroid Build Coastguard Worker- _Version 1.4.2_:
300*02ca8ccaSAndroid Build Coastguard Worker    - __Update__: Decoder memory access - add debug features and cacheing to improve performance of decode.
301*02ca8ccaSAndroid Build Coastguard Worker                  Caching controllable by API or environment variables.
302*02ca8ccaSAndroid Build Coastguard Worker    - __Update__: Decode debug options to control potential runaway debug when incorrect memory images input
303*02ca8ccaSAndroid Build Coastguard Worker                  to decoder.
304*02ca8ccaSAndroid Build Coastguard Worker
305*02ca8ccaSAndroid Build Coastguard Worker                   - aarch64 instruction check for invalid instruction opcode. (any opcode with 0x0000 as top
306*02ca8ccaSAndroid Build Coastguard Worker                      16 bits).
307*02ca8ccaSAndroid Build Coastguard Worker
308*02ca8ccaSAndroid Build Coastguard Worker                   - optional instruction range maximum run limit. Set by environment variable.
309*02ca8ccaSAndroid Build Coastguard Worker
310*02ca8ccaSAndroid Build Coastguard Worker    - __Update__: Remove VS2015 support.
311*02ca8ccaSAndroid Build Coastguard Worker    - __Bugfix__: Memory spaces: ensure that decoder memory requests are correctly labelled with Realm and
312*02ca8ccaSAndroid Build Coastguard Worker                  root characteristics when appropriate.
313*02ca8ccaSAndroid Build Coastguard Worker    - __Bugfix__: M class tail chained interrupts now correctly handled.
314*02ca8ccaSAndroid Build Coastguard Worker    - __Bugfix__: STM: - fix master and channel ID initialisation (github issue #61 from MommeSherif)
315*02ca8ccaSAndroid Build Coastguard Worker    - __Bugfix__: Test: update HOWTO.md and perf-test-script.base for new paths (github issue #60 from yuxy-c)
316*02ca8ccaSAndroid Build Coastguard Worker    - __Bugfix__: build: Fix GCC version dir handling for versions of GCC > 9.
317*02ca8ccaSAndroid Build Coastguard Worker
318*02ca8ccaSAndroid Build Coastguard Worker
319*02ca8ccaSAndroid Build Coastguard Worker- _Version 1.5.1_:
320*02ca8ccaSAndroid Build Coastguard Worker    - __Update__: ETE: Add support for Arch 9.5 FEAT_PAUTH_LR. Add new instructions to disassembler to
321*02ca8ccaSAndroid Build Coastguard Worker                  recognise RETA<k>SPPC variants as indirect branches. Adds new test snapshots.
322*02ca8ccaSAndroid Build Coastguard Worker
323*02ca8ccaSAndroid Build Coastguard Worker- _Version 1.5.2_:
324*02ca8ccaSAndroid Build Coastguard Worker    - __Update__: docs: Update documentation for test programs.
325*02ca8ccaSAndroid Build Coastguard Worker    - __Update__: docs: Update trc_pkt_lister man file.
326*02ca8ccaSAndroid Build Coastguard Worker    - __Bugfix__: build: fix warnings building library.
327*02ca8ccaSAndroid Build Coastguard Worker    - __Bugfix__: tests: Fix typo in trc_pkt_lister help output.
328*02ca8ccaSAndroid Build Coastguard Worker
329*02ca8ccaSAndroid Build Coastguard Worker- _Version 1.5.3_:
330*02ca8ccaSAndroid Build Coastguard Worker    - __Update__: tests: Add timing information to trc_pkt_lister program.
331*02ca8ccaSAndroid Build Coastguard Worker    - __Update__: memacc: Add external interface to set memacc cache parameters. Update test programs.
332*02ca8ccaSAndroid Build Coastguard Worker    - __Bugfix__: etm4x: fix packet print typo.
333*02ca8ccaSAndroid Build Coastguard Worker    - __Bugfix__: docs: Minor fixes to docs and man file.
334*02ca8ccaSAndroid Build Coastguard Worker    - __Bugfix__: build: minor fix for clang compatibility.
335*02ca8ccaSAndroid Build Coastguard Worker
336*02ca8ccaSAndroid Build Coastguard Worker- _Version 1.5.4_:
337*02ca8ccaSAndroid Build Coastguard Worker    - __Update__: Add operation flags to allow clients to enable additional checking modes.
338*02ca8ccaSAndroid Build Coastguard Worker                  Checks for inconsistencies in program image and incoming trace. Adds operational flags:
339*02ca8ccaSAndroid Build Coastguard Worker                    - `OCSD_OPFLG_N_UNCOND_DIR_BR_CHK` - check for N atom on unconditional direct branches.
340*02ca8ccaSAndroid Build Coastguard Worker                    - `OCSD_OPFLG_STRICT_N_UNCOND_BR_CHK` - check for N atom on all unconditional branches.
341*02ca8ccaSAndroid Build Coastguard Worker                    - `OCSD_OPFLG_CHK_RANGE_CONTINUE` - Inconsistent range continuity on not taken branches.
342*02ca8ccaSAndroid Build Coastguard Worker    - __Update__: Add operational flag `ETM4_OPFLG_PKTDEC_AA64_OPCODE_CHK` to enable aa64 opcode checks.
343*02ca8ccaSAndroid Build Coastguard Worker
344*02ca8ccaSAndroid Build Coastguard WorkerLicence Information
345*02ca8ccaSAndroid Build Coastguard Worker===================
346*02ca8ccaSAndroid Build Coastguard Worker
347*02ca8ccaSAndroid Build Coastguard WorkerThis library is licensed under the [BSD three clause licence.](http://directory.fsf.org/wiki/License:BSD_3Clause)
348*02ca8ccaSAndroid Build Coastguard Worker
349*02ca8ccaSAndroid Build Coastguard WorkerA copy of this license is in the `LICENCE` file included with the source code.
350*02ca8ccaSAndroid Build Coastguard Worker
351*02ca8ccaSAndroid Build Coastguard WorkerContact
352*02ca8ccaSAndroid Build Coastguard Worker=======
353*02ca8ccaSAndroid Build Coastguard Worker
354*02ca8ccaSAndroid Build Coastguard WorkerUsing the github site: https://github.com/Linaro/OpenCSD
355*02ca8ccaSAndroid Build Coastguard Worker
356*02ca8ccaSAndroid Build Coastguard WorkerMailing list: [email protected]
357