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>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@38194 3c298f89-4303-0410-b956-a3cf2f4a3e73
master
Gabor Juhos 2013-09-25 19:32:34 +00:00
parent 25e1112c6d
commit 2a58f6b40b
2 changed files with 13 additions and 29 deletions

View File

@ -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

View File

@ -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",
.offset = 0x00020000,
- .size = 0x007d0000,
+ .size = 0x00100000,
+ },
+ {
+ .name = "rootfs",
+ .offset = 0x00120000,
+ .size = 0x006d0000,
},
{
.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 = {
.offset = 0x00020000,
.size = 0x007d0000,
},