nb/intel/sandybridge/raminit: Separate Sandybridge and Ivybridge

Add custom files for Sandybridge and IvyBridge functions.
Move only the minimal required functions into separate files.
Both files' functions are going to call raminit_common functions.
No functionality is changed.

Sandybridge code path tested on Lenovo T420.

Change-Id: I1b1dfbd0857b59d3ae4392b73c033ee7a5aed243
Signed-off-by: Patrick Rudolph <siro@das-labor.org>
Reviewed-on: https://review.coreboot.org/17605
Tested-by: build bot (Jenkins)
Reviewed-by: Martin Roth <martinroth@google.com>
diff --git a/src/northbridge/intel/sandybridge/raminit_common.h b/src/northbridge/intel/sandybridge/raminit_common.h
index 4655ed5..7aec735 100644
--- a/src/northbridge/intel/sandybridge/raminit_common.h
+++ b/src/northbridge/intel/sandybridge/raminit_common.h
@@ -76,6 +76,7 @@
 typedef struct ramctr_timing_st {
 	u16 spd_crc[NUM_CHANNELS][NUM_SLOTS];
 	int mobile;
+	int sandybridge;
 
 	u16 cas_supported;
 	/* tLatencies are in units of ns, scaled by x256 */
@@ -176,5 +177,10 @@
 void final_registers(ramctr_timing * ctrl);
 void restore_timings(ramctr_timing * ctrl);
 
-#endif
+int try_init_dram_ddr3_sandy(ramctr_timing *ctrl, int fast_boot,
+		int s3_resume, int me_uma_size);
 
+int try_init_dram_ddr3_ivy(ramctr_timing *ctrl, int fast_boot,
+		int s3_resume, int me_uma_size);
+
+#endif