Index: src/Kconfig
===================================================================
--- src/Kconfig	(revision 5685)
+++ src/Kconfig	(working copy)
@@ -18,7 +18,14 @@
 ##
 
 mainmenu "Coreboot Configuration"
+config PRE_PAYLOAD
+     bool
+     default n
 
+config COMPRESSED_PAYLOAD_NRV2B
+	bool
+	default n
+
 menu "General setup"
 
 config EXPERT
@@ -346,7 +353,7 @@
 endmenu
 
 menu "Payload"
-
+depends on !PRE_PAYLOAD
 choice
 	prompt "Add a payload"
 	default PAYLOAD_NONE
@@ -389,9 +396,6 @@
 	  In order to reduce the size payloads take up in the ROM chip
 	  coreboot can compress them using the LZMA algorithm.
 
-config COMPRESSED_PAYLOAD_NRV2B
-	bool
-	default n
 
 endmenu
 
Index: util/kconfig/Makefile
===================================================================
--- util/kconfig/Makefile	(revision 5685)
+++ util/kconfig/Makefile	(working copy)
@@ -13,22 +13,150 @@
 Kconfig := src/Kconfig
 
 xconfig: $(objk)/qconf
+ifeq ($(PAYLOAD),filo)
+	$(Q)make -C $(FILO_DIR) xconfig
+	$(Q)sed -i '/config PRE_PAYLOAD/{n;n;s/default n/default y/}' $(Kconfig)
 	$(objk)/qconf $(Kconfig)
+	$(Q)echo "CONFIG_PAYLOAD=filo" >> .config
+	$(Q)echo "CONFIG_PAYLOAD_ELF=y" >> .config
+	$(Q)echo "CONFIG_FALLBACK_PAYLOAD_FILE=\"$(FILO_DIR)/build/filo.elf\"" >> .config
+	$(Q)echo "CONFIG_COMPRESSED_PAYLOAD_LZMA=y" >> .config
+else
+ifeq ($(PAYLOAD),coreinfo)
+	$(Q)make -C $(COREINFO_DIR) xconfig
+	$(Q)sed -i '/config PRE_PAYLOAD/{n;n;s/default n/default y/}' $(Kconfig)
+	$(objk)/qconf $(Kconfig)
+	$(Q)echo "CONFIG_PAYLOAD=filo" >> .config
+	$(Q)echo "CONFIG_PAYLOAD_ELF=y" >> .config
+	$(Q)echo "CONFIG_FALLBACK_PAYLOAD_FILE=\"$(COREINFO_DIR)/build/filo.elf\"" >> .config
+	$(Q)echo "CONFIG_COMPRESSED_PAYLOAD_LZMA=y" >> .config
+else
+	$(Q)sed -i '/config PRE_PAYLOAD/{n;n;s/default y/default n/}' $(Kconfig)
+	$(objk)/qconf $(Kconfig)
+endif
+endif
 
 gconfig: $(objk)/gconf
+ifeq ($(PAYLOAD),filo)
+	$(Q)make -C $(FILO_DIR) gconfig
+	$(Q)sed -i '/config PRE_PAYLOAD/{n;n;s/default n/default y/}' $(Kconfig)
 	$(objk)/gconf $(Kconfig)
+	$(Q)echo "CONFIG_PAYLOAD=filo" >> .config
+	$(Q)echo "CONFIG_PAYLOAD_ELF=y" >> .config
+	$(Q)echo "CONFIG_FALLBACK_PAYLOAD_FILE=\"$(FILO_DIR)/build/filo.elf\"" >> .config
+	$(Q)echo "CONFIG_COMPRESSED_PAYLOAD_LZMA=y" >> .config
+else
+ifeq ($(PAYLOAD),coreinfo)
+	$(Q)make -C $(COREINFO_DIR) gconfig
+	$(Q)sed -i '/config PRE_PAYLOAD/{n;n;s/default n/default y/}' $(Kconfig)
+	$(objk)/gconf $(Kconfig)
+	$(Q)echo "CONFIG_PAYLOAD=coreinfo" >> .config
+	$(Q)echo "CONFIG_PAYLOAD_ELF=y" >> .config
+	$(Q)echo "CONFIG_FALLBACK_PAYLOAD_FILE=\"$(COREINFO_DIR)/build/filo.elf\"" >> .config
+	$(Q)echo "CONFIG_COMPRESSED_PAYLOAD_LZMA=y" >> .config
+else
+	$(Q)sed -i '/config PRE_PAYLOAD/{n;n;s/default y/default n/}' $(Kconfig)
+	$(objk)/gconf $(Kconfig)
+endif
+endif
 
 menuconfig: $(objk)/mconf
+ifeq ($(PAYLOAD),filo)
+	$(Q)make -C $(FILO_DIR) menuconfig
+	$(Q)sed -i '/config PRE_PAYLOAD/{n;n;s/default n/default y/}' $(Kconfig)
 	$(objk)/mconf $(Kconfig)
+	$(Q)echo "CONFIG_PAYLOAD=filo" >> .config
+	$(Q)echo "CONFIG_PAYLOAD_ELF=y" >> .config
+	$(Q)echo "CONFIG_FALLBACK_PAYLOAD_FILE=\"$(FILO_DIR)/build/filo.elf\"" >> .config
+	$(Q)echo "CONFIG_COMPRESSED_PAYLOAD_LZMA=y" >> .config
 
+else
+ifeq ($(PAYLOAD),coreinfo)
+	$(Q)make -C $(COREINFO_DIR) menuconfig
+	$(Q)sed -i '/config PRE_PAYLOAD/{n;n;s/default n/default y/}' $(Kconfig)
+	$(objk)/mconf $(Kconfig)
+	$(Q)echo "CONFIG_PAYLOAD=coreinfo" >> .config
+	$(Q)echo "CONFIG_PAYLOAD_ELF=y" >> .config
+	$(Q)echo "CONFIG_FALLBACK_PAYLOAD_FILE=$(COREINFO_DIR)/build/coreinfo.elf" >> .config
+	$(Q)echo "CONFIG_COMPRESSED_PAYLOAD_LZMA=y" >> .config
+else
+	$(Q)sed -i '/config PRE_PAYLOAD/{n;n;s/default y/default n/}' $(Kconfig)
+	$(objk)/mconf $(Kconfig)
+endif
+endif
+
+
 config: $(objk)/conf
+ifeq ($(PAYLOAD),filo)
+	$(Q)make -C $(FILO_DIR) config
+	$(Q)sed -i '/config PRE_PAYLOAD/{n;n;s/default n/default y/}' $(Kconfig)
 	$(objk)/conf $(Kconfig)
+	$(Q)echo "CONFIG_PAYLOAD=filo" >> .config
+	$(Q)echo "CONFIG_PAYLOAD_ELF=y" >> .config
+	$(Q)echo "CONFIG_FALLBACK_PAYLOAD_FILE=\"$(FILO_DIR)/build/filo.elf\"" >> .config
+	$(Q)echo "CONFIG_COMPRESSED_PAYLOAD_LZMA=y" >> .config
+else
+ifeq ($(PAYLOAD),coreinfo)
+	$(Q)make -C $(COREINFO_DIR) config
+	$(Q)sed -i '/config PRE_PAYLOAD/{n;n;s/default n/default y/}' $(Kconfig)
+	$(objk)/conf $(Kconfig)
+	$(Q)echo "CONFIG_PAYLOAD=coreinfo" >> .config
+	$(Q)echo "CONFIG_PAYLOAD_ELF=y" >> .config
+	$(Q)echo "CONFIG_FALLBACK_PAYLOAD_FILE=$(COREINFO_DIR)/build/coreinfo.elf" >> .config
+	$(Q)echo "CONFIG_COMPRESSED_PAYLOAD_LZMA=y" >> .config
+else
+	$(Q)sed -i '/config PRE_PAYLOAD/{n;n;s/default y/default n/}' $(Kconfig)
+	$(objk)/conf $(Kconfig)
+endif
+endif
 
 oldconfig: $(objk)/conf
+ifeq ($(PAYLOAD),filo)
+	$(Q)make -C $(FILO_DIR) oldconfig
+	$(Q)sed -i '/config PRE_PAYLOAD/{n;n;s/default n/default y/}' $(Kconfig)
 	$(objk)/conf -o $(Kconfig)
+	$(Q)echo "CONFIG_PAYLOAD=filo" >> .config
+	$(Q)echo "CONFIG_PAYLOAD_ELF=y" >> .config
+	$(Q)echo "CONFIG_FALLBACK_PAYLOAD_FILE=\"$(FILO_DIR)/build/filo.elf\"" >> .config
+	$(Q)echo "CONFIG_COMPRESSED_PAYLOAD_LZMA=y" >> .config
+else
+ifeq ($(PAYLOAD),coreinfo)
+	$(Q)make -C $(COREINFO_DIR) oldconfig
+	$(Q)sed -i '/config PRE_PAYLOAD/{n;n;s/default n/default y/}' $(Kconfig)
+	$(objk)/conf -o $(Kconfig)
+	$(Q)echo "CONFIG_PAYLOAD=coreinfo" >> .config
+	$(Q)echo "CONFIG_PAYLOAD_ELF=y" >> .config
+	$(Q)echo "CONFIG_FALLBACK_PAYLOAD_FILE=$(COREINFO_DIR)/build/coreinfo.elf" >> .config
+	$(Q)echo "CONFIG_COMPRESSED_PAYLOAD_LZMA=y" >> .config
+else
+	$(Q)sed -i '/config PRE_PAYLOAD/{n;n;s/default y/default n/}' $(Kconfig)
+	$(objk)/conf -o $(Kconfig)
+endif
+endif
 
 silentoldconfig: $(objk)/conf
+ifeq ($(PAYLOAD),filo)
+	$(Q)make -C $(FILO_DIR) silentoldconfig
+	$(Q)sed -i '/config PRE_PAYLOAD/{n;n;s/default n/default y/}' $(Kconfig)
 	$(objk)/conf -s $(Kconfig)
+	$(Q)echo "CONFIG_PAYLOAD=filo" >> .config
+	$(Q)echo "CONFIG_PAYLOAD_ELF=y" >> .config
+	$(Q)echo "CONFIG_FALLBACK_PAYLOAD_FILE=\"$(FILO_DIR)/build/filo.elf\"" >> .config
+	$(Q)echo "CONFIG_COMPRESSED_PAYLOAD_LZMA=y" >> .config
+else
+ifeq ($(PAYLOAD),coreinfo)
+	$(Q)make -C $(COREINFO_DIR) silentoldconfig
+	$(Q)sed -i '/config PRE_PAYLOAD/{n;n;s/default n/default y/}' $(Kconfig)
+	$(objk)/conf -s $(Kconfig)
+	$(Q)echo "CONFIG_PAYLOAD=coreinfo" >> .config
+	$(Q)echo "CONFIG_PAYLOAD_ELF=y" >> .config
+	$(Q)echo "CONFIG_FALLBACK_PAYLOAD_FILE=$(COREINFO_DIR)/build/coreinfo.elf" >> .config
+	$(Q)echo "CONFIG_COMPRESSED_PAYLOAD_LZMA=y" >> .config
+else
+	$(Q)sed -i '/config PRE_PAYLOAD/{n;n;s/default y/default n/}' $(Kconfig)
+	$(objk)/conf -s $(Kconfig)
+endif
+endif
 
 # --- UNUSED, ignore ----------------------------------------------------------
 # Create new linux.pot file
Index: Makefile
===================================================================
--- Makefile	(revision 5685)
+++ Makefile	(working copy)
@@ -38,12 +38,14 @@
 export obj ?= build
 export objutil ?= $(obj)/util
 export objk := $(objutil)/kconfig
-
-
 export KERNELVERSION      := 4.0
 export KCONFIG_AUTOHEADER := $(obj)/config.h
 export KCONFIG_AUTOCONFIG := $(obj)/auto.conf
 
+export PAYLOAD ?=
+
+export FILO_DIR = $(top)/payloads/filo
+export COREINFO_DIR = $(top)/payloads/coreinfo
 CONFIG_SHELL := sh
 KBUILD_DEFCONFIG := configs/defconfig
 UNAME_RELEASE := $(shell uname -r)
@@ -304,7 +306,7 @@
 CBFS_PAYLOAD_COMPRESS_NAME:=LZMA
 endif
 
-coreboot: $(obj)/coreboot.rom
+coreboot: payload $(obj)/coreboot.rom
 
 endif
 
@@ -361,6 +363,16 @@
 update:
 	dongle.py -c /dev/term/1 $(obj)/coreboot.rom EOF
 
+payload:
+ifeq ($(CONFIG_PAYLOAD),filo)
+	make -C $(top)/payloads/filo 
+else
+ifeq ($(CONFIG_PAYLOAD),coreinfo)
+	make -C $(top)/payloads/coreinfo
+else
+	printf "No buildin payload\n"
+endif
+endif
 # This include must come _before_ the pattern rules below!
 # Order _does_ matter for pattern rules.
 include util/kconfig/Makefile
