diff --git a/package/firmware/ipq-wifi/Makefile b/package/firmware/ipq-wifi/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..2f1b280bec2c4ce1ccfb4f04de6837d3f3df68f5
--- /dev/null
+++ b/package/firmware/ipq-wifi/Makefile
@@ -0,0 +1,53 @@
+include $(TOPDIR)/rules.mk
+include $(INCLUDE_DIR)/version.mk
+
+PKG_RELEASE:=1
+
+include $(INCLUDE_DIR)/package.mk
+
+define Build/Prepare
+	mkdir -p $(PKG_BUILD_DIR)
+endef
+
+define Build/Compile
+endef
+
+ALLWIFIBOARDS:=rt-ac58u fritz4040 nbg6617
+ALLWIFIPACKAGES:=$(foreach BOARD,$(ALLWIFIBOARDS),ipq-wifi-$(BOARD))
+
+define Package/ipq-wifi-default
+  SUBMENU:=ath10k IPQ4019 Boarddata
+  SECTION:=firmware
+  CATEGORY:=Firmware
+  DEPENDS:=@TARGET_ipq806x +ath10k-firmware-qca4019
+  TITLE:=Custom Board
+endef
+
+define generate-ipq-wifi-package
+  define Package/ipq-wifi-$(1)
+    $(call Package/ipq-wifi-default)
+    TITLE:=Board for $(3)
+    CONFLICTS:=$(PREV_BOARD)
+  endef
+
+  define Package/ipq-wifi-$(1)/description
+This device custom package board-2.bin overwrites the board-2.bin
+file which is supplied by the ath10k-firmware-qca4019 package.
+
+This is package is only necessary for the $(3).
+Don't install it for any other device!
+  endef
+
+  define Package/ipq-wifi-$(1)/install-overlay
+	$(INSTALL_DIR) $$(1)/lib/firmware/ath10k/QCA4019/hw1.0
+	$(INSTALL_DATA) ./$(2) $$(1)/lib/firmware/ath10k/QCA4019/hw1.0/board-2.bin
+  endef
+
+  PREV_BOARD+=ipq-wifi-$(1)
+endef
+
+$(eval $(call generate-ipq-wifi-package,rt-ac58u,board-rt-ac58u.bin,ASUS RT-AC58U/RT-ACRH13))
+$(eval $(call generate-ipq-wifi-package,fritz4040,board-fritz4040.bin,AVM FRITZBox 4040))
+$(eval $(call generate-ipq-wifi-package,nbg6617,board-nbg6617.bin,ZyXEL NBG6617))
+
+$(foreach PACKAGE,$(ALLWIFIPACKAGES),$(eval $(call BuildPackage,$(PACKAGE))))
diff --git a/package/firmware/ipq-wifi/board-fritz4040.bin b/package/firmware/ipq-wifi/board-fritz4040.bin
new file mode 100644
index 0000000000000000000000000000000000000000..8d17a9f38fd2a0d2931ba2570f0b5af0eef4ec6a
Binary files /dev/null and b/package/firmware/ipq-wifi/board-fritz4040.bin differ
diff --git a/package/firmware/ipq-wifi/board-nbg6617.bin b/package/firmware/ipq-wifi/board-nbg6617.bin
new file mode 100644
index 0000000000000000000000000000000000000000..ab4d43e8cbc949c06f74e332807b8d92239a7de0
Binary files /dev/null and b/package/firmware/ipq-wifi/board-nbg6617.bin differ
diff --git a/package/firmware/ipq-wifi/board-rt-ac58u.bin b/package/firmware/ipq-wifi/board-rt-ac58u.bin
new file mode 100644
index 0000000000000000000000000000000000000000..379bdc8ce20b5760dbbdbf9790ca9f5b20c4df3b
Binary files /dev/null and b/package/firmware/ipq-wifi/board-rt-ac58u.bin differ