diff --git a/src/audio/base_fw.c b/src/audio/base_fw.c index ce7b5ca7778e..dc2d282be4c7 100644 --- a/src/audio/base_fw.c +++ b/src/audio/base_fw.c @@ -111,6 +111,10 @@ static int basefw_config(uint32_t *data_offset, char *data) sche_cfg.sys_tick_source = SOF_SCHEDULE_LL_TIMER; tlv_value_set(tuple, IPC4_SCHEDULER_CONFIGURATION, sizeof(sche_cfg), &sche_cfg); + tuple = tlv_next(tuple); + tlv_value_uint32_set(tuple, IPC4_FW_CONTEXT_SAVE, + IS_ENABLED(CONFIG_ADSP_IMR_CONTEXT_SAVE)); + tuple = tlv_next(tuple); *data_offset = (int)((char *)tuple - data); diff --git a/src/include/ipc4/base_fw.h b/src/include/ipc4/base_fw.h index 1a2c67ce966d..5aa1f168b675 100644 --- a/src/include/ipc4/base_fw.h +++ b/src/include/ipc4/base_fw.h @@ -365,6 +365,8 @@ enum ipc4_fw_config_params { IPC4_KPB_RT_SINK_COUNT = 27, /* Manual control of DMI L1 state */ IPC4_DMI_FORCE_L1_EXIT = 28, + /* FW context save on D3 entry */ + IPC4_FW_CONTEXT_SAVE = 29, /* Total number of FW config parameters */ IPC4_FW_CFG_PARAMS_COUNT, /* Max config parameter id */