2 # This is free software, licensed under the GNU General Public License v2.
3 # See /LICENSE for more information.
5 include $(TOPDIR
)/rules.mk
6 include $(INCLUDE_DIR
)/image.mk
8 DEVICE_VARS
+= TPLINK_HWID TPLINK_HWREV TPLINK_FLASHLAYOUT
11 $(patsubst %-256k
,0x40000,$(patsubst %-128k
,0x20000,$(patsubst %-64k
,0x10000,$(patsubst squashfs
%,0x4,$(patsubst root.
%,%,$(1))))))
14 define Build
/copy-file
18 # combine kernel and rootfs into one image
19 # mktplinkfw <type> <optional extra arguments to mktplinkfw binary>
20 # <type> is "sysupgrade" or "factory"
22 # -a align the rootfs start on an <align> bytes boundary
23 # -j add jffs2 end-of-filesystem markers
24 # -s strip padding from end of the image
25 # -X reserve <size> bytes in the firmware image (hexval prefixed with 0x)
26 define Build
/mktplinkfw
27 -$(STAGING_DIR_HOST
)/bin
/mktplinkfw \
28 -H
$(TPLINK_HWID
) -W
$(TPLINK_HWREV
) -F
$(TPLINK_FLASHLAYOUT
) -N OpenWrt
-V
$(REVISION
) \
33 -a
$(call rootfs_align
,$(FILESYSTEM
)) \
34 $(wordlist
2,$(words $(1)),$(1)) \
35 $(if
$(findstring sysupgrade
,$(word 1,$(1))),-s
) && mv
$@.new
$@ ||
rm -f
$@
41 KERNEL_DEPENDS
= $$(wildcard $(DTS_DIR
)/$$(DEVICE_DTS
).dts
)
42 KERNEL_ENTRY
:= 0x00000000
43 KERNEL_LOADADDR
:= 0x00000000
47 ifeq ($(SUBTARGET
),generic
)
49 define Device
/tl-wdr4900-v1
50 DEVICE_VENDOR
:= TP-Link
51 DEVICE_MODEL
:= TL-WDR4900
53 TPLINK_HWID
:= 0x49000001
55 TPLINK_FLASHLAYOUT
:= 16Mppc
57 KERNEL_NAME
:= simpleImage.tl-wdr4900-v1
59 KERNEL
:= kernel-bin | uImage none
60 KERNEL_ENTRY
:= 0x1000000
61 KERNEL_LOADADDR
:= 0x1000000
62 SUPPORTED_DEVICES
:=tl-wdr4900-v1 tplink
,tl-wdr4900-v1
64 ARTIFACT
/fdt.bin
:= append-dtb
65 IMAGES
:= fdt.bin factory.bin sysupgrade.bin
66 IMAGE
/sysupgrade.bin
:= append-rootfs | mktplinkfw sysupgrade | append-metadata
67 IMAGE
/factory.bin
:= append-rootfs | mktplinkfw factory
69 TARGET_DEVICES
+= tl-wdr4900-v1
71 define Device
/red-15w-rev1
72 DEVICE_VENDOR
:= Sophos
73 DEVICE_MODEL
:= RED
15w
74 DEVICE_VARIANT
:= Rev
.1
75 # Original firmware uses a dedicated DTB-partition.
76 # The bootloader however supports FIT-images.
77 KERNEL
= kernel-bin | gzip | fit gzip
$(KDIR
)/image-
$$(DEVICE_DTS
).dtb
78 SUPPORTED_DEVICES
:= sophos
,red-15w-rev1
79 IMAGES
:= sysupgrade.bin
80 IMAGE
/sysupgrade.bin
:= sysupgrade-tar | append-metadata
82 TARGET_DEVICES
+= red-15w-rev1
86 ifeq ($(SUBTARGET
),p1020
)
88 define Device
/hiveap-330
89 DEVICE_VENDOR
:= Aerohive
90 DEVICE_MODEL
:= HiveAP-330
91 DEVICE_PACKAGES
:= kmod-tpm-i2c-atmel
93 KERNEL
:= kernel-bin | gzip | uImage gzip
95 KERNEL_INITRAMFS
:= copy-file
$(KDIR
)/vmlinux-initramfs | uImage none
96 SUPPORTED_DEVICES
:= aerohive
,hiveap-330
97 IMAGES
:= fdt.bin sysupgrade.bin
98 IMAGE
/fdt.bin
:= append-dtb
99 IMAGE
/sysupgrade.bin
:= append-dtb | pad-to
256k | check-size
256k | \
100 append-uImage-fakehdr ramdisk | pad-to
256k | check-size
512k | \
101 append-rootfs | pad-rootfs
$$(BLOCKSIZE
) | pad-to
41216k | check-size
41216k | \
102 append-kernel | append-metadata
104 TARGET_DEVICES
+= hiveap-330
107 DEVICE_VENDOR
:= OCEDO
108 DEVICE_MODEL
:= Panda
109 DEVICE_PACKAGES
:= kmod-rtc-ds1307 uboot-envtools
110 KERNEL
= kernel-bin | gzip | fit gzip
$(KDIR
)/image-
$$(DEVICE_DTS
).dtb
114 SUPPORTED_DEVICES
:= ocedo
,panda
115 IMAGES
:= fdt.bin sysupgrade.bin
116 IMAGE
/sysupgrade.bin
:= sysupgrade-tar | append-metadata
117 IMAGE
/fdt.bin
:= append-dtb
119 TARGET_DEVICES
+= panda
123 ifeq ($(SUBTARGET
),p2020
)
125 define Device
/p2020rdb
126 DEVICE_VENDOR
:= Freescale
127 DEVICE_MODEL
:= P2020RDB
128 DEVICE_DTS_DIR
:= $(DTS_DIR
)/fsl
129 DEVICE_PACKAGES
:= kmod-hwmon-core kmod-hwmon-lm90 kmod-rtc-ds1307 \
130 kmod-gpio-pca953x kmod-eeprom-at24
132 KERNEL
:= kernel-bin | gzip | \
133 fit gzip
$$(KDIR
)/image-
$$(firstword $$(DEVICE_DTS
)).dtb
134 SUPPORTED_DEVICES
:= fsl
,P2020RDB
135 IMAGES
:= sysupgrade.bin
136 IMAGE
/sysupgrade.bin
:= append-kernel | append-rootfs | \
137 pad-rootfs
$$(BLOCKSIZE
) | append-metadata
139 TARGET_DEVICES
+= p2020rdb
143 $(eval
$(call BuildImage
))