aboutsummaryrefslogtreecommitdiff
path: root/decoder/include/opencsd/etmv4/trc_cmp_cfg_etmv4.h
diff options
context:
space:
mode:
Diffstat (limited to 'decoder/include/opencsd/etmv4/trc_cmp_cfg_etmv4.h')
-rw-r--r--decoder/include/opencsd/etmv4/trc_cmp_cfg_etmv4.h27
1 files changed, 27 insertions, 0 deletions
diff --git a/decoder/include/opencsd/etmv4/trc_cmp_cfg_etmv4.h b/decoder/include/opencsd/etmv4/trc_cmp_cfg_etmv4.h
index 1d72d97afe59..223dbda44510 100644
--- a/decoder/include/opencsd/etmv4/trc_cmp_cfg_etmv4.h
+++ b/decoder/include/opencsd/etmv4/trc_cmp_cfg_etmv4.h
@@ -81,6 +81,7 @@ public:
const bool hasCycleCountI() const;
const bool hasRetStack() const;
const uint8_t numEvents() const;
+ const bool eteHasTSMarker() const;
typedef enum _condType {
COND_PASS_FAIL,
@@ -104,6 +105,7 @@ public:
const uint32_t TimeStampSize() const;
const bool commitOpt1() const;
+ const bool commTransP0() const;
/* idr 1 */
const uint8_t MajVersion() const;
@@ -151,6 +153,7 @@ public:
const bool enabledCCI() const;
const bool enabledCID() const;
const bool enabledVMID() const;
+ const bool enabledVMIDOpt() const;
typedef enum {
COND_TR_DIS,
@@ -253,6 +256,11 @@ inline const bool EtmV4Config::hasTrcExcpData() const
return (bool)((m_cfg.reg_idr0 & 0x20000) == 0x20000);
}
+inline const bool EtmV4Config::eteHasTSMarker() const
+{
+ return (FullVersion() >= 0x51) && ((m_cfg.reg_idr0 & 0x800000) == 0x800000);
+}
+
inline const uint32_t EtmV4Config::TimeStampSize() const
{
uint32_t tsSizeF = (m_cfg.reg_idr0 >> 24) & 0x1F;
@@ -268,6 +276,11 @@ inline const bool EtmV4Config::commitOpt1() const
return (bool)((m_cfg.reg_idr0 & 0x20000000) == 0x20000000) && hasCycleCountI();
}
+inline const bool EtmV4Config::commTransP0() const
+{
+ return (bool)((m_cfg.reg_idr0 & 0x40000000) == 0x0);
+}
+
/* idr 1 */
inline const uint8_t EtmV4Config::MajVersion() const
{
@@ -424,6 +437,20 @@ inline const bool EtmV4Config::enabledVMID() const
return ((m_cfg.reg_configr & (0x1 << 7)) != 0);
}
+inline const bool EtmV4Config::enabledVMIDOpt() const
+{
+ bool vmidOptVal = ((m_cfg.reg_configr & (0x1 << 15)) != 0);
+ /* TRIDR2.VMIDOPT[30:29] determine value used */
+ if (!vmidOpt()) { /* [29] = 1'b0 */
+ vmidOptVal = false; /* res0 */
+ if (FullVersion() >= 0x45) {
+ /* umless version > 4.5 in which case [30] determines res val */
+ vmidOptVal = ((m_cfg.reg_idr2 & (0x1 << 30)) != 0);
+ }
+ }
+ return vmidOptVal;
+}
+
inline const EtmV4Config::CondITrace_t EtmV4Config::enabledCondITrace()
{
if(!m_condTraceCalc)