diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 5f21b59ba813be88258a8b31877effd01d19cd0d..21cd1c8cdf4ed24890acb93f91da5791401ea4a9 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -832,7 +832,7 @@ source "arch/arm/mach-uniphier/Kconfig"
 
 source "arch/arm/mach-versatile/Kconfig"
 
-source "arch/arm/cpu/armv7/zynq/Kconfig"
+source "arch/arm/mach-zynq/Kconfig"
 
 source "arch/arm/cpu/armv7/Kconfig"
 
diff --git a/arch/arm/Makefile b/arch/arm/Makefile
index bd4749c55e95374e07a839d029449c39aac40ab1..5705d6402b9e29b79e572f101a38b2c3e07c09fc 100644
--- a/arch/arm/Makefile
+++ b/arch/arm/Makefile
@@ -55,6 +55,7 @@ machine-$(CONFIG_ORION5X)		+= orion5x
 machine-$(CONFIG_TEGRA)			+= tegra
 machine-$(CONFIG_ARCH_UNIPHIER)		+= uniphier
 machine-$(CONFIG_ARCH_VERSATILE)	+= versatile
+machine-$(CONFIG_ZYNQ)			+= zynq
 
 machdirs := $(patsubst %,arch/arm/mach-%/,$(machine-y))
 
diff --git a/arch/arm/cpu/armv7/Makefile b/arch/arm/cpu/armv7/Makefile
index 21fc03b97eef431438f773757eb8e2bbcfc1df3a..3c991e152d311a62c6dbe1087b19fb40a085529f 100644
--- a/arch/arm/cpu/armv7/Makefile
+++ b/arch/arm/cpu/armv7/Makefile
@@ -56,4 +56,3 @@ obj-$(if $(filter stv0991,$(SOC)),y) += stv0991/
 obj-$(CONFIG_ARCH_SUNXI) += sunxi/
 obj-$(CONFIG_U8500) += u8500/
 obj-$(CONFIG_VF610) += vf610/
-obj-$(CONFIG_ZYNQ) += zynq/
diff --git a/arch/arm/cpu/armv7/zynq/Kconfig b/arch/arm/mach-zynq/Kconfig
similarity index 100%
rename from arch/arm/cpu/armv7/zynq/Kconfig
rename to arch/arm/mach-zynq/Kconfig
diff --git a/arch/arm/cpu/armv7/zynq/Makefile b/arch/arm/mach-zynq/Makefile
similarity index 100%
rename from arch/arm/cpu/armv7/zynq/Makefile
rename to arch/arm/mach-zynq/Makefile
diff --git a/arch/arm/cpu/armv7/zynq/clk.c b/arch/arm/mach-zynq/clk.c
similarity index 100%
rename from arch/arm/cpu/armv7/zynq/clk.c
rename to arch/arm/mach-zynq/clk.c
diff --git a/arch/arm/cpu/armv7/zynq/cpu.c b/arch/arm/mach-zynq/cpu.c
similarity index 100%
rename from arch/arm/cpu/armv7/zynq/cpu.c
rename to arch/arm/mach-zynq/cpu.c
diff --git a/arch/arm/cpu/armv7/zynq/ddrc.c b/arch/arm/mach-zynq/ddrc.c
similarity index 100%
rename from arch/arm/cpu/armv7/zynq/ddrc.c
rename to arch/arm/mach-zynq/ddrc.c
diff --git a/arch/arm/cpu/armv7/zynq/lowlevel_init.S b/arch/arm/mach-zynq/lowlevel_init.S
similarity index 100%
rename from arch/arm/cpu/armv7/zynq/lowlevel_init.S
rename to arch/arm/mach-zynq/lowlevel_init.S
diff --git a/arch/arm/cpu/armv7/zynq/slcr.c b/arch/arm/mach-zynq/slcr.c
similarity index 100%
rename from arch/arm/cpu/armv7/zynq/slcr.c
rename to arch/arm/mach-zynq/slcr.c
diff --git a/arch/arm/cpu/armv7/zynq/spl.c b/arch/arm/mach-zynq/spl.c
similarity index 100%
rename from arch/arm/cpu/armv7/zynq/spl.c
rename to arch/arm/mach-zynq/spl.c
diff --git a/arch/arm/cpu/armv7/zynq/timer.c b/arch/arm/mach-zynq/timer.c
similarity index 100%
rename from arch/arm/cpu/armv7/zynq/timer.c
rename to arch/arm/mach-zynq/timer.c
diff --git a/arch/arm/cpu/armv7/zynq/u-boot-spl.lds b/arch/arm/mach-zynq/u-boot-spl.lds
similarity index 100%
rename from arch/arm/cpu/armv7/zynq/u-boot-spl.lds
rename to arch/arm/mach-zynq/u-boot-spl.lds
diff --git a/arch/arm/cpu/armv7/zynq/u-boot.lds b/arch/arm/mach-zynq/u-boot.lds
similarity index 100%
rename from arch/arm/cpu/armv7/zynq/u-boot.lds
rename to arch/arm/mach-zynq/u-boot.lds
diff --git a/include/configs/zynq-common.h b/include/configs/zynq-common.h
index f613b92047046a7fd09552acd6d5a8fa7489badd..b83e037f6f595bf56ea44f6eaf8ffc52e1d48ae2 100644
--- a/include/configs/zynq-common.h
+++ b/include/configs/zynq-common.h
@@ -294,7 +294,7 @@
 # define CONFIG_SYS_MMC_MAX_DEVICE	1
 #endif
 
-#define CONFIG_SYS_LDSCRIPT  "arch/arm/cpu/armv7/zynq/u-boot.lds"
+#define CONFIG_SYS_LDSCRIPT  "arch/arm/mach-zynq/u-boot.lds"
 
 /* Commands */
 #include <config_cmd_default.h>
@@ -312,7 +312,7 @@
 #define CONFIG_SPL_SERIAL_SUPPORT
 #define CONFIG_SPL_BOARD_INIT
 
-#define CONFIG_SPL_LDSCRIPT	"arch/arm/cpu/armv7/zynq/u-boot-spl.lds"
+#define CONFIG_SPL_LDSCRIPT	"arch/arm/mach-zynq/u-boot-spl.lds"
 
 /* MMC support */
 #ifdef CONFIG_ZYNQ_SDHCI0