* move post_code() to a seperate file

* statically link linuxbios.initram for now (depends on printk, post_code
  and die)
* greatly simplify all makefiles by creating a global Rules.make
* use $(dir $@) in Makefiles instead of absolute paths for mkdir..
* clean up Makefiles by calling components' code locally instead of in the
  Makefile. (Remember: one day, no code per mainboard)
* unconditionally create .xcompile in case it changed
* add NM to xcompile                          
* create $(obj)/linuxbios.map with all symbols of all stages

Signed-off-by: Stefan Reinauer <stepan@coresystems.de>
Acked-by: Uwe Hermann <uwe@hermann-uwe.de>



git-svn-id: svn://coreboot.org/repository/LinuxBIOSv3@463 f3766cd6-281f-0410-b1cd-43a5c92072e9
This commit is contained in:
Stefan Reinauer 2007-07-23 16:49:00 +00:00
commit 276a0e0ec9
22 changed files with 209 additions and 249 deletions

View file

@ -26,7 +26,6 @@ PATCHLEVEL = 0
SUBLEVEL = 0
have_dotconfig := $(wildcard .config)
have_dotxcompile := $(wildcard .xcompile)
src := $(shell pwd)
obj := $(shell pwd)/build
@ -60,6 +59,9 @@ endif
KERNELVERSION = $(VERSION).$(PATCHLEVEL).$(SUBLEVEL)
export KERNELVERSION
include $(shell $(src)/util/xcompile/xcompile > $(src)/.xcompile || \
{ echo "complete\\ toolchain" && rm -f $(src)/.xcompile && exit 1; }; echo $(src)/.xcompile)
ifeq ($(strip $(have_dotconfig)),)
all:
@ -85,16 +87,10 @@ LINUXBIOSINCLUDE := -I$(src) -Iinclude \
-include $(obj)/config.h \
-include $(obj)/build.h
ifneq ($(strip $(have_dotxcompile)),)
include $(src)/.xcompile
else
include $(shell $(src)/util/xcompile/xcompile > $(src)/.xcompile || \
{ echo "complete\\ toolchain" && rm -f $(src)/.xcompile && exit 1; }; echo $(src)/.xcompile)
endif
CC := $(CC_$(ARCH))
AS := $(AS_$(ARCH))
LD := $(LD_$(ARCH))
NM := $(NM_$(ARCH))
OBJCOPY := $(OBJCOPY_$(ARCH))
AR := $(AR_$(ARCH))
@ -111,6 +107,7 @@ CFLAGS += -nostdinc -isystem `$(CC) -print-file-name=include`
include lib/Makefile
include device/Makefile
include mainboard/$(MAINBOARDDIR)/Makefile
include Rules.make
include northbridge/*/*/Makefile
include southbridge/*/*/Makefile
include superio/*/*/Makefile

80
Rules.make Normal file
View file

@ -0,0 +1,80 @@
##
## This file is part of the LinuxBIOS project.
##
## Copyright (C) 2006-2007 coresystems GmbH
## (Written by Stefan Reinauer <stepan@coresystems.de> for coresystems GmbH)
##
## This program 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.
##
## This program is distributed in the hope that it will be useful,
## but WITHOUT ANY WARRANTY; without even the implied warranty of
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
## GNU General Public License for more details.
##
## You should have received a copy of the GNU General Public License
## along with this program; if not, write to the Free Software
## Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
##
#
# Miscellaneous mainboard specific build targets!
#
$(obj)/mainboard/$(MAINBOARDDIR)/statictree.o: $(obj)/mainboard/$(MAINBOARDDIR)/statictree.c $(obj)/statictree.h
$(Q)printf " CC $(subst $(shell pwd)/,,$(@))\n"
$(Q)$(CC) $(INITCFLAGS) $(LINUXBIOSINCLUDE) -c -o $@ $<
$(obj)/mainboard/$(MAINBOARDDIR)/statictree.c: $(src)/mainboard/$(MAINBOARDDIR)/dts $(obj)/util/dtc/dtc
$(Q)printf " DTC $(subst $(shell pwd)/,,$(@))\n"
$(Q)$(obj)/util/dtc/dtc -O lb mainboard/$(MAINBOARDDIR)/dts > $@
$(obj)/statictree.h: $(src)/mainboard/$(MAINBOARDDIR)/dts $(obj)/util/dtc/dtc
$(Q)printf " DTC $(subst $(shell pwd)/,,$(@))\n"
$(Q)$(obj)/util/dtc/dtc -O lbh mainboard/$(MAINBOARDDIR)/dts > $@
$(obj)/mainboard/$(MAINBOARDDIR)/option_table.c: $(obj)/util/options/build_opt_tbl $(src)/mainboard/$(MAINBOARDDIR)/cmos.layout
$(Q)printf " OPTIONS $(subst $(shell pwd)/,,$(@))\n"
$(Q)mkdir -p $(obj)/mainboard/$(MAINBOARDDIR)
$(Q)$(obj)/util/options/build_opt_tbl -b \
--config $(src)/mainboard/$(MAINBOARDDIR)/cmos.layout \
--option $(obj)/mainboard/$(MAINBOARDDIR)/option_table.c
$(obj)/option_table: $(obj)/mainboard/$(MAINBOARDDIR)/option_table.o
$(Q)printf " OBJCOPY $(subst $(shell pwd)/,,$(@))\n"
$(Q)$(OBJCOPY) -O binary $< $@
$(obj)/mainboard/$(MAINBOARDDIR)/%.o: $(src)/mainboard/$(MAINBOARDDIR)/%.c
$(Q)mkdir -p $(obj)/mainboard/$(MAINBOARDDIR)
$(Q)printf " CC $(subst $(shell pwd)/,,$(@))\n"
$(Q)$(CC) $(INITCFLAGS) -c $< -o $@
#
# Miscellaneous superio specific build targets!
#
$(obj)/superio/%.o: $(src)/superio/%.c $(obj)/statictree.h
$(Q)mkdir -p $(dir $@)
$(Q)printf " CC $(subst $(shell pwd)/,,$(@))\n"
$(Q)$(CC) $(INITCFLAGS) -c $< -o $@
#
# Miscellaneous northbridge specific build targets!
#
$(obj)/northbridge/%.o: $(src)/northbridge/%.c $(obj)/statictree.h
$(Q)mkdir -p $(dir $@)
$(Q)printf " CC $(subst $(shell pwd)/,,$(@))\n"
$(Q)$(CC) $(INITCFLAGS) -c $< -o $@
#
# Miscellaneous southbridge specific build targets!
#
$(obj)/southbridge/%.o: $(src)/southbridge/%.c $(obj)/statictree.h
$(Q)mkdir -p $(dir $@)
$(Q)printf " CC $(subst $(shell pwd)/,,$(@))\n"
$(Q)$(CC) $(INITCFLAGS) -c $< -o $@

View file

@ -22,8 +22,7 @@
ifeq ($(CONFIG_ARCH_X86),y)
INITCFLAGS := $(CFLAGS) -I$(src)/include/arch/x86 -I$(src)/include \
-I$(obj) \
-fno-builtin
-I$(obj) -fno-builtin
SILENT := >/dev/null 2>&1
@ -58,7 +57,7 @@ ifeq ($(CONFIG_DEFAULT_COMPRESSION_NRV2B),y)
COMPRESSFLAG := -C nrv2b
endif
$(obj)/linuxbios.rom: $(obj)/linuxbios.bootblock $(obj)/util/lar/lar lzma nrv2b $(obj)/linuxbios.initram $(obj)/linuxbios.stage2 $(obj)/option_table
$(obj)/linuxbios.rom $(obj)/linuxbios.map: $(obj)/linuxbios.bootblock $(obj)/util/lar/lar lzma nrv2b $(obj)/linuxbios.initram $(obj)/linuxbios.stage2 $(obj)/option_table
$(Q)rm -rf $(obj)/lar.tmp
$(Q)mkdir $(obj)/lar.tmp
$(Q)mkdir $(obj)/lar.tmp/normal
@ -86,6 +85,15 @@ endif
$(Q)# Run "qemu -L build/ -serial stdio -hda /dev/zero".
$(Q)printf " CP $(subst $(shell pwd)/,,$(obj)/bios.bin)\n"
$(Q)cp $@ $(obj)/bios.bin
$(Q)echo "LinuxBIOS ROM Image:" > $(obj)/linuxbios.map
$(Q)$(obj)/util/lar/lar -l $(obj)/linuxbios.rom >> $(obj)/linuxbios.map
$(Q)(echo; echo "Stage 0/1 Map:") >> $(obj)/linuxbios.map
$(Q)cat $(obj)/stage0.init.map >> $(obj)/linuxbios.map
$(Q)(echo; echo "Stage Initram Map:") >> $(obj)/linuxbios.map
$(Q)cat $(obj)/linuxbios.initram.map >> $(obj)/linuxbios.map
$(Q)(echo; echo "Stage 2 Map:") >> $(obj)/linuxbios.map
$(Q)cat $(obj)/linuxbios.stage2.map >> $(obj)/linuxbios.map
$(obj)/linuxbios.bootblock: $(obj)/linuxbios.vpd $(obj)/stage0.init
$(Q)printf " BUILD $(subst $(shell pwd)/,,$(@))\n"
@ -100,13 +108,14 @@ $(obj)/linuxbios.bootblock: $(obj)/linuxbios.vpd $(obj)/stage0.init
STAGE0_LIB_OBJ = uart8250.o mem.o elfboot.o lar.o delay.o vtxprintf.o \
vsprintf.o console.o $(DECOMPRESSORS)
STAGE0_ARCH_X86_OBJ = stage1.o serial.o archelfboot.o speaker.o \
udelay_io.o mc146818rtc.o
udelay_io.o mc146818rtc.o post_code.o
ifeq ($(CONFIG_CPU_I586),y)
STAGE0_CAR_OBJ = stage0_i586.o
else
ifeq ($(CONFIG_CPU_AMD_GEODELX),y)
STAGE0_CAR_OBJ = geodelx/stage0.o
STAGE0_ARCH_X86_OBJ += geodelx/stage1.o
else
STAGE0_CAR_OBJ = stage0_i586.o
endif
@ -116,7 +125,7 @@ endif
STAGE0_OBJ := $(patsubst %,$(obj)/lib/%,$(STAGE0_LIB_OBJ)) \
$(patsubst %,$(obj)/arch/x86/%,$(STAGE0_ARCH_X86_OBJ)) \
$(patsubst %,$(obj)/arch/x86/%,$(STAGE0_CAR_OBJ)) \
$(STAGE0_MAINBOARD_OBJ)
$(STAGE0_MAINBOARD_OBJ) $(STAGE0_CHIPSET_OBJ)
$(obj)/stage0.o $(obj)/stage0.init: $(STAGE0_OBJ)
$(Q)# We need to be careful. If stage0.o gets bigger than
@ -136,6 +145,9 @@ $(obj)/stage0.o $(obj)/stage0.init: $(STAGE0_OBJ)
$(Q)printf " TEST $(subst $(shell pwd)/,,$(@))\n"
$(Q)test `wc -c < $(obj)/stage0.init` -gt 16128 && \
printf "Error. Bootblock got too big.\n" || true
$(Q)printf " NM $(subst $(shell pwd)/,,$(@))\n"
$(Q)$(NM) $(obj)/stage0.o | sort -u > $(obj)/stage0.init.map
#
@ -172,29 +184,24 @@ endif
STAGE2_OBJ += $(obj)/util/x86emu/libx86emu.a $(LIBGCC_FILE_NAME)
endif
$(obj)/linuxbios.stage2: $(obj)/stage0.init $(STAGE2_OBJ)
$(obj)/linuxbios.stage2 $(obj)/linuxbios.stage2.map: $(obj)/stage0.init $(STAGE2_OBJ)
$(Q)# leave a .o with full symbols in it for debugging.
$(Q)printf " LD $(subst $(shell pwd)/,,$(@))\n"
$(Q)$(LD) -R $(obj)/stage0.o -Ttext 0x1000 --entry=stage2 \
-o $(obj)/linuxbios.stage2.o $(STAGE2_OBJ)
$(Q)printf " OBJCOPY $(subst $(shell pwd)/,,$(@))\n"
$(Q)$(OBJCOPY) -O binary $(obj)/linuxbios.stage2.o $(obj)/linuxbios.stage2
$(Q)$(NM) $(obj)/linuxbios.stage2.o | sort -u > $(obj)/linuxbios.stage2.map
#
# Build rules.
#
$(obj)/arch/x86/%.o: $(src)/arch/x86/%.c
$(Q)mkdir -p $(obj)/arch/x86
$(Q)mkdir -p $(dir $@)
$(Q)printf " CC $(subst $(shell pwd)/,,$(@))\n"
$(Q)$(CC) $(INITCFLAGS) -c $< -o $@
$(obj)/mainboard/$(MAINBOARDDIR)/%.o: $(src)/mainboard/$(MAINBOARDDIR)/%.c
$(Q)mkdir -p $(obj)/mainboard/$(MAINBOARDDIR)
$(Q)printf " CC $(subst $(shell pwd)/,,$(@))\n"
$(Q)$(CC) $(INITCFLAGS) -c $< -o $@
# Building asm stub.
$(obj)/arch/x86/stage0%.o: $(src)/arch/x86/stage0%.S
$(Q)printf " CC $(subst $(shell pwd)/,,$(@))\n"
@ -205,7 +212,7 @@ $(obj)/arch/x86/stage0%.o: $(src)/arch/x86/stage0%.S
$(Q)$(AS) $(obj)/arch/x86/stage0_asm.s -o $@
$(obj)/arch/x86/geodelx/stage0.o: $(src)/arch/x86/geodelx/stage0.S
$(Q)mkdir -p $(obj)/arch/x86/geodelx
$(Q)mkdir -p $(dir $@)
$(Q)printf " CC $(subst $(shell pwd)/,,$(@))\n"
$(Q)$(CC) -E $(LINUXBIOSINCLUDE) $< \
-o $(obj)/arch/x86/stage0_asm.s -DBOOTBLK=0x1f00 \

28
arch/x86/post_code.c Normal file
View file

@ -0,0 +1,28 @@
/*
* This file is part of the LinuxBIOS project.
*
* Copyright (C) 2007 Stefan Reinauer <stepan@coresystems.de>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
#include <types.h>
#include <io.h>
void post_code(u8 value)
{
outb(value, 0x80);
}

View file

@ -25,6 +25,7 @@
#include <tables.h>
#include <lib.h>
#include <mc146818rtc.h>
#include <post_code.h>
#define UNCOMPRESS_AREA 0x60000
@ -35,11 +36,6 @@ int find_file(struct mem_file *archive, char *filename, struct mem_file *result)
void hardware_stage1(void);
void disable_car(void);
void post_code(u8 value)
{
outb(value, 0x80);
}
static void stop_ap(void)
{
// nothing yet

View file

@ -20,7 +20,7 @@
##
$(obj)/device/%.o: $(src)/device/%.c
$(Q)mkdir -p $(obj)/device
$(Q)mkdir -p $(dir $@)
$(Q)printf " CC $(subst $(shell pwd)/,,$(@))\n"
$(Q)$(CC) $(INITCFLAGS) -c $< -o $@

View file

@ -18,5 +18,7 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
void post_code(u8 value);
#define POST_START_OF_MAIN 0x01

View file

@ -45,7 +45,7 @@ nrv2b:
endif
$(obj)/lib/%.o: $(src)/lib/%.c
$(Q)mkdir -p $(obj)/lib
$(Q)mkdir -p $(dir $@)
$(Q)printf " CC $(subst $(shell pwd)/,,$(@))\n"
$(Q)$(CC) $(INITCFLAGS) -c $< -o $@

View file

@ -19,11 +19,9 @@
## Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
##
STAGE0_MAINBOARD_OBJ := $(obj)/superio/winbond/w83627hf/stage1.o \
$(obj)/device/pnp_raw.o \
$(obj)/southbridge/amd/cs5536/stage1.o\
$(obj)/arch/x86/geodelx/stage1.o \
$(obj)/mainboard/$(MAINBOARDDIR)/stage1.o
STAGE0_MAINBOARD_OBJ := $(obj)/mainboard/$(MAINBOARDDIR)/stage1.o
STAGE2_MAINBOARD_OBJ =
$(obj)/linuxbios.vpd:
$(Q)printf " BUILD DUMMY VPD\n"
@ -34,48 +32,17 @@ INITRAM_OBJ = $(obj)/mainboard/$(MAINBOARDDIR)/initram.o \
$(obj)/southbridge/amd/cs5536/smbus_initram.o \
$(obj)/arch/x86/geodelx/geodelx.o
# These are possibly not permanent
INITRAM_OBJ += $(obj)/lib/console.o $(obj)/lib/vtxprintf.o $(obj)/lib/uart8250.o $(obj)/arch/x86/post_code.o
$(obj)/linuxbios.initram: $(obj)/stage0.init $(obj)/stage0.o $(INITRAM_OBJ)
$(Q)# initram links against stage0
$(Q)printf " LD $(subst $(shell pwd)/,,$(@))\n"
$(Q)$(LD) -R $(obj)/stage0.o -Ttext 0x80000 $(INITRAM_OBJ) \
$(Q)$(LD) -Ttext 0x80000 $(INITRAM_OBJ) \
--entry=main -o $(obj)/linuxbios.initram.o
$(Q)printf " OBJCOPY $(subst $(shell pwd)/,,$(@))\n"
$(Q)$(OBJCOPY) -O binary $(obj)/linuxbios.initram.o \
$(obj)/linuxbios.initram
#
# Miscellaneous important targets.
#
$(obj)/mainboard/$(MAINBOARDDIR)/statictree.o: $(obj)/mainboard/$(MAINBOARDDIR)/statictree.c $(obj)/statictree.h
$(Q)printf " CC $(subst $(shell pwd)/,,$(@))\n"
$(Q)$(CC) $(INITCFLAGS) $(LINUXBIOSINCLUDE) -c -o $@ $<
$(obj)/mainboard/$(MAINBOARDDIR)/statictree.c: $(src)/mainboard/$(MAINBOARDDIR)/dts $(obj)/util/dtc/dtc
$(Q)printf " DTC $(subst $(shell pwd)/,,$(@))\n"
$(Q)$(obj)/util/dtc/dtc -O lb mainboard/$(MAINBOARDDIR)/dts > $@
$(obj)/statictree.h: $(src)/mainboard/$(MAINBOARDDIR)/dts $(obj)/util/dtc/dtc
$(Q)printf " DTC $(subst $(shell pwd)/,,$(@))\n"
$(Q)$(obj)/util/dtc/dtc -O lbh mainboard/$(MAINBOARDDIR)/dts > $@
$(obj)/mainboard/$(MAINBOARDDIR)/option_table.c: $(obj)/util/options/build_opt_tbl $(src)/mainboard/$(MAINBOARDDIR)/cmos.layout
$(Q)printf " OPTIONS $(subst $(shell pwd)/,,$(@))\n"
$(Q)mkdir -p $(obj)/mainboard/$(MAINBOARDDIR)
$(Q)$(obj)/util/options/build_opt_tbl -b \
--config $(src)/mainboard/$(MAINBOARDDIR)/cmos.layout \
--option $(obj)/mainboard/$(MAINBOARDDIR)/option_table.c
$(obj)/option_table: $(obj)/mainboard/$(MAINBOARDDIR)/option_table.o
$(Q)printf " OBJCOPY $(subst $(shell pwd)/,,$(@))\n"
$(Q)$(OBJCOPY) -O binary $< $@
STAGE2_MAINBOARD_OBJ =
STAGE2_CHIPSET_OBJ = $(obj)/arch/x86/geodelx/cpu.o
$(obj)/mainboard/$(MAINBOARDDIR)/%.o: $(src)/mainboard/$(MAINBOARDDIR)/%.c
$(Q)mkdir -p $(obj)/mainboard/$(MAINBOARDDIR)
$(Q)printf " CC $(subst $(shell pwd)/,,$(@))\n"
$(Q)$(CC) $(INITCFLAGS) -c $< -o $@
$(Q)printf " NM $(subst $(shell pwd)/,,$(@))\n"
$(Q)$(NM) $(obj)/linuxbios.initram.o | sort -u > $(obj)/linuxbios.initram.map

View file

@ -18,62 +18,31 @@
## along with this program; if not, write to the Free Software
## Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
##
STAGE0_MAINBOARD_OBJ :=\
$(obj)/southbridge/amd/cs5536/stage1.o\
$(obj)/arch/x86/geodelx/stage1.o \
$(obj)/mainboard/$(MAINBOARDDIR)/stage1.o
$(obj)/linuxbios.vpd:
$(Q)printf " BUILD DUMMY VPD\n"
$(Q)dd if=/dev/zero of=$(obj)/linuxbios.vpd bs=256 count=1 $(SILENT)
STAGE0_MAINBOARD_OBJ := $(obj)/mainboard/$(MAINBOARDDIR)/stage1.o
INITRAM_OBJ = $(obj)/mainboard/$(MAINBOARDDIR)/initram.o \
$(obj)/northbridge/amd/geodelx/raminit.o \
$(obj)/southbridge/amd/cs5536/smbus_initram.o \
$(obj)/arch/x86/geodelx/geodelx.o
$(obj)/linuxbios.initram: $(obj)/stage0.init $(obj)/stage0.o $(INITRAM_OBJ)
# These are possibly not permanent
INITRAM_OBJ += $(obj)/lib/console.o $(obj)/lib/vtxprintf.o $(obj)/lib/uart8250.o $(obj)/arch/x86/post_code.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.o $(INITRAM_OBJ)
$(Q)# initram links against stage0
$(Q)printf " LD $(subst $(shell pwd)/,,$(@))\n"
$(Q)$(LD) -R $(obj)/stage0.o -Ttext 0x80000 $(INITRAM_OBJ) \
$(Q)$(LD) -Ttext 0x80000 $(INITRAM_OBJ) \
--entry=main -o $(obj)/linuxbios.initram.o
$(Q)printf " OBJCOPY $(subst $(shell pwd)/,,$(@))\n"
$(Q)$(OBJCOPY) -O binary $(obj)/linuxbios.initram.o \
$(obj)/linuxbios.initram
#
# Miscellaneous important targets.
#
$(obj)/mainboard/$(MAINBOARDDIR)/statictree.o: $(obj)/mainboard/$(MAINBOARDDIR)/statictree.c $(obj)/statictree.h
$(Q)printf " CC $(subst $(shell pwd)/,,$(@))\n"
$(Q)$(CC) $(INITCFLAGS) $(LINUXBIOSINCLUDE) -c -o $@ $<
$(obj)/mainboard/$(MAINBOARDDIR)/statictree.c: $(src)/mainboard/$(MAINBOARDDIR)/dts $(obj)/util/dtc/dtc
$(Q)printf " DTC $(subst $(shell pwd)/,,$(@))\n"
$(Q)$(obj)/util/dtc/dtc -O lb mainboard/$(MAINBOARDDIR)/dts > $@
$(obj)/statictree.h: $(src)/mainboard/$(MAINBOARDDIR)/dts $(obj)/util/dtc/dtc
$(Q)printf " DTC $(subst $(shell pwd)/,,$(@))\n"
$(Q)$(obj)/util/dtc/dtc -O lbh mainboard/$(MAINBOARDDIR)/dts > $@
$(obj)/mainboard/$(MAINBOARDDIR)/option_table.c: $(obj)/util/options/build_opt_tbl $(src)/mainboard/$(MAINBOARDDIR)/cmos.layout
$(Q)printf " OPTIONS $(subst $(shell pwd)/,,$(@))\n"
$(Q)mkdir -p $(obj)/mainboard/$(MAINBOARDDIR)
$(Q)$(obj)/util/options/build_opt_tbl -b \
--config $(src)/mainboard/$(MAINBOARDDIR)/cmos.layout \
--option $(obj)/mainboard/$(MAINBOARDDIR)/option_table.c
$(obj)/option_table: $(obj)/mainboard/$(MAINBOARDDIR)/option_table.o
$(Q)printf " OBJCOPY $(subst $(shell pwd)/,,$(@))\n"
$(Q)$(OBJCOPY) -O binary $< $@
STAGE2_MAINBOARD_OBJ =
STAGE2_CHIPSET_OBJ = $(obj)/arch/x86/geodelx/cpu.o
$(obj)/mainboard/$(MAINBOARDDIR)/%.o: $(src)/mainboard/$(MAINBOARDDIR)/%.c
$(Q)mkdir -p $(obj)/mainboard/$(MAINBOARDDIR)
$(Q)printf " CC $(subst $(shell pwd)/,,$(@))\n"
$(Q)$(CC) $(INITCFLAGS) -c $< -o $@
$(Q)printf " NM $(subst $(shell pwd)/,,$(@))\n"
$(Q)$(NM) $(obj)/linuxbios.initram.o | sort -u > $(obj)/linuxbios.initram.map

View file

@ -18,10 +18,10 @@
## along with this program; if not, write to the Free Software
## Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
##
STAGE0_MAINBOARD_OBJ := \
$(obj)/southbridge/amd/cs5536/stage1.o\
$(obj)/arch/x86/geodelx/stage1.o \
$(obj)/mainboard/$(MAINBOARDDIR)/stage1.o
STAGE0_MAINBOARD_OBJ := $(obj)/mainboard/$(MAINBOARDDIR)/stage1.o
STAGE2_MAINBOARD_OBJ =
$(obj)/linuxbios.vpd:
$(Q)printf " BUILD DUMMY VPD\n"
@ -30,48 +30,17 @@ $(obj)/linuxbios.vpd:
INITRAM_OBJ = $(obj)/mainboard/$(MAINBOARDDIR)/initram.o \
$(obj)/arch/x86/geodelx/geodelx.o
# These are possibly not permanent
INITRAM_OBJ += $(obj)/lib/console.o $(obj)/lib/vtxprintf.o $(obj)/lib/uart8250.o $(obj)/arch/x86/post_code.o
$(obj)/linuxbios.initram: $(obj)/stage0.init $(obj)/stage0.o $(INITRAM_OBJ)
$(Q)# initram links against stage0
$(Q)printf " LD $(subst $(shell pwd)/,,$(@))\n"
$(Q)$(LD) -R $(obj)/stage0.o -Ttext 0x80000 $(INITRAM_OBJ) \
$(Q)$(LD) -Ttext 0x80000 $(INITRAM_OBJ) \
--entry=main -o $(obj)/linuxbios.initram.o
$(Q)printf " OBJCOPY $(subst $(shell pwd)/,,$(@))\n"
$(Q)$(OBJCOPY) -O binary $(obj)/linuxbios.initram.o \
$(obj)/linuxbios.initram
#
# Miscellaneous important targets.
#
$(obj)/mainboard/$(MAINBOARDDIR)/statictree.o: $(obj)/mainboard/$(MAINBOARDDIR)/statictree.c $(obj)/statictree.h
$(Q)printf " CC $(subst $(shell pwd)/,,$(@))\n"
$(Q)$(CC) $(INITCFLAGS) $(LINUXBIOSINCLUDE) -c -o $@ $<
$(obj)/mainboard/$(MAINBOARDDIR)/statictree.c: $(src)/mainboard/$(MAINBOARDDIR)/dts $(obj)/util/dtc/dtc
$(Q)printf " DTC $(subst $(shell pwd)/,,$(@))\n"
$(Q)$(obj)/util/dtc/dtc -O lb mainboard/$(MAINBOARDDIR)/dts > $@
$(obj)/statictree.h: $(src)/mainboard/$(MAINBOARDDIR)/dts $(obj)/util/dtc/dtc
$(Q)printf " DTC $(subst $(shell pwd)/,,$(@))\n"
$(Q)$(obj)/util/dtc/dtc -O lbh mainboard/$(MAINBOARDDIR)/dts > $@
$(obj)/mainboard/$(MAINBOARDDIR)/option_table.c: $(obj)/util/options/build_opt_tbl $(src)/mainboard/$(MAINBOARDDIR)/cmos.layout
$(Q)printf " OPTIONS $(subst $(shell pwd)/,,$(@))\n"
$(Q)mkdir -p $(obj)/mainboard/$(MAINBOARDDIR)
$(Q)$(obj)/util/options/build_opt_tbl -b \
--config $(src)/mainboard/$(MAINBOARDDIR)/cmos.layout \
--option $(obj)/mainboard/$(MAINBOARDDIR)/option_table.c
$(obj)/option_table: $(obj)/mainboard/$(MAINBOARDDIR)/option_table.o
$(Q)printf " OBJCOPY $(subst $(shell pwd)/,,$(@))\n"
$(Q)$(OBJCOPY) -O binary $< $@
STAGE2_MAINBOARD_OBJ =
STAGE2_CHIPSET_OBJ = $(obj)/arch/x86/geodelx/cpu.o
$(obj)/mainboard/$(MAINBOARDDIR)/%.o: $(src)/mainboard/$(MAINBOARDDIR)/%.c
$(Q)mkdir -p $(obj)/mainboard/$(MAINBOARDDIR)
$(Q)printf " CC $(subst $(shell pwd)/,,$(@))\n"
$(Q)$(CC) $(INITCFLAGS) -c $< -o $@
$(Q)printf " NM $(subst $(shell pwd)/,,$(@))\n"
$(Q)$(NM) $(obj)/linuxbios.initram.o | sort -u > $(obj)/linuxbios.initram.map

View file

@ -21,6 +21,8 @@
STAGE0_MAINBOARD_OBJ := $(obj)/mainboard/$(MAINBOARDDIR)/stage1.o
STAGE2_MAINBOARD_OBJ = vga.o
#
# VPD or SIP ROM or... how does NVIDIA call it?
# Some space to cope with dirty southbridge tricks.
@ -39,49 +41,17 @@ $(obj)/linuxbios.vpd:
#
INITRAM_OBJ = $(obj)/mainboard/$(MAINBOARDDIR)/initram.o
# These are possibly not permanent
INITRAM_OBJ += $(obj)/lib/console.o $(obj)/lib/vtxprintf.o $(obj)/lib/uart8250.o $(obj)/arch/x86/post_code.o
$(obj)/linuxbios.initram: $(obj)/stage0.init $(obj)/stage0.o $(INITRAM_OBJ)
$(Q)# initram links against stage0
$(Q)printf " LD $(subst $(shell pwd)/,,$(@))\n"
$(Q)$(LD) -R $(obj)/stage0.o -Ttext 0x80000 $(INITRAM_OBJ) \
$(Q)$(LD) -Ttext 0x80000 $(INITRAM_OBJ) \
--entry=main -o $(obj)/linuxbios.initram.o
$(Q)printf " OBJCOPY $(subst $(shell pwd)/,,$(@))\n"
$(Q)$(OBJCOPY) -O binary $(obj)/linuxbios.initram.o \
$(obj)/linuxbios.initram
#
# Miscellaneous important targets.
#
$(obj)/mainboard/$(MAINBOARDDIR)/statictree.o: $(obj)/mainboard/$(MAINBOARDDIR)/statictree.c $(obj)/statictree.h
$(Q)printf " CC $(subst $(shell pwd)/,,$(@))\n"
$(Q)$(CC) $(INITCFLAGS) $(LINUXBIOSINCLUDE) -c -o $@ $<
$(obj)/statictree.h: $(src)/mainboard/$(MAINBOARDDIR)/dts $(obj)/util/dtc/dtc
$(Q)printf " DTC $(subst $(shell pwd)/,,$(@))\n"
$(Q)$(obj)/util/dtc/dtc -O lbh mainboard/$(MAINBOARDDIR)/dts > $@
$(obj)/mainboard/$(MAINBOARDDIR)/statictree.c: $(src)/mainboard/$(MAINBOARDDIR)/dts $(obj)/util/dtc/dtc $(obj)/statictree.h
$(Q)printf " DTC $(subst $(shell pwd)/,,$(@))\n"
$(Q)$(obj)/util/dtc/dtc -O lb mainboard/$(MAINBOARDDIR)/dts > $@
$(obj)/mainboard/$(MAINBOARDDIR)/option_table.c: $(obj)/util/options/build_opt_tbl $(src)/mainboard/$(MAINBOARDDIR)/cmos.layout
$(Q)printf " OPTIONS $(subst $(shell pwd)/,,$(@))\n"
$(Q)mkdir -p $(obj)/mainboard/$(MAINBOARDDIR)
$(Q)$(obj)/util/options/build_opt_tbl -b \
--config $(src)/mainboard/$(MAINBOARDDIR)/cmos.layout \
--option $(obj)/mainboard/$(MAINBOARDDIR)/option_table.c
$(obj)/option_table: $(obj)/mainboard/$(MAINBOARDDIR)/option_table.o
$(Q)printf " OBJCOPY $(subst $(shell pwd)/,,$(@))\n"
$(Q)$(OBJCOPY) -O binary $< $@
STAGE2_MAINBOARD_OBJ = vga.o
STAGE2_CHIPSET_OBJ =
$(obj)/mainboard/$(MAINBOARDDIR)/%.o: $(src)/mainboard/$(MAINBOARDDIR)/%.c
$(Q)mkdir -p $(obj)/mainboard/$(MAINBOARDDIR)
$(Q)printf " CC $(subst $(shell pwd)/,,$(@))\n"
$(Q)$(CC) $(INITCFLAGS) -c $< -o $@
$(Q)printf " NM $(subst $(shell pwd)/,,$(@))\n"
$(Q)$(NM) $(obj)/linuxbios.initram.o | sort -u > $(obj)/linuxbios.initram.map

View file

@ -24,10 +24,4 @@ ifeq ($(CONFIG_NORTHBRIDGE_AMD_GEODELX),y)
STAGE2_CHIPSET_OBJ += $(obj)/northbridge/amd/geodelx/geodelx.o \
$(obj)/northbridge/amd/geodelx/geodelxinit.o
$(obj)/northbridge/amd/geodelx/%.o: $(src)/northbridge/amd/geodelx/%.c \
$(obj)/statictree.h
$(Q)mkdir -p $(obj)/northbridge/amd/geodelx
$(Q)printf " CC $(subst $(shell pwd)/,,$(@))\n"
$(Q)$(CC) $(INITCFLAGS) -c $< -o $@
endif

View file

@ -23,9 +23,4 @@ ifeq ($(CONFIG_NORTHBRIDGE_INTEL_I440BXEMULATION),y)
STAGE2_CHIPSET_OBJ += $(obj)/northbridge/intel/i440bxemulation/i440bx.o
$(obj)/northbridge/intel/i440bxemulation/%.o: $(src)/northbridge/intel/i440bxemulation/%.c $(obj)/statictree.h
$(Q)mkdir -p $(obj)/northbridge/intel/i440bxemulation
$(Q)printf " CC $(subst $(shell pwd)/,,$(@))\n"
$(Q)$(CC) $(INITCFLAGS) -c $< -o $@
endif

View file

@ -23,10 +23,6 @@ ifeq ($(CONFIG_SOUTHBRIDGE_AMD_CS5536),y)
STAGE2_CHIPSET_OBJ += $(obj)/southbridge/amd/cs5536/cs5536.o
$(obj)/southbridge/amd/cs5536/%.o: $(src)/southbridge/amd/cs5536/%.c \
$(obj)/statictree.h
$(Q)mkdir -p $(obj)/southbridge/amd/cs5536/
$(Q)printf " CC $(subst $(shell pwd)/,,$(@))\n"
$(Q)$(CC) $(INITCFLAGS) -c $< -o $@
STAGE0_CHIPSET_OBJ += $(obj)/southbridge/amd/cs5536/stage1.o
endif

View file

@ -22,10 +22,4 @@ ifeq ($(CONFIG_SOUTHBRIDGE_INTEL_I82371EB),y)
STAGE2_CHIPSET_OBJ += $(obj)/southbridge/intel/i82371eb/i82371eb.o
$(obj)/southbridge/intel/i82371eb/%.o: $(src)/southbridge/intel/i82371eb/%.c \
$(obj)/statictree.h
$(Q)mkdir -p $(obj)/southbridge/intel/i82371eb/
$(Q)printf " CC $(subst $(shell pwd)/,,$(@))\n"
$(Q)$(CC) $(INITCFLAGS) -c $< -o $@
endif

View file

@ -21,12 +21,10 @@
ifeq ($(CONFIG_SUPERIO_WINBOND_W83627HF),y)
STAGE0_CHIPSET_OBJ += $(obj)/superio/winbond/w83627hf/stage1.o
STAGE0_CHIPSET_OBJ += $(obj)/device/pnp_raw.o
# Always add to variables, as there could be more than one Super I/O.
STAGE2_CHIPSET_OBJ += $(obj)/superio/winbond/w83627hf/superio.o
$(obj)/superio/winbond/w83627hf/%.o: $(src)/superio/winbond/w83627hf/%.c $(obj)/statictree.h
$(Q)mkdir -p $(obj)/superio/winbond/w83627hf/
$(Q)printf " CC $(subst $(shell pwd)/,,$(@))\n"
$(Q)$(CC) $(INITCFLAGS) -c $< -o $@
endif

View file

@ -13,7 +13,7 @@ DEPFILES = $(DTC_OBJS:.o=.d)
#all: $(TARGETS)
$(obj)/util/dtc/dtc: $(patsubst %,$(obj)/util/dtc/%,$(DTC_OBJS))
$(Q)mkdir -p $(obj)/util/dtc/
$(Q)mkdir -p $(dir $@)
$(Q)printf " HOSTCC $(subst $(shell pwd)/,,$(@))\n"
$(Q)$(HOSTCC) -o $@ $^
@ -21,7 +21,7 @@ ftdump: ftdump.o
$(Q)$(HOSTCC) -o $@ $^
$(obj)/util/dtc/dtc-parser.tab.c $(obj)/util/dtc/dtc-parser.tab.h: $(src)/util/dtc/dtc-parser.y
$(Q)mkdir -p $(obj)/util/dtc
$(Q)mkdir -p $(dir $@)
$(Q)printf " BISON $(subst $(shell pwd)/,,$(@))\n"
$(Q)cd $(obj)/util/dtc; $(BISON) -d $< > $(obj)/util/dtc/dtc.bison.out 2>&1
@ -29,7 +29,7 @@ $(obj)/util/dtc/lex.yy.c: $(src)/util/dtc/dtc-lexer.l
$(Q)cd $(obj)/util/dtc; $(LEX) $<
$(obj)/util/dtc/%.o: $(src)/util/dtc/%.c
$(Q)mkdir -p $(obj)/util/dtc/
$(Q)mkdir -p $(dir $@)
$(Q)printf " HOSTCC $(subst $(shell pwd)/,,$(@))\n"
$(Q)$(HOSTCC) -I$(src)/util/dtc $(HOSTCFLAGS) -o $@ -c $<

View file

@ -119,57 +119,57 @@ $(obj)/util/kconfig/gconf: $(patsubst %,$(obj)/util/kconfig/%,$(gconf-objects))
$(obj)/util/kconfig/mconf.o: $(src)/util/kconfig/mconf.c
$(Q)mkdir -p $(obj)/util/kconfig
$(Q)mkdir -p $(dir $@)
$(Q)printf " HOSTCC $(subst $(shell pwd)/,,$(@))\n"
$(Q)$(HOSTCC) $(HOSTCFLAGS) $(INTLCFLAGS) -I$(src)/util/kconfig -c -o $@ $<
$(obj)/util/kconfig/conf.o: $(src)/util/kconfig/conf.c
$(Q)mkdir -p $(obj)/util/kconfig
$(Q)mkdir -p $(dir $@)
$(Q)printf " HOSTCC $(subst $(shell pwd)/,,$(@))\n"
$(Q)$(HOSTCC) $(HOSTCFLAGS) -I$(src)/util/kconfig -c -o $@ $<
$(obj)/util/kconfig/kconfig_load.o: $(src)/util/kconfig/kconfig_load.c
$(Q)mkdir -p $(obj)/util/kconfig
$(Q)mkdir -p $(dir $@)
$(Q)printf " HOSTCC $(subst $(shell pwd)/,,$(@))\n"
$(Q)$(HOSTCC) $(HOSTCFLAGS) -I$(obj)/util/kconfig -I$(src)/util/kconfig -c -o $@ $<
$(obj)/util/kconfig/qconf.o: $(src)/util/kconfig/qconf.cc $(obj)/util/kconfig/qconf.moc $(obj)/util/kconfig/lkc_defs.h
$(Q)mkdir -p $(obj)/util/kconfig
$(Q)mkdir -p $(dir $@)
$(Q)printf " HOSTCXX $(subst $(shell pwd)/,,$(@))\n"
$(Q)$(HOSTCXX) $(KC_QT_CFLAGS) -D LKC_DIRECT_LINK \
-I$(src)/util/kconfig -I$(obj)/util/kconfig -c -o $@ $<
$(obj)/util/kconfig/gconf.o: $(src)/util/kconfig/gconf.c $(obj)/util/kconfig/lkc_defs.h
$(Q)mkdir -p $(obj)/util/kconfig
$(Q)mkdir -p $(dir $@)
$(Q)printf " HOSTCC $(subst $(shell pwd)/,,$(@))\n"
$(Q)$(HOSTCC) $(HOSTCFLAGS) `pkg-config --cflags gtk+-2.0 gmodule-2.0 libglade-2.0` \
-D LKC_DIRECT_LINK -I$(obj) -I$(src)/util/kconfig -c -o $@ $<
$(obj)/util/kconfig/%.moc: $(src)/util/kconfig/%.h
$(Q)mkdir -p $(obj)/util/kconfig
$(Q)mkdir -p $(dir $@)
$(Q)printf " MOC $(subst $(shell pwd)/,,$(@))\n"
$(Q)$(KC_QT_MOC) -i $< -o $@
$(obj)/util/kconfig/lkc_defs.h: $(src)/util/kconfig/lkc_proto.h
$(Q)mkdir -p $(obj)/util/kconfig
$(Q)mkdir -p $(dir $@)
$(Q)printf " GEN $(subst $(shell pwd)/,,$(@))\n"
$(Q)sed < $< > $@ 's/P(\([^,]*\),.*/#define \1 (\*\1_p)/'
$(obj)/util/kconfig/zconf.tab.o: $(obj)/util/kconfig/zconf.tab.c $(obj)/util/kconfig/zconf.hash.c $(obj)/util/kconfig/lex.zconf.c
$(Q)mkdir -p $(obj)/util/kconfig
$(Q)mkdir -p $(dir $@)
$(Q)printf " HOSTCC $(subst $(shell pwd)/,,$(@))\n"
$(Q)$(HOSTCC) $(HOSTCFLAGS) $(INTLCFLAGS) -I$(src)/util/kconfig -c -o $@ $(obj)/util/kconfig/zconf.tab.c
$(obj)/util/kconfig/lex.zconf.c: $(src)/util/kconfig/lex.zconf.c_shipped
$(Q)mkdir -p $(obj)/util/kconfig
$(Q)mkdir -p $(dir $@)
$(Q)cp $< $@
$(obj)/util/kconfig/zconf.hash.c: $(src)/util/kconfig/zconf.hash.c_shipped
$(Q)mkdir -p $(obj)/util/kconfig
$(Q)mkdir -p $(dir $@)
$(Q)cp $< $@
$(obj)/util/kconfig/zconf.tab.c: $(src)/util/kconfig/zconf.tab.c_shipped
$(Q)mkdir -p $(obj)/util/kconfig
$(Q)mkdir -p $(dir $@)
$(Q)cp $< $@
include $(src)/util/kconfig/lxdialog/Makefile
@ -242,7 +242,7 @@ $(obj)/util/kconfig/.tmp_qtcheck:
echo "*"; \
moc="/usr/bin/moc"; \
fi; \
mkdir -p $(obj)/util/kconfig; \
mkdir -p $(dir $@); \
echo "KC_QT_CFLAGS=$$cflags" > $@; \
echo "KC_QT_LIBS=$$libs" >> $@; \
echo "KC_QT_MOC=$$moc" >> $@
@ -257,7 +257,7 @@ $(obj)/util/kconfig/.tmp_gtkcheck: $(src)/util/kconfig/Makefile
$(obj)/util/kconfig/.tmp_gtkcheck:
@if `pkg-config --exists gtk+-2.0 gmodule-2.0 libglade-2.0`; then \
if `pkg-config --atleast-version=2.0.0 gtk+-2.0`; then \
mkdir -p $(obj)/util/kconfig; \
mkdir -p $(dir $@); \
touch $@; \
else \
echo "*"; \

View file

@ -36,18 +36,12 @@ $(obj)/util/x86emu/libx86emu.a: $(LIBX86EMU_OBJS) $(src)/.config
$(Q)rm -f $@ # otherwise we always add to the archive
$(Q)$(AR) qcs $@ $(LIBX86EMU_OBJS)
$(obj)/util/x86emu/x86emu/%.o: $(src)/util/x86emu/x86emu/%.c
$(Q)mkdir -p $(obj)/util/x86emu/x86emu/
$(Q)printf " CC $(subst $(shell pwd)/,,$(@))\n"
$(Q)$(CC) $(INITCFLAGS) -I$(src)/util/x86emu/include -c $< -o $@
$(obj)/util/x86emu/pcbios/%.o: $(src)/util/x86emu/pcbios/%.c
$(Q)mkdir -p $(obj)/util/x86emu/pcbios
$(Q)printf " CC $(subst $(shell pwd)/,,$(@))\n"
$(Q)$(CC) $(INITCFLAGS) -I$(src)/util/x86emu/include -c $< -o $@
#
# This rule is also valid for all subdirectories
#
$(obj)/util/x86emu/%.o: $(src)/util/x86emu/%.c
$(Q)mkdir -p $(obj)/util/x86emu
$(Q)mkdir -p $(dir $@)
$(Q)printf " CC $(subst $(shell pwd)/,,$(@))\n"
$(Q)$(CC) $(INITCFLAGS) -I$(src)/util/x86emu/include -c $< -o $@

View file

@ -75,7 +75,7 @@
#include <xf86_ansic.h>
#else
//#include <stdio.h>
#include <stdlib.h>
//#include <stdlib.h>
#include <string.h>
#endif
/*--------------------------- Inline Functions ----------------------------*/

View file

@ -61,6 +61,7 @@ case "$ARCH" in
searchgnu ar >/dev/null && echo "AR_x86 := $(searchgnu ar)"
searchgnu as >/dev/null && echo "AS_x86 := $(searchgnu as) --32"
searchgnu ld >/dev/null && echo "LD_x86 := $(searchgnu ld) -b elf32-i386 -melf_i386"
searchgnu nm >/dev/null && echo "NM_x86 := $(searchgnu nm)"
searchgnu objcopy >/dev/null && echo "OBJCOPY_x86 := $(searchgnu objcopy)"
;;
"x86")
@ -71,6 +72,7 @@ case "$ARCH" in
searchgnu ar >/dev/null && echo "AR_x86 := $(searchgnu ar)"
searchgnu as >/dev/null && echo "AS_x86 := $(searchgnu as)"
searchgnu ld >/dev/null && echo "LD_x86 := $(searchgnu ld)"
searchgnu nm >/dev/null && echo "NM_x86 := $(searchgnu nm)"
searchgnu objcopy >/dev/null && echo "OBJCOPY_x86 := $(searchgnu objcopy)"
else
CC=`find /opt/local/bin/ -name "i386-elf-gcc-*"`
@ -82,6 +84,7 @@ case "$ARCH" in
echo "AR_x86 := i386-elf-ar"
echo "AS_x86 := i386-elf-as"
echo "LD_x86 := i386-elf-ld"
echo "NM_x86 := i386-elf-nm"
echo "OBJCOPY_x86 := i386-elf-objcopy"
echo "INTLCFLAGS := -I/opt/local/include"
echo "INTLLIBS := -L/opt/local/lib -lintl"
@ -94,6 +97,7 @@ case "$ARCH" in
echo "AR_x86 := i386-linux-ar"
echo "AS_x86 := i386-linux-as"
echo "LD_x86 := i386-linux-ld"
echo "NM_x86 := i386-linux-nm"
echo "OBJCOPY_x86 := i386-linux-objcopy"
;;
esac