Makefile 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411
  1. # Copyright (c) 2014 The Linux Foundation. All rights reserved.
  2. #
  3. include $(TOPDIR)/rules.mk
  4. include $(INCLUDE_DIR)/image.mk
  5. DEVICE_VARS += NETGEAR_BOARD_ID NETGEAR_HW_ID
  6. DEVICE_VARS += TPLINK_BOARD_ID
  7. define Build/buffalo-rootfs-cksum
  8. ( \
  9. echo -ne "\x$$(od -A n -t u1 $@ | tr -s ' ' '\n' | \
  10. $(STAGING_DIR_HOST)/bin/awk '{s+=$$0}END{printf "%x", 255-s%256}')"; \
  11. ) >> $@
  12. endef
  13. define Build/edimax-header
  14. $(eval edimax_model=$(word 1,$(1)))
  15. $(STAGING_DIR_HOST)/bin/mkedimaximg \
  16. -b -s CSYS -m $(edimax_model) \
  17. -f 0x70000 -S 0x1200000 \
  18. -i $@ -o [email protected]
  19. @mv [email protected] $@
  20. endef
  21. define Device/Default
  22. PROFILES := Default
  23. KERNEL_DEPENDS = $$(wildcard $(DTS_DIR)/$$(DEVICE_DTS).dts)
  24. KERNEL_LOADADDR = 0x42208000
  25. DEVICE_DTS = $$(SOC)-$(lastword $(subst _, ,$(1)))
  26. DEVICE_DTS_CONFIG := config@1
  27. IMAGES := sysupgrade.bin
  28. IMAGE/sysupgrade.bin = sysupgrade-tar | append-metadata
  29. IMAGE/sysupgrade.bin/squashfs :=
  30. endef
  31. define Device/LegacyImage
  32. KERNEL_SUFFIX := -uImage
  33. KERNEL = kernel-bin | append-dtb | uImage none
  34. KERNEL_NAME := zImage
  35. endef
  36. define Device/FitImage
  37. KERNEL_SUFFIX := -fit-uImage.itb
  38. KERNEL = kernel-bin | gzip | fit gzip $$(DTS_DIR)/$$(DEVICE_DTS).dtb
  39. KERNEL_NAME := Image
  40. endef
  41. define Device/FitImageLzma
  42. KERNEL_SUFFIX := -fit-uImage.itb
  43. KERNEL = kernel-bin | lzma | fit lzma $$(DTS_DIR)/$$(DEVICE_DTS).dtb
  44. KERNEL_NAME := Image
  45. endef
  46. define Device/UbiFit
  47. KERNEL_IN_UBI := 1
  48. IMAGES := nand-factory.bin nand-sysupgrade.bin
  49. IMAGE/nand-factory.bin := append-ubi
  50. IMAGE/nand-sysupgrade.bin := sysupgrade-tar | append-metadata
  51. endef
  52. define Device/DniImage
  53. KERNEL_SUFFIX := -uImage
  54. KERNEL = kernel-bin | append-dtb | uImage none
  55. KERNEL_NAME := zImage
  56. NETGEAR_BOARD_ID :=
  57. NETGEAR_HW_ID :=
  58. UBINIZE_OPTS := -E 5
  59. IMAGES += factory.img
  60. IMAGE/factory.img := append-kernel | pad-offset $$$$(BLOCKSIZE) 64 | append-uImage-fakehdr filesystem | pad-to $$$$(KERNEL_SIZE) | append-ubi | netgear-dni
  61. IMAGE/sysupgrade.bin := append-kernel | pad-offset $$$$(BLOCKSIZE) 64 | append-uImage-fakehdr filesystem | sysupgrade-tar kernel=$$$$@ | append-metadata
  62. endef
  63. define Device/TpSafeImage
  64. KERNEL_SUFFIX := -uImage
  65. KERNEL = kernel-bin | append-dtb | uImage none
  66. KERNEL_NAME := zImage
  67. TPLINK_BOARD_ID :=
  68. IMAGES += factory.bin
  69. IMAGE/factory.bin := append-rootfs | tplink-safeloader factory
  70. IMAGE/sysupgrade.bin := append-rootfs | tplink-safeloader sysupgrade | append-metadata
  71. endef
  72. define Device/ZyXELImage
  73. KERNEL_SUFFIX := -uImage
  74. KERNEL = kernel-bin | append-dtb | uImage none | pad-to $$(KERNEL_SIZE)
  75. KERNEL_NAME := zImage
  76. IMAGES += factory.bin
  77. IMAGE/factory.bin := append-rootfs | pad-rootfs | pad-to $$$$(BLOCKSIZE) | zyxel-ras-image separate-kernel
  78. IMAGE/sysupgrade.bin/squashfs := append-rootfs | pad-to $$$$(BLOCKSIZE) | sysupgrade-tar rootfs=$$$$@ | append-metadata
  79. endef
  80. define Device/asrock_g10
  81. $(call Device/FitImage)
  82. $(call Device/UbiFit)
  83. SOC := qcom-ipq8064
  84. DEVICE_VENDOR := ASRock
  85. DEVICE_MODEL := G10
  86. BLOCKSIZE := 128k
  87. PAGESIZE := 2048
  88. KERNEL_SIZE := 5332k
  89. DEVICE_PACKAGES := kmod-i2c-gpio ath10k-firmware-qca99x0-ct
  90. IMAGE/nand-factory.bin := append-ubi | edimax-header RN67
  91. endef
  92. TARGET_DEVICES += asrock_g10
  93. define Device/buffalo_wxr-2533dhp
  94. $(call Device/LegacyImage)
  95. SOC := qcom-ipq8064
  96. DEVICE_VENDOR := Buffalo
  97. DEVICE_MODEL := WXR-2533DHP
  98. BLOCKSIZE := 128k
  99. PAGESIZE := 2048
  100. IMAGE_SIZE := 65536k
  101. KERNEL_IN_UBI := 1
  102. IMAGE/sysupgrade.bin := append-rootfs | buffalo-rootfs-cksum | \
  103. sysupgrade-tar rootfs=$$$$@ | append-metadata
  104. DEVICE_PACKAGES := ath10k-firmware-qca99x0-ct
  105. endef
  106. TARGET_DEVICES += buffalo_wxr-2533dhp
  107. define Device/compex_wpq864
  108. $(call Device/FitImage)
  109. $(call Device/UbiFit)
  110. DEVICE_VENDOR := Compex
  111. DEVICE_MODEL := WPQ864
  112. BLOCKSIZE := 128k
  113. PAGESIZE := 2048
  114. SOC := qcom-ipq8064
  115. DEVICE_PACKAGES := kmod-gpio-beeper
  116. endef
  117. TARGET_DEVICES += compex_wpq864
  118. define Device/edgecore_ecw5410
  119. $(call Device/FitImage)
  120. $(call Device/UbiFit)
  121. DEVICE_VENDOR := Edgecore
  122. DEVICE_MODEL := ECW5410
  123. SOC := qcom-ipq8068
  124. BLOCKSIZE := 128k
  125. PAGESIZE := 2048
  126. DEVICE_DTS_CONFIG := [email protected]
  127. DEVICE_PACKAGES := ath10k-firmware-qca9984-ct ipq-wifi-edgecore_ecw5410
  128. endef
  129. TARGET_DEVICES += edgecore_ecw5410
  130. define Device/linksys_ea7500-v1
  131. $(call Device/LegacyImage)
  132. DEVICE_VENDOR := Linksys
  133. DEVICE_MODEL := EA7500
  134. DEVICE_VARIANT := v1
  135. SOC := qcom-ipq8064
  136. PAGESIZE := 2048
  137. BLOCKSIZE := 128k
  138. KERNEL_SIZE := 3072k
  139. KERNEL = kernel-bin | append-dtb | uImage none | append-uImage-fakehdr filesystem
  140. UBINIZE_OPTS := -E 5
  141. IMAGES := factory.bin sysupgrade.bin
  142. IMAGE/factory.bin := append-kernel | pad-to $$$$(KERNEL_SIZE) | append-ubi | pad-to $$$$(PAGESIZE)
  143. DEVICE_PACKAGES := ath10k-firmware-qca99x0-ct
  144. endef
  145. TARGET_DEVICES += linksys_ea7500-v1
  146. define Device/linksys_ea8500
  147. $(call Device/LegacyImage)
  148. DEVICE_VENDOR := Linksys
  149. DEVICE_MODEL := EA8500
  150. SOC := qcom-ipq8064
  151. PAGESIZE := 2048
  152. BLOCKSIZE := 128k
  153. KERNEL_SIZE := 3072k
  154. KERNEL = kernel-bin | append-dtb | uImage none | append-uImage-fakehdr filesystem
  155. BOARD_NAME := ea8500
  156. SUPPORTED_DEVICES += ea8500
  157. UBINIZE_OPTS := -E 5
  158. IMAGES += factory.bin
  159. IMAGE/factory.bin := append-kernel | pad-to $$$$(KERNEL_SIZE) | append-ubi
  160. DEVICE_PACKAGES := ath10k-firmware-qca99x0-ct
  161. endef
  162. TARGET_DEVICES += linksys_ea8500
  163. define Device/nec_wg2600hp
  164. $(call Device/LegacyImage)
  165. DEVICE_VENDOR := NEC
  166. DEVICE_MODEL := Aterm WG2600HP
  167. SOC := qcom-ipq8064
  168. BLOCKSIZE := 64k
  169. BOARD_NAME := wg2600hp
  170. IMAGE/sysupgrade.bin := append-kernel | append-rootfs | pad-rootfs | append-metadata
  171. DEVICE_PACKAGES := ath10k-firmware-qca99x0-ct
  172. endef
  173. TARGET_DEVICES += nec_wg2600hp
  174. define Device/nec_wg2600hp3
  175. $(call Device/LegacyImage)
  176. DEVICE_VENDOR := NEC Platforms
  177. DEVICE_MODEL := Aterm WG2600HP3
  178. SOC := qcom-ipq8062
  179. BLOCKSIZE := 64k
  180. IMAGES := sysupgrade.bin
  181. IMAGE/sysupgrade.bin := append-kernel | append-rootfs | pad-rootfs | append-metadata
  182. DEVICE_PACKAGES := -kmod-ata-ahci -kmod-ata-ahci-platform -kmod-usb-ohci -kmod-usb2 \
  183. -kmod-usb-ledtrig-usbport -kmod-usb-phy-qcom-dwc3 -kmod-usb3 -kmod-usb-dwc3-qcom \
  184. ath10k-firmware-qca9984-ct ipq-wifi-nec_wg2600hp3
  185. endef
  186. TARGET_DEVICES += nec_wg2600hp3
  187. define Device/netgear_d7800
  188. $(call Device/DniImage)
  189. DEVICE_VENDOR := NETGEAR
  190. DEVICE_MODEL := Nighthawk X4 D7800
  191. SOC := qcom-ipq8064
  192. KERNEL_SIZE := 4096k
  193. NETGEAR_BOARD_ID := D7800
  194. NETGEAR_HW_ID := 29764958+0+128+512+4x4+4x4
  195. BLOCKSIZE := 128k
  196. PAGESIZE := 2048
  197. BOARD_NAME := d7800
  198. SUPPORTED_DEVICES += d7800
  199. DEVICE_PACKAGES := ath10k-firmware-qca99x0-ct
  200. endef
  201. TARGET_DEVICES += netgear_d7800
  202. define Device/netgear_r7500
  203. $(call Device/DniImage)
  204. DEVICE_VENDOR := NETGEAR
  205. DEVICE_MODEL := Nighthawk X4 R7500
  206. DEVICE_VARIANT := v1
  207. SOC := qcom-ipq8064
  208. KERNEL_SIZE := 4096k
  209. NETGEAR_BOARD_ID := R7500
  210. NETGEAR_HW_ID := 29764841+0+128+256+3x3+4x4
  211. BLOCKSIZE := 128k
  212. PAGESIZE := 2048
  213. BOARD_NAME := r7500
  214. SUPPORTED_DEVICES += r7500
  215. DEVICE_PACKAGES := ath10k-firmware-qca988x-ct
  216. endef
  217. TARGET_DEVICES += netgear_r7500
  218. define Device/netgear_r7500v2
  219. $(call Device/DniImage)
  220. DEVICE_VENDOR := NETGEAR
  221. DEVICE_MODEL := Nighthawk X4 R7500
  222. DEVICE_VARIANT := v2
  223. SOC := qcom-ipq8064
  224. KERNEL_SIZE := 4096k
  225. NETGEAR_BOARD_ID := R7500v2
  226. NETGEAR_HW_ID := 29764958+0+128+512+3x3+4x4
  227. BLOCKSIZE := 128k
  228. PAGESIZE := 2048
  229. BOARD_NAME := r7500v2
  230. SUPPORTED_DEVICES += r7500v2
  231. DEVICE_PACKAGES := ath10k-firmware-qca99x0-ct ath10k-firmware-qca988x-ct
  232. endef
  233. TARGET_DEVICES += netgear_r7500v2
  234. define Device/netgear_r7800
  235. $(call Device/DniImage)
  236. DEVICE_VENDOR := NETGEAR
  237. DEVICE_MODEL := Nighthawk X4S R7800
  238. SOC := qcom-ipq8065
  239. KERNEL_SIZE := 4096k
  240. NETGEAR_BOARD_ID := R7800
  241. NETGEAR_HW_ID := 29764958+0+128+512+4x4+4x4+cascade
  242. BLOCKSIZE := 128k
  243. PAGESIZE := 2048
  244. BOARD_NAME := r7800
  245. SUPPORTED_DEVICES += r7800
  246. DEVICE_PACKAGES := ath10k-firmware-qca9984-ct
  247. endef
  248. TARGET_DEVICES += netgear_r7800
  249. define Device/qcom_ipq8064-ap148
  250. $(call Device/FitImage)
  251. $(call Device/UbiFit)
  252. DEVICE_VENDOR := Qualcomm
  253. DEVICE_MODEL := AP148
  254. DEVICE_VARIANT := standard
  255. SOC := qcom-ipq8064
  256. DEVICE_DTS := qcom-ipq8064-ap148
  257. KERNEL_INSTALL := 1
  258. BLOCKSIZE := 128k
  259. PAGESIZE := 2048
  260. BOARD_NAME := ap148
  261. SUPPORTED_DEVICES += ap148
  262. DEVICE_PACKAGES := ath10k-firmware-qca99x0-ct
  263. endef
  264. TARGET_DEVICES += qcom_ipq8064-ap148
  265. define Device/qcom_ipq8064-ap148-legacy
  266. $(call Device/LegacyImage)
  267. $(call Device/UbiFit)
  268. DEVICE_VENDOR := Qualcomm
  269. DEVICE_MODEL := AP148
  270. DEVICE_VARIANT := legacy
  271. SOC := qcom-ipq8064
  272. DEVICE_DTS := qcom-ipq8064-ap148
  273. BLOCKSIZE := 128k
  274. PAGESIZE := 2048
  275. BOARD_NAME := ap148
  276. SUPPORTED_DEVICES := qcom,ipq8064-ap148 ap148
  277. DEVICE_PACKAGES := ath10k-firmware-qca99x0-ct
  278. endef
  279. TARGET_DEVICES += qcom_ipq8064-ap148-legacy
  280. define Device/qcom_ipq8064-ap161
  281. $(call Device/FitImage)
  282. $(call Device/UbiFit)
  283. DEVICE_VENDOR := Qualcomm
  284. DEVICE_MODEL := AP161
  285. SOC := qcom-ipq8064
  286. DEVICE_DTS := qcom-ipq8064-ap161
  287. KERNEL_INSTALL := 1
  288. BLOCKSIZE := 128k
  289. PAGESIZE := 2048
  290. BOARD_NAME := ap161
  291. DEVICE_PACKAGES := ath10k-firmware-qca99x0-ct
  292. endef
  293. TARGET_DEVICES += qcom_ipq8064-ap161
  294. define Device/qcom_ipq8064-db149
  295. $(call Device/FitImage)
  296. DEVICE_VENDOR := Qualcomm
  297. DEVICE_MODEL := DB149
  298. SOC := qcom-ipq8064
  299. DEVICE_DTS := qcom-ipq8064-db149
  300. KERNEL_INSTALL := 1
  301. BOARD_NAME := db149
  302. DEVICE_PACKAGES := ath10k-firmware-qca99x0-ct
  303. endef
  304. TARGET_DEVICES += qcom_ipq8064-db149
  305. define Device/tplink_ad7200
  306. $(call Device/TpSafeImage)
  307. DEVICE_VENDOR := TP-Link
  308. DEVICE_MODEL := AD7200
  309. DEVICE_VARIANT := v1/v2
  310. DEVICE_ALT0_VENDOR := TP-Link
  311. DEVICE_ALT0_MODEL := Talon AD7200
  312. DEVICE_ALT0_VARIANT := v1/v2
  313. SOC := qcom-ipq8064
  314. BLOCKSIZE := 128k
  315. PAGESIZE := 2048
  316. TPLINK_BOARD_ID := AD7200
  317. DEVICE_PACKAGES := ath10k-firmware-qca99x0-ct kmod-wil6210
  318. endef
  319. TARGET_DEVICES += tplink_ad7200
  320. define Device/tplink_c2600
  321. $(call Device/TpSafeImage)
  322. DEVICE_VENDOR := TP-Link
  323. DEVICE_MODEL := Archer C2600
  324. DEVICE_VARIANT := v1
  325. SOC := qcom-ipq8064
  326. BLOCKSIZE := 128k
  327. PAGESIZE := 2048
  328. BOARD_NAME := c2600
  329. SUPPORTED_DEVICES += c2600
  330. TPLINK_BOARD_ID := C2600
  331. DEVICE_PACKAGES := ath10k-firmware-qca99x0-ct
  332. endef
  333. TARGET_DEVICES += tplink_c2600
  334. define Device/tplink_vr2600v
  335. DEVICE_VENDOR := TP-Link
  336. DEVICE_MODEL := Archer VR2600v
  337. DEVICE_VARIANT := v1
  338. KERNEL_SUFFIX := -uImage
  339. KERNEL = kernel-bin | append-dtb | uImage none
  340. KERNEL_NAME := zImage
  341. KERNEL_SIZE := 3072k
  342. SOC := qcom-ipq8064
  343. BLOCKSIZE := 128k
  344. PAGESIZE := 2048
  345. BOARD_NAME := vr2600v
  346. SUPPORTED_DEVICES += vr2600v
  347. DEVICE_PACKAGES := ath10k-firmware-qca99x0-ct
  348. IMAGE/sysupgrade.bin := pad-extra 512 | append-kernel | pad-to $$$$(KERNEL_SIZE) | append-rootfs | pad-rootfs | append-metadata
  349. endef
  350. TARGET_DEVICES += tplink_vr2600v
  351. define Device/ubnt_unifi-ac-hd
  352. $(call Device/FitImageLzma)
  353. DEVICE_VENDOR := Ubiquiti
  354. DEVICE_MODEL := UniFi AC HD
  355. SOC := qcom-ipq8064
  356. BLOCKSIZE := 64k
  357. IMAGE_SIZE := 14784k
  358. DEVICE_PACKAGES := ath10k-firmware-qca9984-ct
  359. IMAGE/sysupgrade.bin := append-kernel | pad-to $$$$(BLOCKSIZE) | append-rootfs | pad-rootfs | append-metadata | check-size
  360. endef
  361. TARGET_DEVICES += ubnt_unifi-ac-hd
  362. define Device/zyxel_nbg6817
  363. DEVICE_VENDOR := ZyXEL
  364. DEVICE_MODEL := NBG6817
  365. SOC := qcom-ipq8065
  366. KERNEL_SIZE := 4096k
  367. BLOCKSIZE := 64k
  368. BOARD_NAME := nbg6817
  369. RAS_BOARD := NBG6817
  370. RAS_ROOTFS_SIZE := 20934k
  371. RAS_VERSION := "V1.99(OWRT.9999)C0"
  372. SUPPORTED_DEVICES += nbg6817
  373. DEVICE_PACKAGES := ath10k-firmware-qca9984-ct e2fsprogs kmod-fs-ext4 losetup
  374. $(call Device/ZyXELImage)
  375. endef
  376. TARGET_DEVICES += zyxel_nbg6817
  377. $(eval $(call BuildImage))