diff options
author | Vladimir Serbinenko <phcoder@gmail.com> | 2016-02-10 01:36:25 +0100 |
---|---|---|
committer | Martin Roth <martinroth@google.com> | 2016-02-12 04:20:57 +0100 |
commit | ffbb3c0b8abea621eb7a1583d630cf06c8cbfbbc (patch) | |
tree | 9a45adcee57358dd8ebafc4201db2cbd0beef679 /src/northbridge/intel/sandybridge/raminit_mrc.c | |
parent | 622eea7e815af39dbee290eddc487baab5e8a5f5 (diff) | |
download | coreboot-ffbb3c0b8abea621eb7a1583d630cf06c8cbfbbc.tar.xz |
Merge sandy/ivybridge romstage flow for MRC and non-MRC.
Change-Id: I11e09804ed1d8a7ae8b8d4502bd18f6be933f9fa
Signed-off-by: Vladimir Serbinenko <phcoder@gmail.com>
Reviewed-on: https://review.coreboot.org/13656
Tested-by: build bot (Jenkins)
Reviewed-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
Reviewed-by: Martin Roth <martinroth@google.com>
Diffstat (limited to 'src/northbridge/intel/sandybridge/raminit_mrc.c')
-rw-r--r-- | src/northbridge/intel/sandybridge/raminit_mrc.c | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/src/northbridge/intel/sandybridge/raminit_mrc.c b/src/northbridge/intel/sandybridge/raminit_mrc.c index a370eccd31..162caf6107 100644 --- a/src/northbridge/intel/sandybridge/raminit_mrc.c +++ b/src/northbridge/intel/sandybridge/raminit_mrc.c @@ -25,6 +25,7 @@ #include <pc80/mc146818rtc.h> #include <device/pci_def.h> #include <halt.h> +#include <timestamp.h> #include "raminit.h" #include "pei_data.h" #include "sandybridge.h" @@ -279,3 +280,29 @@ void sdram_initialize(struct pei_data *pei_data) report_memory_config(); } + +void perform_raminit(int s3resume) +{ + int cbmem_was_initted; + struct pei_data pei_data; + + /* Prepare USB controller early in S3 resume */ + if (!mainboard_should_reset_usb(s3resume)) + enable_usb_bar(); + + mainboard_fill_pei_data(&pei_data); + + post_code(0x3a); + pei_data.boot_mode = s3resume ? 2 : 0; + timestamp_add_now(TS_BEFORE_INITRAM); + sdram_initialize(&pei_data); + cbmem_was_initted = !cbmem_recovery(s3resume); + if (!s3resume) + save_mrc_data(&pei_data); + + if (s3resume && !cbmem_was_initted) { + /* Failed S3 resume, reset to come up cleanly */ + outb(0x6, 0xcf9); + halt(); + } +} |