diff --git a/arch/x86/include/asm/init_helpers.h b/arch/x86/include/asm/init_helpers.h
index ade694fba334205f811eabdad389c70cae1769dc..2f437e034313f9734e05d1c9e9d5389a04cc3d7b 100644
--- a/arch/x86/include/asm/init_helpers.h
+++ b/arch/x86/include/asm/init_helpers.h
@@ -37,5 +37,6 @@ int init_bd_struct_r(void);
 int flash_init_r(void);
 int status_led_set_r(void);
 int set_load_addr_r(void);
+int init_func_spi(void);
 
 #endif	/* !_INIT_HELPERS_H_ */
diff --git a/arch/x86/lib/board.c b/arch/x86/lib/board.c
index c7d89604cae88080a6b806c4c9089b87b774e89b..2ffe0614dc91096ab227f6bd218211c889ed7688 100644
--- a/arch/x86/lib/board.c
+++ b/arch/x86/lib/board.c
@@ -153,6 +153,9 @@ init_fnc_t *init_sequence_r[] = {
 	serial_initialize_r,
 #ifndef CONFIG_SYS_NO_FLASH
 	flash_init_r,
+#endif
+#ifdef CONFIG_SPI
+	init_func_spi;
 #endif
 	env_relocate_r,
 #ifdef CONFIG_PCI
diff --git a/arch/x86/lib/init_helpers.c b/arch/x86/lib/init_helpers.c
index 87c7263fcb5094824e141cf737a5deac507744d5..d10a846cfdcb73be337638b5384205cc1c1948e2 100644
--- a/arch/x86/lib/init_helpers.c
+++ b/arch/x86/lib/init_helpers.c
@@ -28,6 +28,7 @@
 #include <net.h>
 #include <ide.h>
 #include <serial.h>
+#include <spi.h>
 #include <status_led.h>
 #include <asm/processor.h>
 #include <asm/u-boot-x86.h>
@@ -160,3 +161,11 @@ int set_load_addr_r(void)
 
 	return 0;
 }
+
+int init_func_spi(void)
+{
+	puts("SPI:   ");
+	spi_init();
+	puts("ready\n");
+	return 0;
+}