我在移植到RK3562平台时,sdio能扫到设备,但是usb一直扫不到设备,似乎模块没起来。
WiFi模块日志:
BootromMar42023,ga48655e]
Copyright(c)2018-2023 AICSemi Ltd
RstCause:0000,c0,Boot:fb,0
Device mode
pu usb
SDIO IHIT IHTR
Wait io enable
RK3562启动日志:
[ 46.634336] usb 1-1.3: device descriptor read/64, error -110
[ 46.741495] usb 1-1-port3: attempt power cycle
[ 47.434347] usb 1-1.3: new high-speed USB device number 5 using ehci-platform
[ 58.187653] usb 1-1.3: device not accepting address 5, error -110
[ 58.360975] usb 1-1.3: new high-speed USB device number 6 using ehci-platform
[ 67.918084] udevd[358]: worker [365] /devices/platform/fed00000.usb/usb1/1-1 is taking a long time
[ 69.067659] usb 1-1.3: device not accepting address 6, error -110
[ 69.068228] usb 1-1-port3: unable to enumerate USB device
root@TJ3562-buildroot:/# dmesg |grep “mmc2|ff890000”
[ 3.925581] dwmmc_rockchip ff890000.mmc: No normal pinctrl state
[ 3.925590] dwmmc_rockchip ff890000.mmc: No idle pinctrl state
[ 3.925774] dwmmc_rockchip ff890000.mmc: IDMAC supports 32-bit address mode.
[ 3.925799] dwmmc_rockchip ff890000.mmc: Using internal DMA controller.
[ 3.925814] dwmmc_rockchip ff890000.mmc: Version ID is 270a
[ 3.925859] dwmmc_rockchip ff890000.mmc: DW MMC controller at irq 83,32 bit host data width,256 deep fifo
[ 3.926126] dwmmc_rockchip ff890000.mmc: allocated mmc-pwrseq
[ 3.926144] mmc_host mmc2: card is non-removable.
[ 3.937636] mmc_host mmc2: Bus speed (slot 0) = 400000Hz (slot req 400000Hz, actual 400000HZ div = 0)
[ 3.974188] mmc_host mmc2: Bus speed (slot 0) = 198000000Hz (slot req 200000000Hz, actual 198000000HZ div = 0)
[ 4.180428] dwmmc_rockchip ff890000.mmc: Successfully tuned phase to 360
[ 4.182012] mmc2: new ultra high speed SDR104 SDIO card at address 390b
加载驱动日志
root@TJ3562-buildroot:/# insmod /lib/modules/aic8800_bsp.ko
[ 953.521822] aic8800_bsp: loading out-of-tree module taints kernel.
[ 953.523633] aicbsp_init
[ 953.523666] RELEASE_DATE:2024_0712_e2a932c1
[ 953.523673] aicbsp_resv_mem_init
[ 953.524688] aicbsp: aicbsp_set_subsys, subsys: AIC_BLUETOOTH, state to: 1
[ 953.524720] aicbsp: aicbsp_set_subsys, power state change to 1 dure to AIC_BLUETOOTH
[ 953.524731] aicbsp: aicbsp_platform_power_on
[ 953.524739] [WLAN_RFKILL]: rockchip_wifi_power: 0
[ 953.524751] [WLAN_RFKILL]: rockchip_wifi_power: toggle = false
[ 953.524764] wifi power off
[ 953.634117] [WLAN_RFKILL]: rockchip_wifi_power: toggle = false
[ 953.634191] [WLAN_RFKILL]: wifi shut off power [GPIO110-0]
[ 953.684231] [WLAN_RFKILL]: rockchip_wifi_power: 1
[ 953.684276] [WLAN_RFKILL]: rockchip_wifi_power: toggle = false
[ 953.790891] [WLAN_RFKILL]: wifi turn on power [GPIO110-1]
[ 953.841576] aicbsp_dummy_sdmmc: probe of mmc2:390b:1 failed with error -110
[ 953.841840] aicbsp_dummy_sdmmc: probe of mmc2:390b:2 failed with error -110
[ 954.080809] usb 1-1.3: new high-speed USB device number 7 using ehci-platform
[ 954.279456] usb 1-1.3: New USB device found, idVendor=a69c, idProduct=8d80, bcdDevice= 1.00
[ 954.279537] usb 1-1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 954.279574] usb 1-1.3: Product: AIC Wlan
[ 954.279605] usb 1-1.3: Manufacturer: aicsemi
[ 954.279636] usb 1-1.3: SerialNumber: 20220103
[ 955.912659] [WLAN_RFKILL]: rockchip_wifi_power: 0
[ 955.912714] [WLAN_RFKILL]: rockchip_wifi_power: toggle = false
[ 955.912726] wifi power off
[ 956.017374] [WLAN_RFKILL]: rockchip_wifi_power: toggle = false
root@TJ3562-buildroot:/# [ 956.017445] [WLAN_RFKILL]: wifi shut off power [GPIO110-0]
[ 956.017475] aicbsp: aicbsp_set_subsys, fail to set AIC_BLUETOOTH power state to 1
[ 956.163491] usb 1-1.3: USB disconnect, device number 7
看起来USB没识别到。USB dongle吗?
[ 954.279456] usb 1-1.3: New USB device found, idVendor=a69c, idProduct=8d80, bcdDevice= 1.00
[ 954.279537] usb 1-1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 954.279574] usb 1-1.3: Product: AIC Wlan
[ 954.279605] usb 1-1.3: Manufacturer: aicsemi
[ 954.279636] usb 1-1.3: SerialNumber: 20220103
识别到了但是 USB 又断开连接了。
这个是RK3562 Linux平台,没设置dongle相关的东西,并且问了下这个USB识别不是必须的。感觉问题在sdio这里,重新把USB这块给禁用了
加载驱动
root@TJ3562-buildroot:/lib/modules# insmod aic8800_bsp.ko
[ 24.892523] aic8800_bsp: loading out-of-tree module taints kernel.
[ 24.894391] aicbsp_init
[ 24.894426] RELEASE_DATE:2024_0712_e2a932c1
[ 24.894434] aicbsp_resv_mem_init
[ 24.895285] aicbsp: aicbsp_set_subsys, subsys: AIC_BLUETOOTH, state to: 1
[ 24.895305] aicbsp: aicbsp_set_subsys, power state change to 1 dure to AIC_BLUETOOTH
[ 24.895314] aicbsp: aicbsp_platform_power_on
[ 24.895322] [WLAN_RFKILL]: rockchip_wifi_power: 0
[ 24.895332] [BT_RFKILL]: rfkill_get_bt_power_state: rfkill-bt driver has not Successful initialized
[ 24.895343] [BT_RFKILL]: rfkill_get_bt_power_state: rfkill-bt driver has not Successful initialized
[ 24.895351] [WLAN_RFKILL]: wifi shut off power [GPIO-1-1]
[ 24.945371] [WLAN_RFKILL]: rockchip_wifi_power: 1
[ 24.945409] [BT_RFKILL]: rfkill_get_bt_power_state: rfkill-bt driver has not Successful initialized
[ 24.945420] [WLAN_RFKILL]: wifi turn on power [GPIO-1-0]
[ 25.011803] aicbsp: aicbsp_sdio_probe:1 vid:0xC8A1 did:0x0082
[ 25.011926] aicbsp: aicbsp_sdio_probe:2 vid:0xC8A1 did:0x0182
[ 25.011935] aicbsp: aicbsp_sdio_probe after replace:1
[ 25.011942] AICWFDBG(LOGINFO) aicwf_sdio_chipmatch USE AIC8800D80
[ 25.011950] aicbsp: aicbsp_get_feature, set FEATURE_SDIO_CLOCK 150 MHz
[ 25.011958] aicbsp: aicwf_sdio_reg_init
[ 25.015493] AICWFDBG(LOGINFO) aicbsp: aicbsp_driver_fw_init, chip rev: 7
[ 25.015554] rwnx_load_firmware :firmware path = /vendor/etc/firmware/fw_patch_table_8800d80_u02.bin
[ 25.027933] file md5:313babc74ae8b1d44dc0e0a4c4c73686
[ 25.028086] rwnx_plat_bin_fw_upload_android
[ 25.028095] rwnx_load_firmware :firmware path = /vendor/etc/firmware/fw_adid_8800d80_u02.bin
[ 25.028291] file md5:f546881a81b960d89a672578eb45a809
[ 25.029032] rwnx_plat_bin_fw_upload_android
[ 25.029050] rwnx_load_firmware :firmware path = /vendor/etc/firmware/fw_patch_8800d80_u02.bin
[ 25.029842] file md5:8e83d7b94620c2a5444b2aaaab1a510d
[ 25.973139] aicbt_patch_table_load bt btmode[3]:5
[ 25.973217] aicbt_patch_table_load bt uart_baud[3]:1500000
[ 25.973243] aicbt_patch_table_load bt uart_flowctrl[3]:1
[ 25.973268] aicbt_patch_table_load bt lpm_enable[3]:0
[ 25.973292] aicbt_patch_table_load bt tx_pwr[3]:28463
[ 25.985026] aicbsp: bt patch version: - Jul 11 2024 10:38:54 - git 73d2ce5
[ 25.985231] rwnx_plat_bin_fw_upload_android
[ 25.985261] rwnx_load_firmware :firmware path = /vendor/etc/firmware/fmacfw_8800d80_u02.bin
[ 26.009565] file md5:b39016c6531b5a0f6f5012eca50bc258
[ 26.161175] rd_version_val=06090101
[ 26.163760] aicwifi_patch_config_8800d80 write data, patch_tbl_8800d80[0]=0xb4:0xf3010000
[ 26.164769] aicwifi_patch_config_8800d80 write data, patch_tbl_8800d80[1]=0x170:0x100000a
root@TJ3562-buildroot:/lib/modules# [ 26.165791] aicwifi_patch_config_8800d80 write data, patch_tbl_8800d80[2]=0x188:0x0
[ 26.219521] aicbsp: sdio_err:<aicwf_sdio_bus_pwrctl,1402>: bus down
加载驱动2
root@TJ3562-buildroot:/lib/modules# insmod aic8800_fdrv.ko
[ 106.199847] AICWFDBG(LOGTRACE) >>> rwnx_mod_init()
[ 106.199912] AICWFDBG(LOGINFO) rwnx v6.4.3.0 - - 241c091M (master)
[ 106.199920] AICWFDBG(LOGINFO) RELEASE_DATE:2024_0712_e2a932c1
[ 106.199928] AICWFDBG(LOGTRACE) rwnx_init_cmd_array Enter
[ 106.200282] AICWFDBG(LOGTRACE) rwnx_init_cmd_array cmd_queue[39]:000000004eda468d
[ 106.200290] AICWFDBG(LOGTRACE) rwnx_init_cmd_array Exit
[ 106.200298] aicbsp: aicbsp_set_subsys, subsys: AIC_WIFI, state to: 1
[ 106.200307] aicbsp: aicbsp_set_subsys, power state no need to change, current: 1
[ 106.200813] aicwf_sdio: probe of mmc2:390b:1 failed with error -110
问题解决了,SDMMC电压选择的不对,该模块使用1.8V电压,选择3.3V后通信失败
这个模块支持USB,也支持SDIO。取决于你接的是USB还是SDIO.