diff --git a/docs/user/supported_devices.rst b/docs/user/supported_devices.rst
index a6547799291bd65cbd4ec9363479a8eaea142f27..c42824cdfdd76c07ef926875da6e26aef857394a 100644
--- a/docs/user/supported_devices.rst
+++ b/docs/user/supported_devices.rst
@@ -303,6 +303,7 @@ ramips-mt7620
 * TP-Link  
 
   - Archer C2 v1
+  - Archer C20i
   - Archer C50 v1
 
 * Xiaomi
diff --git a/package/gluon-core/luasrc/lib/gluon/upgrade/010-primary-mac b/package/gluon-core/luasrc/lib/gluon/upgrade/010-primary-mac
index 1f5c7a8822180f22d8354bdf388de21600504421..20ec1949850f850ed7f8c931fc8a61b03d581156 100755
--- a/package/gluon-core/luasrc/lib/gluon/upgrade/010-primary-mac
+++ b/package/gluon-core/luasrc/lib/gluon/upgrade/010-primary-mac
@@ -61,7 +61,7 @@ elseif platform.match('mpc85xx', 'p1020', {'aerohive,hiveap-330'}) then
   table.insert(try_files, 1, '/sys/class/net/eth0/address')
 elseif platform.match('mpc85xx', 'p1020', {'ocedo,panda'}) then
   table.insert(try_files, 1, '/sys/class/net/eth1/address')
-elseif platform.match('ramips', 'mt7620', {'miwifi-mini', 'tplink,c2-v1', 'c50'}) then
+elseif platform.match('ramips', 'mt7620', {'miwifi-mini', 'tplink,c2-v1', 'c20i', 'c50'}) then
   table.insert(try_files, 1, '/sys/class/net/eth0/address')
 elseif platform.match('ramips', 'mt7621', {'dir-860l-b1'}) then
   table.insert(try_files, 1, '/sys/class/ieee80211/phy1/macaddress')
diff --git a/targets/ramips-mt7620 b/targets/ramips-mt7620
index 860193e5939cad8fc92ee8aeac9453f6e3d9da9a..74bf2e524acefbee845b351c79002b390a0aa60a 100644
--- a/targets/ramips-mt7620
+++ b/targets/ramips-mt7620
@@ -43,6 +43,8 @@ device('tp-link-archer-c2-v1', 'tplink_c2-v1', {
         factory = false,
 })
 
+device('tp-link-archer-c20i', 'ArcherC20i')
+
 device('tp-link-archer-c50', 'ArcherC50v1', {
         factory = '-squashfs-factory' .. tplink_region_suffix,
 })