Index: include/kernel-build.mk
===================================================================
--- include/kernel-build.mk	(revision 31785)
+++ include/kernel-build.mk	(working copy)
@@ -116,9 +116,19 @@
   oldconfig menuconfig nconfig: $(STAMP_PREPARED) $(STAMP_CHECKED) FORCE
 	rm -f $(STAMP_CONFIGURED)
 	$(LINUX_RECONF_CMD) > $(LINUX_DIR)/.config
+	$(CP) $(LINUX_DIR)/.config $(LINUX_DIR)/.config.default
+	$(if $(wildcard $(LINUX_DIR)/.config.user),$(SCRIPT_DIR)/kconfig.pl '+' $(LINUX_DIR)/.config $(LINUX_DIR)/.config.user > $(LINUX_DIR)/.config.tmp;mv $(LINUX_DIR)/.config.tmp $(LINUX_DIR)/.config)
 	$(_SINGLE)$(MAKE) -C $(LINUX_DIR) $(KERNEL_MAKEOPTS) $$@
-	$(LINUX_RECONF_DIFF) $(LINUX_DIR)/.config > $(LINUX_RECONFIG_TARGET)
+	$(SCRIPT_DIR)/kconfig.pl '>' $(LINUX_DIR)/.config.default $(LINUX_DIR)/.config > $(LINUX_DIR)/.config.user
+	rm -f $(LINUX_DIR)/.config.default
 
+  default:
+	rm -f $(LINUX_DIR)/.config.user
+	$(LINUX_RECONF_CMD) > $(LINUX_DIR)/.config
+
+  user:
+	$(if $(wildcard $(LINUX_DIR)/.config.user),cat $(LINUX_DIR)/.config.user)
+
   install: $(LINUX_DIR)/.image
 	+$(MAKE) -C image compile install TARGET_BUILD=
 
Index: include/kernel-defaults.mk
===================================================================
--- include/kernel-defaults.mk	(revision 31785)
+++ include/kernel-defaults.mk	(working copy)
@@ -104,6 +104,7 @@
 	$(SCRIPT_DIR)/metadata.pl kconfig $(TMP_DIR)/.packageinfo $(TOPDIR)/.config > $(LINUX_DIR)/.config.override
 	$(SCRIPT_DIR)/kconfig.pl 'm+' '+' $(LINUX_DIR)/.config.target /dev/null $(LINUX_DIR)/.config.override > $(LINUX_DIR)/.config
 	$(call Kernel/SetInitramfs)
+	$(if $(wildcard $(LINUX_DIR)/.config.user),$(SCRIPT_DIR)/kconfig.pl '+' $(LINUX_DIR)/.config $(LINUX_DIR)/.config.user > $(LINUX_DIR)/.config.tmp;mv $(LINUX_DIR)/.config.tmp $(LINUX_DIR)/.config)
 	-$(_SINGLE)$(MAKE) $(KERNEL_MAKEOPTS) oldconfig prepare scripts
 	rm -rf $(KERNEL_BUILD_DIR)/modules
 	$(MAKE) $(KERNEL_MAKEOPTS) INSTALL_HDR_PATH=$(LINUX_DIR)/user_headers headers_install
Index: include/toplevel.mk
===================================================================
--- include/toplevel.mk	(revision 31785)
+++ include/toplevel.mk	(working copy)
@@ -113,6 +113,12 @@
 kernel_nconfig: prepare_kernel_conf
 	$(_SINGLE)$(NO_TRACE_MAKE) -C target/linux nconfig
 
+kernel_user: prepare_kernel_conf
+	$(_SINGLE)$(NO_TRACE_MAKE) -C target/linux user
+
+kernel_default: prepare_kernel_conf
+	$(_SINGLE)$(NO_TRACE_MAKE) -C target/linux default
+
 tmp/.prereq-build: include/prereq-build.mk
 	mkdir -p tmp
 	rm -f tmp/.host.mk
Index: target/linux/Makefile
===================================================================
--- target/linux/Makefile	(revision 31785)
+++ target/linux/Makefile	(working copy)
@@ -9,5 +9,5 @@
 
 export TARGET_BUILD=1
 
-prereq clean download prepare compile install menuconfig nconfig oldconfig update refresh: FORCE
+prereq clean download prepare compile install menuconfig nconfig oldconfig default user update refresh: FORCE
 	@+$(NO_TRACE_MAKE) -C $(BOARD) $@
