diff --git a/target/linux/ipq806x/base-files/lib/upgrade/platform.sh b/target/linux/ipq806x/base-files/lib/upgrade/platform.sh
index 75a01b7d776188db6c0a34eb6108772fb2b1e710..c0e19a128739378473848a72ab4f7642dcecc946 100644
--- a/target/linux/ipq806x/base-files/lib/upgrade/platform.sh
+++ b/target/linux/ipq806x/base-files/lib/upgrade/platform.sh
@@ -16,4 +16,15 @@ platform_check_image() {
 	esac
 }
 
+platform_pre_upgrade() {
+	local board=$(ipq806x_board_name)
+
+	case "$board" in
+	AP148 |\
+	r7500)
+		nand_do_upgrade "$1"
+		;;
+	esac
+}
+
 # use default for platform_do_upgrade()