Index: config/platforms/tyan-s2881.conf
===================================================================
--- config/platforms/tyan-s2881.conf	(revision 157)
+++ config/platforms/tyan-s2881.conf	(working copy)
@@ -17,7 +17,7 @@
 # Targets
 
 KERNEL_MK=$(PACKAGE_DIR)/kernel/tyan-s2881.mk
-CBV2_MK=$(PACKAGE_DIR)/coreboot-v2/tyan-s2881.mk
+CBV2_MK=$(PACKAGE_DIR)/coreboot-v2/generic.mk
 
 # kernel configuration (for LAB)
 
Index: config/platforms/tyan-s2891.conf
===================================================================
--- config/platforms/tyan-s2891.conf	(revision 157)
+++ config/platforms/tyan-s2891.conf	(working copy)
@@ -17,7 +17,7 @@
 # Targets
 
 KERNEL_MK=$(PACKAGE_DIR)/kernel/tyan-s2891.mk
-CBV2_MK=$(PACKAGE_DIR)/coreboot-v2/tyan-s2891.mk
+CBV2_MK=$(PACKAGE_DIR)/coreboot-v2/generic.mk
 
 # kernel configuration (for LAB)
 
Index: config/platforms/tyan-s2882.conf
===================================================================
--- config/platforms/tyan-s2882.conf	(revision 157)
+++ config/platforms/tyan-s2882.conf	(working copy)
@@ -17,7 +17,7 @@
 # Targets
 
 KERNEL_MK=$(PACKAGE_DIR)/kernel/tyan-s2882.mk
-CBV2_MK=$(PACKAGE_DIR)/coreboot-v2/tyan-s2882.mk
+CBV2_MK=$(PACKAGE_DIR)/coreboot-v2/generic.mk
 
 # kernel configuration (for LAB)
 
Index: config/platforms/tyan-s2892.conf
===================================================================
--- config/platforms/tyan-s2892.conf	(revision 157)
+++ config/platforms/tyan-s2892.conf	(working copy)
@@ -17,7 +17,7 @@
 # Targets
 
 KERNEL_MK=$(PACKAGE_DIR)/kernel/tiny-2.6.22.mk
-CBV2_MK=$(PACKAGE_DIR)/coreboot-v2/tyan-generic.mk
+CBV2_MK=$(PACKAGE_DIR)/coreboot-v2/generic.mk
 
 # kernel configuration (for LAB)
 
Index: config/platforms/asus_a8v-e_se.conf
===================================================================
--- config/platforms/asus_a8v-e_se.conf	(revision 157)
+++ config/platforms/asus_a8v-e_se.conf	(working copy)
@@ -18,7 +18,7 @@
 
 # TODO
 # KERNEL_MK=$(PACKAGE_DIR)/kernel/asus_a8v-e_se.mk
-CBV2_MK=$(PACKAGE_DIR)/coreboot-v2/asus_a8v-e_se.mk
+CBV2_MK=$(PACKAGE_DIR)/coreboot-v2/generic.mk
 
 # kernel configuration (for LAB)
 
Index: config/platforms/tyan-s2895.conf
===================================================================
--- config/platforms/tyan-s2895.conf	(revision 157)
+++ config/platforms/tyan-s2895.conf	(working copy)
@@ -17,7 +17,7 @@
 # Targets
 
 KERNEL_MK=$(PACKAGE_DIR)/kernel/tiny-2.6.22.mk
-CBV2_MK=$(PACKAGE_DIR)/coreboot-v2/tyan-generic.mk
+CBV2_MK=$(PACKAGE_DIR)/coreboot-v2/generic.mk
 
 # kernel configuration (for LAB)
 
Index: config/platforms/qemu.conf
===================================================================
--- config/platforms/qemu.conf	(revision 157)
+++ config/platforms/qemu.conf	(working copy)
@@ -12,7 +12,7 @@
 # Targets
 
 KERNEL_MK=$(PACKAGE_DIR)/kernel/qemu.mk
-CBV2_MK=$(PACKAGE_DIR)/coreboot-v2/qemu.mk
+CBV2_MK=$(PACKAGE_DIR)/coreboot-v2/generic.mk
 
 # kernel configuration (for LAB)
 
Index: config/platforms/supermicro-h8dmr.conf
===================================================================
--- config/platforms/supermicro-h8dmr.conf	(revision 157)
+++ config/platforms/supermicro-h8dmr.conf	(working copy)
@@ -17,7 +17,7 @@
 # Targets
 
 KERNEL_MK=$(PACKAGE_DIR)/kernel/supermicro-h8dmr.mk
-CBV2_MK=$(PACKAGE_DIR)/coreboot-v2/supermicro-h8dmr.mk
+CBV2_MK=$(PACKAGE_DIR)/coreboot-v2/generic.mk
 
 # kernel configuration (for LAB)
 
Index: config/platforms/m57sli.conf
===================================================================
--- config/platforms/m57sli.conf	(revision 157)
+++ config/platforms/m57sli.conf	(working copy)
@@ -17,7 +17,7 @@
 # Targets
 
 KERNEL_MK=$(PACKAGE_DIR)/kernel/m57sli.mk
-CBV2_MK=$(PACKAGE_DIR)/coreboot-v2/m57sli.mk
+CBV2_MK=$(PACKAGE_DIR)/coreboot-v2/generic.mk
 
 # kernel configuration (for LAB)
 
Index: packages/coreboot-v2/generic.mk
===================================================================
--- packages/coreboot-v2/generic.mk	(revision 157)
+++ packages/coreboot-v2/generic.mk	(working copy)
@@ -1,42 +1,22 @@
 # This is the Generic coreboot target
 
-ifeq ($(CONFIG_PLATFORM),y)
-ifeq ($(CBV2_TAG),)
-$(error You need to specify a version to pull in your platform config)
+ifeq ($(CONFIG_PAYLOAD_OFW),y)
+	CBV2_CONFIG=Config-lab.lb
+	CBV2_PAYLOAD_FILE_EXT=elf.lzma
 endif
+
+ifeq ($(CONFIG_PAYLOAD_KERNEL),y)
+	CBV2_CONFIG=Config-lab.lb
+	CBV2_PAYLOAD_FILE_EXT=elf.lzma
 endif
 
-CBV2_BASE_DIR=svn
-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)
-TARGET_ROM = $(COREBOOT_VENDOR)-$(COREBOOT_BOARD).rom
+ifeq ($(CONFIG_PAYLOAD_LAB),y)
+	CBV2_CONFIG=Config-lab.lb
+	CBV2_PAYLOAD_FILE_EXT=elf.lzma
+endif
 
-# This is the list of components that comprise the ROM (excluding the payload)
-CBV2_COMPONENTS = $(CBV2_OUTPUT)
-
 include $(PACKAGE_DIR)/coreboot-v2/coreboot.inc
 
-# If an optionrom was specified in the configuration, then use it
-
-ifneq ($(OPTIONROM_ID),)
-include $(PACKAGE_DIR)/coreboot-v2/optionroms.inc
-
-# Add it to the front of the list so it is prepended to the coreboot output
-CBV2_COMPONENTS = $(SOURCE_DIR)/$(OPTIONROM_ID).rom $(CBV2_COMPONENTS)
-endif
-
-$(SOURCE_DIR)/$(CBV2_TARBALL): 
-	@ echo "Fetching the coreboot code..."
-	@ mkdir -p $(SOURCE_DIR)/coreboot
-	@ $(BIN_DIR)/fetchsvn.sh $(CBV2_URL) $(SOURCE_DIR)/coreboot \
-	$(CBV2_TAG) $(SOURCE_DIR)/$(CBV2_TARBALL) \
-	> $(CBV2_FETCH_LOG) 2>&1
-
-$(OUTPUT_DIR)/$(TARGET_ROM): $(CBV2_COMPONENTS)
-	@ mkdir -p $(OUTPUT_DIR)
-	@ cat $(CBV2_COMPONENTS) > $@
-
-coreboot: $(OUTPUT_DIR)/$(TARGET_ROM)
+coreboot: generic-coreboot
 coreboot-clean: generic-coreboot-clean
 coreboot-distclean: generic-coreboot-distclean
Index: packages/coreboot-v2/coreboot.inc
===================================================================
--- packages/coreboot-v2/coreboot.inc	(revision 157)
+++ packages/coreboot-v2/coreboot.inc	(working copy)
@@ -1,6 +1,15 @@
 # This is the common code included by all the targets
 
+CBV2_BASE_DIR=svn
+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)
+TARGET_ROM=$(COREBOOT_VENDOR)-$(COREBOOT_BOARD).rom
+
 ifeq ($(CONFIG_PLATFORM),y)
+ifeq ($(CBV2_TAG),)
+$(error You need to specify a version to pull in your platform config)
+endif
 ifeq ($(COREBOOT_VENDOR),)
 $(error No coreboot vendor specified)
 endif
@@ -18,6 +27,9 @@
 CBV2_OUTPUT=$(CBV2_BUILD_DIR)/coreboot.rom
 CBV2_DIR=$(BUILD_DIR)/coreboot
 
+# This is the list of components that comprise the ROM (excluding the payload)
+CBV2_COMPONENTS= $(CBV2_PREPEND) $(CBV2_OUTPUT)
+
 # If the user wanted to override the build directory - obey that now
 
 ifeq ($(CONFIG_CB_USE_BUILD),y)
@@ -55,6 +67,15 @@
 CBV2_DIR_TARGET=$(CBV2_STAMP_DIR)/.configured
 endif
 
+# If an optionrom was specified in the configuration, then use it
+
+ifneq ($(OPTIONROM_ID),)
+include $(PACKAGE_DIR)/coreboot-v2/optionroms.inc
+
+# Add it to the front of the list so it is prepended to the coreboot output
+CBV2_COMPONENTS=$(SOURCE_DIR)/$(OPTIONROM_ID).rom $(CBV2_COMPONENTS)
+endif
+
 $(CBV2_PAYLOAD_TARGET): $(PAYLOAD_TARGET)
 	@ cp $< $@
 
@@ -106,6 +127,19 @@
 	@ svn status > $(OUTPUT_DIR)/config/svn/svn.status
 endif
 
+$(SOURCE_DIR)/$(CBV2_TARBALL):
+	@ echo "Fetching the coreboot rev $(CBV2_TAG) code..."
+	@ mkdir -p $(SOURCE_DIR)/coreboot
+	@ $(BIN_DIR)/fetchsvn.sh $(CBV2_URL) $(SOURCE_DIR)/coreboot \
+	$(CBV2_TAG) $(SOURCE_DIR)/$(CBV2_TARBALL) \
+	> $(CBV2_FETCH_LOG) 2>&1
+
+$(OUTPUT_DIR)/$(TARGET_ROM): $(CBV2_COMPONENTS)
+	@ mkdir -p $(OUTPUT_DIR)
+	@ cat $(CBV2_COMPONENTS) > $@
+
+generic-coreboot: $(OUTPUT_DIR)/$(TARGET_ROM)
+
 generic-coreboot-clean:
 	@ echo "Cleaning coreboot..."
 	@ rm -f $(CBV2_PAYLOAD_TARGET)
Index: packages/coreboot-v2/geodelx.mk
===================================================================
--- packages/coreboot-v2/geodelx.mk	(revision 157)
+++ packages/coreboot-v2/geodelx.mk	(working copy)
@@ -1,31 +1,9 @@
 # This target supports all Geode LX platforms
-#
-ifeq ($(CONFIG_PLATFORM),y)
-ifeq ($(CBV2_TAG),)
-$(error You need to specify a version to pull in your platform config)
-endif
-endif
 
-CBV2_BASE_DIR=svn
-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)
+CBV2_PREPEND=$(GEODE_PADDED_VSA)
 
-TARGET_ROM = $(COREBOOT_VENDOR)-$(COREBOOT_BOARD).rom
-
 include $(PACKAGE_DIR)/coreboot-v2/coreboot.inc
 
-$(SOURCE_DIR)/$(CBV2_TARBALL):
-	@ echo "Fetching the coreboot rev $(CBV2_TAG) code..."
-	@ mkdir -p $(SOURCE_DIR)/coreboot
-	@ $(BIN_DIR)/fetchsvn.sh $(CBV2_URL) $(SOURCE_DIR)/coreboot \
-	$(CBV2_TAG) $(SOURCE_DIR)/$(CBV2_TARBALL) \
-	> $(CBV2_FETCH_LOG) 2>&1
-
-$(OUTPUT_DIR)/$(TARGET_ROM): $(CBV2_OUTPUT) $(GEODE_PADDED_VSA)
-	@ mkdir -p $(OUTPUT_DIR)
-	@ cat $(GEODE_PADDED_VSA) $(CBV2_OUTPUT) > $@
-
-coreboot: geodevsa $(OUTPUT_DIR)/$(TARGET_ROM)
+coreboot: geodevsa generic-coreboot
 coreboot-clean: geodevsa-clean generic-coreboot-clean
 coreboot-distclean: geodevsa-distclean generic-coreboot-distclean
Index: packages/coreboot-v2/ga-2761gxdk.mk
===================================================================
--- packages/coreboot-v2/ga-2761gxdk.mk	(revision 157)
+++ packages/coreboot-v2/ga-2761gxdk.mk	(working copy)
@@ -1,38 +1,13 @@
-# This is the Generic coreboot target
 
-ifeq ($(CONFIG_PLATFORM),y)
-ifeq ($(CBV2_TAG),)
-$(error You need to specify a version to pull in your platform config)
-endif
-endif
-
 CBV2_PATCHES=
 
-CBV2_BASE_DIR=svn
-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)
-TARGET_ROM = $(COREBOOT_VENDOR)-$(COREBOOT_BOARD).rom
-
-include $(PACKAGE_DIR)/coreboot-v2/coreboot.inc
-
 # This matches the base name of the ROM on
 # http://www.coreboot.org/data/optionroms/
 
-OPTIONROM_ID = pci1039,6330
-include $(PACKAGE_DIR)/coreboot-v2/optionroms.inc
+OPTIONROM_ID=pci1039,6330
 
-$(SOURCE_DIR)/$(CBV2_TARBALL):
-	@ echo "Fetching the coreboot code..."
-	@ mkdir -p $(SOURCE_DIR)/coreboot
-	@ $(BIN_DIR)/fetchsvn.sh $(CBV2_URL) $(SOURCE_DIR)/coreboot \
-	$(CBV2_TAG) $(SOURCE_DIR)/$(CBV2_TARBALL) \
-	> $(CBV2_FETCH_LOG) 2>&1
+include $(PACKAGE_DIR)/coreboot-v2/coreboot.inc
 
-$(OUTPUT_DIR)/$(TARGET_ROM): $(CBV2_OUTPUT) $(SOURCE_DIR)/$(OPTIONROM_ID).rom
-	@ mkdir -p $(OUTPUT_DIR)
-	@ cat $(SOURCE_DIR)/$(OPTIONROM_ID).rom $(CBV2_OUTPUT) > $@
-
-coreboot: $(OUTPUT_DIR)/$(TARGET_ROM)
+coreboot: generic-coreboot
 coreboot-clean: generic-coreboot-clean
 coreboot-distclean: generic-coreboot-distclean
Index: packages/coreboot-v2/serengeti_cheetah.mk
===================================================================
--- packages/coreboot-v2/serengeti_cheetah.mk	(revision 157)
+++ packages/coreboot-v2/serengeti_cheetah.mk	(working copy)
@@ -1,13 +1,7 @@
-# This is the Generic coreboot target
+# This is the Serengeti-cheetah coreboot target
 
-ifeq ($(CONFIG_PLATFORM),y)
-ifeq ($(CBV2_TAG),)
-$(error You need to specify a version to pull in your platform config)
-endif
-endif
+CBV2_PATCHES=
 
-CBV2_PATCHES =
-
 # Make sure we have the tools we need to accomplish this
 HAVE_IASL:=$(call find-tool,iasl)
 
@@ -15,44 +9,14 @@
 $(error To build coreboot, you need to install the 'iasl' tool)
 endif
 
-
-ifeq ($(CONFIG_PLATFORM_CHEETAH_FAM10),y)
-ifeq ($(CONFIG_PAYLOAD_LAB),y)
-	CBV2_CONFIG = Config-lab.lb
-	CBV2_PAYLOAD_FILE_EXT = elf.lzma
-endif
-endif
-
 ifeq ($(CONFIG_PLATFORM_SERENGETI_CHEETAH),y)
-ifeq ($(CONFIG_PAYLOAD_LAB),y)
-	CBV2_CONFIG = Config-lab.lb
-	CBV2_PAYLOAD_FILE_EXT = elf.lzma
-endif
-
 ifeq ($(CONFIG_SIMNOW),y)
 CBV2_PATCHES += $(PACKAGE_DIR)/coreboot-v2/patches/simnow.patch
 endif
 endif
 
-CBV2_BASE_DIR=svn
-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)
-TARGET_ROM = $(COREBOOT_VENDOR)-$(COREBOOT_BOARD).rom
-
 include $(PACKAGE_DIR)/coreboot-v2/coreboot.inc
 
-$(SOURCE_DIR)/$(CBV2_TARBALL):
-	@ echo "Fetching the coreboot code..."
-	@ mkdir -p $(SOURCE_DIR)/coreboot
-	@ $(BIN_DIR)/fetchsvn.sh $(CBV2_URL) $(SOURCE_DIR)/coreboot \
-	$(CBV2_TAG) $(SOURCE_DIR)/$(CBV2_TARBALL) \
-	> $(CBV2_FETCH_LOG) 2>&1
-
-$(OUTPUT_DIR)/$(TARGET_ROM): $(CBV2_OUTPUT)
-	@ mkdir -p $(OUTPUT_DIR)
-	@ cp $< $@
-
-coreboot: $(OUTPUT_DIR)/$(TARGET_ROM)
+coreboot: generic-coreboot
 coreboot-clean: generic-coreboot-clean
 coreboot-distclean: generic-coreboot-distclean
