X-Git-Url: http://git.openwrt.org/?a=blobdiff_plain;f=target%2Flinux%2Far71xx%2Fimage%2Fgeneric.mk;h=d1e847b8131c2a4f61f5bb654815f45e26d019d8;hb=fce0b5d8938ae900057766679139e6eb8b0f8c54;hp=bd92a8413db8ed6043741c0e17bfd3a9641f7e48;hpb=1cd0a4c688f02918cb96ff7f5f21cddc281d4f2c;p=openwrt%2Fopenwrt.git diff --git a/target/linux/ar71xx/image/generic.mk b/target/linux/ar71xx/image/generic.mk index bd92a8413d..d1e847b813 100644 --- a/target/linux/ar71xx/image/generic.mk +++ b/target/linux/ar71xx/image/generic.mk @@ -106,7 +106,7 @@ define Device/wndr3700 MTDPARTS = spi0.0:320k(u-boot)ro,128k(u-boot-env)ro,7680k(firmware),64k(art)ro IMAGES := sysupgrade.bin factory.img factory-NA.img KERNEL := kernel-bin | patch-cmdline | lzma -d20 | netgear-uImage lzma - IMAGE/default = append-kernel $$$$(BLOCKSIZE) | netgear-squashfs | append-rootfs | pad-rootfs + IMAGE/default = append-kernel | pad-to $$$$(BLOCKSIZE) | netgear-squashfs | append-rootfs | pad-rootfs IMAGE/sysupgrade.bin = $$(IMAGE/default) | check-size $$$$(IMAGE_SIZE) IMAGE/factory.img = $$(IMAGE/default) | netgear-dni | check-size $$$$(IMAGE_SIZE) IMAGE/factory-NA.img = $$(IMAGE/default) | netgear-dni NA | check-size $$$$(IMAGE_SIZE) @@ -156,7 +156,7 @@ define Device/cap324 BOARDNAME := CAP324 DEVICE_PROFILE := CAP324 IMAGE_SIZE = 15296k - MTDPARTS = spi0.0:256k(u-boot),64k(u-boot-env)ro,15296k(firmware),640k(certs),64k(nvram),64k(art) + MTDPARTS = spi0.0:256k(u-boot)ro,64k(u-boot-env)ro,15296k(firmware),640k(certs),64k(nvram),64k(art)ro endef TARGET_DEVICES += cap324 @@ -167,7 +167,7 @@ define Device/cap324-nocloud BOARDNAME := CAP324 DEVICE_PROFILE := CAP324 IMAGE_SIZE = 16000k - MTDPARTS = spi0.0:256k(u-boot),64k(u-boot-env)ro,16000k(firmware),64k(art) + MTDPARTS = spi0.0:256k(u-boot)ro,64k(u-boot-env)ro,16000k(firmware),64k(art)ro endef TARGET_DEVICES += cap324-nocloud @@ -178,7 +178,7 @@ define Device/cr3000 BOARDNAME := CR3000 DEVICE_PROFILE := CR3000 IMAGE_SIZE = 7104k - MTDPARTS = spi0.0:256k(u-boot),64k(u-boot-env)ro,7104k(firmware),640k(certs),64k(nvram),64k(art) + MTDPARTS = spi0.0:256k(u-boot)ro,64k(u-boot-env)ro,7104k(firmware),640k(certs),64k(nvram),64k(art)ro endef TARGET_DEVICES += cr3000 @@ -189,7 +189,7 @@ define Device/cr3000-nocloud BOARDNAME := CR3000 DEVICE_PROFILE := CR3000 IMAGE_SIZE = 7808k - MTDPARTS = spi0.0:256k(u-boot),64k(u-boot-env)ro,7808k(firmware),64k(art) + MTDPARTS = spi0.0:256k(u-boot)ro,64k(u-boot-env)ro,7808k(firmware),64k(art)ro endef TARGET_DEVICES += cr3000-nocloud @@ -200,7 +200,7 @@ define Device/cr5000 BOARDNAME := CR5000 DEVICE_PROFILE := CR5000 IMAGE_SIZE = 7104k - MTDPARTS = spi0.0:256k(u-boot),64k(u-boot-env)ro,7104k(firmware),640k(certs),64k(nvram),64k(art) + MTDPARTS = spi0.0:256k(u-boot)ro,64k(u-boot-env)ro,7104k(firmware),640k(certs),64k(nvram),64k(art)ro endef TARGET_DEVICES += cr5000 @@ -211,7 +211,7 @@ define Device/cr5000-nocloud BOARDNAME := CR5000 DEVICE_PROFILE := CR5000 IMAGE_SIZE = 7808k - MTDPARTS = spi0.0:256k(u-boot),64k(u-boot-env)ro,7808k(firmware),64k(art) + MTDPARTS = spi0.0:256k(u-boot)ro,64k(u-boot-env)ro,7808k(firmware),64k(art)ro endef TARGET_DEVICES += cr5000-nocloud @@ -410,7 +410,7 @@ define Device/NBG6616 CMDLINE += mem=128M IMAGES := sysupgrade.bin KERNEL := kernel-bin | patch-cmdline | lzma | uImage lzma | jffs2 boot/vmlinux.lzma.uImage - IMAGE/sysupgrade.bin = append-kernel $$$$(KERNEL_SIZE) | append-rootfs | pad-rootfs | check-size $$$$(IMAGE_SIZE) + IMAGE/sysupgrade.bin = append-kernel | pad-to $$$$(KERNEL_SIZE) | append-rootfs | pad-rootfs | check-size $$$$(IMAGE_SIZE) # We cannot currently build a factory image. It is the sysupgrade image # prefixed with a header (which is actually written into the MTD device). # The header is 2kiB and is filled with 0xff. The format seems to be: @@ -443,7 +443,7 @@ define Device/c-55 KERNEL_SIZE = 2048k IMAGE_SIZE = 15872k MTDPARTS = spi0.0:256k(u-boot)ro,128k(u-boot-env)ro,2048k(kernel),13824k(rootfs),13824k(opt)ro,2624k(failsafe)ro,64k(art)ro,15872k@0x60000(firmware) - IMAGE/sysupgrade.bin = append-kernel $$$$(KERNEL_SIZE) | append-rootfs | pad-rootfs | check-size $$$$(IMAGE_SIZE) + IMAGE/sysupgrade.bin = append-kernel | pad-to $$$$(KERNEL_SIZE) | append-rootfs | pad-rootfs | check-size $$$$(IMAGE_SIZE) endef TARGET_DEVICES += c-55 @@ -472,51 +472,35 @@ endef TARGET_DEVICES += hiwifi-hc6361 -# The pre-filled 64 bytes consist of -# - 28 bytes seama_header -# - 36 bytes of META data (4-bytes aligned) -define Build/seama-factory - ( dd if=/dev/zero bs=64 count=1; cat $(IMAGE_KERNEL) ) >$@.loader.tmp - ( dd if=$@.loader.tmp bs=64k conv=sync; dd if=$(IMAGE_ROOTFS) ) >$@.tmp.0 - tail -c +65 $@.tmp.0 >$@.tmp.1 - $(STAGING_DIR_HOST)/bin/seama \ - -i $@.tmp.1 \ - -m "dev=/dev/mtdblock/1" -m "type=firmware" - $(STAGING_DIR_HOST)/bin/seama \ - -s $@ \ - -m "signature=$(1)" \ - -i $@.tmp.1.seama - rm -f $@.loader.tmp $@.tmp.* -endef - -define Build/seama-sysupgrade - $(STAGING_DIR_HOST)/bin/seama \ - -i $(IMAGE_KERNEL) \ - -m "dev=/dev/mtdblock/1" -m "type=firmware" - ( dd if=$(IMAGE_KERNEL).seama bs=64k conv=sync; dd if=$(IMAGE_ROOTFS) ) >$@ - rm -f $(IMAGE_KERNEL).seama -endef - -define Build/seama-initramfs - $(STAGING_DIR_HOST)/bin/seama \ - -i $@ \ - -m "dev=/dev/mtdblock/1" -m "type=firmware" +define Build/seama + $(STAGING_DIR_HOST)/bin/seama -i $@ $(if $(1),$(1),-m "dev=/dev/mtdblock/1" -m "type=firmware") mv $@.seama $@ endef -define Build/seama-pad-rootfs - $(STAGING_DIR_HOST)/bin/padjffs2 $(IMAGE_ROOTFS) -c 64 >>$@ +define Build/seama-seal + $(call Build/seama,-s $@.seama $(1)) endef define Device/seama CONSOLE := ttyS0,115200 LOADER_TYPE := bin + BLOCKSIZE := 64k KERNEL := kernel-bin | lzma | loader-kernel-cmdline | lzma - KERNEL_INITRAMFS := kernel-bin | patch-cmdline | lzma | seama-initramfs + KERNEL_INITRAMFS := kernel-bin | patch-cmdline | lzma | seama KERNEL_INITRAMFS_SUFFIX = $$(KERNEL_SUFFIX).seama IMAGES := sysupgrade.bin factory.bin - IMAGE/sysupgrade.bin := seama-sysupgrade $$$$(SEAMA_SIGNATURE) | seama-pad-rootfs | check-size $$$$(IMAGE_SIZE) - IMAGE/factory.bin := seama-factory $$$$(SEAMA_SIGNATURE) | seama-pad-rootfs | check-size $$$$(IMAGE_SIZE) + + # 64 bytes offset: + # - 28 bytes seama_header + # - 36 bytes of META data (4-bytes aligned) + IMAGE/default := append-kernel | pad-offset $$$$(BLOCKSIZE) 64 | append-rootfs + IMAGE/sysupgrade.bin := \ + $$(IMAGE/default) | seama | pad-rootfs | \ + check-size $$$$(IMAGE_SIZE) + IMAGE/factory.bin := \ + $$(IMAGE/default) | seama | pad-rootfs | \ + seama-seal -m "signature=$$$$(SEAMA_SIGNATURE)" | \ + check-size $$$$(IMAGE_SIZE) SEAMA_SIGNATURE := DEVICE_VARS += SEAMA_SIGNATURE endef