diff --git a/target/linux/brcm63xx/image/Makefile b/target/linux/brcm63xx/image/Makefile
index a2130f3bd2e8aa15601f8d9b790a914dae4a18b8..1913feb6469635a642ff831494f80bd5c2a79463 100755
--- a/target/linux/brcm63xx/image/Makefile
+++ b/target/linux/brcm63xx/image/Makefile
@@ -86,11 +86,33 @@ define Image/Build/ZYXCFEDTB
 endef
 
 define Image/Build/RedBootDTB
-	# Generate the image
+	# Prepare kernel and rootfs
 	gzip -9 -c $(KDIR)/vmlinux-$(3) > $(KDIR)/vmlinux-$(3).bin.gz
-	$(STAGING_DIR_HOST)/bin/lzma e $(KDIR)/vmlinux-$(3) $(KDIR)/vmlinux-$(3).bin.l7
-	dd if=$(KDIR)/vmlinux-$(3).bin.l7 of=$(BIN_DIR)/openwrt-$(2)-vmlinux.lzma bs=65536 conv=sync
 	dd if=$(KDIR)/vmlinux-$(3).bin.gz of=$(BIN_DIR)/openwrt-$(2)-vmlinux.gz bs=65536 conv=sync
+	dd if=$(KDIR)/root.squashfs of="$(BIN_DIR)/openwrt-$(2)-root.squashfs" bs=64k conv=sync
+	echo -ne \\xDE\\xAD\\xC0\\xDE >> "$(BIN_DIR)/openwrt-$(2)-root.squashfs"
+	# Generate the scripted image
+	$(CP) ./redbootscript.template $(BIN_DIR)/redbootscript
+	let \
+		kernellen="$$$$(stat -c%s $(BIN_DIR)/openwrt-$(2)-vmlinux.gz)" \
+		rootfsdatalen="$$$$(stat -c %s $(BIN_DIR)/openwrt-$(2)-root.squashfs)" \
+		rootfsaddr="0xBE430000 + kernellen" \
+		rootfslen="0xBEBF0000 - rootfsaddr" \
+		offset2="0x1000 + kernellen"; \
+		$(SED)	"s,%loadaddr,$(strip $(LOADADDR)),g" \
+			-e "s,%kernellen,$$$$(printf '%#x' $$$$kernellen),g" \
+			-e "s,%offset2,$$$$(printf '%#x' $$$$offset2),g" \
+			-e "s,%rootfsdatalen,$$$$(printf '%#x' $$$$rootfsdatalen),g" \
+			-e "s,%rootfsaddr,$$$$(printf '%#x' $$$$rootfsaddr),g" \
+			-e "s,%rootfslen,$$$$(printf '%#x' $$$$rootfslen),g" \
+		"$(BIN_DIR)/redbootscript"
+
+	dd if="$(BIN_DIR)/redbootscript" of="$(BIN_DIR)/redbootscript.padded" bs=4096 conv=sync
+	cat \
+		"$(BIN_DIR)/redbootscript.padded" \
+		"$(BIN_DIR)/openwrt-$(2)-vmlinux.gz" \
+		"$(BIN_DIR)/openwrt-$(2)-root.squashfs" \
+		> "$(BIN_DIR)/openwrt-$(2)-redboot.bin"
 endef
 
 define Image/Build/HCSDTB
diff --git a/target/linux/brcm63xx/image/redbootscript.template b/target/linux/brcm63xx/image/redbootscript.template
new file mode 100644
index 0000000000000000000000000000000000000000..a007c849cfbd644a4570ea260b0d4133fb55905c
--- /dev/null
+++ b/target/linux/brcm63xx/image/redbootscript.template
@@ -0,0 +1,15 @@
+fis init -f
+
+fconfig boot_script true
+fconfig boot_script_data
+fis load -b %loadaddr -d kernel
+exec -c "noinitrd" %loadaddr
+
+
+fconfig boot_script_timeout 20
+
+fis create -o 0x1000 -f 0xBE430000 -l %kernellen kernel
+
+fis create -o %offset2 -s %rootfsdatalen -f %rootfsaddr -l %rootfslen rootfs
+
+reset