€•»)Œsphinx.addnodes”Œdocument”“”)”}”(Œ rawsource”Œ”Œchildren”]”(Œ translations”Œ LanguagesNode”“”)”}”(hhh]”(hŒ pending_xref”“”)”}”(hhh]”Œdocutils.nodes”ŒText”“”ŒChinese (Simplified)”…””}”Œparent”hsbaŒ attributes”}”(Œids”]”Œclasses”]”Œnames”]”Œdupnames”]”Œbackrefs”]”Œ refdomain”Œstd”Œreftype”Œdoc”Œ reftarget”Œ2/translations/zh_CN/trace/coresight/coresight-tpda”Œmodname”NŒ classname”NŒ refexplicit”ˆuŒtagname”hhh ubh)”}”(hhh]”hŒChinese (Traditional)”…””}”hh2sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ2/translations/zh_TW/trace/coresight/coresight-tpda”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒItalian”…””}”hhFsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ2/translations/it_IT/trace/coresight/coresight-tpda”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒJapanese”…””}”hhZsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ2/translations/ja_JP/trace/coresight/coresight-tpda”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒKorean”…””}”hhnsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ2/translations/ko_KR/trace/coresight/coresight-tpda”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒSpanish”…””}”hh‚sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ2/translations/sp_SP/trace/coresight/coresight-tpda”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubeh}”(h]”h ]”h"]”h$]”h&]”Œcurrent_language”ŒEnglish”uh1h hhŒ _document”hŒsource”NŒline”NubhŒcomment”“”)”}”(hŒ SPDX-License-Identifier: GPL-2.0”h]”hŒ SPDX-License-Identifier: GPL-2.0”…””}”hh£sbah}”(h]”h ]”h"]”h$]”h&]”Œ xml:space”Œpreserve”uh1h¡hhhžhhŸŒL/var/lib/git/docbuild/linux/Documentation/trace/coresight/coresight-tpda.rst”h KubhŒsection”“”)”}”(hhh]”(hŒtitle”“”)”}”(hŒAThe trace performance monitoring and diagnostics aggregator(TPDA)”h]”hŒAThe trace performance monitoring and diagnostics aggregator(TPDA)”…””}”(hh»hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h¹hh¶hžhhŸh³h KubhŒ block_quote”“”)”}”(hŒJ:Author: Jinlong Mao :Date: January 2023 ”h]”hŒ field_list”“”)”}”(hhh]”(hŒfield”“”)”}”(hhh]”(hŒ field_name”“”)”}”(hŒAuthor”h]”hŒAuthor”…””}”(hhÛhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÙhhÖhŸh³h KubhŒ field_body”“”)”}”(hŒ&Jinlong Mao ”h]”hŒ paragraph”“”)”}”(hhíh]”(hŒ Jinlong Mao <”…””}”(hhñhžhhŸNh NubhŒ reference”“”)”}”(hŒquic_jinlmao@quicinc.com”h]”hŒquic_jinlmao@quicinc.com”…””}”(hhúhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”Œrefuri”Œmailto:quic_jinlmao@quicinc.com”uh1høhhñubhŒ>”…””}”(hhñhžhhŸNh Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hïhŸh³h Khhëubah}”(h]”h ]”h"]”h$]”h&]”uh1héhhÖubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÔhŸh³h KhhÑubhÕ)”}”(hhh]”(hÚ)”}”(hŒDate”h]”hŒDate”…””}”(hj#hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÙhj hŸh³h Kubhê)”}”(hŒ January 2023 ”h]”hð)”}”(hŒ January 2023”h]”hŒ January 2023”…””}”(hj5hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hïhŸh³h Khj1ubah}”(h]”h ]”h"]”h$]”h&]”uh1héhj ubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÔhŸh³h KhhÑubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÏhhËubah}”(h]”h ]”h"]”h$]”h&]”uh1hÉhŸh³h Khh¶hžhubhµ)”}”(hhh]”(hº)”}”(hŒHardware Description”h]”hŒHardware Description”…””}”(hj^hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h¹hj[hžhhŸh³h K ubhð)”}”(hX5TPDA - The trace performance monitoring and diagnostics aggregator or TPDA in short serves as an arbitration and packetization engine for the performance monitoring and diagnostics network specification. The primary use case of the TPDA is to provide packetization, funneling and timestamping of Monitor data.”h]”hX5TPDA - The trace performance monitoring and diagnostics aggregator or TPDA in short serves as an arbitration and packetization engine for the performance monitoring and diagnostics network specification. The primary use case of the TPDA is to provide packetization, funneling and timestamping of Monitor data.”…””}”(hjlhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hïhŸh³h K hj[hžhubeh}”(h]”Œhardware-description”ah ]”h"]”Œhardware description”ah$]”h&]”uh1h´hh¶hžhhŸh³h K ubhµ)”}”(hhh]”(hº)”}”(hŒSysfs files and directories”h]”hŒSysfs files and directories”…””}”(hj…hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h¹hj‚hžhhŸh³h Kubhð)”}”(hŒ,Root: ``/sys/bus/coresight/devices/tpda``”h]”(hŒRoot: ”…””}”(hj“hžhhŸNh NubhŒliteral”“”)”}”(hŒ&``/sys/bus/coresight/devices/tpda``”h]”hŒ"/sys/bus/coresight/devices/tpda”…””}”(hjhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hj“ubeh}”(h]”h ]”h"]”h$]”h&]”uh1hïhŸh³h Khj‚hžhubeh}”(h]”Œsysfs-files-and-directories”ah ]”h"]”Œsysfs files and directories”ah$]”h&]”uh1h´hh¶hžhhŸh³h Kubhµ)”}”(hhh]”(hº)”}”(hŒConfig details”h]”hŒConfig details”…””}”(hj¼hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h¹hj¹hžhhŸh³h Kubhð)”}”(hX The tpdm and tpda nodes should be observed at the coresight path "/sys/bus/coresight/devices". e.g. /sys/bus/coresight/devices # ls -l | grep tpd tpda0 -> ../../../devices/platform/soc@0/6004000.tpda/tpda0 tpdm0 -> ../../../devices/platform/soc@0/6c08000.mm.tpdm/tpdm0”h]”(hŒ¨The tpdm and tpda nodes should be observed at the coresight path “/sys/bus/coresight/devicesâ€. e.g. /sys/bus/coresight/devices # ls -l | grep tpd tpda0 -> ../../../”…””}”(hjÊhžhhŸNh Nubhù)”}”(hŒ)devices/platform/soc@0/6004000.tpda/tpda0”h]”hŒ)devices/platform/soc@0/6004000.tpda/tpda0”…””}”(hjÒhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”Œrefuri”Œ0mailto:devices/platform/soc@0/6004000.tpda/tpda0”uh1høhjÊubhŒ tpdm0 -> ../../../”…””}”(hjÊhžhhŸNh Nubhù)”}”(hŒ,devices/platform/soc@0/6c08000.mm.tpdm/tpdm0”h]”hŒ,devices/platform/soc@0/6c08000.mm.tpdm/tpdm0”…””}”(hjæhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”Œrefuri”Œ3mailto:devices/platform/soc@0/6c08000.mm.tpdm/tpdm0”uh1høhjÊubeh}”(h]”h ]”h"]”h$]”h&]”uh1hïhŸh³h Khj¹hžhubhð)”}”(hŒ¶We can use the commands are similar to the below to validate TPDMs. Enable coresight sink first. The port of tpda which is connected to the tpdm will be enabled after commands below.”h]”hŒ¶We can use the commands are similar to the below to validate TPDMs. Enable coresight sink first. The port of tpda which is connected to the tpdm will be enabled after commands below.”…””}”(hjühžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hïhŸh³h K"hj¹hžhubhð)”}”(hŒæecho 1 > /sys/bus/coresight/devices/tmc_etf0/enable_sink echo 1 > /sys/bus/coresight/devices/tpdm0/enable_source echo 1 > /sys/bus/coresight/devices/tpdm0/integration_test echo 2 > /sys/bus/coresight/devices/tpdm0/integration_test”h]”hŒæecho 1 > /sys/bus/coresight/devices/tmc_etf0/enable_sink echo 1 > /sys/bus/coresight/devices/tpdm0/enable_source echo 1 > /sys/bus/coresight/devices/tpdm0/integration_test echo 2 > /sys/bus/coresight/devices/tpdm0/integration_test”…””}”(hj hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hïhŸh³h K&hj¹hžhubhð)”}”(hŒàThe test data will be collected in the coresight sink which is enabled. If rwp register of the sink is keeping updating when do integration_test (by cat tmc_etf0/mgmt/rwp), it means there is data generated from TPDM to sink.”h]”hŒàThe test data will be collected in the coresight sink which is enabled. If rwp register of the sink is keeping updating when do integration_test (by cat tmc_etf0/mgmt/rwp), it means there is data generated from TPDM to sink.”…””}”(hjhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hïhŸh³h K+hj¹hžhubhð)”}”(hXThere must be a tpda between tpdm and the sink. When there are some other trace event hw components in the same HW block with tpdm, tpdm and these hw components will connect to the coresight funnel. When there is only tpdm trace hw in the HW block, tpdm will connect to tpda directly.”h]”hXThere must be a tpda between tpdm and the sink. When there are some other trace event hw components in the same HW block with tpdm, tpdm and these hw components will connect to the coresight funnel. When there is only tpdm trace hw in the HW block, tpdm will connect to tpda directly.”…””}”(hj&hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hïhŸh³h K0hj¹hžhubeh}”(h]”Œconfig-details”ah ]”h"]”Œconfig details”ah$]”h&]”uh1h´hh¶hžhhŸh³h Kubeh}”(h]”Œ@the-trace-performance-monitoring-and-diagnostics-aggregator-tpda”ah ]”h"]”ŒAthe trace performance monitoring and diagnostics aggregator(tpda)”ah$]”h&]”uh1h´hhhžhhŸh³h Kubeh}”(h]”h ]”h"]”h$]”h&]”Œsource”h³uh1hŒcurrent_source”NŒ current_line”NŒsettings”Œdocutils.frontend”ŒValues”“”)”}”(h¹NŒ generator”NŒ datestamp”NŒ source_link”NŒ source_url”NŒ toc_backlinks”Œentry”Œfootnote_backlinks”KŒ sectnum_xform”KŒstrip_comments”NŒstrip_elements_with_classes”NŒ strip_classes”NŒ report_level”KŒ halt_level”KŒexit_status_level”KŒdebug”NŒwarning_stream”NŒ traceback”ˆŒinput_encoding”Œ utf-8-sig”Œinput_encoding_error_handler”Œstrict”Œoutput_encoding”Œutf-8”Œoutput_encoding_error_handler”jgŒerror_encoding”Œutf-8”Œerror_encoding_error_handler”Œbackslashreplace”Œ language_code”Œen”Œrecord_dependencies”NŒconfig”NŒ id_prefix”hŒauto_id_prefix”Œid”Œ dump_settings”NŒdump_internals”NŒdump_transforms”NŒdump_pseudo_xml”NŒexpose_internals”NŒstrict_visitor”NŒ_disable_config”NŒ_source”h³Œ _destination”NŒ _config_files”]”Œ7/var/lib/git/docbuild/linux/Documentation/docutils.conf”aŒfile_insertion_enabled”ˆŒ raw_enabled”KŒline_length_limit”M'Œpep_references”NŒ pep_base_url”Œhttps://peps.python.org/”Œpep_file_url_template”Œpep-%04d”Œrfc_references”NŒ rfc_base_url”Œ&https://datatracker.ietf.org/doc/html/”Œ tab_width”KŒtrim_footnote_reference_space”‰Œsyntax_highlight”Œlong”Œ smart_quotes”ˆŒsmartquotes_locales”]”Œcharacter_level_inline_markup”‰Œdoctitle_xform”‰Œ docinfo_xform”KŒsectsubtitle_xform”‰Œ image_loading”Œlink”Œembed_stylesheet”‰Œcloak_email_addresses”ˆŒsection_self_link”‰Œenv”NubŒreporter”NŒindirect_targets”]”Œsubstitution_defs”}”Œsubstitution_names”}”Œrefnames”}”Œrefids”}”Œnameids”}”(jAj>jj|j¶j³j9j6uŒ nametypes”}”(jA‰j‰j¶‰j9‰uh}”(j>h¶j|j[j³j‚j6j¹uŒ footnote_refs”}”Œ citation_refs”}”Œ autofootnotes”]”Œautofootnote_refs”]”Œsymbol_footnotes”]”Œsymbol_footnote_refs”]”Œ footnotes”]”Œ citations”]”Œautofootnote_start”KŒsymbol_footnote_start”KŒ id_counter”Œ collections”ŒCounter”“”}”…”R”Œparse_messages”]”Œtransform_messages”]”Œ transformer”NŒ include_log”]”Œ decoration”Nhžhub.