Makefile 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438
  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/askey_rt4230w-rev6
  81. $(call Device/LegacyImage)
  82. DEVICE_VENDOR := Askey
  83. DEVICE_MODEL := RT4230W
  84. DEVICE_VARIANT := REV6
  85. SOC := qcom-ipq8065
  86. BLOCKSIZE := 128k
  87. PAGESIZE := 2048
  88. DEVICE_PACKAGES := ath10k-firmware-qca9984-ct
  89. KERNEL_IN_UBI := 1
  90. endef
  91. TARGET_DEVICES += askey_rt4230w-rev6
  92. define Device/asrock_g10
  93. $(call Device/FitImage)
  94. $(call Device/UbiFit)
  95. SOC := qcom-ipq8064
  96. DEVICE_VENDOR := ASRock
  97. DEVICE_MODEL := G10
  98. BLOCKSIZE := 128k
  99. PAGESIZE := 2048
  100. KERNEL_SIZE := 5332k
  101. DEVICE_PACKAGES := kmod-i2c-gpio ath10k-firmware-qca99x0-ct
  102. IMAGE/nand-factory.bin := append-ubi | edimax-header RN67
  103. endef
  104. TARGET_DEVICES += asrock_g10
  105. define Device/buffalo_wxr-2533dhp
  106. $(call Device/LegacyImage)
  107. SOC := qcom-ipq8064
  108. DEVICE_VENDOR := Buffalo
  109. DEVICE_MODEL := WXR-2533DHP
  110. BLOCKSIZE := 128k
  111. PAGESIZE := 2048
  112. IMAGE_SIZE := 65536k
  113. KERNEL_IN_UBI := 1
  114. IMAGE/sysupgrade.bin := append-rootfs | buffalo-rootfs-cksum | \
  115. sysupgrade-tar rootfs=$$$$@ | append-metadata
  116. DEVICE_PACKAGES := ath10k-firmware-qca99x0-ct
  117. endef
  118. TARGET_DEVICES += buffalo_wxr-2533dhp
  119. define Device/compex_wpq864
  120. $(call Device/FitImage)
  121. $(call Device/UbiFit)
  122. DEVICE_VENDOR := Compex
  123. DEVICE_MODEL := WPQ864
  124. BLOCKSIZE := 128k
  125. PAGESIZE := 2048
  126. SOC := qcom-ipq8064
  127. DEVICE_PACKAGES := kmod-gpio-beeper
  128. endef
  129. TARGET_DEVICES += compex_wpq864
  130. define Device/edgecore_ecw5410
  131. $(call Device/FitImage)
  132. $(call Device/UbiFit)
  133. DEVICE_VENDOR := Edgecore
  134. DEVICE_MODEL := ECW5410
  135. SOC := qcom-ipq8068
  136. BLOCKSIZE := 128k
  137. PAGESIZE := 2048
  138. DEVICE_DTS_CONFIG := [email protected]
  139. DEVICE_PACKAGES := ath10k-firmware-qca9984-ct ipq-wifi-edgecore_ecw5410
  140. endef
  141. TARGET_DEVICES += edgecore_ecw5410
  142. define Device/linksys_ea7500-v1
  143. $(call Device/LegacyImage)
  144. DEVICE_VENDOR := Linksys
  145. DEVICE_MODEL := EA7500
  146. DEVICE_VARIANT := v1
  147. SOC := qcom-ipq8064
  148. PAGESIZE := 2048
  149. BLOCKSIZE := 128k
  150. KERNEL_SIZE := 3072k
  151. KERNEL = kernel-bin | append-dtb | uImage none | append-uImage-fakehdr filesystem
  152. UBINIZE_OPTS := -E 5
  153. IMAGES := factory.bin sysupgrade.bin
  154. IMAGE/factory.bin := append-kernel | pad-to $$$$(KERNEL_SIZE) | append-ubi | pad-to $$$$(PAGESIZE)
  155. DEVICE_PACKAGES := ath10k-firmware-qca99x0-ct
  156. endef
  157. TARGET_DEVICES += linksys_ea7500-v1
  158. define Device/linksys_ea8500
  159. $(call Device/LegacyImage)
  160. DEVICE_VENDOR := Linksys
  161. DEVICE_MODEL := EA8500
  162. SOC := qcom-ipq8064
  163. PAGESIZE := 2048
  164. BLOCKSIZE := 128k
  165. KERNEL_SIZE := 3072k
  166. KERNEL = kernel-bin | append-dtb | uImage none | append-uImage-fakehdr filesystem
  167. BOARD_NAME := ea8500
  168. SUPPORTED_DEVICES += ea8500
  169. UBINIZE_OPTS := -E 5
  170. IMAGES += factory.bin
  171. IMAGE/factory.bin := append-kernel | pad-to $$$$(KERNEL_SIZE) | append-ubi
  172. DEVICE_PACKAGES := ath10k-firmware-qca99x0-ct
  173. endef
  174. TARGET_DEVICES += linksys_ea8500
  175. define Device/nec_wg2600hp
  176. $(call Device/LegacyImage)
  177. DEVICE_VENDOR := NEC
  178. DEVICE_MODEL := Aterm WG2600HP
  179. SOC := qcom-ipq8064
  180. BLOCKSIZE := 64k
  181. BOARD_NAME := wg2600hp
  182. IMAGE/sysupgrade.bin := append-kernel | append-rootfs | pad-rootfs | append-metadata
  183. DEVICE_PACKAGES := ath10k-firmware-qca99x0-ct
  184. endef
  185. TARGET_DEVICES += nec_wg2600hp
  186. define Device/nec_wg2600hp3
  187. $(call Device/LegacyImage)
  188. DEVICE_VENDOR := NEC Platforms
  189. DEVICE_MODEL := Aterm WG2600HP3
  190. SOC := qcom-ipq8062
  191. BLOCKSIZE := 64k
  192. IMAGES := sysupgrade.bin
  193. IMAGE/sysupgrade.bin := append-kernel | append-rootfs | pad-rootfs | append-metadata
  194. DEVICE_PACKAGES := -kmod-ata-ahci -kmod-ata-ahci-platform -kmod-usb-ohci -kmod-usb2 \
  195. -kmod-usb-ledtrig-usbport -kmod-usb-phy-qcom-dwc3 -kmod-usb3 -kmod-usb-dwc3-qcom \
  196. ath10k-firmware-qca9984-ct ipq-wifi-nec_wg2600hp3
  197. endef
  198. TARGET_DEVICES += nec_wg2600hp3
  199. define Device/netgear_d7800
  200. $(call Device/DniImage)
  201. DEVICE_VENDOR := NETGEAR
  202. DEVICE_MODEL := Nighthawk X4 D7800
  203. SOC := qcom-ipq8064
  204. KERNEL_SIZE := 4096k
  205. NETGEAR_BOARD_ID := D7800
  206. NETGEAR_HW_ID := 29764958+0+128+512+4x4+4x4
  207. BLOCKSIZE := 128k
  208. PAGESIZE := 2048
  209. BOARD_NAME := d7800
  210. SUPPORTED_DEVICES += d7800
  211. DEVICE_PACKAGES := ath10k-firmware-qca99x0-ct
  212. endef
  213. TARGET_DEVICES += netgear_d7800
  214. define Device/netgear_r7500
  215. $(call Device/DniImage)
  216. DEVICE_VENDOR := NETGEAR
  217. DEVICE_MODEL := Nighthawk X4 R7500
  218. DEVICE_VARIANT := v1
  219. SOC := qcom-ipq8064
  220. KERNEL_SIZE := 4096k
  221. NETGEAR_BOARD_ID := R7500
  222. NETGEAR_HW_ID := 29764841+0+128+256+3x3+4x4
  223. BLOCKSIZE := 128k
  224. PAGESIZE := 2048
  225. BOARD_NAME := r7500
  226. SUPPORTED_DEVICES += r7500
  227. DEVICE_PACKAGES := ath10k-firmware-qca988x-ct
  228. endef
  229. TARGET_DEVICES += netgear_r7500
  230. define Device/netgear_r7500v2
  231. $(call Device/DniImage)
  232. DEVICE_VENDOR := NETGEAR
  233. DEVICE_MODEL := Nighthawk X4 R7500
  234. DEVICE_VARIANT := v2
  235. SOC := qcom-ipq8064
  236. KERNEL_SIZE := 4096k
  237. NETGEAR_BOARD_ID := R7500v2
  238. NETGEAR_HW_ID := 29764958+0+128+512+3x3+4x4
  239. BLOCKSIZE := 128k
  240. PAGESIZE := 2048
  241. BOARD_NAME := r7500v2
  242. SUPPORTED_DEVICES += r7500v2
  243. DEVICE_PACKAGES := ath10k-firmware-qca99x0-ct ath10k-firmware-qca988x-ct
  244. endef
  245. TARGET_DEVICES += netgear_r7500v2
  246. define Device/netgear_r7800
  247. $(call Device/DniImage)
  248. DEVICE_VENDOR := NETGEAR
  249. DEVICE_MODEL := Nighthawk X4S R7800
  250. SOC := qcom-ipq8065
  251. KERNEL_SIZE := 4096k
  252. NETGEAR_BOARD_ID := R7800
  253. NETGEAR_HW_ID := 29764958+0+128+512+4x4+4x4+cascade
  254. BLOCKSIZE := 128k
  255. PAGESIZE := 2048
  256. BOARD_NAME := r7800
  257. SUPPORTED_DEVICES += r7800
  258. DEVICE_PACKAGES := ath10k-firmware-qca9984-ct
  259. endef
  260. TARGET_DEVICES += netgear_r7800
  261. define Device/netgear_xr500
  262. $(call Device/DniImage)
  263. DEVICE_VENDOR := NETGEAR
  264. DEVICE_MODEL := Nighthawk XR500
  265. SOC := qcom-ipq8065
  266. KERNEL_SIZE := 4096k
  267. NETGEAR_BOARD_ID := XR500
  268. NETGEAR_HW_ID := 29764958+0+256+512+4x4+4x4+cascade
  269. BLOCKSIZE := 128k
  270. PAGESIZE := 2048
  271. DEVICE_PACKAGES := ath10k-firmware-qca9984-ct
  272. endef
  273. TARGET_DEVICES += netgear_xr500
  274. define Device/qcom_ipq8064-ap148
  275. $(call Device/FitImage)
  276. $(call Device/UbiFit)
  277. DEVICE_VENDOR := Qualcomm
  278. DEVICE_MODEL := AP148
  279. DEVICE_VARIANT := standard
  280. SOC := qcom-ipq8064
  281. DEVICE_DTS := qcom-ipq8064-ap148
  282. KERNEL_INSTALL := 1
  283. BLOCKSIZE := 128k
  284. PAGESIZE := 2048
  285. BOARD_NAME := ap148
  286. SUPPORTED_DEVICES += ap148
  287. DEVICE_PACKAGES := ath10k-firmware-qca99x0-ct
  288. endef
  289. TARGET_DEVICES += qcom_ipq8064-ap148
  290. define Device/qcom_ipq8064-ap148-legacy
  291. $(call Device/LegacyImage)
  292. $(call Device/UbiFit)
  293. DEVICE_VENDOR := Qualcomm
  294. DEVICE_MODEL := AP148
  295. DEVICE_VARIANT := legacy
  296. SOC := qcom-ipq8064
  297. DEVICE_DTS := qcom-ipq8064-ap148
  298. BLOCKSIZE := 128k
  299. PAGESIZE := 2048
  300. BOARD_NAME := ap148
  301. SUPPORTED_DEVICES := qcom,ipq8064-ap148 ap148
  302. DEVICE_PACKAGES := ath10k-firmware-qca99x0-ct
  303. endef
  304. TARGET_DEVICES += qcom_ipq8064-ap148-legacy
  305. define Device/qcom_ipq8064-ap161
  306. $(call Device/FitImage)
  307. $(call Device/UbiFit)
  308. DEVICE_VENDOR := Qualcomm
  309. DEVICE_MODEL := AP161
  310. SOC := qcom-ipq8064
  311. DEVICE_DTS := qcom-ipq8064-ap161
  312. KERNEL_INSTALL := 1
  313. BLOCKSIZE := 128k
  314. PAGESIZE := 2048
  315. BOARD_NAME := ap161
  316. DEVICE_PACKAGES := ath10k-firmware-qca99x0-ct
  317. endef
  318. TARGET_DEVICES += qcom_ipq8064-ap161
  319. define Device/qcom_ipq8064-db149
  320. $(call Device/FitImage)
  321. DEVICE_VENDOR := Qualcomm
  322. DEVICE_MODEL := DB149
  323. SOC := qcom-ipq8064
  324. DEVICE_DTS := qcom-ipq8064-db149
  325. KERNEL_INSTALL := 1
  326. BOARD_NAME := db149
  327. DEVICE_PACKAGES := ath10k-firmware-qca99x0-ct
  328. endef
  329. TARGET_DEVICES += qcom_ipq8064-db149
  330. define Device/tplink_ad7200
  331. $(call Device/TpSafeImage)
  332. DEVICE_VENDOR := TP-Link
  333. DEVICE_MODEL := AD7200
  334. DEVICE_VARIANT := v1/v2
  335. DEVICE_ALT0_VENDOR := TP-Link
  336. DEVICE_ALT0_MODEL := Talon AD7200
  337. DEVICE_ALT0_VARIANT := v1/v2
  338. SOC := qcom-ipq8064
  339. BLOCKSIZE := 128k
  340. PAGESIZE := 2048
  341. TPLINK_BOARD_ID := AD7200
  342. DEVICE_PACKAGES := ath10k-firmware-qca99x0-ct kmod-wil6210
  343. endef
  344. TARGET_DEVICES += tplink_ad7200
  345. define Device/tplink_c2600
  346. $(call Device/TpSafeImage)
  347. DEVICE_VENDOR := TP-Link
  348. DEVICE_MODEL := Archer C2600
  349. DEVICE_VARIANT := v1
  350. SOC := qcom-ipq8064
  351. BLOCKSIZE := 128k
  352. PAGESIZE := 2048
  353. BOARD_NAME := c2600
  354. SUPPORTED_DEVICES += c2600
  355. TPLINK_BOARD_ID := C2600
  356. DEVICE_PACKAGES := ath10k-firmware-qca99x0-ct
  357. endef
  358. TARGET_DEVICES += tplink_c2600
  359. define Device/tplink_vr2600v
  360. DEVICE_VENDOR := TP-Link
  361. DEVICE_MODEL := Archer VR2600v
  362. DEVICE_VARIANT := v1
  363. KERNEL_SUFFIX := -uImage
  364. KERNEL = kernel-bin | append-dtb | uImage none
  365. KERNEL_NAME := zImage
  366. KERNEL_SIZE := 3072k
  367. SOC := qcom-ipq8064
  368. BLOCKSIZE := 128k
  369. PAGESIZE := 2048
  370. BOARD_NAME := vr2600v
  371. SUPPORTED_DEVICES += vr2600v
  372. DEVICE_PACKAGES := ath10k-firmware-qca99x0-ct
  373. IMAGE/sysupgrade.bin := pad-extra 512 | append-kernel | pad-to $$$$(KERNEL_SIZE) | append-rootfs | pad-rootfs | append-metadata
  374. endef
  375. TARGET_DEVICES += tplink_vr2600v
  376. define Device/ubnt_unifi-ac-hd
  377. $(call Device/FitImageLzma)
  378. DEVICE_VENDOR := Ubiquiti
  379. DEVICE_MODEL := UniFi AC HD
  380. SOC := qcom-ipq8064
  381. BLOCKSIZE := 64k
  382. IMAGE_SIZE := 14784k
  383. DEVICE_PACKAGES := ath10k-firmware-qca9984-ct
  384. IMAGE/sysupgrade.bin := append-kernel | pad-to $$$$(BLOCKSIZE) | append-rootfs | pad-rootfs | check-size | append-metadata
  385. endef
  386. TARGET_DEVICES += ubnt_unifi-ac-hd
  387. define Device/zyxel_nbg6817
  388. DEVICE_VENDOR := ZyXEL
  389. DEVICE_MODEL := NBG6817
  390. SOC := qcom-ipq8065
  391. KERNEL_SIZE := 4096k
  392. BLOCKSIZE := 64k
  393. BOARD_NAME := nbg6817
  394. RAS_BOARD := NBG6817
  395. RAS_ROOTFS_SIZE := 20934k
  396. RAS_VERSION := "V1.99(OWRT.9999)C0"
  397. SUPPORTED_DEVICES += nbg6817
  398. DEVICE_PACKAGES := ath10k-firmware-qca9984-ct e2fsprogs kmod-fs-ext4 losetup
  399. $(call Device/ZyXELImage)
  400. endef
  401. TARGET_DEVICES += zyxel_nbg6817
  402. $(eval $(call BuildImage))