aboutsummaryrefslogtreecommitdiff
path: root/decoder/tests
diff options
context:
space:
mode:
authorHaibo Huang <hhb@google.com>2019-08-01 17:10:49 -0700
committerandroid-build-merger <android-build-merger@google.com>2019-08-01 17:10:49 -0700
commitf1ee12f6639e8b0f8564300973d8ec41709d9626 (patch)
tree31f21baf3e5df35845cd77525eb3bfcb2e9123c9 /decoder/tests
parent0d09e244cbbcb7ec1e90263101c60633b233fd22 (diff)
parent4468ec60c66552c200a6256db293496b53a44f6b (diff)
downloadOpenCSD-f1ee12f6639e8b0f8564300973d8ec41709d9626.tar.gz
Upgrade OpenCSD to v0.12.0 am: f5e655cc27 am: c22e748736
am: 4468ec60c6 Change-Id: Ie7785c1f08c8fc9b0102ddef5da0f10367c845c0
Diffstat (limited to 'decoder/tests')
-rwxr-xr-xdecoder/tests/run_pkt_decode_tests.bash5
-rw-r--r--decoder/tests/snapshot_parser_lib/source/ss_to_dcdtree.cpp6
-rw-r--r--decoder/tests/snapshots/a55-test-tpiu/DSTREAM_0.binbin0 -> 49152 bytes
-rw-r--r--decoder/tests/snapshots/a55-test-tpiu/README.txt1
-rw-r--r--decoder/tests/snapshots/a55-test-tpiu/contents.ini6
-rw-r--r--decoder/tests/snapshots/a55-test-tpiu/device1.ini451
-rw-r--r--decoder/tests/snapshots/a55-test-tpiu/device2.ini189
-rw-r--r--decoder/tests/snapshots/a55-test-tpiu/snapshot.ini12
-rw-r--r--decoder/tests/snapshots/a55-test-tpiu/trace.ini16
-rw-r--r--decoder/tests/source/trc_pkt_lister.cpp56
10 files changed, 738 insertions, 4 deletions
diff --git a/decoder/tests/run_pkt_decode_tests.bash b/decoder/tests/run_pkt_decode_tests.bash
index 210a149..56b1cbf 100755
--- a/decoder/tests/run_pkt_decode_tests.bash
+++ b/decoder/tests/run_pkt_decode_tests.bash
@@ -71,3 +71,8 @@ do
${BIN_DIR}/trc_pkt_lister -ss_dir "${SNAPSHOT_DIR}/$test_dir" -decode -logfilename "${OUT_DIR}/$test_dir.ppl"
echo "Done : Return $?"
done
+
+# === test the TPIU deformatter ===
+echo "Testing a55-test-tpiu..."
+${BIN_DIR}/trc_pkt_lister -ss_dir "${SNAPSHOT_DIR}/a55-test-tpiu" -dstream_format -o_raw_packed -o_raw_unpacked -logfilename "${OUT_DIR}/a55-test-tpiu.ppl"
+echo "Done : Return $?"
diff --git a/decoder/tests/snapshot_parser_lib/source/ss_to_dcdtree.cpp b/decoder/tests/snapshot_parser_lib/source/ss_to_dcdtree.cpp
index 0022436..4eeec73 100644
--- a/decoder/tests/snapshot_parser_lib/source/ss_to_dcdtree.cpp
+++ b/decoder/tests/snapshot_parser_lib/source/ss_to_dcdtree.cpp
@@ -79,15 +79,19 @@ bool CreateDcdTreeFromSnapShot::createDecodeTree(const std::string &SourceName,
if(m_pReader->getTraceBufferSourceTree(SourceName, tree))
{
int numDecodersCreated = 0; // count how many we create - if none then give up.
+ uint32_t formatter_flags = OCSD_DFRMTR_FRAME_MEM_ALIGN;
/* make a note of the trace binary file name + path to ss directory */
m_BufferFileName = m_pReader->getSnapShotDir() + tree.buffer_info.dataFileName;
ocsd_dcd_tree_src_t src_format = tree.buffer_info.dataFormat == "source_data" ? OCSD_TRC_SRC_SINGLE : OCSD_TRC_SRC_FRAME_FORMATTED;
+ if (tree.buffer_info.dataFormat == "dstream_coresight")
+ formatter_flags = OCSD_DFRMTR_HAS_FSYNCS;
+
/* create the initial device tree */
// TBD: handle syncs / hsyncs data from TPIU
- m_pDecodeTree = DecodeTree::CreateDecodeTree(src_format,OCSD_DFRMTR_FRAME_MEM_ALIGN);
+ m_pDecodeTree = DecodeTree::CreateDecodeTree(src_format, formatter_flags);
if(m_pDecodeTree == 0)
{
LogError("Failed to create decode tree object\n");
diff --git a/decoder/tests/snapshots/a55-test-tpiu/DSTREAM_0.bin b/decoder/tests/snapshots/a55-test-tpiu/DSTREAM_0.bin
new file mode 100644
index 0000000..33c4b1a
--- /dev/null
+++ b/decoder/tests/snapshots/a55-test-tpiu/DSTREAM_0.bin
Binary files differ
diff --git a/decoder/tests/snapshots/a55-test-tpiu/README.txt b/decoder/tests/snapshots/a55-test-tpiu/README.txt
new file mode 100644
index 0000000..fe190e6
--- /dev/null
+++ b/decoder/tests/snapshots/a55-test-tpiu/README.txt
@@ -0,0 +1 @@
+DS-5 Debugger has generated this trace dump data set. The intention is that in a future release the DS-5 Debugger will be able to directly consume this data set. Until then, this data set must be converted into a Snapshot viewer compatible format before it can be used by DS-5 Debugger. \ No newline at end of file
diff --git a/decoder/tests/snapshots/a55-test-tpiu/contents.ini b/decoder/tests/snapshots/a55-test-tpiu/contents.ini
new file mode 100644
index 0000000..900f772
--- /dev/null
+++ b/decoder/tests/snapshots/a55-test-tpiu/contents.ini
@@ -0,0 +1,6 @@
+; CoreSight trace dump
+
+[trace]
+metadata=trace.ini
+buffer0=DSTREAM_0.bin
+
diff --git a/decoder/tests/snapshots/a55-test-tpiu/device1.ini b/decoder/tests/snapshots/a55-test-tpiu/device1.ini
new file mode 100644
index 0000000..2381b31
--- /dev/null
+++ b/decoder/tests/snapshots/a55-test-tpiu/device1.ini
@@ -0,0 +1,451 @@
+[device]
+name=Cortex-A55_0
+class=core
+type=Cortex-A55
+
+[regs]
+X0(size:64)=0x00000000002971C8
+X1(size:64)=0x00000000910163E0
+X2(size:64)=0x00000000FFD0C1C4
+X3(size:64)=0x0000000000345000
+X4(size:64)=0x0000000000000004
+X5(size:64)=0x00000000FC01EB50
+X6(size:64)=0x00000000FC01EB4C
+X7(size:64)=0x0000000000000000
+X8(size:64)=0x00000000FC01E9C8
+X9(size:64)=0xFFFFFFFFFFFFFFFF
+X10(size:64)=0x0000000000000006
+X11(size:64)=0x0000000000000000
+X12(size:64)=0x00000000407FE0FA
+X13(size:64)=0x0000000000000000
+X14(size:64)=0x0000000000000000
+X15(size:64)=0x0000000000000000
+X16(size:64)=0x0000000000000000
+X17(size:64)=0x0000000000000000
+X18(size:64)=0x0000000000000000
+X19(size:64)=0x00000000C2800290
+X20(size:64)=0x0000000000000000
+X21(size:64)=0x0000000000000000
+X22(size:64)=0x0000000000000000
+X23(size:64)=0x0000000000000000
+X24(size:64)=0x0000000000000000
+X25(size:64)=0x0000000000000000
+X26(size:64)=0x0000000000000000
+X27(size:64)=0x0000000000000000
+X28(size:64)=0x0000000000000000
+X29(size:64)=0x0000000000000000
+LR(size:64)=0x00000000FFFEAF48
+PC(size:64)=0x00000000FFFEB44C
+SP(size:64)=0x00000000FC01EBA0
+W0=0x002971C8
+W1=0x910163E0
+W2=0xFFD0C1C4
+W3=0x00345000
+W4=0x00000004
+W5=0xFC01EB50
+W6=0xFC01EB4C
+W7=0x00000000
+W8=0xFC01E9C8
+W9=0xFFFFFFFF
+W10=0x00000006
+W11=0x00000000
+W12=0x407FE0FA
+W13=0x00000000
+W14=0x00000000
+W15=0x00000000
+W16=0x00000000
+W17=0x00000000
+W18=0x00000000
+W19=0xC2800290
+W20=0x00000000
+W21=0x00000000
+W22=0x00000000
+W23=0x00000000
+W24=0x00000000
+W25=0x00000000
+W26=0x00000000
+W27=0x00000000
+W28=0x00000000
+W29=0x00000000
+W30=0xFFFEAF48
+B0=0x00000000
+B1=0x00000000
+B2=0x00000000
+B3=0x00000000
+B4=0x00000000
+B5=0x00000000
+B6=0x00000000
+B7=0x00000000
+B8=0x00000000
+B9=0x00000000
+B10=0x00000000
+B11=0x00000000
+B12=0x00000000
+B13=0x00000000
+B14=0x00000000
+B15=0x00000000
+B16=0x00000000
+B17=0x00000000
+B18=0x00000000
+B19=0x00000000
+B20=0x00000000
+B21=0x00000000
+B22=0x00000000
+B23=0x00000000
+B24=0x00000000
+B25=0x00000000
+B26=0x00000000
+B27=0x00000000
+B28=0x00000000
+B29=0x00000000
+B30=0x00000000
+B31=0x00000000
+D0(size:64)=0x0000000000000000
+D1(size:64)=0x0000000000000000
+D2(size:64)=0x0000000000000000
+D3(size:64)=0x0000000000000000
+D4(size:64)=0x0000000000000000
+D5(size:64)=0x0000000000000000
+D6(size:64)=0x0000000000000000
+D7(size:64)=0x0000000000000000
+D8(size:64)=0x0000000000000000
+D9(size:64)=0x0000000000000000
+D10(size:64)=0x0000000000000000
+D11(size:64)=0x0000000000000000
+D12(size:64)=0x0000000000000000
+D13(size:64)=0x0000000000000000
+D14(size:64)=0x0000000000000000
+D15(size:64)=0x0000000000000000
+D16(size:64)=0x0000000000000000
+D17(size:64)=0x0000000000000000
+D18(size:64)=0x0000000000000000
+D19(size:64)=0x0000000000000000
+D20(size:64)=0x0000000000000000
+D21(size:64)=0x0000000000000000
+D22(size:64)=0x0000000000000000
+D23(size:64)=0x0000000000000000
+D24(size:64)=0x0000000000000000
+D25(size:64)=0x0000000000000000
+D26(size:64)=0x0000000000000000
+D27(size:64)=0x0000000000000000
+D28(size:64)=0x0000000000000000
+D29(size:64)=0x0000000000000000
+D30(size:64)=0x0000000000000000
+D31(size:64)=0x0000000000000000
+H0=0x00000000
+H1=0x00000000
+H2=0x00000000
+H3=0x00000000
+H4=0x00000000
+H5=0x00000000
+H6=0x00000000
+H7=0x00000000
+H8=0x00000000
+H9=0x00000000
+H10=0x00000000
+H11=0x00000000
+H12=0x00000000
+H13=0x00000000
+H14=0x00000000
+H15=0x00000000
+H16=0x00000000
+H17=0x00000000
+H18=0x00000000
+H19=0x00000000
+H20=0x00000000
+H21=0x00000000
+H22=0x00000000
+H23=0x00000000
+H24=0x00000000
+H25=0x00000000
+H26=0x00000000
+H27=0x00000000
+H28=0x00000000
+H29=0x00000000
+H30=0x00000000
+H31=0x00000000
+S0=0x00000000
+S1=0x00000000
+S2=0x00000000
+S3=0x00000000
+S4=0x00000000
+S5=0x00000000
+S6=0x00000000
+S7=0x00000000
+S8=0x00000000
+S9=0x00000000
+S10=0x00000000
+S11=0x00000000
+S12=0x00000000
+S13=0x00000000
+S14=0x00000000
+S15=0x00000000
+S16=0x00000000
+S17=0x00000000
+S18=0x00000000
+S19=0x00000000
+S20=0x00000000
+S21=0x00000000
+S22=0x00000000
+S23=0x00000000
+S24=0x00000000
+S25=0x00000000
+S26=0x00000000
+S27=0x00000000
+S28=0x00000000
+S29=0x00000000
+S30=0x00000000
+S31=0x00000000
+PAR_EL1(size:64)=0x0000000000000800
+DBGAUTHSTATUS_EL1=0x000000FF
+DBGBCR0_EL1=0x000001E0
+DBGBCR1_EL1=0x000001E0
+DBGBCR2_EL1=0x000001E0
+DBGBCR3_EL1=0x000001E0
+DBGBCR4_EL1=0x000001E0
+DBGBCR5_EL1=0x000001E0
+DBGBVR0_EL1(size:64)=0x0000000000000000
+DBGBVR1_EL1(size:64)=0x0000000000000000
+DBGBVR2_EL1(size:64)=0x0000000000000000
+DBGBVR3_EL1(size:64)=0x0000000000000000
+DBGBVR4_EL1(size:64)=0x0000000000000000
+DBGBVR5_EL1(size:64)=0x0000000000000000
+DBGCLAIMCLR_EL1=0x00000000
+DBGCLAIMSET_EL1=0x000000FF
+DBGPRCR_EL1=0x00000001
+DBGWCR0_EL1=0x00000000
+DBGWCR1_EL1=0x00000000
+DBGWCR2_EL1=0x00000000
+DBGWCR3_EL1=0x00000000
+DBGWVR0_EL1(size:64)=0x0000000000000000
+DBGWVR1_EL1(size:64)=0x0000000000000000
+DBGWVR2_EL1(size:64)=0x0000000000000000
+DBGWVR3_EL1(size:64)=0x0000000000000000
+MDCCINT_EL1=0x00000000
+MDCCSR_EL0=0x00000000
+MDCR_EL2=0x00000006
+MDCR_EL3=0x00000000
+MDRAR_EL1(size:64)=0x0000000410000003
+MDSCR_EL1=0x00004000
+OSDLR_EL1=0x00000000
+OSDTRRX_EL1=0x00000000
+OSDTRTX_EL1=0x00000000
+OSECCR_EL1=0x00000000
+OSLSR_EL1=0x00000008
+AFSR0_EL1=0x00000000
+AFSR0_EL2=0x00000000
+AFSR0_EL3=0x00000000
+AFSR1_EL1=0x00000000
+AFSR1_EL2=0x00000000
+AFSR1_EL3=0x00000000
+ESR_EL1=0x00000000
+ESR_EL2=0x00000000
+ESR_EL3=0x00000000
+FAR_EL1(size:64)=0x0000000000000000
+FAR_EL2(size:64)=0x0000000000000000
+FAR_EL3(size:64)=0x0000000000000000
+HPFAR_EL2(size:64)=0x0000000000000000
+ISR_EL1=0x00000000
+VBAR_EL1(size:64)=0x0000000000000000
+VBAR_EL2(size:64)=0x00000000C0007000
+VBAR_EL3(size:64)=0x0000000000000000
+FPCR=0x00000000
+FPSR=0x00000000
+MVFR0_EL1=0x00000000
+MVFR1_EL1=0x00000000
+MVFR2_EL1=0x00000000
+ICC_AP0R0_EL1=0x00000000
+ICC_AP1R0_EL1=0x00000000
+S_ICC_AP1R0_EL1=0x00000000
+N_ICC_AP1R0_EL1=0x00000000
+ICC_BPR0_EL1=0x00000002
+ICC_BPR1_EL1=0x00000003
+S_ICC_BPR1_EL1=0x00000002
+N_ICC_BPR1_EL1=0x00000003
+ICC_CTLR_EL1=0x00004400
+S_ICC_CTLR_EL1=0x00004400
+N_ICC_CTLR_EL1=0x00004400
+ICC_CTLR_EL3=0x00004400
+ICC_HPPIR0_EL1=0x000003FF
+ICC_HPPIR1_EL1=0x000003FF
+ICC_IAR0_EL1=0x000003FF
+ICC_IAR1_EL1=0x000003FF
+ICC_IGRPEN0_EL1=0x00000000
+ICC_IGRPEN1_EL1=0x00000000
+S_ICC_IGRPEN1_EL1=0x00000000
+N_ICC_IGRPEN1_EL1=0x00000000
+ICC_IGRPEN1_EL3=0x00000000
+ICC_PMR_EL1=0x00000000
+ICC_RPR_EL1=0x000000FF
+ICC_SRE_EL1=0x00000007
+S_ICC_SRE_EL1=0x00000007
+N_ICC_SRE_EL1=0x00000007
+ICC_SRE_EL2=0x0000000F
+ICC_SRE_EL3=0x0000000F
+ICH_AP0R0_EL2=0x00000000
+ICH_AP1R0_EL2=0x00000000
+ICH_EISR_EL2=0x00000000
+ICH_ELRSR_EL2=0x000000FF
+ICH_HCR_EL2=0x00000000
+ICH_LR0_EL2(size:64)=0x0000000000000000
+ICH_LR1_EL2(size:64)=0x0000000000000000
+ICH_LR2_EL2(size:64)=0x0000000000000000
+ICH_LR3_EL2(size:64)=0x0000000000000000
+ICH_LR4_EL2(size:64)=0x0000000000000000
+ICH_LR5_EL2(size:64)=0x0000000000000000
+ICH_LR6_EL2(size:64)=0x0000000000000000
+ICH_LR7_EL2(size:64)=0x0000000000000000
+ICH_MISR_EL2=0x00000000
+ICH_VMCR_EL2=0x004C0008
+ICH_VTR_EL2=0x90580007
+AIDR_EL1=0x00000000
+CCSIDR_EL1=0x7007E03A
+CLIDR_EL1(size:64)=0x000000000B200123
+CSSELR_EL1=0x00000000
+CTR_EL0=0x8444C004
+DCZID_EL0=0x00000004
+ID_AA64AFR0_EL1(size:64)=0x0000000000000000
+ID_AA64AFR1_EL1(size:64)=0x0000000000000000
+ID_AA64DFR0_EL1(size:64)=0x0000000010305407
+ID_AA64DFR1_EL1(size:64)=0x0000000000000000
+ID_AA64ISAR0_EL1(size:64)=0x0000000010211120
+ID_AA64ISAR1_EL1(size:64)=0x0000000000000000
+ID_AA64MMFR0_EL1(size:64)=0x0000000000001124
+ID_AA64MMFR1_EL1(size:64)=0x0000000001111120
+ID_AA64PFR0_EL1(size:64)=0x0000000011001111
+ID_AA64PFR1_EL1(size:64)=0x0000000000000000
+ID_AFR0_EL1=0x00000000
+ID_DFR0_EL1=0x00000000
+ID_ISAR0_EL1=0x00000000
+ID_ISAR1_EL1=0x00000000
+ID_ISAR2_EL1=0x00000000
+ID_ISAR3_EL1=0x00000000
+ID_ISAR4_EL1=0x00000000
+ID_ISAR5_EL1=0x00000000
+ID_MMFR0_EL1=0x00000000
+ID_MMFR1_EL1=0x00000000
+ID_MMFR2_EL1=0x00000000
+ID_MMFR3_EL1=0x00000000
+ID_MMFR4_EL1=0x00000000
+ID_PFR0_EL1=0x00000000
+ID_PFR1_EL1=0x00000000
+MIDR_EL1=0x420F5160
+MPIDR_EL1(size:64)=0x0000000081000000
+REVIDR_EL1=0x00000000
+VMPIDR_EL2(size:64)=0x0000000080000000
+VPIDR_EL2=0x00000000
+ACTLR_EL1(size:64)=0x0000000000000000
+ACTLR_EL2(size:64)=0x0000000000000000
+ACTLR_EL3(size:64)=0x0000000000000000
+AMAIR_EL1(size:64)=0x0000000000000000
+AMAIR_EL2(size:64)=0x0000000000000000
+AMAIR_EL3(size:64)=0x0000000000000000
+HACR_EL2=0x00000000
+IL1Data0_EL1=0x00000000
+IL1Data1_EL1=0x00000000
+IL1Data2_EL1=0x00000000
+IL1Data3_EL1=0x00000000
+DL1Data0_EL1=0x00000000
+DL1Data1_EL1=0x00000000
+DL1Data2_EL1=0x00000000
+DL1Data3_EL1=0x00000000
+DL1Data4_EL1=0x00000000
+CONTEXTIDR_EL1=0x00000000
+MAIR_EL1(size:64)=0x0000000000000000
+MAIR_EL2(size:64)=0x00000000FFBB4400
+MAIR_EL3(size:64)=0x0000000000000000
+TCR_EL1(size:64)=0x0000000080000000
+TCR_EL2=0x8081351D
+TCR_EL3=0x80800000
+TTBR0_EL1(size:64)=0x0000000000000000
+TTBR0_EL2(size:64)=0x00000000FFFFD000
+TTBR0_EL3(size:64)=0x0000000000000000
+TTBR1_EL1(size:64)=0x0000000000000000
+VTCR_EL2=0x80000000
+VTTBR_EL2(size:64)=0x0000000000000000
+CPACR_EL1=0x00000000
+SCTLR_EL1=0x30500980
+SCTLR_EL2=0x30401805
+SCTLR_EL3=0x30C50830
+PMCCFILTR_EL0=0x00000000
+PMCCNTR_EL0(size:64)=0x0000000000000000
+PMCEID0_EL0=0xFBFFEFFF
+PMCEID1_EL0=0x0000A07F
+PMCNTENCLR_EL0=0x00000000
+PMCNTENSET_EL0=0x00000000
+PMCR_EL0=0x42003040
+PMEVCNTR0_EL0=0x00000000
+PMEVCNTR1_EL0=0x00000000
+PMEVCNTR2_EL0=0x00000000
+PMEVCNTR3_EL0=0x00000000
+PMEVCNTR4_EL0=0x00000000
+PMEVCNTR5_EL0=0x00000000
+PMEVTYPER0_EL0=0x00000000
+PMEVTYPER1_EL0=0x00000000
+PMEVTYPER2_EL0=0x00000000
+PMEVTYPER3_EL0=0x00000000
+PMEVTYPER4_EL0=0x00000000
+PMEVTYPER5_EL0=0x00000000
+PMINTENCLR_EL1=0x00000000
+PMINTENSET_EL1=0x00000000
+PMOVSCLR_EL0=0x00000000
+PMOVSSET_EL0=0x00000000
+PMSELR_EL0=0x00000000
+PMUSERENR_EL0=0x00000000
+PMXEVCNTR_EL0=0x00000000
+PMXEVTYPER_EL0=0x00000000
+CurrentEL=0x00000008
+DAIF=0x000003C0
+NZCV=0x20000000
+SPSel=0x00000001
+Mode=0x00000009
+RVBAR_EL3(size:64)=0x0000000000000000
+CPTR_EL3=0x00000000
+SCR_EL3=0x00000531
+ELR_EL1(size:64)=0x0000000000000000
+ELR_EL2(size:64)=0x0000000000000000
+ELR_EL3(size:64)=0x0000000000000000
+SPSR_EL1=0x00000000
+SPSR_EL2=0x00000000
+SPSR_EL3=0x00000000
+SPSR_ABT=0x00000000
+SPSR_FIQ=0x00000000
+SPSR_IRQ=0x00000000
+SPSR_UND=0x00000000
+SP_EL0(size:64)=0x0000000000000000
+SP_EL1(size:64)=0x0000000000000000
+SP_EL2(size:64)=0x00000000FC01EBA0
+SP_EL3(size:64)=0x0000000000000000
+TPIDRRO_EL0(size:64)=0x0000000000000000
+TPIDR_EL0(size:64)=0x0000000000000000
+TPIDR_EL1(size:64)=0x0000000000000000
+TPIDR_EL2(size:64)=0x0000000000000000
+TPIDR_EL3(size:64)=0x0000000000000000
+CNTFRQ_EL0=0x05F5E100
+CNTHCTL_EL2=0x00000000
+CNTHP_CTL_EL2=0x00000000
+CNTHP_CVAL_EL2(size:64)=0x0000000000000000
+CNTHP_TVAL_EL2=0xFBDEF81B
+CNTKCTL_EL1=0x00000000
+CNTPCT_EL0(size:64)=0x00000000042157F5
+CNTPS_CTL_EL1=0x00000000
+CNTPS_CVAL_EL1(size:64)=0x0000000000000000
+CNTPS_TVAL_EL1=0xFBDE0D61
+CNTP_CTL_EL0=0x00000000
+CNTP_CVAL_EL0(size:64)=0x0000000000000000
+CNTP_TVAL_EL0=0xFBDD778C
+CNTVCT_EL0(size:64)=0x000000000422AE1E
+CNTVOFF_EL2(size:64)=0x0000000000000000
+CNTV_CTL_EL0=0x00000000
+CNTV_CVAL_EL0(size:64)=0x0000000000000000
+CNTV_TVAL_EL0=0xFBDCA814
+CPTR_EL2=0x00000000
+HCR_EL2(size:64)=0x000000008000003A
+HSTR_EL2=0x00000000
+CPSR=0x200003C9
+
+[dump1]
+space=EL2
+address=0xFFFEB448
+file=mem_Cortex-A57_0.bin
+
diff --git a/decoder/tests/snapshots/a55-test-tpiu/device2.ini b/decoder/tests/snapshots/a55-test-tpiu/device2.ini
new file mode 100644
index 0000000..21bebaa
--- /dev/null
+++ b/decoder/tests/snapshots/a55-test-tpiu/device2.ini
@@ -0,0 +1,189 @@
+[device]
+name=CSETM_0
+class=trace_source
+type=ETM4.2
+
+[regs]
+TRCPROCSELR(id:0x2)=0x00000000
+TRCCONFIGR(id:0x4)=0x00000001
+TRCAUXCTLR(id:0x6)=0x00000000
+TRCEVENTCTL0R(id:0x8)=0x00000000
+TRCEVENTCTL1R(id:0x9)=0x00000000
+TRCSTALLCTLR(id:0xB)=0x00000000
+TRCTSCTLR(id:0xC)=0x00000000
+TRCSYNCPR(id:0xD)=0x0000000B
+TRCCCCTLR(id:0xE)=0x00000000
+TRCBBCTLR(id:0xF)=0x00000000
+TRCTRACEIDR(id:0x10)=0x00000001
+TRCQCTLR(id:0x11)=0x00000000
+TRCVICTLR(id:0x20)=0x00000201
+TRCVIIECTLR(id:0x21)=0x00000000
+TRCVISSCTLR(id:0x22)=0x00000000
+TRCVIPCSSCTLR(id:0x23)=0x00000000
+TRCVDCTLR(id:0x28)=0x00000000
+TRCVDSACCTLR(id:0x29)=0x00000000
+TRCVDARCCTLR(id:0x2A)=0x00000000
+TRCSEQEVR0(id:0x40)=0x00000000
+TRCSEQEVR1(id:0x41)=0x00000000
+TRCSEQEVR2(id:0x42)=0x00000000
+TRCSEQRSTEVR(id:0x46)=0x00000000
+TRCSEQSTR(id:0x47)=0x00000000
+TRCEXTINSELR(id:0x48)=0x00000000
+TRCCNTRLDVR0(id:0x50)=0x00000000
+TRCCNTRLDVR1(id:0x51)=0x00000000
+TRCCNTRLDVR2(id:0x52)=0x00000000
+TRCCNTRLDVR3(id:0x53)=0x00000000
+TRCCNTCTLR0(id:0x54)=0x00000000
+TRCCNTCTLR1(id:0x55)=0x00000000
+TRCCNTCTLR2(id:0x56)=0x00000000
+TRCCNTCTLR3(id:0x57)=0x00000000
+TRCCNTVR0(id:0x58)=0x00000000
+TRCCNTVR1(id:0x59)=0x00000000
+TRCCNTVR2(id:0x5A)=0x00000000
+TRCCNTVR3(id:0x5B)=0x00000000
+TRCIDR8(id:0x60)=0x00000000
+TRCIDR9(id:0x61)=0x00000000
+TRCIDR10(id:0x62)=0x00000000
+TRCIDR11(id:0x63)=0x00000000
+TRCIDR12(id:0x64)=0x00000000
+TRCIDR13(id:0x65)=0x00000000
+TRCIMSPEC0(id:0x70)=0x00000000
+TRCIMSPEC1(id:0x71)=0x00000000
+TRCIMSPEC2(id:0x72)=0x00000000
+TRCIMSPEC3(id:0x73)=0x00000000
+TRCIMSPEC4(id:0x74)=0x00000000
+TRCIMSPEC5(id:0x75)=0x00000000
+TRCIMSPEC6(id:0x76)=0x00000000
+TRCIMSPEC7(id:0x77)=0x00000000
+TRCIDR0(id:0x78)=0x08000CA1
+TRCIDR1(id:0x79)=0x4200F410
+TRCIDR2(id:0x7A)=0x20001088
+TRCIDR3(id:0x7B)=0x007B0004
+TRCIDR4(id:0x7C)=0x11170004
+TRCIDR5(id:0x7D)=0x28070804
+TRCIDR6(id:0x7E)=0x00000000
+TRCIDR7(id:0x7F)=0x00000000
+TRCRSCTLR2(id:0x82)=0x00040000
+TRCRSCTLR3(id:0x83)=0x00000000
+TRCRSCTLR4(id:0x84)=0x00000000
+TRCRSCTLR5(id:0x85)=0x00000000
+TRCRSCTLR6(id:0x86)=0x00000000
+TRCRSCTLR7(id:0x87)=0x00000000
+TRCRSCTLR8(id:0x88)=0x00000000
+TRCRSCTLR9(id:0x89)=0x00000000
+TRCRSCTLR10(id:0x8A)=0x00000000
+TRCRSCTLR11(id:0x8B)=0x00000000
+TRCRSCTLR12(id:0x8C)=0x00000000
+TRCRSCTLR13(id:0x8D)=0x00000000
+TRCRSCTLR14(id:0x8E)=0x00000000
+TRCRSCTLR15(id:0x8F)=0x00000000
+TRCRSCTLR16(id:0x90)=0x00000000
+TRCRSCTLR17(id:0x91)=0x00000000
+TRCRSCTLR18(id:0x92)=0x00000000
+TRCRSCTLR19(id:0x93)=0x00000000
+TRCRSCTLR20(id:0x94)=0x00000000
+TRCRSCTLR21(id:0x95)=0x00000000
+TRCRSCTLR22(id:0x96)=0x00000000
+TRCRSCTLR23(id:0x97)=0x00000000
+TRCRSCTLR24(id:0x98)=0x00000000
+TRCRSCTLR25(id:0x99)=0x00000000
+TRCRSCTLR26(id:0x9A)=0x00000000
+TRCRSCTLR27(id:0x9B)=0x00000000
+TRCRSCTLR28(id:0x9C)=0x00000000
+TRCRSCTLR29(id:0x9D)=0x00000000
+TRCRSCTLR30(id:0x9E)=0x00000000
+TRCRSCTLR31(id:0x9F)=0x00000000
+TRCSSCCR0(id:0xA0)=0x00000000
+TRCSSCCR1(id:0xA1)=0x00000000
+TRCSSCCR2(id:0xA2)=0x00000000
+TRCSSCCR3(id:0xA3)=0x00000000
+TRCSSCCR4(id:0xA4)=0x00000000
+TRCSSCCR5(id:0xA5)=0x00000000
+TRCSSCCR6(id:0xA6)=0x00000000
+TRCSSCCR7(id:0xA7)=0x00000000
+TRCSSCSR0(id:0xA8)=0x00000001
+TRCSSCSR1(id:0xA9)=0x00000000
+TRCSSCSR2(id:0xAA)=0x00000000
+TRCSSCSR3(id:0xAB)=0x00000000
+TRCSSCSR4(id:0xAC)=0x00000000
+TRCSSCSR5(id:0xAD)=0x00000000
+TRCSSCSR6(id:0xAE)=0x00000000
+TRCSSCSR7(id:0xAF)=0x00000000
+TRCSSPCICR0(id:0xB0)=0x00000000
+TRCSSPCICR1(id:0xB1)=0x00000000
+TRCSSPCICR2(id:0xB2)=0x00000000
+TRCSSPCICR3(id:0xB3)=0x00000000
+TRCSSPCICR4(id:0xB4)=0x00000000
+TRCSSPCICR5(id:0xB5)=0x00000000
+TRCSSPCICR6(id:0xB6)=0x00000000
+TRCSSPCICR7(id:0xB7)=0x00000000
+TRCACVR0(id:0x100,size:64)=0x0000000000000000
+TRCACVR1(id:0x102,size:64)=0x0000000000000000
+TRCACVR2(id:0x104,size:64)=0x0000000000000000
+TRCACVR3(id:0x106,size:64)=0x0000000000000000
+TRCACVR4(id:0x108,size:64)=0x0000000000000000
+TRCACVR5(id:0x10A,size:64)=0x0000000000000000
+TRCACVR6(id:0x10C,size:64)=0x0000000000000000
+TRCACVR7(id:0x10E,size:64)=0x0000000000000000
+TRCACVR8(id:0x110,size:64)=0x0000000000000000
+TRCACVR9(id:0x112,size:64)=0x0000000000000000
+TRCACVR10(id:0x114,size:64)=0x0000000000000000
+TRCACVR11(id:0x116,size:64)=0x0000000000000000
+TRCACVR12(id:0x118,size:64)=0x0000000000000000
+TRCACVR13(id:0x11A,size:64)=0x0000000000000000
+TRCACVR14(id:0x11C,size:64)=0x0000000000000000
+TRCACVR15(id:0x11E,size:64)=0x0000000000000000
+TRCACATR0(id:0x120,size:64)=0x0000000000000000
+TRCACATR1(id:0x122,size:64)=0x0000000000000000
+TRCACATR2(id:0x124,size:64)=0x0000000000000000
+TRCACATR3(id:0x126,size:64)=0x0000000000000000
+TRCACATR4(id:0x128,size:64)=0x0000000000000000
+TRCACATR5(id:0x12A,size:64)=0x0000000000000000
+TRCACATR6(id:0x12C,size:64)=0x0000000000000000
+TRCACATR7(id:0x12E,size:64)=0x0000000000000000
+TRCACATR8(id:0x130,size:64)=0x0000000000000000
+TRCACATR9(id:0x132,size:64)=0x0000000000000000
+TRCACATR10(id:0x134,size:64)=0x0000000000000000
+TRCACATR11(id:0x136,size:64)=0x0000000000000000
+TRCACATR12(id:0x138,size:64)=0x0000000000000000
+TRCACATR13(id:0x13A,size:64)=0x0000000000000000
+TRCACATR14(id:0x13C,size:64)=0x0000000000000000
+TRCACATR15(id:0x13E,size:64)=0x0000000000000000
+TRCDVCVR0(id:0x140,size:64)=0x0000000000000000
+TRCDVCVR1(id:0x142,size:64)=0x0000000000000000
+TRCDVCVR2(id:0x144,size:64)=0x0000000000000000
+TRCDVCVR3(id:0x146,size:64)=0x0000000000000000
+TRCDVCVR4(id:0x148,size:64)=0x0000000000000000
+TRCDVCVR5(id:0x14A,size:64)=0x0000000000000000
+TRCDVCVR6(id:0x14C,size:64)=0x0000000000000000
+TRCDVCVR7(id:0x14E,size:64)=0x0000000000000000
+TRCDVCMR0(id:0x160,size:64)=0x0000000000000000
+TRCDVCMR1(id:0x162,size:64)=0x0000000000000000
+TRCDVCMR2(id:0x164,size:64)=0x0000000000000000
+TRCDVCMR3(id:0x166,size:64)=0x0000000000000000
+TRCDVCMR4(id:0x168,size:64)=0x0000000000000000
+TRCDVCMR5(id:0x16A,size:64)=0x0000000000000000
+TRCDVCMR6(id:0x16C,size:64)=0x0000000000000000
+TRCDVCMR7(id:0x16E,size:64)=0x0000000000000000
+TRCCIDCVR0(id:0x180,size:64)=0x0000000000000000
+TRCCIDCVR1(id:0x182,size:64)=0x0000000000000000
+TRCCIDCVR2(id:0x184,size:64)=0x0000000000000000
+TRCCIDCVR3(id:0x186,size:64)=0x0000000000000000
+TRCCIDCVR4(id:0x188,size:64)=0x0000000000000000
+TRCCIDCVR5(id:0x18A,size:64)=0x0000000000000000
+TRCCIDCVR6(id:0x18C,size:64)=0x0000000000000000
+TRCCIDCVR7(id:0x18E,size:64)=0x0000000000000000
+TRCVMIDCVR0(id:0x190,size:64)=0x0000000000000000
+TRCVMIDCVR1(id:0x192,size:64)=0x0000000000000000
+TRCVMIDCVR2(id:0x194,size:64)=0x0000000000000000
+TRCVMIDCVR3(id:0x196,size:64)=0x0000000000000000
+TRCVMIDCVR4(id:0x198,size:64)=0x0000000000000000
+TRCVMIDCVR5(id:0x19A,size:64)=0x0000000000000000
+TRCVMIDCVR6(id:0x19C,size:64)=0x0000000000000000
+TRCVMIDCVR7(id:0x19E,size:64)=0x0000000000000000
+TRCCIDCCTLR0(id:0x1A0)=0x00000000
+TRCCIDCCTLR1(id:0x1A1)=0x00000000
+TRCVMIDCCTLR0(id:0x1A2)=0x00000000
+TRCVMIDCCTLR1(id:0x1A3)=0x00000000
+TRCAUTHSTATUS(id:0x3EE)=0x000000CC
+
diff --git a/decoder/tests/snapshots/a55-test-tpiu/snapshot.ini b/decoder/tests/snapshots/a55-test-tpiu/snapshot.ini
new file mode 100644
index 0000000..f5d6df7
--- /dev/null
+++ b/decoder/tests/snapshots/a55-test-tpiu/snapshot.ini
@@ -0,0 +1,12 @@
+; DS-5 snapshot
+
+[snapshot]
+version=1.0
+
+[device_list]
+device1=device1.ini
+device2=device2.ini
+
+[trace]
+metadata=trace.ini
+
diff --git a/decoder/tests/snapshots/a55-test-tpiu/trace.ini b/decoder/tests/snapshots/a55-test-tpiu/trace.ini
new file mode 100644
index 0000000..fec7621
--- /dev/null
+++ b/decoder/tests/snapshots/a55-test-tpiu/trace.ini
@@ -0,0 +1,16 @@
+; DS-5 trace metadata
+
+[trace_buffers]
+buffers=buffer0
+
+[buffer0]
+name=DSTREAM_0
+file=DSTREAM_0.bin
+format=dstream_coresight
+
+[core_trace_sources]
+Cortex-A55_0=CSETM_0
+
+[source_buffers]
+CSETM_0=DSTREAM_0
+
diff --git a/decoder/tests/source/trc_pkt_lister.cpp b/decoder/tests/source/trc_pkt_lister.cpp
index 4a09e55..50260a5 100644
--- a/decoder/tests/source/trc_pkt_lister.cpp
+++ b/decoder/tests/source/trc_pkt_lister.cpp
@@ -70,6 +70,9 @@ static bool decode = false;
static bool no_undecoded_packets = false;
static bool pkt_mon = false;
static int test_waits = 0;
+static bool dstream_format = false;
+static bool tpiu_format = false;
+static bool has_hsync = false;
int main(int argc, char* argv[])
{
@@ -182,6 +185,9 @@ void print_help()
oss << "\nDecode:\n\n";
oss << "-id <n> Set an ID to list (may be used multiple times) - default if no id set is for all IDs to be printed\n";
oss << "-src_name <name> List packets from a given snapshot source name (defaults to first source found)\n";
+ oss << "-dstream_format Input is DSTREAM framed.";
+ oss << "-tpiu Input from TPIU - sync by FSYNC.";
+ oss << "-tpiu_hsync Input from TPIU - sync by FSYNC and HSYNC.";
oss << "-decode Full decode of the packets from the trace snapshot (default is to list undecoded packets only\n";
oss << "-decode_only Does not list the undecoded packets, just the trace decode.\n";
oss << "-o_raw_packed Output raw packed trace frames\n";
@@ -401,6 +407,19 @@ bool process_cmd_line_opts(int argc, char* argv[])
optIdx++;
}
}
+ else if (strcmp(argv[optIdx], "-dstream_format") == 0)
+ {
+ dstream_format = true;
+ }
+ else if (strcmp(argv[optIdx], "-tpiu") == 0)
+ {
+ tpiu_format = true;
+ }
+ else if (strcmp(argv[optIdx], "-tpiu_hsync") == 0)
+ {
+ has_hsync = true;
+ tpiu_format = true;
+ }
else
{
std::ostringstream errstr;
@@ -488,9 +507,19 @@ void ConfigureFrameDeMux(DecodeTree *dcd_tree, RawFramePrinter **framePrinter)
if(pDeformatter != 0)
{
// configuration - memory alinged buffer
- uint32_t configFlags = OCSD_DFRMTR_FRAME_MEM_ALIGN;
+ uint32_t configFlags = pDeformatter->getConfigFlags();
+
+ // check for TPIU FSYNC & HSYNC
+ if (tpiu_format) configFlags |= OCSD_DFRMTR_HAS_FSYNCS;
+ if (has_hsync) configFlags |= OCSD_DFRMTR_HAS_HSYNCS;
+ // if FSYNC (& HSYNC) - cannot be mem frame aligned.
+ if (tpiu_format) configFlags &= ~OCSD_DFRMTR_FRAME_MEM_ALIGN;
- pDeformatter->Configure(configFlags);
+ if (!configFlags)
+ {
+ configFlags = OCSD_DFRMTR_FRAME_MEM_ALIGN;
+ pDeformatter->Configure(configFlags);
+ }
if (outRawPacked || outRawUnpacked)
{
if (outRawPacked) configFlags |= OCSD_DFRMTR_PACKED_RAW_OUT;
@@ -554,7 +583,12 @@ void ListTracePackets(ocsdDefaultErrorLogger &err_logger, SnapShotReader &reader
// process the file, a buffer load at a time
while(!in.eof() && !OCSD_DATA_RESP_IS_FATAL(dataPathResp))
{
- in.read((char *)&trace_buffer[0],bufferSize); // load a block of data into the buffer
+ if (dstream_format)
+ {
+ in.read((char *)&trace_buffer[0], 512 - 8);
+ }
+ else
+ in.read((char *)&trace_buffer[0],bufferSize); // load a block of data into the buffer
std::streamsize nBuffRead = in.gcount(); // get count of data loaded.
std::streamsize nBuffProcessed = 0; // amount processed in this buffer.
@@ -597,6 +631,22 @@ void ListTracePackets(ocsdDefaultErrorLogger &err_logger, SnapShotReader &reader
dataPathResp = dcd_tree->TraceDataIn(OCSD_OP_FLUSH,0,0,0,0);
}
}
+
+ /* dump dstream footers */
+ if (dstream_format) {
+ in.read((char *)&trace_buffer[0], 8);
+ if (outRawPacked)
+ {
+ std::ostringstream oss;
+ oss << "DSTREAM footer [";
+ for (int i = 0; i < 8; i++)
+ {
+ oss << "0x" << std::hex << (int)trace_buffer[i] << " ";
+ }
+ oss << "]\n";
+ logger.LogMsg(oss.str());
+ }
+ }
}
// fatal error - no futher processing