Add support to enable/disable builtin GbE (again)

This requires a new system agent binary (v6 / v11 on haswell).
Note that the existing system agent binaries are long time obsolete
and won't work with current coreboot, so this update is overdue.

Change-Id: I48d8649576ca84d2b85ab082ce06f3462e189059
Signed-off-by: Stefan Reinauer <reinauer@google.com>
Reviewed-on: http://review.coreboot.org/3568
Tested-by: build bot (Jenkins)
Reviewed-by: Ronald G. Minnich <rminnich@gmail.com>
diff --git a/src/northbridge/intel/sandybridge/Kconfig b/src/northbridge/intel/sandybridge/Kconfig
index 56d2cd7..3a65782 100644
--- a/src/northbridge/intel/sandybridge/Kconfig
+++ b/src/northbridge/intel/sandybridge/Kconfig
@@ -118,8 +118,7 @@
 config MRC_FILE
 	string "Intel System Agent path and filename"
 	depends on HAVE_MRC
-	default "systemagent-ivybridge.bin" if NORTHBRIDGE_INTEL_IVYBRIDGE
-	default "systemagent-sandybridge.bin" if NORTHBRIDGE_INTEL_SANDYBRIDGE
+	default "systemagent-r6.bin"
 	help
 	  The path and filename of the file to use as System Agent
 	  binary.
diff --git a/src/northbridge/intel/sandybridge/Makefile.inc b/src/northbridge/intel/sandybridge/Makefile.inc
index 1428bdb..be07e93 100644
--- a/src/northbridge/intel/sandybridge/Makefile.inc
+++ b/src/northbridge/intel/sandybridge/Makefile.inc
@@ -35,12 +35,7 @@
 # We don't ship that, but booting without it is bound to fail
 cbfs-files-$(CONFIG_HAVE_MRC) += mrc.bin
 mrc.bin-file := $(call strip_quotes,$(CONFIG_MRC_FILE))
-ifeq ($(CONFIG_NORTHBRIDGE_INTEL_IVYBRIDGE),y)
 mrc.bin-position := 0xfffa0000
-endif
-ifeq ($(CONFIG_NORTHBRIDGE_INTEL_SANDYBRIDGE),y)
-mrc.bin-position := 0xfffe0000
-endif
 mrc.bin-type := 0xab
 
 $(obj)/mrc.cache:
diff --git a/src/northbridge/intel/sandybridge/pei_data.h b/src/northbridge/intel/sandybridge/pei_data.h
index fb56873..d317515 100644
--- a/src/northbridge/intel/sandybridge/pei_data.h
+++ b/src/northbridge/intel/sandybridge/pei_data.h
@@ -38,7 +38,7 @@
 } pch_usb3_controller_settings;
 
 typedef void (*tx_byte_func)(unsigned char byte);
-#define PEI_VERSION 5
+#define PEI_VERSION 6
 
 struct pei_data
 {
@@ -61,6 +61,7 @@
 	uint8_t ts_addresses[4];
 	int boot_mode;
 	int ec_present;
+	int gbe_enable;
 	// 0 = leave channel enabled
 	// 1 = disable dimm 0 on channel
 	// 2 = disable dimm 1 on channel