diff --git a/target/linux/ramips/base-files/etc/diag.sh b/target/linux/ramips/base-files/etc/diag.sh
index d8b913fca3f71bed4867ebb7ce7a5d3dbd72f459..ff5818c20c0c9f5de409fa97fd806c7979584a40 100755
--- a/target/linux/ramips/base-files/etc/diag.sh
+++ b/target/linux/ramips/base-files/etc/diag.sh
@@ -33,6 +33,9 @@ get_status_led() {
 	3g-6200n)
 		status_led="edimax:green:power"
 		;;
+	3g300m)
+		status_led="tenda:blue:ap"
+		;;
 	argus-atp52b)
 		status_led="argus-atp52b:green:run"
 		;;
diff --git a/target/linux/ramips/base-files/etc/hotplug.d/firmware/10-rt2x00-eeprom b/target/linux/ramips/base-files/etc/hotplug.d/firmware/10-rt2x00-eeprom
index 6bd2c922c8ad67f6d9b34be3bb363b604f630bb5..61d79b940580b132402e77c395ea0c86b37eaecd 100644
--- a/target/linux/ramips/base-files/etc/hotplug.d/firmware/10-rt2x00-eeprom
+++ b/target/linux/ramips/base-files/etc/hotplug.d/firmware/10-rt2x00-eeprom
@@ -52,6 +52,7 @@ case "$FIRMWARE" in
 		;;
 
 	3g-6200n | \
+	3g300m | \
 	air3gii | \
 	all0239-3g | \
 	all0256n | \
diff --git a/target/linux/ramips/base-files/etc/uci-defaults/01_leds b/target/linux/ramips/base-files/etc/uci-defaults/01_leds
index fa9c4f0ab4e7d982f8533858d1cd56930504217b..516f3cc50529a54e728f0573fd18d8c55356a095 100755
--- a/target/linux/ramips/base-files/etc/uci-defaults/01_leds
+++ b/target/linux/ramips/base-files/etc/uci-defaults/01_leds
@@ -18,6 +18,9 @@ case $board in
 		set_wifi_led "edimax:amber:wlan"
 		set_usb_led "edimax:blue:3g"
 		;;
+	3g300m)
+		set_usb_led "tenda:blue:3g"
+		;;
 	air3gii)
 		set_wifi_led "airlive:green:wlan"
 		set_usb_led "airlive:green:mobile"
diff --git a/target/linux/ramips/base-files/etc/uci-defaults/02_network b/target/linux/ramips/base-files/etc/uci-defaults/02_network
index bbcdf6fde7a9060cb88c9eafa4940bcd254d1a50..a8e5ef9d7ca52a454cc81cffcb28fac4645833fa 100755
--- a/target/linux/ramips/base-files/etc/uci-defaults/02_network
+++ b/target/linux/ramips/base-files/etc/uci-defaults/02_network
@@ -42,6 +42,7 @@ ramips_setup_interfaces()
 	ucidef_set_interface_loopback
 
 	case $board in
+	3g300m | \
 	all0256n | \
 	all5002 | \
 	broadway)
@@ -148,6 +149,7 @@ ramips_setup_macs()
 		lan_mac=$(ramips_get_mac_binary factory 40)
 		;;
 	3g-6200n | \
+	3g300m | \
 	air3gii | \
 	argus-atp52b | \
 	bc2 | \
diff --git a/target/linux/ramips/base-files/lib/preinit/06_set_iface_mac b/target/linux/ramips/base-files/lib/preinit/06_set_iface_mac
index f411ab1fd058f3d7274566d4a8dbcfe7bcf41068..8f9f83583f63b2d82a1b5f0026ac839e7ddf1075 100644
--- a/target/linux/ramips/base-files/lib/preinit/06_set_iface_mac
+++ b/target/linux/ramips/base-files/lib/preinit/06_set_iface_mac
@@ -9,6 +9,7 @@ preinit_set_mac_address() {
 
 	case $(ramips_board_name) in
 	3g-6200n |\
+	3g300m | \
 	mzk-w300nh2 |\
 	wl-330n |\
 	wl-330n3g)
diff --git a/target/linux/ramips/base-files/lib/ramips.sh b/target/linux/ramips/base-files/lib/ramips.sh
index 03b49e8f313bcfdad80cc2be9577a1efa4618bac..83dcc0e485ecddc7cef2a42d2601d6f63a39f8c8 100755
--- a/target/linux/ramips/base-files/lib/ramips.sh
+++ b/target/linux/ramips/base-files/lib/ramips.sh
@@ -182,6 +182,9 @@ ramips_board_name() {
 	*"Sitecom WL-351 v1 002")
 		name="wl-351"
 		;;
+	*"Tenda 3G300M")
+		name="3g300m"
+		;;
 	*"Tenda W306R V2.0")
 		name="w306r-v20"
 		;;
diff --git a/target/linux/ramips/base-files/lib/upgrade/platform.sh b/target/linux/ramips/base-files/lib/upgrade/platform.sh
index 584e16410a47d0e7c6f1b36cf70877c88e6ff961..0ddf2df444a6a541e8650b93d31fb383fd346403 100755
--- a/target/linux/ramips/base-files/lib/upgrade/platform.sh
+++ b/target/linux/ramips/base-files/lib/upgrade/platform.sh
@@ -15,6 +15,7 @@ platform_check_image() {
 
 	case "$board" in
 	3g-6200n | \
+	3g300m | \
 	air3gii | \
 	all0239-3g | \
 	all0256n | \