diff --git a/bsp/board_ar71xx.bsp b/bsp/board_ar71xx.bsp
index f5ee15b823f490008c9701770872acf21f242ecc..fdf4cf41f92a3ed12d332ff8d58d7c09d1ac9d31 100644
--- a/bsp/board_ar71xx.bsp
+++ b/bsp/board_ar71xx.bsp
@@ -1,5 +1,6 @@
 machine=ar71xx
 chipset=ar71xx
+subtarget=generic
 target=$builddir/$machine
 images=("lede-ar71xx-generic-cpe210-220-squashfs-sysupgrade.bin"
         "lede-ar71xx-generic-cpe510-520-squashfs-sysupgrade.bin"
diff --git a/bsp/board_wdr4900.bsp b/bsp/board_wdr4900.bsp
index cc7157d5d53d3ee0f9c0e7ee698c30ac696156ca..30791e48d3554adb47daef0e3d3d5d9ce67d14d5 100644
--- a/bsp/board_wdr4900.bsp
+++ b/bsp/board_wdr4900.bsp
@@ -1,5 +1,6 @@
 machine=wdr4900
 chipset=mpc85xx
+subtarget=generic
 target=$builddir/$machine
 
 images=(
diff --git a/buildscript b/buildscript
index 5f829d6e06afebf1c66a79c5bd8c3422daa44960..2fb179433ed4f1edce79f10a88876463f6535da7 100755
--- a/buildscript
+++ b/buildscript
@@ -277,19 +277,21 @@ cp_firmware() {
         local community="fff"
     fi
 
+    [ -n "$subtarget" ] || subtarget="generic"
+
     for image in ${images[@]}; do
         filename_build=${image//lede/${community}-${version}}
         filename_build=${filename_build//generic/g}
-        cp "$target/bin/targets/${chipset}/generic/$image" "./bin/$filename_build"
+        cp "$target/bin/targets/${chipset}/${subtarget}/$image" "./bin/$filename_build"
 
         for region in "" "-eu" "-us"; do
             image_factory=${image/sysupgrade/factory$region}
-            if [[ -f "$target/bin/targets/${chipset}/generic/$image_factory" ]]; then
+            if [[ -f "$target/bin/targets/${chipset}/${subtarget}/$image_factory" ]]; then
               filename_build_factory=${filename_build/sysupgrade/factory$region}
               if [ ${#image_factory} -lt ${#filename_build_factory} ]; then
                 echo "Warning: The factory image file name (${filename_build_factory}) is longer than the OpenWrt one, which might lead to incompatibility with the stock firmware."
               fi
-              cp "$target/bin/targets/${chipset}/generic/$image_factory" "./bin/$filename_build_factory"
+              cp "$target/bin/targets/${chipset}/${subtarget}/$image_factory" "./bin/$filename_build_factory"
             fi
         done
     done