summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGabor Juhos <juhosg@openwrt.org>2013-09-25 19:32:34 +0000
committerGabor Juhos <juhosg@openwrt.org>2013-09-25 19:32:34 +0000
commit942e69b1663cf74a172df4f5e370d59d0798c081 (patch)
tree7f13ba0e858a0bb18b03d9e71710f9e9f2a910d1
parent11e4e6ebfbc536b06cb3ff6a63c2962026df36dc (diff)
downloadmaster-31e0f0ae-942e69b1663cf74a172df4f5e370d59d0798c081.tar.gz
master-31e0f0ae-942e69b1663cf74a172df4f5e370d59d0798c081.tar.bz2
master-31e0f0ae-942e69b1663cf74a172df4f5e370d59d0798c081.zip
avr32: optimize image generation
- remove the kernel+rootfs partitions from the MTD partition map, - use a temporary directory for intermediate image files, - append the root squashfs directly to the kernel, - don't hardcode uImage size in the jffs2 images, Signed-off-by: Gabor Juhos <juhosg@openwrt.org> SVN-Revision: 38194
-rw-r--r--target/linux/avr32/image/Makefile14
-rw-r--r--target/linux/avr32/patches-3.10/110-openwrt_flashmap.patch26
2 files changed, 12 insertions, 28 deletions
diff --git a/target/linux/avr32/image/Makefile b/target/linux/avr32/image/Makefile
index ad53572dba..99761c6da5 100644
--- a/target/linux/avr32/image/Makefile
+++ b/target/linux/avr32/image/Makefile
@@ -7,6 +7,8 @@
include $(TOPDIR)/rules.mk
include $(INCLUDE_DIR)/image.mk
+KDIR_TMP:=$(KDIR)/tmp
+
ifneq ($(CONFIG_AVR32_UBOOT),)
define Build/Clean
$(MAKE) -C u-boot clean
@@ -18,6 +20,7 @@ ifneq ($(CONFIG_AVR32_UBOOT),)
endif
define Image/BuildKernel
+ -mkdir -p $(KDIR_TMP)
cp $(KDIR)/uImage $(BIN_DIR)/$(IMG_PREFIX)-uImage
$(STAGING_DIR_HOST)/bin/lzma e $(LINUX_DIR)/arch/avr32/boot/images/vmlinux.bin $(KDIR)/vmlinux.lzma
@@ -34,16 +37,17 @@ define Image/Build
endef
define Image/Build/squashfs
- $(call prepare_generic_squashfs,$(KDIR)/root.squashfs)
( \
- dd if=$(KDIR)/uImage-lzma bs=1024k conv=sync; \
- dd if=$(KDIR)/root.$(1) bs=64k conv=sync; \
- ) > $(BIN_DIR)/$(IMG_PREFIX)-$(1).img
+ cat $(KDIR)/uImage-lzma; \
+ cat $(KDIR)/root.squashfs; \
+ ) > $(KDIR_TMP)/avr32-squahsfs.img
+ padjffs2 $(KDIR_TMP)/avr32-squahsfs.img 64
+ dd if=$(KDIR_TMP)/avr32-squahsfs.img of=$(BIN_DIR)/$(IMG_PREFIX)-$(1).img bs=64k conv=sync
endef
define Image/Build/jffs2-64k
( \
- dd if=$(KDIR)/uImage-lzma bs=1024k conv=sync; \
+ dd if=$(KDIR)/uImage-lzma bs=64k conv=sync; \
dd if=$(KDIR)/root.$(1) bs=64k conv=sync; \
) > $(BIN_DIR)/$(IMG_PREFIX)-$(1).img
endef
diff --git a/target/linux/avr32/patches-3.10/110-openwrt_flashmap.patch b/target/linux/avr32/patches-3.10/110-openwrt_flashmap.patch
index 3f87699b04..876eb71c49 100644
--- a/target/linux/avr32/patches-3.10/110-openwrt_flashmap.patch
+++ b/target/linux/avr32/patches-3.10/110-openwrt_flashmap.patch
@@ -1,31 +1,11 @@
--- a/arch/avr32/boards/atngw100/flash.c
+++ b/arch/avr32/boards/atngw100/flash.c
-@@ -45,9 +45,14 @@ static struct mtd_partition flash_parts[
+@@ -45,7 +45,7 @@ static struct mtd_partition flash_parts[
.mask_flags = MTD_WRITEABLE,
},
{
- .name = "root",
-+ .name = "kernel",
++ .name = "firmware",
.offset = 0x00020000,
-- .size = 0x007d0000,
-+ .size = 0x00100000,
-+ },
-+ {
-+ .name = "rootfs",
-+ .offset = 0x00120000,
-+ .size = 0x006d0000,
+ .size = 0x007d0000,
},
- {
- .name = "env",
-@@ -55,6 +60,11 @@ static struct mtd_partition flash_parts[
- .size = 0x00010000,
- .mask_flags = MTD_WRITEABLE,
- },
-+ {
-+ .name = "firmware",
-+ .offset = 0x00020000,
-+ .size = 0x007d0000,
-+ },
- };
-
- static struct physmap_flash_data flash_data = {