diff --git a/cpu/arm1136/cpu.c b/cpu/arm1136/cpu.c
index 6104f9e38f4d6b1d58bfa36eab99200bbd217224..ade7f4680077bd2f72892154abe7c7f85c2f5a93 100644
--- a/cpu/arm1136/cpu.c
+++ b/cpu/arm1136/cpu.c
@@ -37,11 +37,6 @@
 
 static void cache_flush(void);
 
-int cpu_init (void)
-{
-	return 0;
-}
-
 int cleanup_before_linux (void)
 {
 	/*
diff --git a/cpu/arm1176/cpu.c b/cpu/arm1176/cpu.c
index fbc8ea8027215154172ee33b97f06cd76981a494..c59a77b9d823dda15bbcbdb1125b10b815be220a 100644
--- a/cpu/arm1176/cpu.c
+++ b/cpu/arm1176/cpu.c
@@ -38,11 +38,6 @@
 
 static void cache_flush (void);
 
-int cpu_init (void)
-{
-	return 0;
-}
-
 int cleanup_before_linux (void)
 {
 	/*
diff --git a/cpu/arm720t/cpu.c b/cpu/arm720t/cpu.c
index 7a2b9c37bc54b62a328e2a2e0bccd6add16fe5c3..88c71bfe184e869b3a722981526b3bfe79330403 100644
--- a/cpu/arm720t/cpu.c
+++ b/cpu/arm720t/cpu.c
@@ -40,11 +40,6 @@
 static void cache_flush(void);
 #endif
 
-int cpu_init (void)
-{
-	return 0;
-}
-
 int cleanup_before_linux (void)
 {
 	/*
diff --git a/cpu/arm920t/cpu.c b/cpu/arm920t/cpu.c
index e4a8adb2d712c5c69b0a43376630a0adfb8b51a5..34adb11535059d9f0b641234b2fed544f852b4d0 100644
--- a/cpu/arm920t/cpu.c
+++ b/cpu/arm920t/cpu.c
@@ -35,11 +35,6 @@
 
 static void cache_flush(void);
 
-int cpu_init (void)
-{
-	return 0;
-}
-
 int cleanup_before_linux (void)
 {
 	/*
diff --git a/cpu/arm925t/cpu.c b/cpu/arm925t/cpu.c
index e48f34151e440c25fc3e2a9ee631948cb7974c85..71700bb1751deb28ab645c4d1f790456fee036dc 100644
--- a/cpu/arm925t/cpu.c
+++ b/cpu/arm925t/cpu.c
@@ -36,11 +36,6 @@
 
 static void cache_flush(void);
 
-int cpu_init (void)
-{
-	return 0;
-}
-
 int cleanup_before_linux (void)
 {
 	/*
diff --git a/cpu/arm926ejs/cpu.c b/cpu/arm926ejs/cpu.c
index 0a3267385cf81adcc1d5ebe9ad15f20b69237c4f..5c902dfc133dea358d1e81a4a37e552d7603ee6b 100644
--- a/cpu/arm926ejs/cpu.c
+++ b/cpu/arm926ejs/cpu.c
@@ -35,11 +35,6 @@
 
 static void cache_flush(void);
 
-int cpu_init (void)
-{
-	return 0;
-}
-
 int cleanup_before_linux (void)
 {
 	/*
diff --git a/cpu/arm946es/cpu.c b/cpu/arm946es/cpu.c
index e0f91d36c68c6313882ac1579a0509b1240efd40..c63c98be864267380a39c15d1f5b5be10281a670 100644
--- a/cpu/arm946es/cpu.c
+++ b/cpu/arm946es/cpu.c
@@ -35,11 +35,6 @@
 
 static void cache_flush(void);
 
-int cpu_init (void)
-{
-	return 0;
-}
-
 int cleanup_before_linux (void)
 {
 	/*
diff --git a/cpu/arm_cortexa8/cpu.c b/cpu/arm_cortexa8/cpu.c
index b91cc4f3b3e4ee4d27f477242986b694f61409e9..6fd07d0b7375fa01d4d192769777f63c89fd99c9 100644
--- a/cpu/arm_cortexa8/cpu.c
+++ b/cpu/arm_cortexa8/cpu.c
@@ -42,11 +42,6 @@ void l2cache_disable(void);
 
 static void cache_flush(void);
 
-int cpu_init(void)
-{
-	return 0;
-}
-
 int cleanup_before_linux(void)
 {
 	unsigned int i;
diff --git a/cpu/arm_intcm/cpu.c b/cpu/arm_intcm/cpu.c
index 488bd0c5a2d05a49fb7346d7e7daf1e8db504adb..c0748e872e2ce0a007187aa41206f843d545fecd 100644
--- a/cpu/arm_intcm/cpu.c
+++ b/cpu/arm_intcm/cpu.c
@@ -33,11 +33,6 @@
 #include <common.h>
 #include <command.h>
 
-int cpu_init (void)
-{
-	return 0;
-}
-
 int cleanup_before_linux (void)
 {
 	/*
diff --git a/cpu/ixp/cpu.c b/cpu/ixp/cpu.c
index 5cfc39dafadb64d05d11dbe35b838050ab318533..ce275e5f3c713cf5ee4d8d7ca2ea5a0d463ec1fa 100644
--- a/cpu/ixp/cpu.c
+++ b/cpu/ixp/cpu.c
@@ -75,11 +75,6 @@ int print_cpuinfo (void)
 }
 #endif /* CONFIG_DISPLAY_CPUINFO */
 
-int cpu_init (void)
-{
-	return 0;
-}
-
 int cleanup_before_linux (void)
 {
 	/*
diff --git a/cpu/lh7a40x/cpu.c b/cpu/lh7a40x/cpu.c
index 3cf0824c458aaae3b964f8004dba5533c6ee6bda..b193189123bb0b12e7eb28061adf4e28aa4a4f16 100644
--- a/cpu/lh7a40x/cpu.c
+++ b/cpu/lh7a40x/cpu.c
@@ -35,11 +35,6 @@
 
 static void cache_flush(void);
 
-int cpu_init (void)
-{
-	return 0;
-}
-
 int cleanup_before_linux (void)
 {
 	/*
diff --git a/cpu/pxa/cpu.c b/cpu/pxa/cpu.c
index 8edb44eb45d7fb11e12146ee929b618f87f715c2..800d120e718bb11a6527223fec3b94855ec17988 100644
--- a/cpu/pxa/cpu.c
+++ b/cpu/pxa/cpu.c
@@ -37,11 +37,6 @@
 
 static void cache_flush(void);
 
-int cpu_init (void)
-{
-	return 0;
-}
-
 int cleanup_before_linux (void)
 {
 	/*
diff --git a/cpu/s3c44b0/cpu.c b/cpu/s3c44b0/cpu.c
index 7ef4a1fdb0de5adaa64d40ec8ffca55e5a9f3979..bca38f81d332a2c6e1f5bf8f8fb7744f5d427413 100644
--- a/cpu/s3c44b0/cpu.c
+++ b/cpu/s3c44b0/cpu.c
@@ -32,7 +32,7 @@
 #include <command.h>
 #include <asm/hardware.h>
 
-int cpu_init (void)
+int arch_cpu_init (void)
 {
 	icache_enable();
 
diff --git a/cpu/sa1100/cpu.c b/cpu/sa1100/cpu.c
index 39285a0ccaa91c35b1805f26936be281b3a8eb2b..58e90dc9f69ec967e91675fd926d6f1ace7a1f10 100644
--- a/cpu/sa1100/cpu.c
+++ b/cpu/sa1100/cpu.c
@@ -40,11 +40,6 @@ DECLARE_GLOBAL_DATA_PTR;
 
 static void cache_flush(void);
 
-int cpu_init (void)
-{
-	return 0;
-}
-
 int cleanup_before_linux (void)
 {
 	/*
diff --git a/include/configs/B2.h b/include/configs/B2.h
index 35fad5c553bcb1924f8dbc5b56fc3b5e14b0869c..e5439f3b54ae9d5c98ab407bf9a36610e389e0e2 100644
--- a/include/configs/B2.h
+++ b/include/configs/B2.h
@@ -39,6 +39,7 @@
 #define CONFIG_ARM_THUMB	1	/* this is an ARM7TDMI */
 #undef  CONFIG_ARM7_REVD		/* disable ARM720 REV.D Workarounds */
 #define CONFIG_SYS_NO_CP15_CACHE
+#define CONFIG_ARCH_CPU_INIT
 
 #define CONFIG_S3C44B0_CLOCK_SPEED	75 /* we have a 75Mhz S3C44B0*/
 
diff --git a/lib_arm/board.c b/lib_arm/board.c
index d86ed22cadb734f6ac5420cdacc5dc5edf4d6370..e081fbccb55a268818093f4912a7657d0382d7de 100644
--- a/lib_arm/board.c
+++ b/lib_arm/board.c
@@ -265,7 +265,6 @@ typedef int (init_fnc_t) (void);
 int print_cpuinfo (void);
 
 init_fnc_t *init_sequence[] = {
-	cpu_init,		/* basic cpu dependent setup */
 #if defined(CONFIG_ARCH_CPU_INIT)
 	arch_cpu_init,		/* basic arch cpu dependent setup */
 #endif