diff --git a/arch/powerpc/cpu/mpc85xx/u-boot-spl.lds b/arch/powerpc/cpu/mpc85xx/u-boot-spl.lds
index 85ec74ba94adbfeedef1e339d10f06a3ded6d034..bc132673a51a73f8c8cac62440c35bdf685a104d 100644
--- a/arch/powerpc/cpu/mpc85xx/u-boot-spl.lds
+++ b/arch/powerpc/cpu/mpc85xx/u-boot-spl.lds
@@ -44,6 +44,11 @@ SECTIONS
 	}
 	_edata  =  .;
 
+	. = ALIGN(4);
+	.u_boot_list : {
+		KEEP(*(SORT(.u_boot_list*)));
+	}
+
 	. = .;
 	__start___ex_table = .;
 	__ex_table : { *(__ex_table) }
diff --git a/board/freescale/p1022ds/spl.c b/board/freescale/p1022ds/spl.c
index b9dbf81b3f89b0024a0c1c2bca0ee704bc456070..7f151e38cf911b05521f7a53cbf048ad5820cf51 100644
--- a/board/freescale/p1022ds/spl.c
+++ b/board/freescale/p1022ds/spl.c
@@ -102,7 +102,11 @@ void board_init_r(gd_t *gd, ulong dest_addr)
 	env_relocate();
 #endif
 
-	i2c_init(CONFIG_SYS_FSL_I2C_SPEED, CONFIG_SYS_I2C_SLAVE);
+#ifdef CONFIG_SYS_I2C
+	i2c_init_all();
+#else
+	i2c_init(CONFIG_SYS_I2C_SPEED, CONFIG_SYS_I2C_SLAVE);
+#endif
 
 	gd->ram_size = initdram(0);
 #ifdef CONFIG_SPL_NAND_BOOT