Преглед изворни кода

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 <[email protected]>

SVN-Revision: 38194
Gabor Juhos пре 12 година
родитељ
комит
942e69b166

+ 9 - 5
target/linux/avr32/image/Makefile

@@ -7,6 +7,8 @@
 include $(TOPDIR)/rules.mk
 include $(TOPDIR)/rules.mk
 include $(INCLUDE_DIR)/image.mk
 include $(INCLUDE_DIR)/image.mk
 
 
+KDIR_TMP:=$(KDIR)/tmp
+
 ifneq ($(CONFIG_AVR32_UBOOT),)
 ifneq ($(CONFIG_AVR32_UBOOT),)
   define Build/Clean
   define Build/Clean
 	$(MAKE) -C u-boot clean
 	$(MAKE) -C u-boot clean
@@ -18,6 +20,7 @@ ifneq ($(CONFIG_AVR32_UBOOT),)
 endif
 endif
 
 
 define Image/BuildKernel
 define Image/BuildKernel
+	-mkdir -p $(KDIR_TMP)
 	cp $(KDIR)/uImage $(BIN_DIR)/$(IMG_PREFIX)-uImage
 	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
 	$(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
 endef
 
 
 define Image/Build/squashfs
 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
 endef
 
 
 define Image/Build/jffs2-64k
 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; \
 		dd if=$(KDIR)/root.$(1) bs=64k conv=sync; \
 	) > $(BIN_DIR)/$(IMG_PREFIX)-$(1).img
 	) > $(BIN_DIR)/$(IMG_PREFIX)-$(1).img
 endef
 endef

+ 3 - 23
target/linux/avr32/patches-3.10/110-openwrt_flashmap.patch

@@ -1,31 +1,11 @@
 --- a/arch/avr32/boards/atngw100/flash.c
 --- a/arch/avr32/boards/atngw100/flash.c
 +++ b/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,
  		.mask_flags     = MTD_WRITEABLE,
  	},
  	},
  	{
  	{
 -		.name           = "root",
 -		.name           = "root",
-+		.name           = "kernel",
++		.name           = "firmware",
  		.offset         = 0x00020000,
  		.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 = {