ath79: preliminary support for TP-Link WDR3600 / WDR4300 (AR9344)
[openwrt/openwrt.git] / target / linux / ath79 / image / generic-tp-link.mk
1 DEVICE_VARS += TPLINK_HWID TPLINK_HWREV TPLINK_FLASHLAYOUT TPLINK_HEADER_VERSION TPLINK_BOARD_NAME
2
3 define rootfs_align
4 $(patsubst %-256k,0x40000,$(patsubst %-128k,0x20000,$(patsubst %-64k,0x10000,$(patsubst squashfs%,0x4,$(patsubst root.%,%,$(1))))))
5 endef
6
7 # combine kernel and rootfs into one image
8 # mktplinkfw <type> <optional extra arguments to mktplinkfw binary>
9 # <type> is "sysupgrade" or "factory"
10 #
11 # -a align the rootfs start on an <align> bytes boundary
12 # -j add jffs2 end-of-filesystem markers
13 # -s strip padding from end of the image
14 # -X reserve <size> bytes in the firmware image (hexval prefixed with 0x)
15 define Build/mktplinkfw
16 -$(STAGING_DIR_HOST)/bin/mktplinkfw \
17 -H $(TPLINK_HWID) -W $(TPLINK_HWREV) -F $(TPLINK_FLASHLAYOUT) -N OpenWrt -V $(REVISION) \
18 -m $(TPLINK_HEADER_VERSION) \
19 -k $(IMAGE_KERNEL) \
20 -r $@ \
21 -o $@.new \
22 -j -X 0x40000 \
23 -a $(call rootfs_align,$(FILESYSTEM)) \
24 $(wordlist 2,$(words $(1)),$(1)) \
25 $(if $(findstring sysupgrade,$(word 1,$(1))),-s) && mv $@.new $@ || rm -f $@
26 endef
27
28 # mktplinkfw-combined
29 #
30 # -c combined image
31 define Build/mktplinkfw-combined
32 $(STAGING_DIR_HOST)/bin/mktplinkfw \
33 -H $(TPLINK_HWID) -W $(TPLINK_HWREV) -F $(TPLINK_FLASHLAYOUT) -N OpenWrt -V $(REVISION) $(1) \
34 -m $(TPLINK_HEADER_VERSION) \
35 -k $@ \
36 -o $@.new \
37 -s -S \
38 -c
39 @mv $@.new $@
40 endef
41
42
43 define Device/tplink
44 TPLINK_HWREV := 0x1
45 TPLINK_HEADER_VERSION := 1
46 LOADER_TYPE := gz
47 KERNEL := kernel-bin | append-dtb | lzma
48 KERNEL_INITRAMFS := kernel-bin | append-dtb | lzma | tplink-v1-header
49 IMAGES := sysupgrade.bin factory.bin
50 IMAGE/sysupgrade.bin := append-rootfs | mktplinkfw sysupgrade | append-metadata
51 IMAGE/factory.bin := append-rootfs | mktplinkfw factory
52 endef
53
54 define Device/tplink-nolzma
55 $(Device/tplink)
56 LOADER_FLASH_OFFS := 0x22000
57 COMPILE := loader-$(1).gz
58 COMPILE/loader-$(1).gz := loader-okli-compile
59 KERNEL := kernel-bin | append-dtb | lzma | uImage lzma -M 0x4f4b4c49 | loader-okli $(1)
60 KERNEL_INITRAMFS := kernel-bin | append-dtb | gzip | tplink-v1-header
61 endef
62
63 define Device/tplink-4m
64 $(Device/tplink-nolzma)
65 TPLINK_FLASHLAYOUT := 4M
66 IMAGE_SIZE := 3904k
67 endef
68
69 define Device/tplink-8m
70 $(Device/tplink-nolzma)
71 TPLINK_FLASHLAYOUT := 8M
72 IMAGE_SIZE := 7936k
73 endef
74
75 define Device/tplink-8mlzma
76 $(Device/tplink)
77 TPLINK_FLASHLAYOUT := 8Mlzma
78 IMAGE_SIZE := 7936k
79 endef
80
81 define Device/tl_wr1043nd_v1
82 $(Device/tplink-8m)
83 ATH_SOC := ar9132
84 DEVICE_TITLE := TP-LINK TL-WR1043N/ND v1
85 DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-ledtrig-usbport
86 TPLINK_HWID := 0x10430001
87 SUPPORTED_DEVICES := tplink,tl-wr1043nd-v1 tl-wr1043nd
88 endef
89 #TARGET_DEVICES += tl_wr1043nd_v1
90
91 define Device/tl-wdr3600
92 $(Device/tplink-8mlzma)
93 ATH_SOC := ar9344
94 DEVICE_TITLE := TP-LINK TL-WDR3600
95 DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-ledtrig-usbport
96 TPLINK_HWID := 0x36000001
97 SUPPORTED_DEVICES := tplink,tl-wdr3600 tl-wdr3600
98 endef
99 TARGET_DEVICES += tl-wdr3600
100
101 define Device/tl-wdr4300
102 $(Device/tl-wdr3600)
103 DEVICE_TITLE := TP-LINK TL-WDR4300
104 TPLINK_HWID := 0x43000001
105 SUPPORTED_DEVICES := tplink,tl-wdr4300 tl-wdr4300
106 endef
107 TARGET_DEVICES += tl-wdr4300