#ifndef __SOUND_SOC_SOF_IPC4_TELEMETRY_H
#define __SOUND_SOC_SOF_IPC4_TELEMETRY_H
enum sof_ipc4_coredump_tgt_code {
COREDUMP_TGT_UNKNOWN = 0,
COREDUMP_TGT_X86,
COREDUMP_TGT_X86_64,
COREDUMP_TGT_ARM_CORTEX_M,
COREDUMP_TGT_RISC_V,
COREDUMP_TGT_XTENSA,
};
#define COREDUMP_ARCH_HDR_ID 'A'
#define COREDUMP_HDR_ID0 'Z'
#define COREDUMP_HDR_ID1 'E'
#define XTENSA_BLOCK_HDR_VER 2
#define XTENSA_CORE_DUMP_SEPARATOR 0x0DEC0DEB
#define XTENSA_CORE_AR_REGS_COUNT 16
#define XTENSA_SOC_INTEL_ADSP 3
#define XTENSA_TOOL_CHAIN_ZEPHYR 1
#define XTENSA_TOOL_CHAIN_XCC 2
struct sof_ipc4_coredump_hdr {
char id[2];
u16 hdr_version;
u16 tgt_code;
u8 ptr_size_bits;
u8 flag;
u32 reason;
} __packed;
struct sof_ipc4_coredump_arch_hdr {
char id;
u16 hdr_version;
u16 num_bytes;
} __packed;
struct sof_ipc4_telemetry_slot_data {
u32 separator;
struct sof_ipc4_coredump_hdr hdr;
struct sof_ipc4_coredump_arch_hdr arch_hdr;
u32 arch_data[];
} __packed;
void sof_ipc4_create_exception_debugfs_node(struct snd_sof_dev *sdev);
#endif