[coreboot-gerrit] Patch set updated for coreboot: arch/x86: Link walkcbfs.S instead on including it in bootblock.S

Alexandru Gagniuc (mr.nuke.me@gmail.com) gerrit at coreboot.org
Mon Oct 5 01:13:57 CET 2015


Alexandru Gagniuc (mr.nuke.me at gmail.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/11785

-gerrit

commit bc563e2a34e90bdfc82a3726b9efde55624327df
Author: Alexandru Gagniuc <mr.nuke.me at gmail.com>
Date:   Fri Oct 2 16:17:41 2015 -0700

    arch/x86: Link walkcbfs.S instead on including it in bootblock.S
    
    The code flow doesn't fall through to walkcbfs, as it does in the rest
    of bootblock.S. Instead, walkcbfs is called (albeit via a jmp). The
    linker cannot know this when walkcbfs.S is included directly.
    
    When we use a CAR bootblock, we lose several hundred bytes because
    walkcbfs is not garbage-collected, yet it isn't used. This problem
    is solved by assembling walkcbfs.S separately, and linking it.
    
    Change-Id: Ib3a976db09b9ff270b7677cb4f9db80b0b025e22
    Signed-off-by: Alexandru Gagniuc <mr.nuke.me at gmail.com>
---
 src/arch/x86/Makefile.inc | 1 +
 src/arch/x86/bootblock.S  | 2 --
 src/arch/x86/walkcbfs.S   | 2 ++
 3 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/src/arch/x86/Makefile.inc b/src/arch/x86/Makefile.inc
index 7c07de2..95ebb6a 100644
--- a/src/arch/x86/Makefile.inc
+++ b/src/arch/x86/Makefile.inc
@@ -85,6 +85,7 @@ endif
 # the right order. Make sure the auto generated bootblock.inc is a proper
 # dependency. Make the same true for the linker sript.
 bootblock-y += bootblock.S
+bootblock-y += walkcbfs.S
 $(obj)/arch/x86/bootblock.bootblock.o: $(objgenerated)/bootblock.inc
 
 bootblock-y += bootblock.ld
diff --git a/src/arch/x86/bootblock.S b/src/arch/x86/bootblock.S
index 7276c7a..bea178d 100644
--- a/src/arch/x86/bootblock.S
+++ b/src/arch/x86/bootblock.S
@@ -47,5 +47,3 @@
  * needs to come after bootblock.inc.
  */
 #include <generated/bootblock.inc>
-
-#include <arch/x86/walkcbfs.S>
diff --git a/src/arch/x86/walkcbfs.S b/src/arch/x86/walkcbfs.S
index 9c26d3c..0b91f57 100644
--- a/src/arch/x86/walkcbfs.S
+++ b/src/arch/x86/walkcbfs.S
@@ -18,6 +18,8 @@
 
 #define CBFS_FILE_STRUCTSIZE (CBFS_FILE_OFFSET + 4)
 
+.global walkcbfs_asm
+
 /*
  * input %esi: filename
  * input %esp: return address (not pointer to return address!)



More information about the coreboot-gerrit mailing list