[coreboot] r254 - in buildrom-devel: bin config/payloads config/platforms packages/grub2 packages/grub2/boot packages/grub2/boot/grub

svn at coreboot.org svn at coreboot.org
Wed Nov 26 22:21:30 CET 2008


Author: ward
Date: 2008-11-26 22:21:30 +0100 (Wed, 26 Nov 2008)
New Revision: 254

Added:
   buildrom-devel/packages/grub2/boot/
   buildrom-devel/packages/grub2/boot/grub/
   buildrom-devel/packages/grub2/boot/grub/grub.cfg
Removed:
   buildrom-devel/packages/grub2/conf/
Modified:
   buildrom-devel/bin/fetchsvn.sh
   buildrom-devel/config/payloads/Config.in
   buildrom-devel/config/platforms/qemu.conf
   buildrom-devel/packages/grub2/grub2.mk
Log:

Move from our grub2 fork to mainline grub2, now that the features we need have
been included there.

This patch also makes sure that LZMA compression of the payload is
automatically disabled for filo, etherboot and grub2, since it breaks booting
in those cases.

It also removes a few bash-isms in fetchsvn.sh.

Many, many thanks to Robert Milan for fixing the bugs in grub2 that I found
while testing.

This was build- and boot-tested on qemu, on v2 and v3.

Signed-off-by: Ward Vandewege <ward at gnu.org>
Acked-by: Jordan Crouse <jordan at cosmicpenguin.net>



Modified: buildrom-devel/bin/fetchsvn.sh
===================================================================
--- buildrom-devel/bin/fetchsvn.sh	2008-11-13 18:55:51 UTC (rev 253)
+++ buildrom-devel/bin/fetchsvn.sh	2008-11-26 21:21:30 UTC (rev 254)
@@ -8,7 +8,7 @@
 
 SVNV=`svn --version --quiet`
 
-if [ $? -ne 0 ]; then
+if [ "$?" != "0" ]; then
 	echo "You don't have SVN installed."
 	exit 1
 fi
@@ -18,21 +18,21 @@
 if [ ! -d $DIR/svn/.svn ]; then
 	echo "Fetching $URL..."	
 	svn co -r $REV $URL $DIR/svn
-	if [ $? -ne 0 ]; then
+	if [ "$?" != "0" ]; then
 		echo "Couldn't fetch the code from $URL"
 		exit 1
 	fi	
 else
 	CURREV=`svn info $DIR/svn | grep "Last Changed Rev" | awk '{ print $4 }'`
 
-	if [ $CURREV -ne $REV ]; then
+	if [ "$CURREV" != "$REV" ]; then
 		(cd $DIR/svn; \
 		echo "Updating from $CURREV to $REV"
 		svn update -r $REV || {
 			echo "Couldn't update the repository."
 			exit 1
 		})
-		if [ `echo $?` -ne 0 ]; then
+		if [ "$?" != "0" ]; then
 			# The parentheses around the cd $DIR/svn; svn update ... commands above
 			# cause those commands to be executed as a list, in a subshell. As a
 			# consequence, if something goes wrong the exit command exits the

Modified: buildrom-devel/config/payloads/Config.in
===================================================================
--- buildrom-devel/config/payloads/Config.in	2008-11-13 18:55:51 UTC (rev 253)
+++ buildrom-devel/config/payloads/Config.in	2008-11-26 21:21:30 UTC (rev 254)
@@ -5,6 +5,9 @@
 
 config USE_LZMA
 	bool "Enable LZMA compression"
+	depends on !PAYLOAD_FILO
+	depends on !PAYLOAD_GRUB2
+	depends on !PAYLOAD_ETHERBOOT
 	depends on COREBOOT_V3 || (COREBOOT_V2 && !PLATFORM_GEODE)
 	default y
 	help

Modified: buildrom-devel/config/platforms/qemu.conf
===================================================================
--- buildrom-devel/config/platforms/qemu.conf	2008-11-13 18:55:51 UTC (rev 253)
+++ buildrom-devel/config/platforms/qemu.conf	2008-11-26 21:21:30 UTC (rev 254)
@@ -15,7 +15,7 @@
 ETHERBOOT_ARCH=i386
 
 # coreboot-v2 configuration
-CBV2_TAG=3481
+CBV2_TAG=3772
 CBV2_TDIR=qemu-x86
 
 # coreboot v3 configuration

Added: buildrom-devel/packages/grub2/boot/grub/grub.cfg
===================================================================
--- buildrom-devel/packages/grub2/boot/grub/grub.cfg	                        (rev 0)
+++ buildrom-devel/packages/grub2/boot/grub/grub.cfg	2008-11-26 21:21:30 UTC (rev 254)
@@ -0,0 +1,7 @@
+serial --speed=115200 --word=8 --parity=no --stop=1
+terminal_output serial
+terminal_input serial
+
+search -s -f /grub.cfg
+source /grub.cfg
+

Modified: buildrom-devel/packages/grub2/grub2.mk
===================================================================
--- buildrom-devel/packages/grub2/grub2.mk	2008-11-13 18:55:51 UTC (rev 253)
+++ buildrom-devel/packages/grub2/grub2.mk	2008-11-26 21:21:30 UTC (rev 254)
@@ -1,80 +1,93 @@
-GRUB2_REVISION=7e743dc7b9262c132488d7bb601ea48e4f730c60
-GRUB2_URL=http://coreboot.org/viewmtn/revision/tar/$(GRUB2_REVISION)
-GRUB2_TAR=grub2-$(GRUB2_REVISION).tar
+GRUB2_URL=svn://svn.savannah.gnu.org/grub/trunk/grub2
+GRUB2_TAG=1929
 
 GRUB2_DIR=$(BUILD_DIR)/grub2
-GRUB2_SRC_DIR=$(GRUB2_DIR)/$(GRUB2_REVISION)
+GRUB2_SRC_DIR=$(GRUB2_DIR)/svn
 GRUB2_STAMP_DIR=$(GRUB2_DIR)/stamps
 GRUB2_LOG_DIR=$(GRUB2_DIR)/logs
 
 ifeq ($(CONFIG_VERBOSE),y)
-GRUB2_CONFIG_LOG=/dev/stdout
+GRUB2_FETCH_LOG=/dev/stdout
 GRUB2_BUILD_LOG=/dev/stdout
 GRUB2_INSTALL_LOG=/dev/stdout
 else
 GRUB2_BUILD_LOG=$(GRUB2_LOG_DIR)/build.log
 GRUB2_INSTALL_LOG=$(GRUB2_LOG_DIR)/install.log
-GRUB2_CONFIG_LOG=$(GRUB2_LOG_DIR)/config.log
+GRUB2_FETCH_LOG=$(GRUB2_LOG_DIR)/fetch.log
 endif
 
-GRUB2_CFG=$(PACKAGE_DIR)/grub2/conf/grub.cfg
-GRUB2_MODULES=coreboot cat cmp iso9660 help lspci \
-	      serial terminal lar terminfo memdisk ata ls \
-              configfile boot hexdump linux multiboot ext2
+GRUB2_MODULES=normal ls cat help ext2 iso9660 reiserfs xfs fat pc gpt ata serial memdisk multiboot linux boot cpio configfile search terminal
 
-ifeq ($(CONFIG_PAYLOAD_GRUB2),y)
-HAVE_RUBY:=$(call find-tool,ruby)
+GRUB2_TARBALL=grub2-svn-$(GRUB2_TAG).tar.gz
 
-ifeq ($(HAVE_RUBY),n)
-$(error To build GRUB2, you need to install 'ruby')
+GRUB2_MEMDISK_DIR=$(STAGING_DIR)/grub2_memdisk
+GRUB2_MEMDISK_TARBALL=$(GRUB2_MEMDISK_DIR)/memdisk.tar
+
+ifeq ($(shell if [ -f $(PACKAGE_DIR)/grub2/conf/customconfig--$(PAYLOAD)--$(COREBOOT_VENDOR)-$(COREBOOT_BOARD) ]; then echo 1; fi),1)
+	GRUB2_CONFIG = $(PACKAGE_DIR)/grub2/conf/customconfig--$(PAYLOAD)--$(COREBOOT_VENDOR)-$(COREBOOT_BOARD)
+else
+	GRUB2_CONFIG = $(GRUB2_SRC_DIR)/configs/defconfig
 endif
-endif
 
-$(SOURCE_DIR)/$(GRUB2_TAR):
-	@ mkdir -p $(SOURCE_DIR)
-	@ wget $(WGET_Q) -O $@ $(GRUB2_URL)
+$(SOURCE_DIR)/$(GRUB2_TARBALL): 
+	@ mkdir -p $(SOURCE_DIR)/grub2
+	@ $(BIN_DIR)/fetchsvn.sh $(GRUB2_URL) $(SOURCE_DIR)/grub2 \
+	$(GRUB2_TAG) $(SOURCE_DIR)/$(GRUB2_TARBALL) \
+	> $(GRUB2_FETCH_LOG) 2>&1
 
-$(GRUB2_STAMP_DIR)/.unpacked: $(SOURCE_DIR)/$(GRUB2_TAR) | $(GRUB2_DIR) $(GRUB2_STAMP_DIR)
-	@ tar -C $(GRUB2_DIR) -xf $(SOURCE_DIR)/$(GRUB2_TAR)
-	@ touch $@
+$(GRUB2_STAMP_DIR)/.unpacked: $(SOURCE_DIR)/$(GRUB2_TARBALL) | $(GRUB2_STAMP_DIR) $(GRUB2_DIR)
+	@ echo "Unpacking grub2..."
+	@ tar -C $(GRUB2_DIR) -zxf $(SOURCE_DIR)/$(GRUB2_TARBALL)
+	@ touch $@      
 
-$(GRUB2_STAMP_DIR)/.configured: $(GRUB2_STAMP_DIR)/.unpacked | $(GRUB2_LOG_DIR)
-	@ echo "Configuring GRUB2..."
-	@ (cd $(GRUB2_SRC_DIR); sh ./autogen.sh > $(GRUB2_CONFIG_LOG) 2>&1)
-	@ (cd $(GRUB2_SRC_DIR); export LIBS= CC= LDFLAGS= CFLAGS=; ./configure --with-platform=linuxbios --prefix=$(STAGING_DIR) >> $(GRUB2_CONFIG_LOG) 2>&1)
+$(GRUB2_STAMP_DIR)/.configured: $(GRUB2_STAMP_DIR)/.unpacked
 	@ touch $@
 
-$(GRUB2_SRC_DIR)/grub-mkimage: $(GRUB2_STAMP_DIR)/.configured
-	@ echo "Building GRUB2..."
-	@ (cd $(GRUB2_SRC_DIR); make > $(GRUB2_CONFIG_LOG) 2>&1)
+$(GRUB2_SRC_DIR)/grub-mkelfimage: $(GRUB2_STAMP_DIR)/.configured
+ifeq ($(findstring customconfig,$(GRUB2_CONFIG)),customconfig)
+	@ echo "Using custom config $(GRUB2_CONFIG)"
+endif
+	@ echo "Building grub2..."
+	@ ln -s $(GRUB2_SRC_DIR)/config.log $(GRUB2_LOG_DIR)
+	@ (cd $(GRUB2_SRC_DIR) ; sh ./autogen.sh >> $(GRUB2_BUILD_LOG) 2>&1)
+	@ (cd $(GRUB2_SRC_DIR) ; export LIBS= CC= LDFLAGS= CFLAGS=; ./configure --with-platform=coreboot --prefix=$(STAGING_DIR) >> $(GRUB2_BUILD_LOG) 2>&1)
+	@ make -C $(GRUB2_SRC_DIR) >> $(GRUB2_BUILD_LOG) 2>&1
 
-$(GRUB2_STAMP_DIR)/.installed: $(GRUB2_SRC_DIR)/grub-mkimage
+$(GRUB2_STAMP_DIR)/.installed: $(GRUB2_SRC_DIR)/grub-mkelfimage
 	@ chmod uga+x $(GRUB2_SRC_DIR)/mkinstalldirs
 	@ (cd $(GRUB2_SRC_DIR); make install > $(GRUB2_INSTALL_LOG) 2>&1)
 	@ touch $@
 
-$(GRUB2_DIR)/grub2.elf: $(GRUB2_STAMP_DIR)/.installed
-	@ $(STAGING_DIR)/bin/grub-mkimage -o $@ $(GRUB2_MODULES)
+$(GRUB2_MEMDISK_TARBALL): $(GRUB2_STAMP_DIR)/.configured $(GRUB2_MEMDISK_DIR)
+	@ (cd $(GRUB2_MEMDISK_DIR); mkdir -p boot/grub)
+	@ cp $(PACKAGE_DIR)/grub2/boot/grub/grub.cfg $(GRUB2_MEMDISK_DIR)/boot/grub/
+	@ (cd $(GRUB2_MEMDISK_DIR); tar -cf $@ boot)
 
+
+$(GRUB2_DIR)/grub2.elf: $(GRUB2_STAMP_DIR)/.installed $(GRUB2_MEMDISK_TARBALL)
+	@ (cd $(GRUB2_SRC_DIR) ; $(STAGING_DIR)/bin/grub-mkelfimage -d . -o $@ $(GRUB2_MODULES) -m $(GRUB2_MEMDISK_TARBALL) --prefix='(memdisk)/boot/grub')
+
 $(GRUB2_STAMP_DIR)/.copied: $(GRUB2_DIR)/grub2.elf
 	@ mkdir -p $(shell dirname $(PAYLOAD_ELF))
 	@ cp $(GRUB2_DIR)/grub2.elf $(PAYLOAD_ELF)
 	@ touch $@
 
-$(GRUB2_DIR) $(GRUB2_LOG_DIR) $(GRUB2_STAMP_DIR):
+$(GRUB2_STAMP_DIR) $(GRUB2_LOG_DIR) $(GRUB2_MEMDISK_DIR):
 	@ mkdir -p $@
 
-grub2: $(GRUB2_STAMP_DIR)/.copied
+grub2: $(GRUB2_STAMP_DIR) $(GRUB2_LOG_DIR) $(GRUB2_STAMP_DIR)/.copied
 
 grub2-clean:
-	@ rm -f $(GRUB2_DIR)/grub2.lar
+	@ echo "Cleaning grub2..."
 	@ rm -f $(GRUB2_DIR)/grub2.elf
 	@ rm -f $(GRUB2_STAMP_DIR)/.configured
 	@ rm -f $(GRUB2_STAMP_DIR)/.copied
-	@ rm -f $(GRUB2_STAMP_DIR)/.installed
-ifneq ($(wildcard $(GRUB_SRC_DIR)/Makefile),)
+ifneq ($(wildcard $(GRUB2_SRC_DIR)/Makefile),)
 	@ $(MAKE) -C $(GRUB2_SRC_DIR) clean > /dev/null 2>&1
 endif
 
 grub2-distclean:
 	@ rm -rf $(GRUB2_DIR)/*
+
+grub2-extract: $(GRUB2_STAMP_DIR)/.patched
+





More information about the coreboot mailing list