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

