[coreboot-gerrit] Patch set updated for coreboot: arch/x86: Always compile postcar library in romstage

Rizwan Qureshi (rizwan.qureshi@intel.com) gerrit at coreboot.org
Fri Sep 9 17:21:39 CEST 2016


Rizwan Qureshi (rizwan.qureshi at intel.com) just uploaded a new patch set to gerrit, which you can find at https://review.coreboot.org/16331

-gerrit

commit e62cfdecb2ce44a81f272f33c0a09e52a4cf9147
Author: Rizwan Qureshi <rizwan.qureshi at intel.com>
Date:   Fri Aug 26 21:08:50 2016 +0530

    arch/x86: Always compile postcar library in romstage
    
    postcar_loader.c has a useful library of funtions for
    setting up stack and MTRRs. Make it available in romstage
    irrespective of CONFIG_POSTCAR_STAGE for use in stack setup
    after Dram init.
    
    The final step of moving the used and max MTRRs on to stack
    is moved to a new function, that can be used outside of
    postcar phase.
    
    Change-Id: I322b12577d74268d03fe42a9744648763693cddd
    Signed-off-by: Rizwan Qureshi <rizwan.qureshi at intel.com>
---
 src/arch/x86/Makefile.inc       |  2 +-
 src/arch/x86/include/arch/cpu.h |  6 ++++++
 src/arch/x86/postcar_loader.c   | 18 ++++++++++++------
 3 files changed, 19 insertions(+), 7 deletions(-)

diff --git a/src/arch/x86/Makefile.inc b/src/arch/x86/Makefile.inc
index 9b16add..38a2a8c 100644
--- a/src/arch/x86/Makefile.inc
+++ b/src/arch/x86/Makefile.inc
@@ -213,7 +213,7 @@ romstage-y += memcpy.c
 romstage-y += memmove.c
 romstage-y += memset.c
 romstage-$(CONFIG_X86_TOP4G_BOOTMEDIA_MAP) += mmap_boot.c
-romstage-$(CONFIG_POSTCAR_STAGE) += postcar_loader.c
+romstage-y += postcar_loader.c
 romstage-$(CONFIG_COLLECT_TIMESTAMPS) += timestamp.c
 
 ifneq ($(CONFIG_ROMCC),y)
diff --git a/src/arch/x86/include/arch/cpu.h b/src/arch/x86/include/arch/cpu.h
index 5c26bcf..faa2375 100644
--- a/src/arch/x86/include/arch/cpu.h
+++ b/src/arch/x86/include/arch/cpu.h
@@ -274,6 +274,12 @@ void postcar_frame_add_mtrr(struct postcar_frame *pcf,
 				uintptr_t addr, size_t size, int type);
 
 /*
+ * Push used MTRR and Max MTRRs on to the stack
+ * and return pointer to stack top.
+ */
+void *postcar_commit_mtrrs(struct postcar_frame *pcf);
+
+/*
  * Load and run a program that takes control of execution that
  * tears down CAR and loads ramstage. The postcar_frame object
  * indicates how to set up the frame. If caching is enabled at
diff --git a/src/arch/x86/postcar_loader.c b/src/arch/x86/postcar_loader.c
index cc1d460..b5d8db0 100644
--- a/src/arch/x86/postcar_loader.c
+++ b/src/arch/x86/postcar_loader.c
@@ -84,6 +84,17 @@ void postcar_frame_add_mtrr(struct postcar_frame *pcf,
 	pcf->num_var_mttrs++;
 }
 
+void *postcar_commit_mtrrs(struct postcar_frame *pcf)
+{
+	/*
+	 * Place the number of used variable MTRRs on stack then max number
+	 * of variable MTRRs supported in the system.
+	 */
+	stack_push(pcf, pcf->num_var_mttrs);
+	stack_push(pcf, pcf->max_var_mttrs);
+	return (void *) pcf->stack;
+}
+
 void run_postcar_phase(struct postcar_frame *pcf)
 {
 	struct prog prog =
@@ -93,12 +104,7 @@ void run_postcar_phase(struct postcar_frame *pcf)
 		.prog = &prog,
 	};
 
-	/*
-	 * Place the number of used variable MTRRs on stack then max number
-	 * of variable MTRRs supported in the system.
-	 */
-	stack_push(pcf, pcf->num_var_mttrs);
-	stack_push(pcf, pcf->max_var_mttrs);
+	postcar_commit_mtrrs(pcf);
 
 	if (prog_locate(&prog))
 		die("Failed to locate after CAR program.\n");



More information about the coreboot-gerrit mailing list