if (!ipc4_data->max_libs_count)
                                ipc4_data->max_libs_count = 1;
                        break;
+               case SOF_IPC4_FW_CFG_MAX_PPL_COUNT:
+                       ipc4_data->max_num_pipelines = *tuple->value;
+                       trace_sof_ipc4_fw_config(sdev, "Max PPL count %d",
+                                                ipc4_data->max_num_pipelines);
+                       if (ipc4_data->max_num_pipelines <= 0) {
+                               dev_err(sdev->dev, "Invalid max_num_pipelines %d",
+                                       ipc4_data->max_num_pipelines);
+                               ret = -EINVAL;
+                               goto out;
+                       }
+                       break;
                default:
                        break;
                }
 
  * @nhlt: NHLT table either from the BIOS or the topology manifest
  * @mtrace_type: mtrace type supported on the booted platform
  * @mtrace_log_bytes: log bytes as reported by the firmware via fw_config reply
+ * @max_num_pipelines: max number of pipelines
  * @max_libs_count: Maximum number of libraries support by the FW including the
  *                 base firmware
  *
        void *nhlt;
        enum sof_ipc4_mtrace_type mtrace_type;
        u32 mtrace_log_bytes;
+       int max_num_pipelines;
        u32 max_libs_count;
 
        int (*load_library)(struct snd_sof_dev *sdev,