ath79/nand: add support for Netgear WNDR4300SW
[oweals/openwrt.git] / target / linux / ath79 / image / nand.mk
1 include ./common-netgear.mk     # for netgear-uImage
2
3 DEVICE_VARS += RAS_ROOTFS_SIZE RAS_BOARD RAS_VERSION
4
5 # attention: only zlib compression is allowed for the boot fs
6 define Build/zyxel-buildkerneljffs
7         rm -rf  $(KDIR_TMP)/zyxelnbg6716
8         mkdir -p $(KDIR_TMP)/zyxelnbg6716/image/boot
9         cp $@ $(KDIR_TMP)/zyxelnbg6716/image/boot/vmlinux.lzma.uImage
10         $(STAGING_DIR_HOST)/bin/mkfs.jffs2 \
11                 --big-endian --squash-uids -v -e 128KiB -q -f -n -x lzma -x rtime \
12                 -o $@ \
13                 -d $(KDIR_TMP)/zyxelnbg6716/image
14         rm -rf $(KDIR_TMP)/zyxelnbg6716
15 endef
16
17 define Build/zyxel-factory
18         let \
19                 maxsize="$(subst k,* 1024,$(RAS_ROOTFS_SIZE))"; \
20                 let size="$$(stat -c%s $@)"; \
21                 if [ $$size -lt $$maxsize ]; then \
22                         $(STAGING_DIR_HOST)/bin/mkrasimage \
23                                 -b $(RAS_BOARD) \
24                                 -v $(RAS_VERSION) \
25                                 -r $@ \
26                                 -s $$maxsize \
27                                 -o $@.new \
28                                 -l 131072 \
29                         && mv $@.new $@ ; \
30                 fi
31 endef
32
33 define Device/aerohive_hiveap-121
34   SOC := ar9344
35   DEVICE_VENDOR := Aerohive
36   DEVICE_MODEL := HiveAP 121
37   DEVICE_PACKAGES := kmod-usb2
38   BLOCKSIZE := 128k
39   PAGESIZE := 2048
40   IMAGE_SIZE := 116m
41   KERNEL_SIZE := 5120k
42   UBINIZE_OPTS := -E 5
43   SUPPORTED_DEVICES += hiveap-121
44   IMAGES += factory.bin
45   IMAGE/factory.bin := append-kernel | pad-to $$$$(KERNEL_SIZE) | append-ubi | \
46         check-size
47   IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
48 endef
49 TARGET_DEVICES += aerohive_hiveap-121
50
51 define Device/domywifi_dw33d
52   SOC := qca9558
53   DEVICE_VENDOR := DomyWifi
54   DEVICE_MODEL := DW33D
55   DEVICE_PACKAGES := kmod-usb2 kmod-usb-storage kmod-usb-ledtrig-usbport \
56         kmod-ath10k-ct ath10k-firmware-qca988x-ct
57   KERNEL_SIZE := 5120k
58   IMAGE_SIZE := 98304k
59   BLOCKSIZE := 128k
60   PAGESIZE := 2048
61   UBINIZE_OPTS := -E 5
62   IMAGES += factory.bin
63   IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
64   IMAGE/factory.bin := append-kernel | pad-to $$$$(KERNEL_SIZE) | append-ubi | \
65         check-size
66 endef
67 TARGET_DEVICES += domywifi_dw33d
68
69 define Device/glinet_gl-ar300m-common-nand
70   SOC := qca9531
71   DEVICE_VENDOR := GL.iNet
72   DEVICE_MODEL := GL-AR300M
73   DEVICE_PACKAGES := kmod-usb2
74   KERNEL_SIZE := 4096k
75   IMAGE_SIZE := 16000k
76   PAGESIZE := 2048
77   VID_HDR_OFFSET := 2048
78 endef
79
80 define Device/glinet_gl-ar300m-nand
81   $(Device/glinet_gl-ar300m-common-nand)
82   DEVICE_VARIANT := NAND
83   BLOCKSIZE := 128k
84   IMAGES += factory.img
85   IMAGE/factory.img := append-kernel | pad-to $$$$(KERNEL_SIZE) | append-ubi
86   IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
87   SUPPORTED_DEVICES += glinet,gl-ar300m-nor
88 endef
89 TARGET_DEVICES += glinet_gl-ar300m-nand
90
91 define Device/glinet_gl-ar300m-nor
92   $(Device/glinet_gl-ar300m-common-nand)
93   DEVICE_VARIANT := NOR
94   BLOCKSIZE := 64k
95   SUPPORTED_DEVICES += glinet,gl-ar300m-nand gl-ar300m
96 endef
97 TARGET_DEVICES += glinet_gl-ar300m-nor
98
99 define Device/glinet_gl-ar750s-common
100   SOC := qca9563
101   DEVICE_VENDOR := GL.iNet
102   DEVICE_MODEL := GL-AR750S
103   DEVICE_PACKAGES := kmod-ath10k-ct ath10k-firmware-qca9887-ct kmod-usb2 \
104         kmod-usb-storage block-mount
105   KERNEL_SIZE := 2048k
106   IMAGE_SIZE := 16000k
107   PAGESIZE := 2048
108   VID_HDR_OFFSET := 2048
109 endef
110
111 # NB: The kernel size is intentionally restricted at this time; see commit message
112 define Device/glinet_gl-ar750s-nor-nand
113   $(Device/glinet_gl-ar750s-common)
114   DEVICE_VARIANT := NOR/NAND
115   BLOCKSIZE := 128k
116   GL_UBOOT_UBI_OFFSET := 2048k
117   IMAGES += factory.img
118   IMAGE/factory.img := append-kernel | pad-to $$$$(GL_UBOOT_UBI_OFFSET) | \
119         append-ubi | check-kernel-size $$$$(GL_UBOOT_UBI_OFFSET)
120   IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
121   SUPPORTED_DEVICES += glinet,gl-ar750s-nor
122 endef
123 TARGET_DEVICES += glinet_gl-ar750s-nor-nand
124
125 define Device/glinet_gl-ar750s-nor
126   $(Device/glinet_gl-ar750s-common)
127   DEVICE_VARIANT := NOR
128   BLOCKSIZE := 64k
129   SUPPORTED_DEVICES += gl-ar750s glinet,gl-ar750s glinet,gl-ar750s-nor-nand
130 endef
131 TARGET_DEVICES += glinet_gl-ar750s-nor
132
133 # fake rootfs is mandatory, pad-offset 129 equals (2 * uimage_header + 0xff)
134 define Device/netgear_ath79_nand
135   DEVICE_VENDOR := NETGEAR
136   DEVICE_PACKAGES := kmod-usb2 kmod-usb-ledtrig-usbport
137   KERNEL_SIZE := 4096k
138   BLOCKSIZE := 128k
139   PAGESIZE := 2048
140   IMAGE_SIZE := 25600k
141   KERNEL := kernel-bin | append-dtb | lzma -d20 | \
142         pad-offset $$(KERNEL_SIZE) 129 | netgear-uImage lzma | \
143         append-string -e '\xff' | \
144         append-uImage-fakehdr filesystem $$(NETGEAR_KERNEL_MAGIC)
145   KERNEL_INITRAMFS := kernel-bin | append-dtb | lzma -d20 | netgear-uImage lzma
146   IMAGES := sysupgrade.bin factory.img
147   IMAGE/factory.img := append-kernel | append-ubi | netgear-dni | \
148         check-size
149   IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata | \
150         check-size
151   UBINIZE_OPTS := -E 5
152 endef
153
154 define Device/netgear_wndr3700-v4
155   SOC := ar9344
156   DEVICE_MODEL := WNDR3700
157   DEVICE_VARIANT := v4
158   NETGEAR_KERNEL_MAGIC := 0x33373033
159   NETGEAR_BOARD_ID := WNDR3700v4
160   NETGEAR_HW_ID := 29763948+128+128
161   $(Device/netgear_ath79_nand)
162 endef
163 TARGET_DEVICES += netgear_wndr3700-v4
164
165 define Device/netgear_wndr4300
166   SOC := ar9344
167   DEVICE_MODEL := WNDR4300
168   NETGEAR_KERNEL_MAGIC := 0x33373033
169   NETGEAR_BOARD_ID := WNDR4300
170   NETGEAR_HW_ID := 29763948+0+128+128+2x2+3x3
171   $(Device/netgear_ath79_nand)
172 endef
173 TARGET_DEVICES += netgear_wndr4300
174
175 define Device/netgear_wndr4300sw
176   SOC := ar9344
177   DEVICE_MODEL := WNDR4300SW
178   NETGEAR_KERNEL_MAGIC := 0x33373033
179   NETGEAR_BOARD_ID := WNDR4300SW
180   NETGEAR_HW_ID := 29763948+0+128+128+2x2+3x3
181   $(Device/netgear_ath79_nand)
182 endef
183 TARGET_DEVICES += netgear_wndr4300sw
184
185 define Device/netgear_wndr4300-v2
186   SOC := qca9563
187   DEVICE_MODEL := WNDR4300
188   DEVICE_VARIANT := v2
189   NETGEAR_KERNEL_MAGIC := 0x27051956
190   NETGEAR_BOARD_ID := WNDR4500series
191   NETGEAR_HW_ID := 29764821+2+128+128+3x3+3x3+5508012175
192   $(Device/netgear_ath79_nand)
193 endef
194 TARGET_DEVICES += netgear_wndr4300-v2
195
196 define Device/netgear_wndr4500-v3
197   SOC := qca9563
198   DEVICE_MODEL := WNDR4500
199   DEVICE_VARIANT := v3
200   NETGEAR_KERNEL_MAGIC := 0x27051956
201   NETGEAR_BOARD_ID := WNDR4500series
202   NETGEAR_HW_ID := 29764821+2+128+128+3x3+3x3+5508012173
203   $(Device/netgear_ath79_nand)
204 endef
205 TARGET_DEVICES += netgear_wndr4500-v3
206
207 define Device/zyxel_nbg6716
208   SOC := qca9558
209   DEVICE_VENDOR := ZyXEL
210   DEVICE_MODEL := NBG6716
211   DEVICE_PACKAGES := kmod-usb2 kmod-usb-ledtrig-usbport kmod-ath10k-ct \
212         ath10k-firmware-qca988x-ct
213   RAS_BOARD := NBG6716
214   RAS_ROOTFS_SIZE := 29696k
215   RAS_VERSION := "OpenWrt Linux-$(LINUX_VERSION)"
216   KERNEL_SIZE := 4096k
217   BLOCKSIZE := 128k
218   PAGESIZE := 2048
219   KERNEL := kernel-bin | append-dtb | uImage none | zyxel-buildkerneljffs | \
220         check-size 4096k
221   IMAGES := sysupgrade.tar sysupgrade-4M-Kernel.bin factory.bin
222   IMAGE/sysupgrade.tar/squashfs := append-rootfs | pad-to $$$$(BLOCKSIZE) | \
223         sysupgrade-tar rootfs=$$$$@ | append-metadata
224   IMAGE/sysupgrade-4M-Kernel.bin/squashfs := append-kernel | \
225         pad-to $$$$(KERNEL_SIZE) | append-ubi | pad-to 263192576 | gzip
226   IMAGE/factory.bin := append-kernel | pad-to $$$$(KERNEL_SIZE) | append-ubi | \
227         zyxel-factory
228   UBINIZE_OPTS := -E 5
229 endef
230 TARGET_DEVICES += zyxel_nbg6716