STRUCT ETMV4_CONFIG(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… NAME πŸ’…

okay bestie, welcome to the Kernel API Manual page for struct etmv4_config(9). This struct is literally the configuration information related to an ETMv4 β€” no cap, that's the whole name. πŸ’–


✨ SYNOPSIS ✨

struct etmv4_config {
    u64 mode;
    u32 pe_sel;
    u32 cfg;
    u32 eventctrl0;
    u32 eventctrl1;
    u32 stall_ctrl;
    u32 ts_ctrl;
    u32 ccctlr;
    u32 bb_ctrl;
    u32 vinst_ctrl;
    u32 viiectlr;
    u32 vissctlr;
    u32 vipcssctlr;
    u8 seq_idx;
    u8 syncfreq;
    u32 seq_ctrl[ETM_MAX_SEQ_TRANSITIONS];
    u32 seq_rst;
    u32 seq_state;
    u8 cntr_idx;
    u32 cntrldvr[ETMv4_MAX_CNTR];
    u32 cntr_ctrl[ETMv4_MAX_CNTR];
    u32 cntr_val[ETMv4_MAX_CNTR];
    u8 res_idx;
    u32 res_ctrl[ETM_MAX_RES_SEL];
    u8 ss_idx;
    u32 ss_ctrl[ETM_MAX_SS_CMP];
    u32 ss_status[ETM_MAX_SS_CMP];
    u32 ss_pe_cmp[ETM_MAX_SS_CMP];
    u8 addr_idx;
    u64 addr_val[ETM_MAX_SINGLE_ADDR_CMP];
    u64 addr_acc[ETM_MAX_SINGLE_ADDR_CMP];
    u8 addr_type[ETM_MAX_SINGLE_ADDR_CMP];
    u8 ctxid_idx;
    u64 ctxid_pid[ETMv4_MAX_CTXID_CMP];
    u32 ctxid_mask0;
    u32 ctxid_mask1;
    u8 vmid_idx;
    u64 vmid_val[ETM_MAX_VMID_CMP];
    u32 vmid_mask0;
    u32 vmid_mask1;
    u32 ext_inp;
    u8 s_ex_level;
};

πŸŽ€ Members πŸŽ€

okay bestie, here's the member rundown β€” every field this page lists gets its moment in the spotlight. 🌟

  • mode β€” controls the various modes this ETM supports. vibe check for the ETM's mode menu. πŸ’…
  • pe_sel β€” controls which PE gets traced. pick your main character PE. πŸ‘‘
  • cfg β€” controls the tracing options. all the config knobs live here. βš™οΈ
  • eventctrl0 β€” controls the tracing of arbitrary events. yes, arbitrary. we love a flexible event moment. πŸ”₯
  • eventctrl1 β€” controls the behavior of the events that event_ctrl0 selects β€” and yes, the original says event_ctrl0 right there. ikyk. πŸ‘€
  • ts_ctrl β€” controls the insertion of global timestamps in the trace streams. timestamp lore. ⏰
  • ccctlr β€” sets the threshold value for cycle counting. threshold queen. πŸŽ€
  • vinst_ctrl β€” controls instruction trace filtering. filtering, but make it instruction trace. ✨
  • viiectlr β€” set or read the address range comparators. read/write energy. πŸ“–
  • vissctlr β€” set, or read, the single address comparators that control the ViewInst start-stop logic. very specific, very iconic. πŸ¦‹
  • vipcssctlr β€” set, or read, which PE comparator inputs can control the ViewInst start-stop logic. comparator input selection said hi. πŸ‘‹
  • seq_idx β€” sequencer index selector. the original says Sequencor, so we're keeping that typo-adjacent detail alive. periodt. πŸ’€
  • syncfreq β€” controls how often trace synchronization requests occur. also, the TRCCCCTLR register is mentioned right there in the original, so here it is. 🫢
  • seq_ctrl β€” control for the sequencer state transition control register. transition control, no cap. πŸ”
  • seq_rst β€” moves the sequencer to state 0 when a programmed event occurs. state 0 speedrun. 🏁
  • seq_state β€” set or read the sequencer state. state check. πŸ“
  • cntr_idx β€” counter index selector. the original spells it seletor, iconic, but it's still the counter index selector. πŸ™ˆ
  • cntrldvr β€” sets or returns the reload count value for a counter. reload era. πŸ”„
  • cntr_ctrl β€” controls the operation of a counter. counter behavior button. πŸŽ›οΈ
  • cntr_val β€” sets or returns the value for a counter. value moment. πŸ”’
  • res_idx β€” resource index selector. resource picker. 🧺
  • res_ctrl β€” controls the selection of the resources in the trace unit. trace unit resources, selected. βœ…
  • ss_idx β€” single-shot index selector. single-shot picker. 🎯
  • ss_ctrl β€” controls the corresponding single-shot comparator resource. comparator resource control. πŸ•ΉοΈ
  • ss_status β€” the status of the corresponding single-shot comparator. status update, bestie. πŸ“’
  • ss_pe_cmp β€” selects the PE comparator inputs for Single-shot control. PE comparator inputs, chosen. 🧚
  • addr_idx β€” address comparator index selector. address comparator picker. 🏠
  • addr_val β€” value for address comparator. address comparator value. πŸ’Œ
  • addr_acc β€” address comparator access type. access type tea. 🍡
  • addr_type β€” current status of the comparator register. current status, very now. ⭐
  • ctxid_idx β€” context ID index selector. context ID picker. πŸͺͺ
  • ctxid_pid β€” value of the context ID comparator. context ID comparator value. πŸ’–
  • ctxid_mask0 β€” context ID comparator mask for comparator 0-3. mask for the 0-3 squad. 🌈
  • ctxid_mask1 β€” context ID comparator mask for comparator 4-7. mask for the 4-7 squad. 🌸
  • vmid_idx β€” VM ID index selector. VM ID picker. 🧭
  • vmid_val β€” value of the VM ID comparator. VM ID comparator value. πŸ’œ
  • vmid_mask0 β€” VM ID comparator mask for comparator 0-3. 0-3 mask moment. πŸŽ€
  • vmid_mask1 β€” VM ID comparator mask for comparator 4-7. 4-7 mask moment. πŸ¦‹
  • ext_inp β€” external input selection. external input, selected. πŸ”Œ
  • s_ex_level β€” Secure ELs where tracing is supported. secure EL trace support, noted. πŸ›‘οΈ

πŸ’– SEE ALSO πŸ’–

  • Kernel file ./drivers/hwtracing/coresight/coresight-etm4x.h β€” that's the spot, bestie. go look. πŸ‘€βœ¨

signing off from ./drivers/hwtracing/coresight β€” that's the source/version zone β€” dated October 2026, for struct etmv4_config(9). mwah πŸ’‹πŸ’– periodt.

πŸ“¦ where this page comes from