diff options
-rw-r--r-- | target/linux/mpc85xx/files/arch/powerpc/boot/dts/tl-wdr4900-v1.dts | 73 | ||||
-rw-r--r-- | target/linux/mpc85xx/generic/config-default | 2 | ||||
-rw-r--r-- | target/linux/mpc85xx/image/Makefile | 39 |
3 files changed, 62 insertions, 52 deletions
diff --git a/target/linux/mpc85xx/files/arch/powerpc/boot/dts/tl-wdr4900-v1.dts b/target/linux/mpc85xx/files/arch/powerpc/boot/dts/tl-wdr4900-v1.dts index c54cab9511..0969b272a8 100644 --- a/target/linux/mpc85xx/files/arch/powerpc/boot/dts/tl-wdr4900-v1.dts +++ b/target/linux/mpc85xx/files/arch/powerpc/boot/dts/tl-wdr4900-v1.dts @@ -35,49 +35,44 @@ spi0: spi@7000 { flash@0 { - #address-cells = <1>; - #size-cells = <1>; compatible = "jedec,spi-nor"; reg = <0>; spi-max-frequency = <25000000>; - u-boot@0 { - reg = <0x0 0x0050000>; - label = "u-boot"; - read-only; - }; - - dtb@50000 { - reg = <0x00050000 0x00010000>; - label = "dtb"; - read-only; - }; - - kernel@60000 { - reg = <0x00060000 0x002a0000>; - label = "kernel"; - }; - - rootfs@300000 { - reg = <0x00300000 0x00ce0000>; - label = "rootfs"; - }; - - config: config@fe0000 { - reg = <0x00fe0000 0x00010000>; - label = "config"; - read-only; - }; - - caldata@ff0000 { - reg = <0x00ff0000 0x00010000>; - label = "caldata"; - read-only; - }; - - firmware@60000 { - reg = <0x00060000 0x00f80000>; - label = "firmware"; + partitions { + compatible = "fixed-partitions"; + #address-cells = <1>; + #size-cells = <1>; + + partition@0 { + reg = <0x0 0x0050000>; + label = "u-boot"; + read-only; + }; + + partition@50000 { + reg = <0x00050000 0x00010000>; + label = "dtb"; + read-only; + }; + + partition@60000 { + compatible = "tplink,firmware"; + reg = <0x00060000 0x00f80000>; + label = "firmware"; + }; + + config: partition@fe0000 { + reg = <0x00fe0000 0x00010000>; + label = "config"; + read-only; + }; + + partition@ff0000 { + reg = <0x00ff0000 0x00010000>; + label = "caldata"; + read-only; + }; }; }; }; diff --git a/target/linux/mpc85xx/generic/config-default b/target/linux/mpc85xx/generic/config-default index 81bf934b33..1e5b257b45 100644 --- a/target/linux/mpc85xx/generic/config-default +++ b/target/linux/mpc85xx/generic/config-default @@ -1 +1,3 @@ +CONFIG_MTD_SPLIT_FIRMWARE=y +CONFIG_MTD_SPLIT_TPLINK_FW=y CONFIG_TL_WDR4900_V1=y diff --git a/target/linux/mpc85xx/image/Makefile b/target/linux/mpc85xx/image/Makefile index 349d2961de..00eed88874 100644 --- a/target/linux/mpc85xx/image/Makefile +++ b/target/linux/mpc85xx/image/Makefile @@ -7,6 +7,30 @@ include $(INCLUDE_DIR)/image.mk DEVICE_VARS += TPLINK_HWID TPLINK_HWREV TPLINK_FLASHLAYOUT +define rootfs_align +$(patsubst %-256k,0x40000,$(patsubst %-128k,0x20000,$(patsubst %-64k,0x10000,$(patsubst squashfs%,0x4,$(patsubst root.%,%,$(1)))))) +endef + +# combine kernel and rootfs into one image +# mktplinkfw <type> <optional extra arguments to mktplinkfw binary> +# <type> is "sysupgrade" or "factory" +# +# -a align the rootfs start on an <align> bytes boundary +# -j add jffs2 end-of-filesystem markers +# -s strip padding from end of the image +# -X reserve <size> bytes in the firmware image (hexval prefixed with 0x) +define Build/mktplinkfw + -$(STAGING_DIR_HOST)/bin/mktplinkfw \ + -H $(TPLINK_HWID) -W $(TPLINK_HWREV) -F $(TPLINK_FLASHLAYOUT) -N OpenWrt -V $(REVISION) \ + -k $(IMAGE_KERNEL) \ + -r $@ \ + -o $@.new \ + -j -X 0x40000 \ + -a $(call rootfs_align,$(FILESYSTEM)) \ + $(wordlist 2,$(words $(1)),$(1)) \ + $(if $(findstring sysupgrade,$(word 1,$(1))),-s) && mv $@.new $@ || rm -f $@ +endef + define Device/Default PROFILES := Default DEVICE_DTS := $(1) @@ -16,17 +40,6 @@ define Device/Default KERNEL := kernel-bin endef -define Build/tplink-v1-image - $(STAGING_DIR_HOST)/bin/mktplinkfw \ - -H $(TPLINK_HWID) -W $(TPLINK_HWREV) -F $(TPLINK_FLASHLAYOUT) \ - -N "$(VERSION_DIST)" -V $(REVISION) \ - -k $(IMAGE_KERNEL) \ - -r $(IMAGE_ROOTFS) \ - -j \ - $(1) \ - -o $@ -endef - ifeq ($(SUBTARGET),generic) define Device/tl-wdr4900-v1 @@ -39,8 +52,8 @@ define Device/tl-wdr4900-v1 SUPPORTED_DEVICES:=tl-wdr4900-v1 tplink,tl-wdr4900-v1 IMAGES := fdt.bin factory.bin sysupgrade.bin IMAGE/fdt.bin := append-dtb - IMAGE/factory.bin := tplink-v1-image - IMAGE/sysupgrade.bin := tplink-v1-image -s | append-metadata + IMAGE/sysupgrade.bin := append-rootfs | mktplinkfw sysupgrade | append-metadata + IMAGE/factory.bin := append-rootfs | mktplinkfw factory endef TARGET_DEVICES += tl-wdr4900-v1 |