diff --git a/meta/conf/machine/include/arm/arch-armv8-7a.inc b/meta/conf/machine/include/arm/arch-armv8-7a.inc
new file mode 100644
index 000000000000..6039baca3568
--- /dev/null
+++ b/meta/conf/machine/include/arm/arch-armv8-7a.inc
@@ -0,0 +1,14 @@
+DEFAULTTUNE ?= "armv8-7a"
+
+TUNEVALID[armv8-7a] = "Enable instructions for ARMv8.7-a"
+TUNE_CCARGS_MARCH .= "${@bb.utils.contains('TUNE_FEATURES', 'armv8-7a', ' -march=armv8.7-a', '', d)}"
+MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'armv8-7a', 'armv8-7a:', '', d)}"
+
+require conf/machine/include/arm/arch-armv8a.inc
+
+# Little Endian base configs
+AVAILTUNES += "armv8-7a"
+ARMPKGARCH:tune-armv8-7a                    ?= "armv8-7a"
+TUNE_FEATURES:tune-armv8-7a                  = "aarch64 armv8-7a"
+PACKAGE_EXTRA_ARCHS:tune-armv8-7a            = "${PACKAGE_EXTRA_ARCHS:tune-armv8a} armv8-7a"
+BASE_LIB:tune-armv8-7a                       = "lib64"
diff --git a/meta/conf/machine/include/arm/arch-armv8-8a.inc b/meta/conf/machine/include/arm/arch-armv8-8a.inc
new file mode 100644
index 000000000000..5694330a1d22
--- /dev/null
+++ b/meta/conf/machine/include/arm/arch-armv8-8a.inc
@@ -0,0 +1,14 @@
+DEFAULTTUNE ?= "armv8-8a"
+
+TUNEVALID[armv8-8a] = "Enable instructions for ARMv8.8-a"
+TUNE_CCARGS_MARCH .= "${@bb.utils.contains('TUNE_FEATURES', 'armv8-8a', ' -march=armv8.8-a', '', d)}"
+MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'armv8-8a', 'armv8-8a:', '', d)}"
+
+require conf/machine/include/arm/arch-armv8a.inc
+
+# Little Endian base configs
+AVAILTUNES += "armv8-8a"
+ARMPKGARCH:tune-armv8-8a                    ?= "armv8-8a"
+TUNE_FEATURES:tune-armv8-8a                  = "aarch64 armv8-8a"
+PACKAGE_EXTRA_ARCHS:tune-armv8-8a            = "${PACKAGE_EXTRA_ARCHS:tune-armv8a} armv8-8a"
+BASE_LIB:tune-armv8-8a                       = "lib64"
diff --git a/meta/conf/machine/include/arm/arch-armv9-1a.inc b/meta/conf/machine/include/arm/arch-armv9-1a.inc
new file mode 100644
index 000000000000..f9e6dce77c82
--- /dev/null
+++ b/meta/conf/machine/include/arm/arch-armv9-1a.inc
@@ -0,0 +1,13 @@
+DEFAULTTUNE ?= "armv9-1a"
+
+TUNEVALID[armv9-1a] = "Enable instructions for ARMv9.1-a"
+TUNE_CCARGS_MARCH .= "${@bb.utils.contains('TUNE_FEATURES', 'armv9-1a', ' -march=armv9.1-a', '', d)}"
+MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'armv9-1a', 'armv9-1a:', '', d)}"
+
+require conf/machine/include/arm/arch-armv9a.inc
+
+AVAILTUNES                                  += "armv9-1a"
+ARMPKGARCH:tune-armv9-1a                    ?= "armv9-1a"
+TUNE_FEATURES:tune-armv9-1a                  = "aarch64 armv9-1a"
+PACKAGE_EXTRA_ARCHS:tune-armv9-1a            = "${PACKAGE_EXTRA_ARCHS:tune-armv9a} armv9-1a"
+BASE_LIB:tune-armv9-1a                       = "lib64"
diff --git a/meta/conf/machine/include/arm/arch-armv9-2a.inc b/meta/conf/machine/include/arm/arch-armv9-2a.inc
new file mode 100644
index 000000000000..4b5cf3ed156a
--- /dev/null
+++ b/meta/conf/machine/include/arm/arch-armv9-2a.inc
@@ -0,0 +1,13 @@
+DEFAULTTUNE ?= "armv9-2a"
+
+TUNEVALID[armv9-2a] = "Enable instructions for ARMv9.2-a"
+TUNE_CCARGS_MARCH .= "${@bb.utils.contains('TUNE_FEATURES', 'armv9-2a', ' -march=armv9.2-a', '', d)}"
+MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'armv9-2a', 'armv9-2a:', '', d)}"
+
+require conf/machine/include/arm/arch-armv9a.inc
+
+AVAILTUNES                                  += "armv9-2a"
+ARMPKGARCH:tune-armv9-2a                    ?= "armv9-2a"
+TUNE_FEATURES:tune-armv9-2a                  = "aarch64 armv9-2a"
+PACKAGE_EXTRA_ARCHS:tune-armv9-2a            = "${PACKAGE_EXTRA_ARCHS:tune-armv9a} armv9-2a"
+BASE_LIB:tune-armv9-2a                       = "lib64"
diff --git a/meta/conf/machine/include/arm/arch-armv9-3a.inc b/meta/conf/machine/include/arm/arch-armv9-3a.inc
new file mode 100644
index 000000000000..c345f1532c48
--- /dev/null
+++ b/meta/conf/machine/include/arm/arch-armv9-3a.inc
@@ -0,0 +1,13 @@
+DEFAULTTUNE ?= "armv9-3a"
+
+TUNEVALID[armv9-3a] = "Enable instructions for ARMv9.3-a"
+TUNE_CCARGS_MARCH .= "${@bb.utils.contains('TUNE_FEATURES', 'armv9-3a', ' -march=armv9.3-a', '', d)}"
+MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'armv9-3a', 'armv9-3a:', '', d)}"
+
+require conf/machine/include/arm/arch-armv9a.inc
+
+AVAILTUNES                                  += "armv9-3a"
+ARMPKGARCH:tune-armv9-3a                    ?= "armv9-3a"
+TUNE_FEATURES:tune-armv9-3a                  = "aarch64 armv9-3a"
+PACKAGE_EXTRA_ARCHS:tune-armv9-3a            = "${PACKAGE_EXTRA_ARCHS:tune-armv9a} armv9-3a"
+BASE_LIB:tune-armv9-3a                       = "lib64"
