diff --git a/linux/Config.in b/linux/Config.in
index a7109a5071..1e015b7fca 100644
--- a/linux/Config.in
+++ b/linux/Config.in
@@ -111,20 +111,22 @@ config BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE
 
 choice
 	prompt "Kernel binary format"
-	default BR2_LINUX_KERNEL_UIMAGE if !BR2_i386 && !BR2_x86_64
-	default BR2_LINUX_KERNEL_BZIMAGE if BR2_i386 || BR2_x86_64
 
 config BR2_LINUX_KERNEL_UIMAGE
 	bool "uImage"
+	depends on BR2_arm || BR2_armeb || BR2_powerpc || BR2_avr32 || BR2_sh || BR2_sh64
 
 config BR2_LINUX_KERNEL_BZIMAGE
 	bool "bzImage"
+	depends on BR2_i386 || BR2_x86_64
 
 config BR2_LINUX_KERNEL_ZIMAGE
 	bool "zImage"
+	depends on BR2_arm || BR2_armeb || BR2_powerpc || BR2_sparc || BR2_sh || BR2_sh64 || BR2_xtensa
 
-config BR2_LINUX_KERNEL_VMLINUX
-	bool "vmlinux"
+config BR2_LINUX_KERNEL_VMLINUX_BIN
+	bool "vmlinux.bin"
+	depends on BR2_mips || BR2_mipsel || BR2_sh || BR2_sh64
 
 endchoice
 
diff --git a/linux/linux.mk b/linux/linux.mk
index aabecc1f65..55dc2bfe88 100644
--- a/linux/linux.mk
+++ b/linux/linux.mk
@@ -38,11 +38,15 @@ else ifeq ($(BR2_LINUX_KERNEL_BZIMAGE),y)
 LINUX26_IMAGE_NAME=bzImage
 else ifeq ($(BR2_LINUX_KERNEL_ZIMAGE),y)
 LINUX26_IMAGE_NAME=zImage
-else ifeq ($(BR2_LINUX_KERNEL_VMLINUX),y)
+else ifeq ($(BR2_LINUX_KERNEL_VMLINUX_BIN),y)
 LINUX26_IMAGE_NAME=vmlinux.bin
 endif
 
+ifeq ($(KERNEL_ARCH),avr32)
+LINUX26_IMAGE_PATH=$(LINUX26_DIR)/arch/$(KERNEL_ARCH)/boot/images/$(LINUX26_IMAGE_NAME)
+else
 LINUX26_IMAGE_PATH=$(LINUX26_DIR)/arch/$(KERNEL_ARCH)/boot/$(LINUX26_IMAGE_NAME)
+endif
 
 # Download
 $(LINUX26_DIR)/.stamp_downloaded: