This is the third patch in the update to the brave new VSA world.
This fixes up the VSA fetching to understand the upstream version
that is not nrv2b compressed, and we do the compressing and 
padding locally within buildrom.   I also remove most of the VSA
brains from the coreboot-v2 file. (See if you can spot
the fun shell script to account for the temporary AMD server difficulties
that Stefan alluded to).

Next after this is the openvsa patch itself which will mainly 
drop right into packages/geodevsa.  Then finally, we'll do the
v3 work for VSA.   Thats going to end up changing one of these 
files a little bit, but I have decided exactly how we're going to
do that.

Enjoy,
Jordan

-- 
Jordan Crouse
Systems Software Development Engineer 
Advanced Micro Devices, Inc.
[BUILDROM] Fixup VSA fetching code

In preparation for v3 and the upcoming openvsa changes,
rearrange the VSA fetching code.  We now fetch an 
uncompressed blob, and do the compressing within buildrom.
I'm mainly concentrating on v2 right now (this is not quite
v3 friendly), but it will be.

Also, work around a hopefully temporary bug on the AMD
servers.

Signed-off-by: Jordan Crouse <[EMAIL PROTECTED]>
Index: buildrom-devel/packages/coreboot-v2/geodelx.mk
===================================================================
--- buildrom-devel.orig/packages/coreboot-v2/geodelx.mk	2008-02-19 13:38:59.000000000 -0700
+++ buildrom-devel/packages/coreboot-v2/geodelx.mk	2008-02-19 16:44:30.000000000 -0700
@@ -10,16 +10,11 @@
 CBV2_URL=svn://coreboot.org/repos/trunk/coreboot-v2
 CBV2_TARBALL=coreboot-svn-$(CBV2_TAG).tar.gz
 CBV2_PAYLOAD_TARGET=$(CBV2_BUILD_DIR)/payload.$(CBV2_PAYLOAD_FILE_EXT)
-VSA_URL=http://www.amd.com/files/connectivitysolutions/geode/geode_lx/
-CBV2_VSA=lx_vsa.36k.bin
+
 TARGET_ROM = $(COREBOOT_VENDOR)-$(COREBOOT_BOARD).rom
 
 include $(PACKAGE_DIR)/coreboot-v2/coreboot.inc
 
-$(SOURCE_DIR)/$(CBV2_VSA):
-	@ echo "Fetching the VSA blob..."
-	wget -P $(SOURCE_DIR) $(VSA_URL)/$(CBV2_VSA).gz  -O $@
-
 $(SOURCE_DIR)/$(CBV2_TARBALL):
 	@ echo "Fetching the coreboot rev $(CBV2_TAG) code..."
 	@ mkdir -p $(SOURCE_DIR)/coreboot
@@ -27,12 +22,10 @@
 	$(CBV2_TAG) $(SOURCE_DIR)/$(CBV2_TARBALL) \
 	> $(CBV2_FETCH_LOG) 2>&1
 
-# Special rule - append the VSA
-
-$(OUTPUT_DIR)/$(TARGET_ROM): $(CBV2_OUTPUT) $(SOURCE_DIR)/$(CBV2_VSA)
+$(OUTPUT_DIR)/$(TARGET_ROM): $(CBV2_OUTPUT) $(GEODE_PADDED_VSA)
 	@ mkdir -p $(OUTPUT_DIR)
-	@ cat $(SOURCE_DIR)/$(CBV2_VSA) $(CBV2_OUTPUT) > $@
+	@ cat $(GEODE_PADDED_VSA) $(CBV2_OUTPUT) > $@
 
-coreboot: $(OUTPUT_DIR)/$(TARGET_ROM)
-coreboot-clean: generic-coreboot-clean
-coreboot-distclean: generic-coreboot-distclean
+coreboot: geodevsa $(OUTPUT_DIR)/$(TARGET_ROM)
+coreboot-clean: geodevsa-clean generic-coreboot-clean
+coreboot-distclean: geodevsa-distclean generic-coreboot-distclean
Index: buildrom-devel/packages/utils/nrv2b.mk
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ buildrom-devel/packages/utils/nrv2b.mk	2008-02-19 13:39:03.000000000 -0700
@@ -0,0 +1,46 @@
+NRV2B_URL=svn://coreboot.org/repos/trunk/coreboot-v2/util/nrv2b
+NRV2B_TAG=3086
+
+NRV2B_DIR=$(BUILD_DIR)/nrv2b
+NRV2B_SRC_DIR=$(NRV2B_DIR)/svn
+NRV2B_STAMP_DIR=$(NRV2B_DIR)/stamps
+NRV2B_LOG_DIR=$(NRV2B_DIR)/logs
+NRV2B_TARBALL=nrv2b-svn-$(NRV2B_TAG).tar.gz
+
+ifeq ($(CONFIG_VERBOSE),y)
+NRV2B_BUILD_LOG=/dev/stdout
+NRV2B_FETCH_LOG=/dev/stdout
+else
+NRV2B_BUILD_LOG=$(NRV2B_LOG_DIR)/build.log
+NRV2B_FETCH_LOG=$(NRV2B_LOG_DIR)/fetch.log
+endif
+
+$(SOURCE_DIR)/$(NRV2B_TARBALL):
+	mkdir -p $(SOURCE_DIR)/nrv2b
+	@ $(BIN_DIR)/fetchsvn.sh $(NRV2B_URL) $(SOURCE_DIR)/nrv2b \
+	$(NRV2B_TAG) $@ > $(NRV2B_FETCH_LOG) 2>&1
+
+$(NRV2B_STAMP_DIR)/.unpacked: $(SOURCE_DIR)/$(NRV2B_TARBALL)
+	@ tar -C $(NRV2B_DIR) -zxf $(SOURCE_DIR)/$(NRV2B_TARBALL)
+
+$(NRV2B_SRC_DIR)/nrv2b: $(NRV2B_STAMP_DIR)/.unpacked
+	@ (unset CFLAGS; unset LDFLAGS; \
+	$(MAKE) -C $(NRV2B_SRC_DIR) \
+	 > $(NRV2B_BUILD_LOG) 2>&1)
+
+$(STAGING_DIR)/bin/nrv2b: $(NRV2B_SRC_DIR)/nrv2b
+	mkdir -p $(STAGING_DIR)/bin
+	cp $< $@
+
+$(NRV2B_STAMP_DIR) $(NRV2B_LOG_DIR):
+	@ mkdir -p $@
+
+nrv2b: $(NRV2B_STAMP_DIR) $(NRV2B_LOG_DIR) $(STAGING_DIR)/bin/nrv2b
+
+nrv2b-clean:
+	@ echo "Cleaning nrv2b..."
+	@ $(MAKE) -c $(NRV2B_SRC_DIR) clean > /dev/null 2>&1
+
+nrv2b-distclean:
+	@ rm -r $(NRV2B_DIR)
+
Index: buildrom-devel/packages/geodevsa/amdvsa.inc
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ buildrom-devel/packages/geodevsa/amdvsa.inc	2008-02-19 17:44:14.000000000 -0700
@@ -0,0 +1,21 @@
+# Target file for the AMD VSA binary - included from geodevsa.mk
+
+AMDVSA_URL=http://www.amd.com/files/connectivitysolutions/geode/geode_lx/
+AMDVSA_BIN=amd_vsa_lx_1.01.bin
+
+# 2008-02-19 - the AMD URL above is broken, when trying to wget
+# amd_vsa_lx_1.01.bin.gz it arrives uncompressed instead.  This
+# breakage is expected to be fixed; but to properly
+# handle this temporary situation without breakage down the line,
+# we do the unsual check of the file type below:
+# Jordan
+
+$(SOURCE_DIR)/$(AMDVSA_BIN):
+	@ echo "Fetching the AMD VSA binary..."
+	wget -P $(SOURCE_DIR) $(AMDVSA_URL)/$(AMDVSA_BIN).gz -O [EMAIL PROTECTED]
+	@ if file [EMAIL PROTECTED] | grep -q "COM executable"; then \
+	mv [EMAIL PROTECTED] $@; else gunzip -q [EMAIL PROTECTED]; fi
+
+$(GEODE_UNCOMPRESSED_VSA): $(SOURCE_DIR)/$(AMDVSA_BIN)
+	@ mkdir -p $(shell dirname $(GEODE_UNCOMPRESSED_VSA))
+	@ cp $< $@
Index: buildrom-devel/packages/geodevsa/geodevsa.mk
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ buildrom-devel/packages/geodevsa/geodevsa.mk	2008-02-19 17:14:38.000000000 -0700
@@ -0,0 +1,27 @@
+# Master targets for VSA manipulation
+
+GEODE_UNCOMPRESSED_VSA=$(OUTPUT_DIR)/vsa/geodevsa.bin
+GEODE_COMPRESSED_VSA=$(OUTPUT_DIR)/vsa/geodevsa.bin.nrv
+GEODE_PADDED_VSA=$(OUTPUT_DIR)/vsa/geodevsa.bin.nrv.pad
+
+GEODE_VSA_SIZE=36864
+
+include $(PACKAGE_DIR)/geodevsa/amdvsa.inc
+
+$(GEODE_COMPRESSED_VSA): nrv2b $(GEODE_UNCOMPRESSED_VSA)
+	@ $(STAGING_DIR)/bin/nrv2b e $(GEODE_UNCOMPRESSED_VSA) $@ \
+	> /dev/null 2>&1
+
+$(GEODE_PADDED_VSA): $(GEODE_COMPRESSED_VSA)
+	@ cp $< $@
+	@ (size=`stat -c %s $<`; count=`expr $(GEODE_VSA_SIZE) - $$size`; \
+	dd if=/dev/zero bs=1 count=$$count  >> $@ 2> /dev/null)
+
+geodevsa: $(GEODE_PADDED_VSA)
+
+geodevsa-clean:
+	@ rm -f $(GEODE_UNCOMPRESSED_VSA) $(GEODE_COMPRESSED_VSA)
+	@ rm -f $(GEODE_PADDED_VSA)
+
+geodevsa-distclean:
+	@ rm -rf $(OUTPUT_DIR)/vsa
-- 
coreboot mailing list
[email protected]
http://www.coreboot.org/mailman/listinfo/coreboot

Reply via email to