diff --git a/package/boot/uboot-envtools/files/ar71xx b/package/boot/uboot-envtools/files/ar71xx
index 0c81f328b6b718005e32f7bb555e6b7bdb7c8e4e..4a9bec53dc7cf34a3fe9a983805db18faff2fdc7 100644
--- a/package/boot/uboot-envtools/files/ar71xx
+++ b/package/boot/uboot-envtools/files/ar71xx
@@ -15,6 +15,7 @@ board=$(ar71xx_board_name)
 
 case "$board" in
 all0258n | \
+cap324 | \
 cap4200ag | \
 carambola2 | \
 eap300v2 | \
diff --git a/target/linux/ar71xx/base-files/etc/board.d/01_leds b/target/linux/ar71xx/base-files/etc/board.d/01_leds
index ed2aeae65ad10709f89ff4e6040073a9f2264e15..2c7bcb768c83699dbc19e0866c05a9ef41a4c205 100755
--- a/target/linux/ar71xx/base-files/etc/board.d/01_leds
+++ b/target/linux/ar71xx/base-files/etc/board.d/01_leds
@@ -92,6 +92,12 @@ bxu2000n-2-a1)
 	ucidef_set_led_wlan "wlan" "WLAN" "bhu:green:wlan" "phy0tpt"
 	;;
 
+cap324)
+	ucidef_set_led_netdev "lan" "LAN" "pcs:green:lan" "eth0"
+	ucidef_set_led_wlan "wlan_amber" "WLAN_AMBER" "pcs:amber:wlan" "phy0tpt"
+	ucidef_set_led_wlan "wlan_green" "WLAN_GREEN" "pcs:green:wlan" "phy1tpt"
+	;;
+
 cap4200ag)
 	ucidef_set_led_default "lan_green" "LAN_GREEN" "senao:green:lan" "1"
 	ucidef_set_led_wlan "wlan_amber" "WLAN_AMBER" "senao:amber:wlan" "phy0tpt"
diff --git a/target/linux/ar71xx/base-files/etc/board.d/02_network b/target/linux/ar71xx/base-files/etc/board.d/02_network
index bfc898ce6d1515ba6c6434359987ef7fed0bb887..7cb3d882da47cf69ac00cf3f6afc4b87f9351a87 100755
--- a/target/linux/ar71xx/base-files/etc/board.d/02_network
+++ b/target/linux/ar71xx/base-files/etc/board.d/02_network
@@ -352,6 +352,10 @@ wp543)
 	ucidef_set_interface_lan "eth0"
 	;;
 
+cap324)
+	ucidef_set_interface_lan "eth0" "dhcp"
+	;;
+
 arduino-yun | \
 dir-505-a1)
 	ucidef_set_interface_lan "eth1"
diff --git a/target/linux/ar71xx/base-files/etc/diag.sh b/target/linux/ar71xx/base-files/etc/diag.sh
index fd57c55b1d1b94c9dda49b7da3446c217a9e37c3..899206aa16e1de5e2ef7143c6dc91a599c93ab76 100644
--- a/target/linux/ar71xx/base-files/etc/diag.sh
+++ b/target/linux/ar71xx/base-files/etc/diag.sh
@@ -55,6 +55,9 @@ get_status_led() {
 	bxu2000n-2-a1)
 		status_led="bhu:green:status"
 		;;
+	cap324)
+		status_led="pcs:green:power"
+		;;
 	cap4200ag)
 		status_led="senao:green:pwr"
 		;;
diff --git a/target/linux/ar71xx/base-files/lib/ar71xx.sh b/target/linux/ar71xx/base-files/lib/ar71xx.sh
index 5af7adf1afa9ff0434079f0f49dc1d2c1350d231..b241060c6d5d382bf17f8087d4be344ba4dfa36c 100755
--- a/target/linux/ar71xx/base-files/lib/ar71xx.sh
+++ b/target/linux/ar71xx/base-files/lib/ar71xx.sh
@@ -411,6 +411,9 @@ ar71xx_board_detect() {
 	*AW-NR580)
 		name="aw-nr580"
 		;;
+	*CAP324)
+		name="cap324"
+		;;
 	*CAP4200AG)
 		name="cap4200ag"
 		;;
diff --git a/target/linux/ar71xx/base-files/lib/upgrade/platform.sh b/target/linux/ar71xx/base-files/lib/upgrade/platform.sh
index 7e564b45cc85c0bb0c6f03fb392215b21aa7eada..2fa9a59cddf0f0e5ee74f424eee95d23889e485f 100755
--- a/target/linux/ar71xx/base-files/lib/upgrade/platform.sh
+++ b/target/linux/ar71xx/base-files/lib/upgrade/platform.sh
@@ -167,6 +167,7 @@ platform_check_image() {
 	case "$board" in
 	all0315n | \
 	all0258n | \
+	cap324 | \
 	cap4200ag)
 		platform_check_image_allnet "$1" && return 0
 		return 1