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