Bug 215187
Summary: | btintel: AX201: missing firmware ibt-19-16-0.sfi | ||
---|---|---|---|
Product: | Drivers | Reporter: | Takahide Nojima (nozzy123nozzy) |
Component: | Bluetooth | Assignee: | linux-bluetooth (linux-bluetooth) |
Status: | RESOLVED UNREPRODUCIBLE | ||
Severity: | normal | CC: | kiran.k, luiz.dentz |
Priority: | P1 | ||
Hardware: | x86-64 | ||
OS: | Linux | ||
Kernel Version: | 5.16-rc3 | Subsystem: | |
Regression: | No | Bisected commit-id: |
Description
Takahide Nojima
2021-12-01 11:06:39 UTC
Hello, After I did some try and error, I suppose the version of Bluetooth firmware of AX201 depends on the version of iwlwifi firmware. Then I think this issue is simply missing the 'intel/ibt-19-16-0.sfi' in git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git. I let the Linux-5.16-rc3 load the latest iwlwifi firmware 'iwlwifi-QuZ-a0-hr-b0-67.ucode'. Then I found an error about missing the Bluetooth firmware in dmesg, as I reported before. Next, I let Linux-5.16-rc3 load the older firmware 'iwlwifi-QuZ-a0-hr-b0-63.ucode', then I found the Linux loaded successfully the Bluetooth firmware shown as below, ----------here------------- kernel: Bluetooth hci0: firmware: direct-loading firmware intel/ibt-19-0-4.sfi kernel: Bluetooth: hci0: Found device firmware: intel/ibt-19-0-4.sfi ----------here------------- This message was the same as reported when I tested Linux-5.15.5. I have reported this to the intel support community. I'll wait for them to put the intel/ibt-19-16-0.sfi to git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git. --- Takahide Nojima Hi Takahide Nojima, Could you please check with 22.80 version of firmware for AX201 ? One issue related to firmware version got fixed in below release https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/commit/?id=142174abc58e4529d5c4ec410a955bf0885dbe6f Thanks, Kiran Hi Kiran, I removed the whole /lib/firmware directory and put 22.80 to /lib/firmware. I booted again with 5.16-rc3. As a result, the kernel loaded "iwlwifi-Quiz-a0-hr-b0-63.ucode", but the kernel tried to load a different version of Bluetooth firmware than before. The kernel became to load "intel/ibt-19-16-0.sfi". Before this test, whenever the kernel loaded "iwlwifi-Quiz-a0-hr-b0-63.ucode", it try loading intel/ibt-19-0-4.sfi. I will dmesg of this time test as below. -----here-------------- ernel: iwlwifi 0000:00:14.3: firmware: failed to load iwlwifi-QuZ-a0-hr-b0-67.ucode (-2) kernel: iwlwifi 0000:00:14.3: Direct firmware load for iwlwifi-QuZ-a0-hr-b0-67.ucode failed with error -2 kernel: iwlwifi 0000:00:14.3: firmware: failed to load iwlwifi-QuZ-a0-hr-b0-66.ucode (-2) kernel: iwlwifi 0000:00:14.3: Direct firmware load for iwlwifi-QuZ-a0-hr-b0-66.ucode failed with error -2 kernel: iwlwifi 0000:00:14.3: firmware: failed to load iwlwifi-QuZ-a0-hr-b0-65.ucode (-2) kernel: iwlwifi 0000:00:14.3: Direct firmware load for iwlwifi-QuZ-a0-hr-b0-65.ucode failed with error -2 kernel: iwlwifi 0000:00:14.3: firmware: failed to load iwlwifi-QuZ-a0-hr-b0-64.ucode (-2) kernel: iwlwifi 0000:00:14.3: Direct firmware load for iwlwifi-QuZ-a0-hr-b0-64.ucode failed with error -2 kernel: iwlwifi 0000:00:14.3: firmware: direct-loading firmware iwlwifi-QuZ-a0-hr-b0-63.ucode kernel: iwlwifi 0000:00:14.3: api flags index 2 larger than supported by driver kernel: iwlwifi 0000:00:14.3: TLV_FW_FSEQ_VERSION: FSEQ Version: 89.3.35.37 kernel: iwlwifi 0000:00:14.3: loaded firmware version 63.c04f3485.0 QuZ-a0-hr-b0-63.ucode op_mode iwlmvm kernel: iwlwifi 0000:00:14.3: firmware: failed to load iwl-debug-yoyo.bin (-2) kernel: Bluetooth: Core ver 2.22 kernel: NET: Registered PF_BLUETOOTH protocol family kernel: Bluetooth: HCI device and connection manager initialized kernel: Bluetooth: HCI socket layer initialized kernel: Bluetooth: L2CAP socket layer initialized kernel: Bluetooth: SCO socket layer initialized kernel: iwlwifi 0000:00:14.3: Detected Intel(R) Wi-Fi 6 AX201 160MHz, REV=0x354 kernel: bluetooth hci0: firmware: failed to load intel/ibt-19-16-0.sfi (-2) -------------here-------------------- As written above, the kernel still failed to load intel/ibt-19-16-0.sfi because the 22.80 firmware tree doesn't have it. I guess basically the 5.16-rc3 with "iwlwifi-Quiz-a0-hr-b0-63.ucode" supposes to load "intel/ibt-19-16-4.sfi"? The 22.80 firmware includes it. In other words, does the "ver->fw_revision" in "btintel.c" supposes to be 4 after the kernel with "iwlwifi-Quiz-a0-hr-b0-63.ucode" sends 0xfc05 to AX201? (In reply to Takahide Nojima from comment #3) > As written above, the kernel still failed to load intel/ibt-19-16-0.sfi > because the 22.80 firmware tree doesn't have it. Try renaming it then, I suspect that is because that file is missing but if I recall correctly this is just the firmware revision: https://git.kernel.org/pub/scm/linux/kernel/git/bluetooth/bluetooth-next.git/tree/drivers/bluetooth/btintel.c#n1793 > I guess basically the 5.16-rc3 with "iwlwifi-Quiz-a0-hr-b0-63.ucode" > supposes to load "intel/ibt-19-16-4.sfi"? The 22.80 firmware includes it. In > other words, does the "ver->fw_revision" in "btintel.c" supposes to be 4 > after the kernel with "iwlwifi-Quiz-a0-hr-b0-63.ucode" sends 0xfc05 to AX201? I don't think the wifi firmware has any relation to the bluetooth firmware, otherwise we would be loading just one firmware for both not each separately. Hi Luiz, >Try renaming it then I copyed and renamed "intel/ibt-19-16-4.sfi" and "intel/ibt-19-16-4.ddc" to "intel/ibt-19-16-0.sfi" and "intel/ibt-19-16-0.ddc" respectively. After I rebooted 5.16-rc3 which has "iwlwifi-QuZ-a0-hr-b0-67.ucode", I found strange messages in dmesg. -------------------here----------------------- kernel: Bluetooth: Core ver 2.22 kernel: NET: Registered PF_BLUETOOTH protocol family kernel: Bluetooth: HCI device and connection manager initialized kernel: Bluetooth: HCI socket layer initialized kernel: Bluetooth: L2CAP socket layer initialized kernel: Bluetooth: SCO socket layer initialized kernel: iwlwifi 0000:00:14.3: firmware: direct-loading firmware iwlwifi-QuZ-a0-hr-b0-67.ucode kernel: iwlwifi 0000:00:14.3: api flags index 2 larger than supported by driver kernel: iwlwifi 0000:00:14.3: TLV_FW_FSEQ_VERSION: FSEQ Version: 89.3.35.37 kernel: iwlwifi 0000:00:14.3: loaded firmware version 67.8f59b80b.0 QuZ-a0-hr-b0-67.ucode op_mode iwlmvm kernel: iwlwifi 0000:00:14.3: firmware: failed to load iwl-debug-yoyo.bin (-2) kernel: bluetooth hci0: firmware: direct-loading firmware intel/ibt-19-16-0.sfi kernel: Bluetooth: hci0: Found device firmware: intel/ibt-19-16-0.sfi kernel: Bluetooth: hci0: Boot Address: 0x24800 kernel: Bluetooth: hci0: Firmware Version: 125-46.21 kernel: iwlwifi 0000:00:14.3: Detected Intel(R) Wi-Fi 6 AX201 160MHz, REV=0x354 kernel: iwlwifi 0000:00:14.3: Detected RF HR B3, rfid=0x10a100 systemd[1]: Starting Bluetooth service... kernel: iwlwifi 0000:00:14.3: base HW address: b0:a4:60:b4:69:96 bluetoothd[637]: Bluetooth daemon 5.61 systemd[1]: Started Bluetooth service. systemd[1]: Reached target Bluetooth Support. bluetoothd[637]: Starting SDP server dbus-daemon[505]: [system] Activating via systemd: service name='org.freedesktop.hostname1' unit='dbus-org.freedesktop.hostname1.service' requested by ':1.12' (uid=0 pid=637 comm="/usr/libexec/bluetooth/bluetoothd ") kernel: Bluetooth: BNEP (Ethernet Emulation) ver 1.3 kernel: Bluetooth: BNEP filters: protocol multicast kernel: Bluetooth: BNEP socket layer initialized bluetoothd[637]: Bluetooth management interface 1.21 initialized kernel: iwlwifi 0000:00:14.3 wlp0s20f3: renamed from wlan0 NetworkManager[664]: <info> [1639037359.3299] rfkill1: found Wi-Fi radio killswitch (at /sys/devices/pci0000:00/0000:00:14.3/ieee80211/phy0/rfkill1) (driver iwlwifi) NetworkManager[664]: <info> [1639037359.3363] Loaded device plugin: NMBluezManager (/usr/lib/x86_64-linux-gnu/NetworkManager/1.32.12/libnm-device-plugin-bluetooth.so) kernel: Bluetooth: hci0: command 0xfc01 tx timeout bluetoothd[637]: src/profile.c:register_profile() :1.71 tried to register 00001108-0000-1000-8000-00805f9b34fb which is already registered bluetoothd[637]: src/profile.c:register_profile() :1.71 tried to register 0000111f-0000-1000-8000-00805f9b34fb which is already registered systemd[1]: Stopped target Bluetooth Support. kernel: Bluetooth: hci0: FW download error recovery failed (-110) kernel: Bluetooth: hci0: Bootloader revision 0.4 build 0 week 30 2018 kernel: Bluetooth: hci0: Device revision is 2 kernel: Bluetooth: hci0: Secure boot is enabled kernel: Bluetooth: hci0: OTP lock is enabled kernel: Bluetooth: hci0: API lock is enabled kernel: Bluetooth: hci0: Debug lock is disabled kernel: Bluetooth: hci0: Minimum firmware build 1 week 10 2014 kernel: bluetooth hci0: firmware: direct-loading firmware intel/ibt-19-0-4.sfi kernel: Bluetooth: hci0: Found device firmware: intel/ibt-19-0-4.sfi kernel: Bluetooth: hci0: Boot Address: 0x24800 kernel: Bluetooth: hci0: Firmware Version: 191-21.21 systemd[1]: Reached target Bluetooth Support. systemd[724]: Reached target Bluetooth. systemd[1209]: Reached target Bluetooth. kernel: Bluetooth: hci0: Waiting for firmware download to complete kernel: Bluetooth: hci0: Firmware loaded in 1578507 usecs kernel: Bluetooth: hci0: Waiting for device to boot kernel: Bluetooth: hci0: Device booted in 14827 usecs kernel: bluetooth hci0: firmware: direct-loading firmware intel/ibt-19-0-4.ddc kernel: Bluetooth: hci0: Found Intel DDC parameters: intel/ibt-19-0-4.ddc kernel: Bluetooth: hci0: Applying Intel DDC parameters completed kernel: Bluetooth: hci0: Firmware revision 0.0 build 191 week 21 2021 --------------------here----------------- As wrote above,the kernel loaded "intel/ibt-19-16-0.sfi" at first,but fails to load, finally it loads "intel/ibt-19-0-4.sfi" successfully. And more strange, I rebooted this kernel several times, I found the kernel became not to load "intel/ibt-19-16-0.sfi" and load "intel/ibt-19-0-4.sfi" from the beginning of boot. I'm not sure why the kernel suddenly began to load "intel/ibt-19-0-4.sfi". Does someone let known to me why, please? I guess it could be that "btintel.c" lacks some important sequence to AX201, an Example for resetting the device, or some prerequisite process. >I don't think the wifi firmware has any relation to the bluetooth firmware I wish the documents of the AX201 datasheet could show details. Takahide Nojima Hi all, After I renamed "ibt-19-16-4.*" to "ibt-19-16-0.*" and the kernel failed to load just once, I rebooted and switched off again and again until today. However, I've never seen the attempt of the kernel to try to load "ibt-19-16-0.*" since that. The kernel came to load "ibt-19-0-4.*' at the beginning of boot. I guess that an internal failure in the AX201 caused my problem. I hypothesize that trial to load the wrong(broken) Bluetooth firmware caused an invocation of internal resetting to the AX201. After then, the AX201 became to return the correct version information to the "btintel" driver, and the kernel successfully loads the correct bt firmware, "ibt-19-0-4.*'. Whether my hypothesis is true or not, my problem appeared to solve. I will mark this thread as resolved. Many thanks all, Takahide Nojima |