From 59be197354496b87869792bfa15477e8798462da Mon Sep 17 00:00:00 2001 From: Pierre-Louis Bossart Date: Mon, 3 Jun 2019 11:18:13 -0500 Subject: ASoC: SOF: uapi: mirror firmware changes We missed these two definitions for GDB support and component notifications, they are defined for the SOF firmware. Since they are not used by the kernel so far, we can still add them without any ABI change. Signed-off-by: Pierre-Louis Bossart Signed-off-by: Mark Brown --- include/sound/sof/header.h | 2 ++ 1 file changed, 2 insertions(+) (limited to 'include') diff --git a/include/sound/sof/header.h b/include/sound/sof/header.h index ccb6a004b37b..0aeb2c8ad6fd 100644 --- a/include/sound/sof/header.h +++ b/include/sound/sof/header.h @@ -48,6 +48,7 @@ #define SOF_IPC_FW_READY SOF_GLB_TYPE(0x7U) #define SOF_IPC_GLB_DAI_MSG SOF_GLB_TYPE(0x8U) #define SOF_IPC_GLB_TRACE_MSG SOF_GLB_TYPE(0x9U) +#define SOF_IPC_GLB_GDB_DEBUG SOF_GLB_TYPE(0xAU) /* * DSP Command Message Types @@ -78,6 +79,7 @@ #define SOF_IPC_COMP_GET_VALUE SOF_CMD_TYPE(0x002) #define SOF_IPC_COMP_SET_DATA SOF_CMD_TYPE(0x003) #define SOF_IPC_COMP_GET_DATA SOF_CMD_TYPE(0x004) +#define SOF_IPC_COMP_NOTIFICATION SOF_CMD_TYPE(0x005) /* DAI messages */ #define SOF_IPC_DAI_CONFIG SOF_CMD_TYPE(0x001) -- cgit From ca6c6f1850498ff2325e6092e37644a7e6000af0 Mon Sep 17 00:00:00 2001 From: Pan Xiuli Date: Mon, 3 Jun 2019 11:18:14 -0500 Subject: ASoC: SOF: soundwire: add initial soundwire support Add soundwire dai type and update ABI version. Signed-off-by: Pan Xiuli Signed-off-by: Pierre-Louis Bossart Signed-off-by: Mark Brown --- include/sound/sof/dai.h | 1 + include/uapi/sound/sof/abi.h | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) (limited to 'include') diff --git a/include/sound/sof/dai.h b/include/sound/sof/dai.h index 3b67c93ff101..3d174e20aa53 100644 --- a/include/sound/sof/dai.h +++ b/include/sound/sof/dai.h @@ -49,6 +49,7 @@ enum sof_ipc_dai_type { SOF_DAI_INTEL_SSP, /**< Intel SSP */ SOF_DAI_INTEL_DMIC, /**< Intel DMIC */ SOF_DAI_INTEL_HDA, /**< Intel HD/A */ + SOF_DAI_INTEL_SOUNDWIRE, /**< Intel SoundWire */ }; /* general purpose DAI configuration */ diff --git a/include/uapi/sound/sof/abi.h b/include/uapi/sound/sof/abi.h index 37e0a90dc9e6..13a4eca04577 100644 --- a/include/uapi/sound/sof/abi.h +++ b/include/uapi/sound/sof/abi.h @@ -26,7 +26,7 @@ /* SOF ABI version major, minor and patch numbers */ #define SOF_ABI_MAJOR 3 -#define SOF_ABI_MINOR 4 +#define SOF_ABI_MINOR 5 #define SOF_ABI_PATCH 0 /* SOF ABI version number. Format within 32bit word is MMmmmppp */ -- cgit From f86588302360e01fd0e0a4fc1a8d1b05e85e5173 Mon Sep 17 00:00:00 2001 From: Pierre-Louis Bossart Date: Mon, 3 Jun 2019 11:18:16 -0500 Subject: ASoC: SOF: bump to ABI 3.6 We had a couple of misses with ABI changes, e.g. for Xtensa oops information and the integration of sound trigger, before we set-up a formal process to track evolutions. With this patch, the SOF kernel patches are officially aligned with the firmware 3.6 level. Changing this level has no impact on existing users and is fully backwards-compatible. Signed-off-by: Pierre-Louis Bossart Signed-off-by: Mark Brown --- include/uapi/sound/sof/abi.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'include') diff --git a/include/uapi/sound/sof/abi.h b/include/uapi/sound/sof/abi.h index 13a4eca04577..0868eb47acf7 100644 --- a/include/uapi/sound/sof/abi.h +++ b/include/uapi/sound/sof/abi.h @@ -26,7 +26,7 @@ /* SOF ABI version major, minor and patch numbers */ #define SOF_ABI_MAJOR 3 -#define SOF_ABI_MINOR 5 +#define SOF_ABI_MINOR 6 #define SOF_ABI_PATCH 0 /* SOF ABI version number. Format within 32bit word is MMmmmppp */ -- cgit From 347d1c4b0779cbeabaebb9b8e9967afe28db22f1 Mon Sep 17 00:00:00 2001 From: Slawomir Blauciak Date: Mon, 3 Jun 2019 11:20:32 -0500 Subject: ASoC: SOF: ipc: replace fw ready bitfield with explicit bit ordering Previously the structure used bitfields, which do not guarantee bit ordering. This change makes sure the order is clearly defined. It also renames and repurposes the field for general use. Signed-off-by: Slawomir Blauciak Signed-off-by: Pierre-Louis Bossart Signed-off-by: Mark Brown --- include/sound/sof/info.h | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) (limited to 'include') diff --git a/include/sound/sof/info.h b/include/sound/sof/info.h index 21dae04d8183..16528d2b4a50 100644 --- a/include/sound/sof/info.h +++ b/include/sound/sof/info.h @@ -18,6 +18,14 @@ #define SOF_IPC_MAX_ELEMS 16 +/* + * Firmware boot info flag bits (64-bit) + */ +#define SOF_IPC_INFO_BUILD BIT(0) +#define SOF_IPC_INFO_LOCKS BIT(1) +#define SOF_IPC_INFO_LOCKSV BIT(2) +#define SOF_IPC_INFO_GDB BIT(3) + /* extended data types that can be appended onto end of sof_ipc_fw_ready */ enum sof_ipc_ext_data { SOF_IPC_EXT_DMA_BUFFER = 0, @@ -49,16 +57,8 @@ struct sof_ipc_fw_ready { uint32_t hostbox_size; struct sof_ipc_fw_version version; - /* Miscellaneous debug flags showing build/debug features enabled */ - union { - uint64_t reserved; - struct { - uint64_t build:1; - uint64_t locks:1; - uint64_t locks_verbose:1; - uint64_t gdb:1; - } bits; - } debug; + /* Miscellaneous flags */ + uint64_t flags; /* reserved for future use */ uint32_t reserved[4]; -- cgit From 14104eb6a351a5bad21fdd2cf05ca46ad5e5beab Mon Sep 17 00:00:00 2001 From: Kai Vehmanen Date: Mon, 3 Jun 2019 11:18:15 -0500 Subject: ASoC: SOF: fix DSP oops definitions in FW ABI The definitions for DSP oops structures were not aligned correctly to current FW ABI version 3.6.0, leading to invalid data being printed out to debug logs. Fix the structs and update related platform code accordingly. Signed-off-by: Kai Vehmanen Signed-off-by: Pierre-Louis Bossart Signed-off-by: Mark Brown --- include/sound/sof/header.h | 21 +++++++++++++++++++++ include/sound/sof/xtensa.h | 9 +++++++-- 2 files changed, 28 insertions(+), 2 deletions(-) (limited to 'include') diff --git a/include/sound/sof/header.h b/include/sound/sof/header.h index 0aeb2c8ad6fd..1efcf7b18ec2 100644 --- a/include/sound/sof/header.h +++ b/include/sound/sof/header.h @@ -155,6 +155,27 @@ struct sof_ipc_compound_hdr { uint32_t count; /**< count of 0 means end of compound sequence */ } __packed; +/** + * OOPS header architecture specific data. + */ +struct sof_ipc_dsp_oops_arch_hdr { + uint32_t arch; /* Identifier of architecture */ + uint32_t totalsize; /* Total size of oops message */ +} __packed; + +/** + * OOPS header platform specific data. + */ +struct sof_ipc_dsp_oops_plat_hdr { + uint32_t configidhi; /* ConfigID hi 32bits */ + uint32_t configidlo; /* ConfigID lo 32bits */ + uint32_t numaregs; /* Special regs num */ + uint32_t stackoffset; /* Offset to stack pointer from beginning of + * oops message + */ + uint32_t stackptr; /* Stack ptr */ +} __packed; + /** @}*/ #endif diff --git a/include/sound/sof/xtensa.h b/include/sound/sof/xtensa.h index a7189984000d..d25c764b10e8 100644 --- a/include/sound/sof/xtensa.h +++ b/include/sound/sof/xtensa.h @@ -17,7 +17,8 @@ /* Xtensa Firmware Oops data */ struct sof_ipc_dsp_oops_xtensa { - struct sof_ipc_hdr hdr; + struct sof_ipc_dsp_oops_arch_hdr arch_hdr; + struct sof_ipc_dsp_oops_plat_hdr plat_hdr; uint32_t exccause; uint32_t excvaddr; uint32_t ps; @@ -38,7 +39,11 @@ struct sof_ipc_dsp_oops_xtensa { uint32_t intenable; uint32_t interrupt; uint32_t sar; - uint32_t stack; + uint32_t debugcause; + uint32_t windowbase; + uint32_t windowstart; + uint32_t excsave1; + uint32_t ar[]; } __packed; #endif -- cgit