const char *tplg_filename_prefix;
        const char *tplg_filename;
 
+       /* loadable external libraries available under this directory */
+       const char *fw_lib_prefix;
+
        /* machine */
        struct platform_device *pdev_mach;
        const struct snd_soc_acpi_mach *machine;
        unsigned int ipc_supported_mask;
        enum sof_ipc_type ipc_default;
 
-       /* defaults paths for firmware and topology files */
+       /* defaults paths for firmware, library and topology files */
        const char *default_fw_path[SOF_IPC_TYPE_COUNT];
+       const char *default_lib_path[SOF_IPC_TYPE_COUNT];
        const char *default_tplg_path[SOF_IPC_TYPE_COUNT];
 
        /* default firmware name */
 
                [SOF_IPC] = "intel/sof",
                [SOF_INTEL_IPC4] = "intel/avs/adl-n",
        },
+       .default_lib_path = {
+               [SOF_INTEL_IPC4] = "intel/avs-lib/adl-n",
+       },
        .default_tplg_path = {
                [SOF_IPC] = "intel/sof-tplg",
                [SOF_INTEL_IPC4] = "intel/avs-tplg",
 
 module_param(fw_filename, charp, 0444);
 MODULE_PARM_DESC(fw_filename, "alternate filename for SOF firmware.");
 
+static char *lib_path;
+module_param(lib_path, charp, 0444);
+MODULE_PARM_DESC(lib_path, "alternate path for SOF firmware libraries.");
+
 static char *tplg_path;
 module_param(tplg_path, charp, 0444);
 MODULE_PARM_DESC(tplg_path, "alternate path for SOF topology.");
                        sof_pdata->desc->default_fw_path[sof_pdata->ipc_type];
        }
 
+       if (lib_path) {
+               sof_pdata->fw_lib_prefix = lib_path;
+
+               dev_dbg(dev, "Module parameter used, changed fw_lib path to %s\n",
+                       sof_pdata->fw_lib_prefix);
+
+       } else if (sof_pdata->desc->default_lib_path[sof_pdata->ipc_type]) {
+               if (dmi_check_system(community_key_platforms) && sof_dmi_use_community_key) {
+                       sof_pdata->fw_lib_prefix =
+                               devm_kasprintf(dev, GFP_KERNEL, "%s/%s",
+                                       sof_pdata->desc->default_lib_path[sof_pdata->ipc_type],
+                                       "community");
+
+                       dev_dbg(dev,
+                               "Platform uses community key, changed fw_lib path to %s\n",
+                               sof_pdata->fw_lib_prefix);
+               } else {
+                       sof_pdata->fw_lib_prefix =
+                               sof_pdata->desc->default_lib_path[sof_pdata->ipc_type];
+               }
+       }
+
        if (tplg_path)
                sof_pdata->tplg_filename_prefix = tplg_path;
        else