diff --git a/Kconfig b/Kconfig
index 60cf1dd1c1f2140ce1cda90a554f427b1875d2d2..4157da3c68485540597b7e8993d6786676ac5d25 100644
--- a/Kconfig
+++ b/Kconfig
@@ -143,6 +143,12 @@ config SYS_TEXT_BASE
 	help
 	  TODO: Move CONFIG_SYS_TEXT_BASE for all the architecture
 
+config SYS_CLK_FREQ
+	depends on ARC
+	int "CPU clock frequency"
+	help
+	  TODO: Move CONFIG_SYS_CLK_FREQ for all the architecture
+
 endmenu		# Boot images
 
 source "arch/Kconfig"
diff --git a/configs/arcangel4-be_defconfig b/configs/arcangel4-be_defconfig
index 867fb1f6d5897d0a8159522c15856b283b221c52..0c3ab4e4fc74cff8025be89bd8c23179d7e1487d 100644
--- a/configs/arcangel4-be_defconfig
+++ b/configs/arcangel4-be_defconfig
@@ -1,2 +1,3 @@
 CONFIG_ARC=y
 CONFIG_TARGET_ARCANGEL4_BE=y
+CONFIG_SYS_CLK_FREQ=70000000
diff --git a/configs/arcangel4_defconfig b/configs/arcangel4_defconfig
index 82b583edc66ac79965cba1ef116f8f1b4e88cff9..a63ef21de80ce9cbb26940ee8931db5f69e12ee3 100644
--- a/configs/arcangel4_defconfig
+++ b/configs/arcangel4_defconfig
@@ -1,2 +1,3 @@
 CONFIG_ARC=y
 CONFIG_TARGET_ARCANGEL4=y
+CONFIG_SYS_CLK_FREQ=70000000
diff --git a/configs/axs101_defconfig b/configs/axs101_defconfig
index bfa314e0690bc285c6d23b35b049c2c53dc724ea..5c0ca11fa55419314c40a5e749021c829938746c 100644
--- a/configs/axs101_defconfig
+++ b/configs/axs101_defconfig
@@ -1,2 +1,3 @@
 CONFIG_ARC=y
 CONFIG_TARGET_AXS101=y
+CONFIG_SYS_CLK_FREQ=750000000
\ No newline at end of file
diff --git a/configs/tb100_defconfig b/configs/tb100_defconfig
index 9669dc052c0d2a771fe185a9c1ab0fa86dd5bf5b..d2de03b649b9925e31700aba878d2a4e3ab31bbd 100644
--- a/configs/tb100_defconfig
+++ b/configs/tb100_defconfig
@@ -1,2 +1,3 @@
 CONFIG_ARC=y
 CONFIG_TARGET_TB100=y
+CONFIG_SYS_CLK_FREQ=500000000
\ No newline at end of file
diff --git a/include/configs/arcangel4-be.h b/include/configs/arcangel4-be.h
index 88d27db08b681aa91360afb5134800a001741c07..76163ab2a0fd16c028e79bc7917061b7bad15c8a 100644
--- a/include/configs/arcangel4-be.h
+++ b/include/configs/arcangel4-be.h
@@ -14,7 +14,6 @@
 #define CONFIG_ARC700
 #define CONFIG_ARC_MMU_VER		3
 #define CONFIG_SYS_CACHELINE_SIZE	64
-#define CONFIG_SYS_CLK_FREQ		70000000
 #define CONFIG_SYS_TIMER_RATE		CONFIG_SYS_CLK_FREQ
 
 /*
diff --git a/include/configs/arcangel4.h b/include/configs/arcangel4.h
index 4579eb97c2cdc50e726517b0a8bfaedf8107f1c4..81934a45a8852282d20d653f826a528633e35450 100644
--- a/include/configs/arcangel4.h
+++ b/include/configs/arcangel4.h
@@ -13,7 +13,6 @@
 #define CONFIG_ARC700
 #define CONFIG_ARC_MMU_VER		3
 #define CONFIG_SYS_CACHELINE_SIZE	64
-#define CONFIG_SYS_CLK_FREQ		70000000
 #define CONFIG_SYS_TIMER_RATE		CONFIG_SYS_CLK_FREQ
 
 /*
diff --git a/include/configs/axs101.h b/include/configs/axs101.h
index 6e8c56c1dde694cc5532428a8ea751c08b36f80c..c61ddd6fb77c46560d82dc6a1a1e4b9216fab1d8 100644
--- a/include/configs/axs101.h
+++ b/include/configs/axs101.h
@@ -13,7 +13,6 @@
 #define CONFIG_ARC700
 #define CONFIG_ARC_MMU_VER		3
 #define CONFIG_SYS_CACHELINE_SIZE	32
-#define CONFIG_SYS_CLK_FREQ		750000000
 #define CONFIG_SYS_TIMER_RATE		CONFIG_SYS_CLK_FREQ
 
 /* NAND controller DMA doesn't work correctly with D$ enabled */
diff --git a/include/configs/tb100.h b/include/configs/tb100.h
index 8a861a836b1b73d64fbd198d9ddbb4c5ff40d323..e9218f7d819ef88b9b2f57feac83f85e89933323 100644
--- a/include/configs/tb100.h
+++ b/include/configs/tb100.h
@@ -15,7 +15,6 @@
 #define CONFIG_ARC700
 #define CONFIG_ARC_MMU_VER		3
 #define CONFIG_SYS_CACHELINE_SIZE	32
-#define CONFIG_SYS_CLK_FREQ		500000000
 #define CONFIG_SYS_TIMER_RATE		CONFIG_SYS_CLK_FREQ
 
 /*