diff --git a/docs/index.rst b/docs/index.rst
index d612b6ebc8ff4119ccca26efc1e117039ac5c2e4..76dc63faa3590d46fb00edb98a16b5bd55b071da 100644
--- a/docs/index.rst
+++ b/docs/index.rst
@@ -302,6 +302,10 @@ ipq40xx
   - EX6100v2 [#80211s]_
   - EX6150v2 [#80211s]_
 
+* OpenMesh
+
+  - A42 [#80211s]_
+
 * ZyXEL
 
   - WRE6606 [#80211s]_
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 306a1f4144f15cd7849bf01e44c2be7f2b6303c1..cbf7be2e1da517450a2e487313e54794295725bb 100755
--- a/package/gluon-core/luasrc/lib/gluon/upgrade/010-primary-mac
+++ b/package/gluon-core/luasrc/lib/gluon/upgrade/010-primary-mac
@@ -44,7 +44,8 @@ elseif platform.match('ar71xx', 'generic', {'archer-c5', 'archer-c58-v1',
                                             'archer-c59-v1', 'archer-c60-v1',
                                             'archer-c7'}) then
   table.insert(try_files, 1, '/sys/class/net/eth1/address')
-elseif platform.match('ipq40xx', nil, {'avm,fritzbox-4040'}) then
+elseif platform.match('ipq40xx', nil, {'avm,fritzbox-4040',
+                                       'openmesh,a42'}) then
   table.insert(try_files, 1, '/sys/class/net/eth0/address')
 end
 
diff --git a/targets/ipq40xx b/targets/ipq40xx
index f0dc6e17ce3b6dbc15afa71b73938da4c9fd6eec..0fd84f50bc0dd1c0b199aad45fd073101ba7e02e 100644
--- a/targets/ipq40xx
+++ b/targets/ipq40xx
@@ -30,6 +30,12 @@ factory .img
 packages $ATH10K_PACKAGES_IPQ40XX
 
 
+# OpenMesh
+
+device openmesh-a42 openmesh_a42
+packages $ATH10K_PACKAGES_IPQ40XX
+
+
 # ZyXEL
 
 device zyxel-wre6606 zyxel_wre6606