diff --git a/include/asm-arm/u-boot-arm.h b/include/asm-arm/u-boot-arm.h
index 76f1ffa5a2c2cd43ecf7765f093b6d988527452a..6d2f8bccb50fd0170c8108ee696b7377c29d0ba5 100644
--- a/include/asm-arm/u-boot-arm.h
+++ b/include/asm-arm/u-boot-arm.h
@@ -42,6 +42,7 @@ int	cleanup_before_linux(void);
 
 /* cpu/.../arch/cpu.c */
 int	arch_cpu_init(void);
+int	arch_misc_init(void);
 
 /* board/.../... */
 int	board_init(void);
diff --git a/lib_arm/board.c b/lib_arm/board.c
index e081fbccb55a268818093f4912a7657d0382d7de..5c3bfecead3c9d6bf34ea4c30a9dd32cf5111524 100644
--- a/lib_arm/board.c
+++ b/lib_arm/board.c
@@ -399,6 +399,10 @@ void start_armboot (void)
 
 	console_init_r ();	/* fully init console as a device */
 
+#if defined(CONFIG_ARCH_MISC_INIT)
+	/* miscellaneous arch dependent initialisations */
+	arch_misc_init ();
+#endif
 #if defined(CONFIG_MISC_INIT_R)
 	/* miscellaneous platform dependent initialisations */
 	misc_init_r ();