From 7194029785b5cd087f594f957556860ce3bb80f7 Mon Sep 17 00:00:00 2001 From: Mike Leach Date: Thu, 27 Jun 2019 11:08:24 +0100 Subject: opencsd: Frame deformatter - handle TPIU full frame syncs Add and update code to handle full frame syncs present in TPIU captured trace. Add snapshot options in test program to specify TPIU input. Signed-off-by: Mike Leach --- .../snapshot_parser_lib/source/ss_to_dcdtree.cpp | 6 ++- decoder/tests/source/trc_pkt_lister.cpp | 56 ++++++++++++++++++++-- 2 files changed, 58 insertions(+), 4 deletions(-) (limited to 'decoder/tests') 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/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 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 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 -- cgit v1.2.3 From 06a7a3356d4b28e4ecd3dbf3cf2bfec7c51fc594 Mon Sep 17 00:00:00 2001 From: Mike Leach Date: Mon, 1 Jul 2019 08:10:21 +0100 Subject: opencsd: snapshots: Test snapshot with trace captured via TPIU DSTREAM trace capture format (last 8 bytes of 512 block not trace) TPIU capture format - has FSYNCS to test frame deformatter feature. Signed-off-by: Mike Leach --- decoder/tests/run_pkt_decode_tests.bash | 5 + .../tests/snapshots/a55-test-tpiu/DSTREAM_0.bin | Bin 0 -> 49152 bytes decoder/tests/snapshots/a55-test-tpiu/README.txt | 1 + decoder/tests/snapshots/a55-test-tpiu/contents.ini | 6 + decoder/tests/snapshots/a55-test-tpiu/device1.ini | 451 +++++++++++++++++++++ decoder/tests/snapshots/a55-test-tpiu/device2.ini | 189 +++++++++ decoder/tests/snapshots/a55-test-tpiu/snapshot.ini | 12 + decoder/tests/snapshots/a55-test-tpiu/trace.ini | 16 + 8 files changed, 680 insertions(+) create mode 100644 decoder/tests/snapshots/a55-test-tpiu/DSTREAM_0.bin create mode 100644 decoder/tests/snapshots/a55-test-tpiu/README.txt create mode 100644 decoder/tests/snapshots/a55-test-tpiu/contents.ini create mode 100644 decoder/tests/snapshots/a55-test-tpiu/device1.ini create mode 100644 decoder/tests/snapshots/a55-test-tpiu/device2.ini create mode 100644 decoder/tests/snapshots/a55-test-tpiu/snapshot.ini create mode 100644 decoder/tests/snapshots/a55-test-tpiu/trace.ini (limited to 'decoder/tests') 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/snapshots/a55-test-tpiu/DSTREAM_0.bin b/decoder/tests/snapshots/a55-test-tpiu/DSTREAM_0.bin new file mode 100644 index 0000000..33c4b1a Binary files /dev/null and b/decoder/tests/snapshots/a55-test-tpiu/DSTREAM_0.bin 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 + -- cgit v1.2.3