brintos

brintos / linux-shallow public Read only

0
0
Text · 1.7 KiB · 9298f8a Raw
74 lines · c
1/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-3-Clause) */2/*3 * This file is provided under a dual BSD/GPLv2 license.  When using or4 * redistributing this file, you may do so under either license.5 *6 * Copyright(c) 2023 Intel Corporation7 */8 9#ifndef __SOUND_SOC_SOF_IPC4_TELEMETRY_H10#define __SOUND_SOC_SOF_IPC4_TELEMETRY_H11 12/* Target code */13enum sof_ipc4_coredump_tgt_code {14	COREDUMP_TGT_UNKNOWN = 0,15	COREDUMP_TGT_X86,16	COREDUMP_TGT_X86_64,17	COREDUMP_TGT_ARM_CORTEX_M,18	COREDUMP_TGT_RISC_V,19	COREDUMP_TGT_XTENSA,20};21 22#define COREDUMP_ARCH_HDR_ID 'A'23#define COREDUMP_HDR_ID0 'Z'24#define COREDUMP_HDR_ID1 'E'25 26#define XTENSA_BLOCK_HDR_VER		227#define XTENSA_CORE_DUMP_SEPARATOR	0x0DEC0DEB28#define XTENSA_CORE_AR_REGS_COUNT	1629#define XTENSA_SOC_INTEL_ADSP		330#define XTENSA_TOOL_CHAIN_ZEPHYR	131#define XTENSA_TOOL_CHAIN_XCC		232 33/* Coredump header */34struct sof_ipc4_coredump_hdr {35	/* 'Z', 'E' as identifier of file */36	char id[2];37 38	/* Identify the version of the header */39	u16 hdr_version;40 41	/* Indicate which target (e.g. architecture or SoC) */42	u16 tgt_code;43 44	/* Size of uintptr_t in power of 2. (e.g. 5 for 32-bit, 6 for 64-bit) */45	u8 ptr_size_bits;46 47	u8 flag;48 49	/* Reason for the fatal error */50	u32 reason;51} __packed;52 53/* Architecture-specific block header */54struct sof_ipc4_coredump_arch_hdr {55	/* COREDUMP_ARCH_HDR_ID to indicate this is a architecture-specific block */56	char id;57 58	/* Identify the version of this block */59	u16 hdr_version;60 61	/* Number of bytes following the header */62	u16 num_bytes;63} __packed;64 65struct sof_ipc4_telemetry_slot_data {66	u32 separator;67	struct sof_ipc4_coredump_hdr hdr;68	struct sof_ipc4_coredump_arch_hdr arch_hdr;69	u32 arch_data[];70} __packed;71 72void sof_ipc4_create_exception_debugfs_node(struct snd_sof_dev *sdev);73#endif74