diff --git a/docs/dev/hardware.rst b/docs/dev/hardware.rst
index c5200eb6cf4e70bfd5e79afc3bf530b4ec51f01a..56f56cbaaeb5b684f2b7c10cc689bac190b01647 100644
--- a/docs/dev/hardware.rst
+++ b/docs/dev/hardware.rst
@@ -34,8 +34,8 @@ The ``tiny`` device-class contains devices with the following limitations:
 
 Adding profiles
 ---------------
-The vast majority of devices with ath9k WLAN is based on the ar71xx target of OpenWrt.
-If the hardware you want to add support for is ar71xx, adding a new profile
+The vast majority of devices with ath9k WLAN are based on the ath79 target of OpenWrt.
+If the hardware you want to add support for is ath79, adding a new profile
 is sufficient.
 
 Profiles are defined in ``targets/*`` in a shell-based DSL (so common shell
@@ -155,10 +155,7 @@ Build system support
 ''''''''''''''''''''
 
 A definition for the new target must be created under ``targets``, and it must be added
-to ``targets/targets.mk``. The ``GluonTarget`` macro takes one to three arguments:
-the target name, the Gluon subtarget name (if the target has subtargets), and the
-OpenWrt subtarget name (if it differs from the Gluon subtarget). The third argument
-can be used to define multiple Gluon targets with different configuration for the
-same OpenWrt target, like it is done for the ``ar71xx-tiny`` target.
+to ``targets/targets.mk``. The ``GluonTarget`` macro takes one to two arguments:
+the target name and the OpenWrt subtarget name.
 
 After this, is should be sufficient to call ``make GLUON_TARGET=<target>`` to build the images for the new target.
diff --git a/docs/features/autoupdater.rst b/docs/features/autoupdater.rst
index 1d4c65bb3b82f3f969970806f2c1436579e1f915..6e011245f3616a02fd31e7a6f8352e3e70458dea 100644
--- a/docs/features/autoupdater.rst
+++ b/docs/features/autoupdater.rst
@@ -61,9 +61,9 @@ A fully automated nightly build could use the following commands:
     git pull
     # git -C site pull
     make update
-    make clean GLUON_TARGET=ar71xx-generic
+    make clean GLUON_TARGET=ath79-generic
     NUM_CORES_PLUS_ONE=$(expr $(nproc) + 1)
-    make -j$NUM_CORES_PLUS_ONE GLUON_TARGET=ar71xx-generic GLUON_RELEASE=$GLUON_RELEASE \
+    make -j$NUM_CORES_PLUS_ONE GLUON_TARGET=ath79-generic GLUON_RELEASE=$GLUON_RELEASE \
         GLUON_AUTOUPDATER_BRANCH=experimental GLUON_AUTOUPDATER_ENABLED=1
     make manifest GLUON_RELEASE=$GLUON_RELEASE GLUON_AUTOUPDATER_BRANCH=experimental
     contrib/sign.sh $SECRETKEY output/images/sysupgrade/experimental.manifest
diff --git a/docs/user/getting_started.rst b/docs/user/getting_started.rst
index 3cca4267f7a0e4d5c87e7dd21358a8d1d3907f15..e22a11a57eefa1d33b132f4d46c77efcca5a908c 100644
--- a/docs/user/getting_started.rst
+++ b/docs/user/getting_started.rst
@@ -84,14 +84,14 @@ Next go back to the top-level Gluon directory and build Gluon::
 
     cd ..
     make update                        # Get other repositories used by Gluon
-    make GLUON_TARGET=ar71xx-generic   # Build Gluon
+    make GLUON_TARGET=ath79-generic   # Build Gluon
 
 In case of errors read the messages carefully and try to fix the stated issues
 (e.g. install missing tools not available or look for Troubleshooting_ in the wiki.
 
 .. _Troubleshooting: https://github.com/freifunk-gluon/gluon/wiki/Troubleshooting
 
-``ar71xx-generic`` is the most common target and will generate images for most of the supported hardware.
+``ath79-generic`` is the most common target and will generate images for most of the supported hardware.
 To see a complete list of supported targets, call ``make`` without setting ``GLUON_TARGET``.
 
 To build all targets use a loop like this::
@@ -124,7 +124,7 @@ Cleaning the build tree
 
 There are two levels of `make clean`::
 
-    make clean GLUON_TARGET=ar71xx-generic
+    make clean GLUON_TARGET=ath79-generic
 
 will ensure all packages are rebuilt for a single target. This is usually not
 necessary, but may fix certain kinds of build failures.
diff --git a/docs/user/site.rst b/docs/user/site.rst
index 408cf4553c5190bd6ffe21c09dec8ddf60977391..a3d221c4915f9b7e13c8dff749ff3b5687ed395f 100644
--- a/docs/user/site.rst
+++ b/docs/user/site.rst
@@ -102,7 +102,7 @@ opkg \: optional
 
     - ``%d`` is replaced by the OpenWrt distribution name ("openwrt")
     - ``%v`` is replaced by the OpenWrt version number (e.g. "17.01")
-    - ``%S`` is replaced by the target board (e.g. "ar71xx/generic")
+    - ``%S`` is replaced by the target board (e.g. "ath79/generic")
     - ``%A`` is replaced by the target architecture (e.g. "mips_24kc")
     - ``%GS`` is replaced by the Gluon site code (as specified in ``site.conf``)
     - ``%GV`` is replaced by the Gluon version
diff --git a/docs/user/supported_devices.rst b/docs/user/supported_devices.rst
index 2cd5437bc839a7e3f5c5645a666ad812da53c35f..b99014d960b40b36b5e7e4255f7c6abbe32db40f 100644
--- a/docs/user/supported_devices.rst
+++ b/docs/user/supported_devices.rst
@@ -1,187 +1,6 @@
 Supported Devices & Architectures
 =================================
 
-ar71xx-generic
---------------
-
-* 8devices
-
-  - Carambola 2
-
-* ALFA Network
-
-  - AP121 [#deprecated]_  [#device-class-tiny]_
-  - AP121F
-  - AP121U [#deprecated]_  [#device-class-tiny]_
-
-* Allnet
-
-  - ALL0315N
-
-* AVM
-
-  - Fritz!Box 4020 [#avmflash]_
-  - Fritz!WLAN Repeater 300E [#avmflash]_
-  - Fritz!WLAN Repeater 450E [#avmflash]_
-
-* Buffalo
-
-  - WZR-HP-AG300H / WZR-600DHP
-  - WZR-HP-G300NH
-  - WZR-HP-G300NH2
-  - WZR-HP-G450H
-
-* D-Link
-
-  - DAP-1330 (A1)
-  - DIR-505 (A1, A2)
-  - DIR-825 (B1)
-
-* GL.iNet
-
-  - 6408A
-  - 6416A
-  - GL-AR150
-  - GL-AR300M
-  - GL-AR750
-  - GL-USB150 (Microuter)
-
-* Linksys
-
-  - WRT160NL  [#device-class-tiny]_
-
-* Netgear
-
-  - WNDR3700 (v1, v2)
-  - WNDR3800
-  - WNDRMAC (v2)
-
-* OCEDO
-
-  - Koala
-
-* OpenMesh
-
-  - A40
-  - A60
-  - MR600 (v1, v2)
-  - MR900 (v1, v2)
-  - MR1750 (v1, v2)
-  - OM2P (v1, v2, v4)
-  - OM2P-HS (v1, v2, v3, v4)
-  - OM2P-LC
-  - OM5P
-  - OM5P-AN
-  - OM5P-AC (v1, v2)
-
-* TP-Link
-
-  - Archer C5 (v1)
-  - Archer C59 (v1)
-  - Archer C7 (v2, v4, v5)
-  - CPE210 (v1.0, v1.1, v2.0, v3.0)
-  - CPE220 (v1.1)
-  - CPE510 (v1.0, v1.1)
-  - CPE520 (v1.1)
-  - RE450 (v1)  [#device-class-tiny]_
-  - TD-W8970 (v1) [#lan_as_wan]_
-  - TL-WDR3500 (v1)
-  - TL-WDR3600 (v1)
-  - TL-WDR4300 (v1)
-  - TL-WR710N (v1, v2.1)
-  - TL-WR810N (v1)
-  - TL-WR842N/ND (v1, v2, v3)
-  - TL-WR1043N/ND (v1, v2, v3, v4, v5)
-  - TL-WR2543N/ND (v1)
-  - WBS210 (v1.20)
-  - WBS510 (v1.20)
-
-* Ubiquiti
-
-  - Air Gateway  [#device-class-tiny]_
-  - Air Gateway LR  [#device-class-tiny]_
-  - Air Gateway PRO  [#device-class-tiny]_
-  - Air Router  [#device-class-tiny]_
-  - Bullet M2/M5  [#device-class-tiny]_
-  - Loco M2/M5  [#device-class-tiny]_
-  - Loco M2/M5 XW
-  - Nanostation M2/M5  [#device-class-tiny]_
-  - Nanostation M2/M5 XW
-  - Picostation M2  [#device-class-tiny]_
-  - Rocket M2
-  - Rocket M2 Ti
-  - Rocket M2 XW
-  - UniFi AC Mesh
-  - UniFi AC Mesh Pro
-  - UniFi AP
-  - UniFi AP AC Lite
-  - UniFi AP AC LR
-  - UniFi AP AC Pro
-  - UniFi AP LR
-  - UniFi AP Pro
-  - UniFi AP Outdoor
-  - UniFi AP Outdoor+
-
-* Western Digital
-
-  - My Net N600
-  - My Net N750
-
-* ZyXEL
-
-  - NBG6616
-
-ar71xx-nand
------------
-
-* Aerohive
-
-  - HiveAP 121
-
-* Netgear
-
-  - WNDR3700 (v4)
-  - WNDR4300 (v1)
-
-* ZyXEL
-
-  - NBG6716
-
-ar71xx-tiny [#deprecated]_ [#device-class-tiny]_
-------------------------------------------------
-
-* D-Link
-
-  - DIR-615 (C1)
-
-* TP-Link
-
-  - TL-MR13U (v1)
-  - TL-MR3020 (v1)
-  - TL-MR3040 (v1, v2)
-  - TL-MR3220 (v1, v2)
-  - TL-MR3420 (v1, v2)
-  - TL-WA701N/ND (v1, v2)
-  - TL-WA730RE (v1)
-  - TL-WA750RE (v1)
-  - TL-WA801N/ND (v1, v2, v3)
-  - TL-WA830RE (v1, v2)
-  - TL-WA850RE (v1)
-  - TL-WA860RE (v1)
-  - TL-WA901N/ND (v1, v2, v3, v4, v5)
-  - TL-WA7210N (v2)
-  - TL-WA7510N (v1)
-  - TL-WR703N (v1)
-  - TL-WR710N (v2)
-  - TL-WR740N (v1, v3, v4, v5)
-  - TL-WR741N/ND (v1, v2, v4, v5)
-  - TL-WR743N/ND (v1, v2)
-  - TL-WR840N (v2)
-  - TL-WR841N/ND (v3, v5, v7, v8, v9, v10, v11, v12)
-  - TL-WR843N/ND (v1)
-  - TL-WR940N (v1, v2, v3, v4, v5, v6)
-  - TL-WR941ND (v2, v3, v4, v5, v6)
-
 ath79-generic
 --------------
 
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 3ff33ee0f0db869d20ec81b04faf46f95009bf76..499a33bf1aa54980fe0d7b3cc65e04933a49c995 100755
--- a/package/gluon-core/luasrc/lib/gluon/upgrade/010-primary-mac
+++ b/package/gluon-core/luasrc/lib/gluon/upgrade/010-primary-mac
@@ -71,40 +71,6 @@ end
 -- Entries are matched in the order they are listed
 local primary_addrs = {
 	{interface('lan'), {
-		{'ar71xx', 'generic', {
-			'archer-c5',
-			'archer-c58-v1',
-			'archer-c59-v1',
-			'archer-c60-v1',
-			'archer-c7',
-			'archer-c7-v4',
-			'archer-c7-v5',
-			'carambola2',
-			'koala',
-			'mr600',
-			'mr600v2',
-			'mr900',
-			'mr900v2',
-			'mr1750',
-			'mr1750v2',
-			'om2p',
-			'om2pv2',
-			'om2p-hs',
-			'om2p-hsv2',
-			'om2p-hsv3',
-			'om2p-lc',
-			'om5p',
-			'om5p-an',
-			'om5p-ac',
-			'om5p-acv2',
-			'unifi-outdoor-plus',
-			'unifiac-lite',
-			'unifiac-pro',
-		}},
-		{'ar71xx', 'mikrotik'},
-		{'ar71xx', 'nand', {
-			'hiveap-121',
-		}},
 		{'ath79', 'generic', {
 			'glinet,gl-ar750s-nor',
 			'ocedo,raccoon',
@@ -136,14 +102,6 @@ local primary_addrs = {
 		{'x86'},
 	}},
 	{interface('wan'), {
-		{'ar71xx', 'generic', {
-			'a40',
-			'a60',
-			'archer-c25-v1',
-			'archer-c60-v2',
-			'om2pv4',
-			'om2p-hsv4',
-		}},
 		{'ipq40xx', 'generic', {
 			'linksys,ea6350v3',
 			'openmesh,a42',
@@ -158,11 +116,6 @@ local primary_addrs = {
 		}},
 	}},
 	{phy(1), {
-		{'ar71xx', 'generic', {
-			'tl-wdr3600',
-			'tl-wdr4300',
-			'tl-wr902ac-v1',
-		}},
 		{'ramips', 'mt7621', {
 			'dlink,dir-860l-b1',
 		}},
diff --git a/package/gluon-core/luasrc/lib/gluon/upgrade/020-interfaces b/package/gluon-core/luasrc/lib/gluon/upgrade/020-interfaces
index 2947150d1bbf255ee2e540b3db902b56a6aea867..f9ab73c5e642e409c4eb00b2cfc6531762ab9b4d 100755
--- a/package/gluon-core/luasrc/lib/gluon/upgrade/020-interfaces
+++ b/package/gluon-core/luasrc/lib/gluon/upgrade/020-interfaces
@@ -50,20 +50,7 @@ end
 local lan_ifname = iface_exists(lan_interfaces)
 local wan_ifname = iface_exists(wan_interfaces)
 
-if platform.match('ar71xx', 'generic', {
-	'cpe210',
-	'cpe510',
-	'wbs210',
-	'wbs510',
-	'airgateway',
-	'nanostation-m',
-	'nanostation-m-xw',
-	'unifi-outdoor-plus',
-	'uap-pro',
-	'unifiac-pro',
-}) then
-	lan_ifname, wan_ifname = wan_ifname, lan_ifname
-elseif platform.match('lantiq') then
+if platform.match('lantiq') then
 	local switch_data = board_data.switch or {}
 	local switch0_data = switch_data.switch0 or {}
 	local roles_data = switch0_data.roles or {}
diff --git a/package/gluon-core/luasrc/usr/lib/lua/gluon/platform.lua b/package/gluon-core/luasrc/usr/lib/lua/gluon/platform.lua
index bcd0bf6f90e4fcb405afcb1fc80b2082dd6c73d9..5bfe534ee1f4532ae5d885c65f378dc3ea1eebf6 100644
--- a/package/gluon-core/luasrc/usr/lib/lua/gluon/platform.lua
+++ b/package/gluon-core/luasrc/usr/lib/lua/gluon/platform.lua
@@ -25,33 +25,7 @@ function M.match(target, subtarget, boards)
 end
 
 function M.is_outdoor_device()
-	if M.match('ar71xx', 'generic', {
-		'bullet-m',
-		'cpe210',
-		'cpe510',
-		'wbs210',
-		'wbs510',
-		'lbe-m5',
-		'loco-m-xw',
-		'nanostation-m',
-		'nanostation-m-xw',
-		'rocket-m',
-		'rocket-m-ti',
-		'rocket-m-xw',
-		'unifi-outdoor',
-		'unifi-outdoor-plus',
-	}) then
-		return true
-
-	elseif M.match('ar71xx', 'generic', {'unifiac-lite'}) and
-		M.get_model() == 'Ubiquiti UniFi-AC-MESH' then
-		return true
-
-	elseif M.match('ar71xx', 'generic', {'unifiac-pro'}) and
-		M.get_model() == 'Ubiquiti UniFi-AC-MESH-PRO' then
-		return true
-
-	elseif M.match('ath79', 'generic', {
+	if M.match('ath79', 'generic', {
 		'devolo,dvl1750x',
 		'plasmacloud,pa300',
 		'plasmacloud,pa300e',
diff --git a/package/gluon-setup-mode/luasrc/lib/gluon/upgrade/320-setup-ifname b/package/gluon-setup-mode/luasrc/lib/gluon/upgrade/320-setup-ifname
index b1c87623b1876e2cbbb20ab5a99df370e6f6c0d1..53d60d1c666c865c60be4ed94070773ac66d9f5f 100755
--- a/package/gluon-setup-mode/luasrc/lib/gluon/upgrade/320-setup-ifname
+++ b/package/gluon-setup-mode/luasrc/lib/gluon/upgrade/320-setup-ifname
@@ -8,14 +8,7 @@ if sysconfig.setup_ifname then
 	os.exit(0)
 end
 
-if platform.is_outdoor_device() or
-	platform.match('ar71xx', 'generic', {
-		'airgateway',
-		'uap-pro',
-		'unifiac-pro'
-	}) or
-	platform.match('ar71xx', 'mikrotik')
-then
+if platform.is_outdoor_device() then
 	sysconfig.setup_ifname = sysconfig.wan_ifname or sysconfig.lan_ifname
 else
 	sysconfig.setup_ifname = sysconfig.lan_ifname or sysconfig.wan_ifname