diff --git a/CHANGELOG.md b/CHANGELOG.md
index 7ca8dc55e9cbbf898e7c4cc1d77ce44df5b40764..24c73410e9cc676b773c27305b7efd56c055bb10 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -24,6 +24,7 @@ in the wrapper would cause all of the module `make` commands to fail.
 * Stop require from looking in legacy locations for various files
 * Rewrite internal linked list to have better memory safety
 * Removed enabling of core dump generation and max file size limit to allow developers more flexibility (enable and set limit by calling `ulimit -S -c x` where x is max size in blocks before IOC startup)
+* Remove `ARCH_FILTER` support; from now on, only `EXCLUDE_ARCHS` is used.
 
 ## [5.0.0]
 
diff --git a/require-ess/tools/driver.makefile b/require-ess/tools/driver.makefile
index b025a71a7059f3b788587e00e198b76516cc07ff..4ee212ffc5591213832ded010f8b002e8f06e02b 100644
--- a/require-ess/tools/driver.makefile
+++ b/require-ess/tools/driver.makefile
@@ -50,8 +50,9 @@
 # HEADERS
 #    Header files to install (e.g. to be included by other drivers)
 #    If not defined, all headers are for local use only.
-# ARCH_FILTER
-#    Sub set of architectures to build for, e.g. %-ppc604
+# EXCLUDE_ARCH
+#    Sub set of architectures to exclude for, e.g. ppc604; note that these will be wildcarded
+#    as %ppc604 and ppc604%.
 
 # Get the location of this file.
 MAKEHOME:=$(dir $(lastword ${MAKEFILE_LIST}))
@@ -264,10 +265,10 @@ LICENSES = $(shell find -not -path '*/.*' -type f -iname LICENSE)
 LICENSES += $(shell find -not -path '*/.*' -type f -iname Copyright)
 export LICENSES
 
-# Filter architectures to build using EXCLUDE_ARCHS and ARCH_FILTER.
+# Filter architectures to build using EXCLUDE_ARCHS.
 ALL_ARCHS = ${EPICS_HOST_ARCH} ${CROSS_COMPILER_TARGET_ARCHS}
-BUILD_ARCHS = $(filter-out $(addprefix %,${EXCLUDE_ARCHS}),$(filter-out $(addsuffix %,${EXCLUDE_ARCHS}),\
-        $(if ${ARCH_FILTER},$(filter ${ARCH_FILTER},${ALL_ARCHS}),${ALL_ARCHS})))
+BUILD_ARCHS = $(filter-out $(addprefix %,${EXCLUDE_ARCHS}),\
+              $(filter-out $(addsuffix %,${EXCLUDE_ARCHS}),${ALL_ARCHS}))
 
 SRCS_Linux = ${SOURCES_Linux}
 export SRCS_Linux
@@ -310,7 +311,6 @@ debug::
 	@echo "PRJ = ${PRJ}"
 	@echo "EPICS_BASE = ${EPICS_BASE}"
 	@echo "BUILD_ARCHS = ${BUILD_ARCHS}"
-	@echo "ARCH_FILTER = ${ARCH_FILTER}"
 	@echo "EXCLUDE_ARCHS = ${EXCLUDE_ARCHS}"
 	@echo "LIBVERSION = ${LIBVERSION}"
 	@echo "E3_SITEMODS_PATH = ${E3_SITEMODS_PATH}"
@@ -348,7 +348,7 @@ db_internal: $$(addprefix $(COMMON_DIR)/,$$(notdir $$(patsubst %.template,%.db,$
 db_internal: $$(addprefix $(COMMON_DIR)/,$$(notdir $$(patsubst %.substitutions,%.db,$$(SUBS))))
 
 # This has to be after .SECONDEXPANSION since BUILD_ARCHS will be modified based on EXCLUDE_ARCHS
-# and ARCH_FILTER, which are defined _after_ driver.makefile.
+# which is defined _after_ driver.makefile.
 $(foreach target,install build debug,$(eval $(target):: $$$$(foreach arch,$$$${BUILD_ARCHS},$(target)-$$$${arch})))
 
 # Create and install the metadata file as the very last step
diff --git a/tests/test_build.py b/tests/test_build.py
index 595760d698d5a8a33a6b8ac0c1eda96af73b1f0e..b3ef0aca2cdc87f97812e7b2c8292027706998c3 100644
--- a/tests/test_build.py
+++ b/tests/test_build.py
@@ -615,7 +615,6 @@ def test_substitution_template_priority(wrapper: Wrapper):
 @pytest.mark.parametrize(
     "installed_archs, param, expected",
     [
-        ("foo bar baz foo-bar", "ARCH_FILTER=foo", ["foo"]),
         ("foo", "EXCLUDE_ARCHS=foo", []),
         ("foo-bar foo-baz baz baz-qux", "EXCLUDE_ARCHS=foo", ["baz", "baz-qux"]),
     ],