From 23fb6b8dd32588841b8b931dfbffeda482a5f322 Mon Sep 17 00:00:00 2001 From: Stefan Agner Date: Mon, 22 Mar 2021 23:37:53 +0100 Subject: [PATCH] Enable Realtek Bluetooth firmwares (#1283) * Add RTL87xx/RTL88xx Bluetooth firmware Enable Realtek Bluetooth dongles by adding firmware for RTL87xx and RTL8xx devices. * Enable Wireless firmwares for OVA and Generic x86-64 machines Virtual machines might use hardware pass through functionality to get direct access to wireless hardware. Add all firmwares we use in Generic x86-64 image also to the OVA image. Also enable Ralink devices for the two machines. * Add RTL87xx/RTL88xx Bluetooth firmwares (#1273) Add RTL87xx/RTL88xx Bluetooth to all devices without on-board Bluetooth. --- .../configs/generic_x86_64_defconfig | 3 + .../configs/odroid_c2_defconfig | 2 + .../configs/odroid_c4_defconfig | 2 + .../configs/odroid_n2_defconfig | 2 + .../configs/odroid_xu4_defconfig | 2 + buildroot-external/configs/ova_defconfig | 14 ++++ buildroot-external/configs/rpi2_defconfig | 2 + buildroot-external/configs/rpi_defconfig | 2 + ...rmware-add-RTL87XX-RTL88XX-Bluetooth.patch | 74 +++++++++++++++++++ buildroot/package/linux-firmware/Config.in | 10 +++ .../package/linux-firmware/linux-firmware.mk | 21 ++++++ 11 files changed, 134 insertions(+) create mode 100644 buildroot-patches/0006-package-linux-firmware-add-RTL87XX-RTL88XX-Bluetooth.patch diff --git a/buildroot-external/configs/generic_x86_64_defconfig b/buildroot-external/configs/generic_x86_64_defconfig index b25a45c73..a70b2a20a 100644 --- a/buildroot-external/configs/generic_x86_64_defconfig +++ b/buildroot-external/configs/generic_x86_64_defconfig @@ -47,7 +47,10 @@ BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_8000=y BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_8265=y BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_9XXX=y BR2_PACKAGE_LINUX_FIRMWARE_I915=y +BR2_PACKAGE_LINUX_FIRMWARE_RALINK_RT2XX=y BR2_PACKAGE_LINUX_FIRMWARE_RTL_8169=y +BR2_PACKAGE_LINUX_FIRMWARE_RTL_87XX_BT=y +BR2_PACKAGE_LINUX_FIRMWARE_RTL_88XX_BT=y BR2_PACKAGE_LINUX_FIRMWARE_USB_SERIAL_TI=y BR2_PACKAGE_CRDA=y BR2_PACKAGE_DT_UTILS=y diff --git a/buildroot-external/configs/odroid_c2_defconfig b/buildroot-external/configs/odroid_c2_defconfig index 1cef7dcde..25f9afdd9 100644 --- a/buildroot-external/configs/odroid_c2_defconfig +++ b/buildroot-external/configs/odroid_c2_defconfig @@ -40,6 +40,8 @@ BR2_PACKAGE_E2FSPROGS_E2IMAGE=y BR2_PACKAGE_SQUASHFS=y BR2_PACKAGE_LINUX_FIRMWARE=y BR2_PACKAGE_LINUX_FIRMWARE_RALINK_RT2XX=y +BR2_PACKAGE_LINUX_FIRMWARE_RTL_87XX_BT=y +BR2_PACKAGE_LINUX_FIRMWARE_RTL_88XX_BT=y BR2_PACKAGE_LINUX_FIRMWARE_RTL_81XX=y BR2_PACKAGE_LINUX_FIRMWARE_USB_SERIAL_TI=y BR2_PACKAGE_CRDA=y diff --git a/buildroot-external/configs/odroid_c4_defconfig b/buildroot-external/configs/odroid_c4_defconfig index 5db5f419a..3549033e0 100644 --- a/buildroot-external/configs/odroid_c4_defconfig +++ b/buildroot-external/configs/odroid_c4_defconfig @@ -40,6 +40,8 @@ BR2_PACKAGE_E2FSPROGS_E2IMAGE=y BR2_PACKAGE_SQUASHFS=y BR2_PACKAGE_LINUX_FIRMWARE=y BR2_PACKAGE_LINUX_FIRMWARE_RALINK_RT2XX=y +BR2_PACKAGE_LINUX_FIRMWARE_RTL_87XX_BT=y +BR2_PACKAGE_LINUX_FIRMWARE_RTL_88XX_BT=y BR2_PACKAGE_LINUX_FIRMWARE_RTL_81XX=y BR2_PACKAGE_LINUX_FIRMWARE_USB_SERIAL_TI=y BR2_PACKAGE_CRDA=y diff --git a/buildroot-external/configs/odroid_n2_defconfig b/buildroot-external/configs/odroid_n2_defconfig index e6736ef91..f84a1e8f7 100644 --- a/buildroot-external/configs/odroid_n2_defconfig +++ b/buildroot-external/configs/odroid_n2_defconfig @@ -40,6 +40,8 @@ BR2_PACKAGE_E2FSPROGS_E2IMAGE=y BR2_PACKAGE_SQUASHFS=y BR2_PACKAGE_LINUX_FIRMWARE=y BR2_PACKAGE_LINUX_FIRMWARE_RALINK_RT2XX=y +BR2_PACKAGE_LINUX_FIRMWARE_RTL_87XX_BT=y +BR2_PACKAGE_LINUX_FIRMWARE_RTL_88XX_BT=y BR2_PACKAGE_LINUX_FIRMWARE_RTL_81XX=y BR2_PACKAGE_LINUX_FIRMWARE_USB_SERIAL_TI=y BR2_PACKAGE_CRDA=y diff --git a/buildroot-external/configs/odroid_xu4_defconfig b/buildroot-external/configs/odroid_xu4_defconfig index 7d882485a..93d8e1301 100644 --- a/buildroot-external/configs/odroid_xu4_defconfig +++ b/buildroot-external/configs/odroid_xu4_defconfig @@ -41,6 +41,8 @@ BR2_PACKAGE_SQUASHFS=y BR2_PACKAGE_LINUX_FIRMWARE=y BR2_PACKAGE_LINUX_FIRMWARE_MFC_V8=y BR2_PACKAGE_LINUX_FIRMWARE_RALINK_RT2XX=y +BR2_PACKAGE_LINUX_FIRMWARE_RTL_87XX_BT=y +BR2_PACKAGE_LINUX_FIRMWARE_RTL_88XX_BT=y BR2_PACKAGE_LINUX_FIRMWARE_RTL_81XX=y BR2_PACKAGE_LINUX_FIRMWARE_USB_SERIAL_TI=y BR2_PACKAGE_CRDA=y diff --git a/buildroot-external/configs/ova_defconfig b/buildroot-external/configs/ova_defconfig index b62e3a014..0a6a8bcd0 100644 --- a/buildroot-external/configs/ova_defconfig +++ b/buildroot-external/configs/ova_defconfig @@ -38,6 +38,20 @@ BR2_PACKAGE_E2FSPROGS=y BR2_PACKAGE_E2FSPROGS_E2IMAGE=y BR2_PACKAGE_SQUASHFS=y BR2_PACKAGE_LINUX_FIRMWARE=y +BR2_PACKAGE_LINUX_FIRMWARE_IBT=y +BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_3160=y +BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_3168=y +BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_7260=y +BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_7265=y +BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_7265D=y +BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_8000=y +BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_8265=y +BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_9XXX=y +BR2_PACKAGE_LINUX_FIRMWARE_I915=y +BR2_PACKAGE_LINUX_FIRMWARE_RALINK_RT2XX=y +BR2_PACKAGE_LINUX_FIRMWARE_RTL_8169=y +BR2_PACKAGE_LINUX_FIRMWARE_RTL_87XX_BT=y +BR2_PACKAGE_LINUX_FIRMWARE_RTL_88XX_BT=y BR2_PACKAGE_LINUX_FIRMWARE_USB_SERIAL_TI=y BR2_PACKAGE_CRDA=y BR2_PACKAGE_DT_UTILS=y diff --git a/buildroot-external/configs/rpi2_defconfig b/buildroot-external/configs/rpi2_defconfig index c00586283..a2296f940 100644 --- a/buildroot-external/configs/rpi2_defconfig +++ b/buildroot-external/configs/rpi2_defconfig @@ -41,6 +41,8 @@ BR2_PACKAGE_E2FSPROGS_E2IMAGE=y BR2_PACKAGE_SQUASHFS=y BR2_PACKAGE_LINUX_FIRMWARE=y BR2_PACKAGE_LINUX_FIRMWARE_RALINK_RT2XX=y +BR2_PACKAGE_LINUX_FIRMWARE_RTL_87XX_BT=y +BR2_PACKAGE_LINUX_FIRMWARE_RTL_88XX_BT=y BR2_PACKAGE_LINUX_FIRMWARE_USB_SERIAL_TI=y BR2_PACKAGE_RPI_FIRMWARE=y BR2_PACKAGE_CRDA=y diff --git a/buildroot-external/configs/rpi_defconfig b/buildroot-external/configs/rpi_defconfig index d2b235eac..166049d90 100644 --- a/buildroot-external/configs/rpi_defconfig +++ b/buildroot-external/configs/rpi_defconfig @@ -41,6 +41,8 @@ BR2_PACKAGE_E2FSPROGS_E2IMAGE=y BR2_PACKAGE_SQUASHFS=y BR2_PACKAGE_LINUX_FIRMWARE=y BR2_PACKAGE_LINUX_FIRMWARE_RALINK_RT2XX=y +BR2_PACKAGE_LINUX_FIRMWARE_RTL_87XX_BT=y +BR2_PACKAGE_LINUX_FIRMWARE_RTL_88XX_BT=y BR2_PACKAGE_LINUX_FIRMWARE_USB_SERIAL_TI=y BR2_PACKAGE_RPI_FIRMWARE=y BR2_PACKAGE_CRDA=y diff --git a/buildroot-patches/0006-package-linux-firmware-add-RTL87XX-RTL88XX-Bluetooth.patch b/buildroot-patches/0006-package-linux-firmware-add-RTL87XX-RTL88XX-Bluetooth.patch new file mode 100644 index 000000000..5179394f1 --- /dev/null +++ b/buildroot-patches/0006-package-linux-firmware-add-RTL87XX-RTL88XX-Bluetooth.patch @@ -0,0 +1,74 @@ +From 51c25488d718cdeb022e60cacc8ddcb6d9a97cc7 Mon Sep 17 00:00:00 2001 +Message-Id: <51c25488d718cdeb022e60cacc8ddcb6d9a97cc7.1616146775.git.stefan@agner.ch> +In-Reply-To: +References: +From: Stefan Agner +Date: Wed, 17 Mar 2021 14:48:43 +0100 +Subject: [PATCH 6/6] package/linux-firmware: add RTL87XX/RTL88XX Bluetooth + firmware + +Add firmware files for Realtek 87XX and 88XX Bluetooth chipsets. Those +are supported by the upstream Realtek Bluetooth driver CONFIG_BT_RTL. + +Signed-off-by: Stefan Agner +--- + package/linux-firmware/Config.in | 10 ++++++++++ + package/linux-firmware/linux-firmware.mk | 21 +++++++++++++++++++++ + 2 files changed, 31 insertions(+) + +diff --git a/package/linux-firmware/Config.in b/package/linux-firmware/Config.in +index a41310ff2a..ba3322fa18 100644 +--- a/package/linux-firmware/Config.in ++++ b/package/linux-firmware/Config.in +@@ -79,6 +79,16 @@ config BR2_PACKAGE_LINUX_FIRMWARE_AR3012_USB + help + Firmware files for Atheros bluetooth chipset AR3012 on USB. + ++config BR2_PACKAGE_LINUX_FIRMWARE_RTL_87XX_BT ++ bool "Realtek 87xx Bluetooth" ++ help ++ Realtek 8723a/8723b/8723bs/8723d/8723ds/8761a ++ ++config BR2_PACKAGE_LINUX_FIRMWARE_RTL_88XX_BT ++ bool "Realtek 88xx Bluetooth" ++ help ++ Realtek 8821a/8821c/8822b/8822cs/8822cu/8852au ++ + config BR2_PACKAGE_LINUX_FIRMWARE_TI_CC2560 + bool "TI CC2560" + help +diff --git a/package/linux-firmware/linux-firmware.mk b/package/linux-firmware/linux-firmware.mk +index f23da171c6..9c512ab750 100644 +--- a/package/linux-firmware/linux-firmware.mk ++++ b/package/linux-firmware/linux-firmware.mk +@@ -64,6 +64,27 @@ LINUX_FIRMWARE_FILES += qca/rampatch_usb_00000302.bin qca/nvm_usb_00000302.bin + LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENSE.qcom + endif + ++# Realtek 87xx Bluetooth ++ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_RTL_87XX_BT),y) ++LINUX_FIRMWARE_FILES += \ ++ rtl_bt/rtl8723a_fw.bin rtl_bt/rtl8723b_fw.bin \ ++ rtl_bt/rtl8723bs_config-OBDA8723.bin \ ++ rtl_bt/rtl8723bs_fw.bin rtl_bt/rtl8723d_config.bin \ ++ rtl_bt/rtl8723d_fw.bin rtl_bt/rtl8761a_fw.bin ++LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.rtlwifi_firmware.txt ++endif ++ ++# Realtek 88xx Bluetooth ++ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_RTL_88XX_BT),y) ++LINUX_FIRMWARE_FILES += \ ++ rtl_bt/rtl8812ae_fw.bin rtl_bt/rtl8821a_fw.bin \ ++ rtl_bt/rtl8821c_config.bin rtl_bt/rtl8821c_fw.bin \ ++ rtl_bt/rtl8822b_config.bin rtl_bt/rtl8822b_fw.bin \ ++ rtl_bt/rtl8822cs_config.bin rtl_bt/rtl8822cs_fw.bin \ ++ rtl_bt/rtl8822cu_config.bin rtl_bt/rtl8822cu_fw.bin ++LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.rtlwifi_firmware.txt ++endif ++ + # rt2501/rt61 + ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_RALINK_RT61),y) + LINUX_FIRMWARE_FILES += rt2561.bin rt2561s.bin rt2661.bin +-- +2.30.2 + diff --git a/buildroot/package/linux-firmware/Config.in b/buildroot/package/linux-firmware/Config.in index a41310ff2..ba3322fa1 100644 --- a/buildroot/package/linux-firmware/Config.in +++ b/buildroot/package/linux-firmware/Config.in @@ -79,6 +79,16 @@ config BR2_PACKAGE_LINUX_FIRMWARE_AR3012_USB help Firmware files for Atheros bluetooth chipset AR3012 on USB. +config BR2_PACKAGE_LINUX_FIRMWARE_RTL_87XX_BT + bool "Realtek 87xx Bluetooth" + help + Realtek 8723a/8723b/8723bs/8723d/8723ds/8761a + +config BR2_PACKAGE_LINUX_FIRMWARE_RTL_88XX_BT + bool "Realtek 88xx Bluetooth" + help + Realtek 8821a/8821c/8822b/8822cs/8822cu/8852au + config BR2_PACKAGE_LINUX_FIRMWARE_TI_CC2560 bool "TI CC2560" help diff --git a/buildroot/package/linux-firmware/linux-firmware.mk b/buildroot/package/linux-firmware/linux-firmware.mk index f23da171c..9c512ab75 100644 --- a/buildroot/package/linux-firmware/linux-firmware.mk +++ b/buildroot/package/linux-firmware/linux-firmware.mk @@ -64,6 +64,27 @@ LINUX_FIRMWARE_FILES += qca/rampatch_usb_00000302.bin qca/nvm_usb_00000302.bin LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENSE.qcom endif +# Realtek 87xx Bluetooth +ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_RTL_87XX_BT),y) +LINUX_FIRMWARE_FILES += \ + rtl_bt/rtl8723a_fw.bin rtl_bt/rtl8723b_fw.bin \ + rtl_bt/rtl8723bs_config-OBDA8723.bin \ + rtl_bt/rtl8723bs_fw.bin rtl_bt/rtl8723d_config.bin \ + rtl_bt/rtl8723d_fw.bin rtl_bt/rtl8761a_fw.bin +LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.rtlwifi_firmware.txt +endif + +# Realtek 88xx Bluetooth +ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_RTL_88XX_BT),y) +LINUX_FIRMWARE_FILES += \ + rtl_bt/rtl8812ae_fw.bin rtl_bt/rtl8821a_fw.bin \ + rtl_bt/rtl8821c_config.bin rtl_bt/rtl8821c_fw.bin \ + rtl_bt/rtl8822b_config.bin rtl_bt/rtl8822b_fw.bin \ + rtl_bt/rtl8822cs_config.bin rtl_bt/rtl8822cs_fw.bin \ + rtl_bt/rtl8822cu_config.bin rtl_bt/rtl8822cu_fw.bin +LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.rtlwifi_firmware.txt +endif + # rt2501/rt61 ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_RALINK_RT61),y) LINUX_FIRMWARE_FILES += rt2561.bin rt2561s.bin rt2661.bin