Bump coreboot revision for Tyan s2895.
[buildrom.git] / buildrom-devel / packages / coreboot-v2 / coreboot.inc
blob250a1c8eac98fab54653020ac14adecbadbe3aa3
1 # This is the common code included by all the targets
3 ifeq ($(CONFIG_USE_LZMA),y)
4         CBV2_CONFIG=Config-lab.lb
5         CBV2_PAYLOAD_FILE_EXT=elf.lzma
6 ifeq ($(COREBOOT_BOARD),s2881)
7         CBV2_PATCHES += $(PACKAGE_DIR)/coreboot-v2/patches/s2881-lab-vga-fix.patch 
8 endif
9 else
10         CBV2_CONFIG=Config.lb
11         CBV2_PAYLOAD_FILE_EXT=elf
12 endif
14 ifeq ($(CONFIG_CB_CUSTOM_REV),y)
15 $(warning Using custom rev $(CONFIG_CB_REVISION))
16 CBV2_TAG=$(CONFIG_CB_REVISION)
17 endif
19 CBV2_BASE_DIR=svn
20 CBV2_URL=svn://coreboot.org/repos/trunk/coreboot-v2
21 CBV2_TARBALL=coreboot-svn-$(CBV2_TAG).tar.gz
22 CBV2_PAYLOAD_TARGET=$(CBV2_BUILD_DIR)/payload.$(CBV2_PAYLOAD_FILE_EXT)
23 TARGET_ROM=$(COREBOOT_VENDOR)-$(COREBOOT_BOARD).rom
25 ifeq ($(CONFIG_PLATFORM),y)
26 ifeq ($(CBV2_TAG),)
27 $(error You need to specify a version to pull in your platform config)
28 endif
29 ifeq ($(COREBOOT_VENDOR),)
30 $(error No coreboot vendor specified)
31 endif
32 ifeq ($(COREBOOT_BOARD),)
33 $(error No coreboot board specified)
34 endif
35 ifeq ($(CBV2_CONFIG),)
36 $(error No coreboot config specified)
37 endif
38 ifeq ($(CBV2_TDIR),)
39 $(error No coreboot TDIR specified)
40 endif
41 endif
43 CBV2_OUTPUT=$(CBV2_BUILD_DIR)/coreboot.rom
44 CBV2_DIR=$(BUILD_DIR)/coreboot
46 # This is the list of components that comprise the ROM (excluding the payload)
47 CBV2_COMPONENTS= $(CBV2_PREPEND) $(CBV2_OUTPUT)
49 # If the user wanted to override the build directory - obey that now
51 ifeq ($(CONFIG_CB_USE_BUILD),y)
52 CBV2_SRC_DIR=$(subst ",,$(CONFIG_CB_BUILDDIR))
53 else
54 CBV2_SRC_DIR=$(CBV2_DIR)/$(CBV2_BASE_DIR)
55 endif
57 CBV2_TARGET_DIR=$(CBV2_SRC_DIR)/targets/
58 CBV2_TARGET_NAME=$(COREBOOT_VENDOR)/$(COREBOOT_BOARD)
59 CBV2_CONFIG_NAME=$(CBV2_TARGET_NAME)/$(CBV2_CONFIG)
61 CBV2_BUILD_DIR=$(CBV2_TARGET_DIR)/$(CBV2_TARGET_NAME)/$(CBV2_TDIR)
63 CBV2_STAMP_DIR=$(CBV2_DIR)/stamps
64 CBV2_LOG_DIR=$(CBV2_DIR)/logs
66 ifeq ($(CONFIG_VERBOSE),y)
67 CBV2_FETCH_LOG=/dev/stdout
68 CBV2_CONFIG_LOG=/dev/stdout
69 CBV2_BUILD_LOG=/dev/stdout
70 CBV2_INSTALL_LOG=/dev/stdout
71 else
72 CBV2_FETCH_LOG=$(CBV2_LOG_DIR)/fetch.log
73 CBV2_BUILD_LOG=$(CBV2_LOG_DIR)/build.log
74 CBV2_CONFIG_LOG=$(CBV2_LOG_DIR)/config.log
75 CBV2_INSTALL_LOG=$(CBV2_LOG_DIR)/install.log
76 endif
78 # This allows us to skip the unpack/patch/configure stage
80 ifeq ($(CONFIG_CB_USE_BUILD),y)
81 CBV2_DIR_TARGET=
82 else
83 CBV2_DIR_TARGET=$(CBV2_STAMP_DIR)/.configured-$(COREBOOT_BOARD)
84 endif
86 # If an optionrom was specified in the configuration, then use it
88 ifneq ($(OPTIONROM_ID),)
89 include $(PACKAGE_DIR)/coreboot-v2/optionroms.inc
91 # Add it to the front of the list so it is prepended to the coreboot output
92 CBV2_COMPONENTS := $(SOURCE_DIR)/$(OPTIONROM_ID).rom $(CBV2_COMPONENTS)
93 endif
95 $(CBV2_PAYLOAD_TARGET): $(PAYLOAD_TARGET)
96         @ cp $< $@
98 $(CBV2_STAMP_DIR)/.unpacked-$(CBV2_TAG): $(SOURCE_DIR)/$(CBV2_TARBALL) | $(CBV2_STAMP_DIR) $(CBV2_LOG_DIR)
99         @ rm -f $(CBV2_STAMP_DIR)/.unpacked*
100         @ echo "Unpacking coreboot ($(CBV2_TARBALL))..."
101         @ tar -C $(CBV2_DIR) -zxf $(SOURCE_DIR)/$(CBV2_TARBALL)
102         @ touch $@      
104 $(CBV2_STAMP_DIR)/.patched: $(CBV2_STAMP_DIR)/.unpacked-$(CBV2_TAG)
105         @ echo "Patching coreboot..."
106         @ $(BIN_DIR)/doquilt.sh $(CBV2_SRC_DIR) $(CBV2_PATCHES)
107         @ touch $@
109 $(CBV2_STAMP_DIR)/.configured-$(COREBOOT_BOARD): $(CBV2_STAMP_DIR)/.patched
110         @ echo "Building target..."
111         @( cd $(CBV2_TARGET_DIR); \
112         ./buildtarget $(CBV2_CONFIG_NAME) > $(CBV2_CONFIG_LOG) 2>&1)
113         @ touch $@
115 $(CBV2_STAMP_DIR) $(CBV2_LOG_DIR):
116         @ mkdir -p $@
118 $(CBV2_OUTPUT): $(CBV2_STAMP_DIR) $(CBV2_LOG_DIR) $(CBV2_DIR_TARGET) $(CBV2_PAYLOAD_TARGET)
119         @ echo "Building coreboot..."
120         @ (export CPU_OPT="$(STACKPROTECT)"; \
121         make -C $(CBV2_BUILD_DIR) > $(CBV2_BUILD_LOG) 2>&1)
122         @ mkdir -p $(OUTPUT_DIR)/config/coreboot-v2/
123         @ cp $(CBV2_BUILD_DIR)/../$(CBV2_CONFIG) $(OUTPUT_DIR)/config/coreboot-v2/
124         @ cp $(BASE_DIR)/.config $(OUTPUT_DIR)/config/
125         @ mkdir -p $(OUTPUT_DIR)/config/system/
126         @ uname -a >$(OUTPUT_DIR)/config/system/uname-a
127         @ if [ -f /etc/lsb-release ]; then \
128         cp /etc/lsb-release $(OUTPUT_DIR)/config/system/; \
129         fi      
130         @ if [ -f /etc/debian-version ]; then \
131         cp /etc/debian-version $(OUTPUT_DIR)/config/system/; \
132         fi
133         @ if [ -f /etc/redhat-version ]; then \
134         cp /etc/redhat-version $(OUTPUT_DIR)/config/system/; \
135         fi
136         @ mkdir -p $(OUTPUT_DIR)/config/toolchain/
137         @ $(MAKE) --version >$(OUTPUT_DIR)/config/toolchain/$(MAKE)-version
138         @ $(CC) --version >$(OUTPUT_DIR)/config/toolchain/$(CC)-version
139         @ $(LD) --version >$(OUTPUT_DIR)/config/toolchain/$(LD)-version
140 ifeq ($(CONFIG_STORE_SVN_INFO),y)
141         @ mkdir -p $(OUTPUT_DIR)/config/svn/
142         @ svn diff > $(OUTPUT_DIR)/config/svn/svn.diff
143         @ svn info > $(OUTPUT_DIR)/config/svn/svn.info
144         @ svn status > $(OUTPUT_DIR)/config/svn/svn.status
145 endif
147 $(SOURCE_DIR)/$(CBV2_TARBALL): | $(CBV2_LOG_DIR)
148         @ echo "Fetching the coreboot rev $(CBV2_TAG) code..."
149         @ mkdir -p $(SOURCE_DIR)/coreboot
150         @ $(BIN_DIR)/fetchsvn.sh $(CBV2_URL) $(SOURCE_DIR)/coreboot \
151         $(CBV2_TAG) $(SOURCE_DIR)/$(CBV2_TARBALL) \
152         > $(CBV2_FETCH_LOG) 2>&1
154 $(OUTPUT_DIR)/$(TARGET_ROM): $(CBV2_COMPONENTS)
155         @ mkdir -p $(OUTPUT_DIR)
156         @ $(BIN_DIR)/construct-rom.sh $(PLATFORM_DOPAD) $(CBV2_COMPONENTS) > $@
158 generic-coreboot: $(OUTPUT_DIR)/$(TARGET_ROM)
160 generic-coreboot-clean:
161         @ echo "Cleaning coreboot..."
162         @ rm -f $(CBV2_STAMP_DIR)/.configured*
163         @ rm -f $(CBV2_PAYLOAD_TARGET)
164 ifneq ($(wildcard $(CBV2_BUILD_DIR)/Makefile),)
165         @ $(MAKE) -C $(CBV2_BUILD_DIR) clean > /dev/null 2>&1;
166 endif
167         @ rm -f $(CBV2_OUTPUT)
169 generic-coreboot-distclean:
170         @ if [ "$(CONFIG_CB_USE_BUILD)" = "y" ]; then \
171         echo "Cleaning coreboot build..."; \
172         $(MAKE) -C $(CBV2_BUILD_DIR) clean > /dev/null 2>&1; \
173         rm -f $(CBV2_OUTPUT); \
174         fi      
176         @ rm -rf $(CBV2_DIR)/*
178 coreboot-extract: $(CBV2_STAMP_DIR)/.patched