mirror of
https://github.com/shenmintao/aic8800d80.git
synced 2026-11-10 16:49:17 +00:00
fix(legacy-mcu1): declare matched initramfs firmware and return probe errors
Backport the issue #117 loader fix, declaring the 80 firmware/configuration files actually shipped by legacy-mcu1 rather than the main firmware set. Preserve the existing V3 binaries and loader profiles. All three modules build against Linux 6.17 headers; inventory, built-module metadata and extracted probe error/re-enumeration regression checks pass. Hardware boot validation remains pending.
This commit is contained in:
1 parent
a9683a4560
commit
28e84ec90e
7 files changed
+245
-4
No files matched your search
@@ -9725,7 +9725,11 @@ MODULE_IMPORT_NS("VFS_internal_I_am_really_a_filesystem_and_am_NOT_a_driver");
|
||||
#elif LINUX_VERSION_CODE >= KERNEL_VERSION(5, 4, 0)
|
||||
MODULE_IMPORT_NS(VFS_internal_I_am_really_a_filesystem_and_am_NOT_a_driver);
|
||||
#endif
|
||||
#ifdef AICWF_USB_SUPPORT
|
||||
#include "../aicwf_firmware.h"
|
||||
#else
|
||||
MODULE_FIRMWARE(RWNX_CONFIG_FW_NAME);
|
||||
#endif
|
||||
|
||||
MODULE_DESCRIPTION(RW_DRV_DESCRIPTION);
|
||||
MODULE_VERSION(RWNX_VERS_MOD);
|
||||
|
||||
@@ -3972,6 +3972,7 @@ struct device *rwnx_platform_get_dev(struct rwnx_plat *rwnx_plat)
|
||||
}
|
||||
|
||||
|
||||
#ifndef AICWF_USB_SUPPORT
|
||||
#ifndef CONFIG_RWNX_SDM
|
||||
MODULE_FIRMWARE(RWNX_AGC_FW_NAME);
|
||||
MODULE_FIRMWARE(RWNX_FCU_FW_NAME);
|
||||
@@ -3981,5 +3982,6 @@ MODULE_FIRMWARE(RWNX_MAC_FW_NAME);
|
||||
#ifndef CONFIG_RWNX_TL4
|
||||
MODULE_FIRMWARE(RWNX_MAC_FW_NAME2);
|
||||
#endif
|
||||
#endif /* !AICWF_USB_SUPPORT */
|
||||
|
||||
|
||||
@@ -9,7 +9,6 @@
|
||||
#include "aicwf_txq_prealloc.h"
|
||||
|
||||
|
||||
#define DRV_CONFIG_FW_NAME "fw.bin"
|
||||
#define DRV_DESCRIPTION "AIC BLUETOOTH"
|
||||
#define DRV_COPYRIGHT "Copyright(c) 2015-2020 AICSemi"
|
||||
#define DRV_AUTHOR "AICSemi"
|
||||
@@ -75,7 +74,7 @@ MODULE_IMPORT_NS("VFS_internal_I_am_really_a_filesystem_and_am_NOT_a_driver");
|
||||
MODULE_IMPORT_NS(VFS_internal_I_am_really_a_filesystem_and_am_NOT_a_driver);
|
||||
#endif
|
||||
|
||||
MODULE_FIRMWARE(DRV_CONFIG_FW_NAME);
|
||||
#include "../aicwf_firmware.h"
|
||||
MODULE_DESCRIPTION(DRV_DESCRIPTION);
|
||||
MODULE_VERSION(DRV_VERS_MOD);
|
||||
MODULE_AUTHOR(DRV_COPYRIGHT " " DRV_AUTHOR);
|
||||
|
||||
@@ -1773,11 +1773,17 @@ static int aicwf_usb_probe(struct usb_interface *intf, const struct usb_device_i
|
||||
goto out_free_bus;
|
||||
}
|
||||
|
||||
if (system_config(usb_dev)) {
|
||||
ret = system_config(usb_dev);
|
||||
if (ret) {
|
||||
if (ret > 0)
|
||||
ret = -EIO;
|
||||
goto out_free_bus;
|
||||
}
|
||||
|
||||
if (aicfw_download_fw(usb_dev)){
|
||||
ret = aicfw_download_fw(usb_dev);
|
||||
if (ret) {
|
||||
if (ret > 0)
|
||||
ret = -EIO;
|
||||
goto out_free_bus;
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,95 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||
/*
|
||||
* Files installed below /lib/firmware by install.sh.
|
||||
*
|
||||
* Both USB modules may be loaded in an initramfs. Declare the complete matched
|
||||
* firmware set, including configuration and extension patches, so initramfs
|
||||
* generators can copy it along with either module. Keep this list in sync with
|
||||
* fw/; tests/firmware/test_firmware.py checks the installed paths.
|
||||
*/
|
||||
#ifndef AICWF_FIRMWARE_H
|
||||
#define AICWF_FIRMWARE_H
|
||||
|
||||
MODULE_FIRMWARE("aic8800/aic_userconfig.txt");
|
||||
MODULE_FIRMWARE("aic8800/fmacfw.bin");
|
||||
MODULE_FIRMWARE("aic8800/fmacfw_m2d.bin");
|
||||
MODULE_FIRMWARE("aic8800/fmacfw_no_msg_ep.bin");
|
||||
MODULE_FIRMWARE("aic8800/fmacfw_no_msg_ep_rf.bin");
|
||||
MODULE_FIRMWARE("aic8800/fmacfw_rf.bin");
|
||||
MODULE_FIRMWARE("aic8800/fw_adid.bin");
|
||||
MODULE_FIRMWARE("aic8800/fw_adid_rf.bin");
|
||||
MODULE_FIRMWARE("aic8800/fw_adid_u03.bin");
|
||||
MODULE_FIRMWARE("aic8800/fw_ble_scan.bin");
|
||||
MODULE_FIRMWARE("aic8800/fw_ble_scan_ad_filter_dcdc.bin");
|
||||
MODULE_FIRMWARE("aic8800/fw_ble_scan_ad_filter_ldo.bin");
|
||||
MODULE_FIRMWARE("aic8800/fw_patch.bin");
|
||||
MODULE_FIRMWARE("aic8800/fw_patch_rf.bin");
|
||||
MODULE_FIRMWARE("aic8800/fw_patch_table.bin");
|
||||
MODULE_FIRMWARE("aic8800/fw_patch_table_u03.bin");
|
||||
MODULE_FIRMWARE("aic8800/fw_patch_u03.bin");
|
||||
MODULE_FIRMWARE("aic8800/m2d_ota.bin");
|
||||
MODULE_FIRMWARE("aic8800D80/aic_userconfig_8800d80.txt");
|
||||
MODULE_FIRMWARE("aic8800D80/calibmode_8800d80.bin");
|
||||
MODULE_FIRMWARE("aic8800D80/fmacfw_8800d80_u02.bin");
|
||||
MODULE_FIRMWARE("aic8800D80/fmacfw_8800d80_u02_ipc.bin");
|
||||
MODULE_FIRMWARE("aic8800D80/fw_adid_8800d80_u02.bin");
|
||||
MODULE_FIRMWARE("aic8800D80/fw_ble_scan_ad_filter.bin");
|
||||
MODULE_FIRMWARE("aic8800D80/fw_patch_8800d80_u02.bin");
|
||||
MODULE_FIRMWARE("aic8800D80/fw_patch_table_8800d80_u02.bin");
|
||||
MODULE_FIRMWARE("aic8800D80/lmacfw_rf_8800d80_u02.bin");
|
||||
MODULE_FIRMWARE("aic8800D80N/aic_powerlimit_8800d80n.txt");
|
||||
MODULE_FIRMWARE("aic8800D80N/aic_userconfig_8800d80n.txt");
|
||||
MODULE_FIRMWARE("aic8800D80N/fmacfw_btusb_8800d80n_u02.bin");
|
||||
MODULE_FIRMWARE("aic8800D80N/fmacfw_calib_8800d80n_u02.bin");
|
||||
MODULE_FIRMWARE("aic8800D80N/fmacfw_cinit_8800d80n_u02.bin");
|
||||
MODULE_FIRMWARE("aic8800D80N/fmacfw_patch_8800d80n_u02.bin");
|
||||
MODULE_FIRMWARE("aic8800D80N/fmacfw_patch_tbl_8800d80n_u02.bin");
|
||||
MODULE_FIRMWARE("aic8800D80N/fw_patch_8800d80n_rf_u02.bin");
|
||||
MODULE_FIRMWARE("aic8800D80N/fw_patch_8800d80n_rf_u02_ext0.bin");
|
||||
MODULE_FIRMWARE("aic8800D80N/fw_patch_8800d80n_u02.bin");
|
||||
MODULE_FIRMWARE("aic8800D80N/fw_patch_8800d80n_u02_ext0.bin");
|
||||
MODULE_FIRMWARE("aic8800D80N/fw_patch_table_8800d80n_rf_u02.bin");
|
||||
MODULE_FIRMWARE("aic8800D80N/fw_patch_table_8800d80n_u02.bin");
|
||||
MODULE_FIRMWARE("aic8800D80N/lmacfw_rf_8800d80n.bin");
|
||||
MODULE_FIRMWARE("aic8800D80X2/aic_powerlimit_8800d80x2.txt");
|
||||
MODULE_FIRMWARE("aic8800D80X2/aic_userconfig_8800d80x2.txt");
|
||||
MODULE_FIRMWARE("aic8800D80X2/aicbt.conf");
|
||||
MODULE_FIRMWARE("aic8800D80X2/fmacfw_8800d80x2.bin");
|
||||
MODULE_FIRMWARE("aic8800D80X2/fw_adid_8800d80x2_u03.bin");
|
||||
MODULE_FIRMWARE("aic8800D80X2/fw_adid_8800d80x2_u05.bin");
|
||||
MODULE_FIRMWARE("aic8800D80X2/fw_patch_8800d80x2_u03.bin");
|
||||
MODULE_FIRMWARE("aic8800D80X2/fw_patch_8800d80x2_u05.bin");
|
||||
MODULE_FIRMWARE("aic8800D80X2/fw_patch_8800d80x2_u05_ext0.bin");
|
||||
MODULE_FIRMWARE("aic8800D80X2/fw_patch_8800d80x2_u05_ext1.bin");
|
||||
MODULE_FIRMWARE("aic8800D80X2/fw_patch_table_8800d80x2_u03.bin");
|
||||
MODULE_FIRMWARE("aic8800D80X2/fw_patch_table_8800d80x2_u05.bin");
|
||||
MODULE_FIRMWARE("aic8800D80X2/lmacfw_rf_8800d80x2.bin");
|
||||
MODULE_FIRMWARE("aic8800DC/aic_powerlimit_8800dc.txt");
|
||||
MODULE_FIRMWARE("aic8800DC/aic_powerlimit_8800dw.txt");
|
||||
MODULE_FIRMWARE("aic8800DC/aic_userconfig_8800dc.txt");
|
||||
MODULE_FIRMWARE("aic8800DC/aic_userconfig_8800dw.txt");
|
||||
MODULE_FIRMWARE("aic8800DC/aic_userconfig_8800dw_u2.txt");
|
||||
MODULE_FIRMWARE("aic8800DC/aic_userconfig_8800dw_w311.txt");
|
||||
MODULE_FIRMWARE("aic8800DC/fmacfw_calib_8800dc_h_u02.bin");
|
||||
MODULE_FIRMWARE("aic8800DC/fmacfw_calib_8800dc_u02.bin");
|
||||
MODULE_FIRMWARE("aic8800DC/fmacfw_patch_8800dc_h_u02.bin");
|
||||
MODULE_FIRMWARE("aic8800DC/fmacfw_patch_8800dc_ipc_u02.bin");
|
||||
MODULE_FIRMWARE("aic8800DC/fmacfw_patch_8800dc_u02.bin");
|
||||
MODULE_FIRMWARE("aic8800DC/fmacfw_patch_tbl_8800dc_h_u02.bin");
|
||||
MODULE_FIRMWARE("aic8800DC/fmacfw_patch_tbl_8800dc_ipc_u02.bin");
|
||||
MODULE_FIRMWARE("aic8800DC/fmacfw_patch_tbl_8800dc_u02.bin");
|
||||
MODULE_FIRMWARE("aic8800DC/fw_adid_8800dc_u02.bin");
|
||||
MODULE_FIRMWARE("aic8800DC/fw_adid_8800dc_u02h.bin");
|
||||
MODULE_FIRMWARE("aic8800DC/fw_patch_8800dc_u02.bin");
|
||||
MODULE_FIRMWARE("aic8800DC/fw_patch_8800dc_u02_ext0.bin");
|
||||
MODULE_FIRMWARE("aic8800DC/fw_patch_8800dc_u02h.bin");
|
||||
MODULE_FIRMWARE("aic8800DC/fw_patch_table_8800dc_u02.bin");
|
||||
MODULE_FIRMWARE("aic8800DC/fw_patch_table_8800dc_u02h.bin");
|
||||
MODULE_FIRMWARE("aic8800DC/lmacfw_rf_8800dc.bin");
|
||||
MODULE_FIRMWARE("aic8800DLN/aic_powerlimit_8800dln.txt");
|
||||
MODULE_FIRMWARE("aic8800DLN/aic_userconfig_8800dln.txt");
|
||||
MODULE_FIRMWARE("aic8800DLN/fmacfw_gaintbl_8800dln.bin");
|
||||
MODULE_FIRMWARE("aic8800DLN/fmacfw_initvar_8800dln.bin");
|
||||
|
||||
#endif /* AICWF_FIRMWARE_H */
|
||||
|
||||
Reference in new issue
Block a user