diff --git a/br-ext-chip-allwinner/configs/v851s_lite_defconfig b/br-ext-chip-allwinner/configs/v851s_lite_defconfig
index 803760ec..f98ea40e 100644
--- a/br-ext-chip-allwinner/configs/v851s_lite_defconfig
+++ b/br-ext-chip-allwinner/configs/v851s_lite_defconfig
@@ -54,6 +54,8 @@ BR2_PACKAGE_LIBCURL_OPENIPC_CURL=y
 # BR2_PACKAGE_LIBCURL_OPENIPC_EXTRA_PROTOCOLS_FEATURES is not set
 BR2_PACKAGE_LIBEVENT_OPENIPC=y
 BR2_PACKAGE_LIBOGG_OPENIPC=y
+BR2_PACKAGE_LINUX_FIRMWARE_OPENIPC=y
+BR2_PACKAGE_LINUX_FIRMWARE_OPENIPC_XRADIOTECH_XR829=y
 BR2_PACKAGE_MAJESTIC_WEBUI=y
 BR2_PACKAGE_MBEDTLS_OPENIPC=y
 BR2_PACKAGE_VTUND_OPENIPC=y
diff --git a/general/overlay/etc/wireless/sdio b/general/overlay/etc/wireless/sdio
index f47cf539..95503292 100755
--- a/general/overlay/etc/wireless/sdio
+++ b/general/overlay/etc/wireless/sdio
@@ -26,6 +26,12 @@ if [ "$1" = "rtl8189fs-generic" ]; then
 	exit 0
 fi
 
+# Generic XR829
+if [ "$1" = "xr829-generic" ]; then
+	modprobe xradio_wlan
+	exit 0
+fi
+
 # T20 Wyze PanV1
 if [ "$1" = "rtl8189es-t20-wyze-pan-v1" ]; then
 	set_mmc 1
diff --git a/general/package/linux-firmware-openipc/Config.in b/general/package/linux-firmware-openipc/Config.in
index cc108fbb..d0961b5e 100644
--- a/general/package/linux-firmware-openipc/Config.in
+++ b/general/package/linux-firmware-openipc/Config.in
@@ -26,6 +26,11 @@ config BR2_PACKAGE_LINUX_FIRMWARE_OPENIPC_RTL_8188EU
 	help
 	  Realtek 8188EU
 
+config BR2_PACKAGE_LINUX_FIRMWARE_OPENIPC_XRADIOTECH_XR829
+	bool "Xradiotech XR829"
+	help
+	  Xradiotech XR829
+
 endmenu
 
 endif
diff --git a/general/package/linux-firmware-openipc/files/xr829/boot_xr829.bin b/general/package/linux-firmware-openipc/files/xr829/boot_xr829.bin
new file mode 100755
index 00000000..c401742b
Binary files /dev/null and b/general/package/linux-firmware-openipc/files/xr829/boot_xr829.bin differ
diff --git a/general/package/linux-firmware-openipc/files/xr829/fw_xr829.bin b/general/package/linux-firmware-openipc/files/xr829/fw_xr829.bin
new file mode 100755
index 00000000..2b5b8c9e
Binary files /dev/null and b/general/package/linux-firmware-openipc/files/xr829/fw_xr829.bin differ
diff --git a/general/package/linux-firmware-openipc/files/xr829/sdd_xr829.bin b/general/package/linux-firmware-openipc/files/xr829/sdd_xr829.bin
new file mode 100755
index 00000000..49bffb70
Binary files /dev/null and b/general/package/linux-firmware-openipc/files/xr829/sdd_xr829.bin differ
diff --git a/general/package/linux-firmware-openipc/linux-firmware-openipc.mk b/general/package/linux-firmware-openipc/linux-firmware-openipc.mk
index 5a265535..fa5e5afe 100644
--- a/general/package/linux-firmware-openipc/linux-firmware-openipc.mk
+++ b/general/package/linux-firmware-openipc/linux-firmware-openipc.mk
@@ -29,10 +29,18 @@ define LINUX_FIRMWARE_OPENIPC_INSTALL_REALTEK
 endef
 endif
 
+ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_OPENIPC_XRADIOTECH_XR829),y)
+define LINUX_FIRMWARE_OPENIPC_INSTALL_XRADIOTECH
+	$(INSTALL) -m 755 -d $(TARGET_DIR)/lib/firmware
+	$(INSTALL) -m 644 -t $(TARGET_DIR)/lib/firmware $(LINUX_FIRMWARE_OPENIPC_PKGDIR)/files/xr829/*_xr829.bin
+endef
+endif
+
 define LINUX_FIRMWARE_OPENIPC_INSTALL_TARGET_CMDS
 	$(LINUX_FIRMWARE_OPENIPC_INSTALL_ATHEROS)
 	$(LINUX_FIRMWARE_OPENIPC_INSTALL_MEDIATEK)
 	$(LINUX_FIRMWARE_OPENIPC_INSTALL_REALTEK)
+	$(LINUX_FIRMWARE_OPENIPC_INSTALL_XRADIOTECH)
 endef
 
 $(eval $(generic-package))