diff options
author | Patrick Georgi <patrick.georgi@coresystems.de> | 2010-04-08 21:04:45 +0000 |
---|---|---|
committer | Patrick Georgi <patrick.georgi@coresystems.de> | 2010-04-08 21:04:45 +0000 |
commit | e64b63750f029dac66902dee8cf6a7cf82ba44a3 (patch) | |
tree | 6735ae2018eec030df0b88c2025d61da293dd4f2 /src/arch/i386 | |
parent | 362db613a0556a102e2812c1c00e3491eafdb66f (diff) |
Split crt0.S.lb into prologue and epilogue
(the latter only for romcc), rename crt0_includes.h
to crt0.S, and compile that directly.
Signed-off-by: Patrick Georgi <patrick.georgi@coresystems.de>
Acked-by: Stefan Reinauer <stepan@coresystems.de>
git-svn-id: svn://svn.coreboot.org/coreboot/trunk@5383 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
Diffstat (limited to 'src/arch/i386')
-rw-r--r-- | src/arch/i386/Makefile.bigbootblock.inc | 4 | ||||
-rw-r--r-- | src/arch/i386/Makefile.bootblock.inc | 4 | ||||
-rw-r--r-- | src/arch/i386/Makefile.inc | 6 | ||||
-rw-r--r-- | src/arch/i386/init/crt0_prologue.inc | 28 | ||||
-rw-r--r-- | src/arch/i386/init/crt0_romcc_epilogue.inc (renamed from src/arch/i386/init/crt0.S.lb) | 23 |
5 files changed, 37 insertions, 28 deletions
diff --git a/src/arch/i386/Makefile.bigbootblock.inc b/src/arch/i386/Makefile.bigbootblock.inc index fc9b0ec584..1ecdd78deb 100644 --- a/src/arch/i386/Makefile.bigbootblock.inc +++ b/src/arch/i386/Makefile.bigbootblock.inc @@ -16,7 +16,7 @@ $(obj)/ldscript.ld: $$(ldscripts) $(obj)/ldoptions printf 'INCLUDE "ldoptions"\n' > $@ printf '$(foreach ldscript,$(ldscripts),INCLUDE "$(ldscript:$(obj)/%=%)"\n)' >> $@ -$(obj)/crt0_includes.h: $$(crt0s) +$(obj)/crt0.S: $$(crt0s) @printf " GEN $(subst $(obj)/,,$(@))\n" printf '$(foreach crt0,config.h $(crt0s),#include "$(crt0:$(obj)/%=%)"\n)' > $@ @@ -24,7 +24,7 @@ $(obj)/mainboard/$(MAINBOARDDIR)/crt0.initobj.o: $(obj)/mainboard/$(MAINBOARDDIR @printf " CC $(subst $(obj)/,,$(@))\n" $(CC) -MMD -I$(obj) -Wa,-acdlns -c -o $@ $< > $(dir $@)/crt0.disasm -$(obj)/mainboard/$(MAINBOARDDIR)/crt0.s: $(src)/arch/i386/init/crt0.S.lb $(obj)/crt0_includes.h +$(obj)/mainboard/$(MAINBOARDDIR)/crt0.s: $(obj)/crt0.S @printf " CC $(subst $(obj)/,,$(@))\n" $(CC) -MMD -x assembler-with-cpp -DASSEMBLY -E -I$(src)/include -I$(src)/arch/i386/include -I$(obj) -include $(obj)/config.h -I. -I$(src) $< > $@.new && mv $@.new $@ diff --git a/src/arch/i386/Makefile.bootblock.inc b/src/arch/i386/Makefile.bootblock.inc index 5c4a5f6a1a..fae8e2060c 100644 --- a/src/arch/i386/Makefile.bootblock.inc +++ b/src/arch/i386/Makefile.bootblock.inc @@ -96,7 +96,7 @@ $(obj)/romstage/ldscript.ld: $$(ldscripts) $(obj)/ldoptions mkdir -p $(obj)/romstage printf '$(foreach ldscript,ldoptions location.ld $(ldscripts),INCLUDE "$(ldscript:$(obj)/%=%)"\n)' > $@ -$(obj)/romstage/crt0_includes.h: $$(crt0s) +$(obj)/romstage/crt0.S: $$(crt0s) @printf " GEN $(subst $(obj)/,,$(@))\n" mkdir -p $(obj)/romstage printf '$(foreach crt0,config.h $(crt0s),#include "$(crt0:$(obj)/%=%)"\n)' > $@ @@ -105,7 +105,7 @@ $(obj)/mainboard/$(MAINBOARDDIR)/crt0.initobj.o: $(obj)/mainboard/$(MAINBOARDDIR @printf " CC $(subst $(obj)/,,$(@))\n" $(CC) -I$(obj) -Wa,-acdlns -c -o $@ $< > $(dir $@)/crt0.disasm -$(obj)/mainboard/$(MAINBOARDDIR)/crt0.s: $(src)/arch/i386/init/crt0.S.lb $(obj)/romstage/crt0_includes.h +$(obj)/mainboard/$(MAINBOARDDIR)/crt0.s: $(obj)/romstage/crt0.S @printf " CC $(subst $(obj)/,,$(@))\n" $(CC) -x assembler-with-cpp -DASSEMBLY -E -I$(src)/include -I$(src)/arch/i386/include -I$(obj) -I$(obj)/romstage -include $(obj)/config.h -I. -I$(src) $< > $@.new && mv $@.new $@ diff --git a/src/arch/i386/Makefile.inc b/src/arch/i386/Makefile.inc index d1cb806049..a8f6a005a6 100644 --- a/src/arch/i386/Makefile.inc +++ b/src/arch/i386/Makefile.inc @@ -100,7 +100,7 @@ endif ####################################################################### # done -crt0s = +crt0s = $(src)/arch/i386/init/crt0_prologue.inc ldscripts = ldscripts += $(src)/arch/i386/init/ldscript_fallback_cbfs.lb ifeq ($(CONFIG_BIG_BOOTBLOCK),y) @@ -196,6 +196,10 @@ crt0s += $(chipset_bootblock_inc) ldscripts += $(chipset_bootblock_lds) endif +ifeq ($(CONFIG_ROMCC),y) +crt0s += $(src)/arch/i386/init/crt0_romcc_epilogue.inc +endif + OPTION_TABLE_H:= ifeq ($(CONFIG_HAVE_OPTION_TABLE),y) OPTION_TABLE_H:=$(obj)/option_table.h diff --git a/src/arch/i386/init/crt0_prologue.inc b/src/arch/i386/init/crt0_prologue.inc new file mode 100644 index 0000000000..b0ce2cf869 --- /dev/null +++ b/src/arch/i386/init/crt0_prologue.inc @@ -0,0 +1,28 @@ +/* + * Copyright 2002 Eric Biederman + * + * This file is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + */ + + +#include <arch/asm.h> +#include <arch/intel.h> +#include <console/loglevel.h> + +#ifndef ASM_CONSOLE_LOGLEVEL +#define ASM_CONSOLE_LOGLEVEL CONFIG_MAXIMUM_CONSOLE_LOGLEVEL +#endif + +/* + * This is the entry code the code in .reset section + * jumps to this address. + * + */ +.section ".rom.data", "a", @progbits +.section ".rom.text", "ax", @progbits + + post_code(0x01) /* delay for chipsets */ + diff --git a/src/arch/i386/init/crt0.S.lb b/src/arch/i386/init/crt0_romcc_epilogue.inc index 5e7a5fa8c7..a8a6043830 100644 --- a/src/arch/i386/init/crt0.S.lb +++ b/src/arch/i386/init/crt0_romcc_epilogue.inc @@ -21,27 +21,6 @@ */ -#include <arch/asm.h> -#include <arch/intel.h> -#include <console/loglevel.h> - -#ifndef ASM_CONSOLE_LOGLEVEL -#define ASM_CONSOLE_LOGLEVEL CONFIG_MAXIMUM_CONSOLE_LOGLEVEL -#endif - -/* - * This is the entry code the code in .reset section - * jumps to this address. - * - */ -.section ".rom.data", "a", @progbits -.section ".rom.text", "ax", @progbits - - post_code(0x01) /* delay for chipsets */ - -#include "crt0_includes.h" - -#if CONFIG_USE_DCACHE_RAM == 0 #ifndef CONSOLE_DEBUG_TX_STRING /* uses: esp, ebx, ax, dx */ # define __CRT_CONSOLE_TX_STRING(string) \ @@ -143,5 +122,3 @@ str_pre_main: .string "Jumping to coreboot.\r\n" str_coreboot_ram_name: .ascii CONFIG_CBFS_PREFIX .string "/coreboot_ram" - -#endif /* CONFIG_USE_DCACHE_RAM */ |