It consist of 3 parts:
- Kernel: Forbid attachment of ng_ubt(4) to Intel Wireless 8260/8265 devices in bootloader mode.
Add helper function for synchronous execution of HCI commands at probe stage and use this function to check firmware state of Intel Wireless 8260/8265 bluetooth devices found in many post 2016 year laptops.
Attempt to initialize FreeBSD bluetooth stack while such a device is in bootloader mode locks the adapter hardly so it requires power on/off cycle to restore.
This change blocks ng_ubt attachment unless operational firmware is loaded thus preventing the lock up.
- Userland: Firmware loader for Intel Wireless 8260 based Bluetooth USB devices (iwmbtfw)
Currently supported models are: 8260, 8265, 9560, 9260 and 22161. Devd config file to do an autoloading is included.
- Firmware files (not included here)
They can be installed with comms/iwmbt-firmware port attached to PR/237083 (https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=237083)