[coreboot] r118 - in buildrom-devel: . config/payloads

svn at coreboot.org svn at coreboot.org
Fri Feb 15 20:16:50 CET 2008


Author: myles
Date: 2008-02-15 20:16:50 +0100 (Fri, 15 Feb 2008)
New Revision: 118

Modified:
   buildrom-devel/Config.in
   buildrom-devel/Makefile
   buildrom-devel/config/payloads/payloads.conf
Log:
This patch uses lar to compress a payload, instead of pre-compressing
it.  Since we are already using lar to add the payload, this
simplifies the build process.  It also allows us to compress filo,
which didn't work with v2.

Thanks,
Myles

Signed-off-by: Myles Watson <myles at pel.cs.byu.edu>
Acked-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006 at gmx.net>



Modified: buildrom-devel/Config.in
===================================================================
--- buildrom-devel/Config.in	2008-02-13 21:33:04 UTC (rev 117)
+++ buildrom-devel/Config.in	2008-02-15 19:16:50 UTC (rev 118)
@@ -78,14 +78,17 @@
 
 config USE_LZMA
 	bool "Enable LZMA compression"
-	depends !PAYLOAD_OFW
-	depends !PAYLOAD_FILO
-	depends !PAYLOAD_ETHERBOOT
+	depends !(PAYLOAD_OFW && COREBOOT_V2)
+	depends !(PAYLOAD_FILO && COREBOOT_V2)
+	depends !(PAYLOAD_ETHERBOOT && COREBOOT_V2)
 	default y
 	help
-	  Precompress the payload with LZMA. This doesn't work
-	  for FILO, OFW, or ETHERBOOT.
+	  Precompress the payload with LZMA when using coreboot v2. This doesn't
+	  work for FILO, OFW, or ETHERBOOT.
 
+	  When using COREBOOT_V3, parse the elf and have lar compress the files.
+	  This works with all ELF payloads.
+
 config CB_USE_BUILD
 	bool "Specify a coreboot build dir"
 	depends ADVANCED

Modified: buildrom-devel/Makefile
===================================================================
--- buildrom-devel/Makefile	2008-02-13 21:33:04 UTC (rev 117)
+++ buildrom-devel/Makefile	2008-02-15 19:16:50 UTC (rev 118)
@@ -69,9 +69,17 @@
 rom: $(HOSTTOOLS-y) payload $(COREBOOT-y)
 else
 
+# If compressing the payload in v3, parse the elf and tell lar to compress it.
+# Parsing the elf without compression bloats the ROM with bss zeroes.
+ifeq ($(CONFIG_USE_LZMA),y)
+LAR_PAYLOAD_FLAGS=-a -e -C lzma
+else
+LAR_PAYLOAD_FLAGS=-a
+endif
+
 rom: $(HOSTTOOLS-y) payload $(COREBOOT-y)
 	@ cp $(CBV3_OUTPUT) $(TARGET_ROM_FILE)
-	@ $(STAGING_DIR)/bin/lar -a $(TARGET_ROM_FILE) $(PAYLOAD_TARGET):normal/payload
+	@ $(STAGING_DIR)/bin/lar $(LAR_PAYLOAD_FLAGS) $(TARGET_ROM_FILE) $(PAYLOAD_TARGET):normal/payload
 	@ for file in `ls $(ROM_DIR)`; do \
 		$(STAGING_DIR)/bin/lar -a $(TARGET_ROM_FILE) $(ROM_DIR)/$$file:$$file; \
 	done

Modified: buildrom-devel/config/payloads/payloads.conf
===================================================================
--- buildrom-devel/config/payloads/payloads.conf	2008-02-13 21:33:04 UTC (rev 117)
+++ buildrom-devel/config/payloads/payloads.conf	2008-02-15 19:16:50 UTC (rev 118)
@@ -27,8 +27,11 @@
 
 include $(CONFIG_DIR)/payloads/$(PCONF-y)
 
-# Add LZMA if it is enabled
+# Add LZMA if it is enabled and we are using v2
+ifeq ($(CONFIG_COREBOOT_V2),y)
 HOSTTOOLS-$(CONFIG_USE_LZMA) += lzma
+endif
+
 HOSTTOOLS-$(CONFIG_BUILD_QEMU) += qemu
 
 # Sanity check
@@ -38,19 +41,25 @@
 endif
 
 ifeq ($(CONFIG_USE_LZMA),y)
+ifeq ($(CONFIG_COREBOOT_V2),y)
 ifeq ($(PAYLOAD_COMPRESSED),)
 $(error You must specify a compressed target)
 endif
 endif
+endif
 
 # Set the payload target (if it wasn't set by the config - warning
 # there be dragons here if everything isn't aligned)
 
 ifeq ($(PAYLOAD_TARGET),)
-ifeq ($(CONFIG_USE_LZMA),y)
-PAYLOAD_TARGET=$(PAYLOAD_COMPRESSED)
-else
-PAYLOAD_TARGET=$(PAYLOAD_ELF)
+	ifeq ($(CONFIG_COREBOOT_V2),y)
+		ifeq ($(CONFIG_USE_LZMA),y)
+				PAYLOAD_TARGET=$(PAYLOAD_COMPRESSED)
+		else
+				PAYLOAD_TARGET=$(PAYLOAD_ELF)
+		endif
+	else
+		PAYLOAD_TARGET=$(PAYLOAD_ELF)
+	endif
 endif
-endif
 





More information about the coreboot mailing list