diff --git a/device/testing/device-amazon-soho/APKBUILD b/device/testing/device-amazon-soho/APKBUILD
index 766d980ac6332e54fb2b0101fd3680711a3c7d6d..2c03529b190c6d13b0118cc549f9f62e1c4972c3 100644
--- a/device/testing/device-amazon-soho/APKBUILD
+++ b/device/testing/device-amazon-soho/APKBUILD
@@ -2,17 +2,19 @@
 pkgname=device-amazon-soho
 pkgdesc="Amazon Kindle Fire HD (3rd Generation)"
 pkgver=0.1
-pkgrel=1
+pkgrel=2
 url="https://postmarketos.org"
 license="MIT"
 arch="armv7"
 options="!check !archcheck"
 depends="postmarketos-base linux-amazon-soho mkbootimg mesa-dri-gallium"
 makedepends="devicepkg-dev"
+subpackages="$pkgname-nonfree-firmware:nonfree_firmware"
 source="
 	deviceinfo
 	initfs-hook.sh
 	amazon-omap-boot-hack.sh
+	modules-load.conf
 "
 
 build() {
@@ -24,6 +26,13 @@ package() {
 	install -Dm755 "$srcdir/amazon-omap-boot-hack.sh" "$pkgdir/usr/share/postmarketos-mkinitfs/amazon-omap-boot-hack.sh"
 }
 
+nonfree_firmware() {
+	pkgdesc="Wifi firmware"
+	depends="firmware-amazon-soho"
+	mkdir "$subpkgdir"
+}
+
 sha512sums="c77494e106caa7c1df36f5b1bc32a178c96eade1f9663d092d59d62935bec30bbe105ba80a591b25335dd3a531800f42bf4cba3a60e063bc093755593d0e7d21  deviceinfo
 1aca985770246b9ca140996a498815b5c9ca3458a6cb84db85825344f01deda8b1de7c88e2e0c610df636ad2179faac7fd90d9992add51186a6449f2d43a3f71  initfs-hook.sh
-8944b00650e0e19bb5d7f6063827b6a8b9627fabe91f770729881813b7492e4c68a58ac14d98d961cade8290e07a44c8e4a162ec3983c6c1ab88149cd4589b34  amazon-omap-boot-hack.sh"
+8944b00650e0e19bb5d7f6063827b6a8b9627fabe91f770729881813b7492e4c68a58ac14d98d961cade8290e07a44c8e4a162ec3983c6c1ab88149cd4589b34  amazon-omap-boot-hack.sh
+61e8becbf6fa7c1c6c42e481083f5981ae7af33a48cbc53e817d8ac2c6a8e4f67a54b32ae3b8f5f25f7b412165a849dc93a629110dc47b0d16927bf2a12eb7e1  modules-load.conf"
diff --git a/device/testing/device-amazon-soho/modules-load.conf b/device/testing/device-amazon-soho/modules-load.conf
new file mode 100644
index 0000000000000000000000000000000000000000..eb917f82e0e83a99c567cccd4bfeebc5eeb535ba
--- /dev/null
+++ b/device/testing/device-amazon-soho/modules-load.conf
@@ -0,0 +1,6 @@
+# This file contains the names of kernel modules that should be loaded
+# at boot time, one per line. Lines beginning with "#" are ignored.
+
+# wifi module
+dhd
+
diff --git a/device/testing/firmware-amazon-soho/APKBUILD b/device/testing/firmware-amazon-soho/APKBUILD
new file mode 100644
index 0000000000000000000000000000000000000000..8a51dd21292c9cd84787e51eb39935eb340ba997
--- /dev/null
+++ b/device/testing/firmware-amazon-soho/APKBUILD
@@ -0,0 +1,25 @@
+# Maintainer: Jack_Kekzoz <J__A__K@hotmail.com>
+pkgname=firmware-amazon-soho
+pkgver=1
+pkgrel=0
+pkgdesc="Amazon Kindle Fire HD 3rd generation Firmware"
+url="https://github.com/kekzoz/vendor_amazon_soho"
+arch="armv7"
+license="proprietary"
+options="!check !strip !archcheck !spdx"
+
+# Source
+_commit="3f60222270e568487fa432d525346cfcd01f8182"
+_repository="vendor_amazon_soho"
+_url="https://github.com/kekzoz"
+source="$_repository-$_commit.tar.gz::$_url/$_repository/archive/$_commit.tar.gz"
+
+package() {
+	# Wifi
+	install -Dm644 "$srcdir/$_repository-$_commit/bcmdhd.cal" \
+		"$pkgdir/lib/firmware/postmarketos/bcmdhd.cal"
+	install -Dm644 "$srcdir/$_repository-$_commit/fw_bcm4330.bin" \
+		"$pkgdir/lib/firmware/postmarketos/fw_bcm4330.bin"
+}
+
+sha512sums="eb15e552d2708306ab3674841e9bef1514d0ac1a2257987416e1caa8c8f5716145a541150a55b9c6d24855eb79b8d06d50cc74fb4d9b0f8cac6b1e44d10e878c  vendor_amazon_soho-3f60222270e568487fa432d525346cfcd01f8182.tar.gz"
diff --git a/device/testing/linux-amazon-soho/APKBUILD b/device/testing/linux-amazon-soho/APKBUILD
index 3580bfb66112368fe859fc835f322f950dbc72a6..bab556e09253121481d50cc30a17fca603f0c629 100644
--- a/device/testing/linux-amazon-soho/APKBUILD
+++ b/device/testing/linux-amazon-soho/APKBUILD
@@ -3,7 +3,7 @@
 
 pkgname=linux-amazon-soho
 pkgver=3.4.113
-pkgrel=0
+pkgrel=1
 pkgdesc="Amazon Kindle Fire HD (3rd Generation) kernel fork"
 arch="armv7"
 _carch="arm"
@@ -52,7 +52,7 @@ package() {
 }
 
 sha512sums="793a098f5fce4327e8b1ddc6d640f3ff416307fbc4b3f32c3d5e56cf5b9b4e728fbcf096777c5d007866dab63ba20a847a6b0e7a23c3d2487d4834240e1ba485  linux-amazon-soho-4c841d44d7d1574367e7a786e079040660987367.tar.gz
-8f4177081d640a0af60a8f5b65771b323bd79c7599df7ee2db9644c5f376af9c45bf23f35ab1c377d4134931bbf30276a7b29f3da943efade617d3a167fe06ae  config-amazon-soho.armv7
+c157f1867773de2051e5f598e77f88bbcd936e7aa51c5ad57449a34f15fed4b0c43071baefff2fa471b2d9240853514283a0ce9a2fc7201f7c4fef93f639d473  config-amazon-soho.armv7
 77eba606a71eafb36c32e9c5fe5e77f5e4746caac292440d9fb720763d766074a964db1c12bc76fe583c5d1a5c864219c59941f5e53adad182dbc70bf2bc14a7  gcc7-give-up-on-ilog2-const-optimizations.patch
 197d40a214ada87fcb2dfc0ae4911704b9a93354b75179cd6b4aadbb627a37ec262cf516921c84a8b1806809b70a7b440cdc8310a4a55fca5d2c0baa988e3967  gcc8-fix-put-user.patch
 2b48f1bf0e3f70703d2cdafc47d5e615cc7c56c70bec56b2e3297d3fa4a7a1321d649a8679614553dde8fe52ff1051dae38d5990e3744c9ca986d92187dcdbeb  gcc10-extern_YYLOC_global_declaration.patch
diff --git a/device/testing/linux-amazon-soho/config-amazon-soho.armv7 b/device/testing/linux-amazon-soho/config-amazon-soho.armv7
index ba1e11dad8daa50e3e31a7e9825e834353f5bc44..b873ba012a065036dc668d2c1b0246933ad2981e 100644
--- a/device/testing/linux-amazon-soho/config-amazon-soho.armv7
+++ b/device/testing/linux-amazon-soho/config-amazon-soho.armv7
@@ -1516,8 +1516,8 @@ CONFIG_RFKILL_STE=y
 # CONFIG_B43LEGACY is not set
 CONFIG_BCMDHD=y
 # CONFIG_BCM4339 is not set
-CONFIG_BCMDHD_FW_PATH="/system/vendor/firmware/fw_bcm4330.bin"
-CONFIG_BCMDHD_NVRAM_PATH="/system/etc/wifi/bcmdhd.cal"
+CONFIG_BCMDHD_FW_PATH="/lib/firmware/postmarketos/fw_bcm4330.bin"
+CONFIG_BCMDHD_NVRAM_PATH="/lib/firmware/postmarketos/bcmdhd.cal"
 CONFIG_DHD_USE_STATIC_BUF=y
 # CONFIG_DHD_USE_SCHED_SCAN is not set
 # CONFIG_BRCMFMAC is not set