mirror of
https://github.com/fail0verflow/switch-coreboot.git
synced 2025-05-04 01:39:18 -04:00
Create a global rule for compiling raminit code to keep the mainboard
Makefiles clean and simple. Signed-off-by: Stefan Reinauer <stepan@coresystems.de> Acked-by: Uwe Hermann <uwe@hermann-uwe.de> git-svn-id: svn://coreboot.org/repository/LinuxBIOSv3@517 f3766cd6-281f-0410-b1cd-43a5c92072e9
This commit is contained in:
parent
daea2e08b0
commit
e04ac72e78
9 changed files with 23 additions and 50 deletions
10
Rules.make
10
Rules.make
|
@ -78,3 +78,13 @@ $(obj)/southbridge/%.o: $(src)/southbridge/%.c $(obj)/statictree.h
|
|||
$(Q)printf " CC $(subst $(shell pwd)/,,$(@))\n"
|
||||
$(Q)$(CC) $(INITCFLAGS) -c $< -o $@
|
||||
|
||||
#
|
||||
# RAM initialization code can not be linked at a specific address,
|
||||
# hence it has to be executed in place position independently.
|
||||
#
|
||||
|
||||
$(obj)/%_xip.o: $(src)/%.c
|
||||
$(Q)mkdir -p $(dir $@)
|
||||
$(Q)printf " CC $(subst $(shell pwd)/,,$(@)) (XIP)\n"
|
||||
$(Q)$(CC) $(INITCFLAGS) -D_SHARED -fPIE -c $< -o $@
|
||||
|
||||
|
|
|
@ -32,24 +32,11 @@ INITRAM_OBJ = $(obj)/mainboard/$(MAINBOARDDIR)/initram.o \
|
|||
$(obj)/southbridge/amd/cs5536/smbus_initram.o \
|
||||
$(obj)/arch/x86/geodelx/geodelx.o
|
||||
|
||||
# Next Quest: Make a single rule out of those:
|
||||
$(obj)/mainboard/$(MAINBOARDDIR)/initram.o: $(src)/mainboard/$(MAINBOARDDIR)/initram.c
|
||||
$(Q)$(CC) $(INITCFLAGS) -D_SHARED -D_MAINOBJECT -fPIE -c $< -o $@
|
||||
$(obj)/northbridge/amd/geodelx/raminit.o: $(src)/northbridge/amd/geodelx/raminit.c
|
||||
$(Q)mkdir -p $(dir $@)
|
||||
$(Q)$(CC) $(INITCFLAGS) -D_SHARED -fPIE -c $< -o $@
|
||||
$(obj)/southbridge/amd/cs5536/smbus_initram.o: $(src)/southbridge/amd/cs5536/smbus_initram.c
|
||||
$(Q)mkdir -p $(dir $@)
|
||||
$(Q)$(CC) $(INITCFLAGS) -D_SHARED -fPIE -c $< -o $@
|
||||
$(obj)/arch/x86/geodelx/geodelx.o: $(src)/arch/x86/geodelx/geodelx.c
|
||||
$(Q)mkdir -p $(dir $@)
|
||||
$(Q)$(CC) $(INITCFLAGS) -D_SHARED -fPIE -c $< -o $@
|
||||
|
||||
$(obj)/linuxbios.initram $(obj)/linuxbios.initram.map: $(obj)/stage0.init $(obj)/stage0-prefixed.o $(INITRAM_OBJ)
|
||||
$(obj)/linuxbios.initram $(obj)/linuxbios.initram.map: $(obj)/stage0.init $(obj)/stage0-prefixed.o $(patsubst %.o,%_xip.o,$(INITRAM_OBJ))
|
||||
$(Q)# initram links against stage0
|
||||
$(Q)printf " LD $(subst $(shell pwd)/,,$(@))\n"
|
||||
$(Q)$(LD) --entry main -N -R $(obj)/stage0-prefixed.o \
|
||||
$(INITRAM_OBJ) -o $(obj)/linuxbios.initram.o
|
||||
$(patsubst %.o,%_xip.o,$(INITRAM_OBJ)) -o $(obj)/linuxbios.initram.o
|
||||
$(Q)printf " OBJCOPY $(subst $(shell pwd)/,,$(@))\n"
|
||||
$(Q)$(OBJCOPY) -O binary $(obj)/linuxbios.initram.o \
|
||||
$(obj)/linuxbios.initram
|
||||
|
|
|
@ -18,6 +18,7 @@
|
|||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
#define _MAINOBJECT
|
||||
#include <types.h>
|
||||
#include <lib.h>
|
||||
#include <console.h>
|
||||
|
|
|
@ -26,30 +26,17 @@ INITRAM_OBJ = $(obj)/mainboard/$(MAINBOARDDIR)/initram.o \
|
|||
$(obj)/southbridge/amd/cs5536/smbus_initram.o \
|
||||
$(obj)/arch/x86/geodelx/geodelx.o
|
||||
|
||||
# Next Quest: Make a single rule out of those:
|
||||
$(obj)/mainboard/$(MAINBOARDDIR)/initram.o: $(src)/mainboard/$(MAINBOARDDIR)/initram.c
|
||||
$(Q)$(CC) $(INITCFLAGS) -D_SHARED -D_MAINOBJECT -fPIE -c $< -o $@
|
||||
$(obj)/northbridge/amd/geodelx/raminit.o: $(src)/northbridge/amd/geodelx/raminit.c
|
||||
$(Q)mkdir -p $(dir $@)
|
||||
$(Q)$(CC) $(INITCFLAGS) -D_SHARED -fPIE -c $< -o $@
|
||||
$(obj)/southbridge/amd/cs5536/smbus_initram.o: $(src)/southbridge/amd/cs5536/smbus_initram.c
|
||||
$(Q)mkdir -p $(dir $@)
|
||||
$(Q)$(CC) $(INITCFLAGS) -D_SHARED -fPIE -c $< -o $@
|
||||
$(obj)/arch/x86/geodelx/geodelx.o: $(src)/arch/x86/geodelx/geodelx.c
|
||||
$(Q)mkdir -p $(dir $@)
|
||||
$(Q)$(CC) $(INITCFLAGS) -D_SHARED -fPIE -c $< -o $@
|
||||
|
||||
STAGE2_MAINBOARD_OBJ =
|
||||
|
||||
$(obj)/linuxbios.vpd:
|
||||
$(Q)printf " BUILD DUMMY VPD\n"
|
||||
$(Q)dd if=/dev/zero of=$(obj)/linuxbios.vpd bs=256 count=1 $(SILENT)
|
||||
|
||||
$(obj)/linuxbios.initram $(obj)/linuxbios.initram.map: $(obj)/stage0.init $(obj)/stage0-prefixed.o $(INITRAM_OBJ)
|
||||
$(obj)/linuxbios.initram $(obj)/linuxbios.initram.map: $(obj)/stage0.init $(obj)/stage0-prefixed.o $(patsubst %.o,%_xip.o,$(INITRAM_OBJ))
|
||||
$(Q)# initram links against stage0
|
||||
$(Q)printf " LD $(subst $(shell pwd)/,,$(@))\n"
|
||||
$(Q)$(LD) --entry main -N -R $(obj)/stage0-prefixed.o \
|
||||
$(INITRAM_OBJ) -o $(obj)/linuxbios.initram.o
|
||||
$(patsubst %.o,%_xip.o,$(INITRAM_OBJ)) -o $(obj)/linuxbios.initram.o
|
||||
$(Q)printf " OBJCOPY $(subst $(shell pwd)/,,$(@))\n"
|
||||
$(Q)$(OBJCOPY) -O binary $(obj)/linuxbios.initram.o \
|
||||
$(obj)/linuxbios.initram
|
||||
|
|
|
@ -18,6 +18,8 @@
|
|||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
#define _MAINOBJECT
|
||||
|
||||
#include <types.h>
|
||||
#include <lib.h>
|
||||
#include <console.h>
|
||||
|
|
|
@ -30,24 +30,11 @@ $(obj)/linuxbios.vpd:
|
|||
INITRAM_OBJ = $(obj)/mainboard/$(MAINBOARDDIR)/initram.o \
|
||||
$(obj)/arch/x86/geodelx/geodelx.o
|
||||
|
||||
# Next Quest: Make a single rule out of those:
|
||||
$(obj)/mainboard/$(MAINBOARDDIR)/initram.o: $(src)/mainboard/$(MAINBOARDDIR)/initram.c
|
||||
$(Q)$(CC) $(INITCFLAGS) -D_SHARED -D_MAINOBJECT -fPIE -c $< -o $@
|
||||
$(obj)/northbridge/amd/geodelx/raminit.o: $(src)/northbridge/amd/geodelx/raminit.c
|
||||
$(Q)mkdir -p $(dir $@)
|
||||
$(Q)$(CC) $(INITCFLAGS) -D_SHARED -fPIE -c $< -o $@
|
||||
$(obj)/southbridge/amd/cs5536/smbus_initram.o: $(src)/southbridge/amd/cs5536/smbus_initram.c
|
||||
$(Q)mkdir -p $(dir $@)
|
||||
$(Q)$(CC) $(INITCFLAGS) -D_SHARED -fPIE -c $< -o $@
|
||||
$(obj)/arch/x86/geodelx/geodelx.o: $(src)/arch/x86/geodelx/geodelx.c
|
||||
$(Q)mkdir -p $(dir $@)
|
||||
$(Q)$(CC) $(INITCFLAGS) -D_SHARED -fPIE -c $< -o $@
|
||||
|
||||
$(obj)/linuxbios.initram $(obj)/linuxbios.initram.map: $(obj)/stage0.init $(obj)/stage0-prefixed.o $(INITRAM_OBJ)
|
||||
$(obj)/linuxbios.initram $(obj)/linuxbios.initram.map: $(obj)/stage0.init $(obj)/stage0-prefixed.o $(patsubst %.o,%_xip.o,$(INITRAM_OBJ))
|
||||
$(Q)# initram links against stage0
|
||||
$(Q)printf " LD $(subst $(shell pwd)/,,$(@))\n"
|
||||
$(Q)$(LD) --entry main -N -R $(obj)/stage0-prefixed.o \
|
||||
$(INITRAM_OBJ) -o $(obj)/linuxbios.initram.o
|
||||
$(patsubst %.o,%_xip.o,$(INITRAM_OBJ)) -o $(obj)/linuxbios.initram.o
|
||||
$(Q)printf " OBJCOPY $(subst $(shell pwd)/,,$(@))\n"
|
||||
$(Q)$(OBJCOPY) -O binary $(obj)/linuxbios.initram.o \
|
||||
$(obj)/linuxbios.initram
|
||||
|
|
|
@ -18,6 +18,7 @@
|
|||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
#define _MAINOBJECT
|
||||
#include <types.h>
|
||||
#include <lib.h>
|
||||
#include <console.h>
|
||||
|
|
|
@ -42,14 +42,11 @@ $(obj)/linuxbios.vpd:
|
|||
|
||||
INITRAM_OBJ = $(obj)/mainboard/$(MAINBOARDDIR)/initram.o
|
||||
|
||||
$(obj)/mainboard/$(MAINBOARDDIR)/initram.o: $(src)/mainboard/$(MAINBOARDDIR)/initram.c
|
||||
$(Q)$(CC) $(INITCFLAGS) -D_SHARED -D_MAINOBJECT -fPIE -c $< -o $@
|
||||
|
||||
$(obj)/linuxbios.initram $(obj)/linuxbios.initram.map: $(obj)/stage0.init $(obj)/stage0-prefixed.o $(INITRAM_OBJ)
|
||||
$(obj)/linuxbios.initram $(obj)/linuxbios.initram.map: $(obj)/stage0.init $(obj)/stage0-prefixed.o $(patsubst %.o,%_xip.o,$(INITRAM_OBJ))
|
||||
$(Q)# initram links against stage0
|
||||
$(Q)printf " LD $(subst $(shell pwd)/,,$(@))\n"
|
||||
$(Q)$(LD) --entry main -N -R $(obj)/stage0-prefixed.o \
|
||||
$(INITRAM_OBJ) -o $(obj)/linuxbios.initram.o
|
||||
$(patsubst %.o,%_xip.o,$(INITRAM_OBJ)) -o $(obj)/linuxbios.initram.o
|
||||
$(Q)printf " OBJCOPY $(subst $(shell pwd)/,,$(@))\n"
|
||||
$(Q)$(OBJCOPY) -O binary $(obj)/linuxbios.initram.o \
|
||||
$(obj)/linuxbios.initram
|
||||
|
|
|
@ -17,6 +17,7 @@
|
|||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
#define _MAINOBJECT
|
||||
#include <console.h>
|
||||
|
||||
int main(void)
|
||||
|
|
Loading…
Add table
Reference in a new issue